/* * (c) Copyright Ascensio System SIA 2010-2024 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined){ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Private area //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function private_PtToMM(pt) { return 25.4 / 72.0 * pt; } function private_Twips2MM(twips) { return 25.4 / 72.0 / 20 * twips; } function private_GetDrawingDocument() { if (editor) return editor.WordControl.m_oLogicDocument.DrawingDocument; return Asc.editor.wbModel.getDrawingDocument(); } function private_EMU2MM(EMU) { return EMU / 36000.0; } function private_MM2EMU(MM) { return (MM * 36000.0) >> 0; } function private_GetLogicDocument() { if (editor) return editor.WordControl.m_oLogicDocument; return null; } function private_GetStyles() { var oLogicDocument = private_GetLogicDocument(); return oLogicDocument instanceof AscCommonWord.CDocument ? oLogicDocument.Get_Styles() : oLogicDocument.globalTableStyles; } function private_MM2Twips(mm) { return Math.floor(mm / (25.4 / 72.0 / 20) + 0.5); } function private_Twips2Px(twips) { return twips * (4 / 3 / 20); } function private_Px2Twips(px) { return px / (4 / 3 / 20); } /** * Check relative pos by document position * @typeofeditors ["CDE"] * @param {Array} firstPos - first doc pos of element * @param {Array} secondPos - second doc pos of element * @return {1 || 0 || - 1} * If returns 1 -> first element placed before second * If returns 0 -> first element placed like second * If returns -1 -> first element placed after second */ function private_checkRelativePos(firstPos, secondPos) { if (!firstPos || !Array.isArray(firstPos)) return 1; else if (!secondPos || !Array.isArray(secondPos)) return -1; for (var nPos = 0, nLen = Math.min(firstPos.length, secondPos.length); nPos < nLen; ++nPos) { if (!secondPos[nPos] || !firstPos[nPos] || firstPos[nPos].Class !== secondPos[nPos].Class) return 1; if (firstPos[nPos].Position < secondPos[nPos].Position) return 1; else if (firstPos[nPos].Position > secondPos[nPos].Position) return -1; } return 0; } function private_MM2Pt(mm) { return mm / (25.4 / 72.0); } function GetRectAlgnStrType(nAlgnType) { var sAlgnType = undefined; switch (nAlgnType) { case AscCommon.c_oAscRectAlignType.b: sAlgnType = "b"; break; case AscCommon.c_oAscRectAlignType.bl: sAlgnType = "bl"; break; case AscCommon.c_oAscRectAlignType.br: sAlgnType = "br"; break; case AscCommon.c_oAscRectAlignType.ctr: sAlgnType = "ctr"; break; case AscCommon.c_oAscRectAlignType.l: sAlgnType = "l"; break; case AscCommon.c_oAscRectAlignType.r: sAlgnType = "r"; break; case AscCommon.c_oAscRectAlignType.t: sAlgnType = "t"; break; case AscCommon.c_oAscRectAlignType.tl: sAlgnType = "tl"; break; case AscCommon.c_oAscRectAlignType.tr: sAlgnType = "tr"; break; } return sAlgnType; } function GetRectAlgnNumType(sAlgnType) { var nAlgnType = undefined; switch (sAlgnType) { case "b": nAlgnType = AscCommon.c_oAscRectAlignType.b; break; case "bl": nAlgnType = AscCommon.c_oAscRectAlignType.bl; break; case "br": nAlgnType = AscCommon.c_oAscRectAlignType.br; break; case "ctr": nAlgnType = AscCommon.c_oAscRectAlignType.ctr; break; case "l": nAlgnType = AscCommon.c_oAscRectAlignType.l; break; case "r": nAlgnType = AscCommon.c_oAscRectAlignType.r; break; case "t": nAlgnType = AscCommon.c_oAscRectAlignType.t; break; case "tl": nAlgnType = AscCommon.c_oAscRectAlignType.tl; break; case "tr": nAlgnType = AscCommon.c_oAscRectAlignType.tr; break; } return nAlgnType; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // End of private area //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function WriterToJSON() { this.api = editor ? editor : Asc.editor; this.isWord = this.api.editorId === AscCommon.c_oEditorId.Word; this.layoutsMap = {}; this.mastersMap = {}; this.notesMasterMap = {}; this.themesMap = {}; this.workbook = null; this.stylesForWrite = null; window["AscJsonConverter"].ActiveWriter = this; } WriterToJSON.prototype.SerHlink = function(oHlink) { if (!oHlink) return undefined; return { "action": oHlink.action, "endSnd": oHlink.endSnd, "highlightClick": oHlink.highlightClick, "history": oHlink.history, "id": oHlink.id, "invalidUrl": oHlink.invalidUrl, "tgtFrame": oHlink.tgtFrame, "tooltip": oHlink.tooltip } }; WriterToJSON.prototype.SerExternalData = function(oExtData) { if (!oExtData) return undefined; return { "autoUpdate": oExtData.autoUpdate, "id": oExtData.id } }; WriterToJSON.prototype.SerProtection = function(oProtection) { if (!oProtection) return undefined; return { "chartObject": oProtection.chartObject, "data": oProtection.data, "formatting": oProtection.formatting, "selection": oProtection.selection, "userInterface": oProtection.userInterface } }; WriterToJSON.prototype.SerPivotSource = function(oPivotSource) { if (!oPivotSource) return undefined; return { "fmtId": oPivotSource.fmtId, "name": oPivotSource.name } }; WriterToJSON.prototype.SerSimplePos = function(oSimplePos) { if (!oSimplePos) return undefined; return { "x": private_MM2EMU(oSimplePos.X), "y": private_MM2EMU(oSimplePos.Y), "use": oSimplePos.Use } }; WriterToJSON.prototype.SerPositionV = function(oPosV) { if (!oPosV) return undefined; // anchorV var sRelFromV = undefined; switch (oPosV.RelativeFrom) { case Asc.c_oAscRelativeFromV.BottomMargin: sRelFromV = "bottomMargin"; break; case Asc.c_oAscRelativeFromV.InsideMargin: sRelFromV = "insideMargin"; break; case Asc.c_oAscRelativeFromV.Line: sRelFromV = "line"; break; case Asc.c_oAscRelativeFromV.Margin: sRelFromV = "margin"; break; case Asc.c_oAscRelativeFromV.OutsideMargin: sRelFromV = "outsideMargin"; break; case Asc.c_oAscRelativeFromV.Page: sRelFromV = "page"; break; case Asc.c_oAscRelativeFromV.Paragraph: sRelFromV = "paragraph"; break; case Asc.c_oAscRelativeFromV.TopMargin: sRelFromV = "topMargin"; break; } // alignV var sVerAlign = undefined; if (oPosV.Align) { switch (oPosV.Value) { case Asc.c_oAscYAlign.Bottom: sVerAlign = "bottom"; break; case Asc.c_oAscYAlign.Center: sVerAlign = "center"; break; case Asc.c_oAscYAlign.Inline: sVerAlign = "inline"; break; case Asc.c_oAscYAlign.Inside: sVerAlign = "inside"; break; case Asc.c_oAscYAlign.Outside: sVerAlign = "outside"; break; case Asc.c_oAscYAlign.Top: sVerAlign = "top"; break; } } // offset var posOffset = oPosV.Align ? undefined : (oPosV.Percent ? oPosV.Value : private_MM2EMU(oPosV.Value)); return { "align": sVerAlign, "relativeFrom": sRelFromV, "posOffset": posOffset, "percent": oPosV.Percent } }; WriterToJSON.prototype.SerPositionH = function(oPosH) { if (!oPosH) return undefined; // anchorH var sRelFromH = undefined; switch (oPosH.RelativeFrom) { case Asc.c_oAscRelativeFromH.Character: sRelFromH = "character"; break; case Asc.c_oAscRelativeFromH.Column: sRelFromH = "column"; break; case Asc.c_oAscRelativeFromH.InsideMargin: sRelFromH = "insideMargin"; break; case Asc.c_oAscRelativeFromH.LeftMargin: sRelFromH = "leftMargin"; break; case Asc.c_oAscRelativeFromH.Margin: sRelFromH = "margin"; break; case Asc.c_oAscRelativeFromH.OutsideMargin: sRelFromH = "outsideMargin"; break; case Asc.c_oAscRelativeFromH.Page: sRelFromH = "page"; break; case Asc.c_oAscRelativeFromH.RightMargin: sRelFromH = "rightMargin"; break; } // alignH var sHorAlign = undefined; if (oPosH.Align) { switch (oPosH.Value) { case Asc.c_oAscXAlign.Center: sHorAlign = "center"; break; case Asc.c_oAscXAlign.Inside: sHorAlign = "inside"; break; case Asc.c_oAscXAlign.Left: sHorAlign = "left"; break; case Asc.c_oAscXAlign.Outside: sHorAlign = "outside"; break; case Asc.c_oAscXAlign.Right: sHorAlign = "right"; break; } } // offset var posOffSet = oPosH.Align ? undefined : (oPosH.Percent ? oPosH.Value : private_MM2EMU(oPosH.Value)); return { "align": sHorAlign, "relativeFrom": sRelFromH, "posOffset": posOffSet, "percent": oPosH.Percent } }; WriterToJSON.prototype.SerExtent = function(oExtent) { if (!oExtent) return undefined; return { "cy": private_MM2EMU(oExtent.H), "cx": private_MM2EMU(oExtent.W) } }; WriterToJSON.prototype.SerEffectExtent = function(oEffExt) { if (!oEffExt) return undefined; return { "b": private_MM2EMU(oEffExt.B), "l": private_MM2EMU(oEffExt.L), "r": private_MM2EMU(oEffExt.R), "t": private_MM2EMU(oEffExt.T) } }; WriterToJSON.prototype.GetWrapStrType = function(nType) { switch (nType) { case WRAPPING_TYPE_NONE: return "none"; case WRAPPING_TYPE_SQUARE: return "square"; case WRAPPING_TYPE_THROUGH: return "through"; case WRAPPING_TYPE_TIGHT: return "tight"; case WRAPPING_TYPE_TOP_AND_BOTTOM: return "top_and_bottom"; default: return "none"; } }; WriterToJSON.prototype.SerGraphicObject = function(oGraphicObj) { if (!oGraphicObj) return undefined; var oResultObj = null; if (oGraphicObj instanceof AscFormat.CChartSpace) oResultObj = this.SerChartSpace(oGraphicObj); else if (oGraphicObj instanceof AscFormat.COleObject) oResultObj = this.SerOleObject(oGraphicObj); else if (oGraphicObj instanceof AscFormat.CImageShape) oResultObj = this.SerImage(oGraphicObj); else if (oGraphicObj instanceof AscFormat.CShape) { if (oGraphicObj.getObjectType() === AscDFH.historyitem_type_Cnx) { var oShapeObj = this.SerShape(oGraphicObj); oShapeObj["type"] = "connectShape"; oResultObj = oShapeObj; } else if (oGraphicObj.getObjectType() === AscDFH.historyitem_type_SlicerView) oResultObj = this.SerSlicerDrawing(oGraphicObj) else oResultObj = this.SerShape(oGraphicObj); } else if (oGraphicObj instanceof AscFormat.CGraphicFrame) oResultObj = this.SerGraphicFrame(oGraphicObj); else if (oGraphicObj instanceof AscFormat.SmartArt) oResultObj = this.SerSmartArt(oGraphicObj); else if (oGraphicObj instanceof AscFormat.CLockedCanvas) oResultObj = this.SerLockedCanvas(oGraphicObj); else if (oGraphicObj instanceof AscFormat.CGroupShape && oGraphicObj.getObjectType() === AscDFH.historyitem_type_GroupShape) oResultObj = this.SerGroupShape(oGraphicObj); else return undefined; oResultObj["id"] = oGraphicObj.Id; return oResultObj; }; WriterToJSON.prototype.SerSlicerDrawing = function(oSlicerDrawing) { var oResult = this.SerShape(oSlicerDrawing); oResult["name"] = oSlicerDrawing.name != null ? oSlicerDrawing.name : undefined; oResult["type"] = "slicer"; return oResult; }; WriterToJSON.prototype.SerOleObject = function(oOleObject) { var oResult = this.SerImage(oOleObject); oResult["appId"] = oOleObject.m_sApplicationId; oResult["data"] = oOleObject.m_sData; oResult["dxaOrig"] = private_Px2Twips(oOleObject.m_nPixWidth); oResult["dyaOrig"] = private_Px2Twips(oOleObject.m_nPixHeight); oResult["objFile"] = oOleObject.m_sObjectFile; oResult["oleType"] = To_XML_OleObj_Type(oOleObject.m_nOleType); oResult["binaryData"] = oOleObject.m_aBinaryData; oResult["mathObj"] = this.SerParaMath(oOleObject.m_oMathObject); oResult["type"] = "oleObject"; return oResult; }; WriterToJSON.prototype.SerLockedCanvas = function(oLockedCanvas) { var oResult = this.SerDrawing(oLockedCanvas); oResult["type"] = "lockedCanvas"; return oResult; }; WriterToJSON.prototype.SerGroupShape = function(oGroupShape) { var oResult = this.SerDrawing(oGroupShape); oResult["type"] = "groupShape"; return oResult; }; WriterToJSON.prototype.SerSmartArt = function(oSmartArt) { return { "colorsDef": this.SerColorsDef(oSmartArt.colorsDef), "dataModel": this.SerData(oSmartArt.dataModel, "diagramData"), "layoutDef": this.SerLayoutDef(oSmartArt.layoutDef), "styleDef": this.SerStyleDef(oSmartArt.styleDef), "drawing": this.SerDrawing(oSmartArt.drawing), "nvGrpSpPr": this.SerUniNvPr(oSmartArt.nvGrpSpPr, oSmartArt.locks, oSmartArt.getObjectType()), "spPr": this.SerSpPr(oSmartArt.spPr), "type": "smartArt", "artType": oSmartArt.type } }; WriterToJSON.prototype.SerStyleDef = function(oStyleDef) { if (!oStyleDef) return undefined; var aStyleLbl = []; for (let name in oStyleDef.styleLbl) { aStyleLbl.push(this.SerColorDefStyleLbl(oStyleDef.styleLbl[name])); } return { "catLst": this.SerCatLst(oStyleDef.catLst), "desc": this.SerDesc(oStyleDef.desc, "desc"), "scene3d": this.SerScene3d(oStyleDef.scene3d), "styleLbl": aStyleLbl, "minVer": oStyleDef.minVer, "title": this.SerDesc(oStyleDef.title, "diagramTitle"), "uniqueId": oStyleDef.uniqueId } }; WriterToJSON.prototype.SerDefStyleLbl = function(oDefStyleLbl) { if (!oDefStyleLbl) return undefined; return { "scene3d": this.SerScene3d(oDefStyleLbl.scene3d), "sp3d": this.SerSp3D(oDefStyleLbl.sp3d), "style": this.SerSpStyle(oDefStyleLbl.style), "txPr": this.SerTxPr(oDefStyleLbl.txPr), "name": oDefStyleLbl.name } }; WriterToJSON.prototype.SerSp3D = function(oSp3D) { if (!oSp3D) return undefined; return { "bevelB": this.SerBevel(oSp3D.bevelB), "bevelT": this.SerBevel(oSp3D.bevelT), "contourClr": this.SerContourClr(oSp3D.contourClr), "extrusionClr": this.SerExtrusionClr(oSp3D.extrusionClr), "contourW": oSp3D.contourW, "extrusionH": oSp3D.extrusionH, "prstMaterial": To_XML_ST_PresetMaterialType(oSp3D.prstMaterial), "z": oSp3D.z } }; WriterToJSON.prototype.SerExtrusionClr = function(oExtrusionClr) { if (!oExtrusionClr) return undefined; return { "color": this.SerColor(oExtrusionClr.color) } }; WriterToJSON.prototype.SerContourClr = function(oContourClr) { if (!oContourClr) return undefined; return { "color": this.SerColor(oContourClr.color) } }; WriterToJSON.prototype.SerBevel = function(oBevel) { if (!oBevel) return undefined; return { "h": oBevel.h, "prst": To_XML_ST_BevelPresetType(oBevel.prst), "w": oBevel.w } }; WriterToJSON.prototype.SerScene3d = function(oScene3d) { if (!oScene3d) return undefined; return { "backdrop": this.SerBackdrop(oScene3d.backdrop), "camera": this.SerCamera(oScene3d.camera), "lightRig": this.SerLightRig(oScene3d.lightRig) } }; WriterToJSON.prototype.SerLightRig = function(oLightRig) { if (!oLightRig) return undefined; return { "rot": this.SerCameraRot(oLightRig.rot), "dir": To_XML_ST_LightRigDirection(oLightRig.dir), "rig": To_XML_ST_LightRigType(oLightRig.rig) } }; WriterToJSON.prototype.SerCamera = function(oCamera) { if (!oCamera) return undefined; return { "rot": this.SerCameraRot(oCamera.rot), "fov": oCamera.fov, "prst": To_XML_ST_PresetCameraType(oCamera.prst), "zoom": oCamera.zoom } }; WriterToJSON.prototype.SerCameraRot = function(oCameraRot) { if (!oCameraRot) return undefined; return { "lat": oCameraRot.lat, "lon": oCameraRot.lon, "rev": oCameraRot.rev } }; WriterToJSON.prototype.SerBackdrop = function(oBackdrop) { if (!oBackdrop) return undefined; return { "anchor": { // function BackdropAnchor() "x": oBackdrop.anchor.x, "y": oBackdrop.anchor.y, "z": oBackdrop.anchor.z }, "norm": { // function BackdropNorm() "dx": oBackdrop.norm.dx, "dy": oBackdrop.norm.dy, "dz": oBackdrop.norm.dz }, "up": { // function BackdropUp() "dx": oBackdrop.up.dx, "dy": oBackdrop.up.dy, "dz": oBackdrop.up.dz } } }; WriterToJSON.prototype.SerLayoutDef = function(oLayoutDef) { if (!oLayoutDef) return undefined; return { "catLst": this.SerCatLst(oLayoutDef.catLst), "clrData": this.SerData(oLayoutDef.clrData, "clrData"), "defStyle": oLayoutDef.defStyle, "desc": this.SerDesc(oLayoutDef.desc, "desc"), "layoutNode": this.SerLayoutNode(oLayoutDef.layoutNode), "minVer": oLayoutDef.minVer, "sampData": this.SerData(oLayoutDef.sampData, "sampData"), "styleData": this.SerData(oLayoutDef.styleData, "styleData"), "title": this.SerDesc(oLayoutDef.title, "diagramTitle"), "uniqueId": oLayoutDef.uniqueId } }; WriterToJSON.prototype.SerLayoutNode = function(oLayoutNode) { if (!oLayoutNode) return undefined; var aItems = []; for (var nItem = 0; nItem < oLayoutNode.list.length; nItem++) aItems.push(this.SerNodeItem(oLayoutNode.list[nItem])); return { "chOrder": To_XML_ST_ChildOrderType(oLayoutNode.chOrder), "moveWith": oLayoutNode.moveWith, "name": oLayoutNode.name, "styleLbl": oLayoutNode.styleLbl, "list": aItems, "alg": this.SerNodeItem(oLayoutNode.alg), "shape": this.SerNodeItem(oLayoutNode.shape), "presOf": this.SerNodeItem(oLayoutNode.presOf), "constrLst": this.SerNodeItem(oLayoutNode.constrLst), "ruleLst": this.SerNodeItem(oLayoutNode.ruleLst), "varLst": this.SerNodeItem(oLayoutNode.varLst), "objType": "layoutNode" } }; WriterToJSON.prototype.SerNodeItem = function(oNodeItem) { if (oNodeItem instanceof AscFormat.Alg) return this.SerAlg(oNodeItem); if (oNodeItem instanceof AscFormat.Choose) return this.SerChoose(oNodeItem); if (oNodeItem instanceof AscFormat.ConstrLst) return this.SerConstrLst(oNodeItem); if (oNodeItem instanceof AscFormat.ForEach) return this.SerForEach(oNodeItem); if (oNodeItem instanceof AscFormat.LayoutNode) return this.SerLayoutNode(oNodeItem); if (oNodeItem instanceof AscFormat.PresOf) return this.SerPresOf(oNodeItem); if (oNodeItem instanceof AscFormat.RuleLst) return this.SerRuleLst(oNodeItem); if (oNodeItem instanceof AscFormat.SShape) return this.SerSShape(oNodeItem); if (oNodeItem instanceof AscFormat.VarLst) return this.SerVarLst(oNodeItem); }; WriterToJSON.prototype.SerSShape = function(oSShape) { return { "blip": oSShape.blip, "blipPhldr": oSShape.blipPhldr, "hideGeom": oSShape.hideGeom, "lkTxEntry": oSShape.lkTxEntry, "rot": oSShape.rot, "type": oSShape.type, "zOrderOff": oSShape.zOrderOff, "adjLst": this.SerAdjLst(oSShape.adjLst), "objType": "sshape" } }; WriterToJSON.prototype.SerAdjLst = function(oSerAdjLst) { var aSerAdjLst = []; for (var nRule = 0; nRule < oSerAdjLst.list.length; nRule++) aSerAdjLst.push(this.SerAdj(oSerAdjLst.list[nRule])); return { "list": aSerAdjLst }; }; WriterToJSON.prototype.SerAdj = function(oSerAdj) { return { "idx": oSerAdj.idx, "val": oSerAdj.val }; }; WriterToJSON.prototype.SerRuleLst = function(oRuleLst) { var aRuleLst = []; for (var nRule = 0; nRule < oRuleLst.list.length; nRule++) aRuleLst.push(this.SerRule(oRuleLst.list[nRule])); return { "list": aRuleLst, "objType": "ruleLst" }; }; WriterToJSON.prototype.SerRule = function(oRule) { return { "fact": isNaN(oRule.fact) ? "NaN" : oRule.fact, "for": To_XML_ST_ConstraintRelationship(oRule.for), "forName": oRule.forName, "max": isNaN(oRule.max) ? "NaN" : oRule.max, "ptType": this.SerBaseFormatObj(oRule.ptType, "element"), "type": To_XML_ST_ConstraintType(oRule.type), "val": oRule.val } }; WriterToJSON.prototype.SerPresOf = function(oPresOf) { var oResult = this.SerIteratorAttributes(oPresOf); oResult["objType"] = "presOf"; return oResult; }; WriterToJSON.prototype.SerForEach = function(oForEach) { var aNodeItems = []; for (var nItem = 0; nItem < oForEach.list.length; nItem++) aNodeItems.push(this.SerNodeItem(oForEach.list[nItem])); var oResult = this.SerIteratorAttributes(oForEach); oResult["list"] = aNodeItems; oResult["alg"] = this.SerNodeItem(oForEach.alg); oResult["shape"] = this.SerNodeItem(oForEach.shape); oResult["presOf"] = this.SerNodeItem(oForEach.presOf); oResult["constrLst"] = this.SerNodeItem(oForEach.constrLst); oResult["ruleLst"] = this.SerNodeItem(oForEach.ruleLst); oResult["varLst"] = this.SerNodeItem(oForEach.varLst); oResult["name"] = oForEach.name; oResult["ref"] = oForEach.ref; oResult["objType"] = "forEach"; return oResult; }; WriterToJSON.prototype.SerChoose = function(oChoose) { var aIf = []; for (var nIf = 0; nIf < oChoose.if.length; nIf++) aIf.push(this.SerIf(oChoose.if[nIf])); return { "name": oChoose.name, "if": aIf, "else": this.SerElse(oChoose.else), "objType": "choose" } }; WriterToJSON.prototype.SerIf = function(oIf) { var aNodeItems = []; for (var nItem = 0; nItem < oIf.list.length; nItem++) aNodeItems.push(this.SerNodeItem(oIf.list[nItem])); var oResult = this.SerIteratorAttributes(oIf); oResult["list"] = aNodeItems; oResult["alg"] = this.SerNodeItem(oIf.alg); oResult["shape"] = this.SerNodeItem(oIf.shape); oResult["presOf"] = this.SerNodeItem(oIf.presOf); oResult["constrLst"] = this.SerNodeItem(oIf.constrLst); oResult["ruleLst"] = this.SerNodeItem(oIf.ruleLst); oResult["varLst"] = this.SerNodeItem(oIf.varLst); oResult["arg"] = oIf.arg; oResult["func"] = To_XML_ST_FunctionType(oIf.func); oResult["name"] = oIf.name; oResult["op"] = To_XML_ST_FunctionOperator(oIf.op); oResult["val"] = oIf.val; return oResult; }; WriterToJSON.prototype.SerElse = function(oElse) { var aNodeItems = []; for (var nItem = 0; nItem < oElse.list.length; nItem++) aNodeItems.push(this.SerNodeItem(oElse.list[nItem])); return { "list": aNodeItems, "alg": this.SerNodeItem(oElse.alg), "shape": this.SerNodeItem(oElse.shape), "presOf": this.SerNodeItem(oElse.presOf), "constrLst": this.SerNodeItem(oElse.constrLst), "ruleLst": this.SerNodeItem(oElse.ruleLst), "varLst": this.SerNodeItem(oElse.varLst), "name": oElse.name } }; WriterToJSON.prototype.SerIteratorAttributes = function(oIteratorAttributes) { var aAxis = []; for (var nAxie = 0; nAxie < oIteratorAttributes.axis.length; nAxie++) aAxis.push(this.SerBaseFormatObj(oIteratorAttributes.axis[nAxie], "axie")); var aCnt = []; for (var nCnt = 0; nCnt < oIteratorAttributes.cnt.length; nCnt++) aCnt.push(oIteratorAttributes.cnt[nCnt]); var aHideLastTrans = []; for (var nItem = 0; nItem < oIteratorAttributes.hideLastTrans.length; nItem++) aHideLastTrans.push(oIteratorAttributes.hideLastTrans[nItem]); var aPtTypes = []; for (var nPtType = 0; nPtType < oIteratorAttributes.ptType.length; nPtType++) aPtTypes.push(this.SerBaseFormatObj(oIteratorAttributes.ptType[nPtType], "element")); var aSt = []; for (var nSt = 0; nSt < oIteratorAttributes.st.length; nSt++) aSt.push(oIteratorAttributes.st[nSt]); var aStep = []; for (var nStep = 0; nStep < oIteratorAttributes.step.length; nStep++) aStep.push(oIteratorAttributes.step[nStep]); return { "axis": aAxis, "cnt": aCnt, "hideLastTrans": aHideLastTrans, "ptType": aPtTypes, "st": aSt, "step": aStep } }; WriterToJSON.prototype.SerConstrLst = function(oConstrLst) { var aContsLst = []; for (var nItem = 0; nItem < oConstrLst.list.length; nItem++) aContsLst.push(this.SerConstr(oConstrLst.list[nItem])); return { "list": aContsLst, "objType": "constrLst" } }; WriterToJSON.prototype.SerConstr = function(oConstr) { return { "fact": oConstr.fact, "for": To_XML_ST_ConstraintRelationship(oConstr.for), "forName": oConstr.forName, "op": To_XML_ST_BoolOperator(oConstr.op), "ptType": this.SerBaseFormatObj(oConstr.ptType, "element"), "refFor": To_XML_ST_ConstraintRelationship(oConstr.refFor), "refForName": oConstr.refForName, "refPtType": this.SerBaseFormatObj(oConstr.refPtType, "element"), "refType": To_XML_ST_ConstraintType(oConstr.refType), "type": To_XML_ST_ConstraintType(oConstr.type), "val": oConstr.val, "objType": "constrLst" } }; WriterToJSON.prototype.SerAlg = function(oAlg) { var aParams = []; for (var nParam = 0; nParam < oAlg.param.length; nParam++) aParams.push(this.SerAlgParam(oAlg.param[nParam])); return { "param": aParams, "rev": oAlg.rev, "type": To_XML_ST_AlgorithmType(oAlg.type), "objType": "alg" } }; WriterToJSON.prototype.SerAlgParam = function(oAlgParam) { return { "type": To_XML_ST_ParameterId(oAlgParam.type), "val": oAlgParam.val } }; WriterToJSON.prototype.SerData = function(oData, sType) { if (!oData) return undefined; var oResult = { "dataModel": this.SerDataModel(oData.dataModel), "type": sType } switch (sType) { case "diagramData": break; case "styleData": case "clrData": case "sampData": oResult["useDef"] = oData.useDef; break; } return oResult; }; WriterToJSON.prototype.SerDataModel = function(oDataModel) { if (!oDataModel) return undefined; return { "bg": this.SerBgFormat(oDataModel.bg), "cxnLst": this.SerCxnLst(oDataModel.cxnLst), "ptLst": this.SerPtLst(oDataModel.ptLst), "whole": this.SerWhole(oDataModel.whole) } }; WriterToJSON.prototype.SerWhole = function(oWhole) { if (!oWhole) return undefined; return { "effectLst": oWhole.effect ? this.SerEffectLst(oWhole.effect.EffectLst) : oWhole.effect, "effectDag": oWhole.effect ? this.SerEffectDag(oWhole.effect.EffectDag) : oWhole.effect, "ln": this.SerLn(oWhole.ln) } }; WriterToJSON.prototype.SerPtLst = function(oPtLst) { if (!oPtLst) return undefined; var aPtLst = []; for (var nItem = 0; nItem < oPtLst.list.length; nItem++) aPtLst.push(this.SerPt(oPtLst.list[nItem])); return { "list": aPtLst } }; WriterToJSON.prototype.SerPt = function(oPt) { return { "prSet": this.SerPtPrSet(oPt.prSet), "spPr": this.SerSpPr(oPt.spPr), "t": this.SerTxPr(oPt.t), "cxnId": oPt.cxnId, "modelId": oPt.modelId, "type": To_XML_ST_PtType(oPt.type) } }; WriterToJSON.prototype.SerPtPrSet = function(oPtPrSet) { if (!oPtPrSet) return undefined; return { "coherent3DOff": oPtPrSet.coherent3DOff, "csCatId": oPtPrSet.csCatId, "csTypeId": oPtPrSet.csTypeId, "custAng": oPtPrSet.custAng, "custFlipHor": oPtPrSet.custFlipHor, "custFlipVert": oPtPrSet.custFlipVert, "custLinFactNeighborX": oPtPrSet.custLinFactNeighborX, "custLinFactNeighborY": oPtPrSet.custLinFactNeighborY, "custLinFactX": oPtPrSet.custLinFactX, "custLinFactY": oPtPrSet.custLinFactY, "custRadScaleInc": oPtPrSet.custRadScaleInc, "custRadScaleRad": oPtPrSet.custRadScaleRad, "custScaleX": oPtPrSet.custScaleX, "custScaleY": oPtPrSet.custScaleY, "custSzX": oPtPrSet.custSzX, "custSzY": oPtPrSet.custSzY, "custT": oPtPrSet.custT, "loCatId": oPtPrSet.loCatId, "loTypeId": oPtPrSet.loTypeId, "phldr": oPtPrSet.phldr, "phldrT": oPtPrSet.phldrT, "presAssocID": oPtPrSet.presAssocID, "presLayoutVars": this.SerNodeItem(oPtPrSet.presLayoutVars), "presName": oPtPrSet.presName, "presStyleCnt": oPtPrSet.presStyleCnt, "presStyleIdx": oPtPrSet.presStyleIdx, "presStyleLbl": oPtPrSet.presStyleLbl, "qsCatId": oPtPrSet.qsCatId, "qsTypeId": oPtPrSet.qsTypeId, "style": this.SerData(oPtPrSet.style, "styleData") } }; WriterToJSON.prototype.SerVarLst = function(oPresLayoutVars) { if (!oPresLayoutVars) return undefined; return { "animLvl": this.SerBaseFormatObj(oPresLayoutVars.animLvl, "animLvl"), "animOne": this.SerBaseFormatObj(oPresLayoutVars.animOne, "animOne"), "bulletEnabled": this.SerBaseFormatObj(oPresLayoutVars.bulletEnabled, "bulletEnabled"), "chMax": this.SerBaseFormatObj(oPresLayoutVars.chMax, "chMax"), "chPref": this.SerBaseFormatObj(oPresLayoutVars.chPref, "chPref"), "dir": this.SerBaseFormatObj(oPresLayoutVars.dir, "dir"), "hierBranch": this.SerBaseFormatObj(oPresLayoutVars.hierBranch, "hierBranch"), "orgChart": this.SerBaseFormatObj(oPresLayoutVars.orgChart, "orgChart"), "resizeHandles": this.SerBaseFormatObj(oPresLayoutVars.resizeHandles, "resizeHandles"), "objType": "varLst" } }; WriterToJSON.prototype.SerBaseFormatObj = function(value, sType) { if (value === null) return undefined; var oResult = { "type": sType }; switch (sType) { case "animLvl": oResult["val"] = To_XML_ST_AnimLvlStr(value); break; case "animOne": oResult["val"] = To_XML_ST_AnimOneStr(value); break; case "bulletEnabled": case "chMax": case "chPref": case "orgChart": oResult["val"] = value; break; case "dir": oResult["val"] = To_XML_ST_Direction(value) break; case "hierBranch": oResult["val"] = To_XML_ST_HierBranchStyle(value); break; case "resizeHandles": oResult["val"] = To_XML_ST_ResizeHandlesStr(value); break; case "element": oResult["val"] = To_XML_ST_ElementType(value); break; case "axie": oResult["val"] = To_XML_ST_AxisType(value); break; } return oResult; }; WriterToJSON.prototype.SerCxnLst = function(oCxnLst) { if (!oCxnLst) return undefined; var aCxnLst = []; for (var nItem = 0; nItem < oCxnLst.list.length; nItem++) aCxnLst.push(this.SerCxn(oCxnLst.list[nItem])); return { "list": aCxnLst } }; WriterToJSON.prototype.SerCxn = function(oCxn) { return { "destId": oCxn.destId, "destOrd": oCxn.destOrd, "modelId": oCxn.modelId, "parTransId": oCxn.parTransId, "presId": oCxn.presId, "sibTransId": oCxn.sibTransId, "srcId": oCxn.srcId, "srcOrd": oCxn.srcOrd, "type": oCxn.type } }; WriterToJSON.prototype.SerBgFormat = function(oBgFormat) { if (!oBgFormat) return undefined; return { "effectLst": oBgFormat.effect ? this.SerEffectLst(oBgFormat.effect.EffectLst) : oBgFormat.effect, "effectDag": oBgFormat.effect ? this.SerEffectDag(oBgFormat.effect.EffectDag) : oBgFormat.effect, "fill": this.SerFill(oBgFormat.fill) } }; WriterToJSON.prototype.SerColorsDef = function(oColorsDef) { if (!oColorsDef) return undefined; var aStyleLbl = []; for (let name in oColorsDef.styleLbl) { aStyleLbl.push(this.SerColorDefStyleLbl(oColorsDef.styleLbl[name])); } return { "catLst": this.SerCatLst(oColorsDef.catLst), "desc": this.SerDesc(oColorsDef.desc, "desc"), "styleLbl": aStyleLbl, "title": this.SerDesc(oColorsDef.title, "diagramTitle"), "minVer": oColorsDef.minVer, "uniqueId": oColorsDef.uniqueId } }; WriterToJSON.prototype.SerColorDefStyleLbl = function(oStyleLbl) { if (!oStyleLbl) return undefined; return { "effectClrLst": this.SerClrLst(oStyleLbl.effectClrLst, "effectClrLst"), "fillClrLst": this.SerClrLst(oStyleLbl.fillClrLst, "fillClrLst"), "linClrLst": this.SerClrLst(oStyleLbl.linClrLst, "linClrLst"), "txEffectClrLst": this.SerClrLst(oStyleLbl.txEffectClrLst, "txEffectClrLst"), "txFillClrLst": this.SerClrLst(oStyleLbl.txFillClrLst, "txFillClrLst"), "txLinClrLst": this.SerClrLst(oStyleLbl.txLinClrLst, "txLinClrLst"), "name": oStyleLbl.name } }; WriterToJSON.prototype.SerClrLst = function(oClrLst, sType) { if (!oClrLst) return undefined; var aColors = []; for (var nColor = 0; nColor < oClrLst.list.length; nColor++) aColors.push(this.SerColor(oClrLst.list[nColor])); return { "list": aColors, "hueDir": To_XML_ST_HueDir(oClrLst.hueDir), "meth": To_XML_ST_ClrAppMethod(oClrLst.meth), "type": sType } }; WriterToJSON.prototype.SerDesc = function(oDesc, sType) { if (!oDesc) return undefined; return { "lang": oDesc.lang, "val": oDesc.val, "type": sType } }; WriterToJSON.prototype.SerCatLst = function(oCatLst) { if (!oCatLst) return undefined; var aCatLst = []; for (var nCat = 0; nCat < oCatLst.list.length; nCat++) aCatLst.push(this.SerSCat(oCatLst.list[nCat])); return { "list": aCatLst } }; WriterToJSON.prototype.SerSCat = function(oSCat) { return { "pri": oSCat.pri, "type": oSCat.type } }; WriterToJSON.prototype.SerDrawing = function(oDrawing) { var aSpTree = []; for (var nDrawing = 0; nDrawing < oDrawing.spTree.length; nDrawing++) aSpTree.push(this.SerGraphicObject(oDrawing.spTree[nDrawing])); return { "spTree": aSpTree, "spPr": this.SerSpPr(oDrawing.spPr), "nvGrpSpPr": this.SerUniNvPr(oDrawing.nvGrpSpPr, oDrawing.locks, oDrawing.getObjectType()), "type": "drawing" } }; WriterToJSON.prototype.SerGraphicFrame = function(oGraphicFrame) { return { "graphic": this.SerDrawingTable(oGraphicFrame.graphicObject), "nvGraphicFramePr": this.SerUniNvPr(oGraphicFrame.nvGraphicFramePr, oGraphicFrame.locks, oGraphicFrame.getObjectType()), "spPr": this.SerSpPr(oGraphicFrame.spPr), "type": "graphicFrame" } }; WriterToJSON.prototype.SerCNvPr = function(oCNvPr) { if (!oCNvPr) return undefined; return { "hlinkClick": this.SerHlink(oCNvPr.hlinkClick), "hlinkHover": this.SerHlink(oCNvPr.hlinkHover), "descr": oCNvPr.descr, "hidden": oCNvPr.isHidden, "id": oCNvPr.id, "name": oCNvPr.name, "title": oCNvPr.title } }; WriterToJSON.prototype.SerNvPr = function(oNvPr) { if (!oNvPr) return undefined; var oResult = { "isPhoto": oNvPr.isPhoto, "ph": this.SerPlaceholder(oNvPr.ph), "userDrawn": oNvPr.userDrawn } if (oNvPr.unimedia && oNvPr.unimedia.type !== null && typeof oNvPr.unimedia.media === "string" && oNvPr.unimedia.media.length > 0) { switch (oNvPr.unimedia.type) { case AscFormat.AUDIO_FILE: oResult["video"] = oNvPr.unimedia.media; break; case AscFormat.VIDEO_FILE: oResult["audio"] = oNvPr.unimedia.media; break; } } return oResult; }; WriterToJSON.prototype.SerPlaceholder = function(oPh) { if (!oPh) return undefined; // orient var sOrient = typeof(oPh.orient) === "number" ? (oPh.orient === 1 ? "vert" : "horz") : null; // size var sPhSz = null; switch (oPh.sz) { case 0: sPhSz = "full"; break; case 1: sPhSz = "half"; break; case 2: sPhSz = "quarter"; break; } return { "hasCustomPrompt": oPh.hasCustomPrompt, "idx": oPh.idx, "orient": sOrient, "sz": sPhSz, "type": this.GetStrPhType(oPh.type) } }; WriterToJSON.prototype.GetStrPhType = function(nType) { switch (nType) { case AscFormat.phType_body: return "body"; case AscFormat.phType_chart: return "sPhType"; case AscFormat.phType_clipArt: return "clipArt"; case AscFormat.phType_ctrTitle: return "ctrTitle"; case AscFormat.phType_dgm: return "dgm"; case AscFormat.phType_dt: return "dt"; case AscFormat.phType_ftr: return "ftr"; case AscFormat.phType_hdr: return "hdr"; case AscFormat.phType_media: return "media"; case AscFormat.phType_obj: return "obj"; case AscFormat.phType_pic: return "pic"; case AscFormat.phType_sldImg: return "sldImg"; case AscFormat.phType_sldNum: return "sldNum"; case AscFormat.phType_subTitle: return "subTitle"; case AscFormat.phType_tbl: return "tbl"; case AscFormat.phType_title: return "title"; } }; WriterToJSON.prototype.SerNumLit = function(oNumLit) { if (!oNumLit) return undefined; var arrResultPts = []; for (var nItem = 0; nItem < oNumLit.pts.length; nItem++) { arrResultPts.push({ "v": oNumLit.pts[nItem].val, "formatCode": oNumLit.pts[nItem].formatCode, "idx": oNumLit.pts[nItem].idx }); } return { "formatCode": oNumLit.formatCode, "pt": arrResultPts, "ptCount": oNumLit.ptCount } }; WriterToJSON.prototype.SerStrLit = function(oStrLit) { if (!oStrLit) return undefined; var arrResultPts = []; for (var nItem = 0; nItem < oStrLit.pts.length; nItem++) { arrResultPts.push({ "v": oStrLit.pts[nItem].val, "idx": oStrLit.pts[nItem].idx, }); } return { "pt": arrResultPts, "ptCount": oStrLit.ptCount } }; WriterToJSON.prototype.SerErrBars = function(aErrBars) { if(!Array.isArray(aErrBars)) return undefined; let aResult = []; for (let nErrBar = 0; nErrBar < aErrBars.length; ++nErrBar) { let oErrBars = aErrBars[nErrBar]; if (!oErrBars) return undefined; let sErrBarType = undefined; switch(oErrBars.errBarType) { case AscFormat.st_errbartypeBOTH: sErrBarType = "both"; break; case AscFormat.st_errbartypeMINUS: sErrBarType = "minus"; break; case AscFormat.st_errbartypePLUS: sErrBarType = "plus"; break; } let sErrDir = oErrBars.errDir === AscFormat.st_errdirX ? "x" : "y"; let sErrValType = undefined; switch(oErrBars.errValType) { case AscFormat.st_errvaltypeCUST: sErrValType = "cust"; break; case AscFormat.st_errvaltypeFIXEDVAL: sErrValType = "fixedVal"; break; case AscFormat.st_errvaltypePERCENTAGE: sErrValType = "percentage"; break; case AscFormat.st_errvaltypeSTDDEV: sErrValType = "stdDev"; break; case AscFormat.st_errvaltypeSTDERR: sErrValType = "stdErr"; break; } aResult.push({ "errBarType": sErrBarType, "errDir": sErrDir, "errValType": sErrValType, "minus": this.SerMinusPlus(oErrBars.minus), "noEndCap": oErrBars.noEndCap, "plus": this.SerMinusPlus(oErrBars.plus), "spPr": this.SerSpPr(oErrBars.spPr), "val": oErrBars.val }); } return aResult; }; WriterToJSON.prototype.SerMinusPlus = function(oMinusPlus) { if (!oMinusPlus) return undefined; return { "numLit": this.SerNumLit(oMinusPlus.numLit), "numRef": this.SerNumRef(oMinusPlus.numRef) } }; WriterToJSON.prototype.SerDataPoints = function(arrDpts) { var arrResultDataPoints = []; for (var nItem = 0; nItem < arrDpts.length; nItem++) { arrResultDataPoints.push({ "bubble3D": arrDpts[nItem].bubble3D, "explosion": arrDpts[nItem].explosion, "idx": arrDpts[nItem].idx, "invertIfNegative": arrDpts[nItem].invertIfNegative, "marker": this.SerMarker(arrDpts[nItem].marker), "pictureOptions": this.SerPicOptions(arrDpts[nItem].pictureOptions), "spPr": this.SerSpPr(arrDpts[nItem].spPr) }); } return arrResultDataPoints; }; WriterToJSON.prototype.SerMultiLvlStrRef = function(oRef) { if (!oRef) return undefined; return { "f": oRef.f, "multiLvlStrCache": this.SerMultiLvlStrCache(oRef.multiLvlStrCache) } }; WriterToJSON.prototype.SerMultiLvlStrCache = function(oCache) { if (!oCache) return undefined; var arrLvl = []; for (var nLvl = 0; nLvl < oCache.lvl.length; nLvl++) arrLvl.push(this.SerStrLit(oCache.lvl[nLvl])); return { "lvl": arrLvl, "ptCount": oCache.ptCount } }; WriterToJSON.prototype.SerTrendline = function(oTrendLine) { if (!oTrendLine) return undefined; var sTrendlineType = undefined; switch(oTrendLine.trendlineType) { case AscFormat.st_trendlinetypeEXP: sTrendlineType = "exp"; break; case AscFormat.st_trendlinetypeLINEAR: sTrendlineType = "linear"; break; case AscFormat.st_trendlinetypeLOG: sTrendlineType = "log"; break; case AscFormat.st_trendlinetypeMOVINGAVG: sTrendlineType = "movingAvg"; break; case AscFormat.st_trendlinetypePOLY: sTrendlineType = "poly"; break; case AscFormat.st_trendlinetypePOWER: sTrendlineType = "power"; break; } return { "backward": oTrendLine.backward, "dispEq": oTrendLine.dispEq, "dispRSqr": oTrendLine.dispRSqr, "forward": oTrendLine.forward, "intercept": oTrendLine.intercept, "name": oTrendLine.name, "order": oTrendLine.order, "period": oTrendLine.period, "spPr": this.SerSpPr(oTrendLine.spPr), "trendlineLbl": this.SerDlbl(oTrendLine.trendlineLbl), "trendlineType": sTrendlineType } }; WriterToJSON.prototype.SerTrendlines = function(trendlines) { const serializedArray = []; if (Array.isArray(trendlines)) { for (let i = 0; i < trendlines.length; ++i) { const trendline = trendlines[i]; const serializedTrendline = this.SerTrendline(trendline); if (serializedTrendline) { serializedArray.push(serializedTrendline); } } } return serializedArray; }; WriterToJSON.prototype.SerPicOptions = function(oPicOptions) { if (!oPicOptions) return undefined; return { "applyToEnd": oPicOptions.applyToEnd, "applyToFront": oPicOptions.applyToFront, "applyToSides": oPicOptions.applyToSides, "pictureFormat": oPicOptions.pictureFormat, "pictureStackUnit": oPicOptions.pictureStackUnit }; }; WriterToJSON.prototype.SerBarSeries = function(arrSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrSeries[nItem].cat), "dLbls": this.SerDLbls(arrSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrSeries[nItem].dPt), "errBars": this.SerErrBars(arrSeries[nItem].errBars), "idx": arrSeries[nItem].idx, "invertIfNegative": arrSeries[nItem].invertIfNegative, "order": arrSeries[nItem].order, "pictureOptions": this.SerPicOptions(arrSeries[nItem].pictureOptions), "shape": ToXml_ST_Shape(arrSeries[nItem].shape), "spPr": this.SerSpPr(arrSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrSeries[nItem].trendlines), "tx": this.SerSerTx(arrSeries[nItem].tx), "val": this.SerYVAL(arrSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerYVAL = function(oVal) { return { "numLit": this.SerNumLit(oVal.numLit), "numRef": this.SerNumRef(oVal.numRef) } }; WriterToJSON.prototype.SerCat = function(oCat) { if (!oCat) return undefined; return { "multiLvlStrRef": this.SerMultiLvlStrRef(oCat.multiLvlStrRef), "numLit": this.SerNumLit(oCat.numLit), "numRef": this.SerNumRef(oCat.numRef), "strLit": this.SerStrLit(oCat.strLit), "strRef": this.SerStrRef(oCat.strRef) } }; WriterToJSON.prototype.SerStrRef = function(oStrRef) { if (!oStrRef) return undefined; var arrResultPts = []; for (var nItem = 0; nItem < oStrRef.strCache.pts.length; nItem++) { arrResultPts.push({ "v": oStrRef.strCache.pts[nItem].val, "idx": oStrRef.strCache.pts[nItem].idx }); } return { "f": oStrRef.f, "strCache": { "ptCount": oStrRef.strCache.ptCount, "pt": arrResultPts } } }; WriterToJSON.prototype.SerNumRef = function(oNumRef) { if (!oNumRef) return undefined; return { "f": oNumRef.f, "numCache": this.SerNumLit(oNumRef.numCache) } }; WriterToJSON.prototype.SerGeometry = function(oGeometry) { if (!oGeometry) return undefined; // AhPolar var arrAhPolarResult = []; for (var nItem = 0; nItem < oGeometry.ahPolarLstInfo.length; nItem++) { arrAhPolarResult.push({ "pos": { "x": oGeometry.ahPolarLstInfo[nItem].posX, "y": oGeometry.ahPolarLstInfo[nItem].posY }, "gdRefAng": oGeometry.ahPolarLstInfo[nItem].gdRefAng, "gdRefR": oGeometry.ahPolarLstInfo[nItem].gdRefR, "maxAng": oGeometry.ahPolarLstInfo[nItem].maxAng, "maxR": oGeometry.ahPolarLstInfo[nItem].maxR, "minAng": oGeometry.ahPolarLstInfo[nItem].minAng, "minR": oGeometry.ahPolarLstInfo[nItem].minR }); } // AhXY var arrAhXYResult = []; for (nItem = 0; nItem < oGeometry.ahXYLstInfo.length; nItem++) { arrAhXYResult.push({ "pos": { "x": oGeometry.ahXYLstInfo[nItem].posX, "y": oGeometry.ahXYLstInfo[nItem].posY }, "gdRefX": oGeometry.ahXYLstInfo[nItem].gdRefX, "gdRefY": oGeometry.ahXYLstInfo[nItem].gdRefY, "maxX": oGeometry.ahXYLstInfo[nItem].maxX, "maxY": oGeometry.ahXYLstInfo[nItem].maxY, "minX": oGeometry.ahXYLstInfo[nItem].minX, "minY": oGeometry.ahXYLstInfo[nItem].minY }); } // Av var oAvResult = {}; for (var key in oGeometry.avLst) oAvResult[key] = oGeometry.avLst[key] // adj var oAdjLst = {}; for (key in oAvResult) { if (oAvResult[key]) oAdjLst[key] = oGeometry.gdLst[key]; } // Cnx var arrCxnResult = []; for (nItem = 0; nItem < oGeometry.cnxLstInfo.length; nItem++) { arrCxnResult.push({ "pos": { "x": oGeometry.cnxLstInfo[nItem].x, "y": oGeometry.cnxLstInfo[nItem].y }, "ang": oGeometry.cnxLstInfo[nItem].ang }); } // Gd var arrGdResult = []; for (nItem = 0; nItem < oGeometry.gdLstInfo.length; nItem++) { arrGdResult.push({ "fmla": this.GetFormulaStrType(oGeometry.gdLstInfo[nItem].formula), "x": oGeometry.gdLstInfo[nItem].x, "y": oGeometry.gdLstInfo[nItem].y, "z": oGeometry.gdLstInfo[nItem].z, "name": oGeometry.gdLstInfo[nItem].name }); } // Commands var arrPathResult = []; for (nItem = 0; nItem < oGeometry.pathLst.length; nItem++) arrPathResult.push(this.SerGeomPath(oGeometry.pathLst[nItem])); return { "ahLst": { "ahPolar": arrAhPolarResult, "ahXY": arrAhXYResult }, "avLst": oAvResult, "adjLst": oAdjLst, "cnxLst": arrCxnResult, "gdLst": arrGdResult, "pathLst": arrPathResult, "rect": oGeometry.rectS, "preset": oGeometry.preset } }; WriterToJSON.prototype.SerGeomPath = function(oPath) { if (!oPath) return undefined; var arrCommands = []; for (var nCommand = 0; nCommand < oPath.ArrPathCommandInfo.length; nCommand++) { var oCommand = {}; switch (oPath.ArrPathCommandInfo[nCommand].id) { case 0: oCommand["id"] = "moveTo"; oCommand["pt"] = { "x": oPath.ArrPathCommandInfo[nCommand].X, "y": oPath.ArrPathCommandInfo[nCommand].Y }; break; case 1: oCommand["id"] = "lnTo"; oCommand["pt"] = { "x": oPath.ArrPathCommandInfo[nCommand].X, "y": oPath.ArrPathCommandInfo[nCommand].Y }; break; case 2: oCommand["id"] = "arcTo"; oCommand["hR"] = oPath.ArrPathCommandInfo[nCommand].hR; oCommand["wR"] = oPath.ArrPathCommandInfo[nCommand].wR; oCommand["stAng"] = oPath.ArrPathCommandInfo[nCommand].stAng; oCommand["swAng"] = oPath.ArrPathCommandInfo[nCommand].swAng; break; case 3: oCommand["id"] = "cubicBezTo"; oCommand["pt"] = { "x0": oPath.ArrPathCommandInfo[nCommand].X0, "y0": oPath.ArrPathCommandInfo[nCommand].Y0, "x1": oPath.ArrPathCommandInfo[nCommand].X1, "y1": oPath.ArrPathCommandInfo[nCommand].Y1, }; break; case 4: oCommand["id"] = "quadBezTo"; oCommand["pt"] = { "x0": oPath.ArrPathCommandInfo[nCommand].X0, "y0": oPath.ArrPathCommandInfo[nCommand].Y0, "x1": oPath.ArrPathCommandInfo[nCommand].X1, "y1": oPath.ArrPathCommandInfo[nCommand].Y1, "x2": oPath.ArrPathCommandInfo[nCommand].X2, "y2": oPath.ArrPathCommandInfo[nCommand].Y2, }; break; case 5: oCommand["id"] = "close"; break; } arrCommands.push(oCommand); } return { "commands": arrCommands, "extrusionOk": oPath.extrusionOk, "fill": oPath.fill, "h": oPath.pathH, "stroke": oPath.stroke, "w": oPath.pathW } }; WriterToJSON.prototype.GetFormulaStrType = function(nFormulaType) { var sFormulaType = undefined; switch(nFormulaType) { case AscFormat.FORMULA_TYPE_MULT_DIV: sFormulaType = "*/"; break; case AscFormat.FORMULA_TYPE_PLUS_MINUS: sFormulaType = "+-"; break; case AscFormat.FORMULA_TYPE_PLUS_DIV: sFormulaType = "+/"; break; case AscFormat.FORMULA_TYPE_IF_ELSE: sFormulaType = "?:"; break; case AscFormat.FORMULA_TYPE_ABS: sFormulaType = "abs"; break; case AscFormat.FORMULA_TYPE_AT2: sFormulaType = "at2"; break; case AscFormat.FORMULA_TYPE_CAT2: sFormulaType = "cat2"; break; case AscFormat.FORMULA_TYPE_COS: sFormulaType = "cos"; break; case AscFormat.FORMULA_TYPE_MAX: sFormulaType = "max"; break; case AscFormat.FORMULA_TYPE_MOD: sFormulaType = "mod"; break; case AscFormat.FORMULA_TYPE_PIN: sFormulaType = "pin"; break; case AscFormat.FORMULA_TYPE_SAT2: sFormulaType = "sat2"; break; case AscFormat.FORMULA_TYPE_SIN: sFormulaType = "sin"; break; case AscFormat.FORMULA_TYPE_SQRT: sFormulaType = "sqrt"; break; case AscFormat.FORMULA_TYPE_TAN: sFormulaType = "tan"; break; case AscFormat.FORMULA_TYPE_VALUE: sFormulaType = "val"; break; case AscFormat.FORMULA_TYPE_MIN: sFormulaType = "min"; break; } return sFormulaType; }; WriterToJSON.prototype.SerSpPr = function(oSpPr) { if (!oSpPr) return undefined; var oEffectLst = oSpPr.effectProps ? this.SerEffectLst(oSpPr.effectProps.EffectLst) : oSpPr.effectProps; var oEffectDag = oSpPr.effectProps ? this.SerEffectDag(oSpPr.effectProps.EffectDag) : oSpPr.effectProps; return { "custGeom": this.SerGeometry(oSpPr.geometry), "effectDag": oEffectDag, "effectLst": oEffectLst, "ln": this.SerLn(oSpPr.ln), "fill": this.SerFill(oSpPr.Fill), "xfrm": this.SerXfrm(oSpPr.xfrm), "bwMode": oSpPr.bwMode } }; WriterToJSON.prototype.SerXfrm = function(oXfrm) { if (!oXfrm) return undefined; return { "ext": { "cx": oXfrm.extX ? private_MM2EMU(oXfrm.extX) : oXfrm.extX, "cy": oXfrm.extY ? private_MM2EMU(oXfrm.extY) : oXfrm.extY }, "off": { "x": oXfrm.offX ? private_MM2EMU(oXfrm.offX) : oXfrm.offX, "y": oXfrm.offY ? private_MM2EMU(oXfrm.offY) : oXfrm.offY }, "flipH": oXfrm.flipH, "flipV": oXfrm.flipV, "rot": oXfrm.rot, "chOffX": oXfrm.chOffX ? private_MM2EMU(oXfrm.chOffX) : oXfrm.chOffX, "chOffY": oXfrm.chOffY ? private_MM2EMU(oXfrm.chOffY) : oXfrm.chOffY, "chExtX": oXfrm.chExtX ? private_MM2EMU(oXfrm.chExtX) : oXfrm.chExtX, "chExtY": oXfrm.chExtY ? private_MM2EMU(oXfrm.chExtY) : oXfrm.chExtY } }; WriterToJSON.prototype.SerLn = function(oLn) { if (!oLn) return undefined; var sAlgnType = oLn.algn != undefined ? (oLn.algn === 0 ? "ctr" : "in") : oLn.algn; var sCapType = undefined; switch (oLn.cap) { case 0: sCapType = "flat"; break; case 1: sCapType = "rnd"; break; case 2: sCapType = "sq"; break; } var sCmpdType = undefined; switch(oLn.cmpd) { case 0: sCmpdType = "dbl"; break; case 1: sCmpdType = "sng"; break; case 2: sCmpdType = "thickThin"; break; case 3: sCmpdType = "thinThick"; break; case 4: sCmpdType = "tri"; break; } return { "fill": this.SerFill(oLn.Fill), "lineJoin": this.SerLineJoin(oLn.Join), "algn": sAlgnType, "cap": sCapType, "cmpd": sCmpdType, "w": oLn.w, "headEnd": this.SerEndArrow(oLn.headEnd), "prstDash": this.GetPenDashStrType(oLn.prstDash), "tailEnd": this.SerEndArrow(oLn.tailEnd), "type": "stroke" } }; WriterToJSON.prototype.SerLineJoin = function(oLine) { if (!oLine) return undefined; var sType = undefined; switch (oLine.type) { case AscFormat.LineJoinType.Round: sType = "round"; break; case AscFormat.LineJoinType.Bevel: sType = "bevel"; break; case AscFormat.LineJoinType.Miter: sType = "miter"; break; case AscFormat.LineJoinType.Empty: sType = "empty"; break; } return { "type": sType, "lim": oLine.limit != null ? oLine.limit : undefined } }; WriterToJSON.prototype.SerEndArrow = function(oArrow) { if (!oArrow) return undefined; var sType = null; switch(oArrow.type) { case AscFormat.LineEndType.None: sType = "none"; break; case AscFormat.LineEndType.Arrow: sType = "arrow"; break; case AscFormat.LineEndType.Diamond: sType = "diamond"; break; case AscFormat.LineEndType.Oval: sType = "oval"; break; case AscFormat.LineEndType.Stealth: sType = "stealth"; break; case AscFormat.LineEndType.Triangle: sType = "triangle"; break; } var sLineEndSize = null; switch(oArrow.len) { case AscFormat.LineEndSize.Large: sLineEndSize = "lg"; break; case AscFormat.LineEndSize.Mid: sLineEndSize = "med"; break; case AscFormat.LineEndSize.Small: sLineEndSize = "sm"; break; } var sLineEndWidth = null; switch(oArrow.w) { case AscFormat.LineEndSize.Large: sLineEndWidth = "lg"; break; case AscFormat.LineEndSize.Mid: sLineEndWidth = "med"; break; case AscFormat.LineEndSize.Small: sLineEndWidth = "sm"; break; } return { "len": sLineEndSize, "type": sType, "w": sLineEndWidth } }; WriterToJSON.prototype.SerEffectLst = function(oEffectLst) { if (!oEffectLst) return undefined; return { "blur": this.SerEffect(oEffectLst.blur), "fillOverlay": this.SerEffect(oEffectLst.fillOverlay), "glow": this.SerEffect(oEffectLst.glow), "innerShdw": this.SerEffect(oEffectLst.innerShdw), "outerShdw": this.SerEffect(oEffectLst.outerShdw), "prstShdw": this.SerEffect(oEffectLst.prstShdw), "reflection": this.SerEffect(oEffectLst.reflection), "softEdge": this.SerEffect(oEffectLst.softEdge) } }; WriterToJSON.prototype.SerEffectDag = function(oEffectDag) { if (!oEffectDag) return undefined; var arrEffectLst = this.SerEffects(oEffectDag.effectList); return { "effectList": arrEffectLst, "name": oEffectDag.name, "type": oEffectDag.type } }; WriterToJSON.prototype.SerEffects = function(arrEffects) { var arrEffectLst = []; for (var nEffect = 0; nEffect < arrEffects.length; nEffect++) arrEffectLst.push(this.SerEffect(arrEffects[nEffect])); return arrEffectLst; }; WriterToJSON.prototype.SerEffect = function(oEffect) { var oElm = null; var sBlendType; if (oEffect instanceof AscFormat.CAlphaBiLevel) { oElm = { "thresh": oEffect.tresh, "type": "alphaBiLvl" } } else if (oEffect instanceof AscFormat.CAlphaCeiling) { oElm = { "type": "alphaCeiling" } } else if (oEffect instanceof AscFormat.CAlphaFloor) { oElm = { "type": "alphaFloor" } } else if (oEffect instanceof AscFormat.CAlphaInv) { oElm = { "color": this.SerColor(oEffect.unicolor), "type": "alphaInv" } } else if (oEffect instanceof AscFormat.CAlphaMod) { oElm = { "cont": this.SerEffectDag(oEffect.cont), "type": "alphaMod" } } else if (oEffect instanceof AscFormat.CAlphaModFix) { oElm = { "amt": oEffect.amt, "type": "alphaModFix" } } else if (oEffect instanceof AscFormat.CAlphaOutset) { oElm = { "rad": oEffect.rad, "type": "alphaOutset" } } else if (oEffect instanceof AscFormat.CAlphaRepl) { oElm = { "a": oEffect.a, "type": "alphaRepl" } } else if (oEffect instanceof AscFormat.CBiLevel) { oElm = { "thresh": oEffect.thresh, "type": "biLvl" } } else if (oEffect instanceof AscFormat.CBlend) { sBlendType = To_XML_ST_BlendMode(oEffect.blend); oElm = { "cont": this.SerEffectDag(oEffect.cont), "blend": sBlendType, "type": "blend" } } else if (oEffect instanceof AscFormat.CBlur) { oElm = { "grow": oEffect.grow, "rad": oEffect.rad, "type": "blur" } } else if (oEffect instanceof AscFormat.CClrChange) { oElm = { "clrFrom": this.SerColor(oEffect.clrFrom), "clrTo": this.SerColor(oEffect.clrTo), "useA": oEffect.useA, "type": "clrChange" } } else if (oEffect instanceof AscFormat.CClrRepl) { oElm = { "color": this.SerColor(oEffect.color), "type": "clrRepl" } } else if (oEffect instanceof AscFormat.CEffectContainer) { oElm = { "cont": this.SerEffectDag(oEffect), "type": "effCont" } } else if (oEffect instanceof AscFormat.CDuotone) { var arrColors = []; for (var nColor = 0; nColor < oEffect.colors.length; nColor++) arrColors.push(this.SerColor(oEffect.colors[nColor])); oElm = { "colors": arrColors, "type": "duotone" } } else if (oEffect instanceof AscFormat.CEffectElement) { oElm = { "ref": oEffect.ref, "type": "effect" } } else if (oEffect instanceof AscFormat.CFillEffect) { oElm = { "fill": this.SerFill(oEffect.fill), "type": "fill" } } else if (oEffect instanceof AscFormat.CFillOverlay) { sBlendType = To_XML_ST_BlendMode(oEffect.blend); oElm = { "fill": this.SerFill(oEffect.fill), "blend": sBlendType, "type": "fillOvrl" } } else if (oEffect instanceof AscFormat.CGlow) { oElm = { "color": this.SerColor(oEffect.color), "rad": oEffect.rad, "type": "glow" } } else if (oEffect instanceof AscFormat.CGrayscl) { oElm = { "type": "gray" } } else if (oEffect instanceof AscFormat.CHslEffect) { oElm = { "hue": oEffect.h, "lum": oEffect.l, "sat": oEffect.s, "type": "hsl" } } else if (oEffect instanceof AscFormat.CInnerShdw) { oElm = { "color": this.SerColor(oEffect.color), "blurRad": oEffect.blurRad, "dir": oEffect.dir, "dist": oEffect.dist, "type": "innerShdw" } } else if (oEffect instanceof AscFormat.CLumEffect) { oElm = { "bright": oEffect.bright, "contrast": oEffect.contrast, "type": "lum" } } else if (oEffect instanceof AscFormat.COuterShdw) { oElm = { "color": this.SerColor(oEffect.color), "algn": GetRectAlgnStrType(oEffect.algn), "blurRad": oEffect.blurRad, "dir": oEffect.dir, "dist": oEffect.dist, "kx": oEffect.kx, "ky": oEffect.ky, "rotWithShape": oEffect.rotWithShape, "sx": oEffect.sx, "sy": oEffect.sy, "type": "outerShdw" } } else if (oEffect instanceof AscFormat.CPrstShdw) { var sPrstType = undefined; switch (oEffect.prst) { case Asc.c_oAscPresetShadowVal.shdw1: sPrstType = "shdw1"; break; case Asc.c_oAscPresetShadowVal.shdw2: sPrstType = "shdw2"; break; case Asc.c_oAscPresetShadowVal.shdw3: sPrstType = "shdw3"; break; case Asc.c_oAscPresetShadowVal.shdw4: sPrstType = "shdw4"; break; case Asc.c_oAscPresetShadowVal.shdw5: sPrstType = "shdw5"; break; case Asc.c_oAscPresetShadowVal.shdw6: sPrstType = "shdw6"; break; case Asc.c_oAscPresetShadowVal.shdw7: sPrstType = "shdw7"; break; case Asc.c_oAscPresetShadowVal.shdw8: sPrstType = "shdw8"; break; case Asc.c_oAscPresetShadowVal.shdw9: sPrstType = "shdw9"; break; case Asc.c_oAscPresetShadowVal.shdw10: sPrstType = "shdw10"; break; case Asc.c_oAscPresetShadowVal.shdw11: sPrstType = "shdw11"; break; case Asc.c_oAscPresetShadowVal.shdw12: sPrstType = "shdw12"; break; case Asc.c_oAscPresetShadowVal.shdw13: sPrstType = "shdw13"; break; case Asc.c_oAscPresetShadowVal.shdw14: sPrstType = "shdw14"; break; case Asc.c_oAscPresetShadowVal.shdw15: sPrstType = "shdw15"; break; case Asc.c_oAscPresetShadowVal.shdw16: sPrstType = "shdw16"; break; case Asc.c_oAscPresetShadowVal.shdw17: sPrstType = "shdw17"; break; case Asc.c_oAscPresetShadowVal.shdw18: sPrstType = "shdw18"; break; case Asc.c_oAscPresetShadowVal.shdw19: sPrstType = "shdw19"; break; case Asc.c_oAscPresetShadowVal.shdw20: sPrstType = "shdw20"; break; } oElm = { "color": this.SerColor(oEffect.color), "dir": oEffect.dir, "dist": oEffect.dist, "prst": sPrstType, "type": "prstShdw" } } else if (oEffect instanceof AscFormat.CReflection) { oElm = { "algn": GetRectAlgnStrType(oEffect.algn), "blurRad": oEffect.blurRad, "dir": oEffect.dir, "dist": oEffect.dist, "endA": oEffect.endA, "endPos": oEffect.endPos, "fadeDir": oEffect.fadeDir, "kx": oEffect.kx, "ky": oEffect.ky, "rotWithShape": oEffect.rotWithShape, "stA": oEffect.stA, "stPos": oEffect.stPos, "sx": oEffect.sx, "sy": oEffect.sy, "type": "reflection" } } else if (oEffect instanceof AscFormat.CRelOff) { oElm = { "tx": oEffect.tx, "ty": oEffect.ty, "type": "relOff" } } else if (oEffect instanceof AscFormat.CSoftEdge) { oElm = { "rad": oEffect.rad, "type": "softEdge" } } else if (oEffect instanceof AscFormat.CTintEffect) { oElm = { "amt": oEffect.amt, "hue": oEffect.hue, "type": "tint" } } else if (oEffect instanceof AscFormat.CXfrmEffect) { oElm = { "kx": oEffect.kx, "ky": oEffect.ky, "sx": oEffect.sx, "sy": oEffect.sy, "tx": oEffect.tx, "ty": oEffect.ty, "type": "xfrm" } } return oElm; }; WriterToJSON.prototype.SerFill = function(oFill) { if (!oFill) return undefined; var oFillObj = null; if (oFill.fill) { switch (oFill.fill.type) { case Asc.c_oAscFill.FILL_TYPE_NONE: oFillObj = { "type": "none" } break; case Asc.c_oAscFill.FILL_TYPE_SOLID: oFillObj = { "color": this.SerColor(oFill.fill.color), "type": "solid" } break; case Asc.c_oAscFill.FILL_TYPE_BLIP: oFillObj = this.SerBlipFill(oFill.fill); break; case Asc.c_oAscFill.FILL_TYPE_NOFILL: oFillObj = { "type": "noFill" } break; case Asc.c_oAscFill.FILL_TYPE_GRAD: oFillObj = this.SerGradFill(oFill.fill); break; case Asc.c_oAscFill.FILL_TYPE_PATT: oFillObj = this.SerPattFill(oFill.fill); break; case Asc.c_oAscFill.FILL_TYPE_GRP: oFillObj = { "type": "grp" }; break; } } var sFillType = undefined; switch (oFill.type) { case Asc.c_oAscFill.FILL_TYPE_NONE: sFillType = "none"; break; case Asc.c_oAscFill.FILL_TYPE_BLIP: sFillType = "blip"; break; case Asc.c_oAscFill.FILL_TYPE_NOFILL: sFillType = "noFill"; break; case Asc.c_oAscFill.FILL_TYPE_SOLID: sFillType = "solid"; break; case Asc.c_oAscFill.FILL_TYPE_GRAD: sFillType = "grad"; break; case Asc.c_oAscFill.FILL_TYPE_PATT: sFillType = "patt"; break; case Asc.c_oAscFill.FILL_TYPE_GRP: sFillType = "grp"; break; } return { "fill": oFillObj, "transparent": oFill.transparent, "type": "fill", "fillType": sFillType } }; WriterToJSON.prototype.SerShd = function(oShd) { if (!oShd) return undefined; return { "val": ToXml_ST_Shd(oShd.Value), "color": oShd.Color ? { "auto": oShd.Color.Auto, "r": oShd.Color.r, "g": oShd.Color.g, "b": oShd.Color.b } : undefined, "fill": oShd.Fill ? { "auto": oShd.Fill.Auto, "r": oShd.Fill.r, "g": oShd.Fill.g, "b": oShd.Fill.b } : undefined, "fillRef": oShd.FillRef ? { "idx": oShd.FillRef.idx, "color": this.SerColor(oShd.FillRef.Color) } : undefined, "themeColor": this.SerFill(oShd.Unifill), "themeFill": this.SerFill(oShd.ThemeFill) } }; WriterToJSON.prototype.SerColor = function(oColor) { if (!oColor) return undefined; var oRGBA = oColor.RGBA ? { "red": oColor.RGBA.R, "green": oColor.RGBA.G, "blue": oColor.RGBA.B, "alpha": oColor.RGBA.A } : oColor.RGBA; var oColorObj = null; var oColorType = undefined; if (oColor.color) { switch (oColor.color.type) { case Asc.c_oAscColor.COLOR_TYPE_NONE: oColorType = "none"; oColorObj = { "type": oColorType } break; case Asc.c_oAscColor.COLOR_TYPE_SRGB: { oColorType = "srgb"; oColorObj = { "rgba": { "red": oColor.color.RGBA.R, "green": oColor.color.RGBA.G, "blue": oColor.color.RGBA.B, "alpha": oColor.color.RGBA.A }, "type": oColorType } break; } case Asc.c_oAscColor.COLOR_TYPE_PRST: { oColorType = "prst"; oColorObj = { "rgba": { "red": oColor.color.RGBA.R, "green": oColor.color.RGBA.G, "blue": oColor.color.RGBA.B, "alpha": oColor.color.RGBA.A }, "id": oColor.color.id, "type": oColorType } break; } case Asc.c_oAscColor.COLOR_TYPE_SCHEME: { oColorType = "scheme"; oColorObj = { "rgba": { "red": oColor.color.RGBA.R, "green": oColor.color.RGBA.G, "blue": oColor.color.RGBA.B, "alpha": oColor.color.RGBA.A }, "id": oColor.color.id, "type": oColorType } break; } case Asc.c_oAscColor.COLOR_TYPE_SYS: { oColorType = "sys"; oColorObj = { "rgba": { "red": oColor.color.RGBA.R, "green": oColor.color.RGBA.G, "blue": oColor.color.RGBA.B, "alpha": oColor.color.RGBA.A }, "id": oColor.color.id, "type": oColorType } break; } case Asc.c_oAscColor.COLOR_TYPE_STYLE: { oColorType = "style"; oColorObj = { "auto": oColor.color.bAuto, "val": oColor.color.val, "type": oColorType } break; } } } return { "rgba": oRGBA, "color": oColorObj, "mods": this.SerColorModifiers(oColor.Mods), "type": "uniColor" } }; WriterToJSON.prototype.SerColorModifiers = function(oColorModifiers) { if (!oColorModifiers) return undefined; var arrColorMods = []; for (var nMod = 0; nMod < oColorModifiers.Mods.length; nMod++) { arrColorMods.push({ "name": oColorModifiers.Mods[nMod].name, "val": oColorModifiers.Mods[nMod].val }); } return arrColorMods; }; WriterToJSON.prototype.SerGradFill = function(oGradFill) { if (!oGradFill) return undefined; var arrGsLst = []; for (var nGs = 0; nGs < oGradFill.colors.length; nGs++) arrGsLst.push(this.SerGradStop(oGradFill.colors[nGs])); var sPathShadeType = undefined; if (oGradFill.path) { switch(oGradFill.path.path) { case 0: sPathShadeType = "circle"; break; case 1: sPathShadeType = "rect"; break; case 2: sPathShadeType = "shape"; break; } } return { "gsLst": arrGsLst, "lin": oGradFill.lin ? { "ang": oGradFill.lin.angle, "scaled": oGradFill.lin.scale } : oGradFill.lin, "path": oGradFill.path ? { "path": sPathShadeType, "fillToRect": oGradFill.path.rect ? { "b": oGradFill.path.rect.b, "l": oGradFill.path.rect.l, "r": oGradFill.path.rect.r, "t": oGradFill.path.rect.t } : oGradFill.path.rect } : oGradFill.path, "rotWithShape": oGradFill.rotateWithShape, "type": "gradFill" } }; WriterToJSON.prototype.SerGradStop = function(oGradStop) { if (!oGradStop) return undefined; return { "color": this.SerColor(oGradStop.color), "pos": oGradStop.pos, "type": "gradStop" } }; WriterToJSON.prototype.SerPattFill = function(oPattFill) { if (!oPattFill) return undefined; return { "bgClr": oPattFill.bgClr ? this.SerColor(oPattFill.bgClr) : oPattFill.bgClr, "fgClr": oPattFill.fgClr ? this.SerColor(oPattFill.fgClr) : oPattFill.fgClr, "prst": this.GetPresetStrType(oPattFill.ftype), "type": "pattFill" } }; WriterToJSON.prototype.GetPresetStrType = function(nType) { switch (nType) { case AscCommon.global_hatch_offsets["cross"]: return "cross"; case AscCommon.global_hatch_offsets["dashDnDiag"]: return "dashDnDiag"; case AscCommon.global_hatch_offsets["dashHorz"]: return "dashHorz"; case AscCommon.global_hatch_offsets["dashUpDiag"]: return "dashUpDiag"; case AscCommon.global_hatch_offsets["dashVert"]: return "dashVert"; case AscCommon.global_hatch_offsets["diagBrick"]: return "diagBrick"; case AscCommon.global_hatch_offsets["diagCross"]: return "diagCross"; case AscCommon.global_hatch_offsets["divot"]: return "divot"; case AscCommon.global_hatch_offsets["dkDnDiag"]: return "dkDnDiag"; case AscCommon.global_hatch_offsets["dkHorz"]: return "dkHorz"; case AscCommon.global_hatch_offsets["dkUpDiag"]: return "dkUpDiag"; case AscCommon.global_hatch_offsets["dkVert"]: return "dkVert"; case AscCommon.global_hatch_offsets["dnDiag"]: return "dnDiag"; case AscCommon.global_hatch_offsets["dotDmnd"]: return "dotDmnd"; case AscCommon.global_hatch_offsets["dotGrid"]: return "dotGrid"; case AscCommon.global_hatch_offsets["horz"]: return "horz"; case AscCommon.global_hatch_offsets["horzBrick"]: return "horzBrick"; case AscCommon.global_hatch_offsets["lgCheck"]: return "lgCheck"; case AscCommon.global_hatch_offsets["lgConfetti"]: return "lgConfetti"; case AscCommon.global_hatch_offsets["lgGrid"]: return "lgGrid"; case AscCommon.global_hatch_offsets["ltDnDiag"]: return "ltDnDiag"; case AscCommon.global_hatch_offsets["ltHorz"]: return "ltHorz"; case AscCommon.global_hatch_offsets["ltUpDiag"]: return "ltUpDiag"; case AscCommon.global_hatch_offsets["ltVert"]: return "ltVert"; case AscCommon.global_hatch_offsets["narHorz"]: return "narHorz"; case AscCommon.global_hatch_offsets["narVert"]: return "narVert"; case AscCommon.global_hatch_offsets["openDmnd"]: return "openDmnd"; case AscCommon.global_hatch_offsets["pct10"]: return "pct10"; case AscCommon.global_hatch_offsets["pct20"]: return "pct20"; case AscCommon.global_hatch_offsets["pct25"]: return "pct25"; case AscCommon.global_hatch_offsets["pct30"]: return "pct30"; case AscCommon.global_hatch_offsets["pct40"]: return "pct40"; case AscCommon.global_hatch_offsets["pct5"]: return "pct5"; case AscCommon.global_hatch_offsets["pct50"]: return "pct50"; case AscCommon.global_hatch_offsets["pct60"]: return "pct60"; case AscCommon.global_hatch_offsets["pct70"]: return "pct70"; case AscCommon.global_hatch_offsets["pct75"]: return "pct75"; case AscCommon.global_hatch_offsets["pct80"]: return "pct80"; case AscCommon.global_hatch_offsets["pct90"]: return "pct90"; case AscCommon.global_hatch_offsets["plaid"]: return "plaid"; case AscCommon.global_hatch_offsets["shingle"]: return "shingle"; case AscCommon.global_hatch_offsets["smCheck"]: return "smCheck"; case AscCommon.global_hatch_offsets["smConfetti"]: return "smConfetti"; case AscCommon.global_hatch_offsets["smGrid"]: return "smGrid"; case AscCommon.global_hatch_offsets["solidDmnd"]: return "solidDmnd"; case AscCommon.global_hatch_offsets["sphere"]: return "sphere"; case AscCommon.global_hatch_offsets["trellis"]: return "trellis"; case AscCommon.global_hatch_offsets["upDiag"]: return "upDiag"; case AscCommon.global_hatch_offsets["vert"]: return "vert"; case AscCommon.global_hatch_offsets["wave"]: return "wave"; case AscCommon.global_hatch_offsets["wdDnDiag"]: return "wdDnDiag"; case AscCommon.global_hatch_offsets["wdUpDiag"]: return "wdUpDiag"; case AscCommon.global_hatch_offsets["weave"]: return "weave"; case AscCommon.global_hatch_offsets["zigZag"]: return "zigZag"; default: return undefined; } }; WriterToJSON.prototype.SerTxPr = function(oTxPr) { if (!oTxPr) return undefined; return { "bodyPr": this.SerBodyPr(oTxPr.bodyPr), "lstStyle": this.SerLstStyle(oTxPr.lstStyle), "content": this.SerDrawingDocContent(oTxPr.content, undefined, undefined, undefined, true) } }; WriterToJSON.prototype.SerBodyPr = function(oBodyPr) { if (!oBodyPr) return undefined; var sAnchorType = null; switch(oBodyPr.anchor) { case AscFormat.VERTICAL_ANCHOR_TYPE_BOTTOM: sAnchorType = "b"; break; case AscFormat.VERTICAL_ANCHOR_TYPE_CENTER: sAnchorType = "ctr"; break; case AscFormat.VERTICAL_ANCHOR_TYPE_DISTRIBUTED: sAnchorType = "dist"; break; case AscFormat.VERTICAL_ANCHOR_TYPE_JUSTIFIED: sAnchorType = "just"; break; case AscFormat.VERTICAL_ANCHOR_TYPE_TOP: sAnchorType = "t"; break; } var sHorzOverflow = null; switch(oBodyPr.horzOverflow) { case AscFormat.nHOTClip: sHorzOverflow = "clip"; break; case AscFormat.nHOTOverflow: sHorzOverflow = "overflow"; break; } var sVertOverflow = null; switch(oBodyPr.vertOverflow) { case AscFormat.nVOTClip: sVertOverflow = "clip"; break; case AscFormat.nVOTEllipsis: sVertOverflow = "ellipsis"; break; case AscFormat.nVOTOverflow: sVertOverflow = "overflow"; break; } var sVertType = null; switch(oBodyPr.vert) { case AscFormat.nVertTTeaVert: sVertType = "eaVert"; break; case AscFormat.nVertTThorz: sVertType = "horz"; break; case AscFormat.nVertTTmongolianVert: sVertType = "mongolianVert"; break; case AscFormat.nVertTTvert: sVertType = "vert"; break; case AscFormat.nVertTTvert270: sVertType = "vert270"; break; case AscFormat.nVertTTwordArtVert: sVertType = "wordArtVert"; break; case AscFormat.nVertTTwordArtVertRtl: sVertType = "wordArtVertRtl"; break; } var sWrapType = null; switch (oBodyPr.wrap) { case AscFormat.nTWTNone: sWrapType = "none"; break; case AscFormat.nTWTSquare: sWrapType = "square"; break; } return { "flatTx": oBodyPr.flatTx != null ? oBodyPr.flatTx : undefined, "textFit": this.SerTextFit(oBodyPr.textFit), "prstTxWarp": this.SerGeometry(oBodyPr.prstTxWarp), "anchor": sAnchorType, "anchorCtr": oBodyPr.anchorCtr != null ? oBodyPr.anchorCtr : undefined, "bIns": typeof(oBodyPr.bIns) === "number" ? private_MM2EMU(oBodyPr.bIns) : undefined, "compatLnSpc": oBodyPr.compatLnSpc != null ? oBodyPr.compatLnSpc : undefined, "forceAA": oBodyPr.forceAA != null ? oBodyPr.forceAA : undefined, "fromWordArt": oBodyPr.fromWordArt != null ? oBodyPr.fromWordArt : undefined, "horzOverflow": sHorzOverflow, "lIns": typeof(oBodyPr.lIns) === "number" ? private_MM2EMU(oBodyPr.lIns) : undefined, "numCol": oBodyPr.numCol != null ? oBodyPr.numCol : undefined, "rIns": typeof(oBodyPr.rIns) === "number" ? private_MM2EMU(oBodyPr.rIns) : undefined, "rot": oBodyPr.rot != null ? oBodyPr.rot : undefined, "rtlCol": oBodyPr.rtlCol != null ? oBodyPr.rtlCol : undefined, "spcCol": typeof(oBodyPr.spcCol) === "number" ? private_MM2EMU(oBodyPr.spcCol) : undefined, "spcFirstLastPara": oBodyPr.spcFirstLastPara != null ? oBodyPr.spcFirstLastPara : undefined, "tIns": typeof(oBodyPr.tIns) === "number" ? private_MM2EMU(oBodyPr.tIns) : undefined, "upright": oBodyPr.upright != null ? oBodyPr.upright : undefined, "vert": sVertType, "vertOverflow": sVertOverflow, "wrap": sWrapType } }; WriterToJSON.prototype.SerTextFit = function(oTextFit) { if (!oTextFit) return undefined; let sFitType; switch (oTextFit.type) { case AscFormat.text_fit_No: sFitType = "noAutoFit"; break; case AscFormat.text_fit_Auto: sFitType = "autoFit"; break; case AscFormat.text_fit_NormAuto: sFitType = "normAutoFit"; break; } return { "type": sFitType, "fontScale": oTextFit.fontScale != null ? oTextFit.fontScale : undefined, "lnSpcReduction": oTextFit.lnSpcReduction != null ? oTextFit.lnSpcReduction : undefined } }; WriterToJSON.prototype.SerLstStyle = function(oListStyle) { if (!oListStyle) return undefined; var arrResult = []; for (var nLvl = 0; nLvl < oListStyle.levels.length; nLvl++) arrResult.push(this.SerParaPrDrawing(oListStyle.levels[nLvl])); return arrResult; }; WriterToJSON.prototype.SerWordStyle = function(oStyle) { if (!oStyle) return undefined; var sStyleType; switch (oStyle.Type) { case styletype_Paragraph: sStyleType = "paragraphStyle"; break; case styletype_Numbering: sStyleType = "numberingStyle"; break; case styletype_Table: sStyleType = "tableStyle"; break; case styletype_Character: sStyleType = "characterStyle"; break; default: sStyleType = "paragraphStyle"; break; } // Style Conditional Table Formatting Properties var oTblStylesPr = oStyle.TableBand1Horz ? { "band1Horz": this.SerTableStylePr(oStyle.TableBand1Horz, "bandedRow"), "band1Vert": this.SerTableStylePr(oStyle.TableBand1Vert, "bandedColumn"), "band2Horz": this.SerTableStylePr(oStyle.TableBand2Horz, "bandedRowEven"), "band2Vert": this.SerTableStylePr(oStyle.TableBand2Vert, "bandedColumnEven"), "firstCol": this.SerTableStylePr(oStyle.TableFirstCol, "firstColumn"), "firstRow": this.SerTableStylePr(oStyle.TableFirstRow, "firstRow"), "lastCol": this.SerTableStylePr(oStyle.TableLastCol, "lastColumn"), "lastRow": this.SerTableStylePr(oStyle.TableLastRow, "lastRow"), "neCell": this.SerTableStylePr(oStyle.TableTRCell, "topRightCell"), "nwCell": this.SerTableStylePr(oStyle.TableTLCell, "topLeftCell"), "seCell": this.SerTableStylePr(oStyle.TableBRCell, "bottomRightCell"), "swCell": this.SerTableStylePr(oStyle.TableBLCell, "bottomLeftCell"), "wholeTable": this.SerTableStylePr(oStyle.TableWholeTable, "wholeTable") } : oStyle.TableBand1Horz; return { "basedOn": oStyle.GetBasedOn(), "hidden": oStyle.hidden != null ? oStyle.hidden : undefined, "link": oStyle.Link != null ? oStyle.Link : undefined, "name": oStyle.Name != null ? oStyle.Name : undefined, "next": oStyle.Next != null ? oStyle.Next : undefined, "pPr": oStyle.ParaPr != null ? this.SerParaPr(oStyle.ParaPr) : undefined, "qFormat": oStyle.qFormat != null ? oStyle.qFormat : undefined, "rPr": oStyle.TextPr != null ? this.SerTextPr(oStyle.TextPr) : undefined, "semiHidden": oStyle.semiHidden != null ? oStyle.semiHidden : undefined, "tblPr": oStyle.TablePr != null ? this.SerTablePr(oStyle.TablePr) : undefined, "tblStylePr": oTblStylesPr, "tcPr": oStyle.TableCellPr != null ? this.SerTableCellPr(oStyle.TableCellPr) : undefined, "trPr": oStyle.TableRowPr != null ? this.SerTableRowPr(oStyle.TableRowPr) : undefined, "uiPriority": oStyle.uiPriority != null ? oStyle.uiPriority : undefined, "unhideWhenUsed": oStyle.unhideWhenUsed != null ? oStyle.unhideWhenUsed : undefined, "customStyle": oStyle.Custom != null ? oStyle.Custom : undefined, "styleId": oStyle.Id != null ? oStyle.Id : undefined, "styleType": sStyleType, "type": "style" } }; WriterToJSON.prototype.SerTableStylePr = function(oPr, sStyleType) { if (!oPr) return undefined; return { "pPr": this.SerParaPr(oPr.ParaPr), "rPr": this.SerTextPr(oPr.TextPr), "tblPr": this.SerTablePr(oPr.TablePr, null), "tcPr": this.SerTableCellPr(oPr.TableCellPr), "trPr": this.SerTableRowPr(oPr.TableRowPr), "styleType": sStyleType, "type": "tableStylePr" } }; WriterToJSON.prototype.SerTableMeasurement = function(oMeasurement) { if (!oMeasurement) return undefined; switch (oMeasurement.Type) { case tblwidth_Auto: return { "type": "auto", "w": 0 }; case tblwidth_Mm: return { "type": "dxa", "w": private_MM2Twips(oMeasurement.W) }; case tblwidth_Nil: return { "type": "nil", "w": 0 }; case tblwidth_Pct: return { "type": "pct", "w": oMeasurement.W }; } return undefined; }; WriterToJSON.prototype.SerTablePr = function(oPr, oTable) { if (!oPr) return undefined; var sJc = undefined; var sLayoutType = oPr.TableLayout == undefined ? oPr.TableLayout : (oPr.TableLayout === tbllayout_Fixed ? "fixed" : "autofit"); var sOverlapType = oTable ? (oTable.AllowOverlap ? "overlap" : "never") : "never"; var isInline = oTable ? oTable.Inline : false; switch (oPr.Jc) { case AscCommon.align_Left: sJc = "start"; break; case AscCommon.align_Center: sJc = "center"; break; case AscCommon.align_Right: sJc = "end"; break; } // anchorH var sHorAnchor = undefined; if (oTable && oTable.PositionH) { switch (oTable.PositionH.RelativeFrom) { case Asc.c_oAscHAnchor.Margin: sHorAnchor = "margin"; break; case Asc.c_oAscHAnchor.Text: sHorAnchor = "text"; break; case Asc.c_oAscHAnchor.Page: sHorAnchor = "page"; break; } } // anchorV var sVerAnchor = undefined; if (oTable && oTable.PositionV) { switch (oTable.PositionV.RelativeFrom) { case Asc.c_oAscVAnchor.Margin: sVerAnchor = "margin"; break; case Asc.c_oAscVAnchor.Text: sVerAnchor = "text"; break; case Asc.c_oAscVAnchor.Page: sVerAnchor = "page"; break; } } // alignH var sHorAlign = undefined; if (oTable && oTable.PositionH && oTable.PositionH.Align) { switch (oTable.PositionH.Value) { case Asc.c_oAscXAlign.Center: sHorAlign = "center"; break; case Asc.c_oAscXAlign.Inside: sHorAlign = "inside"; break; case Asc.c_oAscXAlign.Left: sHorAlign = "left"; break; case Asc.c_oAscXAlign.Outside: sHorAlign = "outside"; break; case Asc.c_oAscXAlign.Right: sHorAlign = "right"; break; } } // alignV var sVerAlign = undefined; if (oTable && oTable.PositionV && oTable.PositionV.Align) { switch (oTable.PositionV.Value) { case Asc.c_oAscYAlign.Bottom: sVerAlign = "bottom"; break; case Asc.c_oAscYAlign.Center: sVerAlign = "center"; break; case Asc.c_oAscYAlign.Inline: sVerAlign = "inline"; break; case Asc.c_oAscYAlign.Inside: sVerAlign = "inside"; break; case Asc.c_oAscYAlign.Outside: sVerAlign = "outside"; break; case Asc.c_oAscYAlign.Top: sVerAlign = "top"; break; } } // tablePosPr var oTblPosPr = oTable ? (oTable.PositionH && oTable.PositionV ? { "horzAnchor": sHorAnchor, "vertAnchor": sVerAnchor, "tblpXSpec": sHorAlign, "tblpYSpec": sVerAlign, "tblpX": private_MM2Twips(oTable.PositionH.Value), "tblpY": private_MM2Twips(oTable.PositionV.Value), "bottomFromText": private_MM2Twips(oTable.Distance.B), "leftFromText": private_MM2Twips(oTable.Distance.L), "rightFromText": private_MM2Twips(oTable.Distance.R), "topFromText": private_MM2Twips(oTable.Distance.T) } : undefined) : undefined; return { "jc": sJc, "shd": this.SerShd(oPr.Shd), "tblBorders": { "bottom": this.SerDocBorder(oPr.TableBorders.Bottom), "end": this.SerDocBorder(oPr.TableBorders.Right), "insideH": this.SerDocBorder(oPr.TableBorders.InsideH), "insideV": this.SerDocBorder(oPr.TableBorders.InsideV), "start": this.SerDocBorder(oPr.TableBorders.Left), "top": this.SerDocBorder(oPr.TableBorders.Top) }, "tblCaption": oPr.TableCaption, "tblCellMar": oPr.TableCellMar ? { "bottom": this.SerTableMeasurement(oPr.TableCellMar.Bottom), "left": this.SerTableMeasurement(oPr.TableCellMar.Left), "right": this.SerTableMeasurement(oPr.TableCellMar.Right), "top": this.SerTableMeasurement(oPr.TableCellMar.Top) } : oPr.TableCellMar, "tblCellSpacing": oPr.TableCellMar.TableCellSpacing ? private_MM2Twips(oPr.TableCellMar.TableCellSpacing) : oPr.TableCellMar.TableCellSpacing, "tblDescription": oPr.TableDescription, "tblInd": oPr.TableInd != null ? private_MM2Twips(oPr.TableInd) : oPr.TableInd, "tblLayout": sLayoutType, "tblLook": this.SerTableLook(oTable), "tblOverlap": sOverlapType, "tblpPr": oTblPosPr, "tblPrChange": this.SerTablePr(oPr.PrChange), "tblStyle": oTable ? this.AddWordStyleForWrite(oTable.TableStyle) : undefined, "tblStyleColBandSize": oPr.TableStyleColBandSize, "tblStyleRowBandSize": oPr.TableStyleRowBandSize, "tblW": this.SerTableMeasurement(oPr.TableW), "inline": isInline, "reviewInfo": this.SerReviewInfo(oPr.ReviewInfo), "type": "tablePr" } }; WriterToJSON.prototype.SerDrawingTablePr = function(oPr, oTable) { if (!oPr) return undefined; let oResult = {}; let oTableLook = oTable.TableLook; if(oTableLook) { oResult["firstRow"] = oTableLook.FirstRow; oResult["firstCol"] = oTableLook.FirstCol; oResult["lastRow"] = oTableLook.LastRow; oResult["lastCol"] = oTableLook.LastCol; oResult["bandRow"] = oTableLook.BandHor; oResult["bandCol"] = oTableLook.BandVer; } oResult["tblStyle"] = this.AddTableStyleForWrite(oTable.TableStyle); if(oPr.Shd && oPr.Shd.Unifill) { oResult["fill"] = this.SerFill(oPr.Shd.Unifill); } return oResult; }; WriterToJSON.prototype.SerTableLook = function(oTable) { if (!oTable || !oTable.TableLook) return undefined; return { "firstColumn": oTable.TableLook.FirstCol, "firstRow": oTable.TableLook.FirstRow, "lastColumn": oTable.TableLook.LastCol, "lastRow": oTable.TableLook.LastRow, "noHBand": !oTable.TableLook.BandHor, "noVBand": !oTable.TableLook.BandVer } }; WriterToJSON.prototype.SerTable = function(oTable, aComplexFieldsToSave, oMapCommentsInfo) { if (!oTable) return undefined; var oLogicDocument = private_GetLogicDocument(); var oTableObj = { "bPresentation": oTable.bPresentation, "tblGrid": [], "tblPr": this.SerTablePr(oTable.Pr, oTable), "content": [], "changes": [], //tableMarkup: this.SerTableMarkup(oTable.Markup), "type": "table" } for (var nGrid = 0; nGrid < oTable.TableGrid.length; nGrid++) oTableObj["tblGrid"].push({ "w": private_MM2Twips(oTable.TableGrid[nGrid]), "type": "gridCol" }); for (var nRow = 0; nRow < oTable.Content.length; nRow++) oTableObj["content"].push(this.SerTableRow(oTable.Content[nRow], aComplexFieldsToSave, oMapCommentsInfo)); // Revisions var aChanges = oLogicDocument.TrackRevisionsManager ? oLogicDocument.TrackRevisionsManager.GetElementChanges(oTable.Id) : []; for (var nChange = 0; nChange < aChanges.length; nChange++) { oTableObj["changes"].push(this.SerRevisionChange(aChanges[nChange])); } return oTableObj; }; WriterToJSON.prototype.SerDrawingTable = function(oTable) { if (!oTable) return undefined; var oTableObj = { "bPresentation": oTable.bPresentation, "tblGrid": [], "tblPr": this.SerDrawingTablePr(oTable.Pr, oTable), "content": [], "type": "table" } for (var nGrid = 0; nGrid < oTable.TableGrid.length; nGrid++) oTableObj["tblGrid"].push({ "w": private_MM2EMU(oTable.TableGrid[nGrid]), "type": "gridCol" }); let oTableRowGrid = AscCommon.GenerateTableWriteGrid(oTable); for (var nRow = 0; nRow < oTable.Content.length; nRow++) oTableObj["content"].push(this.SerDrawingTableRow(oTable.Content[nRow], oTableRowGrid.Rows[nRow])); return oTableObj; }; WriterToJSON.prototype.SerTableMarkup = function(oMarkup) { if (!oMarkup) return undefined; return { "cols": oMarkup.Cols, "curCol": oMarkup.CurCol, "curRow": oMarkup.CurRow, "internal": { "cellIndex": oMarkup.Internal.CellIndex, "pageNum": oMarkup.Internal.PageNum, "rowIndex": oMarkup.Internal.RowIndex }, "margins": oMarkup.Margins, "rows": oMarkup.Rows, "transformX": oMarkup.TransformX, "transformY": oMarkup.TransformY, "x": oMarkup.X } }; WriterToJSON.prototype.SerTableCellPr = function(oPr) { if (!oPr) return undefined; var sHMerge = oPr.HMerge ? (oPr.HMerge === 2 ? "continue" : "restart") : oPr.HMerge; var sVMerge = oPr.VMerge ? (oPr.VMerge === 2 ? "continue" : "restart") : oPr.VMerge; var sVAlign = undefined; // alignV if (oPr.VAlign) { switch (oPr.VAlign) { case vertalignjc_Top: sVAlign = "top"; break; case vertalignjc_Center: sVAlign = "center"; break; case vertalignjc_Bottom: sVAlign = "bottom"; break; } } // text direction var sTextDir = undefined; switch (oPr.TextDirection) { case textdirection_LRTB: sTextDir = "lrtb"; break; case textdirection_TBRL: sTextDir = "tbrl"; break; case textdirection_BTLR: sTextDir = "btlr"; break; case textdirection_LRTBV: sTextDir = "lrtbV"; break; case textdirection_TBRLV: sTextDir = "tbrlV"; break; case textdirection_TBLRV: sTextDir = "tblrV"; break; } return { "gridSpan": oPr.GridSpan, "hMerge": sHMerge, "noWrap": oPr.NoWrap, "shd": this.SerShd(oPr.Shd), "tcBorders": { "bottom": this.SerDocBorder(oPr.TableCellBorders.Bottom), "end": this.SerDocBorder(oPr.TableCellBorders.Right), "start": this.SerDocBorder(oPr.TableCellBorders.Left), "top": this.SerDocBorder(oPr.TableCellBorders.Top) }, "tcMar": oPr.TableCellMar ? { "bottom": this.SerTableMeasurement(oPr.TableCellMar.Bottom), "left": this.SerTableMeasurement(oPr.TableCellMar.Left), "right": this.SerTableMeasurement(oPr.TableCellMar.Right), "top": this.SerTableMeasurement(oPr.TableCellMar.Top), } : oPr.TableCellMar, "tcPrChange": this.SerTableCellPr(oPr.PrChange), "tcW": this.SerTableMeasurement(oPr.TableCellW), "textDirection": sTextDir, "vAlign": sVAlign, "vMerge": sVMerge, "type": "tableCellPr" } }; WriterToJSON.prototype.SerDrawingTableCellPr = function(oCellPr, oTablePr) { let oResult = {}; var margins = oCellPr.TableCellMar; var tableMar = oTablePr && oTablePr.TableCellMar; if (margins && margins.Left && AscFormat.isRealNumber(margins.Left.W)) { oResult["marL"] = (margins.Left.W * 36000) >> 0; } else if (tableMar && tableMar.Left && AscFormat.isRealNumber(tableMar.Left.W)) { oResult["marL"] = (tableMar.Left.W * 36000) >> 0; } if (margins && margins.Top && AscFormat.isRealNumber(margins.Top.W)) { oResult["marT"] = (margins.Top.W * 36000) >> 0; } else if (tableMar && tableMar.Top && AscFormat.isRealNumber(tableMar.Top.W)) { oResult["marT"] = (tableMar.Top.W * 36000) >> 0; } if (margins && margins.Right && AscFormat.isRealNumber(margins.Right.W)) { oResult["marR"] = (margins.Right.W * 36000) >> 0; } else if (tableMar && tableMar.Right && AscFormat.isRealNumber(tableMar.Right.W)) { oResult["marR"] = (tableMar.Right.W * 36000) >> 0; } if (margins && margins.Bottom && AscFormat.isRealNumber(margins.Bottom.W)) { oResult["marB"] = (margins.Bottom.W * 36000) >> 0; } else if (tableMar && tableMar.Bottom && AscFormat.isRealNumber(tableMar.Bottom.W)) { oResult["marB"] = (tableMar.Bottom.W * 36000) >> 0; } if (AscFormat.isRealNumber(oCellPr.TextDirection)) { switch (oCellPr.TextDirection) { case Asc.c_oAscCellTextDirection.LRTB: { oResult["vert"] = "horz"; break; } case Asc.c_oAscCellTextDirection.TBRL: { oResult["vert"] = "eaVert"; break; } case Asc.c_oAscCellTextDirection.BTLR: { oResult["vert"] = "vert"; break; } default: { oResult["vert"] = "horz"; break; } } } if (AscFormat.isRealNumber(oCellPr.VAlign)) { switch (oCellPr.VAlign) { case vertalignjc_Bottom: { oResult["anchor"] = "b"; break; } case vertalignjc_Center: { oResult["anchor"] = "ctr"; break; } case vertalignjc_Top: { oResult["anchor"] = "t"; break; } } } let oBorders = oCellPr.TableCellBorders; if (oBorders.Left) { let oLn = new AscFormat.CLn(); oLn.fromDocumentBorder(oBorders.Left); oResult["lnL"] = this.SerLn(oLn); } if (oBorders.Right) { let oLn = new AscFormat.CLn(); oLn.fromDocumentBorder(oBorders.Right); oResult["lnR"] = this.SerLn(oLn); } if (oBorders.Top) { let oLn = new AscFormat.CLn(); oLn.fromDocumentBorder(oBorders.Top); oResult["lnT"] = this.SerLn(oLn); } if (oBorders.Bottom) { let oLn = new AscFormat.CLn(); oLn.fromDocumentBorder(oBorders.Bottom); oResult["lnB"] = this.SerLn(oLn); } if (oCellPr.Shd && oCellPr.Shd.Unifill) { oResult["fill"] = this.SerFill(oCellPr.Shd.Unifill); } return oResult; }; WriterToJSON.prototype.SerTableCell = function(oCell, aComplexFieldsToSave, oMapCommentsInfo) { if (!oCell) return undefined; return { "content": this.SerDocContent(oCell.Content, aComplexFieldsToSave, oMapCommentsInfo), "tcPr": this.SerTableCellPr(oCell.Pr), "id": oCell.Id, "type": "tblCell" } }; WriterToJSON.prototype.SerDrawingTableCell = function(oCellInfo) { if (!oCellInfo) return undefined; let oResult = {}; if (oCellInfo.vMerge === false && oCellInfo.row_span > 1) { oResult["rowSpan"] = oCellInfo.row_span; } if (oCellInfo.hMerge === false && oCellInfo.grid_span > 1) { oResult["gridSpan"] = oCellInfo.grid_span; } if (oCellInfo.hMerge === true) { oResult["hMerge"] = true; } if (oCellInfo.vMerge === true) { oResult["vMerge"] = true; } oResult["tcPr"] = this.SerDrawingTableCellPr(oCellInfo.Cell.Pr, oCellInfo.Cell.GetTable().Pr); oResult["content"] = this.SerDocContent(oCellInfo.Cell.Content); oResult["type"] = "tblCell"; return oResult; }; WriterToJSON.prototype.SerTableRow = function(oRow, aComplexFieldsToSave, oMapCommentsInfo) { if (!oRow) return undefined; var sReviewType = undefined; switch (oRow.GetReviewType()) { case reviewtype_Common: sReviewType = "common"; break; case reviewtype_Remove: sReviewType = "remove"; break; case reviewtype_Add: sReviewType = "add"; break; } var oRowObj = { "content": [], "reviewInfo": this.SerReviewInfo(oRow.ReviewInfo), "reviewType": sReviewType, "trPr": this.SerTableRowPr(oRow.Pr), "type": "tblRow" } for (var nCell = 0; nCell < oRow.Content.length; nCell++) { oRowObj["content"].push(this.SerTableCell(oRow.Content[nCell], aComplexFieldsToSave, oMapCommentsInfo)); } return oRowObj; }; WriterToJSON.prototype.SerDrawingTableRow = function(oRow, oInfo) { if (!oRow) return undefined; let oRowObj = { "content": [], "h": AscCommon.GetTableRowHeight(oRow), "type": "tblRow" } let nCellsCount = oInfo.Cells.length; for (let nCell = 0; nCell < nCellsCount; nCell++) { let oCellInfo = oInfo.Cells[nCell]; if (oCellInfo.isEmpty) oRowObj["content"].push({ "type": "cellEmpty", "vMerge": oCellInfo.vMerge ? oCellInfo.vMerge : undefined }); else oRowObj["content"].push(this.SerDrawingTableCell(oCellInfo)); } return oRowObj; }; WriterToJSON.prototype.SerTableRowPr = function(oPr) { if (!oPr) return undefined; // rowJc var sRowJc; switch (oPr.Jc) { case align_Left: sRowJc = "start"; break; case align_Center: sRowJc = "center"; break; case align_Right: sRowJc = "end"; break; default: sRowJc = undefined; break; } // rowHeight var oRowHeight = undefined; if (oPr.Height) { switch (oPr.Height.HRule) { case linerule_AtLeast: oRowHeight = { "val": private_MM2Twips(oPr.Height.Value), "hRule": "atLeast" }; break; case linerule_Auto: oRowHeight = { "val": oPr.Height.Value, "hRule": "auto" }; break; case linerule_Exact: oRowHeight = { "val": private_MM2Twips(oPr.Height.Value), "hRule": "exact" }; break; } } return { "cantSplit": oPr.CantSplit, "gridAfter": oPr.GridAfter, "gridBefore": oPr.GridBefore, "jc": sRowJc, "tblCellSpacing": oPr.TableCellSpacing ? private_MM2Twips(oPr.TableCellSpacing) : oPr.TableCellSpacing, "tblHeader": oPr.TableHeader, "trHeight": oRowHeight, "trPrChange": this.SerTableRowPr(oPr.PrChange), "wAfter": this.SerTableMeasurement(oPr.WAfter), "wBefore": this.SerTableMeasurement(oPr.WBefore), "type": "tableRowPr" } }; WriterToJSON.prototype.SerDocBorder = function(oBorder) { if (!oBorder) return undefined; var sBorderType = "none"; if (oBorder.Value === border_Single) sBorderType = "single"; return { "color": oBorder.Color ? { "auto": oBorder.Color.Auto, "r": oBorder.Color.r, "g": oBorder.Color.g, "b": oBorder.Color.b } : undefined, "lineRef": oBorder.LineRef ? { "idx": oBorder.LineRef.idx, "color": this.SerColor(oBorder.LineRef.Color) } : undefined, "sz": oBorder.getSizeIn8Point(), "space": oBorder.getSpaceInPoint(), "themeColor": this.SerFill(oBorder.Unifill), "value": sBorderType } }; WriterToJSON.prototype.SerDocContent = function(oDocContent, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo, bAllCompFields) { return { "bPresentation": oDocContent.bPresentation, "content": this.SerContent(oDocContent.Content, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo, bAllCompFields), "type": "docContent" } }; WriterToJSON.prototype.SerDrawingDocContent = function(oDocContent, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo, bAllCompFields) { return { "content": this.SerContent(oDocContent.Content, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo, bAllCompFields), "type": "drawingDocContent" } }; WriterToJSON.prototype.SerContent = function(aContent, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo, bAllCompFields) { var aResult = []; if (!aComplexFieldsToSave) aComplexFieldsToSave = this.GetComplexFieldsToSave(aContent, undefined, undefined, bAllCompFields); if (!oMapCommentsInfo) oMapCommentsInfo = this.GetMapCommentsInfo(aContent, oMapCommentsInfo); if (!oMapBookmarksInfo) oMapBookmarksInfo = this.GetMapBookmarksInfo(aContent, oMapBookmarksInfo); var TempElm = null; for (var nElm = 0; nElm < aContent.length; nElm++) { TempElm = aContent[nElm]; if (TempElm instanceof AscWord.Paragraph) aResult.push(this.SerParagraph(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); else if (TempElm instanceof AscCommonWord.CTable) aResult.push(this.SerTable(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); else if (TempElm instanceof AscCommonWord.CBlockLevelSdt) aResult.push(this.SerBlockLvlSdt(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); } return aResult; }; WriterToJSON.prototype.SerParaPr = function(oParaPr, oPr) { oPr = oPr || {}; if (!oParaPr || (oPr.isSingleLvlPresetJSON && oParaPr.Is_Empty(oPr))) return undefined; let oResult = oParaPr.ToJson(true, oPr); if (oParaPr.PStyle != null) oResult["pStyle"] = this.AddWordStyleForWrite(oParaPr.PStyle); if (oParaPr.NumPr) { var oGlobalNumbering = private_GetLogicDocument().GetNumbering(); var oNum; if (oGlobalNumbering) oNum = oGlobalNumbering.GetNum(oParaPr.NumPr.NumId); if (oNum) this.SerNumbering(oNum); } return oResult; }; WriterToJSON.prototype.SerParaPrDrawing = function(oParaPr) { if (!oParaPr) return undefined; return oParaPr.ToJson(false); }; WriterToJSON.prototype.SerFramePr = function(oFramePr) { if (!oFramePr) return undefined; var sDropCapType = undefined; switch (oFramePr.DropCap) { case Asc.c_oAscDropCap.None: sDropCapType = "none"; break; case Asc.c_oAscDropCap.Drop: sDropCapType = "drop"; break; case Asc.c_oAscDropCap.Margin: sDropCapType = "margin"; break; } var sHAnchor = undefined; switch (oFramePr.HAnchor) { case Asc.c_oAscHAnchor.Margin: sHAnchor = "margin"; break; case Asc.c_oAscHAnchor.Page: sHAnchor = "page"; break; case Asc.c_oAscHAnchor.Text: sHAnchor = "text"; break; } var sVAnchor = undefined; switch (oFramePr.VAnchor) { case Asc.c_oAscHAnchor.Margin: sVAnchor = "margin"; break; case Asc.c_oAscHAnchor.Page: sVAnchor = "page"; break; case Asc.c_oAscHAnchor.Text: sVAnchor = "text"; break; } var sLineRule = undefined; switch (oFramePr.HRule) { case Asc.linerule_AtLeast: sLineRule = "atLeast"; break; case Asc.linerule_Auto: sLineRule = "auto"; break; case Asc.linerule_Exact: sLineRule = "exact"; break; } var sWrapType = undefined; switch (oFramePr.Wrap) { case AscCommonWord.wrap_Around: sWrapType = "around"; break; case AscCommonWord.wrap_Auto: sWrapType = "auto"; break; case AscCommonWord.wrap_None: sWrapType = "none"; break; case AscCommonWord.wrap_NotBeside: sWrapType = "notBeside"; break; case AscCommonWord.wrap_Through: sWrapType = "through"; break; case AscCommonWord.wrap_Tight: sWrapType = "tight"; break; } var sXAlign = undefined; switch (oFramePr.XAlign) { case Asc.c_oAscXAlign.Center: sXAlign = "center"; break; case Asc.c_oAscXAlign.Inside: sXAlign = "inside"; break; case Asc.c_oAscXAlign.Left: sXAlign = "left"; break; case Asc.c_oAscXAlign.Outside: sXAlign = "outside"; break; case Asc.c_oAscXAlign.Right: sXAlign = "right"; break; } var sYAlign = undefined; switch (oFramePr.YAlign) { case Asc.c_oAscYAlign.Bottom: sYAlign = "bottom"; break; case Asc.c_oAscYAlign.Center: sYAlign = "center"; break; case Asc.c_oAscYAlign.Inline: sYAlign = "inline"; break; case Asc.c_oAscYAlign.Inside: sYAlign = "inside"; break; case Asc.c_oAscYAlign.Outside: sYAlign = "outside"; break; case Asc.c_oAscYAlign.Top: sYAlign = "top"; break; } return { "dropCap": sDropCapType, "h": typeof(oFramePr.H) === "number" ? private_MM2Twips(oFramePr.H) : oFramePr.H, "hAnchor": sHAnchor, "hRule": sLineRule, "hSpace": typeof(oFramePr.HSpace) === "number" ? private_MM2Twips(oFramePr.HSpace) : oFramePr.HSpace, "lines": oFramePr.Lines, "vAnchor": sVAnchor, "vSpace": typeof(oFramePr.VSpace) === "number" ? private_MM2Twips(oFramePr.VSpace) : oFramePr.VSpace, "w": typeof(oFramePr.W) === "number" ? private_MM2Twips(oFramePr.W) : oFramePr.W, "wrap": sWrapType, "x": typeof(oFramePr.X) === "number" ? private_MM2Twips(oFramePr.X) : oFramePr.X, "xAlign": sXAlign, "y": typeof(oFramePr.Y) === "number" ? private_MM2Twips(oFramePr.Y) : oFramePr.Y, "yAlign": sYAlign } }; WriterToJSON.prototype.SerParaInd = function(oParaInd) { if (!oParaInd) return undefined; return { "left": oParaInd.Left != null ? private_MM2Twips(oParaInd.Left) : undefined, "right": oParaInd.Right != null ? private_MM2Twips(oParaInd.Right) : undefined, "firstLine": oParaInd.FirstLine != null ? private_MM2Twips(oParaInd.FirstLine) : undefined } }; WriterToJSON.prototype.SerNumPr = function(oNumPr) { if (!oNumPr) return undefined; return { "ilvl": oNumPr.Lvl, "numId": oNumPr.NumId } }; WriterToJSON.prototype.SerParaSpacing = function(oParaSpacing) { if (!oParaSpacing) return undefined; let oSpacing = { "before": oParaSpacing.Before != null ? private_MM2Twips(oParaSpacing.Before) : undefined, "beforeAutoSpacing": oParaSpacing.BeforeAutoSpacing != null ? (oParaSpacing.BeforeAutoSpacing === true ? "on" : "off") : undefined, "after": oParaSpacing.After != null ? private_MM2Twips(oParaSpacing.After) : undefined, "afterAutoSpacing": oParaSpacing.AfterAutoSpacing != null ? (oParaSpacing.AfterAutoSpacing === true ? "on" : "off") : undefined }; switch (oParaSpacing.LineRule) { case Asc.linerule_AtLeast: oSpacing["lineRule"] = "atLeast"; oSpacing["line"] = private_MM2Twips(oParaSpacing.Line); break; case Asc.linerule_Auto: oSpacing["lineRule"] = "auto"; oSpacing["line"] = Math.round(240 * oParaSpacing.Line); break; case Asc.linerule_Exact: oSpacing["lineRule"] = "exact"; oSpacing["line"] = private_MM2Twips(oParaSpacing.Line); break; } return oSpacing; }; WriterToJSON.prototype.SerParaSpacingDrawing = function(oSpacing) { let SPACING_SCALE = 0.00352777778; let oResult; let value; if (oSpacing.valPct != null) { oResult = {}; value = oSpacing.valPct * 100000 >> 0; oResult["spcPct"] = value; } else if (oSpacing.val != null) { oResult = {}; value = oSpacing.val / SPACING_SCALE >> 0; if(value < 0){ value = 0; } if(value > 158400){ value = 158400; } oResult["spcPts"] = value; } return oResult; }; WriterToJSON.prototype.SerBlockLvlSdt = function(oSdt, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo) { if (!aComplexFieldsToSave) aComplexFieldsToSave = this.GetComplexFieldsToSave(oSdt.Content.Content); if (!oMapCommentsInfo) oMapCommentsInfo = this.GetMapCommentsInfo(oSdt.Content.Content, oMapCommentsInfo); if (!oMapBookmarksInfo) oMapBookmarksInfo = this.GetMapBookmarksInfo(oSdt.Content.Content, oMapBookmarksInfo); return { "sdtPr": this.SerSdtPr(oSdt.Pr), "sdtContent": this.SerDocContent(oSdt.Content, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo), "type": "blockLvlSdt" } }; WriterToJSON.prototype.SerInlineLvlSdt = function(oSdt, aComplexFieldsToSave) { var oInlineSdt = { "sdtPr": this.SerSdtPr(oSdt.Pr), "content": [], "type": "inlineLvlSdt" } var TempElm = null; for (var nElm = 0; nElm < oSdt.Content.length; nElm++) { TempElm = oSdt.Content[nElm]; if (TempElm instanceof AscCommonWord.ParaRun) oInlineSdt["content"].push(this.SerParaRun(TempElm, aComplexFieldsToSave)); else if (TempElm instanceof AscCommonWord.ParaHyperlink) oInlineSdt["content"].push(this.SerHyperlink(TempElm, aComplexFieldsToSave)); else if (TempElm instanceof AscCommonWord.CInlineLevelSdt) oInlineSdt["content"].push(this.SerInlineLvlSdt(TempElm, aComplexFieldsToSave)); } return oInlineSdt; }; WriterToJSON.prototype.SerParagraph = function(oPara, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo) { var oParaObject = { "bFromDocument": oPara.bFromDocument, "pPr": oPara.bFromDocument ? this.SerParaPr(oPara.Pr) : this.SerParaPrDrawing(oPara.Pr), "rPr": oPara.bFromDocument ? this.SerTextPr(oPara.TextPr.Value) : this.SerTextPrDrawing(oPara.TextPr.Value), "content": [], "changes": [], "type": "paragraph" }; if (!oMapCommentsInfo) oMapCommentsInfo = this.GetMapCommentsInfo([oPara], oMapCommentsInfo); if (!oMapBookmarksInfo && AscCommonWord.CParagraphBookmark) oMapBookmarksInfo = this.GetMapBookmarksInfo([oPara], oMapBookmarksInfo); if (!aComplexFieldsToSave) aComplexFieldsToSave = this.GetComplexFieldsToSave([oPara]); oParaObject["pPr"]["sectPr"] = this.SerSectionPr(oPara.SectPr); var oTempElm = null; var oTempResult = null; var oLogicDocument = private_GetLogicDocument(); for (var nElm = 0; nElm < oPara.Content.length; nElm++) { oTempElm = oPara.Content[nElm]; if (oTempElm instanceof AscCommonWord.ParaRun && !oTempElm.FieldType && !oTempElm.Guid) { var oRunObject = this.SerParaRun(oTempElm, aComplexFieldsToSave); //if (oRunObject.content.length !== 0) // запись пустых ранов oParaObject["content"].push(oRunObject); } else if (oTempElm instanceof AscCommonWord.ParaMath) oParaObject["content"].push(this.SerParaMath(oTempElm)); else if (oTempElm instanceof AscCommonWord.ParaHyperlink) oParaObject["content"].push(this.SerHyperlink(oTempElm)); else if (oTempElm instanceof AscCommon.ParaComment) { oTempResult = this.SerParaComment(oTempElm, oMapCommentsInfo); if (oTempResult) oParaObject["content"].push(oTempResult); } else if (AscCommonWord.CParagraphBookmark && oTempElm instanceof AscCommonWord.CParagraphBookmark) { oTempResult = this.SerParaBookmark(oTempElm, oMapBookmarksInfo); if (oTempResult) oParaObject["content"].push(oTempResult); } else if (oTempElm instanceof AscCommonWord.CInlineLevelSdt) { var oSdt = this.SerInlineLvlSdt(oTempElm, aComplexFieldsToSave); if (oSdt) oParaObject["content"].push(oSdt); } else if (oTempElm instanceof AscCommon.CParaRevisionMove) { oParaObject["content"].push(this.SerRevisionMove(oTempElm)); } else if (oTempElm instanceof AscCommonWord.CPresentationField && oTempElm.FieldType && oTempElm.Guid) { oParaObject["content"].push(this.SerPresField(oTempElm)); } } // Revisions changes if (oLogicDocument) { var aChanges = oLogicDocument.TrackRevisionsManager ? oLogicDocument.TrackRevisionsManager.GetElementChanges(oPara.Id) : []; for (var nChange = 0; nChange < aChanges.length; nChange++) { oParaObject["changes"].push(this.SerRevisionChange(aChanges[nChange])); } } return oParaObject; }; WriterToJSON.prototype.SerPresField = function(oPresField) { var oPresFieldObj = this.SerParaRun(oPresField); oPresFieldObj["type"] = "presField"; oPresFieldObj["fldType"] = oPresField.FieldType; return oPresFieldObj; }; WriterToJSON.prototype.SerFootEndnote = function(oFootEndnote) { var aComplexFieldsToSave = this.GetComplexFieldsToSave(oFootEndnote.Content); var oMapCommentsInfo = this.GetMapCommentsInfo(oFootEndnote.Content, []); var oMapBookmarksInfo = this.GetMapBookmarksInfo(oFootEndnote.Content, []); var oFootEndnoteObj = { "content": [], "customMarkFollow": oFootEndnote.customMarkFollow, "hint": oFootEndnote.Hint, "id": oFootEndnote.Id, "number": oFootEndnote.Number, "columnsCount": oFootEndnote.ColumnsCount, "sectPr": this.SerSectionPr(oFootEndnote.SectPr), "type": oFootEndnote.parent instanceof CFootnotesController ? "footnote" : "endnote" }; var TempElm = null; for (var nElm = 0; nElm < oFootEndnote.Content.length; nElm++) { TempElm = oFootEndnote.Content[nElm]; if (TempElm instanceof AscWord.Paragraph) oFootEndnoteObj["content"].push(this.SerParagraph(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); else if (TempElm instanceof AscCommonWord.CTable) oFootEndnoteObj["content"].push(this.SerTable(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); else if (TempElm instanceof AscCommonWord.CBlockLevelSdt) oFootEndnoteObj["content"].push(this.SerBlockLvlSdt(TempElm, aComplexFieldsToSave, oMapCommentsInfo, oMapBookmarksInfo)); } return oFootEndnoteObj; }; WriterToJSON.prototype.SerRevisionMove = function(oMove) { if (!oMove) return undefined; return { "start": oMove.Start, "id": oMove.Id, "from": oMove.From, "name": oMove.Name, "reviewInfo": this.SerReviewInfo(oMove.ReviewInfo), "type": "revisionMove" } }; WriterToJSON.prototype.SerRevisionChange = function(oChange) { if (!oChange) return undefined; var sChangeType = undefined; switch (oChange.Type) { case Asc.c_oAscRevisionsChangeType.Unknown: sChangeType = "unknown"; break; case Asc.c_oAscRevisionsChangeType.TextAdd: sChangeType = "textAdd"; break; case Asc.c_oAscRevisionsChangeType.TextRem: sChangeType = "textRem"; break; case Asc.c_oAscRevisionsChangeType.ParaAdd: sChangeType = "paraAdd"; break; case Asc.c_oAscRevisionsChangeType.ParaRem: sChangeType = "paraRem"; break; case Asc.c_oAscRevisionsChangeType.TextPr: sChangeType = "textPr"; break; case Asc.c_oAscRevisionsChangeType.ParaPr: sChangeType = "paraPr"; break; case Asc.c_oAscRevisionsChangeType.TablePr: sChangeType = "tablePr"; break; case Asc.c_oAscRevisionsChangeType.RowsAdd: sChangeType = "rowsAdd"; break; case Asc.c_oAscRevisionsChangeType.RowsRem: sChangeType = "rowsRem"; break; case Asc.c_oAscRevisionsChangeType.TableRowPr: sChangeType = "tableRowPr"; break; case Asc.c_oAscRevisionsChangeType.MoveMark: sChangeType = "moveMark"; break; case Asc.c_oAscRevisionsChangeType.MoveMarkRemove: sChangeType = "moveMarkRemove"; break; } var sMoveType = undefined; switch (oChange.MoveType) { case Asc.c_oAscRevisionsMove.NoMove: sMoveType = "noMove"; break; case Asc.c_oAscRevisionsMove.MoveTo: sMoveType = "moveTo"; break; case Asc.c_oAscRevisionsMove.MoveFrom: sMoveType = "moveFrom"; break; } var changeValue; if (oChange.Value instanceof AscCommonWord.CTextPr) changeValue = this.SerTextPr(oChange.Value); else if (oChange.Value instanceof CParaRevisionMove) changeValue = ""; else changeValue = oChange.Value; var startPos; if (oChange.StartPos instanceof AscWord.CParagraphContentPos) { startPos = { "data": oChange.StartPos.Data, "death": oChange.StartPos.Depth, "bPlaceholder": oChange.StartPos.bPlaceholder } } else startPos = oChange.StartPos; var endPos; if (oChange.EndPos instanceof AscWord.CParagraphContentPos) { endPos = { "data": oChange.EndPos.Data, "death": oChange.EndPos.Depth, "bPlaceholder": oChange.EndPos.bPlaceholder } } else endPos = oChange.EndPos; /// ??? startpos endpos return { "date": oChange.DateTime, "start": startPos, "end": endPos, "userId": oChange.UserId, "author": oChange.UserName, "value": changeValue, "moveType": sMoveType, "type": sChangeType } }; WriterToJSON.prototype.SerDocument = function(oDocument) { var oDocObject = { "content": [], "hdrFtr": [], "sectPr": this.SerSectionPr(oDocument.SectPr), "changes": [], "type": "document" }; var aComplexFieldsToSave = this.GetComplexFieldsToSave(oDocument.Content); var TempElm = null; for (var nElm = 0; nElm < oDocument.Content.length; nElm++) { TempElm = oDocument.Content[nElm]; if (TempElm instanceof AscWord.Paragraph) oDocObject["content"].push(this.SerParagraph(TempElm, aComplexFieldsToSave)); else if (TempElm instanceof AscCommonWord.CTable) oDocObject["content"].push(this.SerTable(TempElm, aComplexFieldsToSave)); else if (TempElm instanceof AscCommonWord.CBlockLevelSdt) oDocObject["content"].push(this.SerBlockLvlSdt(TempElm, aComplexFieldsToSave)); } // header and footer // var oHdrFtr = oDocument.GetHdrFtr(); // for (var nPage = 0; nPage < oHdrFtr.Pages.length; nPage++) // oDocObject.hdrFtr.push(this.(oHdrFtr.Pages[nPage])); return oDocObject; }; WriterToJSON.prototype.SerTheme = function(oTheme) { var aExtraClrSchemeLst = []; for (var nElm = 0; nElm < oTheme.extraClrSchemeLst.length; nElm++) aExtraClrSchemeLst.push(this.SerExtraClrScheme(oTheme.extraClrSchemeLst[nElm])); var oThemeObj = { "custClrLst": this.SerColorMapOvr(oTheme.clrMap), // ??? maybe not supported "name": oTheme.name, "objectDefaults": { "lnDef": this.SerDefSpDefinition(oTheme.lnDef), // AscFormat.DefaultShapeDefinition "spDef": this.SerDefSpDefinition(oTheme.spDef), "txDef": this.SerDefSpDefinition(oTheme.txDef) }, "themeElements": { "clrScheme": this.SerClrScheme(oTheme.themeElements.clrScheme), "fmtScheme": this.SerFmtScheme(oTheme.themeElements.fmtScheme), "fontScheme": this.SerFontScheme(oTheme.themeElements.fontScheme) }, "extraClrSchemeLst": aExtraClrSchemeLst, // AscFormat.ExtraClrScheme: "isThemeOverride": oTheme.isThemeOverride, "id": oTheme.Id } // мамим, чтобы не записывать несколько раз this.themesMap[oTheme.Id] = oThemeObj; return oThemeObj; }; WriterToJSON.prototype.SerClrScheme = function(oClrScheme) { if (!oClrScheme) return undefined; return { "name": oClrScheme.name, "dk1": this.SerColor(oClrScheme.colors[8]), "lt1": this.SerColor(oClrScheme.colors[12]), "dk2": this.SerColor(oClrScheme.colors[9]), "lt2": this.SerColor(oClrScheme.colors[13]), "accent1": this.SerColor(oClrScheme.colors[0]), "accent2": this.SerColor(oClrScheme.colors[1]), "accent3": this.SerColor(oClrScheme.colors[2]), "accent4": this.SerColor(oClrScheme.colors[3]), "accent5": this.SerColor(oClrScheme.colors[4]), "accent6": this.SerColor(oClrScheme.colors[5]), "hlink": this.SerColor(oClrScheme.colors[11]), "folHlink": this.SerColor(oClrScheme.colors[10]), "type": "clrScheme" } }; WriterToJSON.prototype.SerFmtScheme = function(oFmtScheme) { if (!oFmtScheme) return undefined; var aBgFillStyleLst = []; for (var nFill = 0; nFill < oFmtScheme.bgFillStyleLst.length; nFill++) aBgFillStyleLst.push(this.SerFill(oFmtScheme.bgFillStyleLst[nFill])); //var aEffectStyleLst = []; // пока не поддерживаем var aFillStyleLst = []; for (nFill = 0; nFill < oFmtScheme.fillStyleLst.length; nFill++) aFillStyleLst.push(this.SerFill(oFmtScheme.fillStyleLst[nFill])); var aLnStyleLst = []; for (var nLn = 0; nLn < oFmtScheme.lnStyleLst.length; nLn++) aLnStyleLst.push(this.SerLn(oFmtScheme.lnStyleLst[nLn])); return { "name": oFmtScheme.name, "bgFillStyleLst": aBgFillStyleLst, "fillStyleLst": aFillStyleLst, "lnStyleLst": aLnStyleLst, "type": "fmtScheme" } }; WriterToJSON.prototype.SerFontScheme = function(oFontScheme) { if (!oFontScheme) return undefined; return { "name": oFontScheme.name, "majorFont": this.SerFontCollection(oFontScheme.majorFont), "minorFont": this.SerFontCollection(oFontScheme.minorFont), "type": "fontScheme" } }; WriterToJSON.prototype.SerFontCollection = function(oFontCollection) { if (!oFontCollection) return undefined; return { "cs": oFontCollection.cs, "ea": oFontCollection.ea, "latin": oFontCollection.latin } }; WriterToJSON.prototype.SerExtraClrScheme = function(oExtraClrScheme) { if (!oExtraClrScheme) return undefined; return { "clrMap": this.SerColorMapOvr(oExtraClrScheme.clrMap), "clrScheme": this.SerClrScheme(oExtraClrScheme.clrScheme) } }; WriterToJSON.prototype.SerDefSpDefinition = function(oDefinition) { if (!oDefinition) return undefined; return { "bodyPr": this.SerBodyPr(oDefinition.bodyPr), "lstStyle": this.SerLstStyle(oDefinition.lstStyle), "spPr": this.SerSpPr(oDefinition.spPr), "style": this.SerSpStyle(oDefinition.style) } }; ReaderFromJSON.prototype.ThemeFromJSON = function(oParsedTheme) { var oTheme = new AscFormat.CTheme(); for (var nElm = 0; nElm < oParsedTheme["extraClrSchemeLst"].length; nElm++) oTheme.addExtraClrSceme(this.ExtraClrSchemeFromJSON(oParsedTheme["extraClrSchemeLst"][nElm])); oTheme.setName(oParsedTheme["name"]); oParsedTheme["objectDefaults"]["lnDef"] && oTheme.setLnDef(this.DefSpDefinitionFromJSON(oParsedTheme["objectDefaults"]["lnDef"])); oParsedTheme["objectDefaults"]["spDef"] && oTheme.setSpDef(this.DefSpDefinitionFromJSON(oParsedTheme["objectDefaults"]["spDef"])); oParsedTheme["objectDefaults"]["txDef"] && oTheme.setTxDef(this.DefSpDefinitionFromJSON(oParsedTheme["objectDefaults"]["txDef"])); oParsedTheme["themeElements"]["clrScheme"] && oTheme.setColorScheme(this.ClrSchemeFromJSON(oParsedTheme["themeElements"]["clrScheme"])); oParsedTheme["themeElements"]["fmtScheme"] && oTheme.setFormatScheme(this.FmtSchemeFromJSON(oParsedTheme["themeElements"]["fmtScheme"])); oParsedTheme["themeElements"]["fontScheme"] && oTheme.setFontScheme(this.FontSchemeFromJSON(oParsedTheme["themeElements"]["fontScheme"])); oTheme.setIsThemeOverride(oParsedTheme["isThemeOverride"]); this.themesMap[oParsedTheme["id"]] = oTheme; return oTheme; }; ReaderFromJSON.prototype.ExtraClrSchemeFromJSON = function(oParsedExtrClrScheme) { var oExtraClrScheme = new AscFormat.ExtraClrScheme(); oParsedExtrClrScheme["clrMap"] && oExtraClrScheme.setClrMap(this.ColorMapOvrFromJSON(oParsedExtrClrScheme["clrMap"])); oParsedExtrClrScheme["clrScheme"] && oExtraClrScheme.setClrScheme(this.ClrSchemeFromJSON(oParsedExtrClrScheme["clrScheme"])); return oExtraClrScheme; }; ReaderFromJSON.prototype.ClrSchemeFromJSON = function(oParsedClrScheme) { var oClrScheme = new AscFormat.ClrScheme(); oClrScheme.setName(oParsedClrScheme["name"]); oParsedClrScheme["dk1"] && oClrScheme.addColor(8, this.ColorFromJSON(oParsedClrScheme["dk1"])); oParsedClrScheme["lt1"] && oClrScheme.addColor(12, this.ColorFromJSON(oParsedClrScheme["lt1"])); oParsedClrScheme["dk2"] && oClrScheme.addColor(9, this.ColorFromJSON(oParsedClrScheme["dk2"])); oParsedClrScheme["lt2"] && oClrScheme.addColor(13, this.ColorFromJSON(oParsedClrScheme["lt2"])); oParsedClrScheme["accent1"] && oClrScheme.addColor(0, this.ColorFromJSON(oParsedClrScheme["accent1"])); oParsedClrScheme["accent2"] && oClrScheme.addColor(1, this.ColorFromJSON(oParsedClrScheme["accent2"])); oParsedClrScheme["accent3"] && oClrScheme.addColor(2, this.ColorFromJSON(oParsedClrScheme["accent3"])); oParsedClrScheme["accent4"] && oClrScheme.addColor(3, this.ColorFromJSON(oParsedClrScheme["accent4"])); oParsedClrScheme["accent5"] && oClrScheme.addColor(4, this.ColorFromJSON(oParsedClrScheme["accent5"])); oParsedClrScheme["accent6"] && oClrScheme.addColor(5, this.ColorFromJSON(oParsedClrScheme["accent6"])); oParsedClrScheme["hlink"] && oClrScheme.addColor(11, this.ColorFromJSON(oParsedClrScheme["hlink"])); oParsedClrScheme["folHlink"] && oClrScheme.addColor(10, this.ColorFromJSON(oParsedClrScheme["folHlink"])); return oClrScheme; }; ReaderFromJSON.prototype.FmtSchemeFromJSON = function(oParsedFmtScheme) { var oFmtScheme = new AscFormat.FmtScheme(); for (var nBgFill = 0; nBgFill < oParsedFmtScheme["bgFillStyleLst"].length; nBgFill++) oFmtScheme.addBgFillToStyleLst(this.FillFromJSON(oParsedFmtScheme["bgFillStyleLst"][nBgFill])); for (var nFill = 0; nFill < oParsedFmtScheme["fillStyleLst"].length; nFill++) oFmtScheme.addFillToStyleLst(this.FillFromJSON(oParsedFmtScheme["fillStyleLst"][nFill])); for (nFill = 0; nFill < oParsedFmtScheme["lnStyleLst"].length; nFill++) oFmtScheme.addLnToStyleLst(this.LnFromJSON(oParsedFmtScheme["lnStyleLst"][nFill])); oParsedFmtScheme["name"] && oFmtScheme.setName(oParsedFmtScheme["name"]); return oFmtScheme; }; ReaderFromJSON.prototype.FontSchemeFromJSON = function(oParsedFntScheme) { var oFontScheme = new AscFormat.FontScheme(); this.FontCollectionFromJSON(oParsedFntScheme["majorFont"], "major", oFontScheme); this.FontCollectionFromJSON(oParsedFntScheme["minorFont"], "minor", oFontScheme); oParsedFntScheme["name"] && oFontScheme.setName(oParsedFntScheme["name"]); return oFontScheme; }; ReaderFromJSON.prototype.FontCollectionFromJSON = function(oParsedFntColl, sType, oParentFntScheme) { if (sType === "major") { oParentFntScheme.majorFont.setLatin(oParsedFntColl["latin"]); oParentFntScheme.majorFont.setEA(oParsedFntColl["ea"]); oParentFntScheme.majorFont.setCS(oParsedFntColl["cs"]); } if (sType === "minor") { oParentFntScheme.minorFont.setLatin(oParsedFntColl["latin"]); oParentFntScheme.minorFont.setEA(oParsedFntColl["ea"]); oParentFntScheme.minorFont.setCS(oParsedFntColl["cs"]); } }; ReaderFromJSON.prototype.DefSpDefinitionFromJSON = function(oParsedDefSpDef) { var oDefSpDefinition = new AscFormat.DefaultShapeDefinition(); oParsedDefSpDef["bodyPr"] && oDefSpDefinition.setBodyPr(this.BodyPrFromJSON(oParsedDefSpDef["bodyPr"])); oParsedDefSpDef["lstStyle"] && oDefSpDefinition.setLstStyle(this.LstStyleFromJSON(oParsedDefSpDef["lstStyle"])); oParsedDefSpDef["spPr"] && oDefSpDefinition.setSpPr(this.SpPrFromJSON(oParsedDefSpDef["spPr"])); oParsedDefSpDef["style"] && oDefSpDefinition.setStyle(this.SpStyleFromJSON(oParsedDefSpDef["style"])); return oDefSpDefinition; }; WriterToJSON.prototype.SerHeader = function(oHdr) { if (!oHdr) return undefined; return { "content": this.SerDocContent(oHdr.Content, undefined, undefined, undefined, true), "type": "hdr" } }; WriterToJSON.prototype.SerFooter = function(oFtr) { if (!oFtr) return undefined; return { "content": this.SerDocContent(oFtr.Content, undefined, undefined, undefined, true), "type": "ftr" } }; WriterToJSON.prototype.SerSectionPr = function(oSectionPr) { if (!oSectionPr) return undefined; var sSectionType = undefined; switch(oSectionPr.Type) { case Asc.c_oAscSectionBreakType.NextPage: sSectionType = "nextPage"; break; case Asc.c_oAscSectionBreakType.OddPage: sSectionType = "oddPage"; break; case Asc.c_oAscSectionBreakType.EvenPage: sSectionType = "evenPage"; break; case Asc.c_oAscSectionBreakType.Continuous: sSectionType = "continuous"; break; case Asc.c_oAscSectionBreakType.Column: sSectionType = "nextColumn"; break; } var oFooterReference = { "first": oSectionPr.FooterFirst ? this.SerFooter(oSectionPr.FooterFirst) : oSectionPr.FooterFirst, "default": oSectionPr.FooterDefault ? this.SerFooter(oSectionPr.FooterDefault) : oSectionPr.FooterDefault, "even": oSectionPr.FooterEven ? this.SerFooter(oSectionPr.FooterEven) : oSectionPr.FooterEven, }; var oHeaderReference = { "first": oSectionPr.HeaderFirst ? this.SerHeader(oSectionPr.HeaderFirst) : oSectionPr.HeaderFirst, "default": oSectionPr.HeaderDefault ? this.SerHeader(oSectionPr.HeaderDefault) : oSectionPr.HeaderDefault, "even": oSectionPr.HeaderEven ? this.SerHeader(oSectionPr.HeaderEven) : oSectionPr.HeaderEven, } return { "cols": this.SerSectionColumns(oSectionPr.Columns), "endnotePr": this.SerEndNotePr(oSectionPr.EndnotePr), "footerReference": oFooterReference, "footnotePr": this.SerFootnotePr(oSectionPr.FootnotePr), "headerReference": oHeaderReference, "lnNumType": this.SerLnNumType(oSectionPr.LnNumType), "pgBorders": this.SerPageBorders(oSectionPr.Borders), "pgMar": this.SerPageMargins(oSectionPr.PageMargins), "pgNumType": { "start": oSectionPr.PageNumType.Start }, "pgSz": this.SerPageSize(oSectionPr.PageSize), "rtlGutter": oSectionPr.GutterRTL, "titlePg": oSectionPr.TitlePage, "type": sSectionType } }; WriterToJSON.prototype.SerSectionColumns = function(oSectColumns) { if (!oSectColumns) return undefined; var aCols = []; for (var nCol = 0; nCol < oSectColumns.Cols.length; nCol++) aCols.push(this.SerSectionCol(oSectColumns.Cols[nCol])); return { "col": aCols, "equalWidth": oSectColumns.EqualWidth, "num": oSectColumns.Num, "sep": oSectColumns.Sep, "space": private_MM2Twips(oSectColumns.Space) } }; WriterToJSON.prototype.SerSectionCol = function(oSectionCol) { if (!oSectionCol) return undefined; return { "space": private_MM2Twips(oSectionCol.Space), "w": private_MM2Twips(oSectionCol.W) } }; WriterToJSON.prototype.SerEndNotePr = function(oEndNotePr) { if (!oEndNotePr) return undefined; var sNumRestart = undefined; switch(oEndNotePr.NumRestart) { case section_footnote_RestartContinuous: sNumRestart = "continuous"; break; case section_footnote_RestartEachPage: sNumRestart = "eachPage"; break; case section_footnote_RestartEachSect: sNumRestart = "eachSect"; break; } var sEndPos = undefined; switch(oEndNotePr.Pos) { case Asc.c_oAscEndnotePos.DocEnd: sEndPos = "docEnd"; break; case Asc.c_oAscEndnotePos.SectEnd: sEndPos = "sectEnd"; break; } return { "numFmt": To_XML_c_oAscNumberingFormat(oEndNotePr.NumFormat), "numRestart": sNumRestart, "numStart": oEndNotePr.NumStart, "pos": sEndPos } }; WriterToJSON.prototype.SerFootnotePr = function(oFootnotePr) { if (!oFootnotePr) return undefined; var sNumRestart = undefined; switch(oFootnotePr.NumRestart) { case section_footnote_RestartContinuous: sNumRestart = "continuous"; break; case section_footnote_RestartEachPage: sNumRestart = "eachPage"; break; case section_footnote_RestartEachSect: sNumRestart = "eachSect"; break; } var sEndPos = undefined; switch(oFootnotePr.Pos) { case Asc.c_oAscFootnotePos.BeneathText: sEndPos = "beneathText"; break; case Asc.c_oAscFootnotePos.DocEnd: sEndPos = "docEnd"; break; case Asc.c_oAscFootnotePos.PageBottom: sEndPos = "pgBottom"; break; case Asc.c_oAscFootnotePos.SectEnd: sEndPos = "sectEnd"; break; } return { "numFmt": To_XML_c_oAscNumberingFormat(oFootnotePr.NumFormat), "numRestart": sNumRestart, "numStart": oFootnotePr.NumStart, "pos": sEndPos } }; WriterToJSON.prototype.SerLnNumType = function(oLnNumType) { if (!oLnNumType) return undefined; var sRestartType = undefined; switch(oLnNumType.Restart) { case Asc.c_oAscLineNumberRestartType.Continuous: sRestartType = "continuous"; break; case Asc.c_oAscLineNumberRestartType.NewPage: sRestartType = "newPage"; break; case Asc.c_oAscLineNumberRestartType.NewSection: sRestartType = "newSection"; break; } return { "countBy": oLnNumType.CountBy, "distance": private_MM2Twips(oLnNumType.Distance), "start": oLnNumType.Start, "restart": sRestartType } }; WriterToJSON.prototype.SerPageBorders = function(oPageBorders) { if (!oPageBorders) return undefined; var sDisplayType = undefined; switch(oPageBorders.Display) { case section_borders_DisplayAllPages: sDisplayType = "allPages"; break; case section_borders_DisplayFirstPage: sDisplayType = "firstPage"; break; case section_borders_DisplayNotFirstPage: sDisplayType = "notFirstPage"; break; } return { "bottom": this.SerDocBorder(oPageBorders.Bottom), "left": this.SerDocBorder(oPageBorders.Left), "right": this.SerDocBorder(oPageBorders.Right), "top": this.SerDocBorder(oPageBorders.Top), "display": sDisplayType, "offsetFrom": oPageBorders.OffsetFrom === section_borders_OffsetFromText ? "text" : "page", "zOrder": oPageBorders.ZOrder === section_borders_ZOrderFront ? "front" : "back" } }; WriterToJSON.prototype.SerPageMargins = function(oPageMargins) { if (!oPageMargins) return undefined; return { "bottom": private_MM2Twips(oPageMargins.Bottom), "footer": private_MM2Twips(oPageMargins.Footer), "gutter": private_MM2Twips(oPageMargins.Gutter), "header": private_MM2Twips(oPageMargins.Header), "left": private_MM2Twips(oPageMargins.Left), "right": private_MM2Twips(oPageMargins.Right), "top": private_MM2Twips(oPageMargins.Top) } }; WriterToJSON.prototype.SerPageSize = function(oPageSize) { if (!oPageSize) return undefined; var sOrientType = undefined; switch(oPageSize.Orient) { case Asc.c_oAscPageOrientation.PagePortrait: sOrientType = "portrait"; break; case Asc.c_oAscPageOrientation.PageLandscape: sOrientType = "landscape"; break; } return { "h": private_MM2Twips(oPageSize.H), "orinet": sOrientType, "w": private_MM2Twips(oPageSize.W) } }; WriterToJSON.prototype.SerHyperlink = function(oHyperlink, aComplexFieldsToSave) { var oLinkObject = { "anchor": oHyperlink.Anchor ? oHyperlink.Anchor : undefined, "tooltip": oHyperlink.ToolTip ? oHyperlink.ToolTip : undefined, "value": oHyperlink.Value ? oHyperlink.Value : undefined, "content": [], "type": "hyperlink" }; if (!aComplexFieldsToSave) aComplexFieldsToSave = oHyperlink.GetAllFields(); var oTempElm = null; for (var nElm = 0; nElm < oHyperlink.Content.length; nElm++) { oTempElm = oHyperlink.Content[nElm]; if (oTempElm instanceof AscCommonWord.ParaRun) oLinkObject["content"].push(this.SerParaRun(oTempElm, aComplexFieldsToSave)); else if (oTempElm instanceof AscCommonWord.CInlineLevelSdt) oLinkObject["content"].push(this.SerInlineLvlSdt(oTempElm, aComplexFieldsToSave)); } return oLinkObject; }; WriterToJSON.prototype.SerParaRun = function(oRun, aComplexFieldsToSave) { var bFromDocument = false; var oParent = oRun.GetParagraph(); if (oParent) bFromDocument = oParent.bFromDocument; var sReviewType = undefined; switch (oRun.GetReviewType()) { case reviewtype_Common: sReviewType = "common"; break; case reviewtype_Remove: sReviewType = "remove"; break; case reviewtype_Add: sReviewType = "add"; break; } var oRunObject = { "bFromDocument": bFromDocument, "rPr": bFromDocument === true ? this.SerTextPr(oRun.Pr) : this.SerTextPrDrawing(oRun.Pr), "content": [], "footnotes": [], "endnotes": [], "reviewInfo": this.SerReviewInfo(oRun.ReviewInfo), "reviewType": sReviewType, "type": "run" } if (oRun.IsMathRun()) { oRunObject["type"] = "mathRun"; var oBoldItalic = oRun.MathPrp.GetBoldItalic(); oRunObject["mathPr"] = { "b": oBoldItalic.Bold, "i": oBoldItalic.Italic } } if (!aComplexFieldsToSave) { aComplexFieldsToSave = this.GetComplexFieldToSave(oRun); } function SerPageNum(oPageNum) { if (!oPageNum) return oPageNum; return { type: "pgNum" } } function SerPageCount(oPageCount) { if (!oPageCount) return []; return ToComplexField(oPageCount); } function SerCompFieldContent(aContent) { var aResult = []; for (var CurPos = 0; CurPos < aContent.length; CurPos++) { var oItem = aContent[CurPos]; if (oItem.Type === para_InstrText) continue; var oCompField = oItem.GetComplexField ? oItem.GetComplexField() : null; var sInstuction = oCompField ? oCompField.InstructionLine : undefined; if (sInstuction && oItem.IsBegin()) { aResult.push({ "type": "fldChar", "fldCharType": "begin" }); aResult.push({ "type": "instrText", "instr": sInstuction }); } else if (sInstuction && oItem.IsSeparate()) { aResult.push({ "type": "fldChar", "fldCharType": "separate" }); } else if (sInstuction && oItem.IsEnd()) { aResult.push({ "type": "fldChar", "fldCharType": "end" }); } else if (oItem.Type == para_Text) { aResult.push(String.fromCharCode(oItem.Value)); } } return aResult; } function ToComplexField(oElement) { var arrComplexFieldRuns = []; var oFldCharBegin = { "type": "fldChar", "fldCharType": "begin" } var oFldCharSep = { "type": "fldChar", "fldCharType": "separate" } var oFldCharEnd = { "type": "fldChar", "fldCharType": "end" } var oInstrText = { "type": "instrText" } var sResultOfField = ""; arrComplexFieldRuns.push(oFldCharBegin); switch (oElement.Type) { case para_PageCount: oInstrText.instr = "PAGE"; sResultOfField = oElement.String; } arrComplexFieldRuns.push(oInstrText); arrComplexFieldRuns.push(oFldCharSep); arrComplexFieldRuns.push(sResultOfField); arrComplexFieldRuns.push(oFldCharEnd); return arrComplexFieldRuns; } function SerParaNewLine(oParaNewLine) { if (!oParaNewLine) return oParaNewLine; var sBreakType = ""; if (oParaNewLine.IsLineBreak()) sBreakType = "textWrapping"; else if (oParaNewLine.IsPageBreak()) sBreakType = "page"; else if (oParaNewLine.IsColumnBreak()) sBreakType = "column"; return { "type": "break", "breakType": sBreakType } } var ContentLen = oRun.Content.length; var sTempRunText = ''; var allowAddCompField = false; for (var CurPos = 0; CurPos < ContentLen; CurPos++) { var Item = oRun.Content[CurPos]; var ItemType = Item.Type; switch (ItemType) { case para_PageNum: sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"].push(SerPageNum(Item)); sTempRunText = ''; break; case para_PageCount: sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"] = oRunObject["content"].concat(SerPageCount(Item)); sTempRunText = ''; break; case para_Drawing: { sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"].push(this.SerParaDrawing(Item)); sTempRunText = ''; break; } case para_End: { oRunObject["type"] = "endRun"; break; } case para_Text: { sTempRunText += String.fromCharCode(Item.Value); break; } case para_Math_BreakOperator: case para_Math_Placeholder: case para_Math_Text: sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"].push(this.SerMathText(Item)); sTempRunText = ''; break; case para_NewLine: sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"].push(SerParaNewLine(Item)); sTempRunText = ''; break; case para_Space: { sTempRunText += " "; break; } case para_Tab: sTempRunText !== "" && oRunObject["content"].push(sTempRunText); oRunObject["content"].push({ "type": "tab" }); sTempRunText = ''; break; case para_FieldChar: var oComplexField = Item.GetComplexField(); for (var nCompField = 0; nCompField < aComplexFieldsToSave.length; nCompField++) { if (aComplexFieldsToSave[nCompField] === oComplexField) { allowAddCompField = true; oRunObject["content"] = oRunObject["content"].concat(SerCompFieldContent(oRun.Content)); break; } } break; case para_RevisionMove: oRunObject["content"].push(this.SerRevisionMove(Item)); break; case para_FootnoteReference: oRunObject["content"].push(this.SerParaFootEndNoteRef(Item)); oRunObject["footnotes"].push(this.SerFootEndnote(Item.Footnote)); break; case para_FootnoteRef: oRunObject["content"].push(this.SerParaFootEndNoteRef(Item)); break; case para_EndnoteReference: oRunObject["content"].push(this.SerParaFootEndNoteRef(Item)); oRunObject["endnotes"].push(this.SerFootEndnote(Item.Footnote)); break; case para_EndnoteRef: oRunObject["content"].push(this.SerParaFootEndNoteRef(Item)); break; } if (allowAddCompField) break; } if (ContentLen !== 0) sTempRunText !== "" && oRunObject["content"].push(sTempRunText); return oRunObject; }; WriterToJSON.prototype.SerMathText = function(oMathText) { return { "value": oMathText.value, "type": "mathTxt" } }; WriterToJSON.prototype.SerParaFootEndNoteRef = function(oFootnoteRef) { var sType = undefined; switch (oFootnoteRef.Type) { // Ссылка на сноску case para_FootnoteReference: sType = "footnoteRef"; break; // Номер сноски (должен быть только внутри сноски) case para_FootnoteRef: sType = "footnoteNum"; break; // Ссылка на сноску case para_EndnoteReference: sType = "endnoteRef"; break; // Номер сноски (должен быть только внутри сноски) case para_EndnoteRef: sType = "endnoteNum" } return { "customMark": oFootnoteRef.CustomMark, "footnote": oFootnoteRef.Footnote.Id, "numFormat": oFootnoteRef.NumFormat, "number": oFootnoteRef.Number, "type": sType } }; WriterToJSON.prototype.SerReviewInfo = function(oReviewInfo) { if (!oReviewInfo) return undefined; // move type var sMoveType = undefined; switch (oReviewInfo.MoveType) { case Asc.c_oAscRevisionsMove.NoMove: sMoveType = "noMove"; break; case Asc.c_oAscRevisionsMove.MoveTo: sMoveType = "moveTo"; break; case Asc.c_oAscRevisionsMove.MoveFrom: sMoveType = "moveFrom"; break; } // prev type var sPrevType = -1; switch (oReviewInfo.PrevType) { case Asc.c_oAscRevisionsMove.NoMove: sPrevType = "noMove"; break; case Asc.c_oAscRevisionsMove.MoveTo: sPrevType = "moveTo"; break; case Asc.c_oAscRevisionsMove.MoveFrom: sPrevType = "moveFrom"; break; } return { "userId": oReviewInfo.UserId, "author": oReviewInfo.UserName, "date": oReviewInfo.DateTime, "moveType": sMoveType, "prevType": sPrevType, "prevInfo": this.SerReviewInfo(oReviewInfo.PrevInfo) } }; WriterToJSON.prototype.SerParaDrawing = function(oDrawing, aComplexFieldsToSave) { // to do - SizeRelV - SizeRelV var sWrapType = this.GetWrapStrType(oDrawing.wrappingType); var oResult = { "docPr": this.SerCNvPr(oDrawing.docPr), "effectExtent": this.SerEffectExtent(oDrawing.EffectExtent), "extent": this.SerExtent(oDrawing.Extent), "graphic": this.SerGraphicObject(oDrawing.GraphicObj, aComplexFieldsToSave), "positionH": this.SerPositionH(oDrawing.PositionH), "positionV": this.SerPositionV(oDrawing.PositionV), "simplePos": this.SerSimplePos(oDrawing.SimplePos), "sizeRelH": this.SerSizeRelH(oDrawing.SizeRelH), "sizeRelV": this.SerSizeRelV(oDrawing.SizeRelV), "distB": oDrawing.Distance ? private_MM2EMU(oDrawing.Distance.B) : undefined, "distL": oDrawing.Distance ? private_MM2EMU(oDrawing.Distance.L) : undefined, "distR": oDrawing.Distance ? private_MM2EMU(oDrawing.Distance.R) : undefined, "distT": oDrawing.Distance ? private_MM2EMU(oDrawing.Distance.T) : undefined, "allowOverlap": oDrawing.AllowOverlap, "behindDoc": oDrawing.behindDoc, "hidden": oDrawing.Hidden, "layoutInCell": oDrawing.LayoutInCell, "locked": oDrawing.Locked, "cNvGraphicFramePr": this.SerGraphicFrameLocks(oDrawing.GraphicObj.locks), "relativeHeight": oDrawing.RelativeHeight, "wrapType": this.GetWrapStrType(oDrawing.wrappingType), "drawingType": oDrawing.DrawingType === drawing_Inline ? "inline" : "anchor", "type": "paraDrawing" } switch (sWrapType) { case "tight": oResult["wrapTight"] = this.SerWrappingPolygon(oDrawing.getWrapContour()); break; case "through": oResult["wrapThrough"] = this.SerWrappingPolygon(oDrawing.getWrapContour()); break; } return oResult; }; WriterToJSON.prototype.SerGraphicFrameLocks = function(nLocks) { var oLocks = {}; if (nLocks & AscFormat.LOCKS_MASKS.noChangeAspect) { oLocks["noChangeAspect"] = !!(nLocks & AscFormat.LOCKS_MASKS.noChangeAspect << 1); } if (nLocks & AscFormat.LOCKS_MASKS.noDrilldown) { oLocks["noDrilldown"] = !!(nLocks & AscFormat.LOCKS_MASKS.noDrilldown << 1); } if (nLocks & AscFormat.LOCKS_MASKS.noGrp) { oLocks["noGrp"] = !!(nLocks & AscFormat.LOCKS_MASKS.noGrp << 1); } if (nLocks & AscFormat.LOCKS_MASKS.noMove) { oLocks["noMove"] = !!(nLocks & AscFormat.LOCKS_MASKS.noMove << 1); } if (nLocks & AscFormat.LOCKS_MASKS.noResize) { oLocks["noResize"] = !!(nLocks & AscFormat.LOCKS_MASKS.noResize << 1); } if (nLocks & AscFormat.LOCKS_MASKS.noSelect) { oLocks["noSelect"] = !!(nLocks & AscFormat.LOCKS_MASKS.noSelect << 1); } return { "graphicFrameLocks": oLocks } }; WriterToJSON.prototype.SerSizeRelH = function(oSizeRelH) { if (!oSizeRelH) return undefined; return { "relativeFrom": ToXml_ST_SizeRelFromH(oSizeRelH.RelativeFrom), "wp14:pctWidth": (oSizeRelH.Percent * 100) >> 0 } }; WriterToJSON.prototype.SerSizeRelV = function(oSizeRelV) { if (!oSizeRelV) return undefined; return { "relativeFrom": ToXml_ST_SizeRelFromV(oSizeRelV.RelativeFrom), "wp14:pctHeight": (oSizeRelV.Percent * 100) >> 0 } }; WriterToJSON.prototype.SerWrappingPolygon = function(aContour) { var oResult = { //всегда пишем Edited == true потому что наш контур отличается от word. "edited": true } if (aContour.length > 0) { oResult["start"] = this.SerPolygonPoint(aContour[0]); if (aContour.length > 1) { // array oResult["lineTo"] = this.SerPolygonPoints(aContour); } } return oResult; }; WriterToJSON.prototype.SerPolygonPoint = function(oPolygonPoint) { return { "x": oPolygonPoint.x != null ? private_MM2EMU(oPolygonPoint.x) : undefined, "y": oPolygonPoint.y != null ? private_MM2EMU(oPolygonPoint.y) : undefined } }; WriterToJSON.prototype.SerPolygonPoints = function(aPolygonPoints) { var aResult = []; // начинаем со второй, потому что первая идет в поле start for (var nPoint = 1; nPoint < aPolygonPoints.length; nPoint++) aResult.push(this.SerPolygonPoint(aPolygonPoints[nPoint])); return aResult; }; /** * Get all complex fields to save from content (Takes into account the positions of the beginning and end of fields) * @param {Array} arrContent - array of document content * @param {Array} minStartDocPos - the minimum allowable position not exceeding which we will save the field * @param {Array} maxStartDocPos - the maximum allowable position not exceeding which we will save the field * @param {bool} bAll - get all complex fields in content * @return {Array} - returns array with complex fields to save */ WriterToJSON.prototype.GetComplexFieldsToSave = function(arrContent, minStartDocPos, maxStartDocPos, bAll) { var oMinStartPos = minStartDocPos ? minStartDocPos : (arrContent.length !== 0 ? arrContent[0].GetDocumentPositionFromObject() : null); var oMaxStartPos = maxStartDocPos ? maxStartDocPos : (arrContent.length !== 0 ? arrContent[arrContent.length - 1].GetDocumentPositionFromObject() : null); if (oMinStartPos[0].Position === -1 || oMaxStartPos[0].Position === -1) bAll = true; var arrCompexFieldsToSave = []; var arrElmContent; for (var nElm = 0; nElm < arrContent.length; nElm++) { var oElm = arrContent[nElm]; var oFieldStartPos = null; var oFieldEndPos = null; var arrTemp = []; if (oElm instanceof AscWord.Paragraph) { arrTemp = oElm.GetAllFields(); if (!bAll) { for (var nField = 0; nField < arrTemp.length; nField++) { oFieldStartPos = arrTemp[nField].GetStartDocumentPosition(); oFieldEndPos = arrTemp[nField].GetEndDocumentPosition(); if (private_checkRelativePos(oFieldStartPos, oMinStartPos) === 1 || private_checkRelativePos(oFieldEndPos, oMaxStartPos) === -1) { arrTemp.splice(nField, 1); nField--; } } } arrCompexFieldsToSave = arrCompexFieldsToSave.concat(arrTemp); } if (oElm instanceof AscCommonWord.CTable) { arrElmContent = null; for (var nRow = 0; nRow < oElm.Content.length; nRow++) { for (var nCell = 0; nCell < oElm.Content[nRow].Content.length; nCell++) { arrElmContent = oElm.Content[nRow].Content[nCell].Content.Content; arrCompexFieldsToSave = arrCompexFieldsToSave.concat(this.GetComplexFieldsToSave(arrElmContent, undefined, undefined, bAll)); } } } if (oElm instanceof AscCommonWord.CBlockLevelSdt) { arrElmContent = oElm.Content.Content; arrCompexFieldsToSave = arrCompexFieldsToSave.concat(this.GetComplexFieldsToSave(arrElmContent, undefined, undefined, bAll)); } } return arrCompexFieldsToSave; }; /** * Get all comments to save from content (Takes into account the positions of the beginning and end of fields) * @param {Array} arrContent - array of document content * @param {object} oMap * @return {object} - returns map with comments to save */ WriterToJSON.prototype.GetMapCommentsInfo = function(arrContent, oMap) { if (!oMap) oMap = {}; var arrElmContent; for (var nElm = 0; nElm < arrContent.length; nElm++) { var oElm = arrContent[nElm]; if (oElm instanceof AscWord.Paragraph) { var aParaComments = oElm.GetAllComments(); for (var nComment = 0; nComment < aParaComments.length; nComment++) { if (!oMap[aParaComments[nComment].Comment.CommentId]) oMap[aParaComments[nComment].Comment.CommentId] = {}; if (aParaComments[nComment].Comment.Start) oMap[aParaComments[nComment].Comment.CommentId].Start = true; else oMap[aParaComments[nComment].Comment.CommentId].End = true; } } if (oElm instanceof AscCommonWord.CTable) { arrElmContent = null; for (var nRow = 0; nRow < oElm.Content.length; nRow++) { for (var nCell = 0; nCell < oElm.Content[nRow].Content.length; nCell++) { arrElmContent = oElm.Content[nRow].Content[nCell].Content.Content; this.GetMapCommentsInfo(arrElmContent, oMap); } } } if (oElm instanceof AscCommonWord.CBlockLevelSdt) { arrElmContent = oElm.Content.Content; this.GetMapCommentsInfo(arrElmContent, oMap); } } return oMap; }; /** * Get all bookmarks to save from content (Takes into account the positions of the beginning and end of fields) * @param {Array} arrContent - array of document content * @param {object} oMap * @return {object} - returns map with boomarks to save */ WriterToJSON.prototype.GetMapBookmarksInfo = function(arrContent, oMap) { if (!oMap) oMap = {}; var arrElmContent; if (!AscCommonWord.CParagraphBookmark) return oMap; for (var nElm = 0; nElm < arrContent.length; nElm++) { var oElm = arrContent[nElm]; if (oElm instanceof AscWord.Paragraph) { for (var nItem = 0; nItem < oElm.Content.length; nItem++) { if (!(oElm.Content[nItem] instanceof AscCommonWord.CParagraphBookmark)) continue; if (!oMap[oElm.Content[nItem].BookmarkId]) oMap[oElm.Content[nItem].BookmarkId] = {}; if (oElm.Content[nItem].Start) oMap[oElm.Content[nItem].BookmarkId]["Start"] = true; else oMap[oElm.Content[nItem].BookmarkId]["End"] = true; } } if (oElm instanceof AscCommonWord.CTable) { arrElmContent = null; for (var nRow = 0; nRow < oElm.Content.length; nRow++) { for (var nCell = 0; nCell < oElm.Content[nRow].Content.length; nCell++) { arrElmContent = oElm.Content[nRow].Content[nCell].Content.Content; this.GetMapBookmarksInfo(arrElmContent, oMap); } } } if (oElm instanceof AscCommonWord.CBlockLevelSdt) { arrElmContent = oElm.Content.Content; this.GetMapBookmarksInfo(arrElmContent, oMap); } } return oMap; }; WriterToJSON.prototype.GetComplexFieldToSave = function(oRun) { var aFieldsToSave = []; var arrRunContent = oRun.Content; for (var CurPos = 0; CurPos < arrRunContent.length; CurPos++) { var oItem = arrRunContent[CurPos]; if (oItem.Type !== para_FieldChar) continue; var oCompField = oItem.GetComplexField(); var oFieldStartPos = oCompField.GetStartDocumentPosition(); var oFieldEndPos = oCompField.GetEndDocumentPosition(); var RunStartPos = oRun.GetDocumentPositionFromObject(); var RunEndPos = oRun.GetDocumentPositionFromObject(); RunStartPos.push({Class: oRun, Position: 0}); RunEndPos.push({Class: oRun, Position: oRun.Content.length}); if (private_checkRelativePos(oFieldStartPos, RunStartPos) === 1 || private_checkRelativePos(oFieldEndPos, RunEndPos) === -1) break; else { aFieldsToSave.push(oCompField); break; } } return aFieldsToSave; }; WriterToJSON.prototype.SerNumbering = function(oNum) { if (!oNum) return undefined; if (this.jsonWordNumberings == null) { this.jsonWordNumberings = { "abstractNum": { }, "num": { }, "type": "numbering" } } var arrNumLvls = []; var abtrNumb = oNum.Numbering.AbstractNum[oNum.AbstractNumId]; var arrLvlOverride = []; if (this.jsonWordNumberings["abstractNum"][abtrNumb.Id] == null) { // fill arrNumLvls for (var nLvl = 0; nLvl < abtrNumb.Lvl.length; nLvl++) arrNumLvls.push(this.SerNumLvl(abtrNumb.Lvl[nLvl], nLvl)); this.jsonWordNumberings["abstractNum"][abtrNumb.Id] = { "lvl": arrNumLvls, "numStyleLink": abtrNumb.NumStyleLink, "styleLink": abtrNumb.StyleLink, "abstractNumId": abtrNumb.Id }; } if (this.jsonWordNumberings["num"][oNum.Id] == null) { // fill arrLvlOverride for (var nOvrd = 0; nOvrd < 9; nOvrd++) { if (oNum.LvlOverride[nOvrd]) { arrLvlOverride.push({ "lvl": this.SerNumLvl(oNum.LvlOverride[nOvrd].NumberingLvl, oNum.LvlOverride[nOvrd].Lvl), "startOverride": oNum.LvlOverride[nOvrd].StartOverride, "ilvl": oNum.LvlOverride[nOvrd].Lvl }); } } this.jsonWordNumberings["num"][oNum.Id] = { "abstractNumId": oNum.AbstractNumId, "lvlOverride": arrLvlOverride, "numId": oNum.Id } } }; WriterToJSON.prototype.SerNumLvl = function(oLvl, nLvl) { if (!oLvl) return undefined; let oResult = oLvl.ToJson(nLvl); if (oLvl.PStyle != null) oResult["pStyle"] = this.AddWordStyleForWrite(oLvl.PStyle); return oResult; }; WriterToJSON.prototype.SerLvlTextItem = function(oTextItem) { if(numbering_lvltext_Text == oTextItem.Type) { return oTextItem.Value.toString(); } else if(numbering_lvltext_Num == oTextItem.Type) { return "%" + (oTextItem.Value + 1); } }; WriterToJSON.prototype.SerTabs = function(oTabs) { if (!oTabs) return undefined; var aTabs = []; for (var nTab = 0; nTab < oTabs.Tabs.length; nTab++) { aTabs.push({ "val": ToXml_ST_TabJc(oTabs.Tabs[nTab].Value), "pos": private_MM2Twips(oTabs.Tabs[nTab].Pos), "leader": ToXml_ST_TabTlc(oTabs.Tabs[nTab].Leader) }); } return aTabs; }; WriterToJSON.prototype.SerTabsDrawing = function(oTabs) { if (!oTabs) return undefined; let aTabs = []; let sAlign; for (let i = 0; i < oTabs.Tabs.length; i++) { sAlign = "l"; if(oTabs.Tabs[i].Value === tab_Center) { sAlign = "ctr"; } else if(oTabs.Tabs[i].Value === tab_Right) { sAlign = "r"; } aTabs.push({ "algn": sAlign, "pos": private_MM2EMU(oTabs.Tabs[i].Pos) }) } return aTabs; }; WriterToJSON.prototype.SerSerTx = function(oTx) { if (!oTx) return undefined; return { "strRef": this.SerStrRef(oTx.strRef), "v": oTx.val } }; WriterToJSON.prototype.SerChartTx = function(oTx) { if (!oTx) return undefined; return { "strRef": this.SerStrRef(oTx.strRef), "rich": this.SerTxPr(oTx.rich) } }; WriterToJSON.prototype.SerScaling = function(oScaling) { if (!oScaling) return undefined; var sOrientType = oScaling.orientation === AscFormat.ORIENTATION_MAX_MIN ? "maxMin" : "minMax"; return { "logBase": oScaling.logBase, "max": oScaling.max, "min": oScaling.min, "orientation": sOrientType } }; WriterToJSON.prototype.SerNumFmt = function(oNumFmt) { if (!oNumFmt) return undefined; return { "formatCode": oNumFmt.formatCode, "sourceLinked": oNumFmt.sourceLinked } }; WriterToJSON.prototype.SerDispUnits = function(oDispUnits) { if (!oDispUnits) return undefined; var sBuiltInUnit = undefined; switch(oDispUnits.builtInUnit) { case Asc.c_oAscValAxUnits.none: sBuiltInUnit = "none"; break; case Asc.c_oAscValAxUnits.BILLIONS: sBuiltInUnit = "billions"; break; case Asc.c_oAscValAxUnits.HUNDRED_MILLIONS: sBuiltInUnit = "hundredMillions"; break; case Asc.c_oAscValAxUnits.HUNDREDS: sBuiltInUnit = "hundreds"; break; case Asc.c_oAscValAxUnits.HUNDRED_THOUSANDS: sBuiltInUnit = "hundredThousands"; break; case Asc.c_oAscValAxUnits.MILLIONS: sBuiltInUnit = "millions"; break; case Asc.c_oAscValAxUnits.TEN_MILLIONS: sBuiltInUnit = "tenMillions"; break; case Asc.c_oAscValAxUnits.TEN_THOUSANDS: sBuiltInUnit = "tenThousands"; break; case Asc.c_oAscValAxUnits.TRILLIONS: sBuiltInUnit = "trillions"; break; case Asc.c_oAscValAxUnits.CUSTOM: sBuiltInUnit = "custom"; break; case Asc.c_oAscValAxUnits.THOUSANDS: sBuiltInUnit = "thousands"; break; } return { "builtInUnit": sBuiltInUnit, "custUnit": oDispUnits.custUnit, "dispUnitsLbl": this.SerDlbl(oDispUnits.dispUnitsLbl) } }; WriterToJSON.prototype.SerValAx = function(oValAx) { if (!oValAx) return undefined; var sCrossBetweenType = oValAx.crossBetween === AscFormat.CROSS_BETWEEN_BETWEEN ? "between" : "midCat"; return { "axId": oValAx.axId, "axPos": this.GetAxPosStrType(oValAx.axPos), "crossAx": oValAx.crossAx.axId, "crossBetween": sCrossBetweenType, "crosses": this.GetCrossesStrType(oValAx.crosses), "crossesAt": oValAx.crossesAt, "delete": oValAx.bDelete, "dispUnits": this.SerDispUnits(oValAx.dispUnits), "extLst": oValAx.extLst, /// ??? "majorGridlines": this.SerSpPr(oValAx.majorGridlines), "majorTickMark": this.GetTickMarkStrType(oValAx.majorTickMark), "majorUnit": oValAx.majorUnit, "minorGridlines": this.SerSpPr(oValAx.minorGridlines), "minorTickMark": this.GetTickMarkStrType(oValAx.minorTickMark), "minorUnit": oValAx.minorUnit, "numFmt": this.SerNumFmt(oValAx.numFmt), "scaling": this.SerScaling(oValAx.scaling), "spPr": this.SerSpPr(oValAx.spPr), "tickLblPos": this.GetTickLabelStrPos(oValAx.tickLblPos), "title": this.SerTitle(oValAx.title), "txPr": this.SerTxPr(oValAx.txPr), "type": "valAx" } }; WriterToJSON.prototype.GetAxPosStrType = function(nType) { var sAxPos = undefined; switch (nType) { case AscFormat.AX_POS_B: sAxPos = "b"; break; case AscFormat.AX_POS_L: sAxPos = "l"; break; case AscFormat.AX_POS_R: sAxPos = "r"; break; case AscFormat.AX_POS_T: sAxPos = "t"; break; } return sAxPos; }; WriterToJSON.prototype.GetTickLabelStrPos = function(nType) { var sTickLblPos = undefined; switch (nType) { case Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH: sTickLblPos = "high"; break; case Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW: sTickLblPos = "low"; break; case Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO: sTickLblPos = "nextTo"; break; case Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE: sTickLblPos = "none"; break; } return sTickLblPos; }; WriterToJSON.prototype.SerAxis = function(oAxis) { if (oAxis instanceof AscFormat.CCatAx) return this.SerCatAx(oAxis); if (oAxis instanceof AscFormat.CValAx) return this.SerValAx(oAxis); if (oAxis instanceof AscFormat.CDateAx) return this.SerDateAx(oAxis); if (oAxis instanceof AscFormat.CSerAx) return this.SerSerAx(oAxis); }; WriterToJSON.prototype.SerPlotArea = function(oPlotArea) { if (!oPlotArea) return undefined; var arrAxId = []; for (var nAx = 0; nAx < oPlotArea.axId.length; nAx++) arrAxId.push(this.SerAxis(oPlotArea.axId[nAx])) return { "axId": arrAxId, "charts": this.SerCharts(oPlotArea.charts), "catAx": oPlotArea.catAx ? oPlotArea.catAx.axId : undefined, "dateAx": oPlotArea.dateAx ? oPlotArea.dateAx.axId : undefined, "valAx": oPlotArea.valAx ? oPlotArea.valAx.axId : undefined, "serAx": oPlotArea.serAx ? oPlotArea.serAx.axId : undefined, "dTable": this.SerDataTable(oPlotArea.dTable), "layout": this.SerLayout(oPlotArea.layout), "spPr": this.SerSpPr(oPlotArea.spPr) } }; WriterToJSON.prototype.SerDataTable = function(oData) { if (!oData) return undefined; return { "showHorzBorder": oData.showHorzBorder, "showKeys": oData.showKeys, "showOutline": oData.showOutline, "showVertBorder": oData.showVertBorder, "spPr": this.SerSpPr(oData.spPr), "txPr": this.SerTxPr(oData.txPr) }; }; WriterToJSON.prototype.SerSerAx = function(oSerAx) { if (!oSerAx) return undefined; return { "axId": oSerAx.axId, "axPos": this.GetAxPosStrType(oSerAx.axPos), "crossAx": oSerAx.crossAx.axId, "crosses": this.GetCrossesStrType(oSerAx.crosses), "crossesAt": oSerAx.crossesAt, "delete": oSerAx.bDelete, "extLst": oSerAx.extLst, /// ? "majorGridlines": this.SerSpPr(oSerAx.majorGridlines), "majorTickMark": this.GetTickMarkStrType(oSerAx.majorTickMark), "minorGridlines": this.SerSpPr(oSerAx.minorGridlines), "minorTickMark": this.GetTickMarkStrType(oSerAx.minorTickMark), "numFmt": this.SerNumFmt(oSerAx.numFmt), "scaling": this.SerScaling(oSerAx.scaling), "spPr": this.SerSpPr(oSerAx.spPr), "tickLblPos": this.GetTickLabelStrPos(oSerAx.tickLblPos), "tickLblSkip": oSerAx.tickLblSkip, "tickMarkSkip": oSerAx.tickMarkSkip, "title": this.SerTitle(oSerAx.title), "txPr": this.SerTxPr(oSerAx.txPr), "type": "serAx" } }; WriterToJSON.prototype.SerCatAx = function(oCatAx) { if (!oCatAx) return undefined; var sLblAlgn = undefined; switch(oCatAx.lblAlgn) { case AscFormat.LBL_ALG_CTR: sLblAlgn = "ctr"; break; case AscFormat.LBL_ALG_L: sLblAlgn = "l"; break; case AscFormat.LBL_ALG_R: sLblAlgn = "r"; break; } return { "auto": oCatAx.auto, "axId": oCatAx.axId, "axPos": this.GetAxPosStrType(oCatAx.axPos), "crossAx": oCatAx.crossAx.axId, "crosses": this.GetCrossesStrType(oCatAx.crosses), "crossesAt": oCatAx.crossesAt, "delete": oCatAx.bDelete, "extLst": oCatAx.extLst, /// ? "lblAlgn": sLblAlgn, "lblOffset": oCatAx.lblOffset, "majorGridlines": this.SerSpPr(oCatAx.majorGridlines), "majorTickMark": this.GetTickMarkStrType(oCatAx.majorTickMark), "minorGridlines": this.SerSpPr(oCatAx.minorGridlines), "minorTickMark": this.GetTickMarkStrType(oCatAx.minorTickMark), "noMultiLvlLbl": oCatAx.noMultiLvlLbl, "numFmt": this.SerNumFmt(oCatAx.numFmt), "scaling": this.SerScaling(oCatAx.scaling), "spPr": this.SerSpPr(oCatAx.spPr), "tickLblPos": this.GetTickLabelStrPos(oCatAx.tickLblPos), "tickLblSkip": oCatAx.tickLblSkip, "tickMarkSkip": oCatAx.tickMarkSkip, "title": this.SerTitle(oCatAx.title), "txPr": this.SerTxPr(oCatAx.txPr), "type": "catAx" } }; WriterToJSON.prototype.SerDateAx = function(oDateAx) { if (!oDateAx) return undefined; return { "auto": oDateAx.auto, "axId": oDateAx.axId, "axPos": this.GetAxPosStrType(oDateAx.axPos), "baseTimeUnit": this.GetTimeUnitStrType(oDateAx.baseTimeUnit), "crossAx": oDateAx.crossAx ? oDateAx.crossAx.axId : undefined, "crosses": this.GetCrossesStrType(oDateAx.crosses), "crossesAt": oDateAx.crossesAt, "delete": oDateAx.bDelete, "extLst": oDateAx.extLst, "lblOffset": oDateAx.lblOffset, "majorGridlines": this.SerSpPr(oDateAx.majorGridlines), "majorTickMark": this.GetTickMarkStrType(oDateAx.majorTickMark), "majorTimeUnit": this.GetTimeUnitStrType(oDateAx.majorTimeUnit), "majorUnit": oDateAx.majorUnit, "minorGridlines": this.SerSpPr(oDateAx.minorGridlines), "minorTickMark": this.GetTickMarkStrType(oDateAx.minorTickMark), "minorTimeUnit": this.GetTimeUnitStrType(oDateAx.minorTimeUnit), "minorUnit": oDateAx.minorUnit, "numFmt": this.SerNumFmt(oDateAx.numFmt), "scaling": this.SerScaling(oDateAx.scaling), "spPr": this.SerSpPr(oDateAx.spPr), "tickLblPos": this.GetTickLabelStrPos(oDateAx.tickLblPos), "title": this.SerTitle(oDateAx.title), "txPr": this.SerTxPr(oDateAx.txPr), "type": "dateAx" } }; WriterToJSON.prototype.GetCrossesStrType = function(nType) { var sType = undefined; switch(nType) { case AscFormat.CROSSES_AUTO_ZERO: sType = "autoZero"; break; case AscFormat.CROSSES_MAX: sType = "max"; break; case AscFormat.CROSSES_MIN: sType = "min"; break; } return sType; }; WriterToJSON.prototype.GetTickMarkStrType = function(nType) { var sType = undefined; switch(nType) { case Asc.c_oAscTickMark.TICK_MARK_CROSS: sType = "cross"; break; case Asc.c_oAscTickMark.TICK_MARK_IN: sType = "in"; break; case Asc.c_oAscTickMark.TICK_MARK_NONE: sType = "none"; break; case Asc.c_oAscTickMark.TICK_MARK_OUT: sType = "out"; break; } return sType; }; WriterToJSON.prototype.GetTimeUnitStrType = function(nType) { var sTimeUnit = undefined; switch(nType) { case AscFormat.TIME_UNIT_DAYS: sTimeUnit = "days"; break; case AscFormat.TIME_UNIT_MONTHS: sTimeUnit = "months"; break; case AscFormat.TIME_UNIT_YEARS: sTimeUnit = "years"; break; } return sTimeUnit; }; WriterToJSON.prototype.SerLayout = function(oLayout) { if (!oLayout) return undefined; return { "h": oLayout.h, "hMode": oLayout.hMode != null ? (oLayout.hMode === AscFormat.LAYOUT_MODE_EDGE ? "edge" : "factor") : undefined, "layoutTarget": oLayout.layoutTarget != null ? (oLayout.layoutTarget === AscFormat.LAYOUT_TARGET_INNER ? "inner" : "outer") : undefined, "w": oLayout.w, "wMode": oLayout.wMode != null ? (oLayout.wMode === AscFormat.LAYOUT_MODE_EDGE ? "edge" : "factor") : undefined, "x": oLayout.x, "xMode": oLayout.xMode != null ? (oLayout.xMode === AscFormat.LAYOUT_MODE_EDGE ? "edge" : "factor") : undefined, "y": oLayout.y, "yMode": oLayout.yMode != null ? (oLayout.yMode === AscFormat.LAYOUT_MODE_EDGE ? "edge" : "factor") : undefined } }; WriterToJSON.prototype.SerDlbl = function(oDlbl) { if (!oDlbl) return undefined; // TickLblPos var sDLblPos = undefined; switch (oDlbl.dLblPos) { case Asc.c_oAscChartDataLabelsPos.b: sDLblPos = "b"; break; case Asc.c_oAscChartDataLabelsPos.bestFit: sDLblPos = "bestFit"; break; case Asc.c_oAscChartDataLabelsPos.ctr: sDLblPos = "ctr"; break; case Asc.c_oAscChartDataLabelsPos.inBase: sDLblPos = "inBase"; break; case Asc.c_oAscChartDataLabelsPos.inEnd: sDLblPos = "inEnd"; break; case Asc.c_oAscChartDataLabelsPos.l: sDLblPos = "l"; break; case Asc.c_oAscChartDataLabelsPos.outEnd: sDLblPos = "outEnd"; break; case Asc.c_oAscChartDataLabelsPos.r: sDLblPos = "r"; break; case Asc.c_oAscChartDataLabelsPos.t: sDLblPos = "t"; break; } return { "delete": oDlbl.bDelete, "dLblPos": sDLblPos, "idx": oDlbl.idx, "layout": this.SerLayout(oDlbl.layout), "numFmt": this.SerNumFmt(oDlbl.numFmt), "separator": oDlbl.separator, "showBubbleSize": oDlbl.showBubbleSize, "showCatName": oDlbl.showCatName, "showLegendKey": oDlbl.showLegendKey, "showPercent": oDlbl.showPercent, "showSerName": oDlbl.showSerName, "showVal": oDlbl.showVal, "spPr": this.SerSpPr(oDlbl.spPr), "txPr": this.SerTxPr(oDlbl.txPr), "tx": this.SerChartTx(oDlbl.tx) } }; WriterToJSON.prototype.SerDLbls = function(dLbls) { if (!dLbls) return undefined; // TickLblPos var sDLblPos = undefined; switch (dLbls.dLblPos) { case Asc.c_oAscChartDataLabelsPos.b: sDLblPos = "b"; break; case Asc.c_oAscChartDataLabelsPos.bestFit: sDLblPos = "bestFit"; break; case Asc.c_oAscChartDataLabelsPos.ctr: sDLblPos = "ctr"; break; case Asc.c_oAscChartDataLabelsPos.inBase: sDLblPos = "inBase"; break; case Asc.c_oAscChartDataLabelsPos.inEnd: sDLblPos = "inEnd"; break; case Asc.c_oAscChartDataLabelsPos.l: sDLblPos = "l"; break; case Asc.c_oAscChartDataLabelsPos.outEnd: sDLblPos = "outEnd"; break; case Asc.c_oAscChartDataLabelsPos.r: sDLblPos = "r"; break; case Asc.c_oAscChartDataLabelsPos.t: sDLblPos = "t"; break; } //dlbl var arrDlbl = []; for (var nDlbl = 0; nDlbl < dLbls.dLbl.length; nDlbl++) arrDlbl.push(this.SerDlbl(dLbls.dLbl[nDlbl])); return { "delete": dLbls.bDelete, "dLbl": arrDlbl, "dLblPos": sDLblPos, "leaderLines": this.SerSpPr(dLbls.leaderLines), "numFmt": this.SerNumFmt(dLbls.numFmt), "separator": dLbls.separator, "showBubbleSize": dLbls.showBubbleSize, "showCatName": dLbls.showCatName, "showLeaderLines": dLbls.showLeaderLines, "showLegendKey": dLbls.showLegendKey, "showPercent": dLbls.showPercent, "showSerName": dLbls.showSerName, "showVal": dLbls.showVal, "spPr": this.SerSpPr(dLbls.spPr), "txPr": this.SerTxPr(dLbls.txPr) } }; WriterToJSON.prototype.SerCharts = function(arrBarCharts) { var arrResult = []; for (var nChart = 0; nChart < arrBarCharts.length; nChart++) { if (arrBarCharts[nChart] instanceof AscFormat.CBarChart) { arrResult.push(this.SerBarChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CLineChart) { arrResult.push(this.SerLineChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CPieChart) { arrResult.push(this.SerPieChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CDoughnutChart) { arrResult.push(this.SerDoughnutChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CAreaChart) { arrResult.push(this.SerAreaChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CStockChart) { arrResult.push(this.SerStockChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CScatterChart) { arrResult.push(this.SerScatterChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CBubbleChart) { arrResult.push(this.SerBubbleChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CSurfaceChart) { arrResult.push(this.SerSurfaceChart(arrBarCharts[nChart])); continue; } if (arrBarCharts[nChart] instanceof AscFormat.CRadarChart) { arrResult.push(this.SerRadarChart(arrBarCharts[nChart])); } } return arrResult; }; WriterToJSON.prototype.SerDoughnutChart = function(oDoughnutChart) { return { "dLbls": this.SerDLbls(oDoughnutChart.dLbls), "firstSliceAng": oDoughnutChart.firstSliceAng, "holeSize": oDoughnutChart.holeSize, "ser": this.SerPieSeries(oDoughnutChart.series), "varyColors": oDoughnutChart.varyColors, "type": "doughnutChart" } }; WriterToJSON.prototype.SerRadarChart = function(oRadarChart) { var sRadarStyle = undefined; switch(oRadarChart.radarStyle) { case AscFormat.RADAR_STYLE_STANDARD: sRadarStyle = "standard"; break; case AscFormat.RADAR_STYLE_MARKER: sRadarStyle = "marker"; break; case AscFormat.RADAR_STYLE_FILLED: sRadarStyle = "filled"; break; } var arrAxId = []; for (var nAxis = 0; nAxis < oRadarChart.axId.length; nAxis++) arrAxId.push(oRadarChart.axId[nAxis].axId); return { "axId": arrAxId, "dLbls": this.SerDLbls(oRadarChart.dLbls), "radarStyle": sRadarStyle, "ser": this.SerRadarSeries(oRadarChart.series), "varyColors": oRadarChart.varyColors, "type": "radarChart" } }; WriterToJSON.prototype.SerRadarSeries = function(arrRadarSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrRadarSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrRadarSeries[nItem].cat), "dLbls": this.SerDLbls(arrRadarSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrRadarSeries[nItem].dPt), "idx": arrRadarSeries[nItem].idx, "marker": this.SerMarker(arrRadarSeries[nItem].marker), "order": arrRadarSeries[nItem].order, "spPr": this.SerSpPr(arrRadarSeries[nItem].spPr), "tx": this.SerSerTx(arrRadarSeries[nItem].tx), "val": this.SerYVAL(arrRadarSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerSurfaceChart = function(oSurfaceChart) { var arrAxId = []; for (var nAxis = 0; nAxis < oSurfaceChart.axId.length; nAxis++) arrAxId.push(oSurfaceChart.axId[nAxis].axId); return { "axId": arrAxId, "bandFmts": this.SerBandFmts(oSurfaceChart.bandFmts), "ser": this.SerSurfaceSeries(oSurfaceChart.series), "wireframe": oSurfaceChart.wireframe, "type": "surfaceChart" } }; WriterToJSON.prototype.SerSurfaceSeries = function(arrSurfaceSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrSurfaceSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrSurfaceSeries[nItem].cat), "idx": arrSurfaceSeries[nItem].idx, "order": arrSurfaceSeries[nItem].order, "spPr": this.SerSpPr(arrSurfaceSeries[nItem].spPr), "tx": this.SerSerTx(arrSurfaceSeries[nItem].tx), "val": this.SerYVAL(arrSurfaceSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerBandFmts = function(arrBandFmts) { var arrResult = []; for (var nBand = 0; nBand < arrBandFmts.length; nBand++) { arrResult.push({ "idx": arrBandFmts[nBand].idx, "spPr": this.SerSpPr(arrBandFmts[nBand.spPr]) }); } return arrResult; }; WriterToJSON.prototype.SerBubbleChart = function(oBubbleChart) { var arrAxId = []; for (var nAxis = 0; nAxis < oBubbleChart.axId.length; nAxis++) arrAxId.push(oBubbleChart.axId[nAxis].axId); var sSizeRepresents = oBubbleChart.sizeRepresents === AscFormat.SIZE_REPRESENTS_AREA ? "area" : "w"; return { "axId": arrAxId, "bubble3D": oBubbleChart.bubble3D, "bubbleScale": oBubbleChart.bubbleScale, "dLbls": this.SerDLbls(oBubbleChart.dLbls), "ser": this.SerBubbleSeries(oBubbleChart.series), "showNegBubbles": oBubbleChart.showNegBubbles, "sizeRepresents": sSizeRepresents, "varyColors": oBubbleChart.varyColors, "type": "bubbleChart" } }; WriterToJSON.prototype.SerBubbleSeries = function(arrBubbleSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrBubbleSeries.length; nItem++) { arrResultSeries.push({ "bubble3D": arrBubbleSeries.bubble3D, "bubbleSize": this.SerYVAL(arrBubbleSeries[nItem].bubbleSize), "dLbls": this.SerDLbls(arrBubbleSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrBubbleSeries[nItem].dPt), "errBars": this.SerErrBars(arrBubbleSeries[nItem].errBars), "idx": arrBubbleSeries[nItem].idx, "invertIfNegative": arrBubbleSeries[nItem].invertIfNegative, "order": arrBubbleSeries[nItem].order, "spPr": this.SerSpPr(arrBubbleSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrBubbleSeries[nItem].trendlines), "tx": this.SerSerTx(arrBubbleSeries[nItem].tx), "xVal": this.SerCat(arrBubbleSeries[nItem].xVal), "yVal": this.SerYVAL(arrBubbleSeries[nItem].yVal) }); } return arrResultSeries; }; WriterToJSON.prototype.SerScatterChart = function(oScatterChart) { var sScatterStyle = undefined; switch(oScatterChart.scatterStyle) { case AscFormat.SCATTER_STYLE_LINE: sScatterStyle = "line"; break; case AscFormat.SCATTER_STYLE_LINE_MARKER: sScatterStyle = "lineMarker"; break; case AscFormat.SCATTER_STYLE_MARKER: sScatterStyle = "marker"; break; case AscFormat.SCATTER_STYLE_NONE: sScatterStyle = "none"; break; case AscFormat.SCATTER_STYLE_SMOOTH: sScatterStyle = "smooth"; break; case AscFormat.SCATTER_STYLE_SMOOTH_MARKER: sScatterStyle = "smoothMarker"; break; } var arrAxId = []; for (var nAxis = 0; nAxis < oScatterChart.axId.length; nAxis++) arrAxId.push(oScatterChart.axId[nAxis].axId); return { "axId": arrAxId, "dLbls": this.SerDLbls(oScatterChart.dLbls), "scatterStyle": sScatterStyle, "ser": this.SerScatterSeries(oScatterChart.series), "type": "scatterChart" } }; WriterToJSON.prototype.SerScatterSeries = function(arrScatterSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrScatterSeries.length; nItem++) { arrResultSeries.push({ "dLbls": this.SerDLbls(arrScatterSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrScatterSeries[nItem].dPt), "errBars": this.SerErrBars(arrScatterSeries[nItem].errBars), "idx": arrScatterSeries[nItem].idx, "marker": this.SerMarker(arrScatterSeries[nItem].marker), "order": arrScatterSeries[nItem].order, "smooth": arrScatterSeries[nItem].smooth, "spPr": this.SerSpPr(arrScatterSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrScatterSeries[nItem].trendlines), "tx": this.SerSerTx(arrScatterSeries[nItem].tx), "xVal": this.SerCat(arrScatterSeries[nItem].xVal), "yVal": this.SerYVAL(arrScatterSeries[nItem].yVal) }); } return arrResultSeries; }; WriterToJSON.prototype.SerStockChart = function(oStockChart) { var arrAxId = []; for (var nAxis = 0; nAxis < oStockChart.axId.length; nAxis++) arrAxId.push(oStockChart.axId[nAxis].axId); return { "axId": arrAxId, "dLbls": this.SerDLbls(oStockChart.dLbls), "dropLines": this.SerSpPr(oStockChart.dropLines), "hiLowLines": this.SerSpPr(oStockChart.hiLowLines), "ser": this.SerLineSeries(oStockChart.series), "upDownBars": this.SerUpDownBars(oStockChart.upDownBars), "type": "stockChart" } }; WriterToJSON.prototype.SerStockSeries = function(arrStockSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrStockSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrStockSeries[nItem].cat), "dLbls": this.SerDLbls(arrStockSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrStockSeries[nItem].dPt), "errBars": this.SerErrBars(arrStockSeries[nItem].errBars), "idx": arrStockSeries[nItem].idx, "marker": this.SerMarker(arrStockSeries[nItem].marker), "order": arrStockSeries[nItem].order, "smooth": arrStockSeries[nItem].smooth, "spPr": this.SerSpPr(arrStockSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrStockSeries[nItem].trendlines), "tx": this.SerSerTx(arrStockSeries[nItem].tx), "val": this.SerYVAL(arrStockSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerAreaChart = function(oAreaChart) { var sGroupingType = undefined; switch (oAreaChart.grouping) { case AscFormat.GROUPING_PERCENT_STACKED: sGroupingType = "percentStacked"; break; case AscFormat.GROUPING_STACKED: sGroupingType = "stacked"; break; case AscFormat.GROUPING_STANDARD: sGroupingType = "standard"; break; } var arrAxId = []; for (var nAxis = 0; nAxis < oAreaChart.axId.length; nAxis++) arrAxId.push(oAreaChart.axId[nAxis].axId); return { "axId": arrAxId, "dLbls": this.SerDLbls(oAreaChart.dLbls), "dropLines": this.SerSpPr(oAreaChart.dropLines), "grouping": sGroupingType, "ser": this.SerAreaSeries(oAreaChart.series), "varyColors": oAreaChart.varyColors, "type": "areaChart" } }; WriterToJSON.prototype.SerAreaSeries = function(arrAreaSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrAreaSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrAreaSeries[nItem].cat), "dLbls": this.SerDLbls(arrAreaSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrAreaSeries[nItem].dPt), "errBars": this.SerErrBars(arrAreaSeries[nItem].errBars), "idx": arrAreaSeries[nItem].idx, "order": arrAreaSeries[nItem].order, "pictureOptions": this.SerPicOptions(arrAreaSeries[nItem].pictureOptions), "spPr": this.SerSpPr(arrAreaSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrAreaSeries[nItem].trendlines), "tx": this.SerSerTx(arrAreaSeries[nItem].tx), "val": this.SerYVAL(arrAreaSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerPieChart = function(oPieChart) { return { "b3D": oPieChart.b3D, "firstSliceAng": oPieChart.firstSliceAng, "dLbls": this.SerDLbls(oPieChart.dLbls), "ser": this.SerPieSeries(oPieChart.series), "varyColors": oPieChart.varyColors, "type": "pieChart" } }; WriterToJSON.prototype.SerPieSeries = function(arrPieSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrPieSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrPieSeries[nItem].cat), "dLbls": this.SerDLbls(arrPieSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrPieSeries[nItem].dPt), "explosion": arrPieSeries[nItem].explosion, "idx": arrPieSeries[nItem].idx, "order": arrPieSeries[nItem].order, "spPr": this.SerSpPr(arrPieSeries[nItem].spPr), "tx": this.SerSerTx(arrPieSeries[nItem].tx), "val": this.SerYVAL(arrPieSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerBarChart = function(oBarChart) { var sBarDirType = oBarChart.barDir === AscFormat.BAR_DIR_BAR ? "bar" : "col"; var sGroupingType = undefined; switch (oBarChart.grouping) { case AscFormat.BAR_GROUPING_CLUSTERED: sGroupingType = "clustered"; break; case AscFormat.BAR_GROUPING_PERCENT_STACKED: sGroupingType = "percentStacked"; break; case AscFormat.BAR_GROUPING_STACKED: sGroupingType = "stacked"; break; case AscFormat.BAR_GROUPING_STANDARD: sGroupingType = "standard"; break; } var arrAxId = []; for (var nAxis = 0; nAxis < oBarChart.axId.length; nAxis++) arrAxId.push(oBarChart.axId[nAxis].axId); return { "b3D": oBarChart.b3D, "axId": arrAxId, "barDir": sBarDirType, "dLbls": this.SerDLbls(oBarChart.dLbls), "gapWidth": oBarChart.gapWidth, "grouping": sGroupingType, "overlap": oBarChart.overlap, "serLines": this.SerSpPr(oBarChart.serLines), "ser": this.SerBarSeries(oBarChart.series), "varyColors": oBarChart.varyColors, "shape": ToXml_ST_Shape(oBarChart.shape), "type": "barChart" } }; WriterToJSON.prototype.SerLineChart = function(oLineChart) { var sGroupingType = undefined; switch (oLineChart.grouping) { case AscFormat.GROUPING_PERCENT_STACKED: sGroupingType = "percentStacked"; break; case AscFormat.GROUPING_STACKED: sGroupingType = "stacked"; break; case AscFormat.GROUPING_STANDARD: sGroupingType = "standard"; break; } var arrAxId = []; for (var nAxis = 0; nAxis < oLineChart.axId.length; nAxis++) arrAxId.push(oLineChart.axId[nAxis].axId); return { "b3D": oLineChart.b3D, "axId": arrAxId, "dLbls": this.SerDLbls(oLineChart.dLbls), "dropLines": this.SerSpPr(oLineChart.dropLines), "grouping": sGroupingType, "hiLowLines": this.SerSpPr(oLineChart.hiLowLines), "marker": oLineChart.marker, "ser": this.SerLineSeries(oLineChart.series), "smooth": oLineChart.smooth, "upDownBars": this.SerUpDownBars(oLineChart.upDownBars), "varyColors": oLineChart.varyColors, "type": "lineChart" } }; WriterToJSON.prototype.SerUpDownBars = function(oUpDownBars) { if (!oUpDownBars) return undefined; return { "downBars": this.SerSpPr(oUpDownBars.downBars), "gapWidth": oUpDownBars.gapWidth, "upBars": this.SerSpPr(oUpDownBars.upBars) } }; WriterToJSON.prototype.SerLineSeries = function(arrLineSeries) { var arrResultSeries = []; for (var nItem = 0; nItem < arrLineSeries.length; nItem++) { arrResultSeries.push({ "cat": this.SerCat(arrLineSeries[nItem].cat), "dLbls": this.SerDLbls(arrLineSeries[nItem].dLbls), "dPt": this.SerDataPoints(arrLineSeries[nItem].dPt), "errBars": this.SerErrBars(arrLineSeries[nItem].errBars), "idx": arrLineSeries[nItem].idx, "marker": this.SerMarker(arrLineSeries[nItem].marker), "order": arrLineSeries[nItem].order, "smooth": arrLineSeries[nItem].smooth, "spPr": this.SerSpPr(arrLineSeries[nItem].spPr), "trendlines": this.SerTrendlines(arrLineSeries[nItem].trendlines), "tx": this.SerSerTx(arrLineSeries[nItem].tx), "val": this.SerYVAL(arrLineSeries[nItem].val) }); } return arrResultSeries; }; WriterToJSON.prototype.SerTitle = function(oTitle) { if (!oTitle) return undefined; return { "layout": this.SerLayout(oTitle.layout), "overlay": oTitle.overlay, "spPr": this.SerSpPr(oTitle.spPr), "tx": this.SerChartTx(oTitle.tx), "txPr": this.SerTxPr(oTitle.txPr) } }; WriterToJSON.prototype.SerPrintSettings = function(oPrintSettings) { if (!oPrintSettings) return undefined; return { "headerFooter": this.SerHeaderFooterChart(oPrintSettings.headerFooter), "pageMargins": this.SerPageMarginsChart(oPrintSettings.pageMargins), "pageSetup": this.SerPageSetup(oPrintSettings.pageSetup) } }; WriterToJSON.prototype.SerPageMarginsChart = function(oPageMarginsChart) { if (!oPageMarginsChart) return undefined; return { "b": oPageMarginsChart.b, "footer": oPageMarginsChart.footer, "header": oPageMarginsChart.header, "l": oPageMarginsChart.l, "r": oPageMarginsChart.r, "t": oPageMarginsChart.t, } }; WriterToJSON.prototype.SerPageSetup = function(oPageSetup) { if (!oPageSetup) return undefined; var sOrientType = undefined; switch(oPageSetup.orientation) { case AscFormat.PAGE_SETUP_ORIENTATION_DEFAULT: sOrientType = "default"; break; case AscFormat.PAGE_SETUP_ORIENTATION_PORTRAIT: sOrientType = "portrait"; break; case AscFormat.PAGE_SETUP_ORIENTATION_LANDSCAPE: sOrientType = "landscape"; break; } return { "blackAndWhite": oPageSetup.blackAndWhite, "copies": oPageSetup.copies, "draft": oPageSetup.draft, "firstPageNumber": oPageSetup.firstPageNumber, "horizontalDpi": oPageSetup.horizontalDpi, "orientation": sOrientType, "paperHeight": oPageSetup.paperHeight, "paperSize": oPageSetup.paperSize, "paperWidth": oPageSetup.paperWidth, "useFirstPageNumb": oPageSetup.useFirstPageNumb, "verticalDpi": oPageSetup.verticalDpi } }; WriterToJSON.prototype.SerHeaderFooterChart = function(oHeaderFooter) { if (!oHeaderFooter) return undefined; return { "evenFooter": oHeaderFooter.evenFooter, "evenHeader": oHeaderFooter.evenHeader, "firstFooter": oHeaderFooter.firstFooter, "firstHeader": oHeaderFooter.firstHeader, "oddFooter": oHeaderFooter.oddFooter, "oddHeader": oHeaderFooter.oddHeader, "alignWithMargins": oHeaderFooter.alignWithMargins, "differentFirst": oHeaderFooter.differentFirst, "differentOddEven": oHeaderFooter.differentOddEven } }; WriterToJSON.prototype.SerWall = function(oWall) { if (!oWall) return undefined; return { "pictureOptions": this.SerPicOptions(oWall.pictureOptions), "spPr": this.SerSpPr(oWall.spPr), "thickness": oWall.thickness } }; WriterToJSON.prototype.SerMarker = function(oMarker) { if (!oMarker) return undefined; var sSymbolType = undefined; switch(oMarker.symbol) { case AscFormat.SYMBOL_CIRCLE: sSymbolType = "circle"; break; case AscFormat.SYMBOL_DASH: sSymbolType = "dash"; break; case AscFormat.SYMBOL_DIAMOND: sSymbolType = "diamond"; break; case AscFormat.SYMBOL_DOT: sSymbolType = "dot"; break; case AscFormat.SYMBOL_NONE: sSymbolType = "none"; break; case AscFormat.SYMBOL_PICTURE: sSymbolType = "picture"; break; case AscFormat.SYMBOL_PLUS: sSymbolType = "plus"; break; case AscFormat.SYMBOL_SQUARE: sSymbolType = "square"; break; case AscFormat.SYMBOL_STAR: sSymbolType = "star"; break; case AscFormat.SYMBOL_TRIANGLE: sSymbolType = "triangle"; break; case AscFormat.SYMBOL_X: sSymbolType = "x"; break; } return { "size": oMarker.size, "spPr": this.SerSpPr(oMarker.spPr), "symbol": sSymbolType } }; WriterToJSON.prototype.SerPivotFmt = function(oFmt) { if (!oFmt) return undefined; return { "dLbl": this.SerDlbl(oFmt.dLbl), "idx": oFmt.idx, "marker": this.SerMarker(oFmt.marker), "spPr": this.SerSpPr(oFmt.spPr), "txPr": this.SerTxPr(oFmt.txPr) } }; WriterToJSON.prototype.SerPivotFmts = function(arrFmts) { var arrResult = []; for (var nItem = 0; nItem < arrFmts.length; nItem++) arrResult.push(this.SerPivotFmt(arrFmts[nItem])); return arrResult; }; WriterToJSON.prototype.SerView3D = function(oView3D) { if (!oView3D) return undefined; return { "depthPercent": oView3D.depthPercent, "hPercent": oView3D.hPercent, "perspective": oView3D.perspective, "rAngAx": oView3D.rAngAx, "rotX": oView3D.rotX, "rotY": oView3D.rotY } }; WriterToJSON.prototype.SerLegendEntry = function(oLegendEntry) { if (!oLegendEntry) return undefined; return { "delete": oLegendEntry.bDelete, "idx": oLegendEntry.idx, "txPr": this.SerTxPr(oLegendEntry.txPr) } }; WriterToJSON.prototype.SerLegendEntries = function(arrEntries) { var arrResults = []; for (var nItem = 0; nItem < arrEntries.length; nItem++) arrResults.push(this.SerLegendEntry(arrEntries[nItem])); return arrResults; }; WriterToJSON.prototype.SetSrcRect = function(srcRect) { if (!srcRect) return srcRect; return { "b": srcRect.b, "l": srcRect.l, "r": srcRect.r, "t": srcRect.t }; }; WriterToJSON.prototype.SerBlipFill = function(oBlipFill) { if (!oBlipFill) return undefined; var rasterImageId = oBlipFill.getBase64RasterImageId(true); return { "blip": this.SerEffects(oBlipFill.Effects), "srcRect": this.SetSrcRect(oBlipFill.srcRect), "tile": oBlipFill.tile ? { "algn": GetRectAlgnStrType(oBlipFill.tile.algn), "flip": oBlipFill.tile.flip, "sx": oBlipFill.tile.sx, "sy": oBlipFill.tile.sy, "tx": oBlipFill.tile.tx, "ty": oBlipFill.tile.ty } : oBlipFill.tile, "stretch": oBlipFill.stretch ? { "fillRect": this.SetSrcRect(oBlipFill.stretch.fillRect), } : oBlipFill.stretch, "rotWithShape": oBlipFill.rotWithShape, "rasterImageId": rasterImageId, "type": "blipFill" }; }; WriterToJSON.prototype.SerUniNvPr = function(oUniNvPr, nLocks, nDrawintType) { if (!oUniNvPr) return undefined; var oResult = { "cNvPr": this.SerCNvPr(oUniNvPr.cNvPr), "nvPr": this.SerNvPr(oUniNvPr.nvPr), } switch (nDrawintType) { case AscDFH.historyitem_type_Shape: oResult["cNvSpPr"] = this.SerSpCNvPr(nLocks); break; case AscDFH.historyitem_type_ImageShape: oResult["cNvPicPr"] = this.SerPicCNvPr(nLocks); break; case AscDFH.historyitem_type_GroupShape: oResult["cNvGrpSpPr"] = this.SerGrpCNvPr(nLocks); break; case AscDFH.historyitem_type_GraphicFrame: case AscDFH.historyitem_type_ChartSpace: case AscDFH.historyitem_type_SlicerView: case AscDFH.historyitem_type_SmartArt: oResult["cNvGraphicFramePr"] = this.SerGrFrameCNvPr(nLocks); break; case AscDFH.historyitem_type_Cnx: oUniNvPr.nvUniSpPr.locks = nLocks; oResult["cNvCxnSpPr"] = this.SerCnxCNvPr(oUniNvPr.nvUniSpPr); break; } return oResult; }; WriterToJSON.prototype.SerSpCNvPr = function(nLocks) { var oPr = { "spLocks": {} }; if(nLocks & AscFormat.LOCKS_MASKS.txBox) oPr["txBox"] = !!(nLocks & AscFormat.LOCKS_MASKS.txBox << 1); if(nLocks & AscFormat.LOCKS_MASKS.noAdjustHandles) oPr["spLocks"]["noAdjustHandles"] = !!(nLocks & AscFormat.LOCKS_MASKS.noAdjustHandles << 1); if(nLocks & AscFormat.LOCKS_MASKS.noChangeArrowheads) oPr["spLocks"]["noChangeArrowheads"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeArrowheads << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noChangeAspect) oPr["spLocks"]["noChangeAspect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeAspect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noChangeShapeType) oPr["spLocks"]["noChangeShapeType"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeShapeType << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noEditPoints) oPr["spLocks"]["noEditPoints"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noEditPoints << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noGrp) oPr["spLocks"]["noGrp"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noGrp << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noMove) oPr["spLocks"]["noMove"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noMove << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noResize) oPr["spLocks"]["noResize"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noResize << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noRot) oPr["spLocks"]["noRot"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noRot << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noSelect) oPr["spLocks"]["noSelect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noSelect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noTextEdit) oPr["spLocks"]["noTextEdit"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noTextEdit << 1)); return oPr; }; WriterToJSON.prototype.SerPicCNvPr = function(nLocks) { var oPr = { "picLocks": {} }; if(nLocks & AscFormat.LOCKS_MASKS.noAdjustHandles) oPr["picLocks"]["noAdjustHandles"] = !!(nLocks & AscFormat.LOCKS_MASKS.noAdjustHandles << 1); if(nLocks & AscFormat.LOCKS_MASKS.noChangeArrowheads) oPr["picLocks"]["noChangeArrowheads"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeArrowheads << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noChangeAspect) oPr["picLocks"]["noChangeAspect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeAspect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noChangeShapeType) oPr["picLocks"]["noChangeShapeType"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeShapeType << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noCrop) oPr["picLocks"]["noCrop"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noCrop << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noEditPoints) oPr["picLocks"]["noEditPoints"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noEditPoints << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noGrp) oPr["picLocks"]["noGrp"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noGrp << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noMove) oPr["picLocks"]["noMove"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noMove << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noResize) oPr["picLocks"]["noResize"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noResize << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noRot) oPr["picLocks"]["noRot"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noRot << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noSelect) oPr["picLocks"]["noSelect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noSelect << 1)); return oPr; }; WriterToJSON.prototype.SerGrpCNvPr = function(nLocks) { var oPr = { "grpSpLocks": {} }; if(nLocks & AscFormat.LOCKS_MASKS.noChangeAspect) oPr["grpSpLocks"]["noChangeAspect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeAspect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noGrp) oPr["grpSpLocks"]["noGrp"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noGrp << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noMove) oPr["grpSpLocks"]["noMove"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noMove << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noResize) oPr["grpSpLocks"]["noResize"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noResize << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noRot) oPr["grpSpLocks"]["noRot"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noRot << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noSelect) oPr["grpSpLocks"]["noSelect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noSelect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noUngrp) oPr["grpSpLocks"]["noUngrp"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noUngrp << 1)); return oPr; }; WriterToJSON.prototype.SerGrFrameCNvPr = function(nLocks) { var oPr = { "graphicFrameLocks": {} }; if(nLocks & AscFormat.LOCKS_MASKS.noChangeAspect) oPr["graphicFrameLocks"]["noChangeAspect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noChangeAspect << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noDrilldown) oPr["graphicFrameLocks"]["noDrilldown"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noDrilldown << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noGrp) oPr["graphicFrameLocks"]["noGrp"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noGrp << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noMove) oPr["graphicFrameLocks"]["noMove"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noMove << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noResize) oPr["graphicFrameLocks"]["noResize"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noResize << 1)); if(nLocks & AscFormat.LOCKS_MASKS.noSelect) oPr["graphicFrameLocks"]["noSelect"] = !!(nLocks & (AscFormat.LOCKS_MASKS.noSelect << 1)); return oPr; }; WriterToJSON.prototype.SerCnxCNvPr = function(oNvUniSpPr) { var oPr = { "cxnSpLocks": {} }; if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noAdjustHandles) oPr["cxnSpLocks"]["noAdjustHandles"] = !!(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noAdjustHandles << 1); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noChangeArrowheads) oPr["cxnSpLocks"]["noChangeArrowheads"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noChangeArrowheads << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noChangeAspect) oPr["cxnSpLocks"]["noChangeAspect"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noChangeAspect << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noChangeShapeType) oPr["cxnSpLocks"]["noChangeShapeType"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noChangeShapeType << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noEditPoints) oPr["cxnSpLocks"]["noEditPoints"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noEditPoints << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noGrp) oPr["cxnSpLocks"]["noGrp"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noGrp << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noMove) oPr["cxnSpLocks"]["noMove"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noMove << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noResize) oPr["cxnSpLocks"]["noResize"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noResize << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noRot) oPr["cxnSpLocks"]["noRot"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noRot << 1)); if(oNvUniSpPr.locks & AscFormat.LOCKS_MASKS.noSelect) oPr["cxnSpLocks"]["noSelect"] = !!(oNvUniSpPr.locks & (AscFormat.LOCKS_MASKS.noSelect << 1)); if (oNvUniSpPr.stCnxId && AscFormat.isRealNumber(oNvUniSpPr.stCnxIdx)) { var nStIdx = this.GetSpIdxId(oNvUniSpPr.stCnxId); if (nStIdx !== null) { oPr["stCxn"] = { "id": nStIdx, "idx": oNvUniSpPr.stCnxIdx } } } if (oNvUniSpPr.endCnxId && AscFormat.isRealNumber(oNvUniSpPr.endCnxIdx)) { var nEndIdx = this.GetSpIdxId(oNvUniSpPr.endCnxId); if (nEndIdx !== null) { oPr["endCxn"] = { "id": nEndIdx, "idx": oNvUniSpPr.endCnxIdx } } } return oPr; }; WriterToJSON.prototype.GetSpIdxId = function(sEditorId){ if(typeof sEditorId === "string" && sEditorId.length > 0) { var oDrawing = AscCommon.g_oTableId.Get_ById(sEditorId); if(oDrawing && oDrawing.getFormatId) { return oDrawing.getFormatId(); } } return null; }; WriterToJSON.prototype.SerBullet = function(oBullet) { if (!oBullet) return undefined; function SerBulletColor(oBulletColor) { if (!oBulletColor) return undefined; var sBulletColorType = "none"; switch (oBulletColor.type) { case AscFormat.BULLET_TYPE_COLOR_NONE: sBulletColorType = "none"; break; case AscFormat.BULLET_TYPE_COLOR_CLRTX: sBulletColorType = "clrtx"; break; case AscFormat.BULLET_TYPE_COLOR_CLR: sBulletColorType = "clr"; break; } return { "type": sBulletColorType, "color": this.SerColor(oBulletColor.UniColor) } } function SerBulletSize(oBulletSize) { if (!oBulletSize) return undefined; var sBulleSizeType = "none"; switch (oBulletSize.type) { case AscFormat.BULLET_TYPE_SIZE_NONE: sBulleSizeType = "none"; break; case AscFormat.BULLET_TYPE_SIZE_TX: sBulleSizeType = "tx"; break; case AscFormat.BULLET_TYPE_SIZE_PCT: sBulleSizeType = "pct"; break; case AscFormat.BULLET_TYPE_SIZE_PTS: sBulleSizeType = "pts"; break; } return { "type": sBulleSizeType, "val": oBulletSize.val } } function SerBulletTypeFace(oBulletTypeface) { if (!oBulletTypeface) return undefined; var sBulleTypefaceType = "none"; switch (oBulletTypeface.type) { case AscFormat.BULLET_TYPE_TYPEFACE_NONE: sBulleTypefaceType = "none"; break; case AscFormat.BULLET_TYPE_TYPEFACE_TX: sBulleTypefaceType = "tx"; break; case AscFormat.BULLET_TYPE_TYPEFACE_BUFONT: sBulleTypefaceType = "bufont"; break; } return { "type": sBulleTypefaceType, "typeface": oBulletTypeface.typeface } } function SerBulletType(oBulletType) { if (!oBulletType) return undefined; var sBulleType = "none"; var sAutoNumType = undefined; switch (oBulletType.AutoNumType) { case AscFormat.numbering_presentationnumfrmt_AlphaLcParenBoth: sAutoNumType = "alphaLcParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_AlphaLcParenR: sAutoNumType = "alphaLcParenR"; break; case AscFormat.numbering_presentationnumfrmt_AlphaLcPeriod: sAutoNumType = "alphaLcPeriod"; break; case AscFormat.numbering_presentationnumfrmt_AlphaUcParenBoth: sAutoNumType = "alphaUcParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_AlphaUcParenR: sAutoNumType = "alphaUcParenR"; break; case AscFormat.numbering_presentationnumfrmt_AlphaUcPeriod: sAutoNumType = "alphaUcPeriod"; break; case AscFormat.numbering_presentationnumfrmt_Arabic1Minus: sAutoNumType = "arabic1Minus"; break; case AscFormat.numbering_presentationnumfrmt_Arabic2Minus: sAutoNumType = "arabic2Minus"; break; case AscFormat.numbering_presentationnumfrmt_ArabicDbPeriod: sAutoNumType = "arabicDbPeriod"; break; case AscFormat.numbering_presentationnumfrmt_ArabicDbPlain: sAutoNumType = "arabicDbPlain"; break; case AscFormat.numbering_presentationnumfrmt_ArabicParenBoth: sAutoNumType = "arabicParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_ArabicParenR: sAutoNumType = "arabicParenR"; break; case AscFormat.numbering_presentationnumfrmt_ArabicPeriod: sAutoNumType = "arabicPeriod"; break; case AscFormat.numbering_presentationnumfrmt_ArabicPlain: sAutoNumType = "arabicPlain"; break; case AscFormat.numbering_presentationnumfrmt_CircleNumDbPlain: sAutoNumType = "circleNumDbPlain"; break; case AscFormat.numbering_presentationnumfrmt_CircleNumWdBlackPlain: sAutoNumType = "circleNumWdBlackPlain"; break; case AscFormat.numbering_presentationnumfrmt_CircleNumWdWhitePlain: sAutoNumType = "circleNumWdWhitePlain"; break; case AscFormat.numbering_presentationnumfrmt_Ea1ChsPeriod: sAutoNumType = "ea1ChsPeriod"; break; case AscFormat.numbering_presentationnumfrmt_Ea1ChsPlain: sAutoNumType = "ea1ChsPlain"; break; case AscFormat.numbering_presentationnumfrmt_Ea1ChtPeriod: sAutoNumType = "ea1ChtPeriod"; break; case AscFormat.numbering_presentationnumfrmt_Ea1ChtPlain: sAutoNumType = "ea1ChtPlain"; break; case AscFormat.numbering_presentationnumfrmt_Ea1JpnChsDbPeriod: sAutoNumType = "ea1JpnChsDbPeriod"; break; case AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPeriod: sAutoNumType = "ea1JpnKorPeriod"; break; case AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPlain: sAutoNumType = "ea1JpnKorPlain"; break; case AscFormat.numbering_presentationnumfrmt_Hebrew2Minus: sAutoNumType = "hebrew2Minus"; break; case AscFormat.numbering_presentationnumfrmt_HindiAlpha1Period: sAutoNumType = "hindiAlpha1Period"; break; case AscFormat.numbering_presentationnumfrmt_HindiAlphaPeriod: sAutoNumType = "hindiAlphaPeriod"; break; case AscFormat.numbering_presentationnumfrmt_HindiNumParenR: sAutoNumType = "hindiNumParenR"; break; case AscFormat.numbering_presentationnumfrmt_HindiNumPeriod: sAutoNumType = "hindiNumPeriod"; break; case AscFormat.numbering_presentationnumfrmt_RomanLcParenBoth: sAutoNumType = "romanLcParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_RomanLcParenR: sAutoNumType = "romanLcParenR"; break; case AscFormat.numbering_presentationnumfrmt_RomanLcPeriod: sAutoNumType = "romanLcPeriod"; break; case AscFormat.numbering_presentationnumfrmt_RomanUcParenBoth: sAutoNumType = "romanUcParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_RomanUcParenR: sAutoNumType = "romanUcParenR"; break; case AscFormat.numbering_presentationnumfrmt_RomanUcPeriod: sAutoNumType = "romanUcPeriod"; break; case AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenBoth: sAutoNumType = "thaiAlphaParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenR: sAutoNumType = "thaiAlphaParenR"; break; case AscFormat.numbering_presentationnumfrmt_ThaiAlphaPeriod: sAutoNumType = "thaiAlphaPeriod"; break; case AscFormat.numbering_presentationnumfrmt_ThaiNumParenBoth: sAutoNumType = "thaiNumParenBoth"; break; case AscFormat.numbering_presentationnumfrmt_ThaiNumParenR: sAutoNumType = "thaiNumParenR"; break; case AscFormat.numbering_presentationnumfrmt_ThaiNumPeriod: sAutoNumType = "thaiNumPeriod"; break; } switch (oBulletType.type) { case AscFormat.BULLET_TYPE_BULLET_NONE: sBulleType = "none"; break; case AscFormat.BULLET_TYPE_BULLET_CHAR: sBulleType = "char"; break; case AscFormat.BULLET_TYPE_BULLET_AUTONUM: sBulleType = "autonum"; break; case AscFormat.BULLET_TYPE_BULLET_BLIP: sBulleType = "blip"; break; } return { "type": sBulleType, "char": oBulletType.Char, "autoNumType": sAutoNumType, "startAt": oBulletType.startAt, "buBlip": SerBulletBlip.call(this, oBulletType.Blip) } } function SerBulletBlip(oBlip) { if (!oBlip) return undefined; return { "blip": this.SerFill(oBlip.blip) } } return { "bulletColor": SerBulletColor.call(this, oBullet.bulletColor), "bulletSize": SerBulletSize.call(this, oBullet.bulletSize), "bulletTypeface": SerBulletTypeFace.call(this, oBullet.bulletTypeface), "bulletType": SerBulletType.call(this, oBullet.bulletType) } }; WriterToJSON.prototype.SerSpStyle = function(oStyle) { if (!oStyle) return undefined; return { "lnRef": this.SerStyleRef(oStyle.lnRef), "fillRef": this.SerStyleRef(oStyle.fillRef), "effectRef": this.SerStyleRef(oStyle.effectRef), "fontRef": this.SerFontRef(oStyle.fontRef) } }; WriterToJSON.prototype.SerStyleRef = function(oStyleRef) { if (!oStyleRef) return undefined; return { "idx": oStyleRef.idx, "color": this.SerColor(oStyleRef.Color) } }; WriterToJSON.prototype.SerFontRef = function(oFontRef) { if (!oFontRef) return undefined; return { "idx": oFontRef.idx, "color": this.SerColor(oFontRef.Color) } }; WriterToJSON.prototype.SerChartSpace = function(oChartSpace) { if (!oChartSpace) return undefined; var aUserShapes = []; for (var nUserShape = 0; nUserShape < oChartSpace.userShapes.length; nUserShape++) aUserShapes.push(this.SerUserShape(oChartSpace.userShapes[nUserShape])); return { "extX": private_MM2EMU(oChartSpace.extX), "extY": private_MM2EMU(oChartSpace.extY), "chart": this.SerChart(oChartSpace.chart), "chartColors": this.SerChartColors(oChartSpace.chartColors), "chartStyle": this.SerChartStyle(oChartSpace.chartStyle), "clrMapOvr": this.SerColorMapOvr(oChartSpace.clrMapOvr), "date1904": oChartSpace.date1904, "externalData": this.SerExternalData(oChartSpace.externalData), "lang": oChartSpace.lang, "pivotSource": this.SerPivotSource(oChartSpace.pivotSource), "printSettings": this.SerPrintSettings(oChartSpace.printSettings), "protection": this.SerProtection(oChartSpace.protection), "roundedCorners": oChartSpace.roundedCorners, "spPr": this.SerSpPr(oChartSpace.spPr), "nvGraphicFramePr": this.SerUniNvPr(oChartSpace.nvGraphicFramePr, oChartSpace.locks, oChartSpace.getObjectType()), "style": oChartSpace.style, "txPr": this.SerTxPr(oChartSpace.txPr), "userShapes": aUserShapes, "type": "chartSpace" }; }; WriterToJSON.prototype.SerColorMapOvr = function(oClrMap) { if (!oClrMap) return undefined; return { "bg1": oClrMap.getColorName(oClrMap.color_map[6]), "tx1": oClrMap.getColorName(oClrMap.color_map[15]), "bg2": oClrMap.getColorName(oClrMap.color_map[7]), "tx2": oClrMap.getColorName(oClrMap.color_map[16]), "accent1": oClrMap.getColorName(oClrMap.color_map[0]), "accent2": oClrMap.getColorName(oClrMap.color_map[1]), "accent3": oClrMap.getColorName(oClrMap.color_map[2]), "accent4": oClrMap.getColorName(oClrMap.color_map[3]), "accent5": oClrMap.getColorName(oClrMap.color_map[4]), "accent6": oClrMap.getColorName(oClrMap.color_map[5]), "hlink": oClrMap.getColorName(oClrMap.color_map[11]), "folHlink": oClrMap.getColorName(oClrMap.color_map[10]) }; }; WriterToJSON.prototype.SerUserShape = function(oUserShape) { if (!oUserShape) return undefined; var sType = undefined; if (oUserShape instanceof AscFormat.CRelSizeAnchor) sType = "relSizeAnchor"; else if (oUserShape instanceof AscFormat.CAbsSizeAnchor) sType = "absSizeAnchor"; return { "fromX": oUserShape.fromX != null ? private_MM2Twips(oUserShape.fromX) : undefined, "fromY": oUserShape.fromY != null ? private_MM2Twips(oUserShape.fromY) : undefined, "object": this.SerGraphicObject(oUserShape.object), "toX": oUserShape.toX, "toY": oUserShape.toY, "type": sType } }; WriterToJSON.prototype.SerChartColors = function(oChartColors) { if (!oChartColors) return undefined; var aItems = []; for (var nItem = 0; nItem < oChartColors.items.length; nItem++) { if (oChartColors.items[nItem] instanceof AscFormat.CUniColor) aItems.push(this.SerColor(oChartColors.items[nItem])); else if (oChartColors.items[nItem] instanceof AscFormat.CColorModifiers) aItems.push(this.SerColorModifiers(oChartColors.items[nItem])); } return { "id": oChartColors.id, "items": aItems, "meth": oChartColors.meth } }; WriterToJSON.prototype.SerChartStyle = function(oChartStyle) { if (!oChartStyle) return undefined; return { "id": oChartStyle.id, "axisTitle": this.SerStyleEntry(oChartStyle.axisTitle), "categoryAxis": this.SerStyleEntry(oChartStyle.categoryAxis), "chartArea": this.SerStyleEntry(oChartStyle.chartArea), "dataLabel": this.SerStyleEntry(oChartStyle.dataLabel), "dataLabelCallout": this.SerStyleEntry(oChartStyle.dataLabelCallout), "dataPoint": this.SerStyleEntry(oChartStyle.dataPoint), "dataPoint3D": this.SerStyleEntry(oChartStyle.dataPoint3D), "dataPointLine": this.SerStyleEntry(oChartStyle.dataPointLine), "dataPointMarker": this.SerStyleEntry(oChartStyle.dataPointMarker), "dataPointWireframe": this.SerStyleEntry(oChartStyle.dataPointWireframe), "dataTable": this.SerStyleEntry(oChartStyle.dataTable), "downBar": this.SerStyleEntry(oChartStyle.downBar), "dropLine": this.SerStyleEntry(oChartStyle.dropLine), "errorBar": this.SerStyleEntry(oChartStyle.errorBar), "floor": this.SerStyleEntry(oChartStyle.floor), "gridlineMajor": this.SerStyleEntry(oChartStyle.gridlineMajor), "gridlineMinor": this.SerStyleEntry(oChartStyle.gridlineMinor), "hiLoLine": this.SerStyleEntry(oChartStyle.hiLoLine), "leaderLine": this.SerStyleEntry(oChartStyle.leaderLine), "legend": this.SerStyleEntry(oChartStyle.legend), "plotArea": this.SerStyleEntry(oChartStyle.plotArea), "plotArea3D": this.SerStyleEntry(oChartStyle.plotArea3D), "seriesAxis": this.SerStyleEntry(oChartStyle.seriesAxis), "seriesLine": this.SerStyleEntry(oChartStyle.seriesLine), "title": this.SerStyleEntry(oChartStyle.title), "trendline": this.SerStyleEntry(oChartStyle.trendline), "trendlineLabel": this.SerStyleEntry(oChartStyle.trendlineLabel), "upBar": this.SerStyleEntry(oChartStyle.upBar), "valueAxis": this.SerStyleEntry(oChartStyle.valueAxis), "wall": this.SerStyleEntry(oChartStyle.wall), "markerLayout": this.SerMarkerLayout(oChartStyle.markerLayout) } }; WriterToJSON.prototype.SerStyleEntry = function(oStyleEntry) { if (!oStyleEntry) return undefined; return { "type": ToXML_StyleEntryType(oStyleEntry.type), "lineWidthScale": oStyleEntry.lineWidthScale, "lnRef": this.SerStyleRef(oStyleEntry.lnRef), "fillRef": this.SerStyleRef(oStyleEntry.fillRef), "effectRef": this.SerStyleRef(oStyleEntry.effectRef), "fontRef": this.SerFontRef(oStyleEntry.fontRef), "defRPr": this.SerTextPrDrawing(oStyleEntry.defRPr), "bodyPr": this.SerBodyPr(oStyleEntry.bodyPr), "spPr": this.SerSpPr(oStyleEntry.spPr), } }; WriterToJSON.prototype.SerMarkerLayout = function(oMarkerLayout) { if (!oMarkerLayout) return undefined; return { "size": oMarkerLayout.size, "symbol": oMarkerLayout.symbol } }; WriterToJSON.prototype.SerChart = function(oChart) { if (!oChart) return undefined; var sDispBlanksAs = undefined; switch(oChart.dispBlanksAs) { case AscFormat.DISP_BLANKS_AS_SPAN: sDispBlanksAs = "span"; break; case AscFormat.DISP_BLANKS_AS_GAP: sDispBlanksAs = "gap"; break; case AscFormat.DISP_BLANKS_AS_ZERO: sDispBlanksAs = "zero"; break; } return { "autoTitleDeleted": oChart.autoTitleDeleted, "backWall": this.SerWall(oChart.backWall), "dispBlanksAs": sDispBlanksAs, "floor": this.SerWall(oChart.floor), "legend": this.SerLegend(oChart.legend), "pivotFmts": this.SerPivotFmts(oChart.pivotFmts), "plotArea": this.SerPlotArea(oChart.plotArea), "plotVisOnly": oChart.plotVisOnly, "showDLblsOverMax": oChart.showDLblsOverMax, "sideWall": this.SerWall(oChart.sideWall), "title": this.SerTitle(oChart.title), "view3D": this.SerView3D(oChart.view3D) } }; WriterToJSON.prototype.SerLegend = function(oLegend) { if (!oLegend) return undefined; var sLegendPos = undefined; switch (oLegend.legendPos) { case Asc.c_oAscChartLegendShowSettings.bottom: sLegendPos = "b"; break; case Asc.c_oAscChartLegendShowSettings.left: sLegendPos = "l"; break; case Asc.c_oAscChartLegendShowSettings.right: sLegendPos = "r"; break; case Asc.c_oAscChartLegendShowSettings.top: sLegendPos = "t"; break; case Asc.c_oAscChartLegendShowSettings.topRight: sLegendPos = "tr"; break; } return { "layout": this.SerLayout(oLegend.layout), "legendEntry": this.SerLegendEntries(oLegend.legendEntryes), "legendPos": sLegendPos, "overlay": oLegend.overlay, "spPr": this.SerSpPr(oLegend.spPr), "txPr": this.SerTxPr(oLegend.txPr) } }; WriterToJSON.prototype.SerImage = function(oImgObject) { if (!oImgObject) return undefined; return { "extX": private_MM2EMU(oImgObject.extX), "extY": private_MM2EMU(oImgObject.extY), "blipFill": this.SerBlipFill(oImgObject.blipFill), "nvPicPr": this.SerUniNvPr(oImgObject.nvPicPr, oImgObject.locks, oImgObject.getObjectType()), "spPr": this.SerSpPr(oImgObject.spPr), "type": "image" } }; WriterToJSON.prototype.SerShape = function(oShape) { if (!oShape) return undefined; var oSerContent = null; if (oShape.textBoxContent) oSerContent = this.SerDocContent(oShape.textBoxContent); else if (oShape.txBody) oSerContent = this.SerTxPr(oShape.txBody); var nObjType = oShape.getObjectType(); var oResult = { "bWordShape": oShape.bWordShape != null ? oShape.bWordShape : undefined, "extX": private_MM2EMU(oShape.extX), "extY": private_MM2EMU(oShape.extY), "spPr": this.SerSpPr(oShape.spPr), "style": this.SerSpStyle(oShape.style), "bodyPr": this.SerBodyPr(oShape.bodyPr), "content": oSerContent, "modelId": oShape.modelId, "txXfrm": this.SerXfrm(oShape.txXfrm), "type": "shape", } switch (nObjType) { case AscDFH.historyitem_type_Cnx: oResult["nvCxnSpPr"] = this.SerUniNvPr(oShape.nvSpPr, oShape.locks, nObjType); break; case AscDFH.historyitem_type_Shape: oResult["nvSpPr"] = this.SerUniNvPr(oShape.nvSpPr, oShape.locks, nObjType); break; case AscDFH.historyitem_type_SlicerView: oResult["nvGraphicFramePr"] = this.SerUniNvPr(oShape.nvSpPr, oShape.locks, nObjType); break; } return oResult; }; WriterToJSON.prototype.SerTextPr = function(oTextPr, oPr) { if (!oTextPr) return undefined; let oResult = oTextPr.ToJson(true, oPr) if (oTextPr.RStyle != null) oResult["rStyle"] = this.AddWordStyleForWrite(oTextPr.RStyle); return oResult; }; WriterToJSON.prototype.SerTextPrDrawing = function(oTextPr) { if (!oTextPr) return undefined; return oTextPr.ToJson(false); }; WriterToJSON.prototype.AddWordStyleForWrite = function(sStyleId) { if (!sStyleId) return undefined; var oStyles = private_GetStyles(); var oStyle = oStyles.Get(sStyleId); if (!oStyle) return undefined; if (this.stylesForWrite == null) { this.stylesForWrite = { count: 0, styles: {} } } if (this.stylesForWrite.styles[oStyle.Id] == null) { this.stylesForWrite.styles[oStyle.Id] = oStyle; this.stylesForWrite.count++; } if (oStyle.BasedOn != null && this.stylesForWrite.styles[oStyle.BasedOn] == null) this.AddWordStyleForWrite(oStyle.BasedOn); if (oStyle.Next != null && this.stylesForWrite.styles[oStyle.Next] == null) this.AddWordStyleForWrite(oStyle.Next); if (oStyle.Link != null && this.stylesForWrite.styles[oStyle.Link] == null) this.AddWordStyleForWrite(oStyle.Link); return oStyle.Id; }; WriterToJSON.prototype.AddTableStyleForWrite = function(sStyleId) { if (!sStyleId) return undefined; var oStyles = private_GetStyles(); var oStyle = oStyles.Get(sStyleId); if (!oStyle) return undefined; if (this.stylesForWrite == null) { this.stylesForWrite = { count: 0, styles: {} } } if (this.stylesForWrite.styles[oStyle.Id] == null) { this.stylesForWrite.styles[oStyle.Id] = oStyle; this.stylesForWrite.count++; } return oStyle.Id; }; WriterToJSON.prototype.SerWordStylesForWrite = function() { if (this.stylesForWrite == null) return undefined; var oResult = {}; for (var key in this.stylesForWrite.styles) oResult[key] = this.SerWordStyle(this.stylesForWrite.styles[key]); return oResult; }; WriterToJSON.prototype.SerSdtPr = function(oSdtPr) { if (!oSdtPr) return undefined; var arrListItemComboBox = []; if (oSdtPr.ComboBox) { for (var nItem = 0; nItem < oSdtPr.ComboBox.ListItems; nItem++) { arrListItemComboBox.push({ "displayText": oSdtPr.ComboBox.ListItems[nItem].DisplayText, "value": oSdtPr.ComboBox.ListItems[nItem].Value, }); } } var arrListItemDropDown = []; if (oSdtPr.DropDown) { for (var nItem = 0; nItem < oSdtPr.DropDown.ListItems; nItem++) { arrListItemDropDown.push({ "displayText": oSdtPr.DropDown.ListItems[nItem].DisplayText, "value": oSdtPr.DropDown.ListItems[nItem].Value, }); } } return { "alias": oSdtPr.Alias != null ? oSdtPr.Alias : undefined, "appearance": ToXml_ST_SdtAppearance(oSdtPr.Appearance), "color": this.SerColor(oSdtPr.Color), "comboBox": oSdtPr.ComboBox ? { "listItem": arrListItemComboBox, "lastValue": oSdtPr.ComboBox.LastValue } : undefined, "date": oSdtPr.Date ? { "calendar": ToXml_ST_CalendarType(oSdtPr.Date.Calendar), "dateFormat": oSdtPr.Date.DateFormat, "lid": oSdtPr.Date.LangId != null ? Asc.g_oLcidIdToNameMap[oSdtPr.Date.LangId] : undefined, "fullDate": oSdtPr.Date.FullDate } : undefined, "docPartObj": oSdtPr.IsBuiltInDocPart() ? { "docPartCategory": oSdtPr.DocPartObj.Category, "docPartGallery": oSdtPr.DocPartObj.Gallery, "docPartUnique": oSdtPr.DocPartObj.Unique } : undefined, "dropDownList": oSdtPr.DropDown ? { "listItem": arrListItemDropDown, "lastValue": oSdtPr.DropDown.LastValue } : undefined, "equation": oSdtPr.Equation != null ? oSdtPr.Equation : undefined, "id": oSdtPr.Id != null ? oSdtPr.Id : undefined, "label": oSdtPr.Label != null ? oSdtPr.Label : undefined, "lock": oSdtPr.Lock != null ? ToXml_ST_Lock(oSdtPr.Lock) : undefined, "picture": oSdtPr.Picture != null ? oSdtPr.Picture : undefined, "placeholder": oSdtPr.Placeholder ? { "docPart": oSdtPr.Placeholder } : undefined, "rPr": this.SerTextPr(oSdtPr.TextPr), "showingPlcHdr": oSdtPr.ShowingPlcHdr != null ? oSdtPr.ShowingPlcHdr : undefined, "tag": oSdtPr.Tag != null ? oSdtPr.Tag : undefined, "temporary": oSdtPr.Temporary != null ? oSdtPr.Temporary : undefined } }; WriterToJSON.prototype.SerParaMath = function(oParaMath) { if (!oParaMath) return undefined; var sJc = undefined; switch (oParaMath.Jc) { case JC_CENTER: sJc = "center"; break; case JC_CENTERGROUP: sJc = "centerGroup"; break; case JC_LEFT: sJc = "left"; break; case JC_RIGHT: sJc = "right"; break; } function SerMathContent(oMathContent) { if (!oMathContent) return oMathContent; var oTempElm = null; var arrContent = []; if (oMathContent instanceof AscCommonWord.CDenominator || oMathContent instanceof AscCommonWord.CNumerator) arrContent.push(SerFracArg.call(this, oMathContent)); else { for (var nElm = 0; nElm < oMathContent.Content.length; nElm++) { oTempElm = oMathContent.Content[nElm]; if (oTempElm instanceof AscCommonWord.ParaRun) arrContent.push(this.SerParaRun(oTempElm)); else if (oTempElm instanceof AscCommonWord.CFraction) arrContent.push(SerFraction.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CDegree) arrContent.push(SerDegree.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CDegreeSubSup) arrContent.push(SerSupSubDegree.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CRadical) arrContent.push(SerRadical.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CNary) arrContent.push(SerNary.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CEqArray) arrContent.push(SerEqArray.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CDelimiter) arrContent.push(SerDelimiter.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CMathFunc) arrContent.push(SerMathFunc.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CAccent) arrContent.push(SerAccent.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CGroupCharacter) arrContent.push(SerGroupCharacter.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CBorderBox) arrContent.push(SerBorderBox.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CBar) arrContent.push(SerBar.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CLimit) arrContent.push(SerLimit.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CBox) arrContent.push(SerBox.call(this, oTempElm)); else if (oTempElm instanceof AscCommonWord.CMathMatrix) arrContent.push(SerMathMatrix.call(this, oTempElm)); } } return arrContent; } function SerFraction(oFraction) { if (!oFraction) return oFraction; var sFracType; switch (oFraction.Pr.type) { case BAR_FRACTION: sFracType = "bar"; break; case SKEWED_FRACTION: sFracType = "skw"; break; case LINEAR_FRACTION: sFracType = "lin"; break; default: sFracType = "noBar"; break; } return { "fPr": { "ctrlPr": oFraction.Is_FromDocument() ? this.SerTextPr(oFraction.CtrPrp) : this.SerTextPrDrawing(oFraction.CtrPrp), "type": sFracType }, "num": SerFracArg.call(this, oFraction.Numerator), "den": SerFracArg.call(this, oFraction.Denominator), "type": "fraction" } } function SerFracArg(oFractionArg) { if (!oFractionArg) return oFractionArg; var sArgType = ""; if (oFractionArg instanceof AscCommonWord.CDenominator) sArgType = "den"; else if (oFractionArg instanceof AscCommonWord.CNumerator) sArgType = "num"; return { "argPr": { "argSize": oFractionArg.ArgSize.value }, "ctrlPr": oFractionArg.Is_FromDocument() ? this.SerTextPr(oFractionArg.CtrPrp) : this.SerTextPrDrawing(oFractionArg.CtrPrp), "content": SerMathContent.call(this, oFractionArg.elements[0][0]), "type": sArgType } } function SerDegree(oDegree) { if (!oDegree) return oDegree; var oDegreeObj = { "e": SerMathContent.call(this, oDegree.baseContent), } switch (oDegree.Pr.type) { case DEGREE_SUPERSCRIPT: oDegreeObj["type"] = "superScript"; oDegreeObj["sSupPr"] = { "ctrlPr": oDegree.Is_FromDocument() ? this.SerTextPr(oDegree.CtrPrp) : this.SerTextPrDrawing(oDegree.CtrPrp) } oDegreeObj["sup"] = { "content": SerMathContent.call(this, oDegree.iterContent), "argPr": { "argSize": oDegree.iterContent.ArgSize.value } } break; case DEGREE_SUBSCRIPT: oDegreeObj["type"] = "supScript"; oDegreeObj["sSubPr"] = { "ctrlPr": oDegree.Is_FromDocument() ? this.SerTextPr(oDegree.CtrPrp) : this.SerTextPrDrawing(oDegree.CtrPrp) } oDegreeObj["sub"] = { "content": SerMathContent.call(this, oDegree.iterContent), "argPr": { "argSize": oDegree.iterContent.ArgSize.value } } break; } return oDegreeObj; } function SerSupSubDegree(oDegreeSubSup) { if (!oDegreeSubSup) return oDegreeSubSup; var oDegreeObj = { "e": SerMathContent.call(this, oDegreeSubSup.baseContent), "sup": SerMathContent.call(this, oDegreeSubSup.iters.iterUp), "sub": SerMathContent.call(this, oDegreeSubSup.iters.iterDn) } switch (oDegreeSubSup.Pr.type) { case DEGREE_SubSup: oDegreeObj["type"] = "subSupScript"; oDegreeObj["sSubSupPr"] = { "ctrlPr": oDegreeSubSup.Is_FromDocument() ? this.SerTextPr(oDegreeSubSup.CtrPrp) : this.SerTextPrDrawing(oDegreeSubSup.CtrPrp) } break; case DEGREE_PreSubSup: oDegreeObj["type"] = "preSubSupScript"; oDegreeObj["sPrePr"] = { "ctrlPr": oDegreeSubSup.Is_FromDocument() ? this.SerTextPr(oDegreeSubSup.CtrPrp) : this.SerTextPrDrawing(oDegreeSubSup.CtrPrp) } break; } return oDegreeObj; } function SerRadical(oRadical) { if (!oRadical) return oRadical; var sRadType = oRadical.Pr.type === SQUARE_RADICAL ? "radSquare" : "radDegree"; return { "radPr": { "ctrlPr": oRadical.Is_FromDocument() ? this.SerTextPr(oRadical.CtrPrp) : this.SerTextPrDrawing(oRadical.CtrPrp), "degHide": oRadical.Pr.degHide }, "e": SerMathContent.call(this, oRadical.RealBase), "deg": SerMathContent.call(this, oRadical.Iterator), "type": sRadType } } function SerNary(oNary) { if (!oNary) return oNary; var sLimLoc = ""; switch (oNary.Pr.limLoc) { case NARY_UndOvr: sLimLoc = "undOvr"; break; case NARY_SubSup: sLimLoc = "subSup"; break; } return { "e": SerMathContent.call(this, oNary.Arg), "sup": SerMathContent.call(this, oNary.UpperIterator), "sub": SerMathContent.call(this, oNary.LowerIterator), "naryPr": { "chr": oNary.Pr.chr, "ctrlPr": oNary.Is_FromDocument() ? this.SerTextPr(oNary.CtrPrp) : this.SerTextPrDrawing(oNary.CtrPrp), "grow": oNary.Pr.grow, "limLoc": sLimLoc, "subHide": oNary.Pr.subHide, "supHide": oNary.Pr.supHide }, "type": "nary" } } function SerEqArray(oEqArray) { if (!oEqArray) return oEqArray; var sJcType = undefined; switch (oEqArray.Pr.baseJc) { case BASEJC_CENTER: sJcType = "center"; break; case BASEJC_TOP: sJcType = "top"; break; case BASEJC_BOTTOM: sJcType = "bottom"; break; case BASEJC_INLINE: sJcType = "inline"; break; case BASEJC_INSIDE: sJcType = "inside"; break; case BASEJC_OUTSIDE: sJcType = "outside"; break; } var oEqArrayObj = { "eqArrPr": { "baseJc": sJcType, "ctrlPr": oEqArray.Is_FromDocument() ? this.SerTextPr(oEqArray.CtrPrp) : this.SerTextPrDrawing(oEqArray.CtrPrp), "maxDist": oEqArray.Pr.maxDist, "objDist": oEqArray.Pr.objDist, "rSp": oEqArray.Pr.rSp, "rSpRule": oEqArray.Pr.rSpRule, "row": oEqArray.Pr.row }, "e": [], "type": "eqArray" } for (var nArg = 0; nArg < oEqArray.elements.length; nArg++) oEqArrayObj["e"].push(SerMathContent.call(this, oEqArray.elements[nArg][0])); return oEqArrayObj; } function SerDelimiter(oDelimiter) { if (!oDelimiter) return oDelimiter; var sShpType = oDelimiter.Pr.shp === DELIMITER_SHAPE_CENTERED ? "centered" : "match"; var oDelimiterObj = { "dPr": { "begChr": oDelimiter.Pr.begChr, "ctrlPr": oDelimiter.Is_FromDocument() ? this.SerTextPr(oDelimiter.CtrPrp) : this.SerTextPrDrawing(oDelimiter.CtrPrp), "endChr": oDelimiter.Pr.endChr, "grow": oDelimiter.Pr.grow, "sepChr": oDelimiter.Pr.sepChr, "shp": sShpType }, "e": [], "type": "delimiter" } for (var nArg = 0; nArg < oDelimiter.elements[0].length; nArg++) oDelimiterObj["e"].push(SerMathContent.call(this, oDelimiter.elements[0][nArg])); return oDelimiterObj; } function SerMathFunc(oMathFunc) { if (!oMathFunc) return oMathFunc; return { "fName": SerMathContent.call(this, oMathFunc.elements[0][0]), "e": SerMathContent.call(this, oMathFunc.elements[0][1]), "funcPr": { "ctrlPr": oMathFunc.Is_FromDocument() ? this.SerTextPr(oMathFunc.CtrPrp) : this.SerTextPrDrawing(oMathFunc.CtrPrp) }, "type": "mathFunc" } } function SerAccent(oAccent) { if (!oAccent) return oAccent; return { "accPr": { "ctrlPr": oAccent.Is_FromDocument() ? this.SerTextPr(oAccent.CtrPrp) : this.SerTextPrDrawing(oAccent.CtrPrp), "chr": oAccent.Pr.chr }, "e": SerMathContent.call(this, oAccent.elements[0][0]), "type": "accent" } } function SerGroupCharacter(oGrpChar) { if (!oGrpChar) return oGrpChar; var sPos = undefined; switch (oGrpChar.Pr.pos) { case LOCATION_BOT: sPos = "bot"; break; case LOCATION_TOP: sPos = "top"; break; } var sVertJc = undefined; switch (oGrpChar.Pr.vertJc) { case VJUST_TOP: sVertJc = "top"; break; case VJUST_BOT: sVertJc = "bot"; break; } return { "groupChrPr": { "chr": oGrpChar.Pr.chr, "ctrlPr": oGrpChar.Is_FromDocument() ? this.SerTextPr(oGrpChar.CtrPrp) : this.SerTextPrDrawing(oGrpChar.CtrPrp), "pos": sPos, "vertJc": sVertJc }, "e": SerMathContent.call(this, oGrpChar.getBase()), "type": "groupChr" } } function SerBorderBox(oBox) { if (!oBox) return oBox; return { "borderBoxPr": { "ctrlPr": oBox.Is_FromDocument() ? this.SerTextPr(oBox.CtrPrp) : this.SerTextPrDrawing(oBox.CtrPrp), "hideBot": oBox.Pr.hideBot, "hideLeft": oBox.Pr.hideLeft, "hideRight": oBox.Pr.hideRight, "hideTop": oBox.Pr.hideTop, "strikeBLTR": oBox.Pr.strikeBLTR, "strikeH": oBox.Pr.strikeH, "strikeTLBR": oBox.Pr.strikeTLBR, "strikeV": oBox.Pr.strikeV }, "e": SerMathContent.call(this, oBox.elements[0][0]), "type": "borderBox" } } function SerBox(oBox) { if (!oBox) return oBox; return { "boxPr": { "ctrlPr": oBox.Is_FromDocument() ? this.SerTextPr(oBox.CtrPrp) : this.SerTextPrDrawing(oBox.CtrPrp), "aln": oBox.Pr.aln, "brk": oBox.Pr.brk ? { "alnAt": oBox.Pr.brk.alnAt } : undefined, "diff": oBox.Pr.diff, "noBreak": oBox.Pr.noBreak, "opEmu": oBox.Pr.opEmu }, "e": SerMathContent.call(this, oBox.getBase()), "type": "box" } } function SerBar(oBar) { if (!oBar) return oBar; var sPos = undefined; switch (oBar.Pr.pos) { case LOCATION_BOT: sPos = "bot"; break; case LOCATION_TOP: sPos = "top"; break; } return { "barPr": { "ctrlPr": oBar.Is_FromDocument() ? this.SerTextPr(oBar.CtrPrp) : this.SerTextPrDrawing(oBar.CtrPrp), "pos": sPos }, "e": SerMathContent.call(this, oBar.elements[0][0]), "type": "bar" } } function SerLimit(oLimit) { if (!oLimit) return oLimit; var oLimObj = { "e": SerMathContent.call(this, oLimit.getFName()), "limit": SerMathContent.call(this, oLimit.getIterator()) } if (oLimit.Pr.type === LIMIT_UP) { oLimObj["type"] = "limUpp"; oLimObj["limUppPr"] = { "ctrlPr": oLimit.Is_FromDocument() ? this.SerTextPr(oLimit.CtrPrp) : this.SerTextPrDrawing(oLimit.CtrPrp) }; } else { oLimObj["type"] = "limLow"; oLimObj["limLowPr"] = { "ctrlPr": oLimit.Is_FromDocument() ? this.SerTextPr(oLimit.CtrPrp) : this.SerTextPrDrawing(oLimit.CtrPrp) }; } return oLimObj; } function SerMathMatrix(oMatrix) { if (!oMatrix) return oMatrix; var sJcType = undefined; switch (oMatrix.Pr.baseJc) { case BASEJC_CENTER: sJcType = "center"; break; case BASEJC_TOP: sJcType = "top"; break; case BASEJC_BOTTOM: sJcType = "bottom"; break; case BASEJC_INLINE: sJcType = "inline"; break; case BASEJC_INSIDE: sJcType = "inside"; break; case BASEJC_OUTSIDE: sJcType = "outside"; break; } var arrMatrixRow = []; for (var nRow = 0; nRow < oMatrix.elements.length; nRow++) { var arrCells = []; for (var nCell = 0; nCell < oMatrix.elements[nRow].length; nCell++) arrCells.push(SerMathContent.call(this, oMatrix.elements[nRow][nCell])); arrMatrixRow.push(arrCells); } var arrMatrixColsPr = []; for (var nPr = 0; nPr < oMatrix.Pr.mcs.length; nPr++) { var sColPrJcType = undefined; switch (oMatrix.Pr.mcs[nPr].mcJc) { case MCJC_CENTER: sColPrJcType = "center"; break; case MCJC_LEFT: sColPrJcType = "left"; break; case MCJC_RIGHT: sColPrJcType = "right"; break; case MCJC_INSIDE: sColPrJcType = "inside"; break; case MCJC_OUTSIDE: sColPrJcType = "outside"; break; } arrMatrixColsPr.push({ "count": oMatrix.Pr.mcs[nPr].count, "mcJc": sColPrJcType }); } return { "mPr": { "baseJc": sJcType, "cGp": oMatrix.Pr.cGp, "cGpRule": oMatrix.Pr.cGpRule, "cSp": oMatrix.Pr.cSp, "ctrlPr": oMatrix.Is_FromDocument() ? this.SerTextPr(oMatrix.CtrPrp) : this.SerTextPrDrawing(oMatrix.CtrPrp), "mcs": arrMatrixColsPr, "plcHide": oMatrix.Pr.plcHide, "rSp": oMatrix.Pr.rSp, "rSpRule": oMatrix.Pr.rSpRule }, "mr": arrMatrixRow, "type": "matrix" } } return { "oMathParaPr": { "jc": sJc }, "content": SerMathContent.call(this, oParaMath.Root), "type": "paraMath" } }; WriterToJSON.prototype.SerParaComment = function(oComment, oMapCommentsInfo) { if (!oComment || !oComment.Paragraph) return undefined; if (!oMapCommentsInfo[oComment.CommentId].Start || !oMapCommentsInfo[oComment.CommentId].End) return undefined; var oDocument = private_GetLogicDocument(); var oCommentData = oDocument.Comments.GetById(oComment.CommentId).GetData(); var isStartComment = oComment.Start; var oCommentObj = { "id": oComment.CommentId, "author": oCommentData.Get_Name(), "text": oCommentData.Get_Text() }; if (isStartComment) oCommentObj["type"] = "commentRangeStart"; else oCommentObj["type"] = "commentRangeEnd"; return oCommentObj; }; WriterToJSON.prototype.SerParaBookmark = function(oBookmark, oMapBookmarksInfo) { if (!oBookmark || !oBookmark.Paragraph) return undefined; if (!oMapBookmarksInfo[oBookmark.BookmarkId].Start || !oMapBookmarksInfo[oBookmark.BookmarkId].End) return undefined; var isStartBookmark = oBookmark.Start; var oBookmarkObj = { "id": oBookmark.BookmarkId, "name": oBookmark.BookmarkName }; if (isStartBookmark) oBookmarkObj["type"] = "bookmarkStart"; else oBookmarkObj["type"] = "bookmarkEnd"; return oBookmarkObj; }; WriterToJSON.prototype.GetPenDashStrType = function(nType) { switch (nType) { case Asc.c_oDashType.dash: return "dash"; case Asc.c_oDashType.dashDot: return "dashDot"; case Asc.c_oDashType.dot: return "dot"; case Asc.c_oDashType.lgDash: return "lgDash"; case Asc.c_oDashType.lgDashDot: return "lgDashDot"; case Asc.c_oDashType.lgDashDotDot: return "lgDashDotDot"; case Asc.c_oDashType.solid: return "solid"; case Asc.c_oDashType.sysDash: return "sysDash"; case Asc.c_oDashType.sysDashDot: return "sysDashDot"; case Asc.c_oDashType.sysDashDotDot: return "sysDashDotDot"; case Asc.c_oDashType.sysDot: return "sysDot"; default: return nType; } }; function ReaderFromJSON() { this.api = editor ? editor : Asc.editor; this.isWord = this.api.editorId === AscCommon.c_oEditorId.Word; this.MoveMap = {}; this.FootEndNoteMap = {}; this.layoutsMap = {}; this.mastersMap = {}; this.notesMasterMap = {}; this.themesMap = {}; this.drawingsMap = {}; this.curWorksheet = null; this.Workbook = null; this.aCellXfs = []; this.RestoredStylesMap = {}; this.oConnectedObjects = {}; this.map_shapes_by_id = {}; //this.old_to_new_shapes_id_map = {}; window["AscJsonConverter"].ActiveReader = this; } ReaderFromJSON.prototype.AddConnectedObject = function(oObject) { this.oConnectedObjects[oObject.Id] = oObject; }; ReaderFromJSON.prototype.ClearConnectedObjects = function(){ this.oConnectedObjects = {}; this.map_shapes_by_id = {}; }; ReaderFromJSON.prototype.AssignConnectedObjects = function(){ for(var sId in this.oConnectedObjects) { if(this.oConnectedObjects.hasOwnProperty(sId)) { this.oConnectedObjects[sId].assignConnection(this.map_shapes_by_id); } } }; ReaderFromJSON.prototype.ParaRunFromJSON = function(oParsedRun, oParentPara, notCompletedFields) { var aContent = oParsedRun["content"]; var oCurComplexField = null; var oDocument = private_GetLogicDocument(); if (!notCompletedFields) notCompletedFields = []; var oRun; switch (oParsedRun["type"]) { case "mathRun": oRun = new ParaRun(oParentPara, true); break; case "presField": oRun = new AscCommonWord.CPresentationField(oParentPara); break; default: oRun = new ParaRun(oParentPara, false); break; } if (oParsedRun["type"] === "presField") { oRun.SetGuid(AscCommon.CreateGUID()); oRun.SetFieldType(oParsedRun["fldType"]); } // Footnotes for (var nElm = 0; nElm < oParsedRun["footnotes"].length; nElm++) this.ParaFootEndNoteFromJSON(oParsedRun["footnotes"][nElm]); // Endnotes for (nElm = 0; nElm < oParsedRun["endnotes"].length; nElm++) this.ParaFootEndNoteFromJSON(oParsedRun["endnotes"][nElm]); // review info var nReviewType = undefined; switch (oParsedRun["reviewType"]) { case "common": nReviewType = reviewtype_Common; break; case "remove": nReviewType = reviewtype_Remove; break; case "add": nReviewType = reviewtype_Add; break; } var oReviewInfo = oParsedRun["reviewInfo"] ? this.ReviewInfoFromJSON(oParsedRun["reviewInfo"]) : null; var oTextPr = oParsedRun["bFromDocument"] === true ? this.TextPrFromJSON(oParsedRun["rPr"]) : this.TextPrDrawingFromJSON(oParsedRun["rPr"]); oReviewInfo && oRun.SetReviewTypeWithInfo(nReviewType, oReviewInfo); oRun.SetPr(oTextPr); oTextPr.PrChange && oRun.SetPrChange(oTextPr.PrChange, oReviewInfo); if (oParsedRun["type"] === "mathRun") { oRun.MathPrp.SetStyle(oParsedRun["mathPr"]["b"], oParsedRun["mathPr"]["i"]); } if (oParsedRun["type"] === "endRun") { oRun.Add_ToContent( 0, new AscWord.CRunParagraphMark() ); return oRun; } for (nElm = 0; nElm < aContent.length; nElm++) { // записываем текстовый контент в ран(либо обычный ран либо mathRun) if (typeof aContent[nElm] === "string" || aContent[nElm]["type"] === "mathTxt") { if (oParsedRun["type"] === "mathRun") { var oText; if (0x0026 == aContent[nElm]["value"]) oText = new CMathAmp(); else { oText = new CMathText(false); if (aContent[nElm]["value"] === StartTextElement) { oText.SetPlaceholder(); oRun.Add_ToContent(0, oText, false); } else { oText.add(aContent[nElm]["value"]); oRun.Add(oText); } } } else oRun.AddText(aContent[nElm]); continue; } switch (aContent[nElm]["type"]) { case "break": switch(aContent[nElm]["breakType"]) { case "textWrapping": oRun.AddToContent(-1, new AscWord.CRunBreak(AscWord.break_Line)); break; case "page": oRun.AddToContent(-1, new AscWord.CRunBreak(AscWord.break_Page)); break; case "column": oRun.AddToContent(-1, new AscWord.CRunBreak(AscWord.break_Column)); break; } break; case "pgNum": oRun.AddToContent(-1, new AscWord.CRunPageNum()); break; case "tab": oRun.AddToContent(-1, new AscWord.CRunTab()); break; case "fldChar": switch (aContent[nElm]["fldCharType"]) { case "begin": var oBeginChar = new ParaFieldChar(fldchartype_Begin, private_GetLogicDocument()); oRun.AddToContent(-1, oBeginChar); oBeginChar.SetRun(oRun); oCurComplexField = oBeginChar.GetComplexField(); oCurComplexField.SetBeginChar(oBeginChar); notCompletedFields.push(oCurComplexField); break; case "separate": var oSeparateChar = new ParaFieldChar(fldchartype_Separate, private_GetLogicDocument()); oRun.AddToContent(-1, oSeparateChar); oSeparateChar.SetRun(oRun); oCurComplexField = notCompletedFields[notCompletedFields.length - 1]; oCurComplexField.SetSeparateChar(oSeparateChar); break; case "end": var oEndChar = new ParaFieldChar(fldchartype_End, private_GetLogicDocument()); oRun.AddToContent(-1, oEndChar); oEndChar.SetRun(oRun); oCurComplexField = notCompletedFields[notCompletedFields.length - 1]; oCurComplexField.SetEndChar(oEndChar); notCompletedFields.splice(notCompletedFields.length - 1, 1); break; } break; case "instrText": oRun.AddInstrText(aContent[nElm]["instr"]); oCurComplexField = notCompletedFields[notCompletedFields.length - 1]; oCurComplexField.SetInstructionLine(aContent[nElm]["instr"]); break; case "paraDrawing": var oDrawing = this.ParaDrawingFromJSON(aContent[nElm]); oRun.Add_ToContent(-1, oDrawing); oDrawing.Set_Parent(oRun.Paragraph); break; case "revisionMove": // создаём новый moveId(moveName), мапим к нему значения moveId(moveName) из JSON // таким образом задаем соответствия var sMoveName = undefined; if (!this.MoveMap[aContent[nElm]["name"]]) { sMoveName = oDocument.TrackRevisionsManager.GetNewMoveId(); this.MoveMap[aContent[nElm]["name"]] = sMoveName; } var oRevisionMove = new CRunRevisionMove(aContent[nElm]["start"], aContent[nElm]["from"], this.MoveMap[aContent[nElm]["name"]], aContent[nElm]["reviewInfo"]); oRun.Add_ToContent(-1, oRevisionMove); break; case "footnoteRef": case "footnoteNum": case "endnoteRef": case "endnoteNum": oRun.Add_ToContent(-1, this.ParaFootEndNoteRefFromJSON(aContent[nElm])); break; } } return oRun; }; ReaderFromJSON.prototype.ParaFootEndNoteRefFromJSON = function(oParsedFootEndnoteRef) { var oFootEndnoteRef = null; switch (oParsedFootEndnoteRef["type"]) { case "footnoteRef": oFootEndnoteRef = new AscWord.CRunFootnoteReference(this.FootEndNoteMap[oParsedFootEndnoteRef["footnote"]]); break; case "footnoteNum": oFootEndnoteRef = new AscWord.CRunFootnoteRef(this.FootEndNoteMap[oParsedFootEndnoteRef["footnote"]]); break; case "endnoteRef": oFootEndnoteRef = new AscWord.CRunEndnoteReference(this.FootEndNoteMap[oParsedFootEndnoteRef["footnote"]]); break; case "endnoteNum": oFootEndnoteRef = new AscWord.CRunEndnoteRef(this.FootEndNoteMap[oParsedFootEndnoteRef["footnote"]]); break; } oFootEndnoteRef.CustomMark = oParsedFootEndnoteRef["customMark"]; oFootEndnoteRef.NumFormat = oParsedFootEndnoteRef["numFormat"]; //oFootEndnoteRef.Number = oParsedFootEndnoteRef.number; return oFootEndnoteRef; }; ReaderFromJSON.prototype.ParaFootEndNoteFromJSON = function(oParsedFootEndnote) { var oDocument = private_GetLogicDocument(); var aContent = oParsedFootEndnote["content"]; var oFootEndnote = oParsedFootEndnote["type"] === "footnote" ? oDocument.Footnotes.CreateFootnote() : oDocument.Endnotes.CreateEndnote(); // мапим сносну, для привязки к ссылке внутри рана this.FootEndNoteMap[oParsedFootEndnote["id"]] = oFootEndnote; var notCompletedFields = []; var oMapCommentsInfo = []; var oMapBookmarksInfo = []; var oPrevNumIdInfo = {}; for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "paragraph": oFootEndnote.AddToContent(oFootEndnote.Content.length, this.ParagraphFromJSON(aContent[nElm], oFootEndnote, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo, oPrevNumIdInfo), false); break; case "table": oFootEndnote.AddToContent(oFootEndnote.Content.length, this.TableFromJSON(aContent[nElm], oFootEndnote, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; case "blockLvlSdt": oFootEndnote.AddToContent(oFootEndnote.Content.length, this.BlockLvlSdtFromJSON(aContent[nElm], oFootEndnote, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; } } if (oFootEndnote.Content.length > 1) // удаляем параграф, который добавляется при создании CDocumentContent oFootEndnote.RemoveFromContent(0, 1); oFootEndnote.CustomMarkFollow = oParsedFootEndnote["customMarkFollow"]; oFootEndnote.Hint = oParsedFootEndnote["hint"]; //oFootEndnote.number = oParsedFootEndnote["number"]; oFootEndnote.ColumnsCount = oParsedFootEndnote["columnsCount"]; oFootEndnote.SectPr = oParsedFootEndnote["sectPr"] ? this.SectPrFromJSON(oParsedFootEndnote["sectPr"]) : oFootEndnote.SectPr; return oFootEndnote; }; ReaderFromJSON.prototype.ReviewInfoFromJSON = function(oParsedReviewInfo) { var oReviewInfo = new AscWord.ReviewInfo(); // move type var nMoveType = undefined; switch (oParsedReviewInfo["moveType"]) { case "noMove": nMoveType = Asc.c_oAscRevisionsMove.NoMove; break; case "moveTo": nMoveType = Asc.c_oAscRevisionsMove.MoveTo; break; case "moveFrom": nMoveType = Asc.c_oAscRevisionsMove.MoveFrom; break; } // move type var nPrevType = undefined; switch (oParsedReviewInfo["prevType"]) { case "noMove": nPrevType = Asc.c_oAscRevisionsMove.NoMove; break; case "moveTo": nPrevType = Asc.c_oAscRevisionsMove.MoveTo; break; case "moveFrom": nPrevType = Asc.c_oAscRevisionsMove.MoveFrom; break; } oReviewInfo.UserId = oParsedReviewInfo["userId"]; oReviewInfo.UserName = oParsedReviewInfo["author"]; oReviewInfo.DateTime = oParsedReviewInfo["date"]; oReviewInfo.MoveType = nMoveType; oReviewInfo.PrevType = nPrevType; oReviewInfo.PrevInfo = oParsedReviewInfo["prevInfo"] ? this.ReviewInfoFromJSON(oParsedReviewInfo["prevInfo"]) : oReviewInfo.PrevInfo; return oReviewInfo; }; ReaderFromJSON.prototype.TextPrFromJSON = function(oParsedPr) { var oTextPr = AscCommonWord.CTextPr.FromJson(oParsedPr, true); // style var oStyle = null; if (oParsedPr["rStyle"] != null && this.RestoredStylesMap[oParsedPr["rStyle"]]) oStyle = this.RestoredStylesMap[oParsedPr["rStyle"]]; if (oStyle != null) oTextPr.RStyle = oStyle.Id; return oTextPr; }; ReaderFromJSON.prototype.TextPrDrawingFromJSON = function(oParsedPr) { return AscCommonWord.CTextPr.FromJson(oParsedPr, false); }; ReaderFromJSON.prototype.ShadeFromJSON = function(oParsedShd) { var oShade = new AscCommonWord.CDocumentShd(); oShade.Fill = oParsedShd["fill"] ? new CDocumentColor() : oParsedShd["fill"]; oShade.Value = FromXml_ST_Shd(oParsedShd["val"]); oShade.Color.r = oParsedShd["color"]["r"]; oShade.Color.g = oParsedShd["color"]["g"]; oShade.Color.b = oParsedShd["color"]["b"]; oShade.Color.Auto = oParsedShd["color"]["auto"]; if (oShade.Fill) { oShade.Fill.r = oParsedShd["fill"]["r"]; oShade.Fill.g = oParsedShd["fill"]["g"]; oShade.Fill.b = oParsedShd["fill"]["b"]; oShade.Fill.Auto = oParsedShd["fill"]["auto"]; } oShade.FillRef = oParsedShd["fillRef"] ? this.StyleRefFromJSON(oParsedShd["fillRef"]) : oParsedShd["fillRef"]; oShade.Unifill = oParsedShd["themeColor"] ? this.FillFromJSON(oParsedShd["themeColor"]) : oParsedShd["themeColor"]; oShade.ThemeFill = oParsedShd["themeFill"] ? this.FillFromJSON(oParsedShd["themeFill"]) : oParsedShd["themeFill"]; return oShade; }; ReaderFromJSON.prototype.ParagraphFromJSON = function(oParsedPara, oParent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo, oPrevNumIdInfo) { if (!notCompletedFields) notCompletedFields = []; if (!oMapCommentsInfo) oMapCommentsInfo = {}; if (!oMapBookmarksInfo) oMapBookmarksInfo = {}; var aContent = oParsedPara["content"]; var oDocument = private_GetLogicDocument(); var oParaPr = oParsedPara["bFromDocument"] === true ? this.ParaPrFromJSON(oParsedPara["pPr"], oPrevNumIdInfo) : this.ParaPrDrawingFromJSON(oParsedPara["pPr"]); var oPara = new AscWord.Paragraph(oParent || oDocument, !oParsedPara["bFromDocument"]); // символ конца параграфа oPara.TextPr.Set_Value(oParsedPara["bFromDocument"] === true ? this.TextPrFromJSON(oParsedPara["rPr"]) : this.TextPrDrawingFromJSON(oParsedPara["rPr"])); oPara.SetParagraphPr(oParaPr); // section prop. oParsedPara["pPr"]["sectPr"] && oPara.Set_SectionPr(this.SectPrFromJSON(oParsedPara["pPr"]["sectPr"])); // массив меток переноса var arrTrackMoves = []; var Comment, CommentStart, CommentEnd, oBookmark, sBookmarkId, sBookmarkName, sMoveName, oReviewInfo, oRevisionMove; for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "run": case "mathRun": case "presField": oPara.AddToContent(oPara.Content.length - 1, this.ParaRunFromJSON(aContent[nElm], oPara, notCompletedFields)); break; case "endRun": oPara.RemoveFromContent(oPara.Content.length - 1, 1); var oEndRun = this.ParaRunFromJSON(aContent[nElm]); oPara.AddToContent(oPara.Content.length, oEndRun); break; case "paraMath": oPara.AddToContent(oPara.Content.length - 1, this.ParaMathFromJSON(aContent[nElm], oPara, notCompletedFields)); break; case "hyperlink": oPara.AddToContent(oPara.Content.length - 1, this.HyperlinkFromJSON(aContent[nElm], oPara, notCompletedFields)); break; case "inlineLvlSdt": oPara.AddToContent(oPara.Content.length - 1, this.InlineLvlSdtFromJSON(aContent[nElm], oPara, notCompletedFields)); break; case "commentRangeStart": var CommentData = new AscCommon.CCommentData(); CommentData.SetText(aContent[nElm]["text"]); CommentData.SetUserName(aContent[nElm]["author"]); Comment = new AscCommon.CComment(oDocument.Comments, CommentData); oDocument.Comments.Add(Comment); CommentStart = new AscCommon.ParaComment(true, Comment.Get_Id()); oPara.Add_ToContent(oPara.Content.length - 1, CommentStart); oMapCommentsInfo[aContent[nElm]["id"]] = CommentStart.CommentId; editor.sync_AddComment(Comment.Get_Id(), CommentData); break; case "commentRangeEnd": Comment = oDocument.Comments.Get_ById(oMapCommentsInfo[aContent[nElm]["id"]]); CommentEnd = new AscCommon.ParaComment(false, Comment.Get_Id()); oPara.Add_ToContent(oPara.Content.length - 1, CommentEnd); break; case "bookmarkStart": sBookmarkName = aContent[nElm]["name"]; oDocument.BookmarksManager.NeedUpdate = false; if (oDocument.BookmarksManager.GetBookmarkByName(sBookmarkName)) break; sBookmarkId = oDocument.BookmarksManager.GetNewBookmarkId(); oBookmark = new CParagraphBookmark(true, sBookmarkId, sBookmarkName); oPara.Add_ToContent(oPara.Content.length - 1, oBookmark); oMapBookmarksInfo[aContent[nElm]["id"]] = oBookmark; break; case "bookmarkEnd": oBookmark = oMapBookmarksInfo[aContent[nElm]["id"]]; if (!oBookmark) break; sBookmarkName = oBookmark.BookmarkName; oPara.Add_ToContent(oPara.Content.length - 1, new CParagraphBookmark(false, oBookmark.BookmarkId, sBookmarkName)); break; case "revisionMove": // создаём новый moveId(moveName), мапим к нему значения moveId(moveName) из JSON // таким образом задаем соответствия sMoveName = undefined; if (!this.MoveMap[aContent[nElm]["name"]]) { sMoveName = oDocument.TrackRevisionsManager.GetNewMoveId(); this.MoveMap[aContent[nElm]["name"]] = sMoveName; } oReviewInfo = aContent[nElm]["reviewInfo"] ? this.ReviewInfoFromJSON(aContent[nElm]["reviewInfo"]) : aContent[nElm]["reviewInfo"]; oRevisionMove = new CParaRevisionMove(aContent[nElm]["start"], aContent[nElm]["from"], this.MoveMap[aContent[nElm]["name"]], oReviewInfo); arrTrackMoves.push(oRevisionMove); oPara.Add_ToContent(oPara.Content.length - 1, oRevisionMove); break; } } for (var nChange = 0; nChange < oParsedPara["changes"].length; nChange++) { if (oParsedPara["changes"][nChange]["type"] === "moveMark") this.RevisionFromJSON(oParsedPara["changes"][nChange], oPara, arrTrackMoves.shift()); else this.RevisionFromJSON(oParsedPara["changes"][nChange], oPara); } return oPara; }; ReaderFromJSON.prototype.ParaPrFromJSON = function(oParsedParaPr, oPrevNumIdInfo) { let oParaPr = AscCommonWord.CParaPr.FromJson(oParsedParaPr, true); // style let oStyle = null; if (oParsedParaPr["pStyle"] != null && this.RestoredStylesMap[oParsedParaPr["pStyle"]]) oStyle = this.RestoredStylesMap[oParsedParaPr["pStyle"]]; if (oStyle) oParaPr.PStyle = oStyle.Id; if (oParsedParaPr["numPr"] != null) oParaPr.NumPr = this.NumPrFromJSON(oParsedParaPr["numPr"], oPrevNumIdInfo); return oParaPr; }; ReaderFromJSON.prototype.ParaPrDrawingFromJSON = function(oParsedParaPr) { return AscCommonWord.CParaPr.FromJson(oParsedParaPr, false); }; ReaderFromJSON.prototype.BulletFromJSON = function(oParsedBullet) { var oBullet = new AscFormat.CBullet(); function BulletColorFromJSON(oParsedBulletClr) { var oBulletColor = new AscFormat.CBulletColor(); var nBulletColorType = AscFormat.BULLET_TYPE_COLOR_NONE; switch (oParsedBulletClr["type"]) { case "none": nBulletColorType = AscFormat.BULLET_TYPE_COLOR_NONE; break; case "clrtx": nBulletColorType = AscFormat.BULLET_TYPE_COLOR_CLRTX; break; case "clr": nBulletColorType = AscFormat.BULLET_TYPE_COLOR_CLR; break; } oBulletColor.type = nBulletColorType; oBulletColor.UniColor = oParsedBulletClr["color"] ? this.ColorFromJSON(oParsedBulletClr["color"]) : oBulletColor.UniColor; return oBulletColor; } function BulletSizeFromJSON(oParsedBulletSz) { var oBulletSize = new AscFormat.CBulletSize(); var nBulleSizeType = AscFormat.BULLET_TYPE_SIZE_NONE; switch (oParsedBulletSz["type"]) { case "none": nBulleSizeType = AscFormat.BULLET_TYPE_SIZE_NONE; break; case "tx": nBulleSizeType = AscFormat.BULLET_TYPE_SIZE_TX; break; case "pct": nBulleSizeType = AscFormat.BULLET_TYPE_SIZE_PCT; break; case "pts": nBulleSizeType = AscFormat.BULLET_TYPE_SIZE_PTS; break; } oBulletSize.type = nBulleSizeType; oBulletSize.val = oParsedBulletSz["val"]; return oBulletSize; } function BulletTypeFaceFromJSON(oParsedBulletTpFace) { var oBulletTypeface = new AscFormat.CBulletTypeface(); var nBulleTypefaceType = "none"; switch (oParsedBulletTpFace["type"]) { case "none": nBulleTypefaceType = AscFormat.BULLET_TYPE_TYPEFACE_NONE; break; case "tx": nBulleTypefaceType = AscFormat.BULLET_TYPE_TYPEFACE_TX; break; case "bufont": nBulleTypefaceType = AscFormat.BULLET_TYPE_TYPEFACE_BUFONT; break; } oBulletTypeface.type = nBulleTypefaceType; oBulletTypeface.typeface = oParsedBulletTpFace["typeface"]; return oBulletTypeface; } function BulletTypeFromJSON(oParsedBulletType) { var oBulletType = new AscFormat.CBulletType(); var nBulleType = AscFormat.BULLET_TYPE_BULLET_NONE; var nAutoNumType; switch (oParsedBulletType["autoNumType"]) { case "alphaLcParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaLcParenBoth; break; case "alphaLcParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaLcParenR; break; case "alphaLcPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaLcPeriod; break; case "alphaUcParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaUcParenBoth; break; case "alphaUcParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaUcParenR; break; case "alphaUcPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_AlphaUcPeriod; break; case "arabic1Minus": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Arabic1Minus; break; case "arabic2Minus": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Arabic2Minus; break; case "arabicDbPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicDbPeriod; break; case "arabicDbPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicDbPlain; break; case "arabicParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicParenBoth; break; case "arabicParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicParenR; break; case "arabicPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicPeriod; break; case "arabicPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ArabicPlain; break; case "circleNumDbPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_CircleNumDbPlain; break; case "circleNumWdBlackPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_CircleNumWdBlackPlain; break; case "circleNumWdWhitePlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_CircleNumWdWhitePlain; break; case "ea1ChsPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1ChsPeriod; break; case "ea1ChsPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1ChsPlain; break; case "ea1ChtPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1ChtPeriod; break; case "ea1ChtPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1ChtPlain; break; case "ea1JpnChsDbPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1JpnChsDbPeriod; break; case "ea1JpnKorPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPeriod; break; case "ea1JpnKorPlain": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPlain; break; case "hebrew2Minus": nAutoNumType = AscFormat.numbering_presentationnumfrmt_Hebrew2Minus; break; case "hindiAlpha1Period": nAutoNumType = AscFormat.numbering_presentationnumfrmt_HindiAlpha1Period; break; case "hindiAlphaPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_HindiAlphaPeriod; break; case "hindiNumParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_HindiNumParenR; break; case "hindiNumPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_HindiNumPeriod; break; case "romanLcParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanLcParenBoth; break; case "romanLcParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanLcParenR; break; case "romanLcPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanLcPeriod; break; case "romanUcParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanUcParenBoth; break; case "romanUcParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanUcParenR; break; case "romanUcPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_RomanUcPeriod; break; case "thaiAlphaParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenBoth; break; case "thaiAlphaParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenR; break; case "thaiAlphaPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiAlphaPeriod; break; case "thaiNumParenBoth": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiNumParenBoth; break; case "thaiNumParenR": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiNumParenR; break; case "thaiNumPeriod": nAutoNumType = AscFormat.numbering_presentationnumfrmt_ThaiNumPeriod; break; } switch (oParsedBulletType["type"]) { case "none": nBulleType = AscFormat.BULLET_TYPE_BULLET_NONE; break; case "char": nBulleType = AscFormat.BULLET_TYPE_BULLET_CHAR; break; case "autonum": nBulleType = AscFormat.BULLET_TYPE_BULLET_AUTONUM; break; case "blip": nBulleType = AscFormat.BULLET_TYPE_BULLET_BLIP; break; } oBulletType.type = nBulleType; if (oParsedBulletType["char"] != null) oBulletType.Char = oParsedBulletType["char"]; if (nAutoNumType != null) oBulletType.AutoNumType = nAutoNumType; if (oParsedBulletType["startAt"] != null) oBulletType.startAt = oParsedBulletType["startAt"]; if (oParsedBulletType["buBlip"] != null) oBulletType.setBlip(BulletBlipFromJSON.call(this, oParsedBulletType["buBlip"])); return oBulletType; } function BulletBlipFromJSON(oParsedBuBlip) { let oBlip = new AscFormat.CBuBlip(); oBlip.setBlip(this.FillFromJSON(oParsedBuBlip["blip"])); return oBlip; } oBullet.bulletColor = oParsedBullet["bulletColor"] ? BulletColorFromJSON.call(this, oParsedBullet["bulletColor"]) : oBullet.bulletColor; oBullet.bulletSize = oParsedBullet["bulletSize"] ? BulletSizeFromJSON.call(this, oParsedBullet["bulletSize"]) : oBullet.bulletSize; oBullet.bulletTypeface = oParsedBullet["bulletTypeface"] ? BulletTypeFaceFromJSON.call(this, oParsedBullet["bulletTypeface"]) : oBullet.bulletTypeface; oBullet.bulletType = oParsedBullet["bulletType"] ? BulletTypeFromJSON.call(this, oParsedBullet["bulletType"]) : oBullet.bulletType; return oBullet; }; ReaderFromJSON.prototype.ParaMathFromJSON = function(oParsedParaMath) { var oParaMath = new AscCommonWord.ParaMath(); var nCurPos = 0; var nJc = undefined; switch (oParsedParaMath["oMathParaPr"]["jc"]) { case "center": nJc = JC_CENTER; break; case "centerGroup": nJc = JC_CENTERGROUP; break; case "left": nJc = JC_LEFT; break; case "right": nJc = JC_RIGHT; break; } nJc !== undefined && oParaMath.Set_Align(nJc); function MathContentFromJSON(oParsedMathContent) { var aContent = []; for (var nElm = 0; nElm < oParsedMathContent.length; nElm++) { switch (oParsedMathContent[nElm]["type"]) { case "mathRun": case "run": aContent.push(this.ParaRunFromJSON(oParsedMathContent[nElm])); break; case "fraction": aContent.push(FractionFromJSON.call(this, oParsedMathContent[nElm])); break; case "superScript": case "supScript": aContent.push(DegreeFromJSON.call(this, oParsedMathContent[nElm])); break; case "subSupScript": case "preSubSupScript": aContent.push(SupSubDegreeFromJSON.call(this, oParsedMathContent[nElm])); break; case "radSquare": case "radDegree": aContent.push(RadicalFromJSON.call(this, oParsedMathContent[nElm])); break; case "nary": aContent.push(NaryFromJSON.call(this, oParsedMathContent[nElm])); break; case "eqArray": aContent.push(EqArrayFromJSON.call(this, oParsedMathContent[nElm])); break; case "delimiter": aContent.push(DelimiterFromJSON.call(this, oParsedMathContent[nElm])); break; case "mathFunc": aContent.push(MathFuncFromJSON.call(this, oParsedMathContent[nElm])); break; case "accent": aContent.push(AccentFromJSON.call(this, oParsedMathContent[nElm])); break; case "groupChr": aContent.push(GroupCharacterFromJSON.call(this, oParsedMathContent[nElm])); break; case "borderBox": aContent.push(BorderBoxFromJSON.call(this, oParsedMathContent[nElm])); break; case "box": aContent.push(BoxFromJSON.call(this, oParsedMathContent[nElm])); break; case "bar": aContent.push(BarFromJSON.call(this, oParsedMathContent[nElm])); break; case "limUpp": case "limLow": aContent.push(LimitFromJSON.call(this, oParsedMathContent[nElm])); break; case "matrix": aContent.push(MathMatrixFromJSON.call(this, oParsedMathContent[nElm])); break; } } return aContent; } function FractionFromJSON(oParsedFraction) { // fraction type var nFracType; switch (oParsedFraction["fPr"]["type"]) { case "bar": nFracType = BAR_FRACTION; break; case "skw": nFracType = SKEWED_FRACTION; break; case "lin": nFracType = LINEAR_FRACTION; break; default: nFracType = BAR_FRACTION; break; } var oFracPr = oParsedFraction["fPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedFraction["fPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedFraction["fPr"]["ctrlPr"]); var oFraction = new AscCommonWord.CFraction({ctrPrp: oFracPr, type: nFracType}); var oDenMathContent = oFraction.getDenominatorMathContent(); var aDenMathContent = MathContentFromJSON.call(this, oParsedFraction["den"]["content"]); var nCurPos = 0; for (var nElm = 0; nElm < aDenMathContent.length; nElm++) { oDenMathContent.Internal_Content_Add(nCurPos, aDenMathContent[nElm], false); nCurPos++; } var oNumMathContent = oFraction.getNumeratorMathContent(); var aNumMathContent = MathContentFromJSON.call(this, oParsedFraction["num"]["content"]); nCurPos = 0; for (nElm = 0; nElm < aNumMathContent.length; nElm++) { oNumMathContent.Internal_Content_Add(nCurPos, aNumMathContent[nElm], false); nCurPos++; } oFraction.Denominator.setCtrPrp(oParsedFraction["den"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedFraction["den"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedFraction["den"]["ctrlPr"])); oParsedFraction["den"]["argPr"]["argSize"] != undefined && oFraction.Denominator.ArgSize.SetValue(oParsedFraction["den"]["argPr"]["argSize"]); oFraction.Numerator.setCtrPrp(oParsedFraction["num"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedFraction["num"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedFraction["num"]["ctrlPr"])); oParsedFraction["num"]["argPr"]["argSize"] != undefined && oFraction.Numerator.ArgSize.SetValue(oParsedFraction["num"]["argPr"]["argSize"]); return oFraction; } function DegreeFromJSON(oParsedDegree) { var nType = oParsedDegree["type"] === "superScript" ? DEGREE_SUPERSCRIPT : DEGREE_SUBSCRIPT; var oParsedCtrlPr = nType === DEGREE_SUPERSCRIPT ? oParsedDegree["sSupPr"]["ctrlPr"] : oParsedDegree["sSubPr"]["ctrlPr"]; var oParsedIterator = nType === DEGREE_SUPERSCRIPT ? oParsedDegree["sup"] : oParsedDegree["sub"]; var oCtrlPr = oParsedCtrlPr["bFromDocument"] ? this.TextPrFromJSON(oParsedCtrlPr) : this.TextPrDrawingFromJSON(oParsedCtrlPr); var oDegree = new AscCommonWord.CDegree({ctrPrp: oCtrlPr, type: nType}); var oBaseContent = oDegree.getBase(); var aBaseContent = MathContentFromJSON.call(this, oParsedDegree["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aBaseContent.length; nElm++) { oBaseContent.Internal_Content_Add(nCurPos, aBaseContent[nElm]); nCurPos++; } var oIterContent = oDegree.getUpperIterator(); var aIterContent = MathContentFromJSON.call(this, oParsedIterator["content"]); oParsedIterator["argPr"]["argSize"] != undefined && oIterContent.ArgSize.SetValue(oParsedIterator["argPr"]["argSize"]); nCurPos = 0; for (nElm = 0; nElm < aIterContent.length; nElm++) { oIterContent.Internal_Content_Add(nCurPos, aIterContent[nElm]); nCurPos++; } return oDegree; } function SupSubDegreeFromJSON(oParsedDegree) { var nType = oParsedDegree["type"] === "subSupScript" ? DEGREE_SubSup : DEGREE_PreSubSup; var oParsedCtrlPr = nType === DEGREE_SubSup ? oParsedDegree["sSubSupPr"]["ctrlPr"] : oParsedDegree["sPrePr"]["ctrlPr"]; var oCtrlPr = oParsedCtrlPr["bFromDocument"] ? this.TextPrFromJSON(oParsedCtrlPr) : this.TextPrDrawingFromJSON(oParsedCtrlPr); var oSupSubDegree = new AscCommonWord.CDegreeSubSup({ctrPrp: oCtrlPr, type: nType}); var oBaseContent = oSupSubDegree.getBase(); var aBaseContent = MathContentFromJSON.call(this, oParsedDegree["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aBaseContent.length; nElm++) { oBaseContent.Internal_Content_Add(nCurPos, aBaseContent[nElm]); nCurPos++; } var oUpContent = oSupSubDegree.getUpperIterator(); var aUpContent = MathContentFromJSON.call(this, oParsedDegree["sup"]); nCurPos = 0; for (nElm = 0; nElm < aUpContent.length; nElm++) { oUpContent.Internal_Content_Add(nCurPos, aUpContent[nElm]); nCurPos++; } var oDnContent = oSupSubDegree.getLowerIterator(); var aDnContent = MathContentFromJSON.call(this, oParsedDegree["sub"]); nCurPos = 0; for (nElm = 0; nElm < aDnContent.length; nElm++) { oDnContent.Internal_Content_Add(nCurPos, aDnContent[nElm]); nCurPos++; } return oSupSubDegree; } function RadicalFromJSON(oParsedRad) { var nType = oParsedRad["type"] === "radSquare" ? SQUARE_RADICAL : DEGREE_RADICAL; var oCtrlPr = oParsedRad["radPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedRad["radPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedRad["radPr"]["ctrlPr"]); var oRadical = new AscCommonWord.CRadical({ctrPrp: oCtrlPr, degHide: oParsedRad["radPr"]["degHide"], type: nType}); var oBaseContent = oRadical.getBase(); var aBaseContent = MathContentFromJSON.call(this, oParsedRad["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aBaseContent.length; nElm++) { oBaseContent.Internal_Content_Add(nCurPos, aBaseContent[nElm]); nCurPos++; } var oDegreeContent = oRadical.getDegree(); var aDegreeContent = MathContentFromJSON.call(this, oParsedRad["deg"]); nCurPos = 0; for (nElm = 0; nElm < aDegreeContent.length; nElm++) { oDegreeContent.Internal_Content_Add(nCurPos, aDegreeContent[nElm]); nCurPos++; } return oRadical; } function NaryFromJSON(oParsedNary) { var oCtrlPr = oParsedNary["naryPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedNary["naryPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedNary["naryPr"]["ctrlPr"]); var oPr = { chr: oParsedNary["naryPr"]["chr"], ctrPrp: oCtrlPr, limLoc: oParsedNary["naryPr"]["limLoc"] === "undOvr" ? NARY_UndOvr : NARY_SubSup, subHide: oParsedNary["naryPr"]["subHide"], supHide: oParsedNary["naryPr"]["supHide"] }; var oNary = new AscCommonWord.CNary(oPr); var oBaseContent = oNary.getBase(); var aBaseContent = MathContentFromJSON.call(this, oParsedNary["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aBaseContent.length; nElm++) { oBaseContent.Internal_Content_Add(nCurPos, aBaseContent[nElm]); nCurPos++; } var oSubContent = oNary.getSubMathContent(); var aSubContent = MathContentFromJSON.call(this, oParsedNary["sub"]); nCurPos = 0; for (nElm = 0; nElm < aSubContent.length; nElm++) { oSubContent.Internal_Content_Add(nCurPos, aSubContent[nElm]); nCurPos++; } var oSupContent = oNary.getSupMathContent(); var aSupContent = MathContentFromJSON.call(this, oParsedNary["sup"]); nCurPos = 0; for (nElm = 0; nElm < aSupContent.length; nElm++) { oSupContent.Internal_Content_Add(nCurPos, aSupContent[nElm]); nCurPos++; } return oNary; } function EqArrayFromJSON(oParsedEqArray) { var oCtrlPr = oParsedEqArray["eqArrPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedEqArray["eqArrPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedEqArray["eqArrPr"]["ctrlPr"]); var nJcType = undefined; switch (oParsedEqArray["eqArrPr"]["baseJc"]) { case "center": nJcType = BASEJC_CENTER; break; case "top": nJcType = BASEJC_TOP; break; case "bottom": nJcType = BASEJC_BOTTOM; break; case "inline": nJcType = BASEJC_INLINE; break; case "inside": nJcType = BASEJC_INSIDE; break; case "outside": nJcType = BASEJC_OUTSIDE; break; } var oPr = { ctrPrp: oCtrlPr, baseJc: nJcType, maxDist: oParsedEqArray["eqArrPr"]["maxDist"], objDist: oParsedEqArray["eqArrPr"]["objDist"], rSp: oParsedEqArray["eqArrPr"]["rSp"], rSpRule: oParsedEqArray["eqArrPr"]["rSpRule"], row: oParsedEqArray["eqArrPr"]["row"], }; var oEqArray = new AscCommonWord.CEqArray(oPr); for (var Index = 0; Index < oPr.row; Index++) { var oMathContent = oEqArray.getElementMathContent(Index); var aMathContent = MathContentFromJSON.call(this, oParsedEqArray["e"][Index]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } } return oEqArray; } function DelimiterFromJSON(oParsedDelimiter) { var oCtrlPr = oParsedDelimiter["dPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedDelimiter["dPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedDelimiter["dPr"]["ctrlPr"]); var nShpType = oParsedDelimiter["dPr"]["shp"] === "centered" ? DELIMITER_SHAPE_CENTERED : DELIMITER_SHAPE_MATCH; var oPr = { ctrPrp: oCtrlPr, begChr: oParsedDelimiter["dPr"]["begChr"], endChr: oParsedDelimiter["dPr"]["endChr"], grow: oParsedDelimiter["dPr"]["grow"], sepChr: oParsedDelimiter["dPr"]["sepChr"], shp: nShpType, column: oParsedDelimiter["e"]["length"] }; var oDelimiter = new AscCommonWord.CDelimiter(oPr); for (var Index = 0; Index < oPr.column; Index++) { var oMathContent = oDelimiter.getElementMathContent(Index); var aMathContent = MathContentFromJSON.call(this, oParsedDelimiter["e"][Index]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } } return oDelimiter; } function MathFuncFromJSON(oParsedMathFunc) { var oCtrlPr = oParsedMathFunc["funcPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedMathFunc["funcPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedMathFunc["funcPr"]["ctrlPr"]); var oPr = { ctrPrp: oCtrlPr, }; var oMathFunc = new AscCommonWord.CMathFunc(oPr); var oMathNameContent = oMathFunc.getFName(); var aMathNameContent = MathContentFromJSON.call(this, oParsedMathFunc["fName"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathNameContent.length; nElm++) { oMathNameContent.Internal_Content_Add(nCurPos, aMathNameContent[nElm]); nCurPos++; } var oMathArgContent = oMathFunc.getArgument(); var aMathArgContent = MathContentFromJSON.call(this, oParsedMathFunc["e"]); nCurPos = 0; for (nElm = 0; nElm < aMathArgContent.length; nElm++) { oMathArgContent.Internal_Content_Add(nCurPos, aMathArgContent[nElm]); nCurPos++; } return oMathFunc; } function AccentFromJSON(oParsedAccent) { var oCtrlPr = oParsedAccent["accPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedAccent["accPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedAccent["accPr"]["ctrlPr"]); var oPr = { ctrPrp: oCtrlPr, chr: oParsedAccent["accPr"]["chr"] }; var oAccent = new CAccent(oPr); var oMathContent = oAccent.getBase(); var aMathContent = MathContentFromJSON.call(this, oParsedAccent["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oAccent; } function GroupCharacterFromJSON(oParsedGrpChr) { var nPos = oParsedGrpChr["groupChrPr"]["pos"] === "bot" ? LOCATION_BOT : LOCATION_TOP; var nVertJc = oParsedGrpChr["groupChrPr"]["vertJc"] === "top" ? VJUST_TOP : VJUST_BOT; var oCtrlPr = oParsedGrpChr["groupChrPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedGrpChr["groupChrPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedGrpChr["groupChrPr"]["ctrlPr"]); var oPr = { ctrPrp: oCtrlPr, chr: oParsedGrpChr["groupChrPr"]["chr"], pos: nPos, vertJc: nVertJc }; var oGroupCharacter = new CGroupCharacter(oPr); var oMathContent = oGroupCharacter.getBase(); var aMathContent = MathContentFromJSON.call(this, oParsedGrpChr["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oGroupCharacter; } function BorderBoxFromJSON(oParsedBorderBox) { var oCtrlPr = oParsedBorderBox["borderBoxPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedBorderBox["borderBoxPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedBorderBox["borderBoxPr"]["ctrlPr"]); var oPr = { ctrPrp: oCtrlPr, hideBot: oParsedBorderBox["borderBoxPr"]["hideBot"], hideLeft: oParsedBorderBox["borderBoxPr"]["hideLeft"], hideRight: oParsedBorderBox["borderBoxPr"]["hideRight"], hideTop: oParsedBorderBox["borderBoxPr"]["hideTop"], strikeBLTR: oParsedBorderBox["borderBoxPr"]["strikeBLTR"], strikeH: oParsedBorderBox["borderBoxPr"]["strikeH"], strikeTLBR: oParsedBorderBox["borderBoxPr"]["strikeTLBR"], strikeV: oParsedBorderBox["borderBoxPr"]["strikeV"] }; var oBorderBox = new CBorderBox(oPr); var oMathContent = oBorderBox.getBase(); var aMathContent = MathContentFromJSON.call(this, oParsedBorderBox["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oBorderBox; } function BoxFromJSON(oParsedBox) { var oCtrlPr = oParsedBox["boxPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedBox["boxPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedBox["boxPr"]["ctrlPr"]); var oPr = { ctrPrp: oCtrlPr, brk: oParsedBox["boxPr"]["brk"], aln: oParsedBox["boxPr"]["aln"], diff: oParsedBox["boxPr"]["diff"], noBreak: oParsedBox["boxPr"]["noBreak"], opEmu: oParsedBox["boxPr"]["opEmu"] }; var oBox = new CBox(oPr); var oMathContent = oBox.getBase(); var aMathContent = MathContentFromJSON.call(this, oParsedBox["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oBox; } function BarFromJSON(oParsedBar) { var oCtrlPr = oParsedBar["barPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedBar["barPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedBar["barPr"]["ctrlPr"]); var nPos = undefined; switch (oParsedBar["barPr"]["pos"]) { case "bot": nPos = LOCATION_BOT; break; case "top": nPos = LOCATION_TOP; break; } var oPr = { ctrPrp: oCtrlPr, pos: nPos }; var oBar = new CBar(oPr); var oMathContent = oBar.getBase(); var aMathContent = MathContentFromJSON.call(this, oParsedBar["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oBar; } function LimitFromJSON(oParsedLimit) { var nLimitType = oParsedLimit["type"] === "limLow" ? LIMIT_LOW : LIMIT_UP; var oParsedCtrlPr = nLimitType === LIMIT_LOW ? oParsedLimit["limLowPr"]["ctrlPr"] : oParsedLimit["limUppPr"]["ctrlPr"]; var oCtrlPr = oParsedCtrlPr["bFromDocument"] ? this.TextPrFromJSON(oParsedCtrlPr) : this.TextPrDrawingFromJSON(oParsedCtrlPr); var oPr = { ctrPrp: oCtrlPr, type: nLimitType }; var oLimit = new CLimit(oPr); var oMathFNameContent = oLimit.getFName(); var aMathFNameContent = MathContentFromJSON.call(this, oParsedLimit["e"]); var nCurPos = 0; for (var nElm = 0; nElm < aMathFNameContent.length; nElm++) { oMathFNameContent.Internal_Content_Add(nCurPos, aMathFNameContent[nElm]); nCurPos++; } var oMathIterContent = oLimit.getIterator(); var aMathIterContent = MathContentFromJSON.call(this, oParsedLimit["limit"]); nCurPos = 0; for (nElm = 0; nElm < aMathIterContent.length; nElm++) { oMathIterContent.Internal_Content_Add(nCurPos, aMathIterContent[nElm]); nCurPos++; } return oLimit; } function MathMatrixFromJSON(oParsedMatrix) { var oCtrlPr = oParsedMatrix["mPr"]["ctrlPr"]["bFromDocument"] ? this.TextPrFromJSON(oParsedMatrix["mPr"]["ctrlPr"]) : this.TextPrDrawingFromJSON(oParsedMatrix["mPr"]["ctrlPr"]); var nJcType = undefined; switch (oParsedMatrix["mPr"]["baseJc"]) { case "center": nJcType = BASEJC_CENTER; break; case "top": nJcType = BASEJC_TOP; break; case "bottom": nJcType = BASEJC_BOTTOM; break; case "inline": nJcType = BASEJC_INLINE; break; case "inside": nJcType = BASEJC_INSIDE; break; case "outside": nJcType = BASEJC_OUTSIDE; break; } var oPr = { ctrPrp: oCtrlPr, baseJc: nJcType, cGp: oParsedMatrix["mPr"]["cGp"], cGpRule: oParsedMatrix["mPr"]["cGpRule"], cSp: oParsedMatrix["mPr"]["cSp"], plcHide: oParsedMatrix["mPr"]["plcHide"], rSp: oParsedMatrix["mPr"]["rSp"], rSpRule: oParsedMatrix["mPr"]["rSpRule"], mcs: oParsedMatrix["mPr"]["mcs"], row: oParsedMatrix["mr"]["length"] }; var oMatrix = new CMathMatrix(oPr); var nRowsCount = oMatrix.getRowsCount(); var nColsCount = oMatrix.getColsCount(); for (var nRow = 0; nRow < nRowsCount; nRow++) { for (var nCell = 0; nCell < nColsCount; nCell++) { var oMathContent = oMatrix.getContentElement(nRow, nCell); var aMathContent = MathContentFromJSON.call(this, oParsedMatrix["mr"][nRow][nCell]); var nCurPos = 0; for (var nElm = 0; nElm < aMathContent.length; nElm++) { oMathContent.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } } } return oMatrix; } var aMathContent = MathContentFromJSON.call(this, oParsedParaMath["content"]); for (var nElm = 0; nElm < aMathContent.length; nElm++) { oParaMath.Root.Internal_Content_Add(nCurPos, aMathContent[nElm]); nCurPos++; } return oParaMath; }; ReaderFromJSON.prototype.RevisionFromJSON = function(oParsedChange, oElement, Value) { var oChange = new CRevisionsChange(); var oDocument = private_GetLogicDocument(); // change type var nChangeType = undefined; switch (oParsedChange["type"]) { case "unknown": nChangeType = Asc.c_oAscRevisionsChangeType.Unknown; break; case "textAdd": nChangeType = Asc.c_oAscRevisionsChangeType.TextAdd; break; case "textRem": nChangeType = Asc.c_oAscRevisionsChangeType.TextRem; break; case "paraAdd": nChangeType = Asc.c_oAscRevisionsChangeType.ParaAdd; break; case "paraRem": nChangeType = Asc.c_oAscRevisionsChangeType.ParaRem; break; case "textPr": nChangeType = Asc.c_oAscRevisionsChangeType.TextPr; break; case "paraPr": nChangeType = Asc.c_oAscRevisionsChangeType.ParaPr; break; case "tablePr": nChangeType = Asc.c_oAscRevisionsChangeType.TablePr; break; case "tableRowPr": nChangeType = Asc.c_oAscRevisionsChangeType.TableRowPr; break; case "rowsAdd": nChangeType = Asc.c_oAscRevisionsChangeType.RowsAdd; break; case "rowsRem": nChangeType = Asc.c_oAscRevisionsChangeType.RowsRem; break; case "moveMark": nChangeType = Asc.c_oAscRevisionsChangeType.MoveMark; break; case "moveMarkRemove": nChangeType = Asc.c_oAscRevisionsChangeType.MoveMarkRemove; break; } // move type var nMoveType = undefined; switch (oParsedChange["moveType"]) { case "noMove": nMoveType = Asc.c_oAscRevisionsMove.NoMove; break; case "moveTo": nMoveType = Asc.c_oAscRevisionsMove.MoveTo; break; case "moveFrom": nMoveType = Asc.c_oAscRevisionsMove.MoveFrom; break; } // value var changeValue = Value; if (!changeValue) { if (oParsedChange["value"]["type"] && oParsedChange["value"]["type"] === "textPr") changeValue = this.TextPrFromJSON(oParsedChange["value"]); else changeValue = oParsedChange["value"]; } // start pos var startPos; if (oParsedChange["start"]["data"]) { startPos = new AscWord.CParagraphContentPos() startPos.Data = oParsedChange["start"]["data"]; startPos.Depth = oParsedChange["start"]["depth"]; startPos.bPlaceholder = oParsedChange["start"]["bPlaceholder"]; } else startPos = oParsedChange["start"]; // end pos var endPos; if (oParsedChange["end"]["data"]) { endPos = new AscWord.CParagraphContentPos(); endPos.Data = oParsedChange["end"]["data"]; endPos.Depth = oParsedChange["end"]["depth"]; endPos.bPlaceholder = oParsedChange["end"]["bPlaceholder"]; } else endPos = oParsedChange["end"]; // color // oChange.UserColor.a = oParsedChange["userColor"]["a"]; // oChange.UserColor.g = oParsedChange["userColor"]["g"]; // oChange.UserColor.b = oParsedChange["userColor"]["b"]; // oChange.UserColor.r = oParsedChange["userColor"]["r"]; oChange.SetType(nChangeType); oChange.SetElement(oElement); oChange.put_Value(changeValue); oChange.put_StartPos(startPos); oChange.put_EndPos(endPos); oChange.SetMoveType(nMoveType); oChange.SetUserId(oParsedChange["userId"]); oChange.SetUserName(oParsedChange["author"]); oChange.SetDateTime(oParsedChange["date"]); oDocument.TrackRevisionsManager.AddChange(oElement.GetId(), oChange); }; ReaderFromJSON.prototype.SectPrFromJSON = function(oParsedSectPr) { var oSectPr = new AscWord.SectPr(private_GetLogicDocument()); var nSectionType = undefined; switch(oParsedSectPr["type"]) { case "nextPage": nSectionType = Asc.c_oAscSectionBreakType.NextPage; break; case "oddPage": nSectionType = Asc.c_oAscSectionBreakType.OddPage; break; case "evenPage": nSectionType = Asc.c_oAscSectionBreakType.EvenPage; break; case "continuous": nSectionType = Asc.c_oAscSectionBreakType.Continuous; break; case "nextColumn": nSectionType = Asc.c_oAscSectionBreakType.Column; break; } oParsedSectPr["footerReference"]["first"] && oSectPr.Set_Footer_First(this.FooterFromJSON(oParsedSectPr["footerReference"]["first"])); oParsedSectPr["footerReference"]["default"] && oSectPr.Set_Footer_Default(this.FooterFromJSON(oParsedSectPr["footerReference"]["default"])); oParsedSectPr["footerReference"]["even"] && oSectPr.Set_Footer_Even(this.FooterFromJSON(oParsedSectPr["footerReference"]["even"])); oParsedSectPr["headerReference"]["first"] && oSectPr.Set_Header_First(this.HeaderFromJSON(oParsedSectPr["headerReference"]["first"])); oParsedSectPr["headerReference"]["default"] && oSectPr.Set_Header_Default(this.HeaderFromJSON(oParsedSectPr["headerReference"]["default"])); oParsedSectPr["headerReference"]["even"] && oSectPr.Set_Header_Even(this.HeaderFromJSON(oParsedSectPr["headerReference"]["even"])); oParsedSectPr["cols"] != null && this.SectionColumnsFromJSON(oParsedSectPr["cols"], oSectPr); oParsedSectPr["endnotePr"] != null && this.EndnotePrFromJSON(oParsedSectPr["endnotePr"], oSectPr); oParsedSectPr["footnotePr"] != null && this.FootnotePrFromJSON(oParsedSectPr["footnotePr"], oSectPr); oParsedSectPr["lnNumType"] != null && this.LnNumTypeFromJSON(oParsedSectPr["lnNumType"], oSectPr); oParsedSectPr["pgBorders"] != null && this.PageBordersFromJSON(oParsedSectPr["pgBorders"], oSectPr); oParsedSectPr["pgMar"] != null && this.PageMarginsFromJSON(oParsedSectPr["pgMar"], oSectPr); oParsedSectPr["pgSz"] != null && this.PageSizeFromJSON(oParsedSectPr["pgSz"], oSectPr); oSectPr.SetPageNumStart(oParsedSectPr["pgNumType"]["start"]); oSectPr.SetGutterRTL(oParsedSectPr["rtlGutter"]); oSectPr.Set_TitlePage(oParsedSectPr["titlePg"]); oSectPr.Set_Type(nSectionType); return oSectPr; }; ReaderFromJSON.prototype.PageMarginsFromJSON = function(oParsedMargins, oParentSectPr) { oParsedMargins["footer"] != null && oParentSectPr.SetPageMarginFooter(private_Twips2MM(oParsedMargins["footer"])); oParsedMargins["header"] != null && oParentSectPr.SetPageMarginHeader(private_Twips2MM(oParsedMargins["header"])); oParentSectPr.SetPageMargins(private_Twips2MM(oParsedMargins["left"]), private_Twips2MM(oParsedMargins["top"]), private_Twips2MM(oParsedMargins["right"]), private_Twips2MM(oParsedMargins["bottom"])); oParsedMargins["gutter"] != null && oParentSectPr.SetGutter(private_Twips2MM(oParsedMargins["gutter"])); }; ReaderFromJSON.prototype.PageSizeFromJSON = function(oParsedPgSize, oParentSectPr) { var nOrientType = undefined; switch(oParsedPgSize["orinet"]) { case "portrait": nOrientType = Asc.c_oAscPageOrientation.PagePortrait; break; case "landscape": nOrientType = Asc.c_oAscPageOrientation.PageLandscape; break; } oParentSectPr.SetPageSize(private_Twips2MM(oParsedPgSize["w"]), private_Twips2MM(oParsedPgSize["h"])); nOrientType != null && oParentSectPr.SetOrientation(nOrientType); return oParentSectPr; }; ReaderFromJSON.prototype.PageBordersFromJSON = function(oParsedPgBorders, oParentSectPr) { var nDisplayType = undefined; switch(oParsedPgBorders["display"]) { case "allPages": nDisplayType = section_borders_DisplayAllPages; break; case "firstPage": nDisplayType = section_borders_DisplayFirstPage; break; case "notFirstPage": nDisplayType = section_borders_DisplayNotFirstPage; break; } oParsedPgBorders["bottom"] != null && oParentSectPr.Set_Borders_Bottom(this.DocBorderFromJSON(oParsedPgBorders["bottom"])); oParsedPgBorders["left"] != null && oParentSectPr.Set_Borders_Left(this.DocBorderFromJSON(oParsedPgBorders["left"])); oParsedPgBorders["right"] != null && oParentSectPr.Set_Borders_Right(this.DocBorderFromJSON(oParsedPgBorders["right"])); oParsedPgBorders["top"] != null && oParentSectPr.Set_Borders_Top(this.DocBorderFromJSON(oParsedPgBorders["top"])); nDisplayType != null && oParentSectPr.Set_Borders_Display(nDisplayType); oParentSectPr.SetBordersOffsetFrom(oParsedPgBorders["offsetFrom"] === "text" ? section_borders_OffsetFromText : section_borders_OffsetFromPage); oParentSectPr.Set_Borders_ZOrder(oParsedPgBorders["zOrder"] === "front" ? section_borders_ZOrderFront : section_borders_ZOrderBack); }; ReaderFromJSON.prototype.LnNumTypeFromJSON = function(oParsedLnNumType, oParentSectPr) { var nRestartType = undefined; switch(oParsedLnNumType["restart"]) { case "continuous": nRestartType = Asc.c_oAscLineNumberRestartType.Continuous; break; case "newPage": nRestartType = Asc.c_oAscLineNumberRestartType.NewPage; break; case "newSection": nRestartType = Asc.c_oAscLineNumberRestartType.NewSection; break; } oParentSectPr.SetLineNumbers(oParsedLnNumType["countBy"], private_Twips2MM(oParsedLnNumType["distance"]), oParsedLnNumType["start"], nRestartType); }; ReaderFromJSON.prototype.EndnotePrFromJSON = function(oParsedPr, oParentSectPr) { var nNumRestart = undefined; switch(oParsedPr["numRestart"]) { case "continuous": nNumRestart = section_footnote_RestartContinuous; break; case "eachPage": nNumRestart = section_footnote_RestartEachPage; break; case "eachSect": nNumRestart = section_footnote_RestartEachSect; break; } var nEndPos = undefined; switch(oParsedPr["pos"]) { case "docEnd": nEndPos = Asc.c_oAscEndnotePos.DocEnd; break; case "sectEnd": nEndPos = Asc.c_oAscEndnotePos.SectEnd; break; } oParsedPr["numFmt"] != null && oParentSectPr.SetEndnoteNumFormat(From_XML_c_oAscNumberingFormat(oParsedPr["numFmt"])); nNumRestart != null && oParentSectPr.SetEndnoteNumRestart(nNumRestart); oParsedPr["numStart"] != null && oParentSectPr.SetEndnoteNumStart(oParsedPr["numStart"]); nEndPos != null && oParentSectPr.SetEndnotePos(nEndPos); }; ReaderFromJSON.prototype.FootnotePrFromJSON = function(oParsedPr, oParentSectPr) { var nNumRestart = undefined; switch(oParsedPr["numRestart"]) { case "continuous": nNumRestart = section_footnote_RestartContinuous; break; case "eachPage": nNumRestart = section_footnote_RestartEachPage; break; case "eachSect": nNumRestart = section_footnote_RestartEachSect; break; } var nEndPos = undefined; switch(oParsedPr["pos"]) { case "beneathText": nEndPos = Asc.c_oAscFootnotePos.BeneathText; break; case "docEnd": nEndPos = Asc.c_oAscFootnotePos.DocEnd; break; case "pgBottom": nEndPos = Asc.c_oAscFootnotePos.PageBottom; break; case "sectEnd": nEndPos = Asc.c_oAscFootnotePos.SectEnd; break; } oParsedPr["numFmt"] != null && oParentSectPr.SetFootnoteNumFormat(From_XML_c_oAscNumberingFormat(oParsedPr["numFmt"])); nNumRestart != null && oParentSectPr.SetFootnoteNumRestart(nNumRestart); oParsedPr["numStart"] != null && oParentSectPr.SetFootnoteNumStart(oParsedPr["numStart"]); nEndPos != null && oParentSectPr.SetFootnotePos(nEndPos); }; ReaderFromJSON.prototype.SectionColumnsFromJSON = function(oParsedSectCols, oParentSectPr) { for (var nCol = 0; nCol < oParsedSectCols["col"].length; nCol++) oParentSectPr.Set_Columns_Col(nCol, private_Twips2MM(oParsedSectCols["col"][nCol]["w"]), private_Twips2MM(oParsedSectCols["col"][nCol]["space"])); oParsedSectCols["equalWidth"] != null && oParentSectPr.Set_Columns_EqualWidth(oParsedSectCols["equalWidth"]); oParsedSectCols["num"] != null && oParentSectPr.Set_Columns_Num(oParsedSectCols["num"]); oParsedSectCols["sep"] != null && oParentSectPr.Set_Columns_Sep(oParsedSectCols["sep"]); oParsedSectCols["space"] != null && oParentSectPr.Set_Columns_Space(private_Twips2MM(oParsedSectCols["space"])); }; ReaderFromJSON.prototype.HeaderFromJSON = function(oParsedHdr) { let oDocument = private_GetLogicDocument(); let oDrawingDocuemnt = private_GetDrawingDocument(); let oHdrFtrController = oDocument.GetHdrFtr(); let oHeader = new AscCommonWord.CHeaderFooter(oHdrFtrController, oDocument, oDrawingDocuemnt, AscCommon.hdrftr_Header); let oNewContent = this.DocContentFromJSON(oParsedHdr["content"], oHeader); //oHeader.Content.Copy2(this.DocContentFromJSON(oParsedHdr["content"], oHeader)); oHeader.Content.Internal_Content_RemoveAll(); for (let nIndex = 0; nIndex < oNewContent.Content.length; nIndex++) oHeader.Content.Internal_Content_Add(nIndex, oNewContent.Content[nIndex]); return oHeader; }; ReaderFromJSON.prototype.FooterFromJSON = function(oParsedHdr) { let oDocument = private_GetLogicDocument(); let oDrawingDocuemnt = private_GetDrawingDocument(); let oHdrFtrController = oDocument.GetHdrFtr(); let oFooter = new AscCommonWord.CHeaderFooter(oHdrFtrController, oDocument, oDrawingDocuemnt, AscCommon.hdrftr_Footer); let oNewContent = this.DocContentFromJSON(oParsedHdr["content"], oFooter); //oFooter.Content.Copy2(this.DocContentFromJSON(oParsedHdr["content"], oFooter)); oFooter.Content.Internal_Content_RemoveAll(); for (let nIndex = 0; nIndex < oNewContent.Content.length; nIndex++) oFooter.Content.Internal_Content_Add(nIndex, oNewContent.Content[nIndex]); return oFooter; }; ReaderFromJSON.prototype.FramePrFromJSON = function(oParsedFramePr) { var oFramePr = new CFramePr(); var nDropCapType = undefined; switch (oParsedFramePr["dropCap"]) { case "none": nDropCapType = Asc.c_oAscDropCap.None; break; case "drop": nDropCapType = Asc.c_oAscDropCap.Drop; break; case "margin": nDropCapType = Asc.c_oAscDropCap.Margin; break; } var nHAnchor = undefined; switch (oParsedFramePr["hAnchor"]) { case "margin": nHAnchor = Asc.c_oAscHAnchor.Margin; break; case "page": nHAnchor = Asc.c_oAscHAnchor.Page; break; case "text": nHAnchor = Asc.c_oAscHAnchor.Text; break; } var nVAnchor = undefined; switch (oParsedFramePr["vAnchor"]) { case "margin": nVAnchor = Asc.c_oAscHAnchor.Margin; break; case "page": nVAnchor = Asc.c_oAscHAnchor.Page; break; case "text": nVAnchor = Asc.c_oAscHAnchor.Text; break; } var nLineRule = undefined; switch (oParsedFramePr["hRule"]) { case "atLeast": nLineRule = Asc.linerule_AtLeast; break; case "auto": nLineRule = Asc.linerule_Auto; break; case "exact": nLineRule = Asc.linerule_Exact; break; } var nWrapType = undefined; switch (oParsedFramePr["wrap"]) { case "around": nWrapType = AscCommonWord.wrap_Around; break; case "auto": nWrapType = AscCommonWord.wrap_Auto; break; case "none": nWrapType = AscCommonWord.wrap_None; break; case "notBeside": nWrapType = AscCommonWord.wrap_NotBeside; break; case "through": nWrapType = AscCommonWord.wrap_Through; break; case "tight": nWrapType = AscCommonWord.wrap_Tight; break; } var nXAlign = undefined; switch (oParsedFramePr["xAlign"]) { case "center": nXAlign = Asc.c_oAscXAlign.Center; break; case "inside": nXAlign = Asc.c_oAscXAlign.Inside; break; case "left": nXAlign = Asc.c_oAscXAlign.Left; break; case "outside": nXAlign = Asc.c_oAscXAlign.Outside; break; case "right": nXAlign = Asc.c_oAscXAlign.Right; break; } var nYAlign = undefined; switch (oParsedFramePr["yAlign"]) { case Asc.c_oAscYAlign.Bottom: nYAlign = "bottom"; break; case Asc.c_oAscYAlign.Center: nYAlign = "center"; break; case Asc.c_oAscYAlign.Inline: nYAlign = "inline"; break; case Asc.c_oAscYAlign.Inside: nYAlign = "inside"; break; case Asc.c_oAscYAlign.Outside: nYAlign = "outside"; break; case Asc.c_oAscYAlign.Top: nYAlign = "top"; break; } oFramePr.DropCap = nDropCapType; oFramePr.H = oParsedFramePr["h"] !== undefined ? private_Twips2MM(oParsedFramePr["h"]) : oFramePr.H; oFramePr.HAnchor = nHAnchor; oFramePr.HRule = nLineRule; oFramePr.HSpace = oParsedFramePr["hSpace"] !== undefined ? private_Twips2MM(oParsedFramePr["hSpace"]) : oFramePr.HSpace; oFramePr.Lines = oParsedFramePr["lines"]; oFramePr.VAnchor = nVAnchor; oFramePr.VSpace = oParsedFramePr["vSpace"] !== undefined ? private_Twips2MM(oParsedFramePr["vSpace"]) : oFramePr.VSpace; oFramePr.W = oParsedFramePr["w"] !== undefined ? private_Twips2MM(oParsedFramePr["w"]) : oFramePr.W; oFramePr.Wrap = nWrapType; oFramePr.X = oParsedFramePr["x"] !== undefined ? private_Twips2MM(oParsedFramePr["x"]) : oFramePr.X; oFramePr.XAlign = nXAlign; oFramePr.Y = oParsedFramePr["y"] !== undefined ? private_Twips2MM(oParsedFramePr["y"]) : oFramePr.Y; oFramePr.YAlign = nYAlign; return oFramePr; }; ReaderFromJSON.prototype.NumPrFromJSON = function(oParsedNumPr, oPrevNumIdInfo) { if (oPrevNumIdInfo && oPrevNumIdInfo.sPrevCreatedNumId) { if (oParsedNumPr["numId"] === oPrevNumIdInfo.nNumId && oPrevNumIdInfo.sPrevCreatedNumId) { return new AscWord.NumPr(oPrevNumIdInfo.sPrevCreatedNumId, oParsedNumPr["ilvl"]); } } // numbering var sNumId = this.NumberingFromJSON(oParsedNumPr["numId"]); // тут создаем AbstrackNum и CNum if (sNumId == null) return undefined; var nNumLvl = oParsedNumPr["ilvl"]; if (oPrevNumIdInfo) { oPrevNumIdInfo.sPrevCreatedNumId = sNumId; oPrevNumIdInfo.nNumId = oParsedNumPr["numId"]; } if (nNumLvl == null) nNumLvl = undefined; return new AscWord.NumPr(sNumId, nNumLvl); }; ReaderFromJSON.prototype.ParaSpacingFromJSON = function(oParsedSpacing) { let oSpacing = new CParaSpacing(); if (oParsedSpacing["before"] != null) oSpacing.Before = private_Twips2MM(oParsedSpacing["before"]); if (oParsedSpacing["beforeAutoSpacing"] != null) oSpacing.BeforeAutoSpacing = oParsedSpacing["beforeAutoSpacing"] === "on" ? true : false; if (oParsedSpacing["after"] != null) oSpacing.After = private_Twips2MM(oParsedSpacing["after"]); if (oParsedSpacing["afterAutoSpacing"] != null) oSpacing.AfterAutoSpacing = oParsedSpacing["afterAutoSpacing"] === "on" ? true : false; switch (oParsedSpacing["lineRule"]) { case "atLeast": oSpacing.LineRule = linerule_AtLeast; if (oParsedSpacing["line"] != null) oSpacing.Line = private_Twips2MM(oParsedSpacing["line"]); break; case "auto": oSpacing.LineRule = linerule_Auto; if (oParsedSpacing["line"] != null) oSpacing.Line = oParsedSpacing["line"] / 240; break; case "exact": oSpacing.LineRule = linerule_Exact; if (oParsedSpacing["line"] != null) oSpacing.Line = private_Twips2MM(oParsedSpacing["line"]); break; } return oSpacing; }; ReaderFromJSON.prototype.ParaSpacingDrawingFromJSON = function(oParsedSpacing) { let SPACING_SCALE = 0.00352777778 let oRet = {val: null, valPct: null}; if (oParsedSpacing["spcPct"] != null) { oRet.valPct = oParsedSpacing["spcPct"] / 100000; } else if (oParsedSpacing["spcPts"] != null) { oRet.val = oParsedSpacing["spcPts"] * SPACING_SCALE; } return oRet; }; ReaderFromJSON.prototype.NumberingFromJSON = function(sNumId) { var oDocument = private_GetLogicDocument(); var oParsedNum = this.parsedNumbering && this.parsedNumbering["num"] ? this.parsedNumbering["num"][sNumId] : null; if (!oParsedNum) return null; var oParsedAbstrNum = this.parsedNumbering["abstractNum"][oParsedNum["abstractNumId"]]; var oAbstractNum = this.AbstractNumFromJSON(oParsedAbstrNum); var oNum = new CNum(private_GetLogicDocument().Numbering, oAbstractNum.GetId()); oNum = this.CNumFromJSON(oNum, oParsedNum["lvlOverride"]); return oDocument.Numbering.AddNum(oNum); }; ReaderFromJSON.prototype.AbstractNumFromJSON = function(oParsedAbstrNum) { var oDocument = private_GetLogicDocument(); var oAbstractNum = new AscWord.CAbstractNum(); var oTempLvl; for (var nLvl = 0; nLvl < oParsedAbstrNum["lvl"].length; nLvl++) { oTempLvl = this.NumLvlFromJSON(oParsedAbstrNum["lvl"][nLvl]); oAbstractNum.SetLvl(oParsedAbstrNum["lvl"][nLvl]["ilvl"], oTempLvl); } oParsedAbstrNum["numStyleLink"] != null && oAbstractNum.SetNumStyleLink(oParsedAbstrNum["numStyleLink"]); oParsedAbstrNum["styleLink"] != null && oAbstractNum.SetStyleLink(oParsedAbstrNum["styleLink"]); oDocument.Numbering.AddAbstractNum(oAbstractNum); return oAbstractNum; }; ReaderFromJSON.prototype.CNumFromJSON = function(oNum, arrLvlOverride) { for (var nLvl = 0; nLvl < arrLvlOverride; nLvl++) oNum.LvlOverride.push(new CLvlOverride(this.NumLvlFromJSON(arrLvlOverride[nLvl]["lvl"]), arrLvlOverride[nLvl]["ilvl"], arrLvlOverride[nLvl]["startOverride"])); return oNum; }; ReaderFromJSON.prototype.NumLvlFromJSON = function(oParsedNumLvl) { let oNumLvl = CNumberingLvl.FromJson(oParsedNumLvl); // style var oStyle = null; if (oParsedNumLvl["pStyle"] && this.RestoredStylesMap[oParsedNumLvl["pStyle"]]) oStyle = this.RestoredStylesMap[oParsedNumLvl["pStyle"]]; if (oStyle) this.PStyle = oStyle.Id; return oNumLvl; }; ReaderFromJSON.prototype.LvlTextItemsFromJSON = function(sParsedLvlText) { let aLvlTextItems = []; for (var nPos = 0; nPos < sParsedLvlText.length; nPos++) { if (sParsedLvlText[nPos] === "%") { aLvlTextItems.push(new CNumberingLvlTextNum(sParsedLvlText[nPos + 1] -1)); nPos += 1; } else aLvlTextItems.push(new CNumberingLvlTextString(sParsedLvlText[nPos])); } return aLvlTextItems; }; ReaderFromJSON.prototype.HyperlinkFromJSON = function(oParsedLink, oParentPara, notCompletedFields) { var aContent = oParsedLink["content"]; var oHyper = new AscCommonWord.ParaHyperlink(); // Заполняем гиперссылку полями if (undefined !== oParsedLink["anchor"] && null !== oParsedLink["anchor"]) { oHyper.SetAnchor(oParsedLink["anchor"]); oHyper.SetValue("") } else if (undefined != oParsedLink["value"]) { oHyper.SetValue(oParsedLink["value"]); oHyper.SetAnchor(""); } if (undefined != oParsedLink["tooltip"]) oHyper.SetToolTip(oParsedLink["tooltip"]); for (var nElm = 0; nElm < aContent.length; nElm++) { switch(aContent[nElm]["type"]) { case "run": case "mathRun": oHyper.AddToContent(oHyper.Content.length, this.ParaRunFromJSON(aContent[nElm], oParentPara, notCompletedFields)); } } return oHyper; }; ReaderFromJSON.prototype.InlineLvlSdtFromJSON = function(oParsedSdt, oParentPara, notCompletedFields) { if (!notCompletedFields) notCompletedFields = []; var oSdt = new AscCommonWord.CInlineLevelSdt(); var aContent = oParsedSdt["content"]; this.SdtPrFromJSON(oParsedSdt["sdtPr"], oSdt); for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "run": case "mathRun": oSdt.AddToContent(oSdt.Content.length, this.ParaRunFromJSON(aContent[nElm], oParentPara, notCompletedFields)); break; case "hyperlink": oSdt.AddToContent(oSdt.Content.length, this.HyperlinkFromJSON(aContent[nElm], notCompletedFields)); break; } } return oSdt; }; ReaderFromJSON.prototype.BlockLvlSdtFromJSON = function(oParsedSdt, oParent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { if (!notCompletedFields) notCompletedFields = []; if (!oMapCommentsInfo) oMapCommentsInfo = {}; if (!oMapBookmarksInfo) oMapBookmarksInfo = {}; let oSdt = new AscCommonWord.CBlockLevelSdt(private_GetLogicDocument(), oParent || private_GetLogicDocument()); this.SdtPrFromJSON(oParsedSdt["sdtPr"], oSdt); let oNewContent = this.DocContentFromJSON(oParsedSdt["sdtContent"], oSdt, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo); //oSdt.Content.Copy2(this.DocContentFromJSON(oParsedSdt["sdtContent"], oSdt, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo)); oSdt.Content.Internal_Content_RemoveAll(); for (let nIndex = 0; nIndex < oNewContent.Content.length; nIndex++) oSdt.Content.Internal_Content_Add(nIndex, oNewContent.Content[nIndex]); return oSdt; }; ReaderFromJSON.prototype.TableCellFromJSON = function(oParsedCell, oParentRow, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { let oCell = new CTableCell(oParentRow); oParsedCell["tcPr"] && oCell.Set_Pr(this.TableCellPrFromJSON(oParsedCell["tcPr"])); let oNewContent = this.DocContentFromJSON(oParsedCell["content"], oCell, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo); //oCell.Content.Copy2(this.DocContentFromJSON(oParsedCell["content"], oCell, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo)); oCell.Content.Internal_Content_RemoveAll(); for (let nIndex = 0; nIndex < oNewContent.Content.length; nIndex++) oCell.Content.Internal_Content_Add(nIndex, oNewContent.Content[nIndex]); return oCell; }; ReaderFromJSON.prototype.DrawingTableCellFromJSON = function(oParsedCell, oParentRow) { let oCell = new CTableCell(oParentRow); if (oParsedCell["gridSpan"] != null) oCell.Set_GridSpan(oParsedCell["gridSpan"]); if (oParsedCell["hMerge"] != null) oCell.hMerge = oParsedCell["hMerge"]; if (oParsedCell["rowSpan"] != null && oParsedCell["rowSpan"] > 1) oCell.SetVMerge(vmerge_Restart); if (oParsedCell["vMerge"] === true && oCell.Pr.VMerge != vmerge_Restart) oCell.SetVMerge(vmerge_Continue); let oTcPr = oParsedCell["tcPr"] ? this.DrawingTableCellPrFromJSON(oParsedCell["tcPr"]) : null; if (oTcPr) { oTcPr.Merge(oCell.Pr); oCell.Set_Pr(oTcPr); } let oNewContent = this.DocContentFromJSON(oParsedCell["content"], oCell); //oCell.Content.Copy2(this.DrawingDocContentFromJSON(oParsedCell["content"], oCell)); oCell.Content.Internal_Content_RemoveAll(); for (let nIndex = 0; nIndex < oNewContent.Content.length; nIndex++) oCell.Content.Internal_Content_Add(nIndex, oNewContent.Content[nIndex]); return oCell; }; ReaderFromJSON.prototype.TableCellPrFromJSON = function(oParsedPr) { var oTableCellPr = new CTableCellPr(); oTableCellPr.GridSpan = oParsedPr["gridSpan"]; oTableCellPr.HMerge = oParsedPr["hMerge"] ? (oParsedPr["hMerge"] === "continue" ? 2 : 1) : oTableCellPr.HMerge; oTableCellPr.VMerge = oParsedPr["vMerge"] ? (oParsedPr["vMerge"] === "continue" ? 2 : 1) : oTableCellPr.VMerge; oTableCellPr.NoWrap = oParsedPr["noWrap"]; oTableCellPr.Shd = oParsedPr["shd"] ? this.ShadeFromJSON(oParsedPr["shd"]) : oParsedPr["shd"]; if (oParsedPr["tcBorders"]["bottom"]) oTableCellPr.TableCellBorders.Bottom = this.DocBorderFromJSON(oParsedPr["tcBorders"]["bottom"]); if (oParsedPr["tcBorders"]["end"]) oTableCellPr.TableCellBorders.Right = this.DocBorderFromJSON(oParsedPr["tcBorders"]["end"]); if (oParsedPr["tcBorders"]["start"]) oTableCellPr.TableCellBorders.Left = this.DocBorderFromJSON(oParsedPr["tcBorders"]["start"]); if (oParsedPr["tcBorders"]["top"]) oTableCellPr.TableCellBorders.Top = this.DocBorderFromJSON(oParsedPr["tcBorders"]["top"]); if (oParsedPr["tcMar"]) { oTableCellPr.TableCellMar = {}; if (oParsedPr["tcMar"]["bottom"]) oTableCellPr.TableCellMar.Bottom = this.TableMeasurementFromJSON(oParsedPr["tcMar"]["bottom"]); if (oParsedPr["tcMar"]["right"]) oTableCellPr.TableCellMar.Right = this.TableMeasurementFromJSON(oParsedPr["tcMar"]["right"]); if (oParsedPr["tcMar"]["left"]) oTableCellPr.TableCellMar.Left = this.TableMeasurementFromJSON(oParsedPr["tcMar"]["left"]); if (oParsedPr["tcMar"]["top"]) oTableCellPr.TableCellMar.Top = this.TableMeasurementFromJSON(oParsedPr["tcMar"]["top"]); } if (oParsedPr["tcPrChange"]) oTableCellPr.PrChange = this.TableCellPrFromJSON(oParsedPr["tcPrChange"]); if (oParsedPr["tcW"]) oTableCellPr.TableCellW = this.TableMeasurementFromJSON(oParsedPr["tcW"]); // text direction var nTextDir = undefined; switch (oParsedPr["textDirection"]) { case "lrtb": nTextDir = textdirection_LRTB; break; case "tbrl": nTextDir = textdirection_TBRL; break; case "btlr": nTextDir = textdirection_BTLR; break; case "lrtbV": nTextDir = textdirection_LRTBV; break; case "tbrlV": nTextDir = textdirection_TBRLV; break; case "tblrV": nTextDir = textdirection_TBLRV; break; } oTableCellPr.TextDirection = nTextDir; // alignV var nVAlign = undefined; switch (oParsedPr["vAlign"]) { case "top": nVAlign = vertalignjc_Top; break; case "center": nVAlign = vertalignjc_Center; break; case "bottom": nVAlign = vertalignjc_Bottom; break; } oTableCellPr.VAlign = nVAlign; return oTableCellPr; }; ReaderFromJSON.prototype.DrawingTableCellPrFromJSON = function(oParsedPr) { let oCellPr = new CTableCellPr(); if (oParsedPr["anchor"] != null) { switch (oParsedPr["anchor"]) { case "b": { oCellPr.VAlign = vertalignjc_Bottom; break; } case "ctr": { oCellPr.VAlign = vertalignjc_Center; break; } case "dist": { oCellPr.VAlign = vertalignjc_Center; break; } case "just": { oCellPr.VAlign = vertalignjc_Center; break; } case "t": { oCellPr.VAlign = vertalignjc_Top; break; } } } if (oParsedPr["marB"] != null) { if(!oCellPr.TableCellMar) oCellPr.TableCellMar = {}; oCellPr.TableCellMar.Bottom = new CTableMeasurement(tblwidth_Mm, private_EMU2MM(oParsedPr["marB"])); } if (oParsedPr["marL"] != null) { if(!oCellPr.TableCellMar) oCellPr.TableCellMar = {}; oCellPr.TableCellMar.Left = new CTableMeasurement(tblwidth_Mm, private_EMU2MM(oParsedPr["marL"])); } if (oParsedPr["marR"] != null) { if(!oCellPr.TableCellMar) oCellPr.TableCellMar = {}; oCellPr.TableCellMar.Right = new CTableMeasurement(tblwidth_Mm, private_EMU2MM(oParsedPr["marR"])); } if (oParsedPr["marT"] != null) { if(!oCellPr.TableCellMar) oCellPr.TableCellMar = {}; oCellPr.TableCellMar.Top = new CTableMeasurement(tblwidth_Mm, private_EMU2MM(oParsedPr["marT"])); } if (oParsedPr["vert"]) { switch (oParsedPr["vert"]) { case "eaVert": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.TBRL; break; } case "horz": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.LRTB; break; } case "mongolianVert": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.TBRL; break; } case "vert": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.BTLR; break; } case "vert270": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.BTLR; break; } case "wordArtVert": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.TBRL; break; } case "wordArtVertRtl": { oCellPr.TextDirection = Asc.c_oAscCellTextDirection.TBRL; break; } } } if (oParsedPr["fill"]) { let oFill = this.FillFromJSON(oParsedPr["fill"]); oCellPr.Shd = new CDocumentShd(); oCellPr.Shd.Value = Asc.c_oAscShdClear; oCellPr.Shd.Unifill = oFill; } if (oParsedPr["lnB"]) { if(!oCellPr.TableCellBorders) { oCellPr.TableCellBorders = {}; } oCellPr.TableCellBorders.Bottom = readBorder.call(this, oParsedPr["lnB"]); } if (oParsedPr["lnL"]) { if(!oCellPr.TableCellBorders) { oCellPr.TableCellBorders = {}; } oCellPr.TableCellBorders.Left = readBorder.call(this, oParsedPr["lnL"]); } if (oParsedPr["lnR"]) { if(!oCellPr.TableCellBorders) { oCellPr.TableCellBorders = {}; } oCellPr.TableCellBorders.Right = readBorder.call(this, oParsedPr["lnR"]); } if (oParsedPr["lnT"]) { if(!oCellPr.TableCellBorders) { oCellPr.TableCellBorders = {}; } oCellPr.TableCellBorders.Top = readBorder.call(this, oParsedPr["lnT"]); } function readBorder(oParsedBdr) { let oLn = this.LnFromJSON(oParsedBdr); let border = new CDocumentBorder(); if(oLn.Fill) { border.Unifill = oLn.Fill; } border.Size = (oLn.w == null) ? 12700 : ((oLn.w) >> 0); border.Size /= 36000; border.Value = border_Single; return border; } return oCellPr; }; ReaderFromJSON.prototype.TableMeasurementFromJSON = function(oParsedObj) { // тут отсюда var nType = tblwidth_Auto; var nW = 0; switch (oParsedObj["type"]) { case "auto": nType = tblwidth_Auto; nW = 0; break; case "dxa": nType = tblwidth_Mm; nW = private_Twips2MM(oParsedObj["w"]) break; case "nil": nType = tblwidth_Nil; nW = 0; break; case "pct": nType = tblwidth_Pct; nW = oParsedObj["w"]; break; } return new CTableMeasurement(nType, nW); }; ReaderFromJSON.prototype.TableRowFromJSON = function(oParsedRow, oParentTable, nIndex, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { var oRow = new CTableRow(oParentTable); var aContent = oParsedRow["content"]; if (nIndex >= 0) oRow.Index = nIndex; // review info var nReviewType = undefined; switch (oParsedRow["reviewType"]) { case "common": nReviewType = reviewtype_Common; break; case "remove": nReviewType = reviewtype_Remove; break; case "add": nReviewType = reviewtype_Add; break; } var oReviewInfo = oParsedRow["reviewInfo"] ? this.ReviewInfoFromJSON(oParsedRow["reviewInfo"]) : oRow.ReviewInfo; oRow.SetReviewTypeWithInfo(nReviewType, oReviewInfo); oRow.Set_Pr(this.TableRowPrFromJSON(oParsedRow["trPr"])); for (var nCell = 0; nCell < aContent.length; nCell++) oRow.Add_Cell(nCell, oRow, this.TableCellFromJSON(aContent[nCell], oRow, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); return oRow; }; ReaderFromJSON.prototype.DrawingTableRowFromJSON = function(oParsedRow, oParentTable, nIndex) { var oRow = new CTableRow(oParentTable); var aContent = oParsedRow["content"]; if (nIndex >= 0) oRow.Index = nIndex; let fRowHeight = 5; if (oParsedRow["h"] != null) fRowHeight = private_EMU2MM(oParsedRow["h"]); let nCellIdx = 0; for (var nCell = 0; nCell < aContent.length; nCell++) { if (aContent[nCell]["type"] === "cellEmpty") continue; oRow.Add_Cell(nCellIdx++, oRow, this.DrawingTableCellFromJSON(aContent[nCell], oRow), false); } AscFormat.updateRowHeightAfterOpen(oRow, fRowHeight); return oRow; }; ReaderFromJSON.prototype.TableRowPrFromJSON = function(oParsedPr) { var oRowPr = new CTableRowPr(); oRowPr.CantSplit = oParsedPr["cantSplit"]; oRowPr.GridAfter = oParsedPr["gridAfter"]; oRowPr.GridBefore = oParsedPr["gridBefore"]; // spacing oRowPr.TableCellSpacing = typeof(oParsedPr["tblCellSpacing"]) === "number" ? private_Twips2MM(oParsedPr["tblCellSpacing"]) : oParsedPr["tblCellSpacing"]; // rowJc var nRowJc = undefined; switch (oParsedPr["jc"]) { case "start": nRowJc = align_Left; break; case "center": nRowJc = align_Center; break; case "end": nRowJc = align_Right; break; } oRowPr.Jc = nRowJc; // rowHeight var oRowHeight = undefined; if (oParsedPr["trHeight"]) { switch (oParsedPr["trHeight"]["hRule"]) { case "atLeast": oRowHeight = new CTableRowHeight(private_Twips2MM(oParsedPr["trHeight"]["val"]), linerule_AtLeast) break; case "auto": oRowHeight = new CTableRowHeight(0, linerule_Auto); break; case "exact": oRowHeight = new CTableRowHeight(private_Twips2MM(oParsedPr["trHeight"]["val"]), linerule_Exact) break; } } oRowPr.Height = oRowHeight; oRowPr.PrChange = oParsedPr["trPrChange"] ? this.TableRowPrFromJSON(oParsedPr["trPrChange"]) : oParsedPr["trPrChange"]; oRowPr.WAfter = oParsedPr["wAfter"] ? this.TableMeasurementFromJSON(oParsedPr["wAfter"]) : oParsedPr["wAfter"]; oRowPr.WBefore = oParsedPr["wBefore"] ? this.TableMeasurementFromJSON(oParsedPr["wBefore"]) : oParsedPr["wBefore"]; oRowPr.TableHeader = oParsedPr["tblHeader"]; return oRowPr; }; ReaderFromJSON.prototype.TableFromJSON = function(oParsedTable, oParent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { var aTableGrid = []; for (var nGrid = 0; nGrid < oParsedTable["tblGrid"].length; nGrid++) aTableGrid.push(private_Twips2MM(oParsedTable["tblGrid"][nGrid]["w"])); var oTable = new CTable(private_GetDrawingDocument(), oParent || private_GetLogicDocument(), true, 0, 0, aTableGrid, oParsedTable["bPresentation"]); var aContent = oParsedTable["content"]; // table prop. oTable.SetPr(this.TablePrFromJSON(oTable, oParsedTable["tblPr"])); // fill table content for (var nRow = 0; nRow < aContent.length; nRow++) oTable.private_AddRow(nRow, 0, false, this.TableRowFromJSON(aContent[nRow], oTable, nRow, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo)); // выставляем текущую ячейку oTable.CurCell = oTable.Content[0].Get_Cell(0); //oTable.Update_TableMarkupFromRuler(this.TableMarkupFromJSON(oParsedTable["tableMarkup"], oTable), true, 0); //oTable.Markup = this.TableMarkupFromJSON(oParsedTable["tableMarkup"], oTable); for (var nChange = 0; nChange < oParsedTable["changes"].length; nChange++) this.RevisionFromJSON(oParsedTable["changes"][nChange], oTable); return oTable; }; ReaderFromJSON.prototype.DrawingTableFromJSON = function(oParsedTable, oParentGrFrame) { var aTableGrid = []; for (var nGrid = 0; nGrid < oParsedTable["tblGrid"].length; nGrid++) aTableGrid.push(private_EMU2MM(oParsedTable["tblGrid"][nGrid]["w"])); var oTable = new CTable(private_GetDrawingDocument(), oParentGrFrame || null, false, 0, 0, aTableGrid, true); var aContent = oParsedTable["content"]; // table prop. oTable.Set_Pr(this.DrawingTablePrFromJSON(oTable, oParsedTable["tblPr"])); oTable.SetTableLayout(tbllayout_Fixed); // fill table content for (var nRow = 0; nRow < aContent.length; nRow++) oTable.private_AddRow(nRow, 0, false, this.DrawingTableRowFromJSON(aContent[nRow], oTable, nRow)); return oTable; }; ReaderFromJSON.prototype.TableMarkupFromJSON = function(oParsedMarkup, oParentTable) { var oMarkup = new AscCommon.CTableMarkup(oParentTable); oMarkup.Cols = oParsedMarkup["cols"]; oMarkup.CurCol = oParsedMarkup["curCol"]; oMarkup.CurRow = oParsedMarkup["curRow"]; oMarkup.Internal = { CellIndex: oParsedMarkup["internal"]["cellIndex"], PageNum: oParsedMarkup["internal"]["pageNum"], RowIndex: oParsedMarkup["internal"]["rowIndex"] } oMarkup.Margins = oParsedMarkup["margins"]; oMarkup.Rows = oParsedMarkup["rows"]; oMarkup.TransformX = oParsedMarkup["transformX"]; oMarkup.TransformY = oParsedMarkup["transformY"]; oMarkup.X = oParsedMarkup["x"]; return oMarkup; }; ReaderFromJSON.prototype.TablePrFromJSON = function(oParentTable, oParsedPr) { var oTablePr = new CTablePr(); oTablePr.TableStyleColBandSize = oParsedPr["tblStyleColBandSize"]; oTablePr.TableStyleRowBandSize = oParsedPr["tblStyleRowBandSize"]; // jc var nJc = undefined; switch (oParsedPr["jc"]) { case "start": nJc = AscCommon.align_Left; break; case "center": nJc = AscCommon.align_Center; break; case "end": nJc = AscCommon.align_Right; break; } oTablePr.Jc = nJc; oTablePr.Shd = oParsedPr["shd"] ? this.ShadeFromJSON(oParsedPr["shd"]) : oParsedPr["shd"]; // borders if (oParsedPr["tblBorders"]["bottom"]) oTablePr.TableBorders.Bottom = this.DocBorderFromJSON(oParsedPr["tblBorders"]["bottom"]); if (oParsedPr["tblBorders"]["end"]) oTablePr.TableBorders.Right = this.DocBorderFromJSON(oParsedPr["tblBorders"]["end"]); if (oParsedPr["tblBorders"]["insideH"]) oTablePr.TableBorders.InsideH = this.DocBorderFromJSON(oParsedPr["tblBorders"]["insideH"]); if (oParsedPr["tblBorders"]["insideV"]) oTablePr.TableBorders.InsideV = this.DocBorderFromJSON(oParsedPr["tblBorders"]["insideV"]); if (oParsedPr["tblBorders"]["start"]) oTablePr.TableBorders.Left = this.DocBorderFromJSON(oParsedPr["tblBorders"]["start"]); if (oParsedPr["tblBorders"]["top"]) oTablePr.TableBorders.Top = this.DocBorderFromJSON(oParsedPr["tblBorders"]["top"]); // margins if (oParsedPr["tblCellMar"]) { if (oParsedPr["tblCellMar"]["bottom"] != null) oTablePr.TableCellMar.Bottom = this.TableMeasurementFromJSON(oParsedPr["tblCellMar"]["bottom"]); if (oParsedPr["tblCellMar"]["left"] != null) oTablePr.TableCellMar.Left = this.TableMeasurementFromJSON(oParsedPr["tblCellMar"]["left"]); if (oParsedPr["tblCellMar"]["right"] != null) oTablePr.TableCellMar.Right = this.TableMeasurementFromJSON(oParsedPr["tblCellMar"]["right"]); if (oParsedPr["tblCellMar"]["top"] != null) oTablePr.TableCellMar.Top = this.TableMeasurementFromJSON(oParsedPr["tblCellMar"]["top"]); } if (oParsedPr["tblCellSpacing"] != null) oTablePr.TableCellSpacing = private_Twips2MM(oParsedPr["tblCellSpacing"]); if (oParsedPr["tblInd"] != null) oTablePr.TableInd = private_Twips2MM(oParsedPr["tblInd"]); if (oParsedPr["tblW"] != null) oTablePr.TableW = this.TableMeasurementFromJSON(oParsedPr["tblW"]); oTablePr.TableLayout = oParsedPr["tblLayout"] == undefined ? oParsedPr["tblLayout"] : (oParsedPr["tblLayout"] === "fixed" ? tbllayout_Fixed : tbllayout_AutoFit); oTablePr.TableDescription = oParsedPr["tblDescription"]; oTablePr.TableCaption = oParsedPr["tblCaption"]; var oPrChane = oParsedPr["tblPrChange"] ? this.TablePrFromJSON(oParentTable, oParsedPr["tblPrChange"]) : oParsedPr["tblPrChange"]; var oReviewInfo = oParsedPr["reviewInfo"] ? this.ReviewInfoFromJSON(oParsedPr["reviewInfo"]) : oTablePr.ReviewInfo; oPrChane && oReviewInfo && oTablePr.SetPrChange(oPrChane, oReviewInfo); // if oParentTalbe is exist if (oParentTable) { oParsedPr["tblOverlap"] === "overlap" ? oParentTable.Set_AllowOverlap(true) : oParentTable.Set_AllowOverlap(false); oParentTable.Inline !== undefined && oParentTable.Set_Inline(oParsedPr["inline"]); if (oParsedPr["tblLook"]) { var oNewLook = new AscCommon.CTableLook(oParsedPr["tblLook"]["firstColumn"], oParsedPr["tblLook"]["firstRow"], oParsedPr["tblLook"]["lastColumn"], oParsedPr["tblLook"]["lastRow"], !oParsedPr["tblLook"]["noHBand"], !oParsedPr["tblLook"]["noVBand"]); oParentTable.Set_TableLook(oNewLook); } // position prop if (oParsedPr["tblpPr"]) { // hAnchor var nHorAnchor = undefined; switch (oParsedPr["tblpPr"]["horzAnchor"]) { case "margin": nHorAnchor = Asc.c_oAscHAnchor.Margin; break; case "text": nHorAnchor = Asc.c_oAscHAnchor.Text; break; case "page": nHorAnchor = Asc.c_oAscHAnchor.Page; break; } // vAnchor var nVerAnchor = undefined; switch (oParsedPr["tblpPr"]["vertAnchor"]) { case "margin": nVerAnchor = Asc.c_oAscHAnchor.Margin; break; case "text": nVerAnchor = Asc.c_oAscHAnchor.Text; break; case "page": nVerAnchor = Asc.c_oAscHAnchor.Page; break; } // alignH var nHorAlign = undefined; switch (oParsedPr["tblpPr"]["tblpXSpec"]) { case "center": nHorAlign = Asc.c_oAscXAlign.Center; break; case "inside": nHorAlign = Asc.c_oAscXAlign.Inside; break; case "left": nHorAlign = Asc.c_oAscXAlign.Left; break; case "outside": nHorAlign = Asc.c_oAscXAlign.Outside; break; case "right": nHorAlign = Asc.c_oAscXAlign.Right; break; } // alignV var nVerAlign = undefined; switch (oParsedPr["tblpPr"]["tblpYSpec"]) { case "bottom": nVerAlign = Asc.c_oAscYAlign.Bottom; break; case "center": nVerAlign = Asc.c_oAscYAlign.Center; break; case "inline": nVerAlign = Asc.c_oAscYAlign.Inline; break; case "inside": nVerAlign = Asc.c_oAscYAlign.Inside; break; case "outside": nVerAlign = Asc.c_oAscYAlign.Outside; break; case "top": nVerAlign = Asc.c_oAscYAlign.Top; break; } oParentTable.Set_PositionH(nHorAnchor, nHorAlign != undefined, nHorAlign == undefined ? private_Twips2MM(oParsedPr["tblpPr"]["tblpX"]) : nHorAlign); oParentTable.Set_PositionV(nVerAnchor, nVerAlign != undefined, nVerAlign == undefined ? private_Twips2MM(oParsedPr["tblpPr"]["tblpY"]) : nVerAlign); oParentTable.Set_Distance(private_Twips2MM(oParsedPr["tblpPr"]["leftFromText"]), private_Twips2MM(oParsedPr["tblpPr"]["topFromText"]), private_Twips2MM(oParsedPr["tblpPr"]["rightFromText"]), private_Twips2MM(oParsedPr["tblpPr"]["bottomFromText"])); } // style if (oParsedPr["tblStyle"]) { var oStyle = null; if (this.RestoredStylesMap[oParsedPr["tblStyle"]]) { oStyle = this.RestoredStylesMap[oParsedPr["tblStyle"]] oParentTable.Set_TableStyle(oStyle.Id); } } } return oTablePr; }; ReaderFromJSON.prototype.DrawingTablePrFromJSON = function(oParentTable, oParsedPr) { var oTablePr = new CTablePr(); let oTableLook = null; if (oParsedPr["bandCol"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.BandVer = oParsedPr["bandCol"]; } if (oParsedPr["bandRow"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.BandHor = oParsedPr["bandRow"]; } if (oParsedPr["firstCol"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.FirstCol = oParsedPr["firstCol"]; } if (oParsedPr["firstRow"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.FirstRow = oParsedPr["firstRow"]; } if (oParsedPr["lastCol"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.LastCol = oParsedPr["lastCol"]; } if (oParsedPr["lastRow"] != null) { if(!oTableLook) { oTableLook = new AscCommon.CTableLook(); } oTableLook.LastRow = oParsedPr["lastRow"]; } if (oParentTable && oTableLook) { oParentTable.Set_TableLook(oTableLook); } if (oParsedPr["fill"]) { let oFill = this.FillFromJSON(oParsedPr["fill"]); oTablePr.Shd = new CDocumentShd(); oTablePr.Shd.Value = Asc.c_oAscShdClear; oTablePr.Shd.Unifill = oFill; } if (oParsedPr["tblStyle"] != null && this.RestoredStylesMap[oParsedPr["tblStyle"]] != null) { let oStyle = this.RestoredStylesMap[oParsedPr["tblStyle"]]; oParentTable.Set_TableStyle2(oStyle.Id) } return oTablePr; }; ReaderFromJSON.prototype.DocContentFromJSON = function(oParsedDocContent, oParent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { var oDocContent = new AscCommonWord.CDocumentContent(oParent || private_GetLogicDocument(), private_GetDrawingDocument(), 0, 0, 0, 0, true, false, oParsedDocContent["bPresentation"]); var aContent = oParsedDocContent["content"]; if (!notCompletedFields) notCompletedFields = []; if (!oMapCommentsInfo) oMapCommentsInfo = {}; if (!oMapBookmarksInfo) oMapBookmarksInfo = {}; var oPrevNumIdInfo = {}; for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "paragraph": oDocContent.AddToContent(oDocContent.Content.length, this.ParagraphFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo, oPrevNumIdInfo), false); break; case "table": oDocContent.AddToContent(oDocContent.Content.length, this.TableFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; case "blockLvlSdt": oDocContent.AddToContent(oDocContent.Content.length, this.BlockLvlSdtFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; } } if (oDocContent.Content.length > 1) // удаляем параграф, который добавляется при создании CDocumentContent oDocContent.RemoveFromContent(0, 1); return oDocContent; }; ReaderFromJSON.prototype.ContentFromJSON = function(oParsedDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { var aContent = oParsedDocContent; var aResult = []; var oDocument = private_GetLogicDocument() if (!notCompletedFields) notCompletedFields = []; if (!oMapCommentsInfo) oMapCommentsInfo = {}; if (!oMapBookmarksInfo) oMapBookmarksInfo = {}; var oPrevNumIdInfo = {}; for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "paragraph": aResult.push(this.ParagraphFromJSON(aContent[nElm], oDocument, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo, oPrevNumIdInfo)); break; case "table": aResult.push(this.TableFromJSON(aContent[nElm], oDocument, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo)); break; case "blockLvlSdt": aResult.push(this.BlockLvlSdtFromJSON(aContent[nElm], oDocument, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo)); break; } } return aResult; }; ReaderFromJSON.prototype.DrawingDocContentFromJSON = function(oParsedDocContent, oParent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo) { var oDocContent = new AscFormat.CDrawingDocContent(oParent ? oParent : private_GetLogicDocument(), private_GetDrawingDocument(), 0, 0, 0, 0, true, false, false); var aContent = oParsedDocContent["content"]; if (!notCompletedFields) notCompletedFields = []; if (!oMapCommentsInfo) oMapCommentsInfo = {}; if (!oMapBookmarksInfo) oMapBookmarksInfo = {}; var oPrevNumIdInfo = {}; for (var nElm = 0; nElm < aContent.length; nElm++) { switch (aContent[nElm]["type"]) { case "paragraph": oDocContent.AddToContent(oDocContent.Content.length, this.ParagraphFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo, oPrevNumIdInfo), false); break; case "table": oDocContent.AddToContent(oDocContent.Content.length, this.TableFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; case "blockLvlSdt": oDocContent.AddToContent(oDocContent.Content.length, this.BlockLvlSdtFromJSON(aContent[nElm], oDocContent, notCompletedFields, oMapCommentsInfo, oMapBookmarksInfo), false); break; } } if (oDocContent.Content.length > 1) // удаляем параграф, который добавляется при создании CDocumentContent oDocContent.RemoveFromContent(0, 1); return oDocContent; }; ReaderFromJSON.prototype.SdtPrFromJSON = function(oParsedSdtPr, oParentSdt) { var oTempListItem; if (oParsedSdtPr["alias"] != null) oParentSdt.SetAlias(oParsedSdtPr["alias"]); if (oParsedSdtPr["appearance"]) oParentSdt.SetAppearance(FromXml_ST_SdtAppearance(oParsedSdtPr["appearance"])); if (oParsedSdtPr["color"]) oParentSdt.SetColor(this.ColorFromJSON(oParsedSdtPr["color"])); // comboboxPr if (oParsedSdtPr["comboBox"]) { var oComboboxPr = new AscWord.CSdtComboBoxPr(); oTempListItem = null; oComboboxPr.LastValue = oParsedSdtPr["comboBox"]["lastValue"]; for (var nItem = 0; nItem < oParsedSdtPr["comboBox"]["listItem"].length; nItem++) { oTempListItem = new AscWord.CSdtListItem(); oTempListItem.DisplayText = oParsedSdtPr["comboBox"]["listItem"][nItem]["displayText"]; oTempListItem.Value = oParsedSdtPr["comboBox"]["listItem"][nItem]["value"]; oComboboxPr.ListItems.push(oTempListItem); } oParentSdt.SetComboBoxPr(oComboboxPr); } // date if (oParsedSdtPr["date"]) { var oDate = new AscWord.CSdtDatePickerPr(); oDate.FullDate = oParsedSdtPr["date"]["fullDate"]; oDate.LangId = Asc.g_oLcidNameToIdMap[oParsedSdtPr["date"]["lid"]]; oDate.DateFormat = oParsedSdtPr["date"]["dateFormat"]; oDate.Calendar = FromXml_ST_CalendarType(oParsedSdtPr["date"]["calendar"]); oParentSdt.SetDatePickerPr(oDate); } // docPartObj if (oParsedSdtPr["docPartObj"]) oParentSdt.SetDocPartObj(oParsedSdtPr["docPartObj"]["docPartCategory"], oParsedSdtPr["docPartObj"]["docPartGallery"], oParsedSdtPr["docPartObj"]["docPartUnique"]); // dropdown if (oParsedSdtPr["comboBox"]) { var oDropDownPr = new AscWord.CSdtComboBoxPr(); oTempListItem = null; oDropDownPr.LastValue = oParsedSdtPr["dropDownList"]["lastValue"]; for (var nItem = 0; nItem < oParsedSdtPr["dropDownList"]["listItem"].length; nItem++) { oTempListItem = new AscWord.CSdtListItem(); oTempListItem.DisplayText = oParsedSdtPr["dropDownList"]["listItem"][nItem]["displayText"]; oTempListItem.Value = oParsedSdtPr["dropDownList"]["listItem"][nItem]["value"]; oDropDownPr.ListItems.push(oTempListItem); } oParentSdt.SetDropDownListPr(oDropDownPr); } if (oParsedSdtPr["equation"] != null) oParentSdt.SetContentControlEquation(oParsedSdtPr["equation"]); if (oParsedSdtPr["id"] != null) oParentSdt.SetContentControlId(oParsedSdtPr["id"]); if (oParsedSdtPr["label"] != null) oParentSdt.SetLabel(oParsedSdtPr["label"]); if (oParsedSdtPr["lock"] != null) oParentSdt.SetContentControlLock(FromXml_ST_Lock(oParsedSdtPr["lock"])); if (oParsedSdtPr["picture"] != null) oParentSdt.SetPicturePr(oParsedSdtPr["picture"]); if (oParsedSdtPr["placeholder"] != null) oParentSdt.SetPlaceholder(oParsedSdtPr["placeholder"]["docPart"]); if (oParsedSdtPr["rPr"] != null) oParentSdt.SetDefaultTextPr(this.TextPrFromJSON(oParsedSdtPr["rPr"])); if (oParsedSdtPr["showingPlcHdr"] != null) oParentSdt.SetShowingPlcHdr(oParsedSdtPr["showingPlcHdr"]); if (oParsedSdtPr["tag"] != null) oParentSdt.SetTag(oParsedSdtPr["tag"]); if (oParsedSdtPr["temporary"] != null) oParentSdt.SetContentControlTemporary(oParsedSdtPr["temporary"]); }; ReaderFromJSON.prototype.TabsFromJSON = function(aParsedTabs) { let oTabs = new CParaTabs(); let nPos; for (var nTab = 0; nTab < aParsedTabs.length; nTab++) { nPos = private_Twips2MM(aParsedTabs[nTab]["pos"]); oTabs.Tabs.push(new CParaTab(FromXml_ST_TabJc(aParsedTabs[nTab]["val"]), nPos, FromXml_ST_TabTlc(aParsedTabs[nTab]["leader"]))); } return oTabs; }; ReaderFromJSON.prototype.TabsDrawingFromJSON = function(aParsedTabs) { let oTabs = new CParaTabs(); let nPos, nValue; for (var nTab = 0; nTab < aParsedTabs.length; nTab++) { switch (aParsedTabs[nTab]["algn"]) { case "ctr": nValue = tab_Center; break; case "r": nValue = tab_Right; break; default: nValue = tab_Left; break; } nPos = private_EMU2MM(aParsedTabs[nTab]["pos"]); oTabs.Tabs.push(new CParaTab(nValue, nPos)); } return oTabs; }; ReaderFromJSON.prototype.DocBorderFromJSON = function(oParsed) { var oBorder = new CDocumentBorder(); oBorder.Color.r = oParsed["color"]["r"]; oBorder.Color.g = oParsed["color"]["g"]; oBorder.Color.b = oParsed["color"]["b"]; oBorder.Color.Auto = oParsed["color"]["auto"]; oBorder.setSizeIn8Point(oParsed["sz"]); oBorder.setSpaceInPoint(oParsed["space"]); oBorder.Value = oParsed["value"] === "none" ? border_None : border_Single; oBorder.LineRef = oParsed["lineRef"] ? this.StyleRefFromJSON(oParsed["lineRef"]) : oParsed["lineRef"]; oBorder.Unifill = oParsed["themeColor"] ? this.FillFromJSON(oParsed["themeColor"]) : oParsed["themeColor"]; return oBorder; }; ReaderFromJSON.prototype.StyleRefFromJSON = function(oParsedRef) { var oStyleRefObj = new AscFormat.StyleRef(); oStyleRefObj.idx = oParsedRef["idx"]; oStyleRefObj.Color = oParsedRef["color"] ? this.ColorFromJSON(oParsedRef["color"]) : oStyleRefObj.Color; return oStyleRefObj; }; ReaderFromJSON.prototype.FontRefFromJSON = function(oParsedRef) { var oFontRefObj = new AscFormat.FontRef(); oFontRefObj.idx = oParsedRef["idx"]; oFontRefObj.Color = oParsedRef["color"] ? this.ColorFromJSON(oParsedRef["color"]) : oFontRefObj.Color; return oFontRefObj; }; ReaderFromJSON.prototype.FillFromJSON = function(oParsedFill) { var oFillObj = new AscFormat.CUniFill(); if (oParsedFill["type"]) { switch (oParsedFill["fill"]["type"]) { case "none": oFillObj.fill = null; break; case "solid": oFillObj.fill = new AscFormat.CSolidFill(); oFillObj.fill.color = this.ColorFromJSON(oParsedFill["fill"]["color"]); break; case "blipFill": oFillObj.fill = this.BlipFillFromJSON(oParsedFill["fill"]); break; case "noFill": oFillObj.fill = new AscFormat.CNoFill(); break; case "gradFill": oFillObj.fill = this.GradFillFromJSON(oParsedFill["fill"]); break; case "pattFill": oFillObj.fill = this.PattFillFromJSON(oParsedFill["fill"]); break; case "grp": oFillObj.fill = new AscFormat.CGrpFill(); break; } } var nFillType = -1; switch (oParsedFill["fillType"]) { case "none": nFillType = Asc.c_oAscFill.FILL_TYPE_NONE; break; case "blip": nFillType = Asc.c_oAscFill.FILL_TYPE_BLIP; break; case "noFill": nFillType = Asc.c_oAscFill.FILL_TYPE_NOFILL; break; case "solid": nFillType = Asc.c_oAscFill.FILL_TYPE_SOLID; break; case "grad": nFillType = Asc.c_oAscFill.FILL_TYPE_GRAD; break; case "patt": nFillType = Asc.c_oAscFill.FILL_TYPE_PATT; break; case "grp": nFillType = Asc.c_oAscFill.FILL_TYPE_GRP; break; } oFillObj.transparent = oParsedFill["transparent"]; if (nFillType !== -1) oFillObj.type = nFillType; return oFillObj; }; ReaderFromJSON.prototype.GradFillFromJSON = function(oParsedGradFill) { var oGradFill = new AscFormat.CGradFill(); for (var nGs = 0; nGs < oParsedGradFill["gsLst"].length; nGs++) oGradFill.colors.push(this.GradStopFromJSON(oParsedGradFill["gsLst"][nGs])); if (oParsedGradFill["lin"]) { oGradFill.lin = new AscFormat.GradLin(); oGradFill.lin.angle = oParsedGradFill["lin"]["ang"]; oGradFill.lin.scale = oParsedGradFill["lin"]["scaled"]; } if (oParsedGradFill["path"]) { oGradFill.path = new AscFormat.GradPath(); var nPathShadeType = undefined; if (oGradFill.path) { switch(oParsedGradFill["path"]["path"]) { case "circle": nPathShadeType = 0; break; case "rect": nPathShadeType = 1; break; case "shape": nPathShadeType = 2; break; } } oGradFill.path.path = nPathShadeType; if (oGradFill.path.fillToRect) { oGradFill.rect = new AscFormat.CSrcRect(); oGradFill.rect.b = oParsedGradFill["path"]["fillToRect"]["b"]; oGradFill.rect.l = oParsedGradFill["path"]["fillToRect"]["l"]; oGradFill.rect.r = oParsedGradFill["path"]["fillToRect"]["r"]; oGradFill.rect.t = oParsedGradFill["path"]["fillToRect"]["t"]; } } if (oParsedGradFill["rotWithShape"] != null) oGradFill.rotateWithShape = oParsedGradFill["rotWithShape"]; return oGradFill; }; ReaderFromJSON.prototype.GradStopFromJSON = function(oParsedGradStop) { var oGs = new AscFormat.CGs(); oGs.color = this.ColorFromJSON(oParsedGradStop["color"]); oGs.pos = oParsedGradStop["pos"]; return oGs; }; ReaderFromJSON.prototype.PattFillFromJSON = function(oParsedPattFill) { var oPattFill = new AscFormat.CPattFill(); oPattFill.bgClr = oParsedPattFill["bgClr"] ? this.ColorFromJSON(oParsedPattFill["bgClr"]) : oPattFill.bgClr; oPattFill.fgClr = oParsedPattFill["fgClr"] ? this.ColorFromJSON(oParsedPattFill["fgClr"]) : oPattFill.fgClr; oPattFill.ftype = this.GetPresetNumType(oParsedPattFill["prst"]); return oPattFill; }; ReaderFromJSON.prototype.ColorFromJSON = function(oParsedColor) { var oRGBA = oParsedColor["rgba"] ? { R: oParsedColor["rgba"]["red"], G: oParsedColor["rgba"]["green"], B: oParsedColor["rgba"]["blue"], A: oParsedColor["rgba"]["alpha"] } : oParsedColor["rgba"]; var oColorObj = new AscFormat.CUniColor(); oColorObj.RGBA = oRGBA; if (oParsedColor["color"] && oParsedColor["color"]["type"]) { switch (oParsedColor["color"]["type"]) { case "none": oColorObj.color = null; break; case "srgb": { oColorObj.color = new AscFormat.CRGBColor(); oColorObj.color.RGBA.R = oParsedColor["color"]["rgba"]["red"]; oColorObj.color.RGBA.G = oParsedColor["color"]["rgba"]["green"]; oColorObj.color.RGBA.B = oParsedColor["color"]["rgba"]["blue"]; oColorObj.color.RGBA.A = oParsedColor["color"]["rgba"]["alpha"]; break; } case "prst": { oColorObj.color = new AscFormat.CPrstColor(); oColorObj.color.RGBA.R = oParsedColor["color"]["rgba"]["red"]; oColorObj.color.RGBA.G = oParsedColor["color"]["rgba"]["green"]; oColorObj.color.RGBA.B = oParsedColor["color"]["rgba"]["blue"]; oColorObj.color.RGBA.A = oParsedColor["color"]["rgba"]["alpha"]; oColorObj.color.id = oParsedColor["color"]["id"]; break; } case "scheme": { oColorObj.color = new AscFormat.CSchemeColor(); oColorObj.color.RGBA.R = oParsedColor["color"]["rgba"]["red"]; oColorObj.color.RGBA.G = oParsedColor["color"]["rgba"]["green"]; oColorObj.color.RGBA.B = oParsedColor["color"]["rgba"]["blue"]; oColorObj.color.RGBA.A = oParsedColor["color"]["rgba"]["alpha"]; oColorObj.color.id = oParsedColor["color"]["id"]; break; } case "sys": { oColorObj.color = new AscFormat.CSysColor(); oColorObj.color.RGBA.R = oParsedColor["color"]["rgba"]["red"]; oColorObj.color.RGBA.G = oParsedColor["color"]["rgba"]["green"]; oColorObj.color.RGBA.B = oParsedColor["color"]["rgba"]["blue"]; oColorObj.color.RGBA.A = oParsedColor["color"]["rgba"]["alpha"]; oColorObj.color.id = oParsedColor["color"]["id"]; break; } case "style": { oColorObj.color = new AscFormat.CStyleColor(); oColorObj.color.bAuto = oParsedColor["color"]["auto"]; oColorObj.color.val = oParsedColor["color"]["val"]; break; } } } oColorObj.Mods = oParsedColor["mods"] ? this.ColorModifiersFromJSON(oParsedColor["mods"]) : oColorObj.Mods; return oColorObj; }; ReaderFromJSON.prototype.ColorModifiersFromJSON = function(oParsedModifiers) { var oMods = new AscFormat.CColorModifiers(); for (var nMod = 0; nMod < oParsedModifiers.length; nMod++) { var oMod = new AscFormat.CColorMod(); oMod.name = oParsedModifiers[nMod]["name"]; oMod.val = oParsedModifiers[nMod]["val"]; oMods.Mods.push(oMod); } return oMods; }; ReaderFromJSON.prototype.SrcRectFromJSON = function (parsedSrcRect) { if (!parsedSrcRect) return parsedSrcRect; let srcRect = new AscFormat.CSrcRect(); srcRect.b = parsedSrcRect["b"]; srcRect.l = parsedSrcRect["l"]; srcRect.r = parsedSrcRect["r"]; srcRect.t = parsedSrcRect["t"]; return srcRect; }; ReaderFromJSON.prototype.BlipFillFromJSON = function(oParsedFill) { var oBlipFill = new AscFormat.CBlipFill(); oBlipFill.srcRect = this.SrcRectFromJSON(oParsedFill["srcRect"]); if (oParsedFill["stretch"]) { oBlipFill.stretch = AscFormat.CBlipFillStretch(); oBlipFill.stretch.fillRect = this.SrcRectFromJSON(oParsedFill["stretch"]["fillRect"]); } if (oParsedFill["tile"]) { oBlipFill.tile = new AscFormat.CBlipFillTile(); oBlipFill.tile.tx = oParsedFill["tx"]; oBlipFill.tile.ty = oParsedFill["ty"]; oBlipFill.tile.sx = oParsedFill["sx"]; oBlipFill.tile.sy = oParsedFill["sy"]; oBlipFill.tile.flip = oParsedFill["flip"]; oBlipFill.tile.algn = GetRectAlgnNumType(oParsedFill["algn"]); } for (var nEffect = 0; nEffect < oParsedFill["blip"].length; nEffect++) oBlipFill.Effects.push(this.EffectFromJSON(oParsedFill["blip"][nEffect])); oParsedFill["rotWithShape"] != undefined && oBlipFill.setRotWithShape(oParsedFill["rotWithShape"]); oParsedFill["rasterImageId"] != undefined && oBlipFill.setRasterImageId(oParsedFill["rasterImageId"]); return oBlipFill; }; ReaderFromJSON.prototype.EffectFromJSON = function(oParsedEff) { var oEffect = null; var nBlendType; switch (oParsedEff["type"]) { case "alphaBiLvl": oEffect = new AscFormat.CAlphaBiLevel(); oEffect.tresh = oParsedEff["thresh"]; return oEffect; case "alphaCeiling": oEffect = new AscFormat.CAlphaCeiling(); return oEffect; case "alphaFloor": oEffect = new AscFormat.CAlphaFloor(); return oEffect; case "alphaInv": oEffect = new AscFormat.CAlphaInv(); oEffect.unicolor = this.ColorFromJSON(oParsedEff["color"]); return oEffect; case "alphaMod": oEffect = new AscFormat.CAlphaMod(); oEffect.cont = this.EffectContainerFromJSON(oParsedEff["cont"]); return oEffect; case "alphaModFix": oEffect = new AscFormat.CAlphaModFix(); oEffect.amt = oParsedEff["amt"]; return oEffect; case "alphaOutset": oEffect = new AscFormat.CAlphaOutset(); oEffect.rad = oParsedEff["rad"]; return oEffect; case "alphaRepl": oEffect = new AscFormat.CAlphaRepl(); oEffect.a = oParsedEff["a"]; return oEffect; case "biLvl": oEffect = new AscFormat.CBiLevel(); oEffect.thresh = oParsedEff["thresh"]; return oEffect; case "blend": nBlendType = From_XML_ST_BlendMode(oParsedEff["blend"]); oEffect = new AscFormat.CBlend(); oEffect.cont = this.EffectContainerFromJSON(oParsedEff["cont"]); oEffect.blend = nBlendType; return oEffect; case "blur": oEffect = new AscFormat.CBlur(); oEffect.grow = oParsedEff["grow"]; oEffect.rad = oParsedEff["rad"]; return oEffect; case "clrChange": oEffect = new AscFormat.CClrChange(); oEffect.clrFrom = this.ColorFromJSON(oParsedEff["clrFrom"]); oEffect.clrTo = this.ColorFromJSON(oParsedEff["clrTo"]); oEffect.useA = oParsedEff["useA"]; return oEffect; case "clrRepl": oEffect = new AscFormat.CClrRepl(); oEffect.color = this.ColorFromJSON(oParsedEff["color"]); return oEffect; case "effCont": oEffect = new AscFormat.CEffectContainer(); oEffect.cont = this.EffectContainerFromJSON(oParsedEff["cont"]); return oEffect; case "duotone": oEffect = new AscFormat.CDuotone(); for (var nColor = 0; nColor < oParsedEff["colors"].length; nColor++) oEffect.colors.push(this.ColorFromJSON(oParsedEff["colors"][nColor])); return oEffect; case "effect": oEffect = new AscFormat.CEffectElement(); oEffect.ref = oParsedEff["ref"]; return oEffect; case "fill": oEffect = new AscFormat.CFillEffect(); oEffect.fill = this.FillFromJSON(oParsedEff["fill"]); return oEffect; case "fillOvrl": nBlendType = From_XML_ST_BlendMode(oParsedEff["blend"]); oEffect = new AscFormat.CFillOverlay(); oEffect.fill = this.FillFromJSON(oParsedEff["fill"]); oEffect.blend = nBlendType; return oEffect; case "glow": oEffect = new AscFormat.CGlow(); oEffect.color = this.ColorFromJSON(oParsedEff["color"]); oEffect.rad = oParsedEff["rad"]; return oEffect; case "gray": oEffect = new AscFormat.CGrayscl(); return oEffect; case "hsl": oEffect = new AscFormat.CHslEffect(); oEffect.h = oParsedEff["hue"]; oEffect.l = oParsedEff["lum"]; oEffect.s = oParsedEff["sat"]; return oEffect; case "innerShdw": oEffect = new AscFormat.CInnerShdw(); oEffect.color = this.ColorFromJSON(oParsedEff["color"]); oEffect.blurRad = oParsedEff["blurRad"]; oEffect.dir = oParsedEff["dir"]; oEffect.dist = oParsedEff["dist"]; return oEffect; case "lum": oEffect = new AscFormat.CLumEffect(); oEffect.bright = oParsedEff["bright"]; oEffect.contrast = oParsedEff["contrast"]; return oEffect; case "outerShdw": oEffect = new AscFormat.COuterShdw(); oEffect.color = this.ColorFromJSON(oParsedEff["color"]); oEffect.algn = GetRectAlgnNumType(oParsedEff["algn"]); oEffect.blurRad = oParsedEff["blurRad"]; oEffect.dir = oParsedEff["dir"]; oEffect.dist = oParsedEff["dist"]; oEffect.kx = oParsedEff["kx"]; oEffect.ky = oParsedEff["ky"]; oEffect.rotWithShape = oParsedEff["rotWithShape"]; oEffect.sx = oParsedEff["sx"]; oEffect.sy = oParsedEff["sy"]; return oEffect; case "prstShdw": var nPrstType = undefined; switch (oParsedEff["prst"]) { case "shdw1": nPrstType = Asc.c_oAscPresetShadowVal.shdw1; break; case "shdw2": nPrstType = Asc.c_oAscPresetShadowVal.shdw2; break; case "shdw3": nPrstType = Asc.c_oAscPresetShadowVal.shdw3; break; case "shdw4": nPrstType = Asc.c_oAscPresetShadowVal.shdw4; break; case "shdw5": nPrstType = Asc.c_oAscPresetShadowVal.shdw5; break; case "shdw6": nPrstType = Asc.c_oAscPresetShadowVal.shdw6; break; case "shdw7": nPrstType = Asc.c_oAscPresetShadowVal.shdw7; break; case "shdw8": nPrstType = Asc.c_oAscPresetShadowVal.shdw8; break; case "shdw9": nPrstType = Asc.c_oAscPresetShadowVal.shdw9; break; case "shdw10": nPrstType = Asc.c_oAscPresetShadowVal.shdw10; break; case "shdw11": nPrstType = Asc.c_oAscPresetShadowVal.shdw11; break; case "shdw12": nPrstType = Asc.c_oAscPresetShadowVal.shdw12; break; case "shdw13": nPrstType = Asc.c_oAscPresetShadowVal.shdw13; break; case "shdw14": nPrstType = Asc.c_oAscPresetShadowVal.shdw14; break; case "shdw15": nPrstType = Asc.c_oAscPresetShadowVal.shdw15; break; case "shdw16": nPrstType = Asc.c_oAscPresetShadowVal.shdw16; break; case "shdw17": nPrstType = Asc.c_oAscPresetShadowVal.shdw17; break; case "shdw18": nPrstType = Asc.c_oAscPresetShadowVal.shdw18; break; case "shdw19": nPrstType = Asc.c_oAscPresetShadowVal.shdw19; break; case "shdw20": nPrstType = Asc.c_oAscPresetShadowVal.shdw20; break; } oEffect = new AscFormat.CPrstShdw(); oEffect.color = this.ColorFromJSON(oParsedEff["color"]); oEffect.dir = oParsedEff["dir"]; oEffect.dist = oParsedEff["dist"]; oEffect.prst = nPrstType; return oEffect; case "reflection": oEffect = new AscFormat.CReflection(); oEffect.algn = GetRectAlgnNumType(oParsedEff["algn"]); oEffect.blurRad = oParsedEff["blurRad"]; oEffect.dir = oParsedEff["dir"]; oEffect.dist = oParsedEff["dist"]; oEffect.endA = oParsedEff["endA"]; oEffect.endPos = oParsedEff["endPos"]; oEffect.fadeDir = oParsedEff["fadeDir"]; oEffect.kx = oParsedEff["kx"]; oEffect.ky = oParsedEff["ky"]; oEffect.rotWithShape = oParsedEff["rotWithShape"]; oEffect.stA = oParsedEff["stA"]; oEffect.stPos = oParsedEff["stPos"]; oEffect.sx = oParsedEff["sx"]; oEffect.sy = oParsedEff["sy"]; return oEffect; case "relOff": oEffect = new AscFormat.CRelOff(); oEffect.tx = oParsedEff["tx"]; oEffect.ty = oParsedEff["ty"]; return oEffect; case "softEdge": oEffect = new AscFormat.CSoftEdge(); oEffect.rad = oParsedEff["rad"]; return oEffect; case "tint": oEffect = new AscFormat.CTintEffect(); oEffect.amt = oParsedEff["amt"]; oEffect.hue = oParsedEff["hue"]; return oEffect; case "xfrm": oEffect = new AscFormat.CXfrmEffect(); oEffect.kx = oParsedEff["kx"]; oEffect.ky = oParsedEff["ky"]; oEffect.sx = oParsedEff["sx"]; oEffect.sy = oParsedEff["sy"]; oEffect.tx = oParsedEff["tx"]; oEffect.ty = oParsedEff["ty"]; return oEffect; } }; ReaderFromJSON.prototype.EffectContainerFromJSON = function(oParsedCont) { var oEffectContainer = new AscFormat.CEffectContainer(); oEffectContainer.type = oParsedCont["type"]; oEffectContainer.name = oParsedCont["name"]; for (var nEffect = 0; nEffect < oParsedCont["effectList"].length; nEffect++) oEffectContainer.push(this.EffectFromJSON(oParsedCont["effectList"][nEffect])); return oEffectContainer; }; ReaderFromJSON.prototype.EffectLstFromJSON = function(oParsedLst) { var oEffectLst = new AscFormat.CEffectLst(); if (oParsedLst["blur"]) oEffectLst.blur = this.EffectFromJSON(oParsedLst["blur"]); if (oParsedLst["fillOverlay"]) oEffectLst.fillOverlay = this.EffectFromJSON(oParsedLst["fillOverlay"]); if (oParsedLst["glow"]) oEffectLst.glow = this.EffectFromJSON(oParsedLst["glow"]); if (oParsedLst["innerShdw"]) oEffectLst.innerShdw = this.EffectFromJSON(oParsedLst["innerShdw"]); if (oParsedLst["outerShdw"]) oEffectLst.outerShdw = this.EffectFromJSON(oParsedLst["outerShdw"]); if (oParsedLst["prstShdw"]) oEffectLst.prstShdw = this.EffectFromJSON(oParsedLst["prstShdw"]); if (oParsedLst["reflection"]) oEffectLst.reflection = this.EffectFromJSON(oParsedLst["reflection"]); if (oParsedLst["softEdge"]) oEffectLst.softEdge = this.EffectFromJSON(oParsedLst["softEdge"]); return oEffectLst; }; ReaderFromJSON.prototype.StylesFromJSON = function(oParsedStyles) { this.RestoredStylesMap = {}; // восстанавливаем все стили for (var key in oParsedStyles) { this.StyleFromJSON(oParsedStyles[key]); } // проставляем ссылки с новыми Id for (var key in this.RestoredStylesMap) { if (this.RestoredStylesMap[key].BasedOn != null) { var sBasedOnId = this.RestoredStylesMap[key].BasedOn; if (this.RestoredStylesMap[sBasedOnId] != null) this.RestoredStylesMap[key].Set_BasedOn(this.RestoredStylesMap[sBasedOnId].Id); else this.RestoredStylesMap[key].Set_BasedOn(null); } if (this.RestoredStylesMap[key].Next != null) { var sNextId = this.RestoredStylesMap[key].Next; if (this.RestoredStylesMap[sNextId] != null) this.RestoredStylesMap[key].Set_Next(this.RestoredStylesMap[sNextId].Id); else this.RestoredStylesMap[key].Set_Next(null); } if (this.RestoredStylesMap[key].Link != null) { var sLinkId = this.RestoredStylesMap[key].Link; if (this.RestoredStylesMap[sLinkId] != null) this.RestoredStylesMap[key].Set_Link(this.RestoredStylesMap[sLinkId].Id); else this.RestoredStylesMap[key].Set_Link(null); } } }; ReaderFromJSON.prototype.StyleFromJSON = function(oParsedStyle) { var sStyleName = oParsedStyle["name"]; var nNextId = oParsedStyle["next"] != undefined ? oParsedStyle["next"] : null; var nStyleType = styletype_Paragraph; var bNoCreateTablePr = !oParsedStyle["tblStylePr"]; var nBasedOnId = oParsedStyle["basedOn"]; switch (oParsedStyle["styleType"]) { case "paragraphStyle": nStyleType = styletype_Paragraph; break; case "numberingStyle": nStyleType = styletype_Numbering; break; case "tableStyle": nStyleType = styletype_Table; break; case "characterStyle": nStyleType = styletype_Character; break; } var oStyle = new CStyle(sStyleName, nBasedOnId, nNextId, nStyleType, bNoCreateTablePr); oParsedStyle["link"] != undefined && oStyle.SetLink(oParsedStyle["link"]); oParsedStyle["customStyle"] != undefined && oStyle.SetCustom(oParsedStyle["customStyle"]); oParsedStyle["qFormat"] != undefined && oStyle.SetQFormat(oParsedStyle["qFormat"]); oParsedStyle["uiPriority"] != undefined && oStyle.SetUiPriority(oParsedStyle["uiPriority"]); oParsedStyle["hidden"] != undefined && oStyle.SetHidden(oParsedStyle["hidden"]); oParsedStyle["semiHidden"] != undefined && oStyle.SetSemiHidden(oParsedStyle["semiHidden"]); oParsedStyle["unhideWhenUsed"] != undefined && oStyle.SetUnhideWhenUsed(oParsedStyle["unhideWhenUsed"]); oParsedStyle["rPr"] != undefined && oStyle.SetTextPr(this.TextPrFromJSON(oParsedStyle["rPr"])); oParsedStyle["pPr"] != undefined && oStyle.SetParaPr(this.ParaPrFromJSON(oParsedStyle["pPr"])); oParsedStyle["tblPr"] != undefined && oStyle.Set_TablePr(this.TablePrFromJSON(null, oParsedStyle["tblPr"])); oParsedStyle["trPr"] != undefined && oStyle.Set_TableRowPr(this.TableRowPrFromJSON(oParsedStyle["trPr"])); oParsedStyle["tcPr"] != undefined && oStyle.Set_TableCellPr(this.TableCellPrFromJSON(oParsedStyle["tcPr"])); if (!bNoCreateTablePr) { oParsedStyle["tblStylePr"]["band1Horz"] && oStyle.Set_TableBand1Horz(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["band1Horz"])); oParsedStyle["tblStylePr"]["band1Vert"] && oStyle.Set_TableBand1Vert(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["band1Vert"])); oParsedStyle["tblStylePr"]["band2Horz"] && oStyle.Set_TableBand2Horz(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["band2Horz"])); oParsedStyle["tblStylePr"]["band2Vert"] && oStyle.Set_TableBand2Vert(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["band2Vert"])); oParsedStyle["tblStylePr"]["firstCol"] && oStyle.Set_TableFirstCol(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["firstCol"])); oParsedStyle["tblStylePr"]["firstRow"] && oStyle.Set_TableFirstRow(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["firstRow"])); oParsedStyle["tblStylePr"]["lastCol"] && oStyle.Set_TableLastCol(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["lastCol"])); oParsedStyle["tblStylePr"]["lastRow"] && oStyle.Set_TableLastRow(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["lastRow"])); oParsedStyle["tblStylePr"]["neCell"] && oStyle.Set_TableTLCell(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["neCell"])); oParsedStyle["tblStylePr"]["nwCell"] && oStyle.Set_TableTRCell(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["nwCell"])); oParsedStyle["tblStylePr"]["seCell"] && oStyle.Set_TableBLCell(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["seCell"])); oParsedStyle["tblStylePr"]["swCell"] && oStyle.Set_TableBRCell(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["swCell"])); oParsedStyle["tblStylePr"]["wholeTable"] && oStyle.Set_TableWholeTable(this.TableStylePrFromJSON(oParsedStyle["tblStylePr"]["wholeTable"])); } var oStyles = private_GetStyles(); if (oStyle) { // если такого стиля нет - добавляем новый var nExistingStyleId = oStyles.GetStyleIdByName(oStyle.Name); if (nExistingStyleId === null) { oStyles.Add(oStyle); } else { var oExistingStyle = oStyles.Get(nExistingStyleId); // если стили идентичны, стиль не добавляем if (!oStyle.IsEqual(oExistingStyle)) oStyles.Add(oStyle); else oStyle = oExistingStyle; } } this.RestoredStylesMap[oParsedStyle["styleId"]] = oStyle; return oStyle; }; ReaderFromJSON.prototype.TableStylePrFromJSON = function(oParsedPr) { var oTableStylePr = new CTableStylePr(); if (oParsedPr["rPr"]) oTableStylePr.TextPr = this.TextPrFromJSON(oParsedPr["rPr"]); if (oParsedPr["pPr"]) oTableStylePr.ParaPr = this.ParaPrFromJSON(oParsedPr["pPr"]); if (oParsedPr["tblPr"]) oTableStylePr.TablePr = this.TablePrFromJSON(null, oParsedPr["tblPr"]); if (oParsedPr["trPr"]) oTableStylePr.TableRowPr = this.TableRowPrFromJSON(oParsedPr["trPr"]); if (oParsedPr["tcPr"]) oTableStylePr.TableCellPr = this.TableCellPrFromJSON(oParsedPr["tcPr"]); return oTableStylePr; }; ReaderFromJSON.prototype.ParaDrawingFromJSON = function(oParsedDrawing) { var oDrawing = new ParaDrawing(undefined, undefined, null, private_GetDrawingDocument(), private_GetLogicDocument(), null); // doc prop oDrawing.docPr.setFromOther(this.CNvPrFromJSON(oParsedDrawing["docPr"])); // effect extent oDrawing.setEffectExtent(private_EMU2MM(oParsedDrawing["effectExtent"]["l"]), private_EMU2MM(oParsedDrawing["effectExtent"]["t"]), private_EMU2MM(oParsedDrawing["effectExtent"]["r"]), private_EMU2MM(oParsedDrawing["effectExtent"]["b"])); // extent oDrawing.setExtent(private_EMU2MM(oParsedDrawing["extent"]["cx"]), private_EMU2MM(oParsedDrawing["extent"]["cy"])); // posH posY var oPosH = this.PositionHFromJSON(oParsedDrawing["positionH"]); var oPosV = this.PositionVFromJSON(oParsedDrawing["positionV"]); oDrawing.Set_PositionH(oPosH.RelativeFrom, oPosH.Align, oPosH.Value, oPosH.Percent); oDrawing.Set_PositionV(oPosV.RelativeFrom, oPosV.Align, oPosV.Value, oPosV.Percent); // simple pos oDrawing.setSimplePos(oParsedDrawing["simplePos"]["use"], private_EMU2MM(oParsedDrawing["simplePos"]["x"]), private_EMU2MM(oParsedDrawing["simplePos"]["x"])); // siseRelH oParsedDrawing["sizeRelH"] && oDrawing.SetSizeRelH(this.SizeRelHFromJSON(oParsedDrawing["sizeRelH"])); // sizeRelV oParsedDrawing["sizeRelV"] && oDrawing.SetSizeRelV(this.SizeRelVFromJSON(oParsedDrawing["sizeRelV"])); // distance oDrawing.Set_Distance(private_EMU2MM(oParsedDrawing["distL"]), private_EMU2MM(oParsedDrawing["distT"]), private_EMU2MM(oParsedDrawing["distR"]), private_EMU2MM(oParsedDrawing["distB"])); // overlap oDrawing.Set_AllowOverlap(oParsedDrawing["allowOverlap"]); // behind doc oDrawing.Set_BehindDoc(oParsedDrawing["behindDoc"]); oDrawing.Hidden = oParsedDrawing["hidden"]; oDrawing.Set_LayoutInCell(oParsedDrawing["layoutInCell"]); oDrawing.Set_Locked(oParsedDrawing["locked"]); oDrawing.Set_RelativeHeight(oParsedDrawing["relativeHeight"]); var nWrappingType = this.GetWrapNumType(oParsedDrawing["wrapType"]); oDrawing.Set_DrawingType(oParsedDrawing["drawingType"] === "inline" ? drawing_Inline : drawing_Anchor); oDrawing.Set_WrappingType(nWrappingType); if (oParsedDrawing["wrapType"] === "tight") this.WrappingPolygonFromJSON(oParsedDrawing["wrapTight"], oDrawing.wrappingPolygon) else if (oParsedDrawing["through"] === "tight") this.WrappingPolygonFromJSON(oParsedDrawing["wrapThrough"], oDrawing.wrappingPolygon) var oGraphicObj = this.GraphicObjFromJSON(oParsedDrawing["graphic"], oDrawing); if (!oDrawing.GraphicObj) oDrawing.Set_GraphicObject(oGraphicObj); // oDrawing.CheckWH(); return oDrawing; }; ReaderFromJSON.prototype.SizeRelHFromJSON = function(oParsed) { return { RelativeFrom: FromXml_ST_SizeRelFromH(oParsed["relativeFrom"]), Percent: oParsed["wp14:pctWidth"] != null ? oParsed["wp14:pctWidth"] / 100 : 0 } }; ReaderFromJSON.prototype.SizeRelVFromJSON = function(oParsed) { return { RelativeFrom: FromXml_ST_SizeRelFromV(oParsed["relativeFrom"]), Percent: oParsed["wp14:pctHeight"] != null ? oParsed["wp14:pctHeight"] / 100 : 0 } }; ReaderFromJSON.prototype.WrappingPolygonFromJSON = function(oParsed, oParentWrapPolygon) { var oStartPoint = oParsed["start"] ? this.PolygonPointFromJSON(oParsed["start"]) : null; var aLineTo = oParsed["lineTo"] ? this.PolygonPointsFromJSON(oParsed["lineTo"]) : []; oParentWrapPolygon.setEdited(oParsed["edited"]); if (oStartPoint) aLineTo.unshift(oStartPoint); oParentWrapPolygon.setArrRelPoints(aLineTo); }; ReaderFromJSON.prototype.PolygonPointFromJSON = function(oParsed) { var oPoint = new CPolygonPoint(); oPoint.x = oParsed["x"]; oPoint.y = oParsed["y"]; return oPoint; }; ReaderFromJSON.prototype.PolygonPointsFromJSON = function(aParsed) { var aResult = []; for (var nPoint = 0; nPoint < aParsed.length; nPoint++) aResult.push(this.PolygonPointFromJSON(aParsed[nPoint])); return aResult; }; ReaderFromJSON.prototype.GraphicObjFromJSON = function(oParsedObj, oParent) { var oGraphicObj = null; switch (oParsedObj["type"]) { case "image": oGraphicObj = this.ImageFromJSON(oParsedObj, oParent); break; case "shape": case "connectShape": oGraphicObj = this.ShapeFromJSON(oParsedObj, oParent); break; case "chartSpace": oGraphicObj = this.ChartSpaceFromJSON(oParsedObj, oParent); break; case "graphicFrame": oGraphicObj = this.GraphicFrameFromJSON(oParsedObj); break; case "smartArt": oGraphicObj = this.SmartArtFromJSON(oParsedObj, oParent); break; case "groupShape": oGraphicObj = this.GroupShapeFromJSON(oParsedObj, oParent); break; case "lockedCanvas": oGraphicObj = this.LockedCanvasFromJSON(oParsedObj, oParent); break; case "oleObject": oGraphicObj = this.OleObjectFromJSON(oParsedObj, oParent); break; case "slicer": oGraphicObj = this.SlicerDrawingFromJSON(oParsedObj, oParent); } this.drawingsMap[oParsedObj["id"]] = oGraphicObj; return oGraphicObj; }; ReaderFromJSON.prototype.SlicerDrawingFromJSON = function(oParsedSlicer) { var oSlicer = new AscFormat.CSlicer(); oSlicer.setBDeleted(false); if (oParsedSlicer["name"] != null) oSlicer.name = oParsedSlicer["name"]; if (oParsedSlicer["spPr"] != null) oSlicer.setSpPr(this.SpPrFromJSON(oParsedSlicer["spPr"], oSlicer)); if (oParsedSlicer["nvGraphicFramePr"] != null) { oSlicer.setNvSpPr(this.UniNvPrFromJSON(oParsedSlicer["nvGraphicFramePr"])); this.map_shapes_by_id[oSlicer.nvSpPr.cNvPr.id] = oSlicer; } if (oSlicer.nvSpPr && oSlicer.nvSpPr.locks > 0) oSlicer.setLocks(oSlicer.nvSpPr.locks); return oSlicer; }; ReaderFromJSON.prototype.LockedCanvasFromJSON = function(oParsedLocCanvas, oParentDrawing) { var oLockedCanvas = new AscFormat.CLockedCanvas(); if (oParentDrawing) { oLockedCanvas.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oLockedCanvas); } for (var nDrawing = 0; nDrawing < oParsedLocCanvas["spTree"].length; nDrawing++) oLockedCanvas.addToSpTree(oLockedCanvas.spTree.length, this.GraphicObjFromJSON(oParsedLocCanvas["spTree"][nDrawing])); oParsedLocCanvas["spPr"] && oLockedCanvas.setSpPr(this.SpPrFromJSON(oParsedLocCanvas["spPr"], oLockedCanvas)); if (oParsedLocCanvas["nvGrpSpPr"]) { oLockedCanvas.setNvGrpSpPr(this.UniNvPrFromJSON(oParsedLocCanvas["nvGrpSpPr"])); this.map_shapes_by_id[oLockedCanvas.nvGrpSpPr.cNvPr.id] = oLockedCanvas; } oLockedCanvas.setBDeleted(false); return oLockedCanvas; }; ReaderFromJSON.prototype.GroupShapeFromJSON = function(oParsedGrpShp, oParentDrawing) { var oGroupShape = new AscFormat.CGroupShape(); var oTempGraphObj = null; if (oParentDrawing) { oGroupShape.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oGroupShape); } for (var nDrawing = 0; nDrawing < oParsedGrpShp["spTree"].length; nDrawing++) { oTempGraphObj = this.GraphicObjFromJSON(oParsedGrpShp["spTree"][nDrawing]); oGroupShape.addToSpTree(oGroupShape.spTree.length, oTempGraphObj); oTempGraphObj.setGroup(oGroupShape); } oParsedGrpShp["spPr"] && oGroupShape.setSpPr(this.SpPrFromJSON(oParsedGrpShp["spPr"], oGroupShape)); if (oParsedGrpShp["nvGrpSpPr"]) { oGroupShape.setNvGrpSpPr(this.UniNvPrFromJSON(oParsedGrpShp["nvGrpSpPr"])); this.map_shapes_by_id[oGroupShape.nvGrpSpPr.cNvPr.id] = oGroupShape; } oGroupShape.setBDeleted(false); return oGroupShape; }; ReaderFromJSON.prototype.SmartArtFromJSON = function(oParsedArt, oParentDrawing) { var oSmartArt = new AscFormat.SmartArt(); oParsedArt["artType"] != undefined && oSmartArt.setType(oParsedArt["artType"]); oParsedArt["colorsDef"] && oSmartArt.setColorsDef(this.ColorsDefFromJSON(oParsedArt["colorsDef"])); oParsedArt["dataModel"] && oSmartArt.setDataModel(this.DataFromJSON(oParsedArt["dataModel"])); oParsedArt["layoutDef"] && oSmartArt.setLayoutDef(this.LayoutDefFromJSON(oParsedArt["layoutDef"])); oParsedArt["styleDef"] && oSmartArt.setStyleDef(this.StyleDefFromJSON(oParsedArt["styleDef"])); oParsedArt["drawing"] && oSmartArt.setDrawing(this.DrawingFromJSON(oParsedArt["drawing"])); if(oSmartArt.drawing) { oSmartArt.drawing.setGroup(oSmartArt); oSmartArt.addToSpTree(0, oSmartArt.drawing); } if (oParsedArt["nvGrpSpPr"]) { oSmartArt.setNvGrpSpPr(this.UniNvPrFromJSON(oParsedArt["nvGrpSpPr"])); this.map_shapes_by_id[oSmartArt.nvGrpSpPr.cNvPr.id] = oSmartArt; } oParsedArt["spPr"] && oSmartArt.setSpPr(this.SpPrFromJSON(oParsedArt["spPr"], oSmartArt)); if (oParentDrawing) { oSmartArt.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oSmartArt); } oSmartArt.setBDeleted(false); if (oSmartArt.nvGrpSpPr && oSmartArt.nvGrpSpPr.locks > 0) oSmartArt.setLocks(oSmartArt.nvGrpSpPr.locks); return oSmartArt; }; ReaderFromJSON.prototype.DrawingFromJSON = function(oParsedDrawing) { var oDrawing = new AscFormat.Drawing(); var oTempGraphObj = null; for (var nDrawing = 0; nDrawing < oParsedDrawing["spTree"].length; nDrawing++) { oTempGraphObj = this.GraphicObjFromJSON(oParsedDrawing["spTree"][nDrawing]); oDrawing.addToSpTree(oDrawing.spTree.length, oTempGraphObj); oTempGraphObj.setGroup(oDrawing); } oParsedDrawing["spPr"] && oDrawing.setSpPr(this.SpPrFromJSON(oParsedDrawing["spPr"], oDrawing)); if (oParsedDrawing["nvGrpSpPr"]) { oDrawing.setNvGrpSpPr(this.UniNvPrFromJSON(oParsedDrawing["nvGrpSpPr"])); this.map_shapes_by_id[oDrawing.nvGrpSpPr.cNvPr.id] = oDrawing; } oDrawing.setBDeleted(false); return oDrawing; }; ReaderFromJSON.prototype.StyleDefFromJSON = function(oParsedStyleDef) { var oStyleDef = new AscFormat.StyleDef(); for (var nStyle = 0; nStyle < oParsedStyleDef["styleLbl"].length; nStyle++) oStyleDef.addToLstStyleLbl(this.DefStyleLblFromJSON(oParsedStyleDef["styleLbl"][nStyle])); oParsedStyleDef["catLst"] && oStyleDef.setCatLst(this.CatLstFromJSON(oParsedStyleDef["catLst"])); oParsedStyleDef["desc"] && oStyleDef.setDesc(this.DescFromJSON(oParsedStyleDef["desc"])); oParsedStyleDef["scene3d"] && oStyleDef.setScene3d(this.Scene3dFromJSON(oParsedStyleDef["scene3d"])); oParsedStyleDef["minVer"] != undefined && oStyleDef.setMinVer(oParsedStyleDef["minVer"]); oParsedStyleDef["title"] && oStyleDef.setTitle(this.DescFromJSON(oParsedStyleDef["title"])); oParsedStyleDef["uniqueId"] != undefined && oStyleDef.setUniqueId(oParsedStyleDef["uniqueId"]); return oStyleDef; }; ReaderFromJSON.prototype.DefStyleLblFromJSON = function(oParsedDefStyleLbl) { var oDefStyleLbl = new AscFormat.StyleDefStyleLbl(); oParsedDefStyleLbl["scene3d"] && oDefStyleLbl.setScene3d(this.Scene3dFromJSON(oParsedDefStyleLbl["scene3d"])); oParsedDefStyleLbl["sp3d"] && oDefStyleLbl.setSp3d(this.Sp3DFromJSON(oParsedDefStyleLbl["sp3d"])); oParsedDefStyleLbl["style"] && oDefStyleLbl.setStyle(this.SpStyleFromJSON(oParsedDefStyleLbl["style"])); oParsedDefStyleLbl["txPr"] && oDefStyleLbl.setTxPr(this.TxPrFromJSON(oParsedDefStyleLbl["txPr"])); oParsedDefStyleLbl["name"] != undefined && oDefStyleLbl.setName(oParsedDefStyleLbl["name"]); return oDefStyleLbl; }; ReaderFromJSON.prototype.Sp3DFromJSON = function(oParsedSp3D) { var oSp3D = new AscFormat.Sp3d(); oParsedSp3D["bevelB"] && oSp3D.setBevelB(this.BevelFromJSON(oParsedSp3D["bevelB"])); oParsedSp3D["bevelT"] && oSp3D.setBevelT(this.BevelFromJSON(oParsedSp3D["bevelT"])); oParsedSp3D["contourClr"] && oSp3D.setContourClr(this.ContourClrFromJSON(oParsedSp3D["contourClr"])); oParsedSp3D["extrusionClr"] && oSp3D.setExtrusionClr(this.ExtrusionClrFromJSON(oParsedSp3D["extrusionClr"])); oParsedSp3D["contourW"] != undefined && oSp3D.setContourW(oParsedSp3D["contourW"]); oParsedSp3D["extrusionH"] != undefined && oSp3D.setExtrusionH(oParsedSp3D["extrusionH"]); oParsedSp3D["prstMaterial"] != undefined && oSp3D.setPrstMaterial(From_XML_ST_PresetMaterialType(oParsedSp3D["prstMaterial"])); oParsedSp3D["z"] != undefined && oSp3D.setZ(oParsedSp3D["z"]); return oSp3D; }; ReaderFromJSON.prototype.ExtrusionClrFromJSON = function(oParsedExtrusionClr) { var oExtrusionClr = new AscFormat.ExtrusionClr(); oParsedExtrusionClr["color"] && oExtrusionClr.setColor(this.ColorFromJSON(oParsedExtrusionClr["color"])); return oExtrusionClr; }; ReaderFromJSON.prototype.ContourClrFromJSON = function(oParsedContourClr) { var oContourClr = new AscFormat.ContourClr(); oParsedContourClr["color"] && oContourClr.setColor(this.ColorFromJSON(oParsedContourClr["color"])); return oContourClr; }; ReaderFromJSON.prototype.BevelFromJSON = function(oParsedBevel) { var oBevel = new AscFormat.Bevel(); oParsedBevel["h"] != undefined && oBevel.setH(oParsedBevel["h"]); oParsedBevel["w"] != undefined && oBevel.setW(oParsedBevel["w"]); oParsedBevel["prst"] != undefined && oBevel.setPrst(From_XML_ST_BevelPresetType(oParsedBevel["prst"])); return oBevel; }; ReaderFromJSON.prototype.Scene3dFromJSON = function(oParsedScene3d) { var oScene3d = new AscFormat.Scene3d(); oParsedScene3d["backdrop"] && oScene3d.setBackdrop(this.BackdropFromJSON(oParsedScene3d["backdrop"])); oParsedScene3d["camera"] && oScene3d.setCamera(this.CameraFromJSON(oParsedScene3d["camera"])); oParsedScene3d["lightRig"] && oScene3d.setLightRig(this.LightRigFromJSON(oParsedScene3d["lightRig"])); return oScene3d; }; ReaderFromJSON.prototype.LightRigFromJSON = function(oParsedLightRig) { var oLightRig = new AscFormat.LightRig(); oParsedLightRig["rot"] && oLightRig.setRot(this.CameraRotFromJSON(oParsedLightRig["rot"])); oParsedLightRig["dir"] != undefined && oLightRig.setDir(From_XML_ST_LightRigDirection(oParsedLightRig["dir"])); oParsedLightRig["rig"] != undefined && oLightRig.setRig(From_XML_ST_LightRigType(oParsedLightRig["rig"])); return oLightRig; }; ReaderFromJSON.prototype.CameraFromJSON = function(oParsedCamera) { var oCamera = new AscFormat.Camera(); oParsedCamera["rot"] && oCamera.setRot(this.CameraRotFromJSON(oParsedCamera["rot"])); oParsedCamera["fov"] != undefined && oCamera.setFov(oParsedCamera["fov"]); oParsedCamera["prst"] != undefined && oCamera.setPrst(From_XML_ST_PresetCameraType(oParsedCamera["prst"])); oParsedCamera["zoom"] != undefined && oCamera.setZoom(oParsedCamera["zoom"]); return oCamera; }; ReaderFromJSON.prototype.CameraRotFromJSON = function(oParsedCameraRot) { var oCameraRot = new AscFormat.Rot(); oParsedCameraRot["lat"] != undefined && oCameraRot.setLat(oParsedCameraRot["lat"]); oParsedCameraRot["lon"] != undefined && oCameraRot.setLon(oParsedCameraRot["lon"]); oParsedCameraRot["rev"] != undefined && oCameraRot.setRev(oParsedCameraRot["rev"]); return oCameraRot; }; ReaderFromJSON.prototype.BackdropFromJSON = function(oParsedBackdrop) { var oBackdrop = new AscFormat.Backdrop(); oParsedBackdrop["anchor"] != undefined && oBackdrop.setAnchor(this.BackdropAnchorFromJSON(oParsedBackdrop["anchor"])); oParsedBackdrop["norm"] != undefined && oBackdrop.setNorm(this.BackdropNormFromJSON(oParsedBackdrop["norm"])); oParsedBackdrop["up"] != undefined && oBackdrop.setUp(this.BackdropUpFromJSON(oParsedBackdrop["up"])); return oBackdrop; }; ReaderFromJSON.prototype.BackdropUpFromJSON = function(oParsedBackdropUp) { var oBackdropUp = new AscFormat.BackdropUp(); oParsedBackdropUp["dx"] != undefined && oBackdropUp.setDx(oParsedBackdropUp["dx"]); oParsedBackdropUp["dy"] != undefined && oBackdropUp.setDy(oParsedBackdropUp["dy"]); oParsedBackdropUp["dz"] != undefined && oBackdropUp.setDz(oParsedBackdropUp["dz"]); return oBackdropUp; }; ReaderFromJSON.prototype.BackdropNormFromJSON = function(oParsedBackdropNorm) { var oBackdropNorm = new AscFormat.BackdropNorm(); oParsedBackdropNorm["dx"] != undefined && oBackdropNorm.setDx(oParsedBackdropNorm["dx"]); oParsedBackdropNorm["dy"] != undefined && oBackdropNorm.setDy(oParsedBackdropNorm["dy"]); oParsedBackdropNorm["dz"] != undefined && oBackdropNorm.setDz(oParsedBackdropNorm["dz"]); return oBackdropNorm; }; ReaderFromJSON.prototype.BackdropAnchorFromJSON = function(oParsedBackdropAnchor) { var oBackdropAnchor = new AscFormat.BackdropAnchor(); oParsedBackdropAnchor["x"] != undefined && oBackdropAnchor.setX(oParsedBackdropAnchor["x"]); oParsedBackdropAnchor["y"] != undefined && oBackdropAnchor.setY(oParsedBackdropAnchor["y"]); oParsedBackdropAnchor["z"] != undefined && oBackdropAnchor.setZ(oParsedBackdropAnchor["z"]); return oBackdropAnchor; }; ReaderFromJSON.prototype.LayoutDefFromJSON = function(oParsedLayoutDef) { var oLayoutDef = new AscFormat.LayoutDef(); oParsedLayoutDef["catLst"] && oLayoutDef.setCatLst(this.CatLstFromJSON(oParsedLayoutDef["catLst"])); oParsedLayoutDef["clrData"] && oLayoutDef.setClrData(this.DataFromJSON(oParsedLayoutDef["clrData"])); oParsedLayoutDef["defStyle"] && oLayoutDef.setDefStyle(oParsedLayoutDef["defStyle"]); oParsedLayoutDef["desc"] && oLayoutDef.setDesc(this.DescFromJSON(oParsedLayoutDef["desc"])); oParsedLayoutDef["layoutNode"] && oLayoutDef.setLayoutNode(this.LayoutNodeFromJSON(oParsedLayoutDef["layoutNode"])); oParsedLayoutDef["minVer"] && oLayoutDef.setMinVer(oParsedLayoutDef["minVer"]); oParsedLayoutDef["sampData"] && oLayoutDef.setSampData(this.DataFromJSON(oParsedLayoutDef["sampData"])); oParsedLayoutDef["styleData"] && oLayoutDef.setStyleData(this.DataFromJSON(oParsedLayoutDef["styleData"])); oParsedLayoutDef["title"] && oLayoutDef.setTitle(this.DescFromJSON(oParsedLayoutDef["title"])); oParsedLayoutDef["uniqueId"] && oLayoutDef.setUniqueId(oParsedLayoutDef["uniqueId"]); return oLayoutDef; }; ReaderFromJSON.prototype.DataFromJSON = function(oParsedData) { var oData = null; switch (oParsedData["type"]) { case "diagramData": oData = new AscFormat.DiagramData(); break; case "styleData": case "clrData": case "sampData": oData = new AscFormat.SampData(); oParsedData["useDef"] != undefined && oData.setUseDef(oParsedData["useDef"]); break; } if (oData) oParsedData["dataModel"] && oData.setDataModel(this.DataModelFromJSON(oParsedData["dataModel"])); return oData; }; ReaderFromJSON.prototype.DataModelFromJSON = function(oParsedDataModel) { var oDataModel = new AscFormat.DataModel(); oParsedDataModel["bg"] && oDataModel.setBg(this.BgFormatFromJSON(oParsedDataModel["bg"])); oParsedDataModel["cxnLst"] && oDataModel.setCxnLst(this.CxnLstFromJSON(oParsedDataModel["cxnLst"])); oParsedDataModel["ptLst"] && oDataModel.setPtLst(this.PtLstFromJSON(oParsedDataModel["ptLst"])); oParsedDataModel["whole"] && oDataModel.setWhole(this.WholeFromJSON(oParsedDataModel["whole"])); return oDataModel; }; ReaderFromJSON.prototype.WholeFromJSON = function(oParsedWhole) { var oWhole = new AscFormat.Whole(); (oParsedWhole["effectDag"] || oParsedWhole["effectLst"]) && oWhole.setEffect(this.EffectPropsFromJSON(oParsedWhole["effectDag"], oParsedWhole["effectLst"])); oParsedWhole["whole"] && oWhole.setLn(this.LnFromJSON(oParsedWhole["whole"])); return oWhole; }; ReaderFromJSON.prototype.PtLstFromJSON = function(oParsedPtLst) { var oPtLst = new AscFormat.PtLst(); for (var nItem = 0; nItem < oParsedPtLst["list"].length; nItem++) oPtLst.addToLst(oPtLst.list.length, this.PtFromJSON(oParsedPtLst["list"][nItem])); return oPtLst; }; ReaderFromJSON.prototype.PtFromJSON = function(oParsedPt) { var oPt = new AscFormat.Point(); oParsedPt["prSet"] && oPt.setPrSet(this.PtPrSetFromJSON(oParsedPt["prSet"])); oParsedPt["spPr"] && oPt.setSpPr(this.SpPrFromJSON(oParsedPt["spPr"])); oParsedPt["t"] && oPt.setT(this.TxPrFromJSON(oParsedPt["t"])); oParsedPt["cxnId"] != undefined && oPt.setCxnId(oParsedPt["cxnId"]); oParsedPt["modelId"] != undefined && oPt.setModelId(oParsedPt["modelId"]); oParsedPt["type"] != undefined && oPt.setType(From_XML_ST_PtType(oParsedPt["type"])); return oPt; }; ReaderFromJSON.prototype.PtPrSetFromJSON = function(oParsedPtPrSet) { var oPtPrSet = new AscFormat.PrSet(); oParsedPtPrSet["coherent3DOff"] != undefined && oPtPrSet.setCoherent3DOff(oParsedPtPrSet["coherent3DOff"]); oParsedPtPrSet["csCatId"] != undefined && oPtPrSet.setCsCatId(oParsedPtPrSet["csCatId"]); oParsedPtPrSet["csTypeId"] != undefined && oPtPrSet.setCsTypeId(oParsedPtPrSet["csTypeId"]); oParsedPtPrSet["custAng"] != undefined && oPtPrSet.setCustAng(oParsedPtPrSet["custAng"]); oParsedPtPrSet["custFlipHor"] != undefined && oPtPrSet.setCustFlipHor(oParsedPtPrSet["custFlipHor"]); oParsedPtPrSet["custFlipVert"] != undefined && oPtPrSet.setCustFlipVert(oParsedPtPrSet["custFlipVert"]); oParsedPtPrSet["custLinFactNeighborX"] != undefined && oPtPrSet.setCustLinFactNeighborX(oParsedPtPrSet["custLinFactNeighborX"]); oParsedPtPrSet["custLinFactNeighborY"] != undefined && oPtPrSet.setCustLinFactNeighborY(oParsedPtPrSet["custLinFactNeighborY"]); oParsedPtPrSet["custLinFactX"] != undefined && oPtPrSet.setCustLinFactX(oParsedPtPrSet["custLinFactX"]); oParsedPtPrSet["custLinFactY"] != undefined && oPtPrSet.setCustLinFactY(oParsedPtPrSet["custLinFactY"]); oParsedPtPrSet["custRadScaleInc"] != undefined && oPtPrSet.setCustRadScaleInc(oParsedPtPrSet["custRadScaleInc"]); oParsedPtPrSet["custRadScaleRad"] != undefined && oPtPrSet.setCustRadScaleRad(oParsedPtPrSet["custRadScaleRad"]); oParsedPtPrSet["custScaleX"] != undefined && oPtPrSet.setCustScaleX(oParsedPtPrSet["custScaleX"]); oParsedPtPrSet["custScaleY"] != undefined && oPtPrSet.setCustScaleY(oParsedPtPrSet["custScaleY"]); oParsedPtPrSet["custSzX"] != undefined && oPtPrSet.setCustSzX(oParsedPtPrSet["custSzX"]); oParsedPtPrSet["custSzY"] != undefined && oPtPrSet.setCustSzY(oParsedPtPrSet["custSzY"]); oParsedPtPrSet["custT"] != undefined && oPtPrSet.setCustT(oParsedPtPrSet["custT"]); oParsedPtPrSet["loCatId"] != undefined && oPtPrSet.setLoCatId(oParsedPtPrSet["loCatId"]); oParsedPtPrSet["loTypeId"] != undefined && oPtPrSet.setLoTypeId(oParsedPtPrSet["loTypeId"]); oParsedPtPrSet["phldr"] != undefined && oPtPrSet.setPhldr(oParsedPtPrSet["phldr"]); oParsedPtPrSet["phldrT"] != undefined && oPtPrSet.setPhldrT(oParsedPtPrSet["phldrT"]); oParsedPtPrSet["presAssocID"] != undefined && oPtPrSet.setPresAssocID(oParsedPtPrSet["presAssocID"]); oParsedPtPrSet["presLayoutVars"] != undefined && oPtPrSet.setPresLayoutVars(this.NodeItemFromJSON(oParsedPtPrSet["presLayoutVars"])); oParsedPtPrSet["presName"] != undefined && oPtPrSet.setPresName(oParsedPtPrSet["presName"]); oParsedPtPrSet["presStyleCnt"] != undefined && oPtPrSet.setPresStyleCnt(oParsedPtPrSet["presStyleCnt"]); oParsedPtPrSet["presStyleIdx"] != undefined && oPtPrSet.setPresStyleIdx(oParsedPtPrSet["presStyleIdx"]); oParsedPtPrSet["presStyleLbl"] != undefined && oPtPrSet.setPresStyleLbl(oParsedPtPrSet["presStyleLbl"]); oParsedPtPrSet["qsCatId"] != undefined && oPtPrSet.setQsCatId(oParsedPtPrSet["qsCatId"]); oParsedPtPrSet["qsTypeId"] != undefined && oPtPrSet.setQsTypeId(oParsedPtPrSet["qsTypeId"]); oParsedPtPrSet["style"] != undefined && oPtPrSet.setStyle(this.DataFromJSON(oParsedPtPrSet["style"])); return oPtPrSet; }; ReaderFromJSON.prototype.NodeItemFromJSON = function(oParsedNodeItem) { switch (oParsedNodeItem["objType"]) { case "alg": return this.AlgFromJSON(oParsedNodeItem); case "choose": return this.ChooseFromJSON(oParsedNodeItem); case "constrLst": return this.ConstrLstFromJSON(oParsedNodeItem); case "forEach": return this.ForEachFromJSON(oParsedNodeItem); case "layoutNode": return this.LayoutNodeFromJSON(oParsedNodeItem); case "presOf": return this.PresOfFromJSON(oParsedNodeItem); case "ruleLst": return this.RuleLstFromJSON(oParsedNodeItem); case "sshape": return this.SShapeFromJSON(oParsedNodeItem); case "varLst": return this.VarLstFromJSON(oParsedNodeItem); default: return null; } }; ReaderFromJSON.prototype.SShapeFromJSON = function(oParsedSShape) { var oSShape = new AscFormat.SShape(); oParsedSShape["blip"] != undefined && oSShape.setBlip(oParsedSShape["blip"]); oParsedSShape["blipPhldr"] != undefined && oSShape.setBlipPhldr(oParsedSShape["blipPhldr"]); oParsedSShape["hideGeom"] != undefined && oSShape.setHideGeom(oParsedSShape["hideGeom"]); oParsedSShape["lkTxEntry"] != undefined && oSShape.setLkTxEntry(oParsedSShape["lkTxEntry"]); oParsedSShape["rot"] != undefined && oSShape.setRot(oParsedSShape["rot"]); oParsedSShape["type"] != undefined && oSShape.setType(oParsedSShape["type"]); oParsedSShape["zOrderOff"] != undefined && oSShape.setZOrderOff(oParsedSShape["zOrderOff"]); oParsedSShape["adjLst"] != undefined && oSShape.setAdjLst(this.AdjLstFromJSON(oParsedSShape["adjLst"])); return oSShape; }; ReaderFromJSON.prototype.AdjLstFromJSON = function(oParsedAdjLst) { var oAdjLst = new AscFormat.AdjLst(); for (var nItem = 0; nItem < oParsedAdjLst["list"].length; nItem++) oAdjLst.addToLst(oAdjLst.list.length, this.AdjFromJSON(oParsedAdjLst["list"][nItem])); return oAdjLst; }; ReaderFromJSON.prototype.AdjFromJSON = function(oParsedAdj) { var oAdj = new AscFormat.Adj(); oParsedAdj["idx"] != undefined && oAdj.setIdx(oParsedAdj["idx"]); oParsedAdj["val"] != undefined && oAdj.setVal(oParsedAdj["val"]); return oAdj; }; ReaderFromJSON.prototype.RuleLstFromJSON = function(oParsedRuleLst) { var oRuleLst = new AscFormat.RuleLst(); for (var nItem = 0; nItem < oParsedRuleLst["list"].length; nItem++) oRuleLst.addToLst(oRuleLst.list.length, this.RuleFromJSON(oParsedRuleLst["list"][nItem])); return oRuleLst; }; ReaderFromJSON.prototype.RuleFromJSON = function(oParsedRule) { var oRule = new AscFormat.Rule(); var fact = oParsedRule["fact"] === "Nan" ? NaN : oParsedRule["fact"]; var max = oParsedRule["max"] === "Nan" ? NaN : oParsedRule["max"]; fact != undefined && oRule.setFact(fact); oParsedRule["for"] != undefined && oRule.setFor(From_XML_ST_ConstraintRelationship(oParsedRule["for"])); oParsedRule["forName"] != undefined && oRule.setForName(oParsedRule["forName"]); max != undefined && oRule.setMax(max); oParsedRule["ptType"] != undefined && oRule.setPtType(From_XML_ST_ElementType(oParsedRule["ptType"]["val"])); oParsedRule["type"] != undefined && oRule.setType(From_XML_ST_ConstraintType(oParsedRule["type"])); oParsedRule["val"] != undefined && oRule.setVal(oParsedRule["val"]); return oRule; }; ReaderFromJSON.prototype.PresOfFromJSON = function(oParsedPresOf) { var oPresOf = new AscFormat.PresOf(); this.IteratorAttributesFromJSON(oParsedPresOf, oPresOf); return oPresOf; }; ReaderFromJSON.prototype.LayoutNodeFromJSON = function(oParsedLayoutNode) { var oLayoutNode = new AscFormat.LayoutNode(); for (var nItem = 0; nItem < oParsedLayoutNode["list"].length; nItem++) oLayoutNode.addToLst(oLayoutNode.list.length, this.NodeItemFromJSON(oParsedLayoutNode["list"][nItem])); oParsedLayoutNode["alg"] != undefined && oLayoutNode.setAlg(this.NodeItemFromJSON(oParsedLayoutNode["alg"])); oParsedLayoutNode["shape"] != undefined && oLayoutNode.setShape(this.NodeItemFromJSON(oParsedLayoutNode["shape"])); oParsedLayoutNode["presOf"] != undefined && oLayoutNode.setPresOf(this.NodeItemFromJSON(oParsedLayoutNode["presOf"])); oParsedLayoutNode["constrLst"] != undefined && oLayoutNode.setConstrLst(this.NodeItemFromJSON(oParsedLayoutNode["constrLst"])); oParsedLayoutNode["ruleLst"] != undefined && oLayoutNode.setRuleLst(this.NodeItemFromJSON(oParsedLayoutNode["ruleLst"])); oParsedLayoutNode["varLst"] != undefined && oLayoutNode.setVarLst(this.NodeItemFromJSON(oParsedLayoutNode["varLst"])); oParsedLayoutNode["chOrder"] != undefined && oLayoutNode.setChOrder(From_XML_ST_ChildOrderType(oParsedLayoutNode["chOrder"])); oParsedLayoutNode["moveWith"] != undefined && oLayoutNode.setMoveWith(oParsedLayoutNode["moveWith"]); oParsedLayoutNode["name"] != undefined && oLayoutNode.setName(oParsedLayoutNode["name"]); oParsedLayoutNode["styleLbl"] != undefined && oLayoutNode.setStyleLbl(oParsedLayoutNode["styleLbl"]); return oLayoutNode; }; ReaderFromJSON.prototype.ForEachFromJSON = function(oParsedForEach) { var oForEach = new AscFormat.ForEach(); for (var nItem = 0; nItem < oParsedForEach["list"].length; nItem++) oForEach.addToLst(oForEach.list.length, this.NodeItemFromJSON(oParsedForEach["list"][nItem])); oParsedForEach["alg"] != undefined && oForEach.setAlg(this.NodeItemFromJSON(oParsedForEach["alg"])); oParsedForEach["shape"] != undefined && oForEach.setShape(this.NodeItemFromJSON(oParsedForEach["shape"])); oParsedForEach["presOf"] != undefined && oForEach.setPresOf(this.NodeItemFromJSON(oParsedForEach["presOf"])); oParsedForEach["constrLst"] != undefined && oForEach.setConstrLst(this.NodeItemFromJSON(oParsedForEach["constrLst"])); oParsedForEach["ruleLst"] != undefined && oForEach.setRuleLst(this.NodeItemFromJSON(oParsedForEach["ruleLst"])); oParsedForEach["varLst"] != undefined && oForEach.setVarLst(this.NodeItemFromJSON(oParsedForEach["varLst"])); oParsedForEach["name"] != undefined && oForEach.setName(oParsedForEach["name"]); oParsedForEach["ref"] != undefined && oForEach.setRef(oParsedForEach["ref"]); this.IteratorAttributesFromJSON(oParsedForEach, oForEach); return oForEach; }; ReaderFromJSON.prototype.ConstrLstFromJSON = function(oParsedConstrLst) { var oConstrLst = new AscFormat.ConstrLst(); for (var nItem = 0; nItem < oParsedConstrLst["list"].length; nItem++) oConstrLst.addToLst(oConstrLst.list.length, this.ConstrFromJSON(oParsedConstrLst["list"][nItem])); return oConstrLst; }; ReaderFromJSON.prototype.ConstrFromJSON = function(oParsedConstr) { var oConstr = new AscFormat.Constr(); oParsedConstr["fact"] != undefined && oConstr.setFact(oParsedConstr["fact"]); oParsedConstr["for"] != undefined && oConstr.setFor(From_XML_ST_ConstraintRelationship(oParsedConstr["for"])); oParsedConstr["forName"] != undefined && oConstr.setForName(oParsedConstr["forName"]); oParsedConstr["op"] != undefined && oConstr.setOp(From_XML_ST_BoolOperator(oParsedConstr["op"])); oParsedConstr["ptType"] != undefined && oConstr.setPtType(From_XML_ST_ElementType(oParsedConstr["ptType"]["val"])); oParsedConstr["refFor"] != undefined && oConstr.setRefFor(From_XML_ST_ConstraintRelationship(oParsedConstr["refFor"])); oParsedConstr["refForName"] != undefined && oConstr.setRefForName(oParsedConstr["refForName"]); oParsedConstr["refPtType"] != undefined && oConstr.setRefPtType(From_XML_ST_ElementType(oParsedConstr["refPtType"]["val"])); oParsedConstr["refType"] != undefined && oConstr.setRefType(From_XML_ST_ConstraintType(oParsedConstr["refType"])); oParsedConstr["type"] != undefined && oConstr.setType(From_XML_ST_ConstraintType(oParsedConstr["type"])); oParsedConstr["val"] != undefined && oConstr.setVal(oParsedConstr["val"]); return oConstr; }; ReaderFromJSON.prototype.ChooseFromJSON = function(oParsedChoose) { var oChoose = new AscFormat.Choose(); for (var nIf = 0; nIf < oParsedChoose["if"].length; nIf++) oChoose.addToLstIf(oChoose.if.length, this.IfFromJSON(oParsedChoose["if"][nIf])); oParsedChoose["else"] && oChoose.setElse(this.ElseFromJSON(oParsedChoose["else"])); oParsedChoose["name"] != undefined && oChoose.setName(oParsedChoose["name"]); return oChoose; }; ReaderFromJSON.prototype.ElseFromJSON = function(oParsedElse) { var oElse = new AscFormat.Else(); for (var nItem = 0; nItem < oParsedElse["list"].length; nItem++) oElse.addToLst(oElse.list.length, this.NodeItemFromJSON(oParsedElse["list"][nItem])); oParsedElse["alg"] != undefined && oElse.setAlg(this.NodeItemFromJSON(oParsedElse["alg"])); oParsedElse["shape"] != undefined && oElse.setShape(this.NodeItemFromJSON(oParsedElse["shape"])); oParsedElse["presOf"] != undefined && oElse.setPresOf(this.NodeItemFromJSON(oParsedElse["presOf"])); oParsedElse["constrLst"] != undefined && oElse.setConstrLst(this.NodeItemFromJSON(oParsedElse["constrLst"])); oParsedElse["ruleLst"] != undefined && oElse.setRuleLst(this.NodeItemFromJSON(oParsedElse["ruleLst"])); oParsedElse["varLst"] != undefined && oElse.setVarLst(this.NodeItemFromJSON(oParsedElse["varLst"])); oParsedElse["name"] != undefined && oElse.setName(oParsedElse["name"]); return oElse; }; ReaderFromJSON.prototype.IfFromJSON = function(oParsedIf) { var oIf = new AscFormat.If(); for (var nItem = 0; nItem < oParsedIf["list"].length; nItem++) oIf.addToLst(oIf.list.length, this.NodeItemFromJSON(oParsedIf["list"][nItem])); oParsedIf["alg"] != undefined && oIf.setAlg(this.NodeItemFromJSON(oParsedIf["alg"])); oParsedIf["shape"] != undefined && oIf.setShape(this.NodeItemFromJSON(oParsedIf["shape"])); oParsedIf["presOf"] != undefined && oIf.setPresOf(this.NodeItemFromJSON(oParsedIf["presOf"])); oParsedIf["constrLst"] != undefined && oIf.setConstrLst(this.NodeItemFromJSON(oParsedIf["constrLst"])); oParsedIf["ruleLst"] != undefined && oIf.setRuleLst(this.NodeItemFromJSON(oParsedIf["ruleLst"])); oParsedIf["varLst"] != undefined && oIf.setVarLst(this.NodeItemFromJSON(oParsedIf["varLst"])); oParsedIf["arg"] != undefined && oIf.setArg(oParsedIf["arg"]); oParsedIf["func"] != undefined && oIf.setFunc(From_XML_ST_FunctionType(oParsedIf["func"])); oParsedIf["name"] != undefined && oIf.setName(oParsedIf["name"]); oParsedIf["op"] != undefined && oIf.setOp(From_XML_ST_FunctionOperator(oParsedIf["op"])); oParsedIf["val"] != undefined && oIf.setVal(oParsedIf["val"]); this.IteratorAttributesFromJSON(oParsedIf, oIf); return oIf; }; ReaderFromJSON.prototype.IteratorAttributesFromJSON = function(oParsedIterAttr, oParent) { for (var nAxie = 0; nAxie < oParsedIterAttr["axis"].length; nAxie++) oParent.addToLstAxis(oParent.axis.length, From_XML_ST_AxisType(oParsedIterAttr["axis"][nAxie]["val"])); for (var nCnt = 0; nCnt < oParsedIterAttr["cnt"].length; nCnt++) oParent.addToLstCnt(oParent.cnt.length, oParsedIterAttr["cnt"][nCnt]); for (var nItem = 0; nItem < oParsedIterAttr["hideLastTrans"].length; nItem++) oParent.addToLstHideLastTrans(oParent.hideLastTrans.length, oParsedIterAttr["hideLastTrans"][nItem]); for (var nPtType = 0; nPtType < oParsedIterAttr["ptType"].length; nPtType++) oParent.addToLstPtType(oParent.ptType.length, From_XML_ST_ElementType(oParsedIterAttr["ptType"][nPtType]["val"])); for (var nSt = 0; nSt < oParsedIterAttr["st"].length; nSt++) oParent.addToLstSt(oParent.st.length, oParsedIterAttr["st"][nSt]); for (var nStep = 0; nStep < oParsedIterAttr["step"].length; nStep++) oParent.addToLstStep(oParent.step.length, oParsedIterAttr["step"][nStep]); }; ReaderFromJSON.prototype.AlgFromJSON = function(oParsedAlg) { var oAlg = new AscFormat.Alg(); for (var nParam = 0; nParam < oParsedAlg["param"].length; nParam++) oAlg.addToLstParam(oAlg.param.length, this.AlgParamFromJSON(oParsedAlg["param"][nParam])); oParsedAlg["rev"] != undefined && oAlg.setRev(oParsedAlg["rev"]); oParsedAlg["type"] != undefined && oAlg.setType(From_XML_ST_AlgorithmType(oParsedAlg["type"])); return oAlg; }; ReaderFromJSON.prototype.AlgParamFromJSON = function(oParsedAlgParam) { var oAlgParam = new AscFormat.Param(); oParsedAlgParam["type"] != undefined && oAlgParam.setType(From_XML_ST_ParameterId(oParsedAlgParam["type"])); oParsedAlgParam["val"] != undefined && oAlgParam.setVal(oParsedAlgParam["val"]); return oAlgParam; }; ReaderFromJSON.prototype.VarLstFromJSON = function(oParsedVarLst) { var oVarLst = new AscFormat.VarLst(); oParsedVarLst["animLvl"] && oVarLst.setAnimLvl(From_XML_ST_AnimLvlStr(oParsedVarLst["animLvl"]["val"])); oParsedVarLst["animOne"] && oVarLst.setAnimOne(From_XML_ST_AnimOneStr(oParsedVarLst["animOne"]["val"])); oParsedVarLst["bulletEnabled"] && oVarLst.setBulletEnabled(oParsedVarLst["bulletEnabled"]["val"]); oParsedVarLst["chMax"] && oVarLst.setChMax(oParsedVarLst["chMax"]["val"]); oParsedVarLst["chPref"] && oVarLst.setChPref(oParsedVarLst["chPref"]["val"]); oParsedVarLst["dir"] && oVarLst.setDir(From_XML_ST_Direction(oParsedVarLst["dir"]["val"])); oParsedVarLst["hierBranch"] && oVarLst.setHierBranch(From_XML_ST_HierBranchStyle(oParsedVarLst["hierBranch"]["val"])); oParsedVarLst["orgChart"] && oVarLst.setOrgChart(oParsedVarLst["orgChart"]["val"]); oParsedVarLst["resizeHandles"] && oVarLst.setResizeHandles(From_XML_ST_ResizeHandlesStr(oParsedVarLst["resizeHandles"]["val"])); return oVarLst; }; ReaderFromJSON.prototype.CxnLstFromJSON = function(oParsedCxnLst) { var oCxnLst = new AscFormat.CxnLst(); for (var nItem = 0; nItem < oParsedCxnLst["list"].length; nItem++) oCxnLst.addToLst(oCxnLst.list.length, this.CxnFromJSON(oParsedCxnLst["list"][nItem])); return oCxnLst; }; ReaderFromJSON.prototype.CxnFromJSON = function(oParsedCxn) { var oCxn = new AscFormat.Cxn(); oParsedCxn["destId"] != undefined && oCxn.setDestId(oParsedCxn["destId"]); oParsedCxn["destOrd"] != undefined && oCxn.setDestOrd(oParsedCxn["destOrd"]); oParsedCxn["modelId"] != undefined && oCxn.setModelId(oParsedCxn["modelId"]); oParsedCxn["parTransId"] != undefined && oCxn.setParTransId(oParsedCxn["parTransId"]); oParsedCxn["presId"] != undefined && oCxn.setPresId(oParsedCxn["presId"]); oParsedCxn["sibTransId"] != undefined && oCxn.setSibTransId(oParsedCxn["sibTransId"]); oParsedCxn["srcId"] != undefined && oCxn.setSrcId(oParsedCxn["srcId"]); oParsedCxn["srcOrd"] != undefined && oCxn.setSrcOrd(oParsedCxn["srcOrd"]); oParsedCxn["type"] != undefined && oCxn.setType(oParsedCxn["type"]); return oCxn; }; ReaderFromJSON.prototype.BgFormatFromJSON = function(oParsedBgFormat) { var oBgFormat = new AscFormat.BgFormat(); (oParsedBgFormat["effectDag"] || oParsedBgFormat["effectLst"]) && oBgFormat.setEffect(this.EffectPropsFromJSON(oParsedBgFormat["effectDag"], oParsedBgFormat["effectLst"])); oParsedBgFormat["fill"] && oBgFormat.setFill(this.FillFromJSON(oParsedBgFormat["fill"])); return oBgFormat; }; ReaderFromJSON.prototype.ColorsDefFromJSON = function(oParsedColorsDef) { var oColorsDef = new AscFormat.ColorsDef(); oParsedColorsDef["catLst"] && oColorsDef.setCatLst(this.CatLstFromJSON(oParsedColorsDef["catLst"])); oParsedColorsDef["desc"] && oColorsDef.setDesc(this.DescFromJSON(oParsedColorsDef["desc"])); for (var nStyle = 0; nStyle < oParsedColorsDef["styleLbl"].length; nStyle++) oColorsDef.addToLstStyleLbl(this.ColorDefStyleLblFromJSON(oParsedColorsDef["styleLbl"][nStyle])); oParsedColorsDef["title"] && oColorsDef.setTitle(this.DescFromJSON(oParsedColorsDef["title"])); oParsedColorsDef["minVer"] != undefined && oColorsDef.setMinVer(oParsedColorsDef["minVer"]); oParsedColorsDef["uniqueId"] != undefined && oColorsDef.setUniqueId(oParsedColorsDef["uniqueId"]); return oColorsDef; }; ReaderFromJSON.prototype.ColorDefStyleLblFromJSON = function(oParsedLbl) { var oLbl = new AscFormat.ColorDefStyleLbl(); oParsedLbl["effectClrLst"] && oLbl.setEffectClrLst(this.ClrLstFromJSON(oParsedLbl["effectClrLst"])); oParsedLbl["fillClrLst"] && oLbl.setFillClrLst(this.ClrLstFromJSON(oParsedLbl["fillClrLst"])); oParsedLbl["linClrLst"] && oLbl.setLinClrLst(this.ClrLstFromJSON(oParsedLbl["linClrLst"])); oParsedLbl["txEffectClrLst"] && oLbl.setTxEffectClrLst(this.ClrLstFromJSON(oParsedLbl["txEffectClrLst"])); oParsedLbl["txFillClrLst"] && oLbl.setTxFillClrLst(this.ClrLstFromJSON(oParsedLbl["txFillClrLst"])); oParsedLbl["txLinClrLst"] && oLbl.setTxLinClrLst(this.ClrLstFromJSON(oParsedLbl["txLinClrLst"])); oParsedLbl["name"] != undefined && oLbl.setName(oParsedLbl["name"]); return oLbl; }; ReaderFromJSON.prototype.ClrLstFromJSON = function(oParsedClrLst) { var oClrLst = null; switch (oParsedClrLst["type"]) { case "effectClrLst": case "fillClrLst": case "linClrLst": case "txEffectClrLst": case "txFillClrLst": case "txLinClrLst": oClrLst = new AscFormat.ClrLst(); break; } if (oClrLst) { oParsedClrLst["hueDir"] != undefined && oClrLst.setHueDir(From_XML_ST_HueDir(oParsedClrLst["hueDir"])); oParsedClrLst["meth"] != undefined && oClrLst.setMeth(From_XML_ST_ClrAppMethod(oParsedClrLst["meth"])); for (var nColor = 0; nColor < oParsedClrLst["list"].length; nColor++) oClrLst.addToLst(oClrLst.list.length, this.ColorFromJSON(oParsedClrLst["list"][nColor])); } return oClrLst; }; ReaderFromJSON.prototype.DescFromJSON = function(oParsedDesc) { var oDesc = null; if (oParsedDesc["type"] === "desc" || oParsedDesc["type"] === "diagramTitle") oDesc = new AscFormat.DiagramTitle(); if (oDesc) { oParsedDesc["val"] != undefined && oDesc.setVal(oParsedDesc["val"]); oParsedDesc["lang"] != undefined && oDesc.setLang(oParsedDesc["lang"]); } return oDesc; }; ReaderFromJSON.prototype.CatLstFromJSON = function(oParsedCatLst) { var oCatLst = new AscFormat.CatLst(); for (var nCat = 0; nCat < oParsedCatLst["list"].length; nCat++) oCatLst.addToLst(oCatLst.list.length, this.SCatFromJSON(oParsedCatLst["list"][nCat])); return oCatLst; }; ReaderFromJSON.prototype.SCatFromJSON = function(oParsedSCat) { var oSCat = new AscFormat.SCat(); oParsedSCat["pri"] != undefined && oSCat.setPri(oParsedSCat["pri"]); oParsedSCat["type"] != undefined && oSCat.setType(oParsedSCat["type"]); return oSCat; }; ReaderFromJSON.prototype.ChartSpaceFromJSON = function(oParsedChart, oParentDrawing) { var oChartSpace = new AscFormat.CChartSpace(); oChartSpace.setBDeleted(false); oChartSpace.setChart(this.ChartFromJSON(oParsedChart["chart"], oChartSpace)); oChartSpace.setSpPr(this.SpPrFromJSON(oParsedChart["spPr"], oChartSpace)); if (oParsedChart["nvGraphicFramePr"]) { oChartSpace.setNvSpPr(this.UniNvPrFromJSON(oParsedChart["nvGraphicFramePr"])); this.map_shapes_by_id[oChartSpace.nvGraphicFramePr.cNvPr.id] = oChartSpace; } oParsedChart["chartColors"] && oChartSpace.setChartColors(this.ChartColorsFromJSON(oParsedChart["chartColors"])); oParsedChart["chartStyle"] && oChartSpace.setChartStyle(this.ChartStyleFromJSON(oParsedChart["chartStyle"])); oParsedChart["clrMapOvr"] && oChartSpace.setClrMapOvr(this.ColorMapOvrFromJSON(oParsedChart["clrMapOvr"])); oParsedChart["pivotSource"] && oChartSpace.setPivotSource(this.PivotSourceFromJSON(oParsedChart["pivotSource"], oChartSpace)); oParsedChart["printSettings"] && oChartSpace.setPrintSettings(this.PrintSettingsFromJSON(oParsedChart["printSettings"], oChartSpace)); oParsedChart["protection"] && oChartSpace.setProtection(this.ProtectionFromJSON(oParsedChart["protection"])); oParsedChart["txPr"] && oChartSpace.setTxPr(this.TxPrFromJSON(oParsedChart["txPr"], oChartSpace)); oParsedChart["date1904"] != null && oChartSpace.setDate1904(); oParsedChart["lang"] != null && oChartSpace.setLang(oParsedChart["lang"]); oChartSpace.setRoundedCorners(oParsedChart["roundedCorners"]); oChartSpace.setStyle(oParsedChart["style"]); for (var nUserShape = 0; nUserShape < oParsedChart["userShapes"].length; nUserShape++) oChartSpace.addUserShape(undefined, this.UserShapeFromJSON(oParsedChart["userShapes"][nUserShape])); if (oParentDrawing) { oChartSpace.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oChartSpace); oChartSpace.spPr.xfrm && oParentDrawing.setExtent(oChartSpace.spPr.xfrm.extX, oChartSpace.spPr.xfrm.extY); } oChartSpace.bDeleted = false; oChartSpace.updateLinks(); if (oChartSpace.nvGraphicFramePr && oChartSpace.nvGraphicFramePr.locks > 0) oChartSpace.setLocks(oChartSpace.nvGraphicFramePr.locks); return oChartSpace; }; ReaderFromJSON.prototype.GraphicFrameFromJSON = function(oParsedGraphFrame) { var oGraphicFrame = new AscFormat.CGraphicFrame(); if (oParsedGraphFrame["nvGraphicFramePr"]) { oGraphicFrame.setNvSpPr(this.UniNvPrFromJSON(oParsedGraphFrame["nvGraphicFramePr"])); this.map_shapes_by_id[oGraphicFrame.nvGraphicFramePr.cNvPr.id] = oGraphicFrame; } oParsedGraphFrame["spPr"] && oGraphicFrame.setSpPr(this.SpPrFromJSON(oParsedGraphFrame["spPr"])); oParsedGraphFrame["graphic"] && oGraphicFrame.setGraphicObject(this.DrawingTableFromJSON(oParsedGraphFrame["graphic"], oGraphicFrame)); oGraphicFrame.setBDeleted(false); if (oGraphicFrame.nvGraphicFramePr && oGraphicFrame.nvGraphicFramePr.locks > 0) oGraphicFrame.setLocks(oGraphicFrame.nvGraphicFramePr.locks); return oGraphicFrame; }; ReaderFromJSON.prototype.ColorMapOvrFromJSON = function(oParsedClrMap, oClrMap) { if (!oClrMap) oClrMap = new AscFormat.ClrMap(); if (oParsedClrMap["bg1"] != null) oClrMap.setClr(6, oClrMap.getColorIdx(oParsedClrMap["bg1"])); if (oParsedClrMap["tx1"] != null) oClrMap.setClr(15, oClrMap.getColorIdx(oParsedClrMap["tx1"])); if (oParsedClrMap["bg2"] != null) oClrMap.setClr(7, oClrMap.getColorIdx(oParsedClrMap["bg2"])); if (oParsedClrMap["tx2"] != null) oClrMap.setClr(16, oClrMap.getColorIdx(oParsedClrMap["tx2"])); if (oParsedClrMap["accent1"] != null) oClrMap.setClr(0, oClrMap.getColorIdx(oParsedClrMap["accent1"])); if (oParsedClrMap["accent2"] != null) oClrMap.setClr(1, oClrMap.getColorIdx(oParsedClrMap["accent2"])); if (oParsedClrMap["accent3"] != null) oClrMap.setClr(2, oClrMap.getColorIdx(oParsedClrMap["accent3"])); if (oParsedClrMap["accent4"] != null) oClrMap.setClr(3, oClrMap.getColorIdx(oParsedClrMap["accent4"])); if (oParsedClrMap["accent5"] != null) oClrMap.setClr(4, oClrMap.getColorIdx(oParsedClrMap["accent5"])); if (oParsedClrMap["accent6"] != null) oClrMap.setClr(5, oClrMap.getColorIdx(oParsedClrMap["accent6"])); if (oParsedClrMap["hlink"] != null) oClrMap.setClr(11, oClrMap.getColorIdx(oParsedClrMap["hlink"])); if (oParsedClrMap["folHlink"] != null) oClrMap.setClr(10, oClrMap.getColorIdx(oParsedClrMap["folHlink"])); return oClrMap; }; ReaderFromJSON.prototype.UserShapeFromJSON = function(oParsedUserShape) { var oUserShape = oParsedUserShape["type"] === "relSizeAnchor" ? new AscFormat.CRelSizeAnchor() : new AscFormat.CAbsSizeAnchor(); var oGraphicObj = this.GraphicObjFromJSON(oParsedUserShape["object"]); oUserShape.setFromTo(private_Twips2MM(oParsedUserShape["fromX"]), private_Twips2MM(oParsedUserShape["fromY"]), oParsedUserShape["toX"], oParsedUserShape["toY"]); oUserShape.setObject(oGraphicObj); return oUserShape; }; ReaderFromJSON.prototype.ChartColorsFromJSON = function(oParsedChartColors) { var oChartColors = new AscFormat.CChartColors(); for (var nItem = 0; nItem < oParsedChartColors["items"].length; nItem++) { if (oParsedChartColors["items"][nItem]["type"] && oParsedChartColors["items"][nItem]["type"] === "uniColor") oChartColors.addItem(this.ColorFromJSON(oParsedChartColors["items"][nItem])); else oChartColors.addItem(this.ColorModifiersFromJSON(oParsedChartColors["items"][nItem])); } oChartColors.setId(oParsedChartColors["id"]); oChartColors.setMeth(oParsedChartColors["meth"]); return oChartColors; }; ReaderFromJSON.prototype.ChartStyleFromJSON = function(oParsedChartStyle) { var oChartStyle = new AscFormat.CChartStyle(); oChartStyle.setId(oParsedChartStyle["id"]); oParsedChartStyle["axisTitle"] && oChartStyle.setAxisTitle(this.StyleEntryFromJSON(oParsedChartStyle["axisTitle"])); oParsedChartStyle["categoryAxis"] && oChartStyle.setCategoryAxis(this.StyleEntryFromJSON(oParsedChartStyle["categoryAxis"])); oParsedChartStyle["chartArea"] && oChartStyle.setChartArea(this.StyleEntryFromJSON(oParsedChartStyle["chartArea"])); oParsedChartStyle["dataLabel"] && oChartStyle.setDataLabel(this.StyleEntryFromJSON(oParsedChartStyle["dataLabel"])); oParsedChartStyle["dataLabelCallout"] && oChartStyle.setDataLabelCallout(this.StyleEntryFromJSON(oParsedChartStyle["dataLabelCallout"])); oParsedChartStyle["dataPoint"] && oChartStyle.setDataPoint(this.StyleEntryFromJSON(oParsedChartStyle["dataPoint"])); oParsedChartStyle["dataPoint3D"] && oChartStyle.setDataPoint3D(this.StyleEntryFromJSON(oParsedChartStyle["dataPoint3D"])); oParsedChartStyle["dataPointLine"] && oChartStyle.setDataPointLine(this.StyleEntryFromJSON(oParsedChartStyle["dataPointLine"])); oParsedChartStyle["dataPointMarker"] && oChartStyle.setDataPointMarker(this.StyleEntryFromJSON(oParsedChartStyle["dataPointMarker"])); oParsedChartStyle["dataPointWireframe"] && oChartStyle.setDataPointWireframe(this.StyleEntryFromJSON(oParsedChartStyle["dataPointWireframe"])); oParsedChartStyle["dataTable"] && oChartStyle.setDataTable(this.StyleEntryFromJSON(oParsedChartStyle["dataTable"])); oParsedChartStyle["downBar"] && oChartStyle.setDownBar(this.StyleEntryFromJSON(oParsedChartStyle["downBar"])); oParsedChartStyle["dropLine"] && oChartStyle.setDropLine(this.StyleEntryFromJSON(oParsedChartStyle["dropLine"])); oParsedChartStyle["errorBar"] && oChartStyle.setErrorBar(this.StyleEntryFromJSON(oParsedChartStyle["errorBar"])); oParsedChartStyle["floor"] && oChartStyle.setFloor(this.StyleEntryFromJSON(oParsedChartStyle["floor"])); oParsedChartStyle["gridlineMajor"] && oChartStyle.setGridlineMajor(this.StyleEntryFromJSON(oParsedChartStyle["gridlineMajor"])); oParsedChartStyle["gridlineMinor"] && oChartStyle.setGridlineMinor(this.StyleEntryFromJSON(oParsedChartStyle["gridlineMinor"])); oParsedChartStyle["hiLoLine"] && oChartStyle.setHiLoLine(this.StyleEntryFromJSON(oParsedChartStyle["hiLoLine"])); oParsedChartStyle["leaderLine"] && oChartStyle.setLeaderLine(this.StyleEntryFromJSON(oParsedChartStyle["leaderLine"])); oParsedChartStyle["legend"] && oChartStyle.setLegend(this.StyleEntryFromJSON(oParsedChartStyle["legend"])); oParsedChartStyle["plotArea"] && oChartStyle.setPlotArea(this.StyleEntryFromJSON(oParsedChartStyle["plotArea"])); oParsedChartStyle["plotArea3D"] && oChartStyle.setPlotArea3D(this.StyleEntryFromJSON(oParsedChartStyle["plotArea3D"])); oParsedChartStyle["seriesAxis"] && oChartStyle.setSeriesAxis(this.StyleEntryFromJSON(oParsedChartStyle["seriesAxis"])); oParsedChartStyle["seriesLine"] && oChartStyle.setSeriesLine(this.StyleEntryFromJSON(oParsedChartStyle["seriesLine"])); oParsedChartStyle["title"] && oChartStyle.setTitle(this.StyleEntryFromJSON(oParsedChartStyle["title"])); oParsedChartStyle["trendline"] && oChartStyle.setTrendline(this.StyleEntryFromJSON(oParsedChartStyle["trendline"])); oParsedChartStyle["trendlineLabel"] && oChartStyle.setTrendlineLabel(this.StyleEntryFromJSON(oParsedChartStyle["trendlineLabel"])); oParsedChartStyle["upBar"] && oChartStyle.setUpBar(this.StyleEntryFromJSON(oParsedChartStyle["upBar"])); oParsedChartStyle["valueAxis"] && oChartStyle.setValueAxis(this.StyleEntryFromJSON(oParsedChartStyle["valueAxis"])); oParsedChartStyle["wall"] && oChartStyle.setWall(this.StyleEntryFromJSON(oParsedChartStyle["wall"])); oParsedChartStyle["markerLayout"] && oChartStyle.setMarkerLayout(this.MarkerLayoutFromJSON(oParsedChartStyle["markerLayout"])); return oChartStyle; }; ReaderFromJSON.prototype.StyleEntryFromJSON = function(oParsedStyleEntry) { var oStyleEntry = new AscFormat.CStyleEntry(); oStyleEntry.setType(FromXML_StyleEntryType(oParsedStyleEntry["type"])); oStyleEntry.setLineWidthScale(oParsedStyleEntry["lineWidthScale"]); oParsedStyleEntry["lnRef"] && oStyleEntry.setLnRef(this.StyleRefFromJSON(oParsedStyleEntry["lnRef"])); oParsedStyleEntry["fillRef"] && oStyleEntry.setFillRef(this.StyleRefFromJSON(oParsedStyleEntry["fillRef"])); oParsedStyleEntry["effectRef"] && oStyleEntry.setEffectRef(this.StyleRefFromJSON(oParsedStyleEntry["effectRef"])); oParsedStyleEntry["fontRef"] && oStyleEntry.setFontRef(this.FontRefFromJSON(oParsedStyleEntry["fontRef"])); oParsedStyleEntry["defRPr"] && oStyleEntry.setDefRPr(this.TextPrDrawingFromJSON(oParsedStyleEntry["defRPr"])); oParsedStyleEntry["bodyPr"] && oStyleEntry.setBodyPr(this.BodyPrFromJSON(oParsedStyleEntry["bodyPr"])); oParsedStyleEntry["spPr"] && oStyleEntry.setSpPr(this.SpPrFromJSON(oParsedStyleEntry["spPr"], oStyleEntry)); return oStyleEntry; }; ReaderFromJSON.prototype.MarkerLayoutFromJSON = function(oParsedMarkerLayout) { var oMarkerLayout = new AscFormat.CMarkerLayout(); oMarkerLayout.setSize(oParsedMarkerLayout["size"]); oMarkerLayout.setSymbol(oParsedMarkerLayout["symbol"]); return oMarkerLayout; }; ReaderFromJSON.prototype.PivotSourceFromJSON = function(oParsedPivotSource, oParentChart) { var oPivotSource = new AscFormat.CPivotSource(); oPivotSource.setParent(oParentChart); oPivotSource.setFmtId(oParsedPivotSource["fmtId"]); oPivotSource.setName(oParsedPivotSource["name"]); return oPivotSource; }; ReaderFromJSON.prototype.PrintSettingsFromJSON = function(oParsedPrintSettings, oParentChart) { var oPrintSettings = new AscFormat.CPrintSettings(); oPrintSettings.setParent(oParentChart); oParsedPrintSettings["headerFooter"] && oPrintSettings.setHeaderFooter(this.HeaderFooterChartFromJSON(oParsedPrintSettings["headerFooter"])); oParsedPrintSettings["pageMargins"] && oPrintSettings.setPageMargins(this.PageMarginsChartFromJSON(oParsedPrintSettings["pageMargins"])); oParsedPrintSettings["pageSetup"] && oPrintSettings.setPageSetup(this.PageSetupFromJSON(oParsedPrintSettings["pageSetup"])); return oPrintSettings; }; ReaderFromJSON.prototype.ProtectionFromJSON = function(oParsedProtection) { var oProtection = new AscFormat.CProtection(); oProtection.setChartObject(oParsedProtection["chartObject"]); oProtection.setData(oParsedProtection["data"]); oProtection.setFormatting(oParsedProtection["formatting"]); oProtection.setSelection(oParsedProtection["selection"]); oProtection.setUserInterface(oParsedProtection["userInterface"]); return oProtection; }; ReaderFromJSON.prototype.HeaderFooterChartFromJSON = function(oParsedHdrFtrCart) { var oHeaderFooter = new AscFormat.CHeaderFooterChart(); oHeaderFooter.setEvenFooter(oParsedHdrFtrCart["evenFooter"]); oHeaderFooter.setEvenFooter(oParsedHdrFtrCart["evenHeader"]); oHeaderFooter.setFirstFooter(oParsedHdrFtrCart["firstFooter"]); oHeaderFooter.setFirstHeader(oParsedHdrFtrCart["firstHeader"]); oHeaderFooter.setOddFooter(oParsedHdrFtrCart["oddFooter"]); oHeaderFooter.setOddHeader(oParsedHdrFtrCart["oddHeader"]); oHeaderFooter.setAlignWithMargins(oParsedHdrFtrCart["alignWithMargins"]); oHeaderFooter.setDifferentFirst(oParsedHdrFtrCart["differentFirst"]); oHeaderFooter.setDifferentOddEven(oParsedHdrFtrCart["differentOddEven"]); return oHeaderFooter; }; ReaderFromJSON.prototype.PageMarginsChartFromJSON = function(oParsedPgMargins) { var oPageMargins = new AscFormat.CPageMarginsChart(); oPageMargins.setB(oParsedPgMargins["b"]); oPageMargins.setFooter(oParsedPgMargins["footer"]); oPageMargins.setHeader(oParsedPgMargins["header"]); oPageMargins.setL(oParsedPgMargins["l"]); oPageMargins.setR(oParsedPgMargins["r"]); oPageMargins.setT(oParsedPgMargins["t"]); return oPageMargins; }; ReaderFromJSON.prototype.PageSetupFromJSON = function(oParsedPageSetup) { var oPageSetup = new AscFormat.CPageSetup(); var nOrientType = undefined; switch(oParsedPageSetup["orientation"]) { case "default": nOrientType = AscFormat.PAGE_SETUP_ORIENTATION_DEFAULT; break; case "portrait": nOrientType = AscFormat.PAGE_SETUP_ORIENTATION_PORTRAIT; break; case "landscape": nOrientType = AscFormat.PAGE_SETUP_ORIENTATION_LANDSCAPE; break; } oPageSetup.setBlackAndWhite(oParsedPageSetup["blackAndWhite"]); oPageSetup.setCopies(oParsedPageSetup["copies"]); oPageSetup.setDraft(oParsedPageSetup["draft"]); oPageSetup.setFirstPageNumber(oParsedPageSetup["firstPageNumber"]); oPageSetup.setHorizontalDpi(oParsedPageSetup["horizontalDpi"]); oPageSetup.setOrientation(nOrientType); oPageSetup.setPaperHeight(oParsedPageSetup["paperHeight"]); oPageSetup.setPaperSize(oParsedPageSetup["paperSize"]); oPageSetup.setPaperWidth(oParsedPageSetup["paperWidth"]); oPageSetup.setUseFirstPageNumb(oParsedPageSetup["useFirstPageNumb"]); oPageSetup.setVerticalDpi(oParsedPageSetup["verticalDpi"]); return oPageSetup; }; ReaderFromJSON.prototype.ShapeFromJSON = function(oParsedShape, oParentDrawing) { var oShape = oParsedShape["type"] === "shape" ? new AscFormat.CShape() : new AscFormat.CConnectionShape(); if (oParentDrawing) { oShape.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oShape); } oParsedShape["bWordShape"] != null && oShape.setWordShape(oParsedShape["bWordShape"]); if (oParsedShape["type"] === "shape" && oParsedShape["nvSpPr"]) { oShape.setNvSpPr(this.UniNvPrFromJSON(oParsedShape["nvSpPr"])); this.map_shapes_by_id[oShape.nvSpPr.cNvPr.id] = oShape; } else { if (oParsedShape["nvCxnSpPr"]) { oShape.setNvSpPr(this.UniNvPrFromJSON(oParsedShape["nvCxnSpPr"])); this.map_shapes_by_id[oShape.nvSpPr.cNvPr.id] = oShape; } } oParsedShape["spPr"] && oShape.setSpPr(this.SpPrFromJSON(oParsedShape["spPr"], oShape)); oParsedShape["style"] && oShape.setStyle(this.SpStyleFromJSON(oParsedShape["style"])); oParsedShape["bodyPr"] && oShape.setBodyPr(this.BodyPrFromJSON(oParsedShape["bodyPr"])); if (oParsedShape["content"]) { if (oParsedShape["content"]["type"] === "docContent") oShape.setTextBoxContent(this.DocContentFromJSON(oParsedShape["content"], oShape)); else oShape.setTxBody(this.TxPrFromJSON(oParsedShape["content"], oShape)); } oParsedShape["modelId"] != undefined && oShape.setModelId(oParsedShape["modelId"]); oParsedShape["txXfrm"] != undefined && oShape.setTxXfrm(this.XfrmFromJSON(oParsedShape["txXfrm"])); oShape.setBDeleted(false); if (oShape.nvSpPr && oShape.nvSpPr.locks > 0) oShape.setLocks(oShape.nvSpPr.locks); if (oParsedShape["type"] !== "shape") this.AddConnectedObject(oShape); return oShape; }; ReaderFromJSON.prototype.OleObjectFromJSON = function(oParsedOleObj, oParentDrawing) { var oOleObject = new AscFormat.COleObject(); oOleObject.setBDeleted(false); if (oParentDrawing) { oOleObject.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oOleObject); } oParsedOleObj["appId"] != undefined && oOleObject.setApplicationId(oParsedOleObj["appId"]); oParsedOleObj["data"] != undefined && oOleObject.setData(oParsedOleObj["data"]); oParsedOleObj["objFile"] != undefined && oOleObject.setObjectFile(oParsedOleObj["objFile"]); oParsedOleObj["oleType"] != undefined && oOleObject.setOleType(From_XML_OleObj_Type(oParsedOleObj["oleType"])); oParsedOleObj["binaryData"] != undefined && oOleObject.setBinaryData(oParsedOleObj["binaryData"]); oParsedOleObj["mathObj"] != undefined && oOleObject.setMathObject(this.ParaMathFromJSON(oParsedOleObj["mathObj"])); if (oParsedOleObj["dxaOrig"] > 0 && oParsedOleObj["dyaOrig"] > 0) { oOleObject.setPixSizes(private_Twips2Px(oParsedOleObj["dxaOrig"]), private_Twips2Px(oParsedOleObj["dyaOrig"])); } oOleObject.setBlipFill(this.BlipFillFromJSON(oParsedOleObj["blipFill"])); if (oParsedOleObj["nvPicPr"]) { oOleObject.setNvPicPr(this.UniNvPrFromJSON(oParsedOleObj["nvPicPr"])); this.map_shapes_by_id[oOleObject.nvPicPr.cNvPr.id] = oOleObject; } oOleObject.setSpPr(this.SpPrFromJSON(oParsedOleObj["spPr"], oOleObject)); if (oOleObject.nvPicPr && oOleObject.nvPicPr.locks > 0) oOleObject.setLocks(oOleObject.nvPicPr.locks); return oOleObject; }; ReaderFromJSON.prototype.ImageFromJSON = function(oParsedImage, oParentDrawing) { var oImage = new AscFormat.CImageShape(); if (oParentDrawing) { oImage.setParent(oParentDrawing); oParentDrawing.Set_GraphicObject(oImage); } oImage.setBlipFill(this.BlipFillFromJSON(oParsedImage["blipFill"])); if (oParsedImage["nvPicPr"]) { oImage.setNvPicPr(this.UniNvPrFromJSON(oParsedImage["nvPicPr"])); this.map_shapes_by_id[oImage.nvPicPr.cNvPr.id] = oImage; } oImage.setSpPr(this.SpPrFromJSON(oParsedImage["spPr"], oImage)); //oImage.setNoChangeAspect(true); oImage.setBDeleted(false); if (oImage.nvPicPr && oImage.nvPicPr.locks > 0) oImage.setLocks(oImage.nvPicPr.locks); return oImage; }; ReaderFromJSON.prototype.ChartFromJSON = function(oParsedChart, oParentChartSpace) { var oChart = new AscFormat.CChart(); var nDispBlanksAs = undefined; switch(oParsedChart["dispBlanksAs"]) { case "span": nDispBlanksAs = AscFormat.DISP_BLANKS_AS_SPAN; break; case "gap": nDispBlanksAs = AscFormat.DISP_BLANKS_AS_GAP; break; case "zero": nDispBlanksAs = AscFormat.DISP_BLANKS_AS_ZERO; } oParentChartSpace && oChart.setParent(oParentChartSpace); oChart.setPlotArea(this.PlotAreaFromJSON(oParsedChart["plotArea"])); oChart.setAutoTitleDeleted(oParsedChart["autoTitleDeleted"]); oParsedChart["backWall"] && oChart.setBackWall(this.WallFromJSON(oParsedChart["backWall"], oChart)); oChart.setDispBlanksAs(nDispBlanksAs); oParsedChart["floor"] && oChart.setFloor(this.WallFromJSON(oParsedChart["floor"], oChart)); oParsedChart["legend"] && oChart.setLegend(this.LegendFromJSON(oParsedChart["legend"], oChart)); this.PivotFmtsFromJSON(oParsedChart["pivotFmts"], oChart); oChart.setPlotVisOnly(oParsedChart["plotVisOnly"]); oChart.setShowDLblsOverMax(oParsedChart["showDLblsOverMax"]); oParsedChart["sideWall"] && oChart.setSideWall(this.WallFromJSON(oParsedChart["sideWall"], oChart)); oParsedChart["title"] && oChart.setTitle(this.TitleFromJSON(oParsedChart["title"], oChart)); oParsedChart["view3D"] && oChart.setView3D(this.View3DFromJSON(oParsedChart["view3D"])); return oChart; }; ReaderFromJSON.prototype.View3DFromJSON = function(oParsedView3D) { var oView3D = new AscFormat.CView3d(); oView3D.setDepthPercent(oParsedView3D["depthPercent"]); oView3D.setHPercent(oParsedView3D["hPercent"]); oView3D.setPerspective(oParsedView3D["perspective"]); oView3D.setRAngAx(oParsedView3D["rAngAx"]); oView3D.setRotX(oParsedView3D["rotX"]); oView3D.setRotY(oParsedView3D["rotY"]); return oView3D; }; ReaderFromJSON.prototype.PlotAreaFromJSON = function(oParsedArea) { var oPlotArea = new AscFormat.CPlotArea(); var oAxisMap = {}; for (var nAxis = 0; nAxis < oParsedArea["axId"].length; nAxis++) { var oAxis = this.AxisFromJSON(oParsedArea["axId"][nAxis]); oPlotArea.addAxis(oAxis); oAxisMap[oParsedArea["axId"][nAxis]["axId"]] = oAxis; } oParsedArea["dTable"] && oPlotArea.setDTable(this.DataTableFromJSON(oParsedArea["dTable"])); oParsedArea["layout"] && oPlotArea.setLayout(this.LayoutFromJSON(oParsedArea["layout"], oPlotArea)); oParsedArea["spPr"] && oPlotArea.setSpPr(this.SpPrFromJSON(oParsedArea["spPr"], oPlotArea)); for (nAxis = 0; nAxis < oPlotArea.axId.length; nAxis++) oPlotArea.axId[nAxis].setCrossAx(oAxisMap[oPlotArea.axId[nAxis].crossAx]); this.ChartsFromJSON(oParsedArea["charts"], oPlotArea, oAxisMap); return oPlotArea; }; ReaderFromJSON.prototype.AxisFromJSON = function(oParsedAxis) { switch (oParsedAxis["type"]) { case "catAx": return this.CatAxFromJSON(oParsedAxis); case "valAx": return this.ValAxFromJSON(oParsedAxis); case "dateAx": return this.DateAxFromJSON(oParsedAxis); case "serAx": return this.SerAxFromJSON(oParsedAxis); } return null; }; ReaderFromJSON.prototype.DataTableFromJSON = function(oParsedDataTable) { var oDTable = new AscFormat.CDTable(); oDTable.setShowHorzBorder(oParsedDataTable["showHorzBorder"]); oDTable.setShowKeys(oParsedDataTable["showKeys"]); oDTable.setShowOutline(oParsedDataTable["showOutline"]); oDTable.setShowVertBorder(oParsedDataTable["showVertBorder"]); oParsedDataTable["spPr"] && oDTable.setSpPr(this.SpPrFromJSON(oParsedDataTable["spPr"], oDTable)); oParsedDataTable["txPr"] && oDTable.setTxPr(this.TxPrFromJSON(oParsedDataTable["txPr"], oDTable)); return oDTable; }; ReaderFromJSON.prototype.SerAxFromJSON = function(oParsedSerAx, oParentPlotArea) { var oSerAx = new AscFormat.CSerAx(); oSerAx.setParent(oParentPlotArea); oSerAx.setAxId(++AscFormat.Ax_Counter.GLOBAL_AX_ID_COUNTER); oSerAx.setAxPos(this.GetAxPosNumType(oParsedSerAx["axPos"])); oSerAx.crossAx = oParsedSerAx["crossAx"] ? oParsedSerAx["crossAx"] : oSerAx.crossAx; oSerAx.setCrosses(this.GetCrossesNumType(oParsedSerAx["crosses"])); oSerAx.setCrossesAt(oParsedSerAx["crossesAt"]); oSerAx.setDelete(oParsedSerAx["delete"]); oSerAx.extLst = oParsedSerAx["extLst"]; /// ? oParsedSerAx["majorGridlines"] && oSerAx.setMajorGridlines(this.SpPrFromJSON(oParsedSerAx["majorGridlines"], oSerAx)); oSerAx.setMajorTickMark(this.GetTickMarkNumType(oParsedSerAx["majorTickMark"])); oParsedSerAx["minorGridlines"] && oSerAx.setMinorGridlines(this.SpPrFromJSON(oParsedSerAx["minorGridlines"], oSerAx)); oSerAx.setMinorTickMark(this.GetTickMarkNumType(oParsedSerAx["minorTickMark"])); oParsedSerAx["numFmt"] && oSerAx.setNumFmt(this.NumFmtFromJSON(oParsedSerAx["numFmt"])); oParsedSerAx["scaling"] && oSerAx.setScaling(this.ScalingFromJSON(oParsedSerAx["scaling"], oSerAx)); oParsedSerAx["spPr"] && oSerAx.setSpPr(this.SpPrFromJSON(oParsedSerAx["spPr"], oSerAx)); oSerAx.setTickLblSkip(this.GetTickLabelNumPos(oParsedSerAx["tickLblPos"])); oSerAx.setTickLblSkip(oParsedSerAx["tickLblSkip"]); oSerAx.setTickMarkSkip(oParsedSerAx["tickMarkSkip"]); oParsedSerAx["title"] && oSerAx.setTitle(this.TitleFromJSON(oParsedSerAx["title"])); oParsedSerAx["txPr"] && oSerAx.setTxPr(this.TxPrFromJSON(oParsedSerAx["txPr"], oSerAx)); return oSerAx; }; ReaderFromJSON.prototype.DateAxFromJSON = function(oParsedDateAx, oParentPlotArea) { var oDateAx = new AscFormat.CDateAx(); oDateAx.setParent(oParentPlotArea); oDateAx.setAuto(oParsedDateAx["auto"]); oDateAx.setAxId(++AscFormat.Ax_Counter.GLOBAL_AX_ID_COUNTER); oDateAx.setAxPos(this.GetAxPosNumType(oParsedDateAx["axPos"])); oDateAx.setBaseTimeUnit(this.GetTimeUnitNumType(oParsedDateAx["baseTimeUnit"])); oDateAx.crossAx = oParsedDateAx["crossAx"] ? oParsedDateAx["crossAx"] : oDateAx.crossAx; oDateAx.setCrosses(this.GetCrossesNumType(oParsedDateAx["crosses"])); oDateAx.setCrossesAt(oParsedDateAx["crossesAt"]); oDateAx.setDelete(oParsedDateAx["delete"]); oDateAx.extLst = oParsedDateAx["extLst"]; /// ??? oDateAx.setLblOffset(oParsedDateAx["lblOffset"]); oParsedDateAx["majorGridlines"] && oDateAx.setMajorGridlines(this.SpPrFromJSON(oParsedDateAx["majorGridlines"], oDateAx)); oDateAx.setMajorTickMark(this.GetTickMarkNumType(oParsedDateAx["majorTickMark"])); oDateAx.setMajorTimeUnit(this.GetTimeUnitNumType(oParsedDateAx["majorTimeUnit"])); oDateAx.setMajorUnit(oParsedDateAx["majorUnit"]); oParsedDateAx["minorGridlines"] && oDateAx.setMinorGridlines(this.SpPrFromJSON(oParsedDateAx["minorGridlines"], oDateAx)); oDateAx.setMinorTickMark(this.GetTickMarkNumType(oParsedDateAx["minorTickMark"])); oDateAx.setMinorTimeUnit(this.GetTimeUnitNumType(oParsedDateAx["minorTimeUnit"])); oDateAx.setMinorUnit(oParsedDateAx["minorUnit"]); oParsedDateAx["numFmt"] && oDateAx.setNumFmt(this.NumFmtFromJSON(oParsedDateAx["numFmt"])); oParsedDateAx["scaling"] && oDateAx.setScaling(this.ScalingFromJSON(oParsedDateAx["scaling"], oDateAx)); oParsedDateAx["spPr"] && oParsedDateAx["setSpPr"](this.SpPrFromJSON(oParsedDateAx["spPr"], oDateAx)); oDateAx.setTickLblPos(this.GetTickLabelNumPos(oParsedDateAx["tickLblPos"])); oParsedDateAx["title"] && oDateAx.setTitle(this.TitleFromJSON(oParsedDateAx["title"])); oParsedDateAx["txPr"] && oDateAx.setTxPr(this.TxPrFromJSON(oParsedDateAx["txPr"], oDateAx)); return oDateAx; }; ReaderFromJSON.prototype.BarChartFromJSON = function(oParsedBarChart, oAxisMap) { var oBarChart = new AscFormat.CBarChart(); var nBarDirType = oParsedBarChart["barDir"] === "bar" ? AscFormat.BAR_DIR_BAR : AscFormat.BAR_DIR_COL; var nGroupingType = undefined; switch (oParsedBarChart["grouping"]) { case "clustered": nGroupingType = AscFormat.BAR_GROUPING_CLUSTERED; break; case "percentStacked": nGroupingType = AscFormat.BAR_GROUPING_PERCENT_STACKED; break; case "stacked": nGroupingType = AscFormat.BAR_GROUPING_STACKED; break; case "standard": nGroupingType = AscFormat.BAR_GROUPING_STANDARD; break; } for (var nAxis = 0; nAxis < oParsedBarChart["axId"].length; nAxis++) oBarChart.addAxId(oAxisMap[oParsedBarChart["axId"][nAxis]]); if (oParsedBarChart["b3D"] != null) oBarChart.set3D(oParsedBarChart["b3D"]); if (oParsedBarChart["shape"] != null) oBarChart.setShape(FromXml_ST_Shape(oParsedBarChart["shape"])); oBarChart.setBarDir(nBarDirType); oBarChart.setDLbls(this.DLblsFromJSON(oParsedBarChart["dLbls"], oBarChart)); oBarChart.setGapWidth(oParsedBarChart["gapWidth"]); oBarChart.setGrouping(nGroupingType); oBarChart.setOverlap(oParsedBarChart["overlap"]); oParsedBarChart["serLines"] && oBarChart.setSerLines(this.SpPrFromJSON(oParsedBarChart["serLines"], oBarChart)); this.BarSeriesFromJSON(oParsedBarChart["ser"], oBarChart); oBarChart.setVaryColors(oParsedBarChart["varyColors"]); return oBarChart; }; ReaderFromJSON.prototype.BarSeriesFromJSON = function(arrParsedBarSeries, oParentChart) { for (var nBarSeries = 0; nBarSeries < arrParsedBarSeries.length; nBarSeries++) { var oItem = arrParsedBarSeries[nBarSeries]; var oBarSeries = new AscFormat.CBarSeries(); var nShapeType = FromXml_ST_Shape(oItem["shape"]); oItem["cat"] && oBarSeries.setCat(this.CatFromJSON(oItem["cat"], oBarSeries)); oItem["dLbls"] && oBarSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"], oBarSeries)); this.DataPointsFromJSON(oItem["dPt"], oBarSeries); oItem["errBars"] && oBarSeries.addErrBarsArray(this.ErrBarsFromJSON(oItem["errBars"])); oBarSeries.setIdx(oItem["idx"]); oBarSeries.setInvertIfNegative(oItem["invertIfNegative"]); oBarSeries.setOrder(oItem["order"]); oItem["pictureOptions"] && oBarSeries.setPictureOptions(this.PicOptionsFromJSON(oItem["pictureOptions"])); oBarSeries.setShape(nShapeType); oItem["spPr"] && oBarSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oBarSeries)); oItem["trendlines"] && oBarSeries.setTrendlines(this.TrendlinesFromJSON(oItem["trendlines"])); oItem["tx"] && oBarSeries.setTx(this.TxFromJSON(oItem["tx"], oBarSeries)); oItem["val"] && oBarSeries.setVal(this.YVALFromJSON(oItem["val"], oBarSeries)); oParentChart.addSer(oBarSeries); } }; ReaderFromJSON.prototype.LineChartFromJSON = function(oParsedLineChart, oAxisMap) { var oLineChart = new AscFormat.CLineChart(); var nGroupingType = undefined; switch (oParsedLineChart["grouping"]) { case "percentStacked": nGroupingType = AscFormat.GROUPING_PERCENT_STACKED; break; case "stacked": nGroupingType = AscFormat.GROUPING_STACKED; break; case "standard": nGroupingType = AscFormat.GROUPING_STANDARD; break; } for (var nAxis = 0; nAxis < oParsedLineChart["axId"].length; nAxis++) oLineChart.addAxId(oAxisMap[oParsedLineChart["axId"][nAxis]]); oParsedLineChart["dLbls"] && oLineChart.setDLbls(this.DLblsFromJSON(oParsedLineChart["dLbls"])); oParsedLineChart["dropLines"] && oLineChart.setDropLines(this.SpPrFromJSON(oParsedLineChart["dropLines"], oLineChart)); oLineChart.setGrouping(nGroupingType); oParsedLineChart["hiLowLines"] && oLineChart.setHiLowLines(this.SpPrFromJSON(oParsedLineChart["hiLowLines"], oLineChart)); oLineChart.setMarker(oParsedLineChart["marker"]); this.LineSeriesFromJSON(oParsedLineChart["ser"], oLineChart); oLineChart.setSmooth(oParsedLineChart["smooth"]); oParsedLineChart["upDownBars"] && oLineChart.setUpDownBars(this.UpDownBarsFromJSON(oParsedLineChart["upDownBars"])); oLineChart.setVaryColors(oParsedLineChart["varyColors"]); return oLineChart; }; ReaderFromJSON.prototype.LineSeriesFromJSON = function(arrParsedLineSeries, oParentChart) { for (var nLineSeries = 0; nLineSeries < arrParsedLineSeries.length; nLineSeries++) { var oItem = arrParsedLineSeries[nLineSeries]; var oLineSeries = new AscFormat.CLineSeries(); oLineSeries.setParent(oParentChart); oItem["cat"] && oLineSeries.setCat(this.CatFromJSON(oItem["cat"], oLineSeries)); oItem["dLbls"] && oLineSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"], oLineSeries)); this.DataPointsFromJSON(oItem["dPt"], oLineSeries); oItem["errBars"] && oLineSeries.addErrBarsArray(this.ErrBarsFromJSON(oItem["errBars"])); oLineSeries.setIdx(oItem["idx"]); oItem["marker"] && oLineSeries.setMarker(this.MarkerFromJSON(oItem["marker"], oLineSeries)); oLineSeries.setOrder(oItem["order"]); oLineSeries.setSmooth(oItem["smooth"]); oItem["spPr"] && oLineSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oLineSeries)); oItem["trendlines"] && oLineSeries.setTrendlines(this.TrendlinesFromJSON(oItem["trendlines"])); oItem["tx"] && oLineSeries.setTx(this.TxFromJSON(oItem["tx"], oLineSeries)); oItem["val"] && oLineSeries.setVal(this.YVALFromJSON(oItem["val"], oLineSeries)); oParentChart.addSer(oLineSeries); } }; ReaderFromJSON.prototype.PieChartFromJSON = function(oParsedPieChart) { var oPieChart = new AscFormat.CPieChart(); oPieChart.set3D(oParsedPieChart["b3D"]); oPieChart.setFirstSliceAng(oParsedPieChart["firstSliceAng"]); oParsedPieChart["dLbls"] && oPieChart.setDLbls(this.DLblsFromJSON(oParsedPieChart["dLbls"], oPieChart)); this.PieSeriesFromJSON(oParsedPieChart["ser"], oPieChart); oPieChart.setVaryColors(oParsedPieChart["varyColors"]); return oPieChart; }; ReaderFromJSON.prototype.DoughnutChartFromJSON = function(oParsedDoughnutChart) { var oDoughnutChart = new AscFormat.CDoughnutChart(); oDoughnutChart.setFirstSliceAng(oParsedDoughnutChart["firstSliceAng"]); oDoughnutChart.setHoleSize(oParsedDoughnutChart["holeSize"]); oParsedDoughnutChart["dLbls"] && oDoughnutChart.setDLbls(this.DLblsFromJSON(oParsedDoughnutChart["dLbls"], oDoughnutChart)); this.PieSeriesFromJSON(oParsedDoughnutChart["ser"]); oDoughnutChart.setVaryColors(oParsedDoughnutChart["varyColors"]); return oDoughnutChart; }; ReaderFromJSON.prototype.PieSeriesFromJSON = function(arrParsedPieSeries, oParentChart) { for (var nPieSeries = 0; nPieSeries < arrParsedPieSeries.length; nPieSeries++) { var oItem = arrParsedPieSeries[nPieSeries]; var oPieSeries = new AscFormat.CPieSeries(); oPieSeries.setParent(oParentChart); oItem["cat"] && oPieSeries.setCat(this.CatFromJSON(oItem["cat"], oPieSeries)); oItem["dLbls"] && oPieSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"], oPieSeries)); this.DataPointsFromJSON(oItem["dPt"], oPieSeries); oPieSeries.setExplosion(oItem["explosion"]); oPieSeries.setIdx(oItem["idx"]); oPieSeries.setOrder(oItem["order"]); oItem["spPr"] && oPieSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oPieSeries)); oItem["tx"] && oPieSeries.setTx(this.TxFromJSON(oItem["tx"], oPieSeries)); oItem["val"] && oPieSeries.setVal(this.YVALFromJSON(oItem["val"], oPieSeries)); oParentChart.addSer(oPieSeries); } }; ReaderFromJSON.prototype.AreaChartFromJSON = function(oParsedAreaChart, oAxisMap) { var oAreaChart = new AscFormat.CAreaChart(); var nGroupingType = undefined; switch (oParsedAreaChart["grouping"]) { case "percentStacked": nGroupingType = AscFormat.GROUPING_PERCENT_STACKED; break; case "stacked": nGroupingType = AscFormat.GROUPING_STACKED; break; case "standard": nGroupingType = AscFormat.GROUPING_STANDARD; break; } for (var nAxis = 0; nAxis < oParsedAreaChart["axId"].length; nAxis++) oAreaChart.addAxId(oAxisMap[oParsedAreaChart["axId"][nAxis]]); oParsedAreaChart["dLbls"] && oAreaChart.setDLbls(this.DLblsFromJSON(oParsedAreaChart["dLbls"])); oParsedAreaChart["dropLines"] && oAreaChart.setDropLines(this.SpPrFromJSON(oParsedAreaChart["dropLines"], oAreaChart)); oAreaChart.setGrouping(nGroupingType); this.AreaSeriesFromJSON(oParsedAreaChart["ser"], oAreaChart); oAreaChart.setVaryColors(oParsedAreaChart["varyColors"]); return oAreaChart; }; ReaderFromJSON.prototype.AreaSeriesFromJSON = function(arrParsedAreaSeries, oParentChart) { for (var nAreaSeries = 0; nAreaSeries < arrParsedAreaSeries.length; nAreaSeries++) { var oItem = arrParsedAreaSeries[nAreaSeries]; var oAreaSeries = new AscFormat.CAreaSeries(); oAreaSeries.setParent(oParentChart); oItem["cat"] && oAreaSeries.setCat(this.CatFromJSON(oItem["cat"], oAreaSeries)); oItem["dLbls"] && oAreaSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"])); this.DataPointsFromJSON(oItem["dPt"], oAreaSeries); oItem["errBars"] && oAreaSeries.addErrBarsArray(this.ErrBarsFromJSON(oItem["errBars"])); oAreaSeries.setIdx(oItem["idx"]); oAreaSeries.setOrder(oItem["order"]); oItem["pictureOptions"] && oAreaSeries.setPictureOptions(this.PicOptionsFromJSON(oItem["pictureOptions"])); oItem["spPr"] && oAreaSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oAreaSeries)); oItem["trendlines"] && oAreaSeries.setTrendlines(this.TrendlinesFromJSON(oItem["trendlines"])); oItem["tx"] && oAreaSeries.setTx(this.TxFromJSON(oItem["tx"], oAreaSeries)); oItem["val"] && oAreaSeries.setVal(this.YVALFromJSON(oItem["val"], oAreaSeries)); oParentChart.addSer(oAreaSeries); } }; ReaderFromJSON.prototype.StockChartFromJSON = function(oParsedStockChart, oAxisMap) { var oStockChart = new AscFormat.CStockChart(); for (var nAxis = 0; nAxis < oParsedStockChart["axId"].length; nAxis++) oStockChart.addAxId(oAxisMap[oParsedStockChart["axId"][nAxis]]); oParsedStockChart["dLbls"] && oStockChart.setDLbls(this.DLblsFromJSON(oParsedStockChart["dLbls"])); oParsedStockChart["dropLines"] && oStockChart.setDropLines(this.SpPrFromJSON(oParsedStockChart["dropLines"], oStockChart)); oParsedStockChart["hiLowLines"] && oStockChart.setHiLowLines(this.SpPrFromJSON(oParsedStockChart["hiLowLines"], oStockChart)); this.LineSeriesFromJSON(oParsedStockChart["ser"], oStockChart); oParsedStockChart["upDownBars"] && oStockChart.setUpDownBars(this.UpDownBarsFromJSON(oParsedStockChart["upDownBars"])); return oStockChart; }; ReaderFromJSON.prototype.StockSeriesFromJSON = function(arrParsedStockSeries, oParentChart) { var arrStockSeriesResult = []; // for (var nStockSeries = 0; nStockSeries < arrParsedStockSeries.length; nStockSeries++) // { // var oItem = arrParsedStockSeries[nStockSeries]; // var oStockSeries = new AscFormat.CStockSeries(); // // oStockSeries.setParent(oParentChart); // // oStockSeries.cat = oItem["cat"] ? this.CatFromJSON(oItem["cat"], oStockSeries) : oStockSeries.cat; // oItem["dLbls"] && oStockSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"])); // this.DataPointsFromJSON(oItem["dPt"], oStockSeries); // oStockSeries.errBars = oItem["errBars"] ? this.ErrBarsFromJSON(oItem["errBars"]) : oStockSeries.errBars; // oStockSeries.idx = oItem["idx"]; // oStockSeries.order = oItem["order"]; // oStockSeries.pictureOptions = oItem["pictureOptions"] ? this.PicOptionsFromJSON(oItem["pictureOptions"]) : oStockSeries.pictureOptions; // oItem["spPr"] && oStockSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oStockSeries)); // oStockSeries.trendlines = oItem["trendlines"] ? this.TrendlinesFromJSON(oItem["trendlines"]) : oStockSeries.trendlines; // oStockSeries.tx = oItem["tx"] ? this.TxFromJSON(oItem["tx"], oStockSeries) : oStockSeries.tx; // oStockSeries.val = oItem["val"] ? this.YVALFromJSON(oItem["val"], oStockSeries) : oStockSeries.val; // // arrStockSeriesResult.push(oStockSeries); // } return arrStockSeriesResult; }; ReaderFromJSON.prototype.ScatterChartFromJSON = function(oParsedScatterChart, oAxisMap) { var oScatterChart = new AscFormat.CScatterChart(); var nScatterStyle = undefined; switch(oParsedScatterChart["scatterStyle"]) { case "line": nScatterStyle = AscFormat.SCATTER_STYLE_LINE; break; case "lineMarker": nScatterStyle = AscFormat.SCATTER_STYLE_LINE_MARKER; break; case "marker": nScatterStyle = AscFormat.SCATTER_STYLE_MARKER; break; case "none": nScatterStyle = AscFormat.SCATTER_STYLE_NONE; break; case "smooth": nScatterStyle = AscFormat.SCATTER_STYLE_SMOOTH; break; case "smoothMarker": nScatterStyle = AscFormat.SCATTER_STYLE_SMOOTH_MARKER; break; } for (var nAxis = 0; nAxis < oParsedScatterChart["axId"].length; nAxis++) oScatterChart.addAxId(oAxisMap[oParsedScatterChart["axId"][nAxis]]); oParsedScatterChart["dLbls"] && oScatterChart.setDLbls(this.DLblsFromJSON(oParsedScatterChart["dLbls"], oScatterChart)); oScatterChart.setScatterStyle(nScatterStyle); this.ScatterSeriesFromJSON(oParsedScatterChart["ser"], oScatterChart); return oScatterChart; }; ReaderFromJSON.prototype.ScatterSeriesFromJSON = function(arrParsedScatterSeries, oParentChart) { for (var nScatterSeries = 0; nScatterSeries < arrParsedScatterSeries.length; nScatterSeries++) { var oItem = arrParsedScatterSeries[nScatterSeries]; var oScatterSeries = new AscFormat.CScatterSeries(); oScatterSeries.setParent(oParentChart); oItem["dLbls"] && oScatterSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"])); this.DataPointsFromJSON(oItem["dPt"], oScatterSeries); oItem["errBars"] && oScatterSeries.addErrBarsArray(this.ErrBarsFromJSON(oItem["errBars"])); oScatterSeries.setIdx(oItem["idx"]); oItem["marker"] && oScatterSeries.setMarker(this.MarkerFromJSON(oItem["marker"], oScatterSeries)); oScatterSeries.setOrder(oItem["order"]); oScatterSeries.setSmooth(oItem["smooth"]); oItem["spPr"] && oScatterSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oScatterSeries)); oItem["trendlines"] && oScatterSeries.setTrendlines(this.TrendlinesFromJSON(oItem["trendlines"])); oItem["tx"] && oScatterSeries.setTx(this.TxFromJSON(oItem["tx"], oScatterSeries)); oItem["yVal"] && oScatterSeries.setYVal(this.YVALFromJSON(oItem["yVal"], oScatterSeries)); oItem["xVal"] && oScatterSeries.setXVal(this.CatFromJSON(oItem["xVal"], oScatterSeries)); oParentChart.addSer(oScatterSeries); } }; ReaderFromJSON.prototype.SurfaceChartFromJSON = function(oParsedSurfaceChart, oAxisMap) { var oSurfaceChart = new AscFormat.CSurfaceChart(); for (var nAxis = 0; nAxis < oParsedSurfaceChart["axId"].length; nAxis++) oSurfaceChart.addAxId(oAxisMap[oParsedSurfaceChart["axId"][nAxis]]); this.BandFmtsFromJSON(oParsedSurfaceChart["bandFmts"]); this.SurfaceSeriesFromJSON(oParsedSurfaceChart["series"], oSurfaceChart); oSurfaceChart.setWireframe(oParsedSurfaceChart["wireframe"]); return oSurfaceChart; }; ReaderFromJSON.prototype.SurfaceSeriesFromJSON = function(arrParsedSurfaceSeries, oParentChart) { for (var nSurfaceSeries = 0; nSurfaceSeries < arrParsedSurfaceSeries.length; nSurfaceSeries++) { var oItem = arrParsedSurfaceSeries[nSurfaceSeries]; var oSurfaceSeries = new AscFormat.CSurfaceSeries(); oSurfaceSeries.setParent(oParentChart); oItem["cat"] && oSurfaceSeries.setCat(this.CatFromJSON(oItem["cat"], oSurfaceSeries)); oSurfaceSeries.setIdx(oItem["idx"]); oSurfaceSeries.setOrder(oItem["order"]); oItem["spPr"] && oSurfaceSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oSurfaceSeries)); oItem["tx"] && oSurfaceSeries.setTx(this.TxFromJSON(oItem["tx"], oSurfaceSeries)); oItem["val"] && oSurfaceSeries.setVal(this.YVALFromJSON(oItem["val"], oSurfaceSeries)); oParentChart.addSer(oSurfaceSeries); } }; ReaderFromJSON.prototype.BandFmtsFromJSON = function(arrParsedBandFmts, oParentChart) { for (var nBand = 0; nBand < arrParsedBandFmts.length; nBand++) { var oBandFmt = new AscFormat.CBandFmt(); oBandFmt.setIdx(arrParsedBandFmts[nBand]["idx"]); arrParsedBandFmts[nBand]["spPr"] && oBandFmt.setSpPr(this.SpPrFromJSON(arrParsedBandFmts[nBand]["spPr"], oBandFmt)); oParentChart.addBandFmt(oBandFmt); } }; ReaderFromJSON.prototype.BubbleChartFromJSON = function(oParsedBubbleChart, oAxisMap) { var oBubbleChart = new AscFormat.CBubbleChart(); var nSizeRepresents = oParsedBubbleChart["sizeRepresents"] === "area" ? AscFormat.SIZE_REPRESENTS_AREA : AscFormat.SIZE_REPRESENTS_W; for (var nAxis = 0; nAxis < oParsedBubbleChart["axId"].length; nAxis++) oBubbleChart.addAxId(oAxisMap[oParsedBubbleChart["axId"][nAxis]]); oBubbleChart.setBubble3D(oParsedBubbleChart["bubble3D"]); oBubbleChart.setBubbleScale(oParsedBubbleChart["bubbleScale"]); oParsedBubbleChart["dLbls"] && oBubbleChart.setDLbls(this.DLblsFromJSON(oParsedBubbleChart["dLbls"], oBubbleChart)); this.BubbleSeriesFromJSON(oParsedBubbleChart["series"], oBubbleChart); oBubbleChart.setShowNegBubbles(oParsedBubbleChart["showNegBubbles"]); oBubbleChart.setSizeRepresents(nSizeRepresents); oBubbleChart.setVaryColors(oParsedBubbleChart["varyColors"]); return oBubbleChart; }; ReaderFromJSON.prototype.BubbleSeriesFromJSON = function(arrParsedBubbleSeries, oParentChart) { for (var nBubbleSeries = 0; nBubbleSeries < arrParsedBubbleSeries.length; nBubbleSeries++) { var oItem = arrParsedBubbleSeries[nBubbleSeries]; var oBubbleSeries = new AscFormat.CBubbleSeries(); oBubbleSeries.setParent(oParentChart); oBubbleSeries.setBubble3D(oItem["bubble3D"]); oBubbleSeries.setBubbleSize(this.YVALFromJSON(oItem["bubbleSize"], oBubbleSeries)); oItem["dLbls"] && oBubbleSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"], oBubbleSeries)); this.DataPointsFromJSON(oItem["dPt"], oBubbleSeries); oItem["errBars"] && oBubbleSeries.addErrBarsArray(this.ErrBarsFromJSON(oItem["errBars"])); oBubbleSeries.setIdx(oItem["idx"]); oBubbleSeries.setInvertIfNegative(oItem["invertIfNegative"]); oBubbleSeries.setOrder(oItem["order"]); oItem["spPr"] && oBubbleSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oBubbleSeries)); oItem["trendlines"] && oBubbleSeries.setTrendlines(this.TrendlinesFromJSON(oItem["trendlines"])); oItem["tx"] && oBubbleSeries.setTx(this.TxFromJSON(oItem["tx"], oBubbleSeries)); oItem["yVal"] && oBubbleSeries.setYVal(this.YVALFromJSON(oItem["yVal"], oBubbleSeries)); oItem["xVal"] && oBubbleSeries.setXVal(this.CatFromJSON(oItem["xVal"], oBubbleSeries)); oParentChart.addSer(oBubbleSeries); } }; ReaderFromJSON.prototype.RadarChartFromJSON = function(oParsedRadarChart, oAxisMap) { var oRadarChart = new AscFormat.CRadarChart(); var nRadarStyle = undefined; switch(oParsedRadarChart["radarStyle"]) { case "standard": nRadarStyle = AscFormat.RADAR_STYLE_STANDARD; break; case "marker": nRadarStyle = AscFormat.RADAR_STYLE_MARKER; break; case "filled": nRadarStyle = AscFormat.RADAR_STYLE_FILLED; break; } for (var nAxis = 0; nAxis < oParsedRadarChart["axId"].length; nAxis++) oRadarChart.addAxId(oAxisMap[oParsedRadarChart["axId"][nAxis]]); oParsedRadarChart["dLbls"] && oRadarChart.setDLbls(this.DLblsFromJSON(oParsedRadarChart["dLbls"], oRadarChart)); oRadarChart.setRadarStyle(nRadarStyle); this.RadarSeriesFromJSOM(oParsedRadarChart["ser"], oRadarChart); oRadarChart.setVaryColors(oParsedRadarChart["varyColors"]); return oRadarChart; }; ReaderFromJSON.prototype.RadarSeriesFromJSOM = function(arrParsedRadarSeries, oParentChart) { for (var nRadarSeries = 0; nRadarSeries < arrParsedRadarSeries.length; nRadarSeries++) { var oItem = arrParsedRadarSeries[nRadarSeries]; var oRadarSeries = new AscFormat.CRadarSeries(); oItem["cat"] && oRadarSeries.setCat(this.CatFromJSON(oItem["cat"], oRadarSeries)); oItem["dLbls"] && oRadarSeries.setDLbls(this.DLblsFromJSON(oItem["dLbls"], oRadarSeries)); this.DataPointsFromJSON(oItem["dPt"], oRadarSeries); oRadarSeries.setIdx(oItem["idx"]); oItem["marker"] && oRadarSeries.setMarker(this.MarkerFromJSON(oItem["marker"], oRadarSeries)); oRadarSeries.setOrder(oItem["order"]); oItem["spPr"] && oRadarSeries.setSpPr(this.SpPrFromJSON(oItem["spPr"], oRadarSeries)); oItem["tx"] && oRadarSeries.setTx(this.TxFromJSON(oItem["tx"], oRadarSeries)); oRadarSeries.val && oRadarSeries.setVal(this.YVALFromJSON(oItem["val"], oRadarSeries)); oParentChart.addSer(oRadarSeries); } }; ReaderFromJSON.prototype.UpDownBarsFromJSON = function(oParsedUpDownBars) { var oUpDownBars = new AscFormat.CUpDownBars(); oParsedUpDownBars["downBars"] && oUpDownBars.setDownBars(this.SpPrFromJSON(oParsedUpDownBars["downBars"], oUpDownBars)); oUpDownBars.setGapWidth(oParsedUpDownBars["gapWidth"]); oParsedUpDownBars["upBars"] && oUpDownBars.setUpBars(this.SpPrFromJSON(oParsedUpDownBars["upBars"], oUpDownBars)); return oUpDownBars; }; ReaderFromJSON.prototype.TxFromJSON = function(oParsedTx, oParent) { var oTx = new AscFormat.CTx(); oTx.setParent(oParent); oTx.setVal(oParsedTx["v"]); oParsedTx["strRef"] && oTx.setStrRef(this.StrRefFromJSON(oParsedTx["strRef"])); return oTx; }; ReaderFromJSON.prototype.YVALFromJSON = function(oParsedYVal, oParent) { var oYVal = new AscFormat.CYVal(); oYVal.setParent(oParent); oParsedYVal["numLit"] && oYVal.setNumLit(this.NumLitFromJSON(oParsedYVal["numLit"], oYVal)); oParsedYVal["numRef"] && oYVal.setNumRef(this.NumRefFromJSON(oParsedYVal["numRef"], oYVal)); return oYVal; }; ReaderFromJSON.prototype.TrendlineFromJSON = function(oParsedTrendLine) { var oTrendLine = new AscFormat.CTrendLine(); var nTrendlineType = undefined; switch(oParsedTrendLine["trendlineType"]) { case "exp": nTrendlineType = AscFormat.st_trendlinetypeEXP; break; case "linear": nTrendlineType = AscFormat.st_trendlinetypeLINEAR; break; case "log": nTrendlineType = AscFormat.st_trendlinetypeLOG; break; case "movingAvg": nTrendlineType = AscFormat.st_trendlinetypeMOVINGAVG; break; case "poly": nTrendlineType = AscFormat.st_trendlinetypePOLY; break; case "power": nTrendlineType = AscFormat.st_trendlinetypePOWER; break; } oTrendLine.setBackward(oParsedTrendLine["backward"]); oTrendLine.setDispEq(oParsedTrendLine["dispEq"]); oTrendLine.setDispRSqr(oParsedTrendLine["dispRSqr"]); oTrendLine.setForward(oParsedTrendLine["forward"]); oTrendLine.setIntercept(oParsedTrendLine["intercept"]); oTrendLine.setName(oParsedTrendLine["name"]); oTrendLine.setOrder(oParsedTrendLine["order"]); oTrendLine.setPeriod(oParsedTrendLine["period"]); oParsedTrendLine["spPr"] && oTrendLine.setSpPr(this.SpPrFromJSON(oParsedTrendLine["spPr"], oTrendLine)); oParsedTrendLine["trendlineLbl"] && oTrendLine.setTrendlineLbl(this.DlblFromJSON(oParsedTrendLine["trendlineLbl"])); oTrendLine.setTrendlineType(nTrendlineType); return oTrendLine; }; ReaderFromJSON.prototype.TrendlinesFromJSON = function(parsedTrendlines) { const trendlines = []; if (Array.isArray(parsedTrendlines)) { for (let i = 0; i < parsedTrendlines.length; ++i) { const parsed = parsedTrendlines[i]; const trendline = this.TrendlineFromJSON(parsed); if (trendline) { trendlines.push(trendline); } } } return trendlines; }; ReaderFromJSON.prototype.ErrBarsFromJSON = function(aParsedErrBars) { let aErrBars = []; if(!Array.isArray(aParsedErrBars)) { return aErrBars; } for(let nErrB = 0; nErrB < aParsedErrBars.length; ++nErrB) { let oParsedErrBars = aParsedErrBars[nErrB]; var oErrBars = new AscFormat.CErrBars(); var nErrBarType = undefined; switch(oParsedErrBars["errBarType"]) { case "both": nErrBarType = AscFormat.st_errbartypeBOTH; break; case "minus": nErrBarType = AscFormat.st_errbartypeMINUS; break; case "plus": nErrBarType = AscFormat.st_errbartypePLUS; break; } var nErrDir = oParsedErrBars["errDir"] === "x" ? AscFormat.st_errdirX : AscFormat.st_errdirY; var nErrValType = undefined; switch(oParsedErrBars["errValType"]) { case "cust": nErrValType = AscFormat.st_errvaltypeCUST; break; case "fixedVal": nErrValType = AscFormat.st_errvaltypeFIXEDVAL; break; case "percentage": nErrValType = AscFormat.st_errvaltypePERCENTAGE; break; case "stdDev": nErrValType = AscFormat.st_errvaltypeSTDDEV; break; case "stdErr": nErrValType = AscFormat.st_errvaltypeSTDERR; break; } oErrBars.setErrBarType(nErrBarType); oErrBars.setErrDir(nErrDir); oErrBars.setErrValType(nErrValType); oParsedErrBars["minus"] && oErrBars.setMinus(this.MinusPlusFromJSON(oParsedErrBars["minus"])); oParsedErrBars["plus"] && oErrBars.setPlus(this.MinusPlusFromJSON(oParsedErrBars["plus"])); oErrBars.setNoEndCap(oParsedErrBars["noEndCap"]); oParsedErrBars["spPr"] && oErrBars.setSpPr(this.SpPrFromJSON(oParsedErrBars["spPr"], oErrBars)); oErrBars.setVal(oParsedErrBars["val"]); aErrBars.push(oErrBars); } return aErrBars; }; ReaderFromJSON.prototype.MinusPlusFromJSON = function(oParsedMinusPlus) { var oMinusPlus = new AscFormat.CMinusPlus(); oParsedMinusPlus["numLit"] && oMinusPlus.setNumLit(this.NumLitFromJSON(oParsedMinusPlus["numLit"], oMinusPlus)); oParsedMinusPlus["numRef"] && oMinusPlus.setNumRef(this.NumRefFromJSON(oParsedMinusPlus["numRef"], oMinusPlus)); return oMinusPlus; }; ReaderFromJSON.prototype.DataPointsFromJSON = function(oParsedDataPoints, oParent) { for (var nItem = 0; nItem < oParsedDataPoints.length; nItem++) { var oDataPoint = new AscFormat.CDPt(); oDataPoint.setBubble3D(oParsedDataPoints[nItem]["bubble3D"]); oDataPoint.setExplosion(oParsedDataPoints[nItem]["explosion"]); oDataPoint.setIdx(oParsedDataPoints[nItem]["idx"]); oDataPoint.setInvertIfNegative(oParsedDataPoints[nItem]["invertIfNegative"]); oParsedDataPoints[nItem]["marker"] && oDataPoint.setMarker(this.MarkerFromJSON(oParsedDataPoints[nItem]["marker"], oDataPoint)); oParsedDataPoints[nItem]["pictureOptions"] && oDataPoint.setPictureOptions(this.PicOptionsFromJSON(oParsedDataPoints[nItem]["pictureOptions"])); oParsedDataPoints[nItem]["spPr"] && oDataPoint.setSpPr(this.SpPrFromJSON(oParsedDataPoints[nItem]["spPr"], oDataPoint)); oParent.addDPt(oDataPoint); } }; ReaderFromJSON.prototype.CatFromJSON = function(oParsedCat, oParent) { var oCat = new AscFormat.CCat(); oCat.setParent(oParent); oParsedCat["multiLvlStrRef"] && oCat.setMultiLvlStrRef(this.MultiLvlStrRefFromJSON(oParsedCat["multiLvlStrRef"])); oParsedCat["numLit"] && oCat.setNumLit(this.NumLitFromJSON(oParsedCat["numLit"], oCat)); oParsedCat["numRef"] && oCat.setNumRef(this.NumRefFromJSON(oParsedCat["numRef"], oCat)); oParsedCat["strLit"] && oCat.setStrLit(this.StrLitFromJSON(oParsedCat["strLit"])); oParsedCat["strRef"] && oCat.setStrRef(this.StrRefFromJSON(oParsedCat["strRef"])); return oCat; }; ReaderFromJSON.prototype.NumLitFromJSON = function(oParsedNumLit) { var oNumLit = new AscFormat.CNumLit(); for (var nPt = 0; nPt < oParsedNumLit["pt"].length; nPt++) { var oPt = new AscFormat.CNumericPoint(); oPt.setFormatCode(oParsedNumLit["pt"][nPt]["formatCode"]); oPt.setIdx(oParsedNumLit["pt"][nPt]["idx"]); oPt.setVal(oParsedNumLit["pt"][nPt]["v"]); oNumLit.addPt(oPt); } oNumLit.setPtCount(oParsedNumLit["ptCount"]); oNumLit.setFormatCode(oParsedNumLit["formatCode"]); return oNumLit; }; ReaderFromJSON.prototype.NumRefFromJSON = function(oParsedNumRef) { var oNumRef = new AscFormat.CNumRef(); oNumRef.setF(oParsedNumRef["f"]); oParsedNumRef["numCache"] && oNumRef.setNumCache(this.NumLitFromJSON(oParsedNumRef["numCache"])); return oNumRef; }; ReaderFromJSON.prototype.MultiLvlStrRefFromJSON = function(oParsedMultiLvl) { var oMultiLvlStrRef = new AscFormat.CMultiLvlStrRef(); oParsedMultiLvl["multiLvlStrCache"] && oMultiLvlStrRef.setMultiLvlStrCache(new AscFormat.CMultiLvlStrCache()); if (oMultiLvlStrRef.multiLvlStrCache) { for (var nLvl = 0; nLvl < oParsedMultiLvl["multiLvlStrCache"]["lvl"].length; nLvl++) oMultiLvlStrRef.multiLvlStrCache.addLvl(this.StrLitFromJSON(oParsedMultiLvl["multiLvlStrCache"][nLvl])); oMultiLvlStrRef.multiLvlStrCache.setPtCount(oParsedMultiLvl["multiLvlStrCache"]["ptCount"]); } oMultiLvlStrRef.setF(oParsedMultiLvl["f"]); return oMultiLvlStrRef; }; ReaderFromJSON.prototype.StrLitFromJSON = function(oParsedStrLit) { var oStrLit = new AscFormat.CStrCache(); for (var nPt = 0; nPt < oParsedStrLit["pt"].length; nPt++) { var oPt = new AscFormat.CStringPoint(); oPt.setIdx(oParsedStrLit["pt"][nPt]["idx"]); oPt.setVal(oParsedStrLit["pt"][nPt]["v"]); oStrLit.addPt(oPt); } oStrLit.setPtCount(oParsedStrLit["ptCount"]); return oStrLit; }; ReaderFromJSON.prototype.DLblsFromJSON = function(oParsedDLbls, oParent) { var oDlbls = new AscFormat.CDLbls(); oDlbls.setParent(oParent); // TickLblPos var nDLblPos = undefined; switch (oParsedDLbls["dLblPos"]) { case "b": nDLblPos = Asc.c_oAscChartDataLabelsPos.b; break; case "bestFit": nDLblPos = Asc.c_oAscChartDataLabelsPos.bestFit; break; case "ctr": nDLblPos = Asc.c_oAscChartDataLabelsPos.ctr; break; case "inBase": nDLblPos = Asc.c_oAscChartDataLabelsPos.inBase; break; case "inEnd": nDLblPos = Asc.c_oAscChartDataLabelsPos.inEnd; break; case "l": nDLblPos = Asc.c_oAscChartDataLabelsPos.l; break; case "outEnd": nDLblPos = Asc.c_oAscChartDataLabelsPos.outEnd; break; case "r": nDLblPos = Asc.c_oAscChartDataLabelsPos.r; break; case "t": nDLblPos = Asc.c_oAscChartDataLabelsPos.t; break; } oDlbls.setDelete(oParsedDLbls["delete"]); oDlbls.setDLblPos(nDLblPos); for (var nDlbl = 0; nDlbl < oParsedDLbls["dLbl"].length; nDlbl++) oDlbls.addDLbl(this.DlblFromJSON(oParsedDLbls["dLbl"][nDlbl])); oParsedDLbls["leaderLines"] && oDlbls.setLeaderLines(this.SpPrFromJSON(oParsedDLbls["leaderLines"], oDlbls)); oParsedDLbls["numFmt"] && oDlbls.setNumFmt(this.NumFmtFromJSON(oParsedDLbls["numFmt"])); oDlbls.setSeparator(oParsedDLbls["separator"]); oDlbls.setShowBubbleSize(oParsedDLbls["showBubbleSize"]); oDlbls.setShowCatName(oParsedDLbls["showCatName"]); oDlbls.setShowLeaderLines(oParsedDLbls["showLeaderLines"]); oDlbls.setShowLegendKey(oParsedDLbls["showLegendKey"]); oDlbls.setShowPercent(oParsedDLbls["showPercent"]); oDlbls.setShowSerName(oParsedDLbls["showSerName"]); oDlbls.setShowVal(oParsedDLbls["showVal"]); oParsedDLbls["spPr"] && oDlbls.setSpPr(this.SpPrFromJSON(oParsedDLbls["spPr"], oDlbls)); oParsedDLbls["txPr"] && oDlbls.setTxPr(this.TxPrFromJSON(oParsedDLbls["txPr"], oDlbls)); return oDlbls; }; ReaderFromJSON.prototype.CatAxFromJSON = function(oParsedCatAx, oParentPlotArea) { var oCatAx = new AscFormat.CCatAx(); oCatAx.setParent(oParentPlotArea); var nLblAlgn = undefined; switch(oParsedCatAx["lblAlgn"]) { case "ctr": nLblAlgn = AscFormat.LBL_ALG_CTR; break; case "l": nLblAlgn = AscFormat.LBL_ALG_L; break; case "r": nLblAlgn = AscFormat.LBL_ALG_R; break; } oCatAx.setAuto(oParsedCatAx["auto"]); oCatAx.setAxId(++AscFormat.Ax_Counter.GLOBAL_AX_ID_COUNTER); oCatAx.setAxPos(this.GetAxPosNumType(oParsedCatAx["axPos"])); oCatAx.crossAx = oParsedCatAx["crossAx"] ? oParsedCatAx["crossAx"] : oCatAx.crossAx; oCatAx.setCrosses(this.GetCrossesNumType(oParsedCatAx["crosses"])); oCatAx.setCrossesAt(oParsedCatAx["crossesAt"]); oCatAx.setDelete(oParsedCatAx["delete"]); oCatAx.extLst = oParsedCatAx["extLst"]; /// ??? oCatAx.setLblAlgn(nLblAlgn); oCatAx.setLblOffset(oParsedCatAx["lblOffset"]); oParsedCatAx["majorGridlines"] && oCatAx.setMajorGridlines(this.SpPrFromJSON(oParsedCatAx["majorGridlines"], oCatAx)); oCatAx.setMajorTickMark(this.GetTickMarkNumType(oParsedCatAx["majorTickMark"])); oParsedCatAx["minorGridlines"] && oCatAx.setMinorGridlines(this.SpPrFromJSON(oParsedCatAx["minorGridlines"], oCatAx)); oCatAx.setMinorTickMark(this.GetTickMarkNumType(oParsedCatAx["minorTickMark"])); oCatAx.setNoMultiLvlLbl(oParsedCatAx["noMultiLvlLbl"]); oParsedCatAx["numFmt"] && oCatAx.setNumFmt(this.NumFmtFromJSON(oParsedCatAx["numFmt"])); oParsedCatAx["scaling"] && oCatAx.setScaling(this.ScalingFromJSON(oParsedCatAx["scaling"], oCatAx)); oParsedCatAx["spPr"] && oCatAx.setSpPr(this.SpPrFromJSON(oParsedCatAx["spPr"], oCatAx)); oCatAx.setTickLblPos(this.GetTickLabelNumPos(oParsedCatAx["tickLblPos"])); oCatAx.setTickLblSkip(oParsedCatAx["tickLblSkip"]); oCatAx.setTickMarkSkip(oParsedCatAx["tickMarkSkip"]); oParsedCatAx["title"] && oCatAx.setTitle(this.TitleFromJSON(oParsedCatAx["title"])); oParsedCatAx["txPr"] && oCatAx.setTxPr(this.TxPrFromJSON(oParsedCatAx["txPr"], oCatAx)); return oCatAx; }; ReaderFromJSON.prototype.ValAxFromJSON = function(oParsedValAx, oParentPlotArea) { var oValAx = new AscFormat.CValAx(); oValAx.setParent(oParentPlotArea); var sCrossBetweenType = oParsedValAx["crossBetween"] === "between" ? AscFormat.CROSS_BETWEEN_BETWEEN : AscFormat.CROSS_BETWEEN_MID_CAT; oValAx.setAxId(++AscFormat.Ax_Counter.GLOBAL_AX_ID_COUNTER); oValAx.setAxPos(this.GetAxPosNumType(oParsedValAx["axPos"])); oValAx.crossAx = oParsedValAx["crossAx"] ? oParsedValAx["crossAx"] : oValAx.crossAx; oValAx.setCrossBetween(sCrossBetweenType); oValAx.setCrosses(this.GetCrossesNumType(oParsedValAx["crosses"])); oValAx.setCrossesAt(oParsedValAx["crossesAt"]); oValAx.setDelete(oParsedValAx["delete"]); oParsedValAx["dispUnits"] && oValAx.setDispUnits(this.DispUnitsFromJSON(oParsedValAx["dispUnits"])); oValAx.extLst = oParsedValAx["extLst"]; /// ??? oParsedValAx["majorGridlines"] && oValAx.setMajorGridlines(this.SpPrFromJSON(oParsedValAx["majorGridlines"], oValAx)); oValAx.setMajorTickMark(this.GetTickMarkNumType(oParsedValAx["majorTickMark"])); oValAx.setMajorUnit(oParsedValAx["majorUnit"]); oParsedValAx["minorGridlines"] && oValAx.setMinorGridlines(this.SpPrFromJSON(oParsedValAx["minorGridlines"])); oValAx.setMinorTickMark(this.GetTickMarkNumType(oParsedValAx["minorTickMark"])); oValAx.setMinorUnit(oParsedValAx["minorUnit"]); oParsedValAx["numFmt"] && oValAx.setNumFmt(this.NumFmtFromJSON(oParsedValAx["numFmt"])); oParsedValAx["scaling"] && oValAx.setScaling(this.ScalingFromJSON(oParsedValAx["scaling"], oValAx)); oParsedValAx["spPr"] && oValAx.setSpPr(this.SpPrFromJSON(oParsedValAx["spPr"], oValAx)); oValAx.setTickLblPos(this.GetTickLabelNumPos(oParsedValAx["tickLblPos"])); oParsedValAx["title"] && oValAx.setTitle(this.TitleFromJSON(oParsedValAx["title"])); oParsedValAx["txPr"] && oValAx.setTxPr(this.TxPrFromJSON(oParsedValAx["txPr"], oValAx)); return oValAx; }; ReaderFromJSON.prototype.TitleFromJSON = function(oParsedTitle, oParent) { var oTitle = new AscFormat.CTitle(); oTitle.setParent(oParent); oTitle.setOverlay(oParsedTitle["overlay"]); oParsedTitle["layout"] && oTitle.setLayout(this.LayoutFromJSON(oParsedTitle["layout"], oTitle)); oParsedTitle["spPr"] && oTitle.setSpPr(this.SpPrFromJSON(oParsedTitle["spPr"], oTitle)); oParsedTitle["tx"] && oTitle.setTx(this.ChartTxFromJSON(oParsedTitle["tx"])); oParsedTitle["txPr"] && oTitle.setTxPr(this.TxPrFromJSON(oParsedTitle["txPr"], oTitle)); return oTitle; }; ReaderFromJSON.prototype.ScalingFromJSON = function(oParsedScaling, oParent) { var oScaling = new AscFormat.CScaling(); oScaling.setParent(oParent); var nOrientType = oParsedScaling["orientation"] === "maxMin" ? AscFormat.ORIENTATION_MAX_MIN : AscFormat.ORIENTATION_MIN_MAX; oScaling.setLogBase(oParsedScaling["logBase"]); oScaling.setMax(oParsedScaling["max"]); oScaling.setMin(oParsedScaling["min"]); oScaling.setOrientation(nOrientType); return oScaling; }; ReaderFromJSON.prototype.DispUnitsFromJSON = function(oParsedDispUnits) { var oDispUnits = new AscFormat.CDispUnits(); var nBuiltInUnit = undefined; switch(oParsedDispUnits["builtInUnit"]) { case "none": nBuiltInUnit = Asc.c_oAscValAxUnits.none; break; case "billions": nBuiltInUnit = Asc.c_oAscValAxUnits.BILLIONS; break; case "hundredMillions": nBuiltInUnit = Asc.c_oAscValAxUnits.HUNDRED_MILLIONS; break; case "hundreds": nBuiltInUnit = Asc.c_oAscValAxUnits.HUNDREDS; break; case "hundredThousands": nBuiltInUnit = Asc.c_oAscValAxUnits.HUNDRED_THOUSANDS; break; case "millions": nBuiltInUnit = Asc.c_oAscValAxUnits.MILLIONS; break; case "tenMillions": nBuiltInUnit = Asc.c_oAscValAxUnits.TEN_MILLIONS; break; case "tenThousands": nBuiltInUnit = Asc.c_oAscValAxUnits.TEN_THOUSANDS; break; case "trillions": nBuiltInUnit = Asc.c_oAscValAxUnits.TRILLIONS; break; case "custom": nBuiltInUnit = Asc.c_oAscValAxUnits.CUSTOM; break; case "thousands": nBuiltInUnit = Asc.c_oAscValAxUnits.THOUSANDS; break; } oDispUnits.setBuiltInUnit(nBuiltInUnit); oDispUnits.setCustUnit(oParsedDispUnits["custUnit"]); oParsedDispUnits["dispUnitsLbl"] && oDispUnits.setDispUnitsLbl(this.DlblFromJSON(oParsedDispUnits["dispUnitsLbl"])); return oDispUnits; }; ReaderFromJSON.prototype.ChartsFromJSON = function(arrParsedCharts, oParentPlotArea, oAxisMap) { for (var nChart = 0; nChart < arrParsedCharts.length; nChart++) { switch (arrParsedCharts[nChart]["type"]) { case "barChart": oParentPlotArea.addChart(this.BarChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "lineChart": oParentPlotArea.addChart(this.LineChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "pieChart": oParentPlotArea.addChart(this.PieChartFromJSON(arrParsedCharts[nChart])); break; case "doughnutChart": oParentPlotArea.addChart(this.DoughnutChartFromJSON(arrParsedCharts[nChart])); break; case "areaChart": oParentPlotArea.addChart(this.AreaChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "stockChart": oParentPlotArea.addChart(this.StockChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "scatterChart": oParentPlotArea.addChart(this.ScatterChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "bubbleChart": oParentPlotArea.addChart(this.BubbleChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "surfaceChart": oParentPlotArea.addChart(this.SurfaceChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; case "radarChart": oParentPlotArea.addChart(this.RadarChartFromJSON(arrParsedCharts[nChart], oAxisMap)); break; } } }; ReaderFromJSON.prototype.PivotFmtFromJSON = function(oParsedPivotFmt) { var oPivotFmt = new AscFormat.CPivotFmt(); oPivotFmt.setIdx(oParsedPivotFmt["idx"]); oParsedPivotFmt["dLbl"] && oPivotFmt.setLbl(this.DlblFromJSON(oParsedPivotFmt["dLbl"])); oParsedPivotFmt["marker"] && oPivotFmt.setMarker(this.MarkerFromJSON(oParsedPivotFmt["marker"], oPivotFmt)); oParsedPivotFmt["spPr"] && oPivotFmt.setSpPr(this.SpPrFromJSON(oParsedPivotFmt["spPr"], oPivotFmt)); oParsedPivotFmt["txPr"] && oPivotFmt.setTxPr(this.TxPrFromJSON(oParsedPivotFmt["txPr"], oPivotFmt)); return oPivotFmt; }; ReaderFromJSON.prototype.PivotFmtsFromJSON = function(oParsedPivotFmts, oParent) { for (var nItem = 0; nItem < oParsedPivotFmts.length; nItem++) oParent.setPivotFmts(this.PivotFmtFromJSON(oParsedPivotFmts[nItem])); }; ReaderFromJSON.prototype.MarkerFromJSON = function(oParsedMarker, oParent) { var oMarker = new AscFormat.CMarker(); oMarker.setParent(oParent); var nSymbolType = undefined; switch(oParsedMarker["symbol"]) { case "circle": nSymbolType = AscFormat.SYMBOL_CIRCLE; break; case "dash": nSymbolType = AscFormat.SYMBOL_DASH; break; case "diamond": nSymbolType = AscFormat.SYMBOL_DIAMOND; break; case "dot": nSymbolType = AscFormat.SYMBOL_DOT; break; case "none": nSymbolType = AscFormat.SYMBOL_NONE; break; case "picture": nSymbolType = AscFormat.SYMBOL_PICTURE; break; case "plus": nSymbolType = AscFormat.SYMBOL_PLUS; break; case "square": nSymbolType = AscFormat.SYMBOL_SQUARE; break; case "star": nSymbolType = AscFormat.SYMBOL_STAR; break; case "triangle": nSymbolType = AscFormat.SYMBOL_TRIANGLE; break; case "x": nSymbolType = AscFormat.SYMBOL_X; break; } oMarker.setSize(oParsedMarker["size"]); oParsedMarker["spPr"] && oMarker.setSpPr(this.SpPrFromJSON(oParsedMarker["spPr"], oMarker)); oMarker.setSymbol(nSymbolType); return oMarker; }; ReaderFromJSON.prototype.DlblFromJSON = function(oParsedDlbl) { var oDlbl = new AscFormat.CDLbl(); // TickLblPos var nDLblPos = undefined; switch (oParsedDlbl["dLblPos"]) { case "b": nDLblPos = Asc.c_oAscChartDataLabelsPos.b; break; case "bestFit": nDLblPos = Asc.c_oAscChartDataLabelsPos.bestFit; break; case "ctr": nDLblPos = Asc.c_oAscChartDataLabelsPos.ctr; break; case "inBase": nDLblPos = Asc.c_oAscChartDataLabelsPos.inBase; break; case "inEnd": nDLblPos = Asc.c_oAscChartDataLabelsPos.inEnd; break; case "l": nDLblPos = Asc.c_oAscChartDataLabelsPos.l; break; case "outEnd": nDLblPos = Asc.c_oAscChartDataLabelsPos.outEnd; break; case "r": nDLblPos = Asc.c_oAscChartDataLabelsPos.r; break; case "t": nDLblPos = Asc.c_oAscChartDataLabelsPos.t; break; } oDlbl.setDelete(oParsedDlbl["delete"]); oDlbl.setDLblPos(nDLblPos); oDlbl.setIdx(oParsedDlbl["idx"]); oParsedDlbl["layout"] && oDlbl.setLayout(this.LayoutFromJSON(oParsedDlbl["layout"], oDlbl)); oParsedDlbl["numFmt"] && oDlbl.setNumFmt(this.NumFmtFromJSON(oParsedDlbl["numFmt"])); oDlbl.setSeparator(oParsedDlbl["separator"]); oDlbl.setShowBubbleSize(oParsedDlbl["showBubbleSize"]); oDlbl.setShowCatName(oParsedDlbl["showCatName"]); oDlbl.setShowLegendKey(oParsedDlbl["showLegendKey"]); oDlbl.setShowPercent(oParsedDlbl["showPercent"]); oDlbl.setShowSerName(oParsedDlbl["showSerName"]); oDlbl.setShowVal(oParsedDlbl["showVal"]); oParsedDlbl["spPr"] && oDlbl.setSpPr(this.SpPrFromJSON(oParsedDlbl["spPr"], oDlbl)); oParsedDlbl["txPr"] && oDlbl.setTxPr(this.TxPrFromJSON(oParsedDlbl["txPr"], oDlbl)); oParsedDlbl["tx"] && oDlbl.setTx(this.ChartTxFromJSON(oParsedDlbl["tx"])); return oDlbl; }; ReaderFromJSON.prototype.NumFmtFromJSON = function(oParsedNumFmt) { var oNumFmt = new AscFormat.CNumFmt(); oNumFmt.setFormatCode(oParsedNumFmt["formatCode"]); oNumFmt.setSourceLinked(oParsedNumFmt["sourceLinked"]); return oNumFmt; }; ReaderFromJSON.prototype.ChartTxFromJSON = function(oParsedChartTx) { var oChartTx = new AscFormat.CChartText(); oParsedChartTx["strRef"] && oChartTx.setStrRef(this.StrRefFromJSON(oParsedChartTx["strRef"])); oParsedChartTx["rich"] && oChartTx.setRich(this.TxPrFromJSON(oParsedChartTx["rich"])); return oChartTx; }; ReaderFromJSON.prototype.StrRefFromJSON = function(oParsedStrRef) { var oStrRef = new AscFormat.CStrRef(); oStrRef.setF(oParsedStrRef["f"]); oStrRef.setStrCache(this.StrLitFromJSON(oParsedStrRef["strCache"])); return oStrRef; }; ReaderFromJSON.prototype.LegendFromJSON = function(oParsedLegend, oParentChart) { var oLegend = new AscFormat.CLegend(); oLegend.setParent(oParentChart); var nLegendPos = undefined; switch (oParsedLegend["legendPos"]) { case "b": nLegendPos = Asc.c_oAscChartLegendShowSettings.bottom; break; case "l": nLegendPos = Asc.c_oAscChartLegendShowSettings.left; break; case "r": nLegendPos = Asc.c_oAscChartLegendShowSettings.right; break; case "t": nLegendPos = Asc.c_oAscChartLegendShowSettings.top; break; case "tr": nLegendPos = Asc.c_oAscChartLegendShowSettings.topRight; break; } oParsedLegend["layout"] && oLegend.setLayout(this.LayoutFromJSON(oParsedLegend["layout"])); this.LegendEntriesFromJSON(oParsedLegend["legendEntry"], oLegend); oLegend.setLegendPos(nLegendPos); oLegend.setOverlay(oParsedLegend["overlay"]); oParsedLegend["spPr"] && oLegend.setSpPr(this.SpPrFromJSON(oParsedLegend["spPr"], oLegend)); oParsedLegend["txPr"] && oLegend.setTxPr(this.TxPrFromJSON(oParsedLegend["txPr"], oLegend)); return oLegend; }; ReaderFromJSON.prototype.TxPrFromJSON = function(oParsedTxPr, oParent) { var oTxPr = new AscFormat.CTextBody(); oTxPr.setParent(oParent); oParsedTxPr["bodyPr"] && oTxPr.setBodyPr(this.BodyPrFromJSON(oParsedTxPr["bodyPr"])); oParsedTxPr["lstStyle"] && oTxPr.setLstStyle(this.LstStyleFromJSON(oParsedTxPr["lstStyle"])); oParsedTxPr["content"] && oTxPr.setContent(this.DrawingDocContentFromJSON(oParsedTxPr["content"], oTxPr, undefined, undefined)); return oTxPr; }; ReaderFromJSON.prototype.LstStyleFromJSON = function(oParsedStyleLvls) { var oTxtLstStyle = new AscFormat.TextListStyle(); for (var nLvl = 0; nLvl < oParsedStyleLvls.length; nLvl++) { if (oParsedStyleLvls[nLvl]) oTxtLstStyle.levels[nLvl] = this.ParaPrDrawingFromJSON(oParsedStyleLvls[nLvl]); } return oTxtLstStyle; }; ReaderFromJSON.prototype.LayoutFromJSON = function(oParsedLayout, oParent) { var oLayout = new AscFormat.CLayout(); oLayout.setParent(oParent); oLayout.setH(oParsedLayout["h"]); oParsedLayout["hMode"] != undefined && oLayout.setHMode(oParsedLayout["hMode"] === "edge" ? AscFormat.LAYOUT_MODE_EDGE : AscFormat.LAYOUT_MODE_FACTOR); oParsedLayout["layoutTarget"] != undefined && oLayout.setLayoutTarget(oParsedLayout["layoutTarget"] === "inner" ? AscFormat.LAYOUT_TARGET_INNER : AscFormat.LAYOUT_TARGET_OUTER); oLayout.setW(oParsedLayout["w"]); oParsedLayout["wMode"] != undefined && oLayout.setWMode(oParsedLayout["wMode"] === "edge" ? AscFormat.LAYOUT_MODE_EDGE : AscFormat.LAYOUT_MODE_FACTOR); oLayout.setX(oParsedLayout["x"]); oParsedLayout["xMode"] != undefined && oLayout.setXMode(oParsedLayout["xMode"] === "edge" ? AscFormat.LAYOUT_MODE_EDGE : AscFormat.LAYOUT_MODE_FACTOR); oLayout.setY(oParsedLayout["y"]); oParsedLayout["yMode"] != undefined && oLayout.setYMode(oParsedLayout["yMode"] === "edge" ? AscFormat.LAYOUT_MODE_EDGE : AscFormat.LAYOUT_MODE_FACTOR); return oLayout; }; ReaderFromJSON.prototype.LegendEntryFromJSON = function(oParsedEntry) { var oLegendEntry = new AscFormat.CLegendEntry(); oLegendEntry.setDelete(oParsedEntry["delete"]); oLegendEntry.setIdx(oParsedEntry["idx"]); oParsedEntry["txPr"] && oLegendEntry.setTxPr(this.TxPrFromJSON(oParsedEntry["txPr"], oLegendEntry)); return oLegendEntry; }; ReaderFromJSON.prototype.LegendEntriesFromJSON = function(oParsedEntries, oParent) { for (var nItem = 0; nItem < oParsedEntries.length; nItem++) oParent.addLegendEntry(this.LegendEntryFromJSON(oParsedEntries[nItem])); }; ReaderFromJSON.prototype.WallFromJSON = function(oParsedWall, oParent) { var oWall = new AscFormat.CChartWall(); oWall.setParent(oParent); oParsedWall["pictureOptions"] && oWall.setPictureOptions(this.PicOptionsFromJSON(oParsedWall["pictureOptions"])); oParsedWall["spPr"] && oWall.setSpPr(this.SpPrFromJSON(oParsedWall["spPr"], oWall)); oWall.setThickness(oParsedWall["thickness"]); return oWall; }; ReaderFromJSON.prototype.PicOptionsFromJSON = function(oParsedPicOpt) { var oPicOptions = new AscFormat.CPictureOptions(); oPicOptions.setApplyToEnd(oParsedPicOpt["applyToEnd"]); oPicOptions.setApplyToFront(oParsedPicOpt["applyToFront"]); oPicOptions.setApplyToSides(oParsedPicOpt["applyToSides"]); oPicOptions.setPictureFormat(oParsedPicOpt["pictureFormat"]); oPicOptions.setPictureStackUnit(oParsedPicOpt["pictureStackUnit"]); return oPicOptions; }; ReaderFromJSON.prototype.SpStyleFromJSON = function(oParsedSpStyle) { if (!oParsedSpStyle) return oParsedSpStyle; var oStyle = new AscFormat.CShapeStyle(); oParsedSpStyle["lnRef"] && oStyle.setLnRef(this.StyleRefFromJSON(oParsedSpStyle["lnRef"])); oParsedSpStyle["fillRef"] && oStyle.setFillRef(this.StyleRefFromJSON(oParsedSpStyle["fillRef"])); oParsedSpStyle["effectRef"] && oStyle.setEffectRef(this.StyleRefFromJSON(oParsedSpStyle["effectRef"])); oParsedSpStyle["fontRef"] && oStyle.setFontRef(this.FontRefFromJSON(oParsedSpStyle["fontRef"])); return oStyle; }; ReaderFromJSON.prototype.BodyPrFromJSON = function(oParsedBodyPr) { var oBodyPr = new AscFormat.CBodyPr(); var nAnchorType; switch(oParsedBodyPr["anchor"]) { case "b": nAnchorType = AscFormat.VERTICAL_ANCHOR_TYPE_BOTTOM; break; case "ctr": nAnchorType = AscFormat.VERTICAL_ANCHOR_TYPE_CENTER; break; case "dist": nAnchorType = AscFormat.VERTICAL_ANCHOR_TYPE_DISTRIBUTED; break; case "just": nAnchorType = AscFormat.VERTICAL_ANCHOR_TYPE_JUSTIFIED; break; case "t": nAnchorType = AscFormat.VERTICAL_ANCHOR_TYPE_TOP; break; } var nHorzOverflow; switch(oParsedBodyPr["horzOverflow"]) { case "clip": nHorzOverflow = AscFormat.nHOTClip; break; case "overflow": nHorzOverflow = AscFormat.nHOTOverflow; break; } var nVertOverflow; switch(oParsedBodyPr["vertOverflow"]) { case "clip": nVertOverflow = AscFormat.nVOTClip; break; case "ellipsis": nVertOverflow = AscFormat.nVOTEllipsis; break; case "overflow": nVertOverflow = AscFormat.nVOTOverflow; break; } var nVertType; switch(oParsedBodyPr["vert"]) { case "eaVert": nVertType = AscFormat.nVertTTeaVert; break; case "horz": nVertType = AscFormat.nVertTThorz; break; case "mongolianVert": nVertType = AscFormat.nVertTTmongolianVert; break; case "vert": nVertType = AscFormat.nVertTTvert; break; case "vert270": nVertType = AscFormat.nVertTTvert270; break; case "wordArtVert": nVertType = AscFormat.nVertTTwordArtVert; break; case "wordArtVertRtl": nVertType = AscFormat.nVertTTwordArtVertRtl; break; } var nWrapType; switch (oParsedBodyPr["wrap"]) { case "none": nWrapType = AscFormat.nTWTNone; break; case "square": nWrapType = AscFormat.nTWTSquare; break; } if (oParsedBodyPr["flatTx"] != null) oBodyPr.flatTx = oParsedBodyPr["flatTx"]; if (oParsedBodyPr["textFit"]) oBodyPr.textFit = this.TextFitFromJSON(oParsedBodyPr["textFit"]); if (oParsedBodyPr["prstTxWarp"]) oBodyPr.prstTxWarp = this.GeometryFromJSON(oParsedBodyPr["prstTxWarp"]); if (oParsedBodyPr["anchorCtr"] != null) oBodyPr.anchorCtr = oParsedBodyPr["anchorCtr"]; if (oParsedBodyPr["bIns"] != null) oBodyPr.bIns = private_EMU2MM(oParsedBodyPr["bIns"]); if (oParsedBodyPr["compatLnSpc"] != null) oBodyPr.compatLnSpc = oParsedBodyPr["compatLnSpc"]; if (oParsedBodyPr["forceAA"] != null) oBodyPr.forceAA = oParsedBodyPr["forceAA"]; if (oParsedBodyPr["fromWordArt"] != null) oBodyPr.fromWordArt = oParsedBodyPr["fromWordArt"]; if (oParsedBodyPr["lIns"] != null) oBodyPr.lIns = private_EMU2MM(oParsedBodyPr["lIns"]); if (oParsedBodyPr["numCol"] != null) oBodyPr.numCol = oParsedBodyPr["numCol"]; if (oParsedBodyPr["rIns"] != null) oBodyPr.rIns = private_EMU2MM(oParsedBodyPr["rIns"]); if (oParsedBodyPr["rot"] != null) oBodyPr.rot = oParsedBodyPr["rot"]; if (oParsedBodyPr["rtlCol"] != null) oBodyPr.rtlCol = oParsedBodyPr["rtlCol"]; if (oParsedBodyPr["spcCol"] != null) oBodyPr.spcCol = private_EMU2MM(oParsedBodyPr["spcCol"]); if (oParsedBodyPr["spcFirstLastPara"] != null) oBodyPr.spcFirstLastPara = oParsedBodyPr["spcFirstLastPara"]; if (oParsedBodyPr["tIns"] != null) oBodyPr.tIns = private_EMU2MM(oParsedBodyPr["tIns"]); if (oParsedBodyPr["upright"] != null) oBodyPr.upright = oParsedBodyPr["upright"]; if (nHorzOverflow != null) oBodyPr.horzOverflow = nHorzOverflow; if (nAnchorType != null) oBodyPr.anchor = nAnchorType; if (nVertType != null) oBodyPr.vert = nVertType; if (nVertOverflow != null) oBodyPr.vertOverflow = nVertOverflow; if (nWrapType != null) oBodyPr.wrap = nWrapType; return oBodyPr; }; ReaderFromJSON.prototype.TextFitFromJSON = function(oParsedTextFit) { let oTextFit = new AscFormat.CTextFit(); switch (oParsedTextFit["type"]) { case "noAutoFit": oTextFit.type = AscFormat.text_fit_No; break; case "autoFit": oTextFit.type = AscFormat.text_fit_Auto; break; case "normAutoFit": oTextFit.type = AscFormat.text_fit_NormAuto; break; } if (oParsedTextFit["fontScale"] != null) oTextFit.fontScale = oParsedTextFit["fontScale"]; if (oParsedTextFit["lnSpcReduction"] != null) oTextFit.lnSpcReduction = oParsedTextFit["lnSpcReduction"]; return oTextFit; }; ReaderFromJSON.prototype.SpPrFromJSON = function(oParsedPr, oParent) { var oSpPr = new AscFormat.CSpPr(); oSpPr.setParent(oParent); oParsedPr["fill"] && oSpPr.setFill(this.FillFromJSON(oParsedPr["fill"])); (oParsedPr["effectDag"] || oParsedPr["effectLst"]) && oSpPr.setEffectPr(this.EffectPropsFromJSON(oParsedPr["effectDag"], oParsedPr["effectLst"])); oSpPr.setBwMode(oParsedPr["bwMode"]); oParsedPr["custGeom"] && oSpPr.setGeometry(this.GeometryFromJSON(oParsedPr["custGeom"])); oParsedPr["ln"] && oSpPr.setLn(this.LnFromJSON(oParsedPr["ln"])); oParsedPr["xfrm"] && oSpPr.setXfrm(this.XfrmFromJSON(oParsedPr["xfrm"], oSpPr)); return oSpPr; }; ReaderFromJSON.prototype.LnFromJSON = function(oParsedLn) { var oLn = new AscFormat.CLn(); oParsedLn["fill"] && oLn.setFill(this.FillFromJSON(oParsedLn["fill"])); oParsedLn["lineJoin"] && oLn.setJoin(this.LineJoinFromJSON(oParsedLn["lineJoin"])); oParsedLn["headEnd"] && oLn.setHeadEnd(this.EndArrowFromJSON(oParsedLn["headEnd"])); oParsedLn["tailEnd"] && oLn.setTailEnd(this.EndArrowFromJSON(oParsedLn["tailEnd"])); oLn.setPrstDash(this.GetPenDashNumType(oParsedLn["prstDash"])); var nAlgnType = oParsedLn["algn"] != undefined ? (oParsedLn["algn"] === "ctr" ? 0 : 1) : oLn.algn; var nCapType = undefined; switch (oParsedLn["cap"]) { case "flat": nCapType = 0; break; case "rnd": nCapType = 1; break; case "sq": nCapType = 2; break; } var nCmpdType = undefined; switch( oParsedLn["cmpd"]) { case "dbl": nCmpdType = 0; break; case "sng": nCmpdType = 1; break; case "thickThin": nCmpdType = 2; break; case "thinThick": nCmpdType = 3; break; case "tri": nCmpdType = 4; break; } oLn.setAlgn(nAlgnType); oLn.setCap(nCapType); oLn.setCmpd(nCmpdType); oLn.setW(oParsedLn["w"]); return oLn; }; ReaderFromJSON.prototype.GetTimeUnitNumType = function(sType) { var nTimeUnit = undefined; switch(sType) { case "days": nTimeUnit = AscFormat.TIME_UNIT_DAYS; break; case "months": nTimeUnit = AscFormat.TIME_UNIT_MONTHS; break; case "years": nTimeUnit = AscFormat.TIME_UNIT_YEARS; break; } return nTimeUnit; }; ReaderFromJSON.prototype.GetTickMarkNumType = function(sType) { var nType = undefined; switch(sType) { case "cross": nType = Asc.c_oAscTickMark.TICK_MARK_CROSS; break; case "in": nType = Asc.c_oAscTickMark.TICK_MARK_IN; break; case "none": nType = Asc.c_oAscTickMark.TICK_MARK_NONE; break; case "out": nType = Asc.c_oAscTickMark.TICK_MARK_OUT; break; } return nType; }; ReaderFromJSON.prototype.GetCrossesNumType = function(sType) { var nType = undefined; switch(sType) { case "autoZero": nType = AscFormat.CROSSES_AUTO_ZERO; break; case "max": nType = AscFormat.CROSSES_MAX; break; case "min": nType = AscFormat.CROSSES_MIN; break; } return nType; }; ReaderFromJSON.prototype.GetTickLabelNumPos = function(sType) { var nTickLblPos = undefined; switch (sType) { case "high": nTickLblPos = Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH; break; case "low": nTickLblPos = Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW; break; case "nextTo": nTickLblPos = Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO; break; case "none": nTickLblPos = Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE; break; } return nTickLblPos; }; ReaderFromJSON.prototype.GetAxPosNumType = function(sType) { var nAxPos = undefined; switch (sType) { case "b": nAxPos = AscFormat.AX_POS_B; break; case "l": nAxPos = AscFormat.AX_POS_L; break; case "r": nAxPos = AscFormat.AX_POS_R; break; case "t": nAxPos = AscFormat.AX_POS_B; break; } return nAxPos; }; ReaderFromJSON.prototype.GetPresetNumType = function(sType) { switch (sType) { case "cross": return AscCommon.global_hatch_offsets["cross"]; case "dashDnDiag": return AscCommon.global_hatch_offsets["dashDnDiag"]; case "dashHorz": return AscCommon.global_hatch_offsets["dashHorz"]; case "dashUpDiag": return AscCommon.global_hatch_offsets["dashUpDiag"]; case "dashVert": return AscCommon.global_hatch_offsets["dashVert"]; case "diagBrick": return AscCommon.global_hatch_offsets["diagBrick"]; case "diagCross": return AscCommon.global_hatch_offsets["diagCross"]; case "divot": return AscCommon.global_hatch_offsets["divot"]; case "dkDnDiag": return AscCommon.global_hatch_offsets["dkDnDiag"]; case "dkHorz": return AscCommon.global_hatch_offsets["dkHorz"]; case "dkUpDiag": return AscCommon.global_hatch_offsets["dkUpDiag"]; case "dkVert": return AscCommon.global_hatch_offsets["dkVert"]; case "dnDiag": return AscCommon.global_hatch_offsets["dnDiag"]; case "dotDmnd": return AscCommon.global_hatch_offsets["dotDmnd"]; case "dotGrid": return AscCommon.global_hatch_offsets["dotGrid"]; case "horz": return AscCommon.global_hatch_offsets["horz"]; case "horzBrick": return AscCommon.global_hatch_offsets["horzBrick"]; case "lgCheck": return AscCommon.global_hatch_offsets["lgCheck"]; case "lgConfetti": return AscCommon.global_hatch_offsets["lgConfetti"]; case "lgGrid": return AscCommon.global_hatch_offsets["lgGrid"]; case "ltDnDiag": return AscCommon.global_hatch_offsets["ltDnDiag"]; case "ltHorz": return AscCommon.global_hatch_offsets["ltHorz"]; case "ltUpDiag": return AscCommon.global_hatch_offsets["ltUpDiag"]; case "ltVert": return AscCommon.global_hatch_offsets["ltVert"]; case "narHorz": return AscCommon.global_hatch_offsets["narHorz"]; case "narVert": return AscCommon.global_hatch_offsets["narVert"]; case "openDmnd": return AscCommon.global_hatch_offsets["openDmnd"]; case "pct10": return AscCommon.global_hatch_offsets["pct10"]; case "pct20": return AscCommon.global_hatch_offsets["pct20"]; case "pct25": return AscCommon.global_hatch_offsets["pct25"]; case "pct30": return AscCommon.global_hatch_offsets["pct30"]; case "pct40": return AscCommon.global_hatch_offsets["pct40"]; case "pct5": return AscCommon.global_hatch_offsets["pct5"]; case "pct50": return AscCommon.global_hatch_offsets["pct50"]; case "pct60": return AscCommon.global_hatch_offsets["pct60"]; case "pct70": return AscCommon.global_hatch_offsets["pct70"]; case "pct75": return AscCommon.global_hatch_offsets["pct75"]; case "pct80": return AscCommon.global_hatch_offsets["pct80"]; case "pct90": return AscCommon.global_hatch_offsets["pct90"]; case "plaid": return AscCommon.global_hatch_offsets["plaid"]; case "shingle": return AscCommon.global_hatch_offsets["shingle"]; case "smCheck": return AscCommon.global_hatch_offsets["smCheck"]; case "smConfetti": return AscCommon.global_hatch_offsets["smConfetti"]; case "smGrid": return AscCommon.global_hatch_offsets["smGrid"]; case "solidDmnd": return AscCommon.global_hatch_offsets["solidDmnd"]; case "sphere": return AscCommon.global_hatch_offsets["sphere"]; case "trellis": return AscCommon.global_hatch_offsets["trellis"]; case "upDiag": return AscCommon.global_hatch_offsets["upDiag"]; case "vert": return AscCommon.global_hatch_offsets["vert"]; case "wave": return AscCommon.global_hatch_offsets["wave"]; case "wdDnDiag": return AscCommon.global_hatch_offsets["wdDnDiag"]; case "wdUpDiag": return AscCommon.global_hatch_offsets["wdUpDiag"]; case "weave": return AscCommon.global_hatch_offsets["weave"]; case "zigZag": return AscCommon.global_hatch_offsets["zigZag"]; } }; ReaderFromJSON.prototype.GetFormulaNumType = function(sFormulaType) { var nFormulaType = undefined; switch(sFormulaType) { case "*/": nFormulaType = AscFormat.FORMULA_TYPE_MULT_DIV; break; case "+-": nFormulaType = AscFormat.FORMULA_TYPE_PLUS_MINUS; break; case "+/": nFormulaType = AscFormat.FORMULA_TYPE_PLUS_DIV; break; case "?:": nFormulaType = AscFormat.FORMULA_TYPE_IF_ELSE; break; case "abs": nFormulaType = AscFormat.FORMULA_TYPE_ABS; break; case "at2": nFormulaType = AscFormat.FORMULA_TYPE_AT2; break; case "cat2": nFormulaType = AscFormat.FORMULA_TYPE_CAT2; break; case "cos": nFormulaType = AscFormat.FORMULA_TYPE_COS; break; case "max": nFormulaType = AscFormat.FORMULA_TYPE_MAX; break; case "mod": nFormulaType = AscFormat.FORMULA_TYPE_MOD; break; case "pin": nFormulaType = AscFormat.FORMULA_TYPE_PIN; break; case "sat2": nFormulaType = AscFormat.FORMULA_TYPE_SAT2; break; case "sin": nFormulaType = AscFormat.FORMULA_TYPE_SIN; break; case "sqrt": nFormulaType = AscFormat.FORMULA_TYPE_SQRT; break; case "tan": nFormulaType = AscFormat.FORMULA_TYPE_TAN; break; case "val": nFormulaType = AscFormat.FORMULA_TYPE_VALUE; break; case "min": nFormulaType = AscFormat.FORMULA_TYPE_MIN; break; } return nFormulaType; }; ReaderFromJSON.prototype.GetNumPhType = function(sType) { switch (sType) { case "body": return AscFormat.phType_body; case "sPhType": return AscFormat.phType_chart; case "clipArt": return AscFormat.phType_clipArt; case "ctrTitle": return AscFormat.phType_ctrTitle; case "dgm": return AscFormat.phType_dgm; case "dt": return AscFormat.phType_dt; case "ftr": return AscFormat.phType_ftr; case "hdr": return AscFormat.phType_hdr; case "media": return AscFormat.phType_media; case "obj": return AscFormat.phType_obj; case "pic": return AscFormat.phType_pic; case "sldImg": return AscFormat.phType_sldImg; case "sldNum": return AscFormat.phType_sldNum; case "subTitle": return AscFormat.phType_subTitle; case "tbl": return AscFormat.phType_tbl; case "title": return AscFormat.phType_title; } }; ReaderFromJSON.prototype.GetWrapNumType = function(sType) { switch (sType) { case "none": return WRAPPING_TYPE_NONE; case "square": return WRAPPING_TYPE_SQUARE; case "through": return WRAPPING_TYPE_THROUGH; case "tight": return WRAPPING_TYPE_TIGHT; case "top_and_bottom": return WRAPPING_TYPE_TOP_AND_BOTTOM; default: return WRAPPING_TYPE_NONE; } }; ReaderFromJSON.prototype.GetPenDashNumType = function(sType) { switch (sType) { case "dash": return Asc.c_oDashType.dash; case "dashDot": return Asc.c_oDashType.dashDot; case "dot": return Asc.c_oDashType.dot; case "lgDash": return Asc.c_oDashType.lgDash; case "lgDashDot": return Asc.c_oDashType.lgDashDot; case "lgDashDotDot": return Asc.c_oDashType.lgDashDotDot; case "solid": return Asc.c_oDashType.solid; case "sysDash": return Asc.c_oDashType.sysDash; case "sysDashDot": return Asc.c_oDashType.sysDashDot; case "sysDashDotDot": return Asc.c_oDashType.sysDashDotDot; case "sysDot": return Asc.c_oDashType.sysDot; default: return sType; } }; ReaderFromJSON.prototype.EndArrowFromJSON = function(oParsedEndArrow) { var nType = null; switch(oParsedEndArrow["type"]) { case "none": nType = AscFormat.LineEndType.None; break; case "arrow": nType = AscFormat.LineEndType.Arrow; break; case "diamond": nType = AscFormat.LineEndType.Diamond; break; case "oval": nType = AscFormat.LineEndType.Oval; break; case "stealth": nType = AscFormat.LineEndType.Stealth; break; case "triangle": nType = AscFormat.LineEndType.Triangle; break; } var nLineEndSize = null; switch(oParsedEndArrow["len"]) { case "lg": nLineEndSize = AscFormat.LineEndSize.Large; break; case "med": nLineEndSize = AscFormat.LineEndSize.Mid; break; case "sm": nLineEndSize = AscFormat.LineEndSize.Small; break; } var nLineEndWidth = null; switch(oParsedEndArrow["w"]) { case "lg": nLineEndWidth = AscFormat.LineEndSize.Large; break; case "med": nLineEndWidth = AscFormat.LineEndSize.Mid; break; case "sm": nLineEndWidth = AscFormat.LineEndSize.Small; break; } var oEndArrow = new AscFormat.EndArrow(); oEndArrow.setType(nType); oEndArrow.setLen(nLineEndSize); oEndArrow.setW(nLineEndWidth); return oEndArrow; }; ReaderFromJSON.prototype.LineJoinFromJSON = function(oParsedLineJoin) { var oLineJoin = new AscFormat.LineJoin(); var nType = undefined; switch (oParsedLineJoin["type"]) { case "round": nType = AscFormat.LineJoinType.Round; break; case "bevel": nType = AscFormat.LineJoinType.Bevel; break; case "miter": nType = AscFormat.LineJoinType.Miter; break; case "empty": nType = AscFormat.LineJoinType.Empty; break; } oLineJoin.setType(nType); if (oParsedLineJoin["lim"] != null) oLineJoin.setLimit(oParsedLineJoin["lim"]); return oLineJoin; }; ReaderFromJSON.prototype.XfrmFromJSON = function(oParsedXfrm, oParent) { var oXfrm = new AscFormat.CXfrm(); oParent && oXfrm.setParent(oParent); oParsedXfrm["ext"]["cx"] != undefined && oXfrm.setExtX(private_EMU2MM(oParsedXfrm["ext"]["cx"])); oParsedXfrm["ext"]["cy"] != undefined && oXfrm.setExtY(private_EMU2MM(oParsedXfrm["ext"]["cy"])); oParsedXfrm["off"]["x"] != undefined && oXfrm.setOffX(private_EMU2MM(oParsedXfrm["off"]["x"])); oParsedXfrm["off"]["y"] != undefined && oXfrm.setOffY(private_EMU2MM(oParsedXfrm["off"]["y"])); oParsedXfrm["flipH"] != undefined && oXfrm.setFlipH(oParsedXfrm["flipH"]); oParsedXfrm["flipV"] != undefined && oXfrm.setFlipV(oParsedXfrm["flipV"]); oParsedXfrm["rot"] != undefined && oXfrm.setRot(oParsedXfrm["rot"]); oParsedXfrm["chOffX"] != undefined && oXfrm.setChOffX(private_EMU2MM(oParsedXfrm["chOffX"])); oParsedXfrm["chOffY"] != undefined && oXfrm.setChOffY(private_EMU2MM(oParsedXfrm["chOffY"])); oParsedXfrm["chExtX"] != undefined && oXfrm.setChExtX(private_EMU2MM(oParsedXfrm["chExtX"])); oParsedXfrm["chExtY"] != undefined && oXfrm.setChExtY(private_EMU2MM(oParsedXfrm["chExtY"])); return oXfrm; }; ReaderFromJSON.prototype.EffectPropsFromJSON = function(oParsedEffectDag, oParsedEffectList) { var oEffectProps = new AscFormat.CEffectProperties(); if (oParsedEffectDag) oEffectProps.EffectDag = this.EffectContainerFromJSON(oParsedEffectDag); if (oParsedEffectList) oEffectProps.EffectLst = this.EffectLstFromJSON(oParsedEffectList); return oEffectProps; }; ReaderFromJSON.prototype.GeometryFromJSON = function(oParsedGeom) { var oGeom = new AscFormat.Geometry(); var oItem; // AhPolar for (var nItem = 0; nItem < oParsedGeom["ahLst"]["ahPolar"].length; nItem++) { oItem = oParsedGeom["ahLst"]["ahPolar"][nItem]; oGeom.AddHandlePolar(oItem["gdRefAng"], oItem["minAng"], oItem["maxAng"], oItem["gdRefR"], oItem["minR"], oItem["maxR"], oItem["pos"]["x"], oItem["pos"]["y"]) } // AhXY for (nItem = 0; nItem < oParsedGeom["ahLst"]["ahXY"].length; nItem++) { oItem = oParsedGeom["ahLst"]["ahXY"][nItem]; oGeom.AddHandleXY(oItem["gdRefX"], oItem["minX"], oItem["maxX"], oItem["gdRefY"], oItem["minY"], oItem["maxY"], oItem["pos"]["x"], oItem["pos"]["y"]); } // Av for (var key in oParsedGeom["avLst"]) oGeom.avLst[key] = oParsedGeom["avLst"][key]; // adj for (key in oParsedGeom["adjLst"]) oGeom.AddAdj(key, undefined, oParsedGeom["adjLst"][key]); // Cnx for (nItem = 0; nItem < oParsedGeom["cnxLst"]["length"]; nItem++) { oItem = oParsedGeom["cnxLst"][nItem]; oGeom.AddCnx(oItem["ang"], oItem["pos"]["x"], oItem["pos"]["y"]); } // gdLst for (var nGd = 0; nGd < oParsedGeom["gdLst"]["length"]; nGd++) { oItem = oParsedGeom["gdLst"][nGd]; oGeom.AddGuide(oItem["name"], this.GetFormulaNumType(oItem["fmla"]), oItem["x"], oItem["y"], oItem["z"]); } // pathLst for (var nPath = 0; nPath < oParsedGeom["pathLst"]["length"]; nPath++) oGeom.AddPath(this.GeomPathFromJSON(oParsedGeom["pathLst"][nPath])); oParsedGeom["rect"] && oGeom.AddRect(oParsedGeom["rect"]["l"], oParsedGeom["rect"]["t"], oParsedGeom["rect"]["r"], oParsedGeom["rect"]["b"]); if (oParsedGeom["preset"]) oGeom.setPreset(oParsedGeom["preset"]); return oGeom; }; ReaderFromJSON.prototype.GeomPathFromJSON = function(oParsedPath) { var oPath = new AscFormat.Path(); for (var nCommand = 0; nCommand < oParsedPath["commands"].length; nCommand++) { var oParsedCommand = oParsedPath["commands"][nCommand]; var oCommand = {}; switch (oParsedCommand["id"]) { case "moveTo": oCommand.id = 0; oCommand.X = oParsedCommand["pt"]["x"]; oCommand.Y = oParsedCommand["pt"]["y"]; break; case "lnTo": oCommand.id = 1; oCommand.X = oParsedCommand["pt"]["x"]; oCommand.Y = oParsedCommand["pt"]["y"]; break; case "arcTo": oCommand.id = 2; oCommand.hR = oParsedCommand["hR"]; oCommand.wR = oParsedCommand["wR"]; oCommand.stAng = oParsedCommand["stAng"]; oCommand.swAng = oParsedCommand["swAng"]; break; case "cubicBezTo": oCommand.id = 3; oCommand.X0 = oParsedCommand["pt"]["x0"]; oCommand.Y0 = oParsedCommand["pt"]["y0"]; oCommand.X1 = oParsedCommand["pt"]["x1"]; oCommand.Y1 = oParsedCommand["pt"]["y1"]; break; case "quadBezTo": oCommand.id = 4; oCommand.X0 = oParsedCommand["pt"]["x0"]; oCommand.Y0 = oParsedCommand["pt"]["y0"]; oCommand.X1 = oParsedCommand["pt"]["x1"]; oCommand.Y1 = oParsedCommand["pt"]["y1"]; oCommand.X2 = oParsedCommand["pt"]["x2"]; oCommand.Y2 = oParsedCommand["pt"]["y2"]; break; case "close": oCommand.id = 5; break; } oPath.addPathCommand(oCommand); } oParsedPath["extrusionOk"] != undefined && oPath.setExtrusionOk(oParsedPath["extrusionOk"]); oParsedPath["fill"] != undefined && oPath.setFill(oParsedPath["fill"]); oParsedPath["h"] != undefined && oPath.setPathH(oParsedPath["h"]); oParsedPath["stroke"] != undefined && oPath.setStroke(oParsedPath["stroke"]); oParsedPath["w"] != undefined && oPath.setPathW(oParsedPath["w"]); return oPath; }; ReaderFromJSON.prototype.UniNvPrFromJSON = function(oParsedPr) { var oUniNvPr = new AscFormat.UniNvPr(); var nLocks = 0; oUniNvPr.setCNvPr(this.CNvPrFromJSON(oParsedPr["cNvPr"])); oUniNvPr.setNvPr(this.NvPrFromJSON(oParsedPr["nvPr"])); if (oParsedPr["cNvSpPr"]) { nLocks = this.SpCNvPrFromJSON(oParsedPr["cNvSpPr"]); } else if (oParsedPr["cNvPicPr"]) { nLocks = this.PicCNvPrFromJSON(oParsedPr["cNvPicPr"]); } else if (oParsedPr["cNvGrpSpPr"]) { nLocks = this.GrpCNvPrFromJSON(oParsedPr["cNvGrpSpPr"]); } else if (oParsedPr["cNvGraphicFramePr"]) { nLocks = this.GrFrameCNvPrFromJSON(oParsedPr["cNvGraphicFramePr"]); } else if (oParsedPr["cNvCxnSpPr"]) { nLocks = this.CnxCNvPrFromJSON(oParsedPr["cNvCxnSpPr"], oUniNvPr); } if (nLocks !== 0) oUniNvPr.locks = nLocks; return oUniNvPr; }; ReaderFromJSON.prototype.SpCNvPrFromJSON = function(oParsed) { var nLocks = 0; if (oParsed["txBox"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.txBox, oParsed["txBox"]); if (oParsed["spLocks"]["noAdjustHandles"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noAdjustHandles, oParsed["spLocks"]["noAdjustHandles"]); if (oParsed["spLocks"]["noChangeArrowheads"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeArrowheads, oParsed["spLocks"]["noChangeArrowheads"]); if (oParsed["spLocks"]["noChangeAspect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeAspect, oParsed["spLocks"]["noChangeAspect"]); if (oParsed["spLocks"]["noChangeShapeType"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeShapeType, oParsed["spLocks"]["noChangeShapeType"]); if (oParsed["spLocks"]["noEditPoints"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noEditPoints, oParsed["spLocks"]["noEditPoints"]); if (oParsed["spLocks"]["noGrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noGrp, oParsed["spLocks"]["noGrp"]); if (oParsed["spLocks"]["noMove"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noMove, oParsed["spLocks"]["noMove"]); if (oParsed["spLocks"]["noResize"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noResize, oParsed["spLocks"]["noResize"]); if (oParsed["spLocks"]["noRot"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noRot, oParsed["spLocks"]["noRot"]); if (oParsed["spLocks"]["noSelect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noSelect, oParsed["spLocks"]["noSelect"]); if (oParsed["spLocks"]["noTextEdit"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noTextEdit, oParsed["spLocks"]["noTextEdit"]); return nLocks; }; ReaderFromJSON.prototype.PicCNvPrFromJSON = function(oParsed) { var nLocks = 0; if (oParsed["picLocks"]["noAdjustHandles"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noAdjustHandles, oParsed["picLocks"]["noAdjustHandles"]); if (oParsed["picLocks"]["noChangeArrowheads"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeArrowheads, oParsed["picLocks"]["noChangeArrowheads"]); if (oParsed["picLocks"]["noChangeAspect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeAspect, oParsed["picLocks"]["noChangeAspect"]); if (oParsed["picLocks"]["noChangeShapeType"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeShapeType, oParsed["picLocks"]["noChangeShapeType"]); if (oParsed["picLocks"]["noCrop"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noCrop, oParsed["picLocks"]["noCrop"]); if (oParsed["picLocks"]["noEditPoints"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noEditPoints, oParsed["picLocks"]["noEditPoints"]); if (oParsed["picLocks"]["noGrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noGrp, oParsed["picLocks"]["noGrp"]); if (oParsed["picLocks"]["noMove"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noMove, oParsed["picLocks"]["noMove"]); if (oParsed["picLocks"]["noResize"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noResize, oParsed["picLocks"]["noResize"]); if (oParsed["picLocks"]["noRot"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noRot, oParsed["picLocks"]["noRot"]); if (oParsed["picLocks"]["noSelect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noSelect, oParsed["picLocks"]["noSelect"]); return nLocks; }; ReaderFromJSON.prototype.GrpCNvPrFromJSON = function(oParsed) { var nLocks = 0; if (oParsed["grpSpLocks"]["noChangeAspect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeAspect, oParsed["grpSpLocks"]["noChangeAspect"]); if (oParsed["grpSpLocks"]["noGrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noGrp, oParsed["grpSpLocks"]["noGrp"]); if (oParsed["grpSpLocks"]["noMove"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noMove, oParsed["grpSpLocks"]["noMove"]); if (oParsed["grpSpLocks"]["noResize"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noResize, oParsed["grpSpLocks"]["noResize"]); if (oParsed["grpSpLocks"]["noRot"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noRot, oParsed["grpSpLocks"]["noRot"]); if (oParsed["grpSpLocks"]["noSelect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noSelect, oParsed["grpSpLocks"]["noSelect"]); if (oParsed["grpSpLocks"]["noUngrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noUngrp, oParsed["grpSpLocks"]["noUngrp"]); return nLocks; }; ReaderFromJSON.prototype.GrFrameCNvPrFromJSON = function(oParsed) { var nLocks = 0; if (oParsed["graphicFrameLocks"]["noChangeAspect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeAspect, oParsed["graphicFrameLocks"]["noChangeAspect"]); if (oParsed["graphicFrameLocks"]["noDrilldown"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noDrilldown, oParsed["graphicFrameLocks"]["noDrilldown"]); if (oParsed["graphicFrameLocks"]["noGrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noGrp, oParsed["graphicFrameLocks"]["noGrp"]); if (oParsed["graphicFrameLocks"]["noMove"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noMove, oParsed["graphicFrameLocks"]["noMove"]); if (oParsed["graphicFrameLocks"]["noResize"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noResize, oParsed["graphicFrameLocks"]["noResize"]); if (oParsed["graphicFrameLocks"]["noSelect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noSelect, oParsed["graphicFrameLocks"]["noSelect"]); return nLocks; }; ReaderFromJSON.prototype.CnxCNvPrFromJSON = function(oParsed, oParentUniNvPr) { let nLocks = 0; if (oParsed["cxnSpLocks"]["noAdjustHandles"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noAdjustHandles, oParsed["cxnSpLocks"]["noAdjustHandles"]); if (oParsed["cxnSpLocks"]["noChangeArrowheads"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeArrowheads, oParsed["cxnSpLocks"]["noChangeArrowheads"]); if (oParsed["cxnSpLocks"]["noChangeAspect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeAspect, oParsed["cxnSpLocks"]["noChangeAspect"]); if (oParsed["cxnSpLocks"]["noChangeShapeType"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noChangeShapeType, oParsed["cxnSpLocks"]["noChangeShapeType"]); if (oParsed["cxnSpLocks"]["noEditPoints"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noEditPoints, oParsed["cxnSpLocks"]["noEditPoints"]); if (oParsed["cxnSpLocks"]["noGrp"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noGrp, oParsed["cxnSpLocks"]["noGrp"]); if (oParsed["cxnSpLocks"]["noMove"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noMove, oParsed["cxnSpLocks"]["noMove"]); if (oParsed["cxnSpLocks"]["noResize"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noResize, oParsed["cxnSpLocks"]["noResize"]); if (oParsed["cxnSpLocks"]["noRot"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noRot, oParsed["cxnSpLocks"]["noRot"]); if (oParsed["cxnSpLocks"]["noSelect"] != null) nLocks = AscFormat.fUpdateLocksValue(nLocks, AscFormat.LOCKS_MASKS.noSelect, oParsed["cxnSpLocks"]["noSelect"]); if (oParentUniNvPr) { let oCNvUniSpPr = new AscFormat.CNvUniSpPr(); if (oParsed["stCxn"] != null) { oCNvUniSpPr.stCnxId = oParsed["stCxn"]["id"]; oCNvUniSpPr.stCnxIdx = oParsed["stCxn"]["idx"]; } if (oParsed["endCxn"] != null) { oCNvUniSpPr.endCnxId = oParsed["endCxn"]["id"]; oCNvUniSpPr.endCnxIdx = oParsed["endCxn"]["idx"]; } oParentUniNvPr.setUniSpPr(oCNvUniSpPr); } return nLocks; }; ReaderFromJSON.prototype.CNvPrFromJSON = function(oParsedPr) { var oCNvPr = new AscFormat.CNvPr(); oCNvPr.setName(oParsedPr["name"]); oCNvPr.setIsHidden(oParsedPr["hidden"]); oCNvPr.setDescr(oParsedPr["descr"]); oCNvPr.setTitle(oParsedPr["title"]); oParsedPr["hlinkClick"] && oCNvPr.setHlinkClick(this.HLinkFromJSON(oParsedPr["hlinkClick"])); oParsedPr["hlinkHover"] && oCNvPr.setHlinkHover(this.HLinkFromJSON(oParsedPr["hlinkHover"])); oCNvPr.setId(oParsedPr["id"]); //this.old_to_new_shapes_id_map[oParsedPr["id"]] = oCNvPr.id; return oCNvPr; }; ReaderFromJSON.prototype.NvPrFromJSON = function(oParsedPr) { var oNvPr = new AscFormat.NvPr(); oNvPr.setIsPhoto(oParsedPr["isPhoto"]); oParsedPr["ph"] && oNvPr.setPh(this.PlaceholderFromJSON(oParsedPr["ph"])); if (oParsedPr["audio"]) oNvPr.setUniMedia(this.UniMediaFromJSON(oParsedPr["audio"], "audio")); else if (oParsedPr["video"]) oNvPr.setUniMedia(this.UniMediaFromJSON(oParsedPr["video"]), "video"); oNvPr.setUserDrawn(oParsedPr["userDrawn"]); return oNvPr; }; ReaderFromJSON.prototype.PlaceholderFromJSON = function(oParsedPh) { var oPlaceholder = new AscFormat.Ph(); // orient var nOrient = typeof(oParsedPh["orient"]) === "string" ? (oParsedPh["orient"] === "vert" ? 1 : 0) : null; // size var nPhSz = null; switch (oParsedPh["sz"]) { case "full": nPhSz = 0; break; case "half": nPhSz = 1; break; case "quarter": nPhSz = 2; break; } oParsedPh["hasCustomPrompt"] != undefined && oPlaceholder.setHasCustomPrompt(oParsedPh["hasCustomPrompt"]); oParsedPh["idx"] != undefined && oPlaceholder.setIdx(oParsedPh["idx"]); nOrient != undefined && oPlaceholder.setOrient(nOrient); nPhSz != undefined && oPlaceholder.setSz(nPhSz); oParsedPh["type"] != undefined && oPlaceholder.setType(this.GetNumPhType(oParsedPh["type"])); return oPlaceholder; }; ReaderFromJSON.prototype.UniMediaFromJSON = function(oParsedUniMedia, sType) { var oUniMedia = new AscFormat.UniMedia(); switch (sType) { case "audio": oUniMedia.type = AscFormat.AUDIO_FILE; break; case "video": oUniMedia.type = AscFormat.VIDEO_FILE; break; } oUniMedia.media = oParsedUniMedia["media"]; return oUniMedia; }; ReaderFromJSON.prototype.HLinkFromJSON = function(oParsedHLink) { var oHLink = new AscFormat.CT_Hyperlink(); oHLink.id = oParsedHLink["id"]; oHLink.invalidUrl = oParsedHLink["invalidUrl"]; oHLink.action = oParsedHLink["action"]; oHLink.tgtFrame = oParsedHLink["tgtFrame"]; oHLink.tooltip = oParsedHLink["tooltip"]; oHLink.history = oParsedHLink["history"]; oHLink.highlightClick = oParsedHLink["highlightClick"]; oHLink.endSnd = oParsedHLink["endSnd"]; return oHLink; }; ReaderFromJSON.prototype.PositionHFromJSON = function(oParsedPosH) { // anchorH var nRelFromH = undefined; switch (oParsedPosH["relativeFrom"]) { case "character": nRelFromH = Asc.c_oAscRelativeFromH.Character; break; case "column": nRelFromH = Asc.c_oAscRelativeFromH.Column; break; case "insideMargin": nRelFromH = Asc.c_oAscRelativeFromH.InsideMargin; break; case "leftMargin": nRelFromH = Asc.c_oAscRelativeFromH.LeftMargin; break; case "margin": nRelFromH = Asc.c_oAscRelativeFromH.Margin; break; case "outsideMargin": nRelFromH = Asc.c_oAscRelativeFromH.OutsideMargin; break; case "page": nRelFromH = Asc.c_oAscRelativeFromH.Page; break; case "rightMargin": nRelFromH = Asc.c_oAscRelativeFromH.RightMargin; break; } // alignH var nHorAlign = undefined; if (oParsedPosH["align"]) { switch (oParsedPosH["align"]) { case "center": nHorAlign = Asc.c_oAscXAlign.Center; break; case "inside": nHorAlign = Asc.c_oAscXAlign.Inside; break; case "left": nHorAlign = Asc.c_oAscXAlign.Left; break; case "outside": nHorAlign = Asc.c_oAscXAlign.Outside; break; case "right": nHorAlign = Asc.c_oAscXAlign.Right; break; } } var nValue = oParsedPosH["align"] ? nHorAlign : (oParsedPosH["percent"] ? oParsedPosH["posOffset"] : private_EMU2MM(oParsedPosH["posOffset"])); return { Align: !!oParsedPosH["align"], Percent: !!oParsedPosH["percent"], RelativeFrom: nRelFromH, Value: nValue } }; ReaderFromJSON.prototype.PositionVFromJSON = function(oParsedPosV) { // anchorV var nRelFromV = undefined; switch (oParsedPosV["relativeFrom"]) { case "bottomMargin": nRelFromV = Asc.c_oAscRelativeFromV.BottomMargin; break; case "insideMargin": nRelFromV = Asc.c_oAscRelativeFromV.InsideMargin; break; case "line": nRelFromV = Asc.c_oAscRelativeFromV.Line; break; case "margin": nRelFromV = Asc.c_oAscRelativeFromV.Margin; break; case "outsideMargin": nRelFromV = Asc.c_oAscRelativeFromV.OutsideMargin; break; case "page": nRelFromV = Asc.c_oAscRelativeFromV.Page; break; case "paragraph": nRelFromV = Asc.c_oAscRelativeFromV.Paragraph; break; case "topMargin": nRelFromV = Asc.c_oAscRelativeFromV.TopMargin; break; } // alignV var nVerAlign = undefined; if (oParsedPosV["align"]) { switch (oParsedPosV["align"]) { case "bottom": nVerAlign = c_oAscYAlign.Bottom; break; case "center": nVerAlign = c_oAscYAlign.Center; break; case "inline": nVerAlign = c_oAscYAlign.Inline; break; case "inside": nVerAlign = c_oAscYAlign.Inside; break; case "outside": nVerAlign = c_oAscYAlign.Outside; break; case "top": nVerAlign = c_oAscYAlign.Top; break; } } var nValue = oParsedPosV["align"] ? nVerAlign : (oParsedPosV["percent"] ? oParsedPosV["posOffset"] : private_EMU2MM(oParsedPosV["posOffset"])); return { Align: oParsedPosV["align"] ? true : false, Percent: oParsedPosV["percent"] ? true : false, RelativeFrom: nRelFromV, Value: nValue } }; AscWord.CNumberingLvl.prototype.ToJson = function(nLvl, oPr) { let oResult = {}; switch (this.Jc) { case AscCommon.align_Right: oResult["lvlJc"] = "right"; break; case AscCommon.align_Left: oResult["lvlJc"] = "left"; break; case AscCommon.align_Center: oResult["lvlJc"] = "center"; break; case AscCommon.align_Justify: oResult["lvlJc"] = "both"; break; case AscCommon.align_Distributed: oResult["lvlJc"] = "distribute"; break; } switch (this.Suff) { case Asc.c_oAscNumberingSuff.Tab: oResult["suff"] = "tab"; break; case Asc.c_oAscNumberingSuff.Space: oResult["suff"] = "space"; break; case Asc.c_oAscNumberingSuff.None: oResult["suff"] = "nothing"; break; } var sFormatType = To_XML_c_oAscNumberingFormat(this.Format); oResult["numFmt"] = {"val": sFormatType}; var sLvlText = ""; for (var nText = 0; nText < this.LvlText.length; nText++) sLvlText += WriterToJSON.prototype.SerLvlTextItem(this.LvlText[nText]); oResult["lvlText"] = sLvlText; if (undefined !== this.IsLgl && null !== this.IsLgl && false !== this.IsLgl) oResult["isLgl"] = this.IsLgl; if (this.Legacy) { oResult["legacy"] = {}; if (this.Legacy.Legacy != null) oResult["legacy"]["legacy"] = this.Legacy.Legacy; if (this.Legacy.Indent != null) oResult["legacy"]["legacyIndent"] = this.Legacy.Indent; if (this.Legacy.Space != null) oResult["legacy"]["legacySpace"] = this.Legacy.Space; } if (this.ParaPr && !this.ParaPr.IsEmpty()) oResult["pPr"] = WriterToJSON.prototype.SerParaPr(this.ParaPr, oPr); if (this.TextPr && !this.TextPr.IsEmpty()) oResult["rPr"] = WriterToJSON.prototype.SerTextPr(this.TextPr, oPr); if (undefined !== this.Restart && null !== this.Restart && -1 !== this.Restart) oResult["restart"] = this.Restart; if (undefined !== this.Start && null !== this.Start && 1 !== this.Start) oResult["start"] = this.Start; if (undefined !== nLvl && null !== nLvl) oResult["ilvl"] = nLvl; return oResult; }; AscWord.CNumberingLvl.prototype.FromJson = function(oParsedJson) { this.Jc = AscCommon.align_Left; switch (oParsedJson["lvlJc"]) { case "end": case "right": this.Jc = AscCommon.align_Right; break; case "start": case "left": this.Jc = AscCommon.align_Left; break; case "center": this.Jc = AscCommon.align_Center; break; case "both": this.Jc = AscCommon.align_Justify; break; case "distribute": this.Jc = AscCommon.align_Distributed; break; } this.Suff = Asc.c_oAscNumberingSuff.Tab; switch (oParsedJson["suff"]) { case "tab": this.Suff = Asc.c_oAscNumberingSuff.Tab; break; case "space": this.Suff = Asc.c_oAscNumberingSuff.Space; break; case "nothing": this.Suff = Asc.c_oAscNumberingSuff.None; break; } if (undefined !== oParsedJson["numFmt"]) this.Format = From_XML_c_oAscNumberingFormat(oParsedJson["numFmt"]["val"]); else this.Format = Asc.c_oAscNumberingFormat.Bullet; if (undefined !== oParsedJson["isLgl"]) this.IsLgl = oParsedJson["isLgl"]; else this.IsLgl = false; if (undefined !== oParsedJson["legacy"]) this.Legacy = new CNumberingLvlLegacy(oParsedJson["legacy"]["legacy"], oParsedJson["legacy"]["legacyIndent"], oParsedJson["legacy"]["legacySpace"]); else this.Legacy = undefined; if (oParsedJson["pPr"]) this.ParaPr = ReaderFromJSON.prototype.ParaPrFromJSON(oParsedJson["pPr"]); if (oParsedJson["rPr"]) this.TextPr = ReaderFromJSON.prototype.TextPrFromJSON(oParsedJson["rPr"]); if (undefined !== oParsedJson["restart"]) this.Restart = oParsedJson["restart"]; else this.Restart = -1; if (undefined !== oParsedJson["start"]) this.Start = oParsedJson["start"]; else this.Start = 1; if (oParsedJson["lvlText"]) this.LvlText = ReaderFromJSON.prototype.LvlTextItemsFromJSON(oParsedJson["lvlText"]); return this; }; AscWord.CNumberingLvl.FromJson = function(json) { let numLvl = new CNumberingLvl(); numLvl.FromJson(json); return numLvl; }; AscWord.CParaPr.prototype.ToJson = function(bFromDocument, oPr) { oPr = oPr || {}; var oResult = {}; if (bFromDocument === false) { if (this.Ind) { if(this.Ind.Left != null) { oResult["marL"] = private_MM2EMU(this.Ind.Left); } if(this.Ind.Right != null) { oResult["marR"] = private_MM2EMU(this.Ind.Right); } if(this.Ind.FirstLine != null) { oResult["indent"] = private_MM2EMU(this.Ind.FirstLine); } } if (this.Lvl != null) oResult["lvl"] = this.Lvl; if (this.Jc != null) { switch(this.Jc) { case AscCommon.align_Center: { oResult["algn"] = "ctr"; break; } case AscCommon.align_Justify: { oResult["algn"] = "just"; break; } case AscCommon.align_Left: { oResult["algn"] = "l"; break; } case AscCommon.align_Right: { oResult["algn"] = "r"; break; } } } // def tab size if (this.DefaultTab != null) { oResult["defTabSz"] = private_MM2EMU(this.DefaultTab); } // lnSpc if (this.Spacing.Line != null) { if (this.Spacing.LineRule === Asc.linerule_Exact) oResult["lnSpc"] = WriterToJSON.prototype.SerParaSpacingDrawing({val: this.Spacing.Line}); else oResult["lnSpc"] = WriterToJSON.prototype.SerParaSpacingDrawing({valPct: this.Spacing.Line}); } // spcAft if (this.Spacing.After != null) oResult["spcAft"] = WriterToJSON.prototype.SerParaSpacingDrawing({val: this.Spacing.After}); else if (this.Spacing.AfterPct != null) oResult["spcAft"] = WriterToJSON.prototype.SerParaSpacingDrawing({valPct: this.Spacing.AfterPct}); // spcBef if (this.Spacing.Before != null) oResult["spcBef"] = WriterToJSON.prototype.SerParaSpacingDrawing({val: this.Spacing.Before}); else if (this.Spacing.BeforePct != null) oResult["spcBef"] = WriterToJSON.prototype.SerParaSpacingDrawing({valPct: this.Spacing.BeforePct}); // bullet if (this.Bullet != null) oResult["bullet"] = WriterToJSON.prototype.SerBullet(this.Bullet); // tabs if (this.Tabs) oResult["tabLst"] = WriterToJSON.prototype.SerTabsDrawing(this.Tabs); // defRunPr if (this.DefaultRunPr != null) oResult["defRPr"] = this.DefaultRunPr.ToJson(false); oResult["bFromDocument"] = false; } else { let sJc = undefined; switch (this.Jc) { case AscCommon.align_Right: sJc = "end"; break; case AscCommon.align_Left: sJc = "start"; break; case AscCommon.align_Center: sJc = "center"; break; case AscCommon.align_Justify: sJc = "both"; break; case AscCommon.align_Distributed: sJc = "distribute"; break; } if (this.ContextualSpacing != null) oResult["contextualSpacing"] = this.ContextualSpacing; if (this.FramePr != null) oResult["framePr"] = WriterToJSON.prototype.SerFramePr(this.FramePr); if (this.Ind && !this.Ind.IsEmpty() && !oPr.isSingleLvlPresetJSON) oResult["ind"] = WriterToJSON.prototype.SerParaInd(this.Ind); if (sJc != null) oResult["jc"] = sJc; if (this.KeepLines != null) oResult["keepLines"] = this.KeepLines; if (this.KeepNext != null) oResult["keepNext"] = this.KeepNext; if (this.NumPr != null) oResult["numPr"] = WriterToJSON.prototype.SerNumPr(this.NumPr); if (this.OutlineLvl != null) oResult["outlineLvl"] = this.OutlineLvl; if (this.PageBreakBefore != null) oResult["pageBreakBefore"] = this.PageBreakBefore; if (this.SuppressLineNumbers != null) oResult["suppressLineNumbers"] = this.SuppressLineNumbers; if (!this.IsEmptyBorders()) { oResult["pBdr"] = {}; if (this.Brd.Between != null) oResult["pBdr"]["between"] = WriterToJSON.prototype.SerDocBorder(this.Brd.Between); if (this.Brd.Bottom != null) oResult["pBdr"]["bottom"] = WriterToJSON.prototype.SerDocBorder(this.Brd.Bottom); if (this.Brd.Left != null) oResult["pBdr"]["left"] = WriterToJSON.prototype.SerDocBorder(this.Brd.Left); if (this.Brd.Right != null) oResult["pBdr"]["right"] = WriterToJSON.prototype.SerDocBorder(this.Brd.Right); if (this.Brd.Top != null) oResult["pBdr"]["top"] = WriterToJSON.prototype.SerDocBorder(this.Brd.Top); } if (this.PrChange != null) oResult["pPrChange"] = WriterToJSON.prototype.SerParaPr(this.PrChange); if (this.Shd != null) oResult["shd"] = WriterToJSON.prototype.SerShd(this.Shd); if (this.Spacing && !this.Spacing.IsEmpty()) oResult["spacing"] = WriterToJSON.prototype.SerParaSpacing(this.Spacing); if (this.Tabs != null) oResult["tabs"] = WriterToJSON.prototype.SerTabs(this.Tabs); if (this.WidowControl != null) oResult["widowControl"] = this.WidowControl; oResult["bFromDocument"] = true; oResult["type"] = "paraPr"; } return oResult; }; AscWord.CParaPr.prototype.FromJson = function(oParsedJson, bFromDocument) { if (bFromDocument === false) { if (oParsedJson["algn"] != null) { switch(oParsedJson["algn"]) { case "ctr": { this.Jc = AscCommon.align_Center; break; } case "dist": { this.Jc = AscCommon.align_Justify; break; } case "just": { this.Jc = AscCommon.align_Justify; break; } case "justLow": { this.Jc = AscCommon.align_Justify; break; } case "l": { this.Jc = AscCommon.align_Left; break; } case "r": { this.Jc = AscCommon.align_Right; break; } case "thaiDist": { this.Jc = AscCommon.align_Justify; break; } } } if (oParsedJson["defTabSz"] != null) this.DefaultTab = private_EMU2MM(oParsedJson["defTabSz"]); if (oParsedJson["lvl"] != null) this.Lvl = oParsedJson["lvl"]; if (oParsedJson["indent"] != null) this.Ind.FirstLine = private_EMU2MM(oParsedJson["indent"]); if (oParsedJson["marL"] != null) this.Ind.Left = private_EMU2MM(oParsedJson["marL"]); if (oParsedJson["marR"] != null) this.Ind.Right = private_EMU2MM(oParsedJson["marR"]); if (oParsedJson["bullet"] != null) this.Bullet = ReaderFromJSON.prototype.BulletFromJSON(oParsedJson["bullet"]); if (oParsedJson["defRPr"] != null) this.DefaultRunPr = ReaderFromJSON.prototype.TextPrDrawingFromJSON(oParsedJson["defRPr"]); let oSpc; if (oParsedJson["lnSpc"] != null) { oSpc = ReaderFromJSON.prototype.ParaSpacingDrawingFromJSON(oParsedJson["lnSpc"]); if(oSpc.valPct != null) { this.Spacing.Line = oSpc.valPct; this.Spacing.LineRule = Asc.linerule_Auto; } else if(oSpc.val != null) { this.Spacing.Line = oSpc.val; this.Spacing.LineRule = Asc.linerule_Exact; } } if (oParsedJson["spcAft"] != null) { oSpc = ReaderFromJSON.prototype.ParaSpacingDrawingFromJSON(oParsedJson["spcAft"]); if(oSpc.valPct !== null) { this.Spacing.AfterPct = oSpc.valPct; this.Spacing.After = 0; } else if(oSpc.val !== null) { this.Spacing.After = oSpc.val; } } if (oParsedJson["spcBef"] != null) { oSpc = ReaderFromJSON.prototype.ParaSpacingDrawingFromJSON(oParsedJson["spcBef"]); if(oSpc.valPct !== null) { this.Spacing.BeforePct = oSpc.valPct; this.Spacing.Before = 0; } else if(oSpc.val !== null) { this.Spacing.Before = oSpc.val; } } if (oParsedJson["tabLst"] != null) { this.Tabs = ReaderFromJSON.prototype.TabsDrawingFromJSON(oParsedJson["tabLst"]); } } else { // align var nJc; switch (oParsedJson["jc"]) { case "end": nJc = AscCommon.align_Right; break; case "start": nJc = AscCommon.align_Left; break; case "center": nJc = AscCommon.align_Center; break; case "both": nJc = AscCommon.align_Justify; break; case "distribute": nJc = AscCommon.align_Distributed; break; } if (oParsedJson["contextualSpacing"] != null) this.ContextualSpacing = oParsedJson["contextualSpacing"]; if (oParsedJson["framePr"] != null) this.FramePr = ReaderFromJSON.prototype.FramePrFromJSON(oParsedJson["framePr"]); if (oParsedJson["spacing"]) this.Spacing = ReaderFromJSON.prototype.ParaSpacingFromJSON(oParsedJson["spacing"]); if (oParsedJson["ind"]) { if (oParsedJson["ind"]["left"] != null) this.Ind.Left = private_Twips2MM(oParsedJson["ind"]["left"]); if (oParsedJson["ind"]["right"] != null) this.Ind.Right = private_Twips2MM(oParsedJson["ind"]["right"]); if (oParsedJson["ind"]["firstLine"] != null) this.Ind.FirstLine = private_Twips2MM(oParsedJson["ind"]["firstLine"]); } if (nJc != null) this.Jc = nJc; if (oParsedJson["defTabSz"] != null) this.DefaultTab = private_EMU2MM(oParsedJson["defTabSz"]); if (oParsedJson["keepLines"] != null) this.KeepLines = oParsedJson["keepLines"]; if (oParsedJson["keepNext"] != null) this.KeepNext = oParsedJson["keepNext"]; if (oParsedJson["outlineLvl"] != null) this.OutlineLvl = oParsedJson["outlineLvl"]; if (oParsedJson["pBdr"]) { if (oParsedJson["pBdr"]["between"] != null) this.Brd.Between = ReaderFromJSON.prototype.DocBorderFromJSON(oParsedJson["pBdr"]["between"]); if (oParsedJson["pBdr"]["bottom"] != null) this.Brd.Bottom = ReaderFromJSON.prototype.DocBorderFromJSON(oParsedJson["pBdr"]["bottom"]); if (oParsedJson["pBdr"]["left"] != null) this.Brd.Left = ReaderFromJSON.prototype.DocBorderFromJSON(oParsedJson["pBdr"]["left"]); if (oParsedJson["pBdr"]["right"] != null) this.Brd.Right = ReaderFromJSON.prototype.DocBorderFromJSON(oParsedJson["pBdr"]["right"]); if (oParsedJson["pBdr"]["top"] != null) this.Brd.Top = ReaderFromJSON.prototype.DocBorderFromJSON(oParsedJson["pBdr"]["top"]); } if (oParsedJson["pageBreakBefore"] != null) this.PageBreakBefore = oParsedJson["pageBreakBefore"]; if (oParsedJson["suppressLineNumbers"] != null) this.SuppressLineNumbers = oParsedJson["suppressLineNumbers"]; if (oParsedJson["shd"] != null) this.Shd = ReaderFromJSON.prototype.ShadeFromJSON(oParsedJson["shd"]); if (oParsedJson["tabs"] != null) this.Tabs = ReaderFromJSON.prototype.TabsFromJSON(oParsedJson["tabs"]); if (oParsedJson["widowControl"] != null) this.WidowControl = oParsedJson["widowControl"]; } return this; }; AscWord.CParaPr.FromJson = function(json, bFromDocument) { let paraPr = new CParaPr(); paraPr.FromJson(json, bFromDocument); return paraPr; }; AscWord.CTextPr.prototype.ToJson = function(bFromDocument, oPr) { oPr = oPr || {}; let oResult = {}; if (bFromDocument === false) { // lang oResult["lang"] = Asc.g_oLcidIdToNameMap[this.Lang.Val]; if(this.FontSize !== null && this.FontSize !== undefined) { oResult["sz"] = this.FontSize * 100 >> 0; } // bold italic oResult["i"] = this.Italic != null ? this.Italic : undefined; oResult["b"] = this.Bold != null ? this.Bold : undefined; // underline if(this.Underline != null) { if(!this.Underline) { oResult["u"] = "none"; } else { oResult["u"] = "sng"; } } // strikeout if(this.Strikeout === false && this.DStrikeout === true) { oResult["strike"] = "dblStrike"; } else if(this.Strikeout === true && this.DStrikeout === false) { oResult["strike"] = "sngStrike"; } else if(this.Strikeout === false && this.DStrikeout === false) { oResult["strike"] = "noStrike"; } // caps if(this.Caps === true && this.SmallCaps === false) { oResult["cap"] = "all"; } else if(this.Caps === false && this.SmallCaps === true) { oResult["cap"] = "small"; } else if(this.Caps === false && this.SmallCaps === false) { oResult["cap"] = "none"; } if(this.Spacing !== undefined && this.Spacing !== null) { oResult["spc"] = this.Spacing * 7200 / 25.4 >> 0; } if (AscCommon.vertalign_SubScript === this.VertAlign) { oResult["baseline"] = -25000; } else if (AscCommon.vertalign_SuperScript === this.VertAlign) { oResult["baseline"] = 30000; } if(this.TextOutline) { oResult["ln"] = WriterToJSON.prototype.SerLn(this.TextOutline); } if(this.Unifill) { oResult["uniFill"] = WriterToJSON.prototype.SerFill(this.Unifill); } if(this.HighlightColor) { oResult["highlight"] = WriterToJSON.prototype.SerColor(this.HighlightColor); } if(this.RFonts.Ascii) oResult["latin"] = this.RFonts.Ascii.Name; if(this.RFonts.EastAsia) oResult["ea"] = this.RFonts.EastAsia.Name; if(this.RFonts.CS) oResult["cs"] = this.RFonts.CS.Name; oResult["bFromDocument"] = false; } else { let sVAlign = undefined; // alignV if (this.VertAlign != null) { switch (this.VertAlign) { case 0: sVAlign = "baseline"; break; case 1: sVAlign = "superscript"; break; case 2: sVAlign = "subscript"; break; } } if (this.Bold != null) oResult["b"] = this.Bold; if (this.BoldCS != null) oResult["bCs"] = this.BoldCS; if (this.Caps != null) oResult["caps"] = this.Caps; if (this.Color != null) { oResult["color"] = {}; if (this.Color.Auto != null) oResult["color"]["auto"] = this.Color.Auto; if (this.Color.r != null) oResult["color"]["r"] = this.Color.r; if (this.Color.g != null) oResult["color"]["g"] = this.Color.g; if (this.Color.b != null) oResult["color"]["b"] = this.Color.b; } if (this.CS != null) oResult["cs"] = this.CS; if (this.DStrikeout != null) oResult["dstrike"] = this.DStrikeout; if (this.HighLight != null) { if (this.HighLight !== -1) { oResult["highlight"] = {}; if (this.HighLight.Auto != null) oResult["highlight"]["auto"] = this.HighLight.Auto; if (this.HighLight.r != null) oResult["highlight"]["r"] = this.HighLight.r; if (this.HighLight.g != null) oResult["highlight"]["g"] = this.HighLight.g; if (this.HighLight.b != null) oResult["highlight"]["b"] = this.HighLight.b; } else oResult["highlight"] = "none"; } if (this.Italic != null) oResult["i"] = this.Italic; if (this.ItalicCS != null) oResult["iCs"] = this.ItalicCS; if (this.Lang && !this.Lang.IsEmpty()) { oResult["lang"] = {}; if (this.Lang.Bidi != null) oResult["lang"]["bidi"] = Asc.g_oLcidIdToNameMap[this.Lang.Bidi]; if (this.Lang.EastAsia != null) oResult["lang"]["eastAsia"] = Asc.g_oLcidIdToNameMap[this.Lang.EastAsia]; if (this.Lang.Val != null) oResult["lang"]["val"] = Asc.g_oLcidIdToNameMap[this.Lang.Val]; } if (this.TextOutline != null) oResult["outline"] = WriterToJSON.prototype.SerLn(this.TextOutline); if (this.Position != null) oResult["position"] = 2.0 * private_MM2Pt(this.Position); if (this.RFonts && !this.RFonts.IsEmpty()) { oResult["rFonts"] = {}; if (this.RFonts.Ascii != null) oResult["rFonts"]["ascii"] = this.RFonts.Ascii.Name; if (this.RFonts.AsciiTheme != null) oResult["rFonts"]["asciiTheme"] = this.RFonts.AsciiTheme; if (this.RFonts.CS != null) oResult["rFonts"]["cs"] = this.RFonts.CS.Name; if (this.RFonts.CSTheme != null) oResult["rFonts"]["cstheme"] = this.RFonts.CSTheme; if (this.RFonts.EastAsia != null) oResult["rFonts"]["eastAsia"] = this.RFonts.EastAsia.Name; if (this.RFonts.EastAsiaTheme != null) oResult["rFonts"]["eastAsiaTheme"] = this.RFonts.EastAsiaTheme; if (this.RFonts.HAnsi != null) oResult["rFonts"]["hAnsi"] = this.RFonts.HAnsi.Name; if (this.RFonts.HAnsiTheme != null) oResult["rFonts"]["hAnsiTheme"] = this.RFonts.HAnsiTheme; if (undefined !== this.RFonts.Hint && null !== this.RFonts.Hint && AscWord.fonthint_Default !== this.RFonts.Hint) oResult["rFonts"]["hint"] = ToXml_ST_Hint(this.RFonts.Hint); } if (this.FontFamily != null) { oResult["fontFamily"] = {}; if (this.FontFamily.Name != null) oResult["fontFamily"]["name"] = this.FontFamily.Name; if (this.FontFamily.Index != null) oResult["fontFamily"]["idx"] = this.FontFamily.Index; } if (this.PrChange != null) oResult["rPrChange"] = WriterToJSON.prototype.SerTextPr(this.PrChange); if (this.RTL != null) oResult["rtl"] = this.RTL; if (this.Shd != null) oResult["shd"] = WriterToJSON.prototype.SerShd(this.Shd); if (this.SmallCaps != null) oResult["smallCaps"] = this.SmallCaps; if (this.Spacing != null) oResult["spacing"] = private_MM2Twips(this.Spacing); if (this.Strikeout != null) oResult["strike"] = this.Strikeout; if (!oPr.isSingleLvlPresetJSON) { if (this.FontSize != null) oResult["sz"] = 2.0 * this.FontSize; if (this.FontSizeCS != null) oResult["szCs"] = 2.0 * this.FontSizeCS; } if (this.Underline != null) oResult["u"] = this.Underline; if (this.Vanish != null) oResult["vanish"] = this.Vanish; if (sVAlign != null) oResult["vertAlign"] = sVAlign; if (this.Unifill != null) oResult["uniFill"] = WriterToJSON.prototype.SerFill(this.Unifill); if (this.TextFill != null) oResult["textFill"] = WriterToJSON.prototype.SerFill(this.TextFill); if (this.ReviewInfo != null) oResult["reviewInfo"] = WriterToJSON.prototype.SerReviewInfo(this.ReviewInfo); oResult["bFromDocument"] = true; } oResult["type"] = "textPr"; return oResult; }; AscWord.CTextPr.prototype.FromJson = function(oParsedJson, bFromDocument) { if (bFromDocument === false) { if (oParsedJson["baseline"] != null) { if (oParsedJson["baseline"] < 0) this.VertAlign = AscCommon.vertalign_SubScript; else if (oParsedJson["baseline"] > 0) this.VertAlign = AscCommon.vertalign_SuperScript; } if (oParsedJson["cap"] != null) { if(oParsedJson["cap"] === "all") { this.Caps = true; this.SmallCaps = false; } else if(oParsedJson["cap"] === "small") { this.Caps = false; this.SmallCaps = true; } else { this.Caps = false; this.SmallCaps = false; } } if (oParsedJson["i"] != null) { this.Italic = oParsedJson["i"]; } if (oParsedJson["b"] != null) { this.Bold = oParsedJson["b"]; } if (oParsedJson["lang"] != null) { let nLcid = Asc.g_oLcidNameToIdMap[oParsedJson["lang"]]; if(nLcid) this.Lang.Val = nLcid; } if (oParsedJson["spc"] != null) { this.Spacing = oParsedJson["spc"] * 25.4 / 7200; } if (oParsedJson["strike"] != null) { if(oParsedJson["strike"] === "dblStrike") { this.Strikeout = false; this.DStrikeout = true; } else if(oParsedJson["strike"] === "sngStrike") { this.Strikeout = true; this.DStrikeout = false; } else if(oParsedJson["strike"] === "noStrike") { this.Strikeout = false; this.DStrikeout = false; } } if (oParsedJson["sz"] != null) { var nSz = oParsedJson["sz"] / 100; //nSz = ((nSz * 2) + 0.5) >> 0; //nSz /= 2; this.FontSize = nSz; this.FontSizeCS = nSz; } if (oParsedJson["u"] != null) { this.Underline = oParsedJson["u"] !== "none"; } if (oParsedJson["ln"] != null) { this.TextOutline = ReaderFromJSON.prototype.LnFromJSON(oParsedJson["ln"]); } if (oParsedJson["uniFill"] != null) { this.Unifill = ReaderFromJSON.prototype.FillFromJSON(oParsedJson["uniFill"]); } if (oParsedJson["highlight"] != null) { this.HighlightColor = ReaderFromJSON.prototype.ColorFromJSON(oParsedJson["highlight"]); } if (oParsedJson["cs"] != null) { this.RFonts.CS = { Name: oParsedJson["cs"], Index : -1 }; } if (oParsedJson["ea"] != null) { this.RFonts.EastAsia = { Name: oParsedJson["ea"], Index : -1 }; } if (oParsedJson["latin"] != null) { this.RFonts.Ascii = { Name: oParsedJson["latin"], Index : -1 }; this.RFonts.HAnsi = { Name: oParsedJson["latin"], Index : -1 }; } } else { // alignV var nVAlign = undefined; if (oParsedJson["vertAlign"]) { switch (oParsedJson["vertAlign"]) { case "baseline": nVAlign = 0; break; case "superscript": nVAlign = 1; break; case "subscript": nVAlign = 2; break; } } if (oParsedJson["b"] != null) this.Bold = oParsedJson["b"]; if (oParsedJson["bCs"] != null) this.BoldCS = oParsedJson["bCs"]; if (oParsedJson["caps"] != null) this.Caps = oParsedJson["caps"]; if (oParsedJson["color"] != null && typeof(oParsedJson["color"]["r"]) == "number" && typeof(oParsedJson["color"]["g"]) == "number" && typeof(oParsedJson["color"]["b"]) == "number") this.Color = new AscCommonWord.CDocumentColor(oParsedJson["color"]["r"], oParsedJson["color"]["g"], oParsedJson["color"]["b"], oParsedJson["color"]["auto"]); if (oParsedJson["cs"] != null) this.CS = oParsedJson["cs"]; if (oParsedJson["dstrike"] != null) this.DStrikeout = oParsedJson["dstrike"]; if (oParsedJson["highlight"] === "none") this.HighLight = -1; else if (oParsedJson["highlight"] != null) this.HighLight = new AscCommonWord.CDocumentColor(oParsedJson["highlight"]["r"], oParsedJson["highlight"]["g"], oParsedJson["highlight"]["b"], oParsedJson["highlight"]["auto"]); if (oParsedJson["i"] != null) this.Italic = oParsedJson["i"]; if (oParsedJson["iCs"] != null) this.ItalicCS = oParsedJson["iCs"]; if (oParsedJson["lang"]) { if (oParsedJson["lang"]["bidi"] != null) this.Lang.Bidi = Asc.g_oLcidNameToIdMap[oParsedJson["lang"]["bidi"]]; if (oParsedJson["lang"]["eastAsia"] != null) this.Lang.EastAsia = Asc.g_oLcidNameToIdMap[oParsedJson["lang"]["eastAsia"]]; if (oParsedJson["lang"]["val"] != null) this.Lang.Val = Asc.g_oLcidNameToIdMap[oParsedJson["lang"]["val"]]; } if (oParsedJson["outline"] != null) this.TextOutline = ReaderFromJSON.prototype.LnFromJSON(oParsedJson["outline"]); if (oParsedJson["position"] != null) this.Position = private_PtToMM(oParsedJson["position"] / 2.0); if (oParsedJson["rFonts"]) { if (oParsedJson["rFonts"]["ascii"]) this.RFonts.Ascii = {Name : oParsedJson["rFonts"]["ascii"], Index : -1}; if (oParsedJson["rFonts"]["cs"]) this.RFonts.CS = {Name : oParsedJson["rFonts"]["cs"], Index : -1}; if (oParsedJson["rFonts"]["eastAsia"]) this.RFonts.EastAsia = {Name : oParsedJson["rFonts"]["eastAsia"], Index : -1}; if (oParsedJson["rFonts"]["hAnsi"]) this.RFonts.HAnsi = {Name : oParsedJson["rFonts"]["hAnsi"], Index : -1}; if (oParsedJson["rFonts"]["hint"] != null) this.RFonts.Hint = FromXml_ST_Hint(oParsedJson["rFonts"]["hint"]); if (oParsedJson["rFonts"]["asciiTheme"] != null) this.RFonts.AsciiTheme = oParsedJson["rFonts"]["asciiTheme"]; if (oParsedJson["rFonts"]["cstheme"] != null) this.RFonts.CSTheme = oParsedJson["rFonts"]["cstheme"]; if (oParsedJson["rFonts"]["eastAsiaTheme"] != null) this.RFonts.EastAsiaTheme = oParsedJson["rFonts"]["eastAsiaTheme"]; if (oParsedJson["rFonts"]["hAnsiTheme"] != null) this.RFonts.HAnsiTheme = oParsedJson["rFonts"]["hAnsiTheme"]; } if (oParsedJson["fontFamily"] != null) this.FontFamily = {Index: oParsedJson["fontFamily"]["idx"], Name: oParsedJson["fontFamily"]["name"]}; if (oParsedJson["rPrChange"] != null) this.PrChange = ReaderFromJSON.prototype.TextPrFromJSON(oParsedJson["rPrChange"]); if (oParsedJson["rtl"] != null) this.RTL = oParsedJson["rtl"]; if (oParsedJson["shd"] != null) this.Shd = ReaderFromJSON.prototype.ShadeFromJSON(oParsedJson["shd"]); if (oParsedJson["smallCaps"] != null) this.SmallCaps = oParsedJson["smallCaps"]; if (oParsedJson["spacing"] != null) this.Spacing = private_Twips2MM(oParsedJson["spacing"]); if (oParsedJson["strike"] != null) this.Strikeout = oParsedJson["strike"]; if (oParsedJson["sz"] != null) this.FontSize = oParsedJson["sz"] / 2.0; if (oParsedJson["szCs"] != null) this.FontSizeCS = oParsedJson["szCs"] / 2.0; if (oParsedJson["u"] != null) this.Underline = oParsedJson["u"]; if (oParsedJson["vanish"] != null) this.Vanish = oParsedJson["vanish"]; if (nVAlign != null) this.VertAlign = nVAlign; if (oParsedJson["uniFill"] != null) this.Unifill = ReaderFromJSON.prototype.FillFromJSON(oParsedJson["uniFill"]); if (oParsedJson["textFill"] != null) this.TextFill = ReaderFromJSON.prototype.FillFromJSON(oParsedJson["textFill"]); if (oParsedJson["reviewInfo"] != null) this.ReviewInfo = ReaderFromJSON.prototype.ReviewInfoFromJSON(oParsedJson["reviewInfo"]); } return this; }; AscWord.CTextPr.FromJson = function(json, bFromDocument) { let textPr = new CTextPr(); textPr.FromJson(json, bFromDocument); return textPr; }; function To_XML_ST_HueDir(nType) { var sDir = undefined; switch (nType) { case AscCommon.ST_HueDir.Ccw: sDir = "ccw"; break; case AscCommon.ST_HueDir.Cw: sDir = "cw"; break; } return sDir; } function From_XML_ST_HueDir(sType) { var nDir = undefined; switch (sType) { case "ccw": nDir = AscCommon.ST_HueDir.Ccw; break; case "cw": nDir = AscCommon.ST_HueDir.Cw; break; } return nDir; } function To_XML_ST_ClrAppMethod(nType) { var sType = undefined; switch (nType) { case AscCommon.ST_ClrAppMethod.cycle: sType = "cycle"; break; case AscCommon.ST_ClrAppMethod.repeat: sType = "repeat"; break; case AscCommon.ST_ClrAppMethod.span: sType = "span"; break; } return sType; } function From_XML_ST_ClrAppMethod(sType) { var nType = undefined; switch (sType) { case "cycle": nType = AscCommon.ST_ClrAppMethod.cycle; break; case "repeat": nType = AscCommon.ST_ClrAppMethod.repeat; break; case "span": nType = AscCommon.ST_ClrAppMethod.span; break; } return nType; } function To_XML_ST_AnimLvlStr(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_AnimLvlStr.ctr: sVal = "ctr"; break; case AscCommon.ST_AnimLvlStr.lvl: sVal = "lvl"; break; case AscCommon.ST_AnimLvlStr.none: sVal = "none"; break; } return sVal; } function From_XML_ST_AnimLvlStr(sVal) { var nVal = undefined; switch (sVal) { case "ctr": nVal = AscCommon.ST_AnimLvlStr.ctr; break; case "lvl": nVal = AscCommon.ST_AnimLvlStr.lvl; break; case "none": nVal = AscCommon.ST_AnimLvlStr.none; break; } return nVal; } function To_XML_ST_AnimOneStr(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_AnimOneStr.branch: sVal = "branch"; break; case AscCommon.ST_AnimOneStr.none: sVal = "none"; break; case AscCommon.ST_AnimOneStr.one: sVal = "one"; break; } return sVal; } function From_XML_ST_AnimOneStr(sVal) { var nVal = undefined; switch (sVal) { case "branch": nVal = AscCommon.ST_AnimOneStr.branch; break; case "none": nVal = AscCommon.ST_AnimOneStr.none; break; case "one": nVal = AscCommon.ST_AnimOneStr.one; break; } return nVal; } function To_XML_ST_Direction(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_Direction.norm: sVal = "norm"; break; case AscCommon.ST_Direction.rev: sVal = "rev"; break; } return sVal; } function From_XML_ST_Direction(sVal) { var nVal; switch (sVal) { case "norm": nVal = AscCommon.ST_Direction.norm; break; case "rev": nVal = AscCommon.ST_Direction.rev; break; } return nVal; } function To_XML_ST_HierBranchStyle(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_HierBranchStyle.hang: sVal = "hang"; break; case AscCommon.ST_HierBranchStyle.init: sVal = "init"; break; case AscCommon.ST_HierBranchStyle.l: sVal = "l"; break; case AscCommon.ST_HierBranchStyle.r: sVal = "r"; break; case AscCommon.ST_HierBranchStyle.std: sVal = "std"; break; } return sVal; } function From_XML_ST_HierBranchStyle(sVal) { var nVal = undefined; switch (sVal) { case "hang": nVal = AscCommon.ST_HierBranchStyle.hang; break; case "init": nVal = AscCommon.ST_HierBranchStyle.init; break; case "l": nVal = AscCommon.ST_HierBranchStyle.l; break; case "r": nVal = AscCommon.ST_HierBranchStyle.r; break; case "std": nVal = AscCommon.ST_HierBranchStyle.std; break; } return nVal; } function To_XML_ST_ResizeHandlesStr(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_ResizeHandlesStr.exact: sVal = "exact"; break; case AscCommon.ST_ResizeHandlesStr.rel: sVal = "rel"; break; } return sVal; } function From_XML_ST_ResizeHandlesStr(sVal) { var nVal; switch (sVal) { case "exact": nVal = AscCommon.ST_ResizeHandlesStr.exact; break; case "rel": nVal = AscCommon.ST_ResizeHandlesStr.rel; break; } return nVal; } function To_XML_ST_PtType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_PtType.node: sVal = "node"; break; case AscCommon.ST_PtType.asst: sVal = "asst"; break; case AscCommon.ST_PtType.doc: sVal = "doc"; break; case AscCommon.ST_PtType.pres: sVal = "pres"; break; case AscCommon.ST_PtType.parTrans: sVal = "parTrans"; break; case AscCommon.ST_PtType.sibTrans: sVal = "sibTrans"; break; } return sVal; } function From_XML_ST_PtType(sVal) { var nVal = undefined; switch (sVal) { case "node": nVal = AscCommon.ST_PtType.node; break; case "asst": nVal = AscCommon.ST_PtType.asst; break; case "doc": nVal = AscCommon.ST_PtType.doc; break; case "pres": nVal = AscCommon.ST_PtType.pres; break; case "parTrans": nVal = AscCommon.ST_PtType.parTrans; break; case "sibTrans": nVal = AscCommon.ST_PtType.sibTrans; break; } return nVal; } function To_XML_ST_ChildOrderType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_ChildOrderType.b: sVal = "b"; break; case AscCommon.ST_ChildOrderType.t: sVal = "t"; break; } return sVal; } function From_XML_ST_ChildOrderType(sVal) { var nVal = undefined; switch (sVal) { case "b": nVal = AscCommon.ST_ChildOrderType.b; break; case "t": nVal = AscCommon.ST_ChildOrderType.t; break; } return nVal; } function To_XML_ST_AlgorithmType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_AlgorithmType.composite: sVal = "composite"; break; case AscCommon.ST_AlgorithmType.conn: sVal = "conn"; break; case AscCommon.ST_AlgorithmType.cycle: sVal = "cycle"; break; case AscCommon.ST_AlgorithmType.hierChild: sVal = "hierChild"; break; case AscCommon.ST_AlgorithmType.hierRoot: sVal = "hierRoot"; break; case AscCommon.ST_AlgorithmType.pyra: sVal = "pyra"; break; case AscCommon.ST_AlgorithmType.lin: sVal = "lin"; break; case AscCommon.ST_AlgorithmType.sp: sVal = "sp"; break; case AscCommon.ST_AlgorithmType.tx: sVal = "tx"; break; case AscCommon.ST_AlgorithmType.snake: sVal = "snake"; break; } return sVal; } function From_XML_ST_AlgorithmType(sVal) { var nVal = undefined; switch (sVal) { case "composite": nVal = AscCommon.ST_AlgorithmType.composite; break; case "conn": nVal = AscCommon.ST_AlgorithmType.conn; break; case "cycle": nVal = AscCommon.ST_AlgorithmType.cycle; break; case "hierChild": nVal = AscCommon.ST_AlgorithmType.hierChild; break; case "hierRoot": nVal = AscCommon.ST_AlgorithmType.hierRoot; break; case "pyra": nVal = AscCommon.ST_AlgorithmType.pyra; break; case "lin": nVal = AscCommon.ST_AlgorithmType.lin; break; case "sp": nVal = AscCommon.ST_AlgorithmType.sp; break; case "tx": nVal = AscCommon.ST_AlgorithmType.tx; break; case "snake": nVal = AscCommon.ST_AlgorithmType.snake; break; } return nVal; } function To_XML_ST_ConstraintRelationship(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_ConstraintRelationship.self: sVal = "self"; break; case AscCommon.ST_ConstraintRelationship.ch: sVal = "ch"; break; case AscCommon.ST_ConstraintRelationship.des: sVal = "des"; break; } return sVal; } function From_XML_ST_ConstraintRelationship(sVal) { var nVal = undefined; switch (sVal) { case "self": nVal = AscCommon.ST_ConstraintRelationship.self; break; case "ch": nVal = AscCommon.ST_ConstraintRelationship.ch; break; case "des": nVal = AscCommon.ST_ConstraintRelationship.des; break; } return nVal; } function To_XML_ST_BoolOperator(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_BoolOperator.none: sVal = "none"; break; case AscCommon.ST_BoolOperator.equ: sVal = "equ"; break; case AscCommon.ST_BoolOperator.gte: sVal = "gte"; break; case AscCommon.ST_BoolOperator.lte: sVal = "lte"; break; } return sVal; } function From_XML_ST_BoolOperator(sVal) { var nVal = undefined; switch (sVal) { case "none": nVal = AscCommon.ST_BoolOperator.none; break; case "equ": nVal = AscCommon.ST_BoolOperator.equ; break; case "gte": nVal = AscCommon.ST_BoolOperator.gte; break; case "lte": nVal = AscCommon.ST_BoolOperator.lte; break; } return nVal; } function To_XML_ST_ElementType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_ElementType.all: sVal = "all"; break; case AscCommon.ST_ElementType.doc: sVal = "doc"; break; case AscCommon.ST_ElementType.node: sVal = "node"; break; case AscCommon.ST_ElementType.norm: sVal = "norm"; break; case AscCommon.ST_ElementType.nonNorm: sVal = "nonNorm"; break; case AscCommon.ST_ElementType.asst: sVal = "asst"; break; case AscCommon.ST_ElementType.nonAsst: sVal = "nonAsst"; break; case AscCommon.ST_ElementType.parTrans: sVal = "parTrans"; break; case AscCommon.ST_ElementType.pres: sVal = "pres"; break; case AscCommon.ST_ElementType.sibTrans: sVal = "sibTrans"; break; } return sVal; } function From_XML_ST_ElementType(sVal) { var nVal = undefined; switch (sVal) { case "all": nVal = AscCommon.ST_ElementType.all; break; case "doc": nVal = AscCommon.ST_ElementType.doc; break; case "node": nVal = AscCommon.ST_ElementType.node; break; case "norm": nVal = AscCommon.ST_ElementType.norm; break; case "nonNorm": nVal = AscCommon.ST_ElementType.nonNorm; break; case "asst": nVal = AscCommon.ST_ElementType.asst; break; case "nonAsst": nVal = AscCommon.ST_ElementType.nonAsst; break; case "parTrans": nVal = AscCommon.ST_ElementType.parTrans; break; case "pres": nVal = AscCommon.ST_ElementType.pres; break; case "sibTrans": nVal = AscCommon.ST_ElementType.sibTrans; break; } return nVal; } function To_XML_ST_ConstraintType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_ConstraintType.alignOff: sVal = "alignOff"; break; case AscCommon.ST_ConstraintType.b: sVal = "b"; break; case AscCommon.ST_ConstraintType.begMarg: sVal = "begMarg"; break; case AscCommon.ST_ConstraintType.begPad: sVal = "begPad"; break; case AscCommon.ST_ConstraintType.bendDist: sVal = "bendDist"; break; case AscCommon.ST_ConstraintType.bMarg: sVal = "bMarg"; break; case AscCommon.ST_ConstraintType.bOff: sVal = "bOff"; break; case AscCommon.ST_ConstraintType.connDist: sVal = "connDist"; break; case AscCommon.ST_ConstraintType.ctrX: sVal = "ctrX"; break; case AscCommon.ST_ConstraintType.ctrXOff: sVal = "ctrXOff"; break; case AscCommon.ST_ConstraintType.ctrY: sVal = "ctrY"; break; case AscCommon.ST_ConstraintType.ctrYOff: sVal = "ctrYOff"; break; case AscCommon.ST_ConstraintType.diam: sVal = "diam"; break; case AscCommon.ST_ConstraintType.endMarg: sVal = "endMarg"; break; case AscCommon.ST_ConstraintType.endPad: sVal = "endPad"; break; case AscCommon.ST_ConstraintType.h: sVal = "h"; break; case AscCommon.ST_ConstraintType.hArH: sVal = "hArH"; break; case AscCommon.ST_ConstraintType.hOff: sVal = "hOff"; break; case AscCommon.ST_ConstraintType.l: sVal = "l"; break; case AscCommon.ST_ConstraintType.lMarg: sVal = "lMarg"; break; case AscCommon.ST_ConstraintType.lOff: sVal = "lOff"; break; case AscCommon.ST_ConstraintType.none: sVal = "none"; break; case AscCommon.ST_ConstraintType.primFontSz: sVal = "primFontSz"; break; case AscCommon.ST_ConstraintType.pyraAcctRatio: sVal = "pyraAcctRatio"; break; case AscCommon.ST_ConstraintType.r: sVal = "r"; break; case AscCommon.ST_ConstraintType.rMarg: sVal = "rMarg"; break; case AscCommon.ST_ConstraintType.rOff: sVal = "rOff"; break; case AscCommon.ST_ConstraintType.secFontSz: sVal = "secFontSz"; break; case AscCommon.ST_ConstraintType.secSibSp: sVal = "secSibSp"; break; case AscCommon.ST_ConstraintType.sibSp: sVal = "sibSp"; break; case AscCommon.ST_ConstraintType.sp: sVal = "sp"; break; case AscCommon.ST_ConstraintType.stemThick: sVal = "stemThick"; break; case AscCommon.ST_ConstraintType.t: sVal = "t"; break; case AscCommon.ST_ConstraintType.tMarg: sVal = "tMarg"; break; case AscCommon.ST_ConstraintType.tOff: sVal = "tOff"; break; case AscCommon.ST_ConstraintType.userA: sVal = "userA"; break; case AscCommon.ST_ConstraintType.userB: sVal = "userB"; break; case AscCommon.ST_ConstraintType.userC: sVal = "userC"; break; case AscCommon.ST_ConstraintType.userD: sVal = "userD"; break; case AscCommon.ST_ConstraintType.userE: sVal = "userE"; break; case AscCommon.ST_ConstraintType.userF: sVal = "userF"; break; case AscCommon.ST_ConstraintType.userG: sVal = "userG"; break; case AscCommon.ST_ConstraintType.userH: sVal = "userH"; break; case AscCommon.ST_ConstraintType.userI: sVal = "userI"; break; case AscCommon.ST_ConstraintType.userJ: sVal = "userJ"; break; case AscCommon.ST_ConstraintType.userK: sVal = "userK"; break; case AscCommon.ST_ConstraintType.userL: sVal = "userL"; break; case AscCommon.ST_ConstraintType.userM: sVal = "userM"; break; case AscCommon.ST_ConstraintType.userN: sVal = "userN"; break; case AscCommon.ST_ConstraintType.userO: sVal = "userO"; break; case AscCommon.ST_ConstraintType.userP: sVal = "userP"; break; case AscCommon.ST_ConstraintType.userQ: sVal = "userQ"; break; case AscCommon.ST_ConstraintType.userR: sVal = "userR"; break; case AscCommon.ST_ConstraintType.userS: sVal = "userS"; break; case AscCommon.ST_ConstraintType.userT: sVal = "userT"; break; case AscCommon.ST_ConstraintType.userU: sVal = "userU"; break; case AscCommon.ST_ConstraintType.userV: sVal = "userV"; break; case AscCommon.ST_ConstraintType.userW: sVal = "userW"; break; case AscCommon.ST_ConstraintType.userX: sVal = "userX"; break; case AscCommon.ST_ConstraintType.userY: sVal = "userY"; break; case AscCommon.ST_ConstraintType.userZ: sVal = "userZ"; break; case AscCommon.ST_ConstraintType.w: sVal = "w"; break; case AscCommon.ST_ConstraintType.wArH: sVal = "wArH"; break; case AscCommon.ST_ConstraintType.wOff: sVal = "wOff"; break; } return sVal; } function From_XML_ST_ConstraintType(sVal) { var nVal = undefined; switch (sVal) { case "alignOff": nVal = AscCommon.ST_ConstraintType.alignOff; break; case "b": nVal = AscCommon.ST_ConstraintType.b; break; case "begMarg": nVal = AscCommon.ST_ConstraintType.begMarg; break; case "begPad": nVal = AscCommon.ST_ConstraintType.begPad; break; case "bendDist": nVal = AscCommon.ST_ConstraintType.bendDist; break; case "bMarg": nVal = AscCommon.ST_ConstraintType.bMarg; break; case "bOff": nVal = AscCommon.ST_ConstraintType.bOff; break; case "connDist": nVal = AscCommon.ST_ConstraintType.connDist; break; case "ctrX": nVal = AscCommon.ST_ConstraintType.ctrX; break; case "ctrXOff": nVal = AscCommon.ST_ConstraintType.ctrXOff; break; case "ctrY": nVal = AscCommon.ST_ConstraintType.ctrY; break; case "ctrYOff": nVal = AscCommon.ST_ConstraintType.ctrYOff; break; case "diam": nVal = AscCommon.ST_ConstraintType.diam; break; case "endMarg": nVal = AscCommon.ST_ConstraintType.endMarg; break; case "endPad": nVal = AscCommon.ST_ConstraintType.endPad; break; case "h": nVal = AscCommon.ST_ConstraintType.h; break; case "hArH": nVal = AscCommon.ST_ConstraintType.hArH; break; case "hOff": nVal = AscCommon.ST_ConstraintType.hOff; break; case "l": nVal = AscCommon.ST_ConstraintType.l; break; case "lMarg": nVal = AscCommon.ST_ConstraintType.lMarg; break; case "lOff": nVal = AscCommon.ST_ConstraintType.lOff; break; case "none": nVal = AscCommon.ST_ConstraintType.none; break; case "primFontSz": nVal = AscCommon.ST_ConstraintType.primFontSz; break; case "pyraAcctRatio": nVal = AscCommon.ST_ConstraintType.pyraAcctRatio; break; case "r": nVal = AscCommon.ST_ConstraintType.r; break; case "rMarg": nVal = AscCommon.ST_ConstraintType.rMarg; break; case "rOff": nVal = AscCommon.ST_ConstraintType.rOff; break; case "secFontSz": nVal = AscCommon.ST_ConstraintType.secFontSz; break; case "secSibSp": nVal = AscCommon.ST_ConstraintType.secSibSp; break; case "sibSp": nVal = AscCommon.ST_ConstraintType.sibSp; break; case "sp": nVal = AscCommon.ST_ConstraintType.sp; break; case "stemThick": nVal = AscCommon.ST_ConstraintType.stemThick; break; case "t": nVal = AscCommon.ST_ConstraintType.t; break; case "tMarg": nVal = AscCommon.ST_ConstraintType.tMarg; break; case "tOff": nVal = AscCommon.ST_ConstraintType.tOff; break; case "userA": nVal = AscCommon.ST_ConstraintType.userA; break; case "userB": nVal = AscCommon.ST_ConstraintType.userB; break; case "userC": nVal = AscCommon.ST_ConstraintType.userC; break; case "userD": nVal = AscCommon.ST_ConstraintType.userD; break; case "userE": nVal = AscCommon.ST_ConstraintType.userE; break; case "userF": nVal = AscCommon.ST_ConstraintType.userF; break; case "userG": nVal = AscCommon.ST_ConstraintType.userG; break; case "userH": nVal = AscCommon.ST_ConstraintType.userH; break; case "userI": nVal = AscCommon.ST_ConstraintType.userI; break; case "userJ": nVal = AscCommon.ST_ConstraintType.userJ; break; case "userK": nVal = AscCommon.ST_ConstraintType.userK; break; case "userL": nVal = AscCommon.ST_ConstraintType.userL; break; case "userM": nVal = AscCommon.ST_ConstraintType.userM; break; case "userN": nVal = AscCommon.ST_ConstraintType.userN; break; case "userO": nVal = AscCommon.ST_ConstraintType.userO; break; case "userP": nVal = AscCommon.ST_ConstraintType.userP; break; case "userQ": nVal = AscCommon.ST_ConstraintType.userQ; break; case "userR": nVal = AscCommon.ST_ConstraintType.userR; break; case "userS": nVal = AscCommon.ST_ConstraintType.userS; break; case "userT": nVal = AscCommon.ST_ConstraintType.userT; break; case "userU": nVal = AscCommon.ST_ConstraintType.userU; break; case "userV": nVal = AscCommon.ST_ConstraintType.userV; break; case "userW": nVal = AscCommon.ST_ConstraintType.userW; break; case "userX": nVal = AscCommon.ST_ConstraintType.userX; break; case "userY": nVal = AscCommon.ST_ConstraintType.userY; break; case "userZ": nVal = AscCommon.ST_ConstraintType.userZ; break; case "w": nVal = AscCommon.ST_ConstraintType.w; break; case "wArH": nVal = AscCommon.ST_ConstraintType.wArH; break; case "wOff": nVal = AscCommon.ST_ConstraintType.wOff; break; } return nVal; } function To_XML_ST_VariableType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_VariableType.animLvl: sVal = "animLvl"; break; case AscCommon.ST_VariableType.animOne: sVal = "animOne"; break; case AscCommon.ST_VariableType.bulEnabled: sVal = "bulEnabled"; break; case AscCommon.ST_VariableType.chMax: sVal = "chMax"; break; case AscCommon.ST_VariableType.chPref: sVal = "chPref"; break; case AscCommon.ST_VariableType.dir: sVal = "dir"; break; case AscCommon.ST_VariableType.hierBranch: sVal = "hierBranch"; break; case AscCommon.ST_VariableType.none: sVal = "none"; break; case AscCommon.ST_VariableType.orgChart: sVal = "orgChart"; break; case AscCommon.ST_VariableType.resizeHandles: sVal = "resizeHandles"; break; } return sVal; } function From_XML_ST_VariableType(sVal) { var nVal = undefined; switch (sVal) { case "animLvl": nVal = AscCommon.ST_VariableType.animLvl; break; case "animOne": nVal = AscCommon.ST_VariableType.animOne; break; case "bulEnabled": nVal = AscCommon.ST_VariableType.bulEnabled; break; case "chMax": nVal = AscCommon.ST_VariableType.chMax; break; case "chPref": nVal = AscCommon.ST_VariableType.chPref; break; case "dir": nVal = AscCommon.ST_VariableType.dir; break; case "hierBranch": nVal = AscCommon.ST_VariableType.hierBranch; break; case "none": nVal = AscCommon.ST_VariableType.none; break; case "orgChart": nVal = AscCommon.ST_VariableType.orgChart; break; case "resizeHandles": nVal = AscCommon.ST_VariableType.resizeHandles; break; } return nVal; } function To_XML_ST_AxisType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_AxisType.ancst: sVal = "ancst"; break; case AscCommon.ST_AxisType.ancstOrSelf: sVal = "ancstOrSelf"; break; case AscCommon.ST_AxisType.ch: sVal = "ch"; break; case AscCommon.ST_AxisType.des: sVal = "des"; break; case AscCommon.ST_AxisType.desOrSelf: sVal = "desOrSelf"; break; case AscCommon.ST_AxisType.follow: sVal = "follow"; break; case AscCommon.ST_AxisType.followSib: sVal = "followSib"; break; case AscCommon.ST_AxisType.none: sVal = "none"; break; case AscCommon.ST_AxisType.par: sVal = "par"; break; case AscCommon.ST_AxisType.preced: sVal = "preced"; break; case AscCommon.ST_AxisType.precedSib: sVal = "precedSib"; break; case AscCommon.ST_AxisType.root: sVal = "root"; break; case AscCommon.ST_AxisType.self: sVal = "self"; break; } return sVal; } function From_XML_ST_AxisType(sVal) { var nVal = undefined; switch (sVal) { case "ancst": nVal = AscCommon.ST_AxisType.ancst; break; case "ancstOrSelf": nVal = AscCommon.ST_AxisType.ancstOrSelf; break; case "ch": nVal = AscCommon.ST_AxisType.ch; break; case "des": nVal = AscCommon.ST_AxisType.des; break; case "desOrSelf": nVal = AscCommon.ST_AxisType.desOrSelf; break; case "follow": nVal = AscCommon.ST_AxisType.follow; break; case "followSib": nVal = AscCommon.ST_AxisType.followSib; break; case "none": nVal = AscCommon.ST_AxisType.none; break; case "par": nVal = AscCommon.ST_AxisType.par; break; case "preced": nVal = AscCommon.ST_AxisType.preced; break; case "precedSib": nVal = AscCommon.ST_AxisType.precedSib; break; case "root": nVal = AscCommon.ST_AxisType.root; break; case "self": nVal = AscCommon.ST_AxisType.self; break; } return nVal; } function To_XML_ST_FunctionType(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_FunctionType.cnt: sVal = "cnt"; break; case AscCommon.ST_FunctionType.depth: sVal = "depth"; break; case AscCommon.ST_FunctionType.maxDepth: sVal = "maxDepth"; break; case AscCommon.ST_FunctionType.pos: sVal = "pos"; break; case AscCommon.ST_FunctionType.posEven: sVal = "posEven"; break; case AscCommon.ST_FunctionType.posOdd: sVal = "posOdd"; break; case AscCommon.ST_FunctionType.revPos: sVal = "revPos"; break; case AscCommon.ST_FunctionType.var: sVal = "var"; break; } return sVal; } function From_XML_ST_FunctionType(sVal) { var nVal = undefined; switch (sVal) { case "cnt": nVal = AscCommon.ST_FunctionType.cnt; break; case "depth": nVal = AscCommon.ST_FunctionType.depth; break; case "maxDepth": nVal = AscCommon.ST_FunctionType.maxDepth; break; case "pos": nVal = AscCommon.ST_FunctionType.pos; break; case "posEven": nVal = AscCommon.ST_FunctionType.posEven; break; case "posOdd": nVal = AscCommon.ST_FunctionType.posOdd; break; case "revPos": nVal = AscCommon.ST_FunctionType.revPos; break; case "var": nVal = AscCommon.ST_FunctionType.var; break; } return nVal; } function To_XML_ST_FunctionOperator(nVal) { var sVal = undefined; switch (nVal) { case AscCommon.ST_FunctionOperator.equ: sVal = "equ"; break; case AscCommon.ST_FunctionOperator.gt: sVal = "gt"; break; case AscCommon.ST_FunctionOperator.gte: sVal = "gte"; break; case AscCommon.ST_FunctionOperator.lt: sVal = "lt"; break; case AscCommon.ST_FunctionOperator.lte: sVal = "lte"; break; case AscCommon.ST_FunctionOperator.neq: sVal = "neq"; break; } return sVal; } function From_XML_ST_FunctionOperator(sVal) { var nVal = undefined; switch (sVal) { case "equ": nVal = AscCommon.ST_FunctionOperator.equ; break; case "gt": nVal = AscCommon.ST_FunctionOperator.gt; break; case "gte": nVal = AscCommon.ST_FunctionOperator.gte; break; case "lt": nVal = AscCommon.ST_FunctionOperator.lt; break; case "lte": nVal = AscCommon.ST_FunctionOperator.lte; break; case "neq": nVal = AscCommon.ST_FunctionOperator.neq; break; } return nVal; } function To_XML_ST_LayoutShapeType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_LayoutShapeType.conn: sVal = "conn"; break; case AscCommon.ST_LayoutShapeType.none: sVal = "none"; break; case AscCommon.ST_LayoutShapeType.accentBorderCallout1: sVal = "accentBorderCallout1"; break; case AscCommon.ST_LayoutShapeType.accentBorderCallout2: sVal = "accentBorderCallout2"; break; case AscCommon.ST_LayoutShapeType.accentBorderCallout3: sVal = "accentBorderCallout3"; break; case AscCommon.ST_LayoutShapeType.accentCallout1: sVal = "accentCallout1"; break; case AscCommon.ST_LayoutShapeType.accentCallout2: sVal = "accentCallout2"; break; case AscCommon.ST_LayoutShapeType.accentCallout3: sVal = "accentCallout3"; break; case AscCommon.ST_LayoutShapeType.actionButtonBackPrevious: sVal = "actionButtonBackPrevious"; break; case AscCommon.ST_LayoutShapeType.actionButtonBeginning: sVal = "actionButtonBeginning"; break; case AscCommon.ST_LayoutShapeType.actionButtonBlank: sVal = "actionButtonBlank"; break; case AscCommon.ST_LayoutShapeType.actionButtonDocument: sVal = "actionButtonDocument"; break; case AscCommon.ST_LayoutShapeType.actionButtonEnd: sVal = "actionButtonEnd"; break; case AscCommon.ST_LayoutShapeType.actionButtonForwardNext: sVal = "actionButtonForwardNext"; break; case AscCommon.ST_LayoutShapeType.actionButtonHelp: sVal = "actionButtonHelp"; break; case AscCommon.ST_LayoutShapeType.actionButtonHome: sVal = "actionButtonHome"; break; case AscCommon.ST_LayoutShapeType.actionButtonInformation: sVal = "actionButtonInformation"; break; case AscCommon.ST_LayoutShapeType.actionButtonMovie: sVal = "actionButtonMovie"; break; case AscCommon.ST_LayoutShapeType.actionButtonReturn: sVal = "actionButtonReturn"; break; case AscCommon.ST_LayoutShapeType.actionButtonSound: sVal = "actionButtonSound"; break; case AscCommon.ST_LayoutShapeType.arc: sVal = "arc"; break; case AscCommon.ST_LayoutShapeType.bentArrow: sVal = "bentArrow"; break; case AscCommon.ST_LayoutShapeType.bentConnector2: sVal = "bentConnector2"; break; case AscCommon.ST_LayoutShapeType.bentConnector3: sVal = "bentConnector3"; break; case AscCommon.ST_LayoutShapeType.bentConnector4: sVal = "bentConnector4"; break; case AscCommon.ST_LayoutShapeType.bentConnector5: sVal = "bentConnector5"; break; case AscCommon.ST_LayoutShapeType.bentUpArrow: sVal = "bentUpArrow"; break; case AscCommon.ST_LayoutShapeType.bevel: sVal = "bevel"; break; case AscCommon.ST_LayoutShapeType.blockArc: sVal = "blockArc"; break; case AscCommon.ST_LayoutShapeType.borderCallout1: sVal = "borderCallout1"; break; case AscCommon.ST_LayoutShapeType.borderCallout2: sVal = "borderCallout2"; break; case AscCommon.ST_LayoutShapeType.borderCallout3: sVal = "borderCallout3"; break; case AscCommon.ST_LayoutShapeType.bracePair: sVal = "bracePair"; break; case AscCommon.ST_LayoutShapeType.bracketPair: sVal = "bracketPair"; break; case AscCommon.ST_LayoutShapeType.callout1: sVal = "callout1"; break; case AscCommon.ST_LayoutShapeType.callout2: sVal = "callout2"; break; case AscCommon.ST_LayoutShapeType.callout3: sVal = "callout3"; break; case AscCommon.ST_LayoutShapeType.can: sVal = "can"; break; case AscCommon.ST_LayoutShapeType.chartPlus: sVal = "chartPlus"; break; case AscCommon.ST_LayoutShapeType.chartStar: sVal = "chartStar"; break; case AscCommon.ST_LayoutShapeType.chartX: sVal = "chartX"; break; case AscCommon.ST_LayoutShapeType.chevron: sVal = "chevron"; break; case AscCommon.ST_LayoutShapeType.chord: sVal = "chord"; break; case AscCommon.ST_LayoutShapeType.circularArrow: sVal = "circularArrow"; break; case AscCommon.ST_LayoutShapeType.cloud: sVal = "cloud"; break; case AscCommon.ST_LayoutShapeType.cloudCallout: sVal = "cloudCallout"; break; case AscCommon.ST_LayoutShapeType.corner: sVal = "corner"; break; case AscCommon.ST_LayoutShapeType.cornerTabs: sVal = "cornerTabs"; break; case AscCommon.ST_LayoutShapeType.cube: sVal = "cube"; break; case AscCommon.ST_LayoutShapeType.curvedConnector2: sVal = "curvedConnector2"; break; case AscCommon.ST_LayoutShapeType.curvedConnector3: sVal = "curvedConnector3"; break; case AscCommon.ST_LayoutShapeType.curvedConnector4: sVal = "curvedConnector4"; break; case AscCommon.ST_LayoutShapeType.curvedConnector5: sVal = "curvedConnector5"; break; case AscCommon.ST_LayoutShapeType.curvedDownArrow: sVal = "curvedDownArrow"; break; case AscCommon.ST_LayoutShapeType.curvedLeftArrow: sVal = "curvedLeftArrow"; break; case AscCommon.ST_LayoutShapeType.curvedRightArrow: sVal = "curvedRightArrow"; break; case AscCommon.ST_LayoutShapeType.curvedUpArrow: sVal = "curvedUpArrow"; break; case AscCommon.ST_LayoutShapeType.decagon: sVal = "decagon"; break; case AscCommon.ST_LayoutShapeType.diagStripe: sVal = "diagStripe"; break; case AscCommon.ST_LayoutShapeType.diamond: sVal = "diamond"; break; case AscCommon.ST_LayoutShapeType.dodecagon: sVal = "dodecagon"; break; case AscCommon.ST_LayoutShapeType.donut: sVal = "donut"; break; case AscCommon.ST_LayoutShapeType.doubleWave: sVal = "doubleWave"; break; case AscCommon.ST_LayoutShapeType.downArrow: sVal = "downArrow"; break; case AscCommon.ST_LayoutShapeType.downArrowCallout: sVal = "downArrowCallout"; break; case AscCommon.ST_LayoutShapeType.ellipse: sVal = "ellipse"; break; case AscCommon.ST_LayoutShapeType.ellipseRibbon: sVal = "ellipseRibbon"; break; case AscCommon.ST_LayoutShapeType.ellipseRibbon2: sVal = "ellipseRibbon2"; break; case AscCommon.ST_LayoutShapeType.flowChartAlternateProcess: sVal = "flowChartAlternateProcess"; break; case AscCommon.ST_LayoutShapeType.flowChartCollate: sVal = "flowChartCollate"; break; case AscCommon.ST_LayoutShapeType.flowChartConnector: sVal = "flowChartConnector"; break; case AscCommon.ST_LayoutShapeType.flowChartDecision: sVal = "flowChartDecision"; break; case AscCommon.ST_LayoutShapeType.flowChartDelay: sVal = "flowChartDelay"; break; case AscCommon.ST_LayoutShapeType.flowChartDisplay: sVal = "flowChartDisplay"; break; case AscCommon.ST_LayoutShapeType.flowChartDocument: sVal = "flowChartDocument"; break; case AscCommon.ST_LayoutShapeType.flowChartExtract: sVal = "flowChartExtract"; break; case AscCommon.ST_LayoutShapeType.flowChartInputOutput: sVal = "flowChartInputOutput"; break; case AscCommon.ST_LayoutShapeType.flowChartInternalStorage: sVal = "flowChartInternalStorage"; break; case AscCommon.ST_LayoutShapeType.flowChartMagneticDisk: sVal = "flowChartMagneticDisk"; break; case AscCommon.ST_LayoutShapeType.flowChartMagneticDrum: sVal = "flowChartMagneticDrum"; break; case AscCommon.ST_LayoutShapeType.flowChartMagneticTape: sVal = "flowChartMagneticTape"; break; case AscCommon.ST_LayoutShapeType.flowChartManualInput: sVal = "flowChartManualInput"; break; case AscCommon.ST_LayoutShapeType.flowChartManualOperation: sVal = "flowChartManualOperation"; break; case AscCommon.ST_LayoutShapeType.flowChartMerge: sVal = "flowChartMerge"; break; case AscCommon.ST_LayoutShapeType.flowChartMultidocument: sVal = "flowChartMultidocument"; break; case AscCommon.ST_LayoutShapeType.flowChartOfflineStorage: sVal = "flowChartOfflineStorage"; break; case AscCommon.ST_LayoutShapeType.flowChartOffpageConnector: sVal = "flowChartOffpageConnector"; break; case AscCommon.ST_LayoutShapeType.flowChartOnlineStorage: sVal = "flowChartOnlineStorage"; break; case AscCommon.ST_LayoutShapeType.flowChartOr: sVal = "flowChartOr"; break; case AscCommon.ST_LayoutShapeType.flowChartPredefinedProcess: sVal = "flowChartPredefinedProcess"; break; case AscCommon.ST_LayoutShapeType.flowChartPreparation: sVal = "flowChartPreparation"; break; case AscCommon.ST_LayoutShapeType.flowChartProcess: sVal = "flowChartProcess"; break; case AscCommon.ST_LayoutShapeType.flowChartPunchedCard: sVal = "flowChartPunchedCard"; break; case AscCommon.ST_LayoutShapeType.flowChartPunchedTape: sVal = "flowChartPunchedTape"; break; case AscCommon.ST_LayoutShapeType.flowChartSort: sVal = "flowChartSort"; break; case AscCommon.ST_LayoutShapeType.flowChartSummingJunction: sVal = "flowChartSummingJunction"; break; case AscCommon.ST_LayoutShapeType.flowChartTerminator: sVal = "flowChartTerminator"; break; case AscCommon.ST_LayoutShapeType.foldedCorner: sVal = "foldedCorner"; break; case AscCommon.ST_LayoutShapeType.frame: sVal = "frame"; break; case AscCommon.ST_LayoutShapeType.funnel: sVal = "funnel"; break; case AscCommon.ST_LayoutShapeType.gear6: sVal = "gear6"; break; case AscCommon.ST_LayoutShapeType.gear9: sVal = "gear9"; break; case AscCommon.ST_LayoutShapeType.halfFrame: sVal = "halfFrame"; break; case AscCommon.ST_LayoutShapeType.heart: sVal = "heart"; break; case AscCommon.ST_LayoutShapeType.heptagon: sVal = "heptagon"; break; case AscCommon.ST_LayoutShapeType.hexagon: sVal = "hexagon"; break; case AscCommon.ST_LayoutShapeType.homePlate: sVal = "homePlate"; break; case AscCommon.ST_LayoutShapeType.horizontalScroll: sVal = "horizontalScroll"; break; case AscCommon.ST_LayoutShapeType.irregularSeal1: sVal = "irregularSeal1"; break; case AscCommon.ST_LayoutShapeType.irregularSeal2: sVal = "irregularSeal2"; break; case AscCommon.ST_LayoutShapeType.leftArrow: sVal = "leftArrow"; break; case AscCommon.ST_LayoutShapeType.leftArrowCallout: sVal = "leftArrowCallout"; break; case AscCommon.ST_LayoutShapeType.leftBrace: sVal = "leftBrace"; break; case AscCommon.ST_LayoutShapeType.leftBracket: sVal = "leftBracket"; break; case AscCommon.ST_LayoutShapeType.leftCircularArrow: sVal = "leftCircularArrow"; break; case AscCommon.ST_LayoutShapeType.leftRightArrow: sVal = "leftRightArrow"; break; case AscCommon.ST_LayoutShapeType.leftRightArrowCallout: sVal = "leftRightArrowCallout"; break; case AscCommon.ST_LayoutShapeType.leftRightCircularArrow: sVal = "leftRightCircularArrow"; break; case AscCommon.ST_LayoutShapeType.leftRightRibbon: sVal = "leftRightRibbon"; break; case AscCommon.ST_LayoutShapeType.leftRightUpArrow: sVal = "leftRightUpArrow"; break; case AscCommon.ST_LayoutShapeType.leftUpArrow: sVal = "leftUpArrow"; break; case AscCommon.ST_LayoutShapeType.lightningBolt: sVal = "lightningBolt"; break; case AscCommon.ST_LayoutShapeType.line: sVal = "line"; break; case AscCommon.ST_LayoutShapeType.lineInv: sVal = "lineInv"; break; case AscCommon.ST_LayoutShapeType.mathDivide: sVal = "mathDivide"; break; case AscCommon.ST_LayoutShapeType.mathEqual: sVal = "mathEqual"; break; case AscCommon.ST_LayoutShapeType.mathMinus: sVal = "mathMinus"; break; case AscCommon.ST_LayoutShapeType.mathMultiply: sVal = "mathMultiply"; break; case AscCommon.ST_LayoutShapeType.mathNotEqual: sVal = "mathNotEqual"; break; case AscCommon.ST_LayoutShapeType.mathPlus: sVal = "mathPlus"; break; case AscCommon.ST_LayoutShapeType.moon: sVal = "moon"; break; case AscCommon.ST_LayoutShapeType.nonIsoscelesTrapezoid: sVal = "nonIsoscelesTrapezoid"; break; case AscCommon.ST_LayoutShapeType.noSmoking: sVal = "noSmoking"; break; case AscCommon.ST_LayoutShapeType.notchedRightArrow: sVal = "notchedRightArrow"; break; case AscCommon.ST_LayoutShapeType.octagon: sVal = "octagon"; break; case AscCommon.ST_LayoutShapeType.parallelogram: sVal = "parallelogram"; break; case AscCommon.ST_LayoutShapeType.pentagon: sVal = "pentagon"; break; case AscCommon.ST_LayoutShapeType.pie: sVal = "pie"; break; case AscCommon.ST_LayoutShapeType.pieWedge: sVal = "pieWedge"; break; case AscCommon.ST_LayoutShapeType.plaque: sVal = "plaque"; break; case AscCommon.ST_LayoutShapeType.plaqueTabs: sVal = "plaqueTabs"; break; case AscCommon.ST_LayoutShapeType.plus: sVal = "plus"; break; case AscCommon.ST_LayoutShapeType.quadArrow: sVal = "quadArrow"; break; case AscCommon.ST_LayoutShapeType.quadArrowCallout: sVal = "quadArrowCallout"; break; case AscCommon.ST_LayoutShapeType.rect: sVal = "rect"; break; case AscCommon.ST_LayoutShapeType.ribbon: sVal = "ribbon"; break; case AscCommon.ST_LayoutShapeType.ribbon2: sVal = "ribbon2"; break; case AscCommon.ST_LayoutShapeType.rightArrow: sVal = "rightArrow"; break; case AscCommon.ST_LayoutShapeType.rightArrowCallout: sVal = "rightArrowCallout"; break; case AscCommon.ST_LayoutShapeType.rightBrace: sVal = "rightBrace"; break; case AscCommon.ST_LayoutShapeType.rightBracket: sVal = "rightBracket"; break; case AscCommon.ST_LayoutShapeType.round1Rect: sVal = "round1Rect"; break; case AscCommon.ST_LayoutShapeType.round2DiagRect: sVal = "round2DiagRect"; break; case AscCommon.ST_LayoutShapeType.round2SameRect: sVal = "round2SameRect"; break; case AscCommon.ST_LayoutShapeType.roundRect: sVal = "roundRect"; break; case AscCommon.ST_LayoutShapeType.rtTriangle: sVal = "rtTriangle"; break; case AscCommon.ST_LayoutShapeType.smileyFace: sVal = "smileyFace"; break; case AscCommon.ST_LayoutShapeType.snip1Rect: sVal = "snip1Rect"; break; case AscCommon.ST_LayoutShapeType.snip2DiagRect: sVal = "snip2DiagRect"; break; case AscCommon.ST_LayoutShapeType.snip2SameRect: sVal = "snip2SameRect"; break; case AscCommon.ST_LayoutShapeType.snipRoundRect: sVal = "snipRoundRect"; break; case AscCommon.ST_LayoutShapeType.squareTabs: sVal = "squareTabs"; break; case AscCommon.ST_LayoutShapeType.star10: sVal = "star10"; break; case AscCommon.ST_LayoutShapeType.star12: sVal = "star12"; break; case AscCommon.ST_LayoutShapeType.star16: sVal = "star16"; break; case AscCommon.ST_LayoutShapeType.star24: sVal = "star24"; break; case AscCommon.ST_LayoutShapeType.star32: sVal = "star32"; break; case AscCommon.ST_LayoutShapeType.star4: sVal = "star4"; break; case AscCommon.ST_LayoutShapeType.star5: sVal = "star5"; break; case AscCommon.ST_LayoutShapeType.star6: sVal = "star6"; break; case AscCommon.ST_LayoutShapeType.star7: sVal = "star7"; break; case AscCommon.ST_LayoutShapeType.star8: sVal = "star8"; break; case AscCommon.ST_LayoutShapeType.straightConnector1: sVal = "straightConnector1"; break; case AscCommon.ST_LayoutShapeType.stripedRightArrow: sVal = "stripedRightArrow"; break; case AscCommon.ST_LayoutShapeType.sun: sVal = "sun"; break; case AscCommon.ST_LayoutShapeType.swooshArrow: sVal = "swooshArrow"; break; case AscCommon.ST_LayoutShapeType.teardrop: sVal = "teardrop"; break; case AscCommon.ST_LayoutShapeType.trapezoid: sVal = "trapezoid"; break; case AscCommon.ST_LayoutShapeType.triangle: sVal = "triangle"; break; case AscCommon.ST_LayoutShapeType.upArrow: sVal = "upArrow"; break; case AscCommon.ST_LayoutShapeType.upArrowCallout: sVal = "upArrowCallout"; break; case AscCommon.ST_LayoutShapeType.upDownArrow: sVal = "upDownArrow"; break; case AscCommon.ST_LayoutShapeType.upDownArrowCallout: sVal = "upDownArrowCallout"; break; case AscCommon.ST_LayoutShapeType.uturnArrow: sVal = "uturnArrow"; break; case AscCommon.ST_LayoutShapeType.verticalScroll: sVal = "verticalScroll"; break; case AscCommon.ST_LayoutShapeType.wave: sVal = "wave"; break; case AscCommon.ST_LayoutShapeType.wedgeEllipseCallout: sVal = "wedgeEllipseCallout"; break; case AscCommon.ST_LayoutShapeType.wedgeRectCallout: sVal = "wedgeRectCallout"; break; case AscCommon.ST_LayoutShapeType.wedgeRoundRectCallout: sVal = "wedgeRoundRectCallout"; break; } return sVal; } function From_XML_ST_LayoutShapeType(sVal) { var nVal = undefined; switch(sVal) { case "conn": nVal = AscCommon.ST_LayoutShapeType.conn; break; case "none": nVal = AscCommon.ST_LayoutShapeType.none; break; case "accentBorderCallout1": nVal = AscCommon.ST_LayoutShapeType.accentBorderCallout1; break; case "accentBorderCallout2": nVal = AscCommon.ST_LayoutShapeType.accentBorderCallout2; break; case "accentBorderCallout3": nVal = AscCommon.ST_LayoutShapeType.accentBorderCallout3; break; case "accentCallout1": nVal = AscCommon.ST_LayoutShapeType.accentCallout1; break; case "accentCallout2": nVal = AscCommon.ST_LayoutShapeType.accentCallout2; break; case "accentCallout3": nVal = AscCommon.ST_LayoutShapeType.accentCallout3; break; case "actionButtonBackPrevious": nVal = AscCommon.ST_LayoutShapeType.actionButtonBackPrevious; break; case "actionButtonBeginning": nVal = AscCommon.ST_LayoutShapeType.actionButtonBeginning; break; case "actionButtonBlank": nVal = AscCommon.ST_LayoutShapeType.actionButtonBlank; break; case "actionButtonDocument": nVal = AscCommon.ST_LayoutShapeType.actionButtonDocument; break; case "actionButtonEnd": nVal = AscCommon.ST_LayoutShapeType.actionButtonEnd; break; case "actionButtonForwardNext": nVal = AscCommon.ST_LayoutShapeType.actionButtonForwardNext; break; case "actionButtonHelp": nVal = AscCommon.ST_LayoutShapeType.actionButtonHelp; break; case "actionButtonHome": nVal = AscCommon.ST_LayoutShapeType.actionButtonHome; break; case "actionButtonInformation": nVal = AscCommon.ST_LayoutShapeType.actionButtonInformation; break; case "actionButtonMovie": nVal = AscCommon.ST_LayoutShapeType.actionButtonMovie; break; case "actionButtonReturn": nVal = AscCommon.ST_LayoutShapeType.actionButtonReturn; break; case "actionButtonSound": nVal = AscCommon.ST_LayoutShapeType.actionButtonSound; break; case "arc": nVal = AscCommon.ST_LayoutShapeType.arc; break; case "bentArrow": nVal = AscCommon.ST_LayoutShapeType.bentArrow; break; case "bentConnector2": nVal = AscCommon.ST_LayoutShapeType.bentConnector2; break; case "bentConnector3": nVal = AscCommon.ST_LayoutShapeType.bentConnector3; break; case "bentConnector4": nVal = AscCommon.ST_LayoutShapeType.bentConnector4; break; case "bentConnector5": nVal = AscCommon.ST_LayoutShapeType.bentConnector5; break; case "bentUpArrow": nVal = AscCommon.ST_LayoutShapeType.bentUpArrow; break; case "bevel": nVal = AscCommon.ST_LayoutShapeType.bevel; break; case "blockArc": nVal = AscCommon.ST_LayoutShapeType.blockArc; break; case "borderCallout1": nVal = AscCommon.ST_LayoutShapeType.borderCallout1; break; case "borderCallout2": nVal = AscCommon.ST_LayoutShapeType.borderCallout2; break; case "borderCallout3": nVal = AscCommon.ST_LayoutShapeType.borderCallout3; break; case "bracePair": nVal = AscCommon.ST_LayoutShapeType.bracePair; break; case "bracketPair": nVal = AscCommon.ST_LayoutShapeType.bracketPair; break; case "callout1": nVal = AscCommon.ST_LayoutShapeType.callout1; break; case "callout2": nVal = AscCommon.ST_LayoutShapeType.callout2; break; case "callout3": nVal = AscCommon.ST_LayoutShapeType.callout3; break; case "can": nVal = AscCommon.ST_LayoutShapeType.can; break; case "chartPlus": nVal = AscCommon.ST_LayoutShapeType.chartPlus; break; case "chartStar": nVal = AscCommon.ST_LayoutShapeType.chartStar; break; case "chartX": nVal = AscCommon.ST_LayoutShapeType.chartX; break; case "chevron": nVal = AscCommon.ST_LayoutShapeType.chevron; break; case "chord": nVal = AscCommon.ST_LayoutShapeType.chord; break; case "circularArrow": nVal = AscCommon.ST_LayoutShapeType.circularArrow; break; case "cloud": nVal = AscCommon.ST_LayoutShapeType.cloud; break; case "cloudCallout": nVal = AscCommon.ST_LayoutShapeType.cloudCallout; break; case "corner": nVal = AscCommon.ST_LayoutShapeType.corner; break; case "cornerTabs": nVal = AscCommon.ST_LayoutShapeType.cornerTabs; break; case "cube": nVal = AscCommon.ST_LayoutShapeType.cube; break; case "curvedConnector2": nVal = AscCommon.ST_LayoutShapeType.curvedConnector2; break; case "curvedConnector3": nVal = AscCommon.ST_LayoutShapeType.curvedConnector3; break; case "curvedConnector4": nVal = AscCommon.ST_LayoutShapeType.curvedConnector4; break; case "curvedConnector5": nVal = AscCommon.ST_LayoutShapeType.curvedConnector5; break; case "curvedDownArrow": nVal = AscCommon.ST_LayoutShapeType.curvedDownArrow; break; case "curvedLeftArrow": nVal = AscCommon.ST_LayoutShapeType.curvedLeftArrow; break; case "curvedRightArrow": nVal = AscCommon.ST_LayoutShapeType.curvedRightArrow; break; case "curvedUpArrow": nVal = AscCommon.ST_LayoutShapeType.curvedUpArrow; break; case "decagon": nVal = AscCommon.ST_LayoutShapeType.decagon; break; case "diagStripe": nVal = AscCommon.ST_LayoutShapeType.diagStripe; break; case "diamond": nVal = AscCommon.ST_LayoutShapeType.diamond; break; case "dodecagon": nVal = AscCommon.ST_LayoutShapeType.dodecagon; break; case "donut": nVal = AscCommon.ST_LayoutShapeType.donut; break; case "doubleWave": nVal = AscCommon.ST_LayoutShapeType.doubleWave; break; case "downArrow": nVal = AscCommon.ST_LayoutShapeType.downArrow; break; case "downArrowCallout": nVal = AscCommon.ST_LayoutShapeType.downArrowCallout; break; case "ellipse": nVal = AscCommon.ST_LayoutShapeType.ellipse; break; case "ellipseRibbon": nVal = AscCommon.ST_LayoutShapeType.ellipseRibbon; break; case "ellipseRibbon2": nVal = AscCommon.ST_LayoutShapeType.ellipseRibbon2; break; case "flowChartAlternateProcess": nVal = AscCommon.ST_LayoutShapeType.flowChartAlternateProcess; break; case "flowChartCollate": nVal = AscCommon.ST_LayoutShapeType.flowChartCollate; break; case "flowChartConnector": nVal = AscCommon.ST_LayoutShapeType.flowChartConnector; break; case "flowChartDecision": nVal = AscCommon.ST_LayoutShapeType.flowChartDecision; break; case "flowChartDelay": nVal = AscCommon.ST_LayoutShapeType.flowChartDelay; break; case "flowChartDisplay": nVal = AscCommon.ST_LayoutShapeType.flowChartDisplay; break; case "flowChartDocument": nVal = AscCommon.ST_LayoutShapeType.flowChartDocument; break; case "flowChartExtract": nVal = AscCommon.ST_LayoutShapeType.flowChartExtract; break; case "flowChartInputOutput": nVal = AscCommon.ST_LayoutShapeType.flowChartInputOutput; break; case "flowChartInternalStorage": nVal = AscCommon.ST_LayoutShapeType.flowChartInternalStorage; break; case "flowChartMagneticDisk": nVal = AscCommon.ST_LayoutShapeType.flowChartMagneticDisk; break; case "flowChartMagneticDrum": nVal = AscCommon.ST_LayoutShapeType.flowChartMagneticDrum; break; case "flowChartMagneticTape": nVal = AscCommon.ST_LayoutShapeType.flowChartMagneticTape; break; case "flowChartManualInput": nVal = AscCommon.ST_LayoutShapeType.flowChartManualInput; break; case "flowChartManualOperation": nVal = AscCommon.ST_LayoutShapeType.flowChartManualOperation; break; case "flowChartMerge": nVal = AscCommon.ST_LayoutShapeType.flowChartMerge; break; case "flowChartMultidocument": nVal = AscCommon.ST_LayoutShapeType.flowChartMultidocument; break; case "flowChartOfflineStorage": nVal = AscCommon.ST_LayoutShapeType.flowChartOfflineStorage; break; case "flowChartOffpageConnector": nVal = AscCommon.ST_LayoutShapeType.flowChartOffpageConnector; break; case "flowChartOnlineStorage": nVal = AscCommon.ST_LayoutShapeType.flowChartOnlineStorage; break; case "flowChartOr": nVal = AscCommon.ST_LayoutShapeType.flowChartOr; break; case "flowChartPredefinedProcess": nVal = AscCommon.ST_LayoutShapeType.flowChartPredefinedProcess; break; case "flowChartPreparation": nVal = AscCommon.ST_LayoutShapeType.flowChartPreparation; break; case "flowChartProcess": nVal = AscCommon.ST_LayoutShapeType.flowChartProcess; break; case "flowChartPunchedCard": nVal = AscCommon.ST_LayoutShapeType.flowChartPunchedCard; break; case "flowChartPunchedTape": nVal = AscCommon.ST_LayoutShapeType.flowChartPunchedTape; break; case "flowChartSort": nVal = AscCommon.ST_LayoutShapeType.flowChartSort; break; case "flowChartSummingJunction": nVal = AscCommon.ST_LayoutShapeType.flowChartSummingJunction; break; case "flowChartTerminator": nVal = AscCommon.ST_LayoutShapeType.flowChartTerminator; break; case "foldedCorner": nVal = AscCommon.ST_LayoutShapeType.foldedCorner; break; case "frame": nVal = AscCommon.ST_LayoutShapeType.frame; break; case "funnel": nVal = AscCommon.ST_LayoutShapeType.funnel; break; case "gear6": nVal = AscCommon.ST_LayoutShapeType.gear6; break; case "gear9": nVal = AscCommon.ST_LayoutShapeType.gear9; break; case "halfFrame": nVal = AscCommon.ST_LayoutShapeType.halfFrame; break; case "heart": nVal = AscCommon.ST_LayoutShapeType.heart; break; case "heptagon": nVal = AscCommon.ST_LayoutShapeType.heptagon; break; case "hexagon": nVal = AscCommon.ST_LayoutShapeType.hexagon; break; case "homePlate": nVal = AscCommon.ST_LayoutShapeType.homePlate; break; case "horizontalScroll": nVal = AscCommon.ST_LayoutShapeType.horizontalScroll; break; case "irregularSeal1": nVal = AscCommon.ST_LayoutShapeType.irregularSeal1; break; case "irregularSeal2": nVal = AscCommon.ST_LayoutShapeType.irregularSeal2; break; case "leftArrow": nVal = AscCommon.ST_LayoutShapeType.leftArrow; break; case "leftArrowCallout": nVal = AscCommon.ST_LayoutShapeType.leftArrowCallout; break; case "leftBrace": nVal = AscCommon.ST_LayoutShapeType.leftBrace; break; case "leftBracket": nVal = AscCommon.ST_LayoutShapeType.leftBracket; break; case "leftCircularArrow": nVal = AscCommon.ST_LayoutShapeType.leftCircularArrow; break; case "leftRightArrow": nVal = AscCommon.ST_LayoutShapeType.leftRightArrow; break; case "leftRightArrowCallout": nVal = AscCommon.ST_LayoutShapeType.leftRightArrowCallout; break; case "leftRightCircularArrow": nVal = AscCommon.ST_LayoutShapeType.leftRightCircularArrow; break; case "leftRightRibbon": nVal = AscCommon.ST_LayoutShapeType.leftRightRibbon; break; case "leftRightUpArrow": nVal = AscCommon.ST_LayoutShapeType.leftRightUpArrow; break; case "leftUpArrow": nVal = AscCommon.ST_LayoutShapeType.leftUpArrow; break; case "lightningBolt": nVal = AscCommon.ST_LayoutShapeType.lightningBolt; break; case "line": nVal = AscCommon.ST_LayoutShapeType.line; break; case "lineInv": nVal = AscCommon.ST_LayoutShapeType.lineInv; break; case "mathDivide": nVal = AscCommon.ST_LayoutShapeType.mathDivide; break; case "mathEqual": nVal = AscCommon.ST_LayoutShapeType.mathEqual; break; case "mathMinus": nVal = AscCommon.ST_LayoutShapeType.mathMinus; break; case "mathMultiply": nVal = AscCommon.ST_LayoutShapeType.mathMultiply; break; case "mathNotEqual": nVal = AscCommon.ST_LayoutShapeType.mathNotEqual; break; case "mathPlus": nVal = AscCommon.ST_LayoutShapeType.mathPlus; break; case "moon": nVal = AscCommon.ST_LayoutShapeType.moon; break; case "nonIsoscelesTrapezoid": nVal = AscCommon.ST_LayoutShapeType.nonIsoscelesTrapezoid; break; case "noSmoking": nVal = AscCommon.ST_LayoutShapeType.noSmoking; break; case "notchedRightArrow": nVal = AscCommon.ST_LayoutShapeType.notchedRightArrow; break; case "octagon": nVal = AscCommon.ST_LayoutShapeType.octagon; break; case "parallelogram": nVal = AscCommon.ST_LayoutShapeType.parallelogram; break; case "pentagon": nVal = AscCommon.ST_LayoutShapeType.pentagon; break; case "pie": nVal = AscCommon.ST_LayoutShapeType.pie; break; case "pieWedge": nVal = AscCommon.ST_LayoutShapeType.pieWedge; break; case "plaque": nVal = AscCommon.ST_LayoutShapeType.plaque; break; case "plaqueTabs": nVal = AscCommon.ST_LayoutShapeType.plaqueTabs; break; case "plus": nVal = AscCommon.ST_LayoutShapeType.plus; break; case "quadArrow": nVal = AscCommon.ST_LayoutShapeType.quadArrow; break; case "quadArrowCallout": nVal = AscCommon.ST_LayoutShapeType.quadArrowCallout; break; case "rect": nVal = AscCommon.ST_LayoutShapeType.rect; break; case "ribbon": nVal = AscCommon.ST_LayoutShapeType.ribbon; break; case "ribbon2": nVal = AscCommon.ST_LayoutShapeType.ribbon2; break; case "rightArrow": nVal = AscCommon.ST_LayoutShapeType.rightArrow; break; case "rightArrowCallout": nVal = AscCommon.ST_LayoutShapeType.rightArrowCallout; break; case "rightBrace": nVal = AscCommon.ST_LayoutShapeType.rightBrace; break; case "rightBracket": nVal = AscCommon.ST_LayoutShapeType.rightBracket; break; case "round1Rect": nVal = AscCommon.ST_LayoutShapeType.round1Rect; break; case "round2DiagRect": nVal = AscCommon.ST_LayoutShapeType.round2DiagRect; break; case "round2SameRect": nVal = AscCommon.ST_LayoutShapeType.round2SameRect; break; case "roundRect": nVal = AscCommon.ST_LayoutShapeType.roundRect; break; case "rtTriangle": nVal = AscCommon.ST_LayoutShapeType.rtTriangle; break; case "smileyFace": nVal = AscCommon.ST_LayoutShapeType.smileyFace; break; case "snip1Rect": nVal = AscCommon.ST_LayoutShapeType.snip1Rect; break; case "snip2DiagRect": nVal = AscCommon.ST_LayoutShapeType.snip2DiagRect; break; case "snip2SameRect": nVal = AscCommon.ST_LayoutShapeType.snip2SameRect; break; case "snipRoundRect": nVal = AscCommon.ST_LayoutShapeType.snipRoundRect; break; case "squareTabs": nVal = AscCommon.ST_LayoutShapeType.squareTabs; break; case "star10": nVal = AscCommon.ST_LayoutShapeType.star10; break; case "star12": nVal = AscCommon.ST_LayoutShapeType.star12; break; case "star16": nVal = AscCommon.ST_LayoutShapeType.star16; break; case "star24": nVal = AscCommon.ST_LayoutShapeType.star24; break; case "star32": nVal = AscCommon.ST_LayoutShapeType.star32; break; case "star4": nVal = AscCommon.ST_LayoutShapeType.star4; break; case "star5": nVal = AscCommon.ST_LayoutShapeType.star5; break; case "star6": nVal = AscCommon.ST_LayoutShapeType.star6; break; case "star7": nVal = AscCommon.ST_LayoutShapeType.star7; break; case "star8": nVal = AscCommon.ST_LayoutShapeType.star8; break; case "straightConnector1": nVal = AscCommon.ST_LayoutShapeType.straightConnector1; break; case "stripedRightArrow": nVal = AscCommon.ST_LayoutShapeType.stripedRightArrow; break; case "sun": nVal = AscCommon.ST_LayoutShapeType.sun; break; case "swooshArrow": nVal = AscCommon.ST_LayoutShapeType.swooshArrow; break; case "teardrop": nVal = AscCommon.ST_LayoutShapeType.teardrop; break; case "trapezoid": nVal = AscCommon.ST_LayoutShapeType.trapezoid; break; case "triangle": nVal = AscCommon.ST_LayoutShapeType.triangle; break; case "upArrow": nVal = AscCommon.ST_LayoutShapeType.upArrow; break; case "upArrowCallout": nVal = AscCommon.ST_LayoutShapeType.upArrowCallout; break; case "upDownArrow": nVal = AscCommon.ST_LayoutShapeType.upDownArrow; break; case "upDownArrowCallout": nVal = AscCommon.ST_LayoutShapeType.upDownArrowCallout; break; case "uturnArrow": nVal = AscCommon.ST_LayoutShapeType.uturnArrow; break; case "verticalScroll": nVal = AscCommon.ST_LayoutShapeType.verticalScroll; break; case "wave": nVal = AscCommon.ST_LayoutShapeType.wave; break; case "wedgeEllipseCallout": nVal = AscCommon.ST_LayoutShapeType.wedgeEllipseCallout; break; case "wedgeRectCallout": nVal = AscCommon.ST_LayoutShapeType.wedgeRectCallout; break; case "wedgeRoundRectCallout": nVal = AscCommon.ST_LayoutShapeType.wedgeRoundRectCallout; break; } return nVal; } function To_XML_ST_ParameterId(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_ParameterId.alignTx: sVal = "alignTx"; break; case AscCommon.ST_ParameterId.ar: sVal = "ar"; break; case AscCommon.ST_ParameterId.autoTxRot: sVal = "autoTxRot"; break; case AscCommon.ST_ParameterId.begPts: sVal = "begPts"; break; case AscCommon.ST_ParameterId.begSty: sVal = "begSty"; break; case AscCommon.ST_ParameterId.bendPt: sVal = "bendPt"; break; case AscCommon.ST_ParameterId.bkpt: sVal = "bkpt"; break; case AscCommon.ST_ParameterId.bkPtFixedVal: sVal = "bkPtFixedVal"; break; case AscCommon.ST_ParameterId.chAlign: sVal = "chAlign"; break; case AscCommon.ST_ParameterId.chDir: sVal = "chDir"; break; case AscCommon.ST_ParameterId.connRout: sVal = "connRout"; break; case AscCommon.ST_ParameterId.contDir: sVal = "contDir"; break; case AscCommon.ST_ParameterId.ctrShpMap: sVal = "ctrShpMap"; break; case AscCommon.ST_ParameterId.dim: sVal = "dim"; break; case AscCommon.ST_ParameterId.dstNode: sVal = "dstNode"; break; case AscCommon.ST_ParameterId.endPts: sVal = "endPts"; break; case AscCommon.ST_ParameterId.endSty: sVal = "endSty"; break; case AscCommon.ST_ParameterId.fallback: sVal = "fallback"; break; case AscCommon.ST_ParameterId.flowDir: sVal = "flowDir"; break; case AscCommon.ST_ParameterId.grDir: sVal = "grDir"; break; case AscCommon.ST_ParameterId.hierAlign: sVal = "hierAlign"; break; case AscCommon.ST_ParameterId.horzAlign: sVal = "horzAlign"; break; case AscCommon.ST_ParameterId.linDir: sVal = "linDir"; break; case AscCommon.ST_ParameterId.lnSpAfChP: sVal = "lnSpAfChP"; break; case AscCommon.ST_ParameterId.lnSpAfParP: sVal = "lnSpAfParP"; break; case AscCommon.ST_ParameterId.lnSpCh: sVal = "lnSpCh"; break; case AscCommon.ST_ParameterId.lnSpPar: sVal = "lnSpPar"; break; case AscCommon.ST_ParameterId.nodeHorzAlign: sVal = "nodeHorzAlign"; break; case AscCommon.ST_ParameterId.nodeVertAlign: sVal = "nodeVertAlign"; break; case AscCommon.ST_ParameterId.off: sVal = "off"; break; case AscCommon.ST_ParameterId.parTxLTRAlign: sVal = "parTxLTRAlign"; break; case AscCommon.ST_ParameterId.parTxRTLAlign: sVal = "parTxRTLAlign"; break; case AscCommon.ST_ParameterId.pyraAcctBkgdNode: sVal = "pyraAcctBkgdNode"; break; case AscCommon.ST_ParameterId.pyraAcctPos: sVal = "pyraAcctPos"; break; case AscCommon.ST_ParameterId.pyraAcctTxMar: sVal = "pyraAcctTxMar"; break; case AscCommon.ST_ParameterId.pyraAcctTxNode: sVal = "pyraAcctTxNode"; break; case AscCommon.ST_ParameterId.pyraLvlNode: sVal = "pyraLvlNode"; break; case AscCommon.ST_ParameterId.rotPath: sVal = "rotPath"; break; case AscCommon.ST_ParameterId.rtShortDist: sVal = "rtShortDist"; break; case AscCommon.ST_ParameterId.secChAlign: sVal = "secChAlign"; break; case AscCommon.ST_ParameterId.secLinDir: sVal = "secLinDir"; break; case AscCommon.ST_ParameterId.shpTxLTRAlignCh: sVal = "shpTxLTRAlignCh"; break; case AscCommon.ST_ParameterId.shpTxRTLAlignCh: sVal = "shpTxRTLAlignCh"; break; case AscCommon.ST_ParameterId.spanAng: sVal = "spanAng"; break; case AscCommon.ST_ParameterId.srcNode: sVal = "srcNode"; break; case AscCommon.ST_ParameterId.stAng: sVal = "stAng"; break; case AscCommon.ST_ParameterId.stBulletLvl: sVal = "stBulletLvl"; break; case AscCommon.ST_ParameterId.stElem: sVal = "stElem"; break; case AscCommon.ST_ParameterId.txAnchorHorz: sVal = "txAnchorHorz"; break; case AscCommon.ST_ParameterId.txAnchorHorzCh: sVal = "txAnchorHorzCh"; break; case AscCommon.ST_ParameterId.txAnchorVert: sVal = "txAnchorVert"; break; case AscCommon.ST_ParameterId.txAnchorVertCh: sVal = "txAnchorVertCh"; break; case AscCommon.ST_ParameterId.txBlDir: sVal = "txBlDir"; break; case AscCommon.ST_ParameterId.txDir: sVal = "txDir"; break; case AscCommon.ST_ParameterId.vertAlign: sVal = "vertAlign"; break; } return sVal; } function From_XML_ST_ParameterId(sVal) { var nVal = undefined; switch(sVal) { case "alignTx": nVal = AscCommon.ST_ParameterId.alignTx; break; case "ar": nVal = AscCommon.ST_ParameterId.ar; break; case "autoTxRot": nVal = AscCommon.ST_ParameterId.autoTxRot; break; case "begPts": nVal = AscCommon.ST_ParameterId.begPts; break; case "begSty": nVal = AscCommon.ST_ParameterId.begSty; break; case "bendPt": nVal = AscCommon.ST_ParameterId.bendPt; break; case "bkpt": nVal = AscCommon.ST_ParameterId.bkpt; break; case "bkPtFixedVal": nVal = AscCommon.ST_ParameterId.bkPtFixedVal; break; case "chAlign": nVal = AscCommon.ST_ParameterId.chAlign; break; case "chDir": nVal = AscCommon.ST_ParameterId.chDir; break; case "connRout": nVal = AscCommon.ST_ParameterId.connRout; break; case "contDir": nVal = AscCommon.ST_ParameterId.contDir; break; case "ctrShpMap": nVal = AscCommon.ST_ParameterId.ctrShpMap; break; case "dim": nVal = AscCommon.ST_ParameterId.dim; break; case "dstNode": nVal = AscCommon.ST_ParameterId.dstNode; break; case "endPts": nVal = AscCommon.ST_ParameterId.endPts; break; case "endSty": nVal = AscCommon.ST_ParameterId.endSty; break; case "fallback": nVal = AscCommon.ST_ParameterId.fallback; break; case "flowDir": nVal = AscCommon.ST_ParameterId.flowDir; break; case "grDir": nVal = AscCommon.ST_ParameterId.grDir; break; case "hierAlign": nVal = AscCommon.ST_ParameterId.hierAlign; break; case "horzAlign": nVal = AscCommon.ST_ParameterId.horzAlign; break; case "linDir": nVal = AscCommon.ST_ParameterId.linDir; break; case "lnSpAfChP": nVal = AscCommon.ST_ParameterId.lnSpAfChP; break; case "lnSpAfParP": nVal = AscCommon.ST_ParameterId.lnSpAfParP; break; case "lnSpCh": nVal = AscCommon.ST_ParameterId.lnSpCh; break; case "lnSpPar": nVal = AscCommon.ST_ParameterId.lnSpPar; break; case "nodeHorzAlign": nVal = AscCommon.ST_ParameterId.nodeHorzAlign; break; case "nodeVertAlign": nVal = AscCommon.ST_ParameterId.nodeVertAlign; break; case "off": nVal = AscCommon.ST_ParameterId.off; break; case "parTxLTRAlign": nVal = AscCommon.ST_ParameterId.parTxLTRAlign; break; case "parTxRTLAlign": nVal = AscCommon.ST_ParameterId.parTxRTLAlign; break; case "pyraAcctBkgdNode": nVal = AscCommon.ST_ParameterId.pyraAcctBkgdNode; break; case "pyraAcctPos": nVal = AscCommon.ST_ParameterId.pyraAcctPos; break; case "pyraAcctTxMar": nVal = AscCommon.ST_ParameterId.pyraAcctTxMar; break; case "pyraAcctTxNode": nVal = AscCommon.ST_ParameterId.pyraAcctTxNode; break; case "pyraLvlNode": nVal = AscCommon.ST_ParameterId.pyraLvlNode; break; case "rotPath": nVal = AscCommon.ST_ParameterId.rotPath; break; case "rtShortDist": nVal = AscCommon.ST_ParameterId.rtShortDist; break; case "secChAlign": nVal = AscCommon.ST_ParameterId.secChAlign; break; case "secLinDir": nVal = AscCommon.ST_ParameterId.secLinDir; break; case "shpTxLTRAlignCh": nVal = AscCommon.ST_ParameterId.shpTxLTRAlignCh; break; case "shpTxRTLAlignCh": nVal = AscCommon.ST_ParameterId.shpTxRTLAlignCh; break; case "spanAng": nVal = AscCommon.ST_ParameterId.spanAng; break; case "srcNode": nVal = AscCommon.ST_ParameterId.srcNode; break; case "stAng": nVal = AscCommon.ST_ParameterId.stAng; break; case "stBulletLvl": nVal = AscCommon.ST_ParameterId.stBulletLvl; break; case "stElem": nVal = AscCommon.ST_ParameterId.stElem; break; case "txAnchorHorz": nVal = AscCommon.ST_ParameterId.txAnchorHorz; break; case "txAnchorHorzCh": nVal = AscCommon.ST_ParameterId.txAnchorHorzCh; break; case "txAnchorVert": nVal = AscCommon.ST_ParameterId.txAnchorVert; break; case "txAnchorVertCh": nVal = AscCommon.ST_ParameterId.txAnchorVertCh; break; case "txBlDir": nVal = AscCommon.ST_ParameterId.txBlDir; break; case "txDir": nVal = AscCommon.ST_ParameterId.txDir; break; case "vertAlign": nVal = AscCommon.ST_ParameterId.vertAlign; break; } return nVal; } function To_XML_ST_PresetCameraType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_PresetCameraType.isometricBottomDown: sVal = "isometricBottomDown"; break; case AscCommon.ST_PresetCameraType.isometricBottomUp: sVal = "isometricBottomUp"; break; case AscCommon.ST_PresetCameraType.isometricLeftDown: sVal = "isometricLeftDown"; break; case AscCommon.ST_PresetCameraType.isometricLeftUp: sVal = "isometricLeftUp"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis1Left: sVal = "isometricOffAxis1Left"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis1Right: sVal = "isometricOffAxis1Right"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis1Top: sVal = "isometricOffAxis1Top"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis2Left: sVal = "isometricOffAxis2Left"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis2Right: sVal = "isometricOffAxis2Right"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis2Top: sVal = "isometricOffAxis2Top"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis3Bottom: sVal = "isometricOffAxis3Bottom"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis3Left: sVal = "isometricOffAxis3Left"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis3Right: sVal = "isometricOffAxis3Right"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis4Bottom: sVal = "isometricOffAxis4Bottom"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis4Left: sVal = "isometricOffAxis4Left"; break; case AscCommon.ST_PresetCameraType.isometricOffAxis4Right: sVal = "isometricOffAxis4Right"; break; case AscCommon.ST_PresetCameraType.isometricRightDown: sVal = "isometricRightDown"; break; case AscCommon.ST_PresetCameraType.isometricRightUp: sVal = "isometricRightUp"; break; case AscCommon.ST_PresetCameraType.isometricTopDown: sVal = "isometricTopDown"; break; case AscCommon.ST_PresetCameraType.isometricTopUp: sVal = "isometricTopUp"; break; case AscCommon.ST_PresetCameraType.legacyObliqueBottom: sVal = "legacyObliqueBottom"; break; case AscCommon.ST_PresetCameraType.legacyObliqueBottomLeft: sVal = "legacyObliqueBottomLeft"; break; case AscCommon.ST_PresetCameraType.legacyObliqueBottomRight: sVal = "legacyObliqueBottomRight"; break; case AscCommon.ST_PresetCameraType.legacyObliqueFront: sVal = "legacyObliqueFront"; break; case AscCommon.ST_PresetCameraType.legacyObliqueLeft: sVal = "legacyObliqueLeft"; break; case AscCommon.ST_PresetCameraType.legacyObliqueRight: sVal = "legacyObliqueRight"; break; case AscCommon.ST_PresetCameraType.legacyObliqueTop: sVal = "legacyObliqueTop"; break; case AscCommon.ST_PresetCameraType.legacyObliqueTopLeft: sVal = "legacyObliqueTopLeft"; break; case AscCommon.ST_PresetCameraType.legacyObliqueTopRight: sVal = "legacyObliqueTopRight"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveBottom: sVal = "legacyPerspectiveBottom"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveBottomLeft: sVal = "legacyPerspectiveBottomLeft"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveBottomRight: sVal = "legacyPerspectiveBottomRight"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveFront: sVal = "legacyPerspectiveFront"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveLeft: sVal = "legacyPerspectiveLeft"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveRight: sVal = "legacyPerspectiveRight"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveTop: sVal = "legacyPerspectiveTop"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveTopLeft: sVal = "legacyPerspectiveTopLeft"; break; case AscCommon.ST_PresetCameraType.legacyPerspectiveTopRight: sVal = "legacyPerspectiveTopRight"; break; case AscCommon.ST_PresetCameraType.obliqueBottom: sVal = "obliqueBottom"; break; case AscCommon.ST_PresetCameraType.obliqueBottomLeft: sVal = "obliqueBottomLeft"; break; case AscCommon.ST_PresetCameraType.obliqueBottomRight: sVal = "obliqueBottomRight"; break; case AscCommon.ST_PresetCameraType.obliqueLeft: sVal = "obliqueLeft"; break; case AscCommon.ST_PresetCameraType.obliqueRight: sVal = "obliqueRight"; break; case AscCommon.ST_PresetCameraType.obliqueTop: sVal = "obliqueTop"; break; case AscCommon.ST_PresetCameraType.obliqueTopLeft: sVal = "obliqueTopLeft"; break; case AscCommon.ST_PresetCameraType.obliqueTopRight: sVal = "obliqueTopRight"; break; case AscCommon.ST_PresetCameraType.orthographicFront: sVal = "orthographicFront"; break; case AscCommon.ST_PresetCameraType.perspectiveAbove: sVal = "perspectiveAbove"; break; case AscCommon.ST_PresetCameraType.perspectiveAboveLeftFacing: sVal = "perspectiveAboveLeftFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveAboveRightFacing: sVal = "perspectiveAboveRightFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveBelow: sVal = "perspectiveBelow"; break; case AscCommon.ST_PresetCameraType.perspectiveContrastingLeftFacing: sVal = "perspectiveContrastingLeftFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveContrastingRightFacing: sVal = "perspectiveContrastingRightFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveFront: sVal = "perspectiveFront"; break; case AscCommon.ST_PresetCameraType.perspectiveHeroicExtremeLeftFacing: sVal = "perspectiveHeroicExtremeLeftFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveHeroicExtremeRightFacing: sVal = "perspectiveHeroicExtremeRightFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveHeroicLeftFacing: sVal = "perspectiveHeroicLeftFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveHeroicRightFacing: sVal = "perspectiveHeroicRightFacing"; break; case AscCommon.ST_PresetCameraType.perspectiveLeft: sVal = "perspectiveLeft"; break; case AscCommon.ST_PresetCameraType.perspectiveRelaxed: sVal = "perspectiveRelaxed"; break; case AscCommon.ST_PresetCameraType.perspectiveRelaxedModerately: sVal = "perspectiveRelaxedModerately"; break; case AscCommon.ST_PresetCameraType.perspectiveRight: sVal = "perspectiveRight"; break; } return sVal; } function From_XML_ST_PresetCameraType(sVal) { var nVal = undefined; switch(sVal) { case "isometricBottomDown": nVal = AscCommon.ST_PresetCameraType.isometricBottomDown; break; case "isometricBottomUp": nVal = AscCommon.ST_PresetCameraType.isometricBottomUp; break; case "isometricLeftDown": nVal = AscCommon.ST_PresetCameraType.isometricLeftDown; break; case "isometricLeftUp": nVal = AscCommon.ST_PresetCameraType.isometricLeftUp; break; case "isometricOffAxis1Left": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis1Left; break; case "isometricOffAxis1Right": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis1Right; break; case "isometricOffAxis1Top": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis1Top; break; case "isometricOffAxis2Left": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis2Left; break; case "isometricOffAxis2Right": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis2Right; break; case "isometricOffAxis2Top": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis2Top; break; case "isometricOffAxis3Bottom": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis3Bottom; break; case "isometricOffAxis3Left": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis3Left; break; case "isometricOffAxis3Right": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis3Right; break; case "isometricOffAxis4Bottom": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis4Bottom; break; case "isometricOffAxis4Left": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis4Left; break; case "isometricOffAxis4Right": nVal = AscCommon.ST_PresetCameraType.isometricOffAxis4Right; break; case "isometricRightDown": nVal = AscCommon.ST_PresetCameraType.isometricRightDown; break; case "isometricRightUp": nVal = AscCommon.ST_PresetCameraType.isometricRightUp; break; case "isometricTopDown": nVal = AscCommon.ST_PresetCameraType.isometricTopDown; break; case "isometricTopUp": nVal = AscCommon.ST_PresetCameraType.isometricTopUp; break; case "legacyObliqueBottom": nVal = AscCommon.ST_PresetCameraType.legacyObliqueBottom; break; case "legacyObliqueBottomLeft": nVal = AscCommon.ST_PresetCameraType.legacyObliqueBottomLeft; break; case "legacyObliqueBottomRight": nVal = AscCommon.ST_PresetCameraType.legacyObliqueBottomRight; break; case "legacyObliqueFront": nVal = AscCommon.ST_PresetCameraType.legacyObliqueFront; break; case "legacyObliqueLeft": nVal = AscCommon.ST_PresetCameraType.legacyObliqueLeft; break; case "legacyObliqueRight": nVal = AscCommon.ST_PresetCameraType.legacyObliqueRight; break; case "legacyObliqueTop": nVal = AscCommon.ST_PresetCameraType.legacyObliqueTop; break; case "legacyObliqueTopLeft": nVal = AscCommon.ST_PresetCameraType.legacyObliqueTopLeft; break; case "legacyObliqueTopRight": nVal = AscCommon.ST_PresetCameraType.legacyObliqueTopRight; break; case "legacyPerspectiveBottom": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveBottom; break; case "legacyPerspectiveBottomLeft": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveBottomLeft; break; case "legacyPerspectiveBottomRight": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveBottomRight; break; case "legacyPerspectiveFront": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveFront; break; case "legacyPerspectiveLeft": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveLeft; break; case "legacyPerspectiveRight": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveRight; break; case "legacyPerspectiveTop": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveTop; break; case "legacyPerspectiveTopLeft": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveTopLeft; break; case "legacyPerspectiveTopRight": nVal = AscCommon.ST_PresetCameraType.legacyPerspectiveTopRight; break; case "obliqueBottom": nVal = AscCommon.ST_PresetCameraType.obliqueBottom; break; case "obliqueBottomLeft": nVal = AscCommon.ST_PresetCameraType.obliqueBottomLeft; break; case "obliqueBottomRight": nVal = AscCommon.ST_PresetCameraType.obliqueBottomRight; break; case "obliqueLeft": nVal = AscCommon.ST_PresetCameraType.obliqueLeft; break; case "obliqueRight": nVal = AscCommon.ST_PresetCameraType.obliqueRight; break; case "obliqueTop": nVal = AscCommon.ST_PresetCameraType.obliqueTop; break; case "obliqueTopLeft": nVal = AscCommon.ST_PresetCameraType.obliqueTopLeft; break; case "obliqueTopRight": nVal = AscCommon.ST_PresetCameraType.obliqueTopRight; break; case "orthographicFront": nVal = AscCommon.ST_PresetCameraType.orthographicFront; break; case "perspectiveAbove": nVal = AscCommon.ST_PresetCameraType.perspectiveAbove; break; case "perspectiveAboveLeftFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveAboveLeftFacing; break; case "perspectiveAboveRightFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveAboveRightFacing; break; case "perspectiveBelow": nVal = AscCommon.ST_PresetCameraType.perspectiveBelow; break; case "perspectiveContrastingLeftFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveContrastingLeftFacing; break; case "perspectiveContrastingRightFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveContrastingRightFacing; break; case "perspectiveFront": nVal = AscCommon.ST_PresetCameraType.perspectiveFront; break; case "perspectiveHeroicExtremeLeftFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveHeroicExtremeLeftFacing; break; case "perspectiveHeroicExtremeRightFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveHeroicExtremeRightFacing; break; case "perspectiveHeroicLeftFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveHeroicLeftFacing; break; case "perspectiveHeroicRightFacing": nVal = AscCommon.ST_PresetCameraType.perspectiveHeroicRightFacing; break; case "perspectiveLeft": nVal = AscCommon.ST_PresetCameraType.perspectiveLeft; break; case "perspectiveRelaxed": nVal = AscCommon.ST_PresetCameraType.perspectiveRelaxed; break; case "perspectiveRelaxedModerately": nVal = AscCommon.ST_PresetCameraType.perspectiveRelaxedModerately; break; case "perspectiveRight": nVal = AscCommon.ST_PresetCameraType.perspectiveRight; break; } return nVal; } function To_XML_ST_LightRigDirection(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_LightRigDirection.b: sVal = "b"; break; case AscCommon.ST_LightRigDirection.bl: sVal = "bl"; break; case AscCommon.ST_LightRigDirection.br: sVal = "br"; break; case AscCommon.ST_LightRigDirection.l: sVal = "l"; break; case AscCommon.ST_LightRigDirection.r: sVal = "r"; break; case AscCommon.ST_LightRigDirection.t: sVal = "t"; break; case AscCommon.ST_LightRigDirection.tl: sVal = "tl"; break; case AscCommon.ST_LightRigDirection.tr: sVal = "tr"; break; } return sVal; } function From_XML_ST_LightRigDirection(sVal) { var nVal = undefined; switch(sVal) { case "b": nVal = AscCommon.ST_LightRigDirection.b; break; case "bl": nVal = AscCommon.ST_LightRigDirection.bl; break; case "br": nVal = AscCommon.ST_LightRigDirection.br; break; case "l": nVal = AscCommon.ST_LightRigDirection.l; break; case "r": nVal = AscCommon.ST_LightRigDirection.r; break; case "t": nVal = AscCommon.ST_LightRigDirection.t; break; case "tl": nVal = AscCommon.ST_LightRigDirection.tl; break; case "tr": nVal = AscCommon.ST_LightRigDirection.tr; break; } return nVal; } function To_XML_ST_LightRigType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_LightRigType.balanced: sVal = "balanced"; break; case AscCommon.ST_LightRigType.brightRoom: sVal = "brightRoom"; break; case AscCommon.ST_LightRigType.chilly: sVal = "chilly"; break; case AscCommon.ST_LightRigType.contrasting: sVal = "contrasting"; break; case AscCommon.ST_LightRigType.flat: sVal = "flat"; break; case AscCommon.ST_LightRigType.flood: sVal = "flood"; break; case AscCommon.ST_LightRigType.freezing: sVal = "freezing"; break; case AscCommon.ST_LightRigType.glow: sVal = "glow"; break; case AscCommon.ST_LightRigType.harsh: sVal = "harsh"; break; case AscCommon.ST_LightRigType.legacyFlat1: sVal = "legacyFlat1"; break; case AscCommon.ST_LightRigType.legacyFlat2: sVal = "legacyFlat2"; break; case AscCommon.ST_LightRigType.legacyFlat3: sVal = "legacyFlat3"; break; case AscCommon.ST_LightRigType.legacyFlat4: sVal = "legacyFlat4"; break; case AscCommon.ST_LightRigType.legacyHarsh1: sVal = "legacyHarsh1"; break; case AscCommon.ST_LightRigType.legacyHarsh2: sVal = "legacyHarsh2"; break; case AscCommon.ST_LightRigType.legacyHarsh3: sVal = "legacyHarsh3"; break; case AscCommon.ST_LightRigType.legacyHarsh4: sVal = "legacyHarsh4"; break; case AscCommon.ST_LightRigType.legacyNormal1: sVal = "legacyNormal1"; break; case AscCommon.ST_LightRigType.legacyNormal2: sVal = "legacyNormal2"; break; case AscCommon.ST_LightRigType.legacyNormal3: sVal = "legacyNormal3"; break; case AscCommon.ST_LightRigType.legacyNormal4: sVal = "legacyNormal4"; break; case AscCommon.ST_LightRigType.morning: sVal = "morning"; break; case AscCommon.ST_LightRigType.soft: sVal = "soft"; break; case AscCommon.ST_LightRigType.sunrise: sVal = "sunrise"; break; case AscCommon.ST_LightRigType.sunset: sVal = "sunset"; break; case AscCommon.ST_LightRigType.threePt: sVal = "threePt"; break; case AscCommon.ST_LightRigType.twoPt: sVal = "twoPt"; break; } return sVal; } function From_XML_ST_LightRigType(sVal) { var nVal = undefined; switch(sVal) { case "balanced": nVal = AscCommon.ST_LightRigType.balanced; break; case "brightRoom": nVal = AscCommon.ST_LightRigType.brightRoom; break; case "chilly": nVal = AscCommon.ST_LightRigType.chilly; break; case "contrasting": nVal = AscCommon.ST_LightRigType.contrasting; break; case "flat": nVal = AscCommon.ST_LightRigType.flat; break; case "flood": nVal = AscCommon.ST_LightRigType.flood; break; case "freezing": nVal = AscCommon.ST_LightRigType.freezing; break; case "glow": nVal = AscCommon.ST_LightRigType.glow; break; case "harsh": nVal = AscCommon.ST_LightRigType.harsh; break; case "legacyFlat1": nVal = AscCommon.ST_LightRigType.legacyFlat1; break; case "legacyFlat2": nVal = AscCommon.ST_LightRigType.legacyFlat2; break; case "legacyFlat3": nVal = AscCommon.ST_LightRigType.legacyFlat3; break; case "legacyFlat4": nVal = AscCommon.ST_LightRigType.legacyFlat4; break; case "legacyHarsh1": nVal = AscCommon.ST_LightRigType.legacyHarsh1; break; case "legacyHarsh2": nVal = AscCommon.ST_LightRigType.legacyHarsh2; break; case "legacyHarsh3": nVal = AscCommon.ST_LightRigType.legacyHarsh3; break; case "legacyHarsh4": nVal = AscCommon.ST_LightRigType.legacyHarsh4; break; case "legacyNormal1": nVal = AscCommon.ST_LightRigType.legacyNormal1; break; case "legacyNormal2": nVal = AscCommon.ST_LightRigType.legacyNormal2; break; case "legacyNormal3": nVal = AscCommon.ST_LightRigType.legacyNormal3; break; case "legacyNormal4": nVal = AscCommon.ST_LightRigType.legacyNormal4; break; case "morning": nVal = AscCommon.ST_LightRigType.morning; break; case "soft": nVal = AscCommon.ST_LightRigType.soft; break; case "sunrise": nVal = AscCommon.ST_LightRigType.sunrise; break; case "sunset": nVal = AscCommon.ST_LightRigType.sunset; break; case "threePt": nVal = AscCommon.ST_LightRigType.threePt; break; case "twoPt": nVal = AscCommon.ST_LightRigType.twoPt; break; } return nVal; } function To_XML_ST_BevelPresetType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_BevelPresetType.angle: sVal = "angle"; break; case AscCommon.ST_BevelPresetType.artDeco: sVal = "artDeco"; break; case AscCommon.ST_BevelPresetType.circle: sVal = "circle"; break; case AscCommon.ST_BevelPresetType.convex: sVal = "convex"; break; case AscCommon.ST_BevelPresetType.coolSlant: sVal = "coolSlant"; break; case AscCommon.ST_BevelPresetType.cross: sVal = "cross"; break; case AscCommon.ST_BevelPresetType.divot: sVal = "divot"; break; case AscCommon.ST_BevelPresetType.hardEdge: sVal = "hardEdge"; break; case AscCommon.ST_BevelPresetType.relaxedInset: sVal = "relaxedInset"; break; case AscCommon.ST_BevelPresetType.riblet: sVal = "riblet"; break; case AscCommon.ST_BevelPresetType.slope: sVal = "slope"; break; case AscCommon.ST_BevelPresetType.softRound: sVal = "softRound"; break; } return sVal; } function From_XML_ST_BevelPresetType(sVal) { var nVal = undefined; switch(sVal) { case "angle": nVal = AscCommon.ST_BevelPresetType.angle; break; case "artDeco": nVal = AscCommon.ST_BevelPresetType.artDeco; break; case "circle": nVal = AscCommon.ST_BevelPresetType.circle; break; case "convex": nVal = AscCommon.ST_BevelPresetType.convex; break; case "coolSlant": nVal = AscCommon.ST_BevelPresetType.coolSlant; break; case "cross": nVal = AscCommon.ST_BevelPresetType.cross; break; case "divot": nVal = AscCommon.ST_BevelPresetType.divot; break; case "hardEdge": nVal = AscCommon.ST_BevelPresetType.hardEdge; break; case "relaxedInset": nVal = AscCommon.ST_BevelPresetType.relaxedInset; break; case "riblet": nVal = AscCommon.ST_BevelPresetType.riblet; break; case "slope": nVal = AscCommon.ST_BevelPresetType.slope; break; case "softRound": nVal = AscCommon.ST_BevelPresetType.softRound; break; } return nVal; } function To_XML_ST_PresetMaterialType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_PresetMaterialType.clear: sVal = "clear"; break; case AscCommon.ST_PresetMaterialType.dkEdge: sVal = "dkEdge"; break; case AscCommon.ST_PresetMaterialType.flat: sVal = "flat"; break; case AscCommon.ST_PresetMaterialType.legacyMatte: sVal = "legacyMatte"; break; case AscCommon.ST_PresetMaterialType.legacyMetal: sVal = "legacyMetal"; break; case AscCommon.ST_PresetMaterialType.legacyPlastic: sVal = "legacyPlastic"; break; case AscCommon.ST_PresetMaterialType.legacyWireframe: sVal = "legacyWireframe"; break; case AscCommon.ST_PresetMaterialType.matte: sVal = "matte"; break; case AscCommon.ST_PresetMaterialType.metal: sVal = "metal"; break; case AscCommon.ST_PresetMaterialType.plastic: sVal = "plastic"; break; case AscCommon.ST_PresetMaterialType.powder: sVal = "powder"; break; case AscCommon.ST_PresetMaterialType.softEdge: sVal = "softEdge"; break; case AscCommon.ST_PresetMaterialType.softmetal: sVal = "softmetal"; break; case AscCommon.ST_PresetMaterialType.translucentPowder: sVal = "translucentPowder"; break; case AscCommon.ST_PresetMaterialType.warmMatte: sVal = "warmMatte"; break; } return sVal; } function From_XML_ST_PresetMaterialType(sVal) { var nVal = undefined; switch(sVal) { case "clear": nVal = AscCommon.ST_PresetMaterialType.clear; break; case "dkEdge": nVal = AscCommon.ST_PresetMaterialType.dkEdge; break; case "flat": nVal = AscCommon.ST_PresetMaterialType.flat; break; case "legacyMatte": nVal = AscCommon.ST_PresetMaterialType.legacyMatte; break; case "legacyMetal": nVal = AscCommon.ST_PresetMaterialType.legacyMetal; break; case "legacyPlastic": nVal = AscCommon.ST_PresetMaterialType.legacyPlastic; break; case "legacyWireframe": nVal = AscCommon.ST_PresetMaterialType.legacyWireframe; break; case "matte": nVal = AscCommon.ST_PresetMaterialType.matte; break; case "metal": nVal = AscCommon.ST_PresetMaterialType.metal; break; case "plastic": nVal = AscCommon.ST_PresetMaterialType.plastic; break; case "powder": nVal = AscCommon.ST_PresetMaterialType.powder; break; case "softEdge": nVal = AscCommon.ST_PresetMaterialType.softEdge; break; case "softmetal": nVal = AscCommon.ST_PresetMaterialType.softmetal; break; case "translucentPowder": nVal = AscCommon.ST_PresetMaterialType.translucentPowder; break; case "warmMatte": nVal = AscCommon.ST_PresetMaterialType.warmMatte; break; } return nVal; } function To_XML_ST_CxnType(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.ST_CxnType.parOf: sVal = "parOf"; break; case AscCommon.ST_CxnType.presOf: sVal = "presOf"; break; case AscCommon.ST_CxnType.presParOf: sVal = "presParOf"; break; case AscCommon.ST_CxnType.unknownRelationShip: sVal = "unknownRelationShip"; break; } return sVal; } function From_XML_ST_CxnType(sVal) { var nVal = undefined; switch(sVal) { case "parOf": nVal = AscCommon.ST_CxnType.parOf; break; case "presOf": nVal = AscCommon.ST_CxnType.presOf; break; case "presParOf": nVal = AscCommon.ST_CxnType.presParOf; break; case "unknownRelationShip": nVal = AscCommon.ST_CxnType.unknownRelationShip; break; } return nVal; } function To_XML_OleObj_Type(nVal) { var sVal = undefined; switch(nVal) { case AscCommon.c_oAscOleObjectTypes.document: sVal = "document"; break; case AscCommon.c_oAscOleObjectTypes.spreadsheet: sVal = "spreadsheet"; break; case AscCommon.c_oAscOleObjectTypes.formula: sVal = "formula"; break; } return sVal; } function From_XML_OleObj_Type(sVal) { var nVal = undefined; switch(sVal) { case "document": nVal = AscCommon.c_oAscOleObjectTypes.document; break; case "spreadsheet": nVal = AscCommon.c_oAscOleObjectTypes.spreadsheet; break; case "formula": nVal = AscCommon.c_oAscOleObjectTypes.formula; break; } return nVal; } function To_XML_ST_BlendMode(nVal) { var sBlendType = undefined; switch (nVal) { case Asc.c_oAscBlendModeType.Darken: sBlendType = "darken"; break; case Asc.c_oAscBlendModeType.Lighten: sBlendType = "lighten"; break; case Asc.c_oAscBlendModeType.Mult: sBlendType = "mult"; break; case Asc.c_oAscBlendModeType.Over: sBlendType = "over"; break; case Asc.c_oAscBlendModeType.Screen: sBlendType = "screen"; break; } return sBlendType; } function From_XML_ST_BlendMode(sVal) { var nBlendType = undefined; switch (sVal) { case "darken": nBlendType = Asc.c_oAscBlendModeType.Darken; break; case "lighten": nBlendType = Asc.c_oAscBlendModeType.Lighten; break; case "mult": nBlendType = Asc.c_oAscBlendModeType.Mult; break; case "over": nBlendType = Asc.c_oAscBlendModeType.Over; break; case "screen": nBlendType = Asc.c_oAscBlendModeType.Screen; break; } return nBlendType; } function To_XML_c_oAscNumberingFormat(nVal) { var sVal = undefined; switch(nVal) { case Asc.c_oAscNumberingFormat.Aiueo: sVal = "aiueo"; break; case Asc.c_oAscNumberingFormat.AiueoFullWidth: sVal = "aiueoFullWidth"; break; case Asc.c_oAscNumberingFormat.ArabicAbjad: sVal = "arabicAbjad"; break; case Asc.c_oAscNumberingFormat.ArabicAlpha: sVal = "arabicAlpha"; break; case Asc.c_oAscNumberingFormat.BahtText: sVal = "bahtText"; break; case Asc.c_oAscNumberingFormat.Bullet: sVal = "bullet"; break; case Asc.c_oAscNumberingFormat.CardinalText: sVal = "cardinalText"; break; case Asc.c_oAscNumberingFormat.Chicago: sVal = "chicago"; break; case Asc.c_oAscNumberingFormat.ChineseCounting: sVal = "chineseCounting"; break; case Asc.c_oAscNumberingFormat.ChineseCountingThousand: sVal = "chineseCountingThousand"; break; case Asc.c_oAscNumberingFormat.ChineseLegalSimplified: sVal = "chineseLegalSimplified"; break; case Asc.c_oAscNumberingFormat.Chosung: sVal = "chosung"; break; case Asc.c_oAscNumberingFormat.Custom: sVal = "custom"; break; case Asc.c_oAscNumberingFormat.Decimal: sVal = "decimal"; break; case Asc.c_oAscNumberingFormat.DecimalEnclosedCircle: sVal = "decimalEnclosedCircle"; break; case Asc.c_oAscNumberingFormat.DecimalEnclosedCircleChinese: sVal = "decimalEnclosedCircleChinese"; break; case Asc.c_oAscNumberingFormat.DecimalEnclosedFullstop: sVal = "decimalEnclosedFullstop"; break; case Asc.c_oAscNumberingFormat.DecimalEnclosedParen: sVal = "decimalEnclosedParen"; break; case Asc.c_oAscNumberingFormat.DecimalFullWidth: sVal = "decimalFullWidth"; break; case Asc.c_oAscNumberingFormat.DecimalFullWidth2: sVal = "decimalFullWidth2"; break; case Asc.c_oAscNumberingFormat.DecimalHalfWidth: sVal = "decimalHalfWidth"; break; case Asc.c_oAscNumberingFormat.DecimalZero: sVal = "decimalZero"; break; case Asc.c_oAscNumberingFormat.DollarText: sVal = "dollarText"; break; case Asc.c_oAscNumberingFormat.Ganada: sVal = "ganada"; break; case Asc.c_oAscNumberingFormat.Hebrew1: sVal = "hebrew1"; break; case Asc.c_oAscNumberingFormat.Hebrew2: sVal = "hebrew2"; break; case Asc.c_oAscNumberingFormat.Hex: sVal = "hex"; break; case Asc.c_oAscNumberingFormat.HindiConsonants: sVal = "hindiConsonants"; break; case Asc.c_oAscNumberingFormat.HindiCounting: sVal = "hindiCounting"; break; case Asc.c_oAscNumberingFormat.HindiNumbers: sVal = "hindiNumbers"; break; case Asc.c_oAscNumberingFormat.HindiVowels: sVal = "hindiVowels"; break; case Asc.c_oAscNumberingFormat.IdeographDigital: sVal = "ideographDigital"; break; case Asc.c_oAscNumberingFormat.IdeographEnclosedCircle: sVal = "ideographEnclosedCircle"; break; case Asc.c_oAscNumberingFormat.IdeographLegalTraditional: sVal = "ideographLegalTraditional"; break; case Asc.c_oAscNumberingFormat.IdeographTraditional: sVal = "ideographTraditional"; break; case Asc.c_oAscNumberingFormat.IdeographZodiac: sVal = "ideographZodiac"; break; case Asc.c_oAscNumberingFormat.IdeographZodiacTraditional: sVal = "ideographZodiacTraditional"; break; case Asc.c_oAscNumberingFormat.Iroha: sVal = "iroha"; break; case Asc.c_oAscNumberingFormat.IrohaFullWidth: sVal = "irohaFullWidth"; break; case Asc.c_oAscNumberingFormat.JapaneseCounting: sVal = "japaneseCounting"; break; case Asc.c_oAscNumberingFormat.JapaneseDigitalTenThousand: sVal = "japaneseDigitalTenThousand"; break; case Asc.c_oAscNumberingFormat.JapaneseLegal: sVal = "japaneseLegal"; break; case Asc.c_oAscNumberingFormat.KoreanCounting: sVal = "koreanCounting"; break; case Asc.c_oAscNumberingFormat.KoreanDigital: sVal = "koreanDigital"; break; case Asc.c_oAscNumberingFormat.KoreanDigital2: sVal = "koreanDigital2"; break; case Asc.c_oAscNumberingFormat.KoreanLegal: sVal = "koreanLegal"; break; case Asc.c_oAscNumberingFormat.LowerLetter: sVal = "lowerLetter"; break; case Asc.c_oAscNumberingFormat.LowerRoman: sVal = "lowerRoman"; break; case Asc.c_oAscNumberingFormat.None: sVal = "none"; break; case Asc.c_oAscNumberingFormat.NumberInDash: sVal = "numberInDash"; break; case Asc.c_oAscNumberingFormat.Ordinal: sVal = "ordinal"; break; case Asc.c_oAscNumberingFormat.OrdinalText: sVal = "ordinalText"; break; case Asc.c_oAscNumberingFormat.RussianLower: sVal = "russianLower"; break; case Asc.c_oAscNumberingFormat.RussianUpper: sVal = "russianUpper"; break; case Asc.c_oAscNumberingFormat.TaiwaneseCounting: sVal = "taiwaneseCounting"; break; case Asc.c_oAscNumberingFormat.TaiwaneseCountingThousand: sVal = "taiwaneseCountingThousand"; break; case Asc.c_oAscNumberingFormat.TaiwaneseDigital: sVal = "taiwaneseDigital"; break; case Asc.c_oAscNumberingFormat.ThaiCounting: sVal = "thaiCounting"; break; case Asc.c_oAscNumberingFormat.ThaiLetters: sVal = "thaiLetters"; break; case Asc.c_oAscNumberingFormat.ThaiNumbers: sVal = "thaiNumbers"; break; case Asc.c_oAscNumberingFormat.UpperLetter: sVal = "upperLetter"; break; case Asc.c_oAscNumberingFormat.UpperRoman: sVal = "upperRoman"; break; case Asc.c_oAscNumberingFormat.VietnameseCounting: sVal = "vietnameseCounting"; break; case Asc.c_oAscNumberingFormat.CustomGreece: sVal = "customGreece"; break; case Asc.c_oAscNumberingFormat.CustomUpperTurkish: sVal = "customUpperTurkish"; break; case Asc.c_oAscNumberingFormat.CustomLowerTurkish: sVal = "customLowerTurkish"; break; case Asc.c_oAscNumberingFormat.CustomDecimalFourZero: sVal = "customDecimalFourZero"; break; case Asc.c_oAscNumberingFormat.CustomDecimalThreeZero: sVal = "customDecimalThreeZero"; break; case Asc.c_oAscNumberingFormat.CustomDecimalTwoZero: sVal = "customDecimalTwoZero"; break; } return sVal; } function From_XML_c_oAscNumberingFormat(sVal) { var nVal = undefined; switch(sVal) { case "aiueo": nVal = Asc.c_oAscNumberingFormat.Aiueo; break; case "aiueoFullWidth": nVal = Asc.c_oAscNumberingFormat.AiueoFullWidth; break; case "arabicAbjad": nVal = Asc.c_oAscNumberingFormat.ArabicAbjad; break; case "arabicAlpha": nVal = Asc.c_oAscNumberingFormat.ArabicAlpha; break; case "bahtText": nVal = Asc.c_oAscNumberingFormat.BahtText; break; case "bullet": nVal = Asc.c_oAscNumberingFormat.Bullet; break; case "cardinalText": nVal = Asc.c_oAscNumberingFormat.CardinalText; break; case "chicago": nVal = Asc.c_oAscNumberingFormat.Chicago; break; case "chineseCounting": nVal = Asc.c_oAscNumberingFormat.ChineseCounting; break; case "chineseCountingThousand": nVal = Asc.c_oAscNumberingFormat.ChineseCountingThousand; break; case "chineseLegalSimplified": nVal = Asc.c_oAscNumberingFormat.ChineseLegalSimplified; break; case "chosung": nVal = Asc.c_oAscNumberingFormat.Chosung; break; case "custom": nVal = Asc.c_oAscNumberingFormat.Custom; break; case "decimal": nVal = Asc.c_oAscNumberingFormat.Decimal; break; case "decimalEnclosedCircle": nVal = Asc.c_oAscNumberingFormat.DecimalEnclosedCircle; break; case "decimalEnclosedCircleChinese": nVal = Asc.c_oAscNumberingFormat.DecimalEnclosedCircleChinese; break; case "decimalEnclosedFullstop": nVal = Asc.c_oAscNumberingFormat.DecimalEnclosedFullstop; break; case "decimalEnclosedParen": nVal = Asc.c_oAscNumberingFormat.DecimalEnclosedParen; break; case "decimalFullWidth": nVal = Asc.c_oAscNumberingFormat.DecimalFullWidth; break; case "decimalFullWidth2": nVal = Asc.c_oAscNumberingFormat.DecimalFullWidth2; break; case "decimalHalfWidth": nVal = Asc.c_oAscNumberingFormat.DecimalHalfWidth; break; case "decimalZero": nVal = Asc.c_oAscNumberingFormat.DecimalZero; break; case "dollarText": nVal = Asc.c_oAscNumberingFormat.DollarText; break; case "ganada": nVal = Asc.c_oAscNumberingFormat.Ganada; break; case "hebrew1": nVal = Asc.c_oAscNumberingFormat.Hebrew1; break; case "hebrew2": nVal = Asc.c_oAscNumberingFormat.Hebrew2; break; case "hex": nVal = Asc.c_oAscNumberingFormat.Hex; break; case "hindiConsonants": nVal = Asc.c_oAscNumberingFormat.HindiConsonants; break; case "hindiCounting": nVal = Asc.c_oAscNumberingFormat.HindiCounting; break; case "hindiNumbers": nVal = Asc.c_oAscNumberingFormat.HindiNumbers; break; case "hindiVowels": nVal = Asc.c_oAscNumberingFormat.HindiVowels; break; case "ideographDigital": nVal = Asc.c_oAscNumberingFormat.IdeographDigital; break; case "ideographEnclosedCircle": nVal = Asc.c_oAscNumberingFormat.IdeographEnclosedCircle; break; case "ideographLegalTraditional": nVal = Asc.c_oAscNumberingFormat.IdeographLegalTraditional; break; case "ideographTraditional": nVal = Asc.c_oAscNumberingFormat.IdeographTraditional; break; case "ideographZodiac": nVal = Asc.c_oAscNumberingFormat.IdeographZodiac; break; case "ideographZodiacTraditional": nVal = Asc.c_oAscNumberingFormat.IdeographZodiacTraditional; break; case "iroha": nVal = Asc.c_oAscNumberingFormat.Iroha; break; case "irohaFullWidth": nVal = Asc.c_oAscNumberingFormat.IrohaFullWidth; break; case "japaneseCounting": nVal = Asc.c_oAscNumberingFormat.JapaneseCounting; break; case "japaneseDigitalTenThousand": nVal = Asc.c_oAscNumberingFormat.JapaneseDigitalTenThousand; break; case "japaneseLegal": nVal = Asc.c_oAscNumberingFormat.JapaneseLegal; break; case "koreanCounting": nVal = Asc.c_oAscNumberingFormat.KoreanCounting; break; case "koreanDigital": nVal = Asc.c_oAscNumberingFormat.KoreanDigital; break; case "koreanDigital2": nVal = Asc.c_oAscNumberingFormat.KoreanDigital2; break; case "koreanLegal": nVal = Asc.c_oAscNumberingFormat.KoreanLegal; break; case "lowerLetter": nVal = Asc.c_oAscNumberingFormat.LowerLetter; break; case "lowerRoman": nVal = Asc.c_oAscNumberingFormat.LowerRoman; break; case "none": nVal = Asc.c_oAscNumberingFormat.None; break; case "numberInDash": nVal = Asc.c_oAscNumberingFormat.NumberInDash; break; case "ordinal": nVal = Asc.c_oAscNumberingFormat.Ordinal; break; case "ordinalText": nVal = Asc.c_oAscNumberingFormat.OrdinalText; break; case "russianLower": nVal = Asc.c_oAscNumberingFormat.RussianLower; break; case "russianUpper": nVal = Asc.c_oAscNumberingFormat.RussianUpper; break; case "taiwaneseCounting": nVal = Asc.c_oAscNumberingFormat.TaiwaneseCounting; break; case "taiwaneseCountingThousand": nVal = Asc.c_oAscNumberingFormat.TaiwaneseCountingThousand; break; case "taiwaneseDigital": nVal = Asc.c_oAscNumberingFormat.TaiwaneseDigital; break; case "thaiCounting": nVal = Asc.c_oAscNumberingFormat.ThaiCounting; break; case "thaiLetters": nVal = Asc.c_oAscNumberingFormat.ThaiLetters; break; case "thaiNumbers": nVal = Asc.c_oAscNumberingFormat.ThaiNumbers; break; case "upperLetter": nVal = Asc.c_oAscNumberingFormat.UpperLetter; break; case "upperRoman": nVal = Asc.c_oAscNumberingFormat.UpperRoman; break; case "vietnameseCounting": nVal = Asc.c_oAscNumberingFormat.VietnameseCounting; break; case "customGreece": nVal = Asc.c_oAscNumberingFormat.CustomGreece; break; case "customUpperTurkish": nVal = Asc.c_oAscNumberingFormat.CustomUpperTurkish; break; case "customLowerTurkish": nVal = Asc.c_oAscNumberingFormat.CustomLowerTurkish; break; case "customDecimalFourZero": nVal = Asc.c_oAscNumberingFormat.CustomDecimalFourZero; break; case "customDecimalThreeZero": nVal = Asc.c_oAscNumberingFormat.CustomDecimalThreeZero; break; case "customDecimalTwoZero": nVal = Asc.c_oAscNumberingFormat.CustomDecimalTwoZero; break; } return nVal; } function ToXML_StyleEntryType(nType) { var sType = undefined; switch (nType) { case 1: sType = "axisTitle"; break; case 2: sType = "categoryAxis"; break; case 3: sType = "chartArea"; break; case 4: sType = "dataLabel"; break; case 5: sType = "dataLabelCallout"; break; case 6: sType = "dataPoint"; break; case 7: sType = "dataPoint3D"; break; case 8: sType = "dataPointLine"; break; case 9: sType = "dataPointMarker"; break; case 10: sType = "dataPointWireframe"; break; case 11: sType = "dataTable"; break; case 12: sType = "downBar"; break; case 13: sType = "dropLine"; break; case 14: sType = "errorBar"; break; case 15: sType = "floor"; break; case 16: sType = "gridlineMajor"; break; case 17: sType = "gridlineMinor"; break; case 18: sType = "hiLoLine"; break; case 19: sType = "leaderLine"; break; case 20: sType = "legend"; break; case 21: sType = "plotArea"; break; case 22: sType = "plotArea3D"; break; case 23: sType = "seriesAxis"; break; case 24: sType = "seriesLine"; break; case 25: sType = "title"; break; case 26: sType = "trendline"; break; case 27: sType = "trendlineLabel"; break; case 28: sType = "upBar"; break; case 29: sType = "valueAxis"; break; case 30: sType = "wall"; break; } return sType; } function FromXML_StyleEntryType(sType) { var nType = undefined; switch (sType) { case "axisTitle": nType = 1; break; case "categoryAxis": nType = 2; break; case "chartArea": nType = 3; break; case "dataLabel": nType = 4; break; case "dataLabelCallout": nType = 5; break; case "dataPoint": nType = 6; break; case "dataPoint3D": nType = 7; break; case "dataPointLine": nType = 8; break; case "dataPointMarker": nType = 9; break; case "dataPointWireframe": nType = 10; break; case "dataTable": nType = 11; break; case "downBar": nType = 12; break; case "dropLine": nType = 13; break; case "errorBar": nType = 14; break; case "floor": nType = 15; break; case "gridlineMajor": nType = 16; break; case "gridlineMinor": nType = 17; break; case "hiLoLine": nType = 18; break; case "leaderLine": nType = 19; break; case "legend": nType = 20; break; case "plotArea": nType = 21; break; case "plotArea3D": nType = 22; break; case "seriesAxis": nType = 23; break; case "seriesLine": nType = 24; break; case "title": nType = 25; break; case "trendline": nType = 26; break; case "trendlineLabel": nType = 27; break; case "upBar": nType = 28; break; case "valueAxis": nType = 29; break; case "wall": nType = 30; break; } return nType; } function FromXml_ST_SizeRelFromH(val) { switch (val) { case "margin": return AscCommon.c_oAscSizeRelFromH.sizerelfromhMargin; case "page": return AscCommon.c_oAscSizeRelFromH.sizerelfromhPage; case "leftMargin": return AscCommon.c_oAscSizeRelFromH.sizerelfromhLeftMargin; case "rightMargin": return AscCommon.c_oAscSizeRelFromH.sizerelfromhRightMargin; case "insideMargin": return AscCommon.c_oAscSizeRelFromH.sizerelfromhInsideMargin; case "outsideMargin": return AscCommon.c_oAscSizeRelFromH.sizerelfromhOutsideMargin; } return AscCommon.c_oAscSizeRelFromH.sizerelfromhPage; } function ToXml_ST_SizeRelFromH(val) { switch (val) { case AscCommon.c_oAscSizeRelFromH.sizerelfromhMargin: return "margin"; case AscCommon.c_oAscSizeRelFromH.sizerelfromhPage: return "page"; case AscCommon.c_oAscSizeRelFromH.sizerelfromhLeftMargin: return "leftMargin"; case AscCommon.c_oAscSizeRelFromH.sizerelfromhRightMargin: return "rightMargin"; case AscCommon.c_oAscSizeRelFromH.sizerelfromhInsideMargin: return "insideMargin"; case AscCommon.c_oAscSizeRelFromH.sizerelfromhOutsideMargin: return "outsideMargin"; } return null; } function FromXml_ST_SizeRelFromV(val) { switch (val) { case "margin": return AscCommon.c_oAscSizeRelFromV.sizerelfromvMargin; case "page": return AscCommon.c_oAscSizeRelFromV.sizerelfromvPage; case "topMargin": return AscCommon.c_oAscSizeRelFromV.sizerelfromvTopMargin; case "bottomMargin": return AscCommon.c_oAscSizeRelFromV.sizerelfromvBottomMargin; case "insideMargin": return AscCommon.c_oAscSizeRelFromV.sizerelfromvInsideMargin; case "outsideMargin": return AscCommon.c_oAscSizeRelFromV.sizerelfromvOutsideMargin; } return AscCommon.c_oAscSizeRelFromV.sizerelfromvPage; } function ToXml_ST_SizeRelFromV(val) { switch (val) { case AscCommon.c_oAscSizeRelFromV.sizerelfromvMargin: return "margin"; case AscCommon.c_oAscSizeRelFromV.sizerelfromvPage: return "page"; case AscCommon.c_oAscSizeRelFromV.sizerelfromvTopMargin: return "topMargin"; case AscCommon.c_oAscSizeRelFromV.sizerelfromvBottomMargin: return "bottomMargin"; case AscCommon.c_oAscSizeRelFromV.sizerelfromvInsideMargin: return "insideMargin"; case AscCommon.c_oAscSizeRelFromV.sizerelfromvOutsideMargin: return "outsideMargin"; } return null; } function FromXml_ST_Hint(val) { switch (val) { case "default": return AscWord.fonthint_Default; case "cs": return AscWord.fonthint_CS; case "eastAsia": return AscWord.fonthint_EastAsia; } return undefined; } function ToXml_ST_Hint(val) { switch (val) { case AscWord.fonthint_Default: return "default"; case AscWord.fonthint_CS: return "cs"; case AscWord.fonthint_EastAsia: return "eastAsia"; } return null; } function FromXml_ST_Shape(val) { switch (val) { case "cone": return AscFormat.BAR_SHAPE_CONE; case "coneToMax": return AscFormat.BAR_SHAPE_CONETOMAX; case "box": return AscFormat.BAR_SHAPE_BOX; case "cylinder": return AscFormat.BAR_SHAPE_CYLINDER; case "pyramid": return AscFormat.BAR_SHAPE_PYRAMID; case "pyramidToMax": return AscFormat.BAR_SHAPE_PYRAMIDTOMAX; } return null; } function ToXml_ST_Shape(val) { switch (val) { case AscFormat.BAR_SHAPE_CONE: return "cone"; case AscFormat.BAR_SHAPE_CONETOMAX: return "coneToMax"; case AscFormat.BAR_SHAPE_BOX: return "box"; case AscFormat.BAR_SHAPE_CYLINDER: return "cylinder"; case AscFormat.BAR_SHAPE_PYRAMID: return "pyramid"; case AscFormat.BAR_SHAPE_PYRAMIDTOMAX: return "pyramidToMax"; } return null; } function ToXml_ST_SdtAppearance(nVal) { switch (nVal) { case Asc.c_oAscSdtAppearance.Frame: return "boundingBox"; case Asc.c_oAscSdtAppearance.Hidden: return "hidden"; } return undefined; } function FromXml_ST_SdtAppearance(sVal) { switch (sVal) { case "boundingBox": return Asc.c_oAscSdtAppearance.Frame; case "hidden": return Asc.c_oAscSdtAppearance.Hidden; } return undefined; } function FromXml_ST_Lock(val, def) { switch (val) { case "sdtLocked": return c_oAscSdtLockType.SdtLocked; case "contentLocked": return c_oAscSdtLockType.ContentLocked; case "unlocked": return c_oAscSdtLockType.Unlocked; case "sdtContentLocked": return c_oAscSdtLockType.SdtContentLocked; } return def; } function ToXml_ST_Lock(val) { switch (val) { case c_oAscSdtLockType.SdtLocked: return "sdtLocked"; case c_oAscSdtLockType.ContentLocked: return "contentLocked"; case c_oAscSdtLockType.Unlocked: return "unlocked"; case c_oAscSdtLockType.SdtContentLocked: return "sdtContentLocked"; } return null; } function FromXml_ST_CalendarType(val, def) { switch (val) { case "gregorian": return Asc.c_oAscCalendarType.Gregorian; case "gregorianUs": return Asc.c_oAscCalendarType.GregorianUs; case "gregorianMeFrench": return Asc.c_oAscCalendarType.GregorianMeFrench; case "gregorianArabic": return Asc.c_oAscCalendarType.GregorianArabic; case "hijri": return Asc.c_oAscCalendarType.Hijri; case "hebrew": return Asc.c_oAscCalendarType.Hebrew; case "taiwan": return Asc.c_oAscCalendarType.Taiwan; case "japan": return Asc.c_oAscCalendarType.Japan; case "thai": return Asc.c_oAscCalendarType.Thai; case "korea": return Asc.c_oAscCalendarType.Korea; case "saka": return Asc.c_oAscCalendarType.Saka; case "gregorianXlitEnglish": return Asc.c_oAscCalendarType.GregorianXlitEnglish; case "gregorianXlitFrench": return Asc.c_oAscCalendarType.GregorianXlitFrench; case "none": return Asc.c_oAscCalendarType.None; } return def; } function ToXml_ST_CalendarType(val) { switch (val) { case Asc.c_oAscCalendarType.Gregorian: return "gregorian"; case Asc.c_oAscCalendarType.GregorianUs: return "gregorianUs"; case Asc.c_oAscCalendarType.GregorianMeFrench: return "gregorianMeFrench"; case Asc.c_oAscCalendarType.GregorianArabic: return "gregorianArabic"; case Asc.c_oAscCalendarType.Hijri: return "hijri"; case Asc.c_oAscCalendarType.Hebrew: return "hebrew"; case Asc.c_oAscCalendarType.Taiwan: return "taiwan"; case Asc.c_oAscCalendarType.Japan: return "japan"; case Asc.c_oAscCalendarType.Thai: return "thai"; case Asc.c_oAscCalendarType.Korea: return "korea"; case Asc.c_oAscCalendarType.Saka: return "saka"; case Asc.c_oAscCalendarType.GregorianXlitEnglish: return "gregorianXlitEnglish"; case Asc.c_oAscCalendarType.GregorianXlitFrench: return "gregorianXlitFrench"; case Asc.c_oAscCalendarType.None: return "none"; } return null; } function FromXml_ST_TabTlc(val) { switch (val) { case "none": return Asc.c_oAscTabLeader.None; case "dot": return Asc.c_oAscTabLeader.Dot; case "hyphen": return Asc.c_oAscTabLeader.Hyphen; case "underscore": return Asc.c_oAscTabLeader.Underscore; case "heavy": return Asc.c_oAscTabLeader.Heavy; case "middleDot": return Asc.c_oAscTabLeader.MiddleDot; } return undefined; } function ToXml_ST_TabTlc(val) { switch (val) { case Asc.c_oAscTabLeader.None: return "none"; case Asc.c_oAscTabLeader.Dot: return "dot"; case Asc.c_oAscTabLeader.Hyphen: return "hyphen"; case Asc.c_oAscTabLeader.Underscore: return "underscore"; case Asc.c_oAscTabLeader.Heavy: return "heavy"; case Asc.c_oAscTabLeader.MiddleDot: return "middleDot"; } return null; } function FromXml_ST_TabJc(val) { switch (val) { case "clear": return tab_Clear; case "start": case "left": return tab_Left; case "center": return tab_Center; case "end": case "right": return tab_Right; case "decimal": return tab_Decimal; case "bar": return tab_Bar; case "num": return tab_Num; } return undefined; } function ToXml_ST_TabJc(val) { switch (val) { case tab_Clear: return "clear"; case tab_Left: return "left"; case tab_Center: return "center"; case tab_Right: return "right"; case tab_Decimal: return "decimal"; case tab_Bar: return "bar"; case tab_Num: return "num"; } return null; } function FromXml_ST_Shd(val) { switch (val) { case "nil": return Asc.c_oAscShd.Nil; case "clear": return Asc.c_oAscShd.Clear; case "solid": return Asc.c_oAscShd.Solid; case "horzStripe": return Asc.c_oAscShd.HorzStripe; case "vertStripe": return Asc.c_oAscShd.VertStripe; case "reverseDiagStripe": return Asc.c_oAscShd.ReverseDiagStripe; case "diagStripe": return Asc.c_oAscShd.DiagStripe; case "horzCross": return Asc.c_oAscShd.HorzCross; case "diagCross": return Asc.c_oAscShd.DiagCross; case "thinHorzStripe": return Asc.c_oAscShd.ThinHorzStripe; case "thinVertStripe": return Asc.c_oAscShd.ThinVertStripe; case "thinReverseDiagStripe": return Asc.c_oAscShd.ThinReverseDiagStripe; case "thinDiagStripe": return Asc.c_oAscShd.ThinDiagStripe; case "thinHorzCross": return Asc.c_oAscShd.ThinHorzCross; case "thinDiagCross": return Asc.c_oAscShd.ThinDiagCross; case "pct5": return Asc.c_oAscShd.Pct5; case "pct10": return Asc.c_oAscShd.Pct10; case "pct12": return Asc.c_oAscShd.Pct12; case "pct15": return Asc.c_oAscShd.Pct15; case "pct20": return Asc.c_oAscShd.Pct20; case "pct25": return Asc.c_oAscShd.Pct25; case "pct30": return Asc.c_oAscShd.Pct30; case "pct35": return Asc.c_oAscShd.Pct35; case "pct37": return Asc.c_oAscShd.Pct37; case "pct40": return Asc.c_oAscShd.Pct40; case "pct45": return Asc.c_oAscShd.Pct45; case "pct50": return Asc.c_oAscShd.Pct50; case "pct55": return Asc.c_oAscShd.Pct55; case "pct60": return Asc.c_oAscShd.Pct60; case "pct62": return Asc.c_oAscShd.Pct62; case "pct65": return Asc.c_oAscShd.Pct65; case "pct70": return Asc.c_oAscShd.Pct70; case "pct75": return Asc.c_oAscShd.Pct75; case "pct80": return Asc.c_oAscShd.Pct80; case "pct85": return Asc.c_oAscShd.Pct85; case "pct87": return Asc.c_oAscShd.Pct87; case "pct90": return Asc.c_oAscShd.Pct90; case "pct95": return Asc.c_oAscShd.Pct95; } return undefined; } function ToXml_ST_Shd(val) { switch (val) { case Asc.c_oAscShd.Nil: return "nil"; case Asc.c_oAscShd.Clear: return "clear"; case Asc.c_oAscShd.Solid: return "solid"; case Asc.c_oAscShd.HorzStripe: return "horzStripe"; case Asc.c_oAscShd.VertStripe: return "vertStripe"; case Asc.c_oAscShd.ReverseDiagStripe: return "reverseDiagStripe"; case Asc.c_oAscShd.DiagStripe: return "diagStripe"; case Asc.c_oAscShd.HorzCross: return "horzCross"; case Asc.c_oAscShd.DiagCross: return "diagCross"; case Asc.c_oAscShd.ThinHorzStripe: return "thinHorzStripe"; case Asc.c_oAscShd.ThinVertStripe: return "thinVertStripe"; case Asc.c_oAscShd.ThinReverseDiagStripe: return "thinReverseDiagStripe"; case Asc.c_oAscShd.ThinDiagStripe: return "thinDiagStripe"; case Asc.c_oAscShd.ThinHorzCross: return "thinHorzCross"; case Asc.c_oAscShd.ThinDiagCross: return "thinDiagCross"; case Asc.c_oAscShd.Pct5: return "pct5"; case Asc.c_oAscShd.Pct10: return "pct10"; case Asc.c_oAscShd.Pct12: return "pct12"; case Asc.c_oAscShd.Pct15: return "pct15"; case Asc.c_oAscShd.Pct20: return "pct20"; case Asc.c_oAscShd.Pct25: return "pct25"; case Asc.c_oAscShd.Pct30: return "pct30"; case Asc.c_oAscShd.Pct35: return "pct35"; case Asc.c_oAscShd.Pct37: return "pct37"; case Asc.c_oAscShd.Pct40: return "pct40"; case Asc.c_oAscShd.Pct45: return "pct45"; case Asc.c_oAscShd.Pct50: return "pct50"; case Asc.c_oAscShd.Pct55: return "pct55"; case Asc.c_oAscShd.Pct60: return "pct60"; case Asc.c_oAscShd.Pct62: return "pct62"; case Asc.c_oAscShd.Pct65: return "pct65"; case Asc.c_oAscShd.Pct70: return "pct70"; case Asc.c_oAscShd.Pct75: return "pct75"; case Asc.c_oAscShd.Pct80: return "pct80"; case Asc.c_oAscShd.Pct85: return "pct85"; case Asc.c_oAscShd.Pct87: return "pct87"; case Asc.c_oAscShd.Pct90: return "pct90"; case Asc.c_oAscShd.Pct95: return "pct95"; } return null; } //----------------------------------------------------------export---------------------------------------------------- window['AscJsonConverter'] = window.AscJsonConverter = window['AscJsonConverter'] || {}; window['AscJsonConverter'].WriterToJSON = WriterToJSON; window['AscJsonConverter'].ReaderFromJSON = ReaderFromJSON; window['AscCommon'].To_XML_ST_LayoutShapeType = To_XML_ST_LayoutShapeType; window['AscCommon'].From_XML_ST_LayoutShapeType = From_XML_ST_LayoutShapeType; })(window);