/* * (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"; ( /** * @param {Window} window * @param {undefined} undefined */ function (window, undefined) { const recalcSlideInterval = 30; let prot; // Import var CreateAscColor = AscCommon.CreateAscColor; var g_oIdCounter = AscCommon.g_oIdCounter; var g_oTableId = AscCommon.g_oTableId; var isRealObject = AscCommon.isRealObject; var c_oAscColor = Asc.c_oAscColor; var c_oAscFill = Asc.c_oAscFill; var asc_CShapeFill = Asc.asc_CShapeFill; var c_oAscFillGradType = Asc.c_oAscFillGradType; var c_oAscFillBlipType = Asc.c_oAscFillBlipType; var c_oAscStrokeType = Asc.c_oAscStrokeType; var asc_CShapeProperty = Asc.asc_CShapeProperty; var g_nodeAttributeStart = AscCommon.g_nodeAttributeStart; var g_nodeAttributeEnd = AscCommon.g_nodeAttributeEnd; var CChangesDrawingsBool = AscDFH.CChangesDrawingsBool; var CChangesDrawingsLong = AscDFH.CChangesDrawingsLong; var CChangesDrawingsDouble = AscDFH.CChangesDrawingsDouble; var CChangesDrawingsString = AscDFH.CChangesDrawingsString; var CChangesDrawingsObjectNoId = AscDFH.CChangesDrawingsObjectNoId; var CChangesDrawingsObject = AscDFH.CChangesDrawingsObject; var CChangesDrawingsContentNoId = AscDFH.CChangesDrawingsContentNoId; var CChangesDrawingsContentLong = AscDFH.CChangesDrawingsContentLong; var CChangesDrawingsContentLongMap = AscDFH.CChangesDrawingsContentLongMap; var CChangesDrawingsContent = AscDFH.CChangesDrawingsContent; var CChangesDrawingsDouble2 = AscDFH.CChangesDrawingsDouble2; function CBaseNoIdObject() { } InitClass(CBaseNoIdObject, AscCommon.CTree, AscDFH.historyitem_type_Unknown); CBaseNoIdObject.prototype.classType = AscDFH.historyitem_type_Unknown; CBaseNoIdObject.prototype.notAllowedWithoutId = function () { return false; }; /** * @memberof CBaseNoIdObject */ CBaseNoIdObject.prototype.getObjectType = function () { return this.classType; }; /** * @memberof CBaseNoIdObject */ CBaseNoIdObject.prototype.Get_Id = function () { return this.Id; }; /** * @memberof CBaseNoIdObject */ CBaseNoIdObject.prototype.GetId = function () { return this.Id; }; /** * @memberof CBaseNoIdObject */ CBaseNoIdObject.prototype.Write_ToBinary2 = function (oWriter) { oWriter.WriteLong(this.getObjectType()); oWriter.WriteString2(this.Get_Id()); }; /** * @memberof CBaseNoIdObject */ CBaseNoIdObject.prototype.Read_FromBinary2 = function (oReader) { this.Id = oReader.GetString2(); }; CBaseNoIdObject.prototype.Refresh_RecalcData = function (oChange) { }; CBaseNoIdObject.prototype.readAttr = function (reader) { while (reader.MoveToNextAttribute()) { this.readAttrXml(reader.GetNameNoNS(), reader); } }; CBaseNoIdObject.prototype.readAttrXml = function (name, reader) { //Implement in children }; CBaseNoIdObject.prototype.readChildXml = function (name, reader) { //Implement in children }; CBaseNoIdObject.prototype.writeAttrXmlImpl = function (writer) { //Implement in children }; CBaseNoIdObject.prototype.writeChildrenXml = function (writer) { //Implement in children }; CBaseNoIdObject.prototype.fromXml = function (reader, bSkipFirstNode) { if (bSkipFirstNode) { if (!reader.ReadNextNode()) { return; } } this.readAttr(reader); let depth = reader.GetDepth(); while (reader.ReadNextSiblingNode(depth)) { let name = reader.GetNameNoNS(); this.readChildXml(name, reader); } }; CBaseNoIdObject.prototype.toXml = function (writer, name) { writer.WriteXmlNodeStart(name); this.writeAttrXml(writer); this.writeChildrenXml(writer); writer.WriteXmlNodeEnd(name); }; CBaseNoIdObject.prototype.writeAttrXml = function (writer) { this.writeAttrXmlImpl(writer); writer.WriteXmlAttributesEnd(); }; function CBaseObject() { CBaseNoIdObject.call(this); this.Id = null; this.initId(); } InitClass(CBaseObject, CBaseNoIdObject, AscDFH.historyitem_type_Unknown); CBaseObject.prototype.initId = function() { if ((AscCommon.g_oIdCounter.m_bLoad || AscCommon.History.CanAddChanges() || this.notAllowedWithoutId()) && !this.isGlobalSkipAddId()) { this.Id = AscCommon.g_oIdCounter.Get_NewId(); AscCommon.g_oTableId.Add(this, this.Id); } }; CBaseObject.prototype.notAllowedWithoutId = function () { return true; }; CBaseObject.prototype.isGlobalSkipAddId = function () { const oApi = window.editor || Asc.editor; return !!(oApi && oApi.isSkipAddIdToBaseObject); }; //Method for debug CBaseObject.prototype.compareTypes = function (oOther) { if (!oOther || !oOther.compareTypes) { debugger; } for (var sKey in oOther) { if ((oOther[sKey] === null || oOther[sKey] === undefined) && (this[sKey] !== null && this[sKey] !== undefined) || (this[sKey] === null || this[sKey] === undefined) && (oOther[sKey] !== null && oOther[sKey] !== undefined) || (typeof this[sKey]) !== (typeof oOther[sKey])) { debugger; } if (this[sKey] !== this.parent && this[sKey] !== this.group && typeof this[sKey] === "object" && this[sKey] && this[sKey].compareTypes) { this[sKey].compareTypes(oOther[sKey]); } if (Array.isArray(this[sKey])) { if (!Array.isArray(oOther[sKey])) { debugger; } else { var a1 = this[sKey]; var a2 = oOther[sKey]; if (a1.length !== a2.length) { debugger; } else { for (var i = 0; i < a1.length; ++i) { if (!a1[i] || !a2[i]) { debugger; } if (typeof a1[i] === "object" && a1[i] && a1[i].compareTypes) { a1[i].compareTypes(a2[i]); } } } } } } }; function InitClassWithoutType(fClass, fBase) { fClass.prototype = Object.create(fBase.prototype); fClass.prototype.superclass = fBase; fClass.prototype.constructor = fClass; } function InitClass(fClass, fBase, nType) { InitClassWithoutType(fClass, fBase); fClass.prototype.classType = nType; } function CBaseFormatNoIdObject() { CBaseNoIdObject.call(this); } InitClass(CBaseFormatNoIdObject, CBaseNoIdObject, AscDFH.historyitem_type_Unknown); CBaseFormatNoIdObject.prototype.getImageFromBulletsMap = function(oImages) {}; CBaseFormatNoIdObject.prototype.getDocContentsWithImageBullets = function (arrContents) {}; CBaseFormatNoIdObject.prototype.createDuplicate = function (oIdMap) { var oCopy = new this.constructor(); this.fillObject(oCopy, oIdMap); return oCopy; }; CBaseFormatNoIdObject.prototype.fillObject = function (oCopy, oIdMap) { }; CBaseFormatNoIdObject.prototype.fromPPTY = function (pReader) { var oStream = pReader.stream; var nStart = oStream.cur; var nEnd = nStart + oStream.GetULong() + 4; if (this.readAttribute) { this.readAttributes(pReader); } this.readChildren(nEnd, pReader); oStream.Seek2(nEnd); }; CBaseFormatNoIdObject.prototype.readAttributes = function (pReader) { var oStream = pReader.stream; oStream.Skip2(1); // start attributes while (true) { var nType = oStream.GetUChar(); if (nType == g_nodeAttributeEnd) break; if (this.readAttribute) { this.readAttribute(nType, pReader); } } }; CBaseFormatNoIdObject.prototype.readAttribute = function (nType, pReader) {//todo return undefined by default(check pptx) }; CBaseFormatNoIdObject.prototype.readChildren = function (nEnd, pReader) { var oStream = pReader.stream; while (oStream.cur < nEnd) { var nType = oStream.GetUChar(); const res = this.readChild(nType, pReader); if (false === res) { oStream.SkipRecord(); } } }; CBaseFormatNoIdObject.prototype.readChild = function (nType, pReader) { pReader.stream.SkipRecord(); }; CBaseFormatNoIdObject.prototype.toPPTY = function (pWriter) { if (this.privateWriteAttributes) { this.writeAttributes(pWriter); } this.writeChildren(pWriter); }; CBaseFormatNoIdObject.prototype.writeAttributes = function (pWriter) { pWriter.WriteUChar(g_nodeAttributeStart); if (this.privateWriteAttributes) { this.privateWriteAttributes(pWriter); } pWriter.WriteUChar(g_nodeAttributeEnd); }; CBaseFormatNoIdObject.prototype.privateWriteAttributes = function (pWriter) {//todo return undefined by default(check pptx) }; CBaseFormatNoIdObject.prototype.writeChildren = function (pWriter) { }; CBaseFormatNoIdObject.prototype.writeRecord1 = function (pWriter, nType, oChild) { if (AscCommon.isRealObject(oChild)) { pWriter.WriteRecord1(nType, oChild, function (oChild) { oChild.toPPTY(pWriter); }); } else { //TODO: throw an error } }; CBaseFormatNoIdObject.prototype.writeRecord2 = function (pWriter, nType, oChild) { if (AscCommon.isRealObject(oChild)) { this.writeRecord1(pWriter, nType, oChild); } }; function CBaseFormatObject() { CBaseFormatNoIdObject.call(this); this.Id = null; this.initId(); this.parent = null; } InitClass(CBaseFormatObject, CBaseFormatNoIdObject, AscDFH.historyitem_type_Unknown); CBaseFormatObject.prototype.notAllowedWithoutId = CBaseObject.prototype.notAllowedWithoutId; CBaseFormatObject.prototype.isGlobalSkipAddId = CBaseObject.prototype.isGlobalSkipAddId; CBaseFormatObject.prototype.initId = CBaseObject.prototype.initId; CBaseFormatObject.prototype.compareTypes = CBaseObject.prototype.compareTypes; CBaseFormatObject.prototype.setParent = function (oParent) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_CommonChartFormat_SetParent, this.parent, oParent)); this.parent = oParent; }; CBaseFormatObject.prototype.setParentToChild = function (oChild) { if (oChild && oChild.setParent) { oChild.setParent(this); } }; CBaseFormatObject.prototype.handleRemoveObject = function (sObjectId) { return false; }; CBaseFormatObject.prototype.onRemoveChild = function (oChild) { if (this.parent) { this.parent.onRemoveChild(this); } }; // Visio Extensions function CClrSchemeExtLst() { CBaseNoIdObject.call(this); /** * @type {CVariationClrScheme[]} */ this.variationClrSchemeLst = []; /** * from vt:bkgnd tag. Not visible background but something else * @type {?CVarColor} */ this.background = null; /** * attribute schemeEnum from vt:schemeID tag * @type {?string} */ this.schemeEnum = null; } InitClass(CClrSchemeExtLst, CBaseNoIdObject, 0); /** * props container class * @constructor */ function CFontProps() { CBaseFormatNoIdObject.call(this); /** * number read as string * @type {?string} */ this.style = null; /** * concrete props object * vt:color with a:schemeClr or something else * See CUniColor for color reference. * @type {{color: (CSchemeColor | CSysColor * | CPrstColor | CRGBColor | any)}} */ this.fontPropsObject = { color: null }; } InitClass(CFontProps, CBaseFormatNoIdObject, 0); /** * @param [bSaveFormatting = false] - made by example false is set in other cases by default * @return {CFontProps} */ CFontProps.prototype.createDuplicate = function (bSaveFormatting) { if (bSaveFormatting === undefined) { bSaveFormatting = false; } var duplicate = new CFontProps(); duplicate.style = this.style; if (null !== this.fontPropsObject.color) { if (bSaveFormatting === true) { duplicate.fontPropsObject.color = this.fontPropsObject.color.saveSourceFormatting(); } else { duplicate.fontPropsObject.color = this.fontPropsObject.color.createDuplicate(); } } return duplicate; }; /** * Read attributes from stream for CFontProps * * @param {number} attrType - The attribute type * @param {CBinaryFileReader} pReader - The binary reader * @return {boolean} true if the attribute was read, false otherwise */ CFontProps.prototype.readAttribute = function(attrType, pReader) { if (attrType === 0) { this.style = pReader.stream.GetULong().toString(); } else { return false; } return true; }; /** * Read children from stream for CFontProps * * @param {number} elementType - The element type * @param {CBinaryFileReader} pReader - The binary reader * @return {boolean} true if the child was read, false otherwise */ CFontProps.prototype.readChild = function(elementType, pReader) { let handled = true; switch (elementType) { case 0: this.fontPropsObject.color = pReader.ReadUniColor(); break; default: handled = false; } return handled; } /** * Write attributes to stream for CFontProps * * @param {CBinaryFileWriter} pWriter - The binary writer */ CFontProps.prototype.privateWriteAttributes = function(pWriter) { pWriter._WriteUInt2(0, parseInt(this.style)); }; /** * Write children to stream for CFontProps * * @param {CBinaryFileWriter} pWriter - The binary writer */ CFontProps.prototype.writeChildren = function(pWriter) { pWriter.WriteRecord1(0, this.fontPropsObject.color, pWriter.WriteUniColor); }; /** * line props container class. child element of fmtConnectorSchemeLineStyles or fmtSchemeLineStyles. * see 2.3.4.2.20 CT_LineStyle * @constructor */ function CLineStyle() { CBaseFormatNoIdObject.call(this); /** * 2.3.4.2.19 CT_LineEx. * default is * * @type {Object} */ this.lineEx = {rndg: 0, start: 0, startSize: 2, end: 0, endSize: 2, pattern: 1}; /** * 2.3.4.2.25 CT_Sketch * @type {Object} */ this.sketch = {}; } InitClass(CLineStyle, CBaseFormatNoIdObject, 0); /** * @param [bSaveFormatting = false] - made by example false is set in other cases by default * @return {CLineStyle} */ CLineStyle.prototype.createDuplicate = function (bSaveFormatting) { if (bSaveFormatting === undefined) { bSaveFormatting = false; } var duplicate = new CLineStyle(); if (null !== this.lineEx) { // duplicate.lineEx = this.lineEx.createDuplicate(); duplicate.lineEx.rndg = this.lineEx.rndg; duplicate.lineEx.start = this.lineEx.start; duplicate.lineEx.startSize = this.lineEx.startSize; duplicate.lineEx.end = this.lineEx.end; duplicate.lineEx.endSize = this.lineEx.endSize; duplicate.lineEx.pattern = this.lineEx.pattern; } if (null !== this.sketch) { // 2.3.4.2.25 CT_Sketch // duplicate.sketch = this.sketch.createDuplicate(); duplicate.sketch.lnAmp = this.sketch.lnAmp; duplicate.sketch.fillAmp = this.sketch.fillAmp; duplicate.sketch.lnWeight = this.sketch.lnWeight; duplicate.sketch.numPts = this.sketch.numPts; } return duplicate; }; CLineStyle.prototype.readAttribute = undefined; /** * Read children from stream for CLineStyle * * @param {number} elementType - The type of the element to read * @param {CBinaryFileReader} pReader - The binary reader * @return {boolean} True if the element was read, false otherwise */ CLineStyle.prototype.readChild = function(elementType, pReader) { const t = this; let handled = true; switch (elementType) { case 0: AscFormat.CBaseFormatNoIdObject.prototype.fromPPTY.call({ readChildren: AscFormat.CBaseFormatNoIdObject.prototype.readChildren, readAttributes: AscFormat.CBaseFormatNoIdObject.prototype.readAttributes, readAttribute: function(attrType, pReader) { if (attrType === 0) { t.lineEx.rndg = pReader.stream.GetULong(); } else if (attrType === 1) { t.lineEx.start = pReader.stream.GetULong(); } else if (attrType === 2) { t.lineEx.startSize = pReader.stream.GetULong(); } else if (attrType === 3) { t.lineEx.end = pReader.stream.GetULong(); } else if (attrType === 4) { t.lineEx.endSize = pReader.stream.GetULong(); } else if (attrType === 5) { t.lineEx.pattern = pReader.stream.GetULong(); } else { return false; } return true; } }, pReader); break; case 1: AscFormat.CBaseFormatNoIdObject.prototype.fromPPTY.call({ readChildren: AscFormat.CBaseFormatNoIdObject.prototype.readChildren, readAttributes: AscFormat.CBaseFormatNoIdObject.prototype.readAttributes, readAttribute: function(attrType, pReader) { if (attrType === 0) { t.sketch.lnAmp = pReader.stream.GetULong(); } else if (attrType === 1) { t.lineEx.fillAmp = pReader.stream.GetULong(); } else if (attrType === 2) { t.lineEx.lnWeight = pReader.stream.GetULong(); } else if (attrType === 3) { t.lineEx.numPts = pReader.stream.GetULong(); } else { return false; } return true; } }, pReader); break; default: handled = false; break; } return handled; } CLineStyle.prototype.privateWriteAttributes = undefined; /** * Write children to stream for CLineStyle * * @param {CBinaryFileWriter} pWriter - The binary writer */ CLineStyle.prototype.writeChildren = function(pWriter) { pWriter.StartRecord(0); pWriter.WriteUChar(AscCommon.g_nodeAttributeStart); pWriter._WriteUInt2(0, this.lineEx.rndg); pWriter._WriteUInt2(1, this.lineEx.start); pWriter._WriteUInt2(2, this.lineEx.startSize); pWriter._WriteUInt2(3, this.lineEx.end); pWriter._WriteUInt2(4, this.lineEx.endSize); pWriter._WriteUInt2(5, this.lineEx.pattern); pWriter.WriteUChar(AscCommon.g_nodeAttributeEnd); pWriter.EndRecord(); if (Object.keys(this.sketch).length > 0) { pWriter.StartRecord(1); pWriter.WriteUChar(AscCommon.g_nodeAttributeStart); pWriter._WriteUInt2(0, this.sketch.lnAmp); pWriter._WriteUInt2(1, this.sketch.fillAmp); pWriter._WriteUInt2(2, this.sketch.lnWeight); pWriter._WriteUInt2(3, this.sketch.numPts); pWriter.WriteUChar(AscCommon.g_nodeAttributeEnd); pWriter.EndRecord(); } }; function CVariationClrScheme() { CBaseFormatNoIdObject.call(this); /** * * @type {*} */ this.monotone = null; /** * read from varColor1, varColor2, varColor3, ... * @type {CVarColor[]} */ this.varColor = []; } InitClass(CVariationClrScheme, CBaseFormatNoIdObject, 0); CVariationClrScheme.prototype.readAttribute = undefined; /** * Read children from stream for CVariationClrScheme * * @param {number} elementType - The type of the element to read * @param {CBinaryFileReader} pReader - The binary reader * @return {boolean} True if the element was read, false otherwise */ CVariationClrScheme.prototype.readChild = function(elementType, pReader) { let handled = true; if (0 <= elementType && elementType < 7) { let varColor = new CVarColor(); varColor.unicolor = pReader.ReadUniColor(); this.varColor[elementType] = varColor; } else { handled = false; } return handled; } CVariationClrScheme.prototype.privateWriteAttributes = undefined; /** * Write children to stream for CLineStyle * * @param {CBinaryFileWriter} pWriter - The binary writer */ CVariationClrScheme.prototype.writeChildren = function(pWriter) { for (let i = 0; i < this.varColor.length; i++) { if (!this.varColor[i] || !this.varColor[i].unicolor) { continue; } pWriter.WriteRecord1(i, this.varColor[i].unicolor, pWriter.WriteUniColor); } }; function CVarColor() { CBaseNoIdObject.call(this); /** * @type {CUniColor} */ this.unicolor = null; } InitClass(CVarColor, CBaseNoIdObject, 0); /** * General theme extensions. Tag inside themeElements. * @constructor */ function CThemeExt() { CBaseNoIdObject.call(this); /** * @type {?FmtScheme} */ this.fmtConnectorScheme = null; /** * The only value from themeScheme tag * @type {?string} */ this.themeSchemeSchemeEnum = null; /** * The only value from fmtSchemeEx tag * @type {?string} */ this.fmtSchemeExSchemeEnum = null; /** * The only value from fmtConnectorSchemeEx tag * @type {?string} */ this.fmtConnectorSchemeExSchemeEnum = null; /** * vt:fillStyles * @type {{pattern: number}[]} */ this.fillStyles = []; /** * @type {{fmtConnectorSchemeLineStyles: CLineStyle[], fmtSchemeLineStyles: CLineStyle[] }} */ this.lineStyles = { fmtConnectorSchemeLineStyles: [], fmtSchemeLineStyles: [] }; /** * @type {{connectorFontStyles: CFontProps[], fontStyles: CFontProps[] }} */ this.fontStylesGroup = { connectorFontStyles: [], fontStyles: [] }; this.variationStyleSchemeLst = []; } InitClass(CThemeExt, CBaseNoIdObject, 0); function CVariationStyleScheme() { CBaseFormatNoIdObject.call(this); this.embellishment = null; /** * @type {CVarStyle[]} */ this.varStyle = []; } InitClass(CVariationStyleScheme, CBaseFormatNoIdObject, 0); /** * Read attributes from stream for DocumentSettings_Type * * @param {number} attrType - The type of attribute * @param {BinaryVSDYLoader} pReader - The binary reader * @returns {boolean} - True if attribute was handled, false otherwise */ CVariationStyleScheme.prototype.readAttribute = function(attrType, pReader) { if (attrType === 0) { this.embellishment = pReader.stream.GetULong(); } else { return false; } return true; } /** * Read child elements from stream for CVariationStyleScheme * * @param {number} elementType - The type of child element * @param {BinaryVSDYLoader} pReader - The binary reader * @returns {boolean} - True if element was handled, false otherwise */ CVariationStyleScheme.prototype.readChild = function(elementType, pReader) { switch (elementType) { case 0: { const varStyle = new CVarStyle(); varStyle.fromPPTY(pReader); this.varStyle.push(varStyle); break; } default: return false; } return true; }; /** * Write attributes to stream for CVariationStyleScheme * * @param {CBinaryFileWriter} pWriter - The binary writer */ CVariationStyleScheme.prototype.privateWriteAttributes = function(pWriter) { pWriter._WriteUInt2(0, this.embellishment); }; /** * Write children to stream for CVariationStyleScheme * * @param {CBinaryFileWriter} pWriter - The binary writer */ CVariationStyleScheme.prototype.writeChildren = function(pWriter) { for (let i = 0; i < this.varStyle.length; i++) { pWriter.WriteRecordPPTY(0, this.varStyle[i]); } }; function CVarStyle() { CBaseFormatNoIdObject.call(this); this.fillIdx = null; this.lineIdx = null; this.effectIdx = null; this.fontIdx = null; } InitClass(CVarStyle, CBaseFormatNoIdObject, 0); /** * Read attributes from stream for DocumentSettings_Type * * @param {number} attrType - The type of attribute * @param {BinaryVSDYLoader} pReader - The binary reader * @returns {boolean} - True if attribute was handled, false otherwise */ CVarStyle.prototype.readAttribute = function(attrType, pReader) { if (attrType === 0) { this.fillIdx = pReader.stream.GetULong(); } else if (attrType === 1) { this.lineIdx = pReader.stream.GetULong(); } else if (attrType === 2) { this.effectIdx = pReader.stream.GetULong(); } else if (attrType === 3) { this.fontIdx = pReader.stream.GetULong(); } else { return false; } return true; } /** * Write attributes to stream for CVarStyle * * @param {CBinaryFileWriter} pWriter - The binary writer */ CVarStyle.prototype.privateWriteAttributes = function(pWriter) { pWriter._WriteUInt2(0, this.fillIdx); pWriter._WriteUInt2(1, this.lineIdx); pWriter._WriteUInt2(2, this.effectIdx); pWriter._WriteUInt2(3, this.fontIdx); }; // Theme visio extensions end function CT_Hyperlink() { CBaseNoIdObject.call(this); this.snd = null; this.id = null; this.invalidUrl = null; this.action = null; this.tgtFrame = null; this.tooltip = null; this.history = null; this.highlightClick = null; this.endSnd = null; } InitClass(CT_Hyperlink, CBaseNoIdObject, 0); CT_Hyperlink.prototype.Write_ToBinary = function (w) { var nStartPos = w.GetCurPosition(); var nFlags = 0; w.WriteLong(0); if (null !== this.snd) { nFlags |= 1; w.WriteString2(this.snd); } if (null !== this.id) { nFlags |= 2; w.WriteString2(this.id); } if (null !== this.invalidUrl) { nFlags |= 4; w.WriteString2(this.invalidUrl); } if (null !== this.action) { nFlags |= 8; w.WriteString2(this.action); } if (null !== this.tgtFrame) { nFlags |= 16; w.WriteString2(this.tgtFrame); } if (null !== this.tooltip) { nFlags |= 32; w.WriteString2(this.tooltip); } if (null !== this.history) { nFlags |= 64; w.WriteBool(this.history); } if (null !== this.highlightClick) { nFlags |= 128; w.WriteBool(this.highlightClick); } if (null !== this.endSnd) { nFlags |= 256; w.WriteBool(this.endSnd); } var nEndPos = w.GetCurPosition(); w.Seek(nStartPos); w.WriteLong(nFlags); w.Seek(nEndPos); }; CT_Hyperlink.prototype.Read_FromBinary = function (r) { var nFlags = r.GetLong(); if (nFlags & 1) { this.snd = r.GetString2(); } if (nFlags & 2) { this.id = r.GetString2(); } if (nFlags & 4) { this.invalidUrl = r.GetString2(); } if (nFlags & 8) { this.action = r.GetString2(); } if (nFlags & 16) { this.tgtFrame = r.GetString2(); } if (nFlags & 32) { this.tooltip = r.GetString2(); } if (nFlags & 64) { this.history = r.GetBool(); } if (nFlags & 128) { this.highlightClick = r.GetBool(); } if (nFlags & 256) { this.endSnd = r.GetBool(); } }; CT_Hyperlink.prototype.createDuplicate = function () { var ret = new CT_Hyperlink(); ret.snd = this.snd; ret.id = this.id; ret.invalidUrl = this.invalidUrl; ret.action = this.action; ret.tgtFrame = this.tgtFrame; ret.tooltip = this.tooltip; ret.history = this.history; ret.highlightClick = this.highlightClick; ret.endSnd = this.endSnd; return ret; }; var drawingsChangesMap = window['AscDFH'].drawingsChangesMap; var drawingConstructorsMap = window['AscDFH'].drawingsConstructorsMap; var drawingContentChanges = window['AscDFH'].drawingContentChanges; drawingsChangesMap[AscDFH.historyitem_DefaultShapeDefinition_SetSpPr] = function (oClass, value) { oClass.spPr = value; }; drawingsChangesMap[AscDFH.historyitem_DefaultShapeDefinition_SetBodyPr] = function (oClass, value) { oClass.bodyPr = value; }; drawingsChangesMap[AscDFH.historyitem_DefaultShapeDefinition_SetLstStyle] = function (oClass, value) { oClass.lstStyle = value; }; drawingsChangesMap[AscDFH.historyitem_DefaultShapeDefinition_SetStyle] = function (oClass, value) { oClass.style = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetId] = function (oClass, value) { oClass.id = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetName] = function (oClass, value) { oClass.name = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetIsHidden] = function (oClass, value) { oClass.isHidden = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetDescr] = function (oClass, value) { oClass.descr = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetTitle] = function (oClass, value) { oClass.title = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetHlinkClick] = function (oClass, value) { oClass.hlinkClick = value; }; drawingsChangesMap[AscDFH.historyitem_CNvPr_SetHlinkHover] = function (oClass, value) { oClass.hlinkHover = value; }; drawingsChangesMap[AscDFH.historyitem_NvPr_SetIsPhoto] = function (oClass, value) { oClass.isPhoto = value; }; drawingsChangesMap[AscDFH.historyitem_NvPr_SetUserDrawn] = function (oClass, value) { oClass.userDrawn = value; }; drawingsChangesMap[AscDFH.historyitem_NvPr_SetPh] = function (oClass, value) { oClass.ph = value; }; drawingsChangesMap[AscDFH.historyitem_Ph_SetHasCustomPrompt] = function (oClass, value) { oClass.hasCustomPrompt = value; }; drawingsChangesMap[AscDFH.historyitem_Ph_SetIdx] = function (oClass, value) { oClass.idx = value; }; drawingsChangesMap[AscDFH.historyitem_Ph_SetOrient] = function (oClass, value) { oClass.orient = value; }; drawingsChangesMap[AscDFH.historyitem_Ph_SetSz] = function (oClass, value) { oClass.sz = value; }; drawingsChangesMap[AscDFH.historyitem_Ph_SetType] = function (oClass, value) { oClass.type = value; }; drawingsChangesMap[AscDFH.historyitem_UniNvPr_SetCNvPr] = function (oClass, value) { oClass.cNvPr = value; }; drawingsChangesMap[AscDFH.historyitem_UniNvPr_SetUniPr] = function (oClass, value) { oClass.uniPr = value; }; drawingsChangesMap[AscDFH.historyitem_UniNvPr_SetNvPr] = function (oClass, value) { oClass.nvPr = value; }; drawingsChangesMap[AscDFH.historyitem_ShapeStyle_SetLnRef] = function (oClass, value) { oClass.lnRef = value; }; drawingsChangesMap[AscDFH.historyitem_ShapeStyle_SetFillRef] = function (oClass, value) { oClass.fillRef = value; }; drawingsChangesMap[AscDFH.historyitem_ShapeStyle_SetFontRef] = function (oClass, value) { oClass.fontRef = value; }; drawingsChangesMap[AscDFH.historyitem_ShapeStyle_SetEffectRef] = function (oClass, value) { oClass.effectRef = value; }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetParent] = function (oClass, value) { oClass.parent = value; }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetOffX] = function (oClass, value) { oClass.offX = value; oClass.handleUpdatePosition(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetOffY] = function (oClass, value) { oClass.offY = value; oClass.handleUpdatePosition(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetExtX] = function (oClass, value) { oClass.extX = value; oClass.handleUpdateExtents(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetExtY] = function (oClass, value) { oClass.extY = value; oClass.handleUpdateExtents(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetChOffX] = function (oClass, value) { oClass.chOffX = value; oClass.handleUpdateChildOffset(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetChOffY] = function (oClass, value) { oClass.chOffY = value; oClass.handleUpdateChildOffset(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetChExtX] = function (oClass, value) { oClass.chExtX = value; oClass.handleUpdateChildExtents(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetChExtY] = function (oClass, value) { oClass.chExtY = value; oClass.handleUpdateChildExtents(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetFlipH] = function (oClass, value) { oClass.flipH = value; oClass.handleUpdateFlip(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetFlipV] = function (oClass, value) { oClass.flipV = value; oClass.handleUpdateFlip(); }; drawingsChangesMap[AscDFH.historyitem_Xfrm_SetRot] = function (oClass, value) { oClass.rot = value; oClass.handleUpdateRot(); }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetParent] = function (oClass, value) { oClass.parent = value; }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetBwMode] = function (oClass, value) { oClass.bwMode = value; }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetXfrm] = function (oClass, value) { oClass.xfrm = value; }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetGeometry] = function (oClass, value) { oClass.geometry = value; oClass.handleUpdateGeometry(); }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetFill] = function (oClass, value, FromLoad) { oClass.Fill = value; oClass.handleUpdateFill(); if (FromLoad) { if (typeof AscCommon.CollaborativeEditing !== "undefined") { if (oClass.Fill && oClass.Fill.fill && oClass.Fill.fill.type === c_oAscFill.FILL_TYPE_BLIP && typeof oClass.Fill.fill.RasterImageId === "string" && oClass.Fill.fill.RasterImageId.length > 0) { AscCommon.CollaborativeEditing.Add_NewImage(oClass.Fill.fill.RasterImageId); } } } }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetLn] = function (oClass, value) { oClass.ln = value; oClass.handleUpdateLn(); }; drawingsChangesMap[AscDFH.historyitem_SpPr_SetEffectPr] = function (oClass, value) { oClass.effectProps = value; oClass.handleUpdateGeometry(); }; drawingsChangesMap[AscDFH.historyitem_ExtraClrScheme_SetClrScheme] = function (oClass, value) { oClass.clrScheme = value; }; drawingsChangesMap[AscDFH.historyitem_ExtraClrScheme_SetClrMap] = function (oClass, value) { oClass.clrMap = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetColorScheme] = function (oClass, value) { oClass.themeElements.clrScheme = value; var oWordGraphicObjects = oClass.GetWordDrawingObjects(); if (oWordGraphicObjects) { oWordGraphicObjects.drawingDocument.CheckGuiControlColors(); oWordGraphicObjects.document.Api.chartPreviewManager.clearPreviews(); oWordGraphicObjects.document.Api.textArtPreviewManager.clear(); } }; drawingsChangesMap[AscDFH.historyitem_ThemeSetFontScheme] = function (oClass, value) { oClass.themeElements.fontScheme = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetFmtScheme] = function (oClass, value, bFromLoad) { oClass.themeElements.fmtScheme = value; if(bFromLoad) { if(typeof AscCommon.CollaborativeEditing !== "undefined") { if(value) { let aImages = []; value.getAllRasterImages(aImages); for(let nImage = 0; nImage < aImages.length; ++nImage) { AscCommon.CollaborativeEditing.Add_NewImage(aImages[nImage]); } } } } }; drawingsChangesMap[AscDFH.historyitem_ThemeSetName] = function (oClass, value) { oClass.name = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetIsThemeOverride] = function (oClass, value) { oClass.isThemeOverride = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetSpDef] = function (oClass, value) { oClass.spDef = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetLnDef] = function (oClass, value) { oClass.lnDef = value; }; drawingsChangesMap[AscDFH.historyitem_ThemeSetTxDef] = function (oClass, value) { oClass.txDef = value; }; drawingsChangesMap[AscDFH.historyitem_HF_SetDt] = function (oClass, value) { oClass.dt = value; }; drawingsChangesMap[AscDFH.historyitem_HF_SetFtr] = function (oClass, value) { oClass.ftr = value; }; drawingsChangesMap[AscDFH.historyitem_HF_SetHdr] = function (oClass, value) { oClass.hdr = value; }; drawingsChangesMap[AscDFH.historyitem_HF_SetSldNum] = function (oClass, value) { oClass.sldNum = value; }; drawingsChangesMap[AscDFH.historyitem_UniNvPr_SetUniSpPr] = function (oClass, value) { oClass.nvUniSpPr = value; }; drawingsChangesMap[AscDFH.historyitem_NvPr_SetUniMedia] = function (oClass, value) { oClass.unimedia = value; }; drawingContentChanges[AscDFH.historyitem_ClrMap_SetClr] = function (oClass) { return oClass.color_map }; drawingContentChanges[AscDFH.historyitem_ThemeAddExtraClrScheme] = function (oClass) { return oClass.extraClrSchemeLst; }; drawingContentChanges[AscDFH.historyitem_ThemeRemoveExtraClrScheme] = function (oClass) { return oClass.extraClrSchemeLst; }; drawingContentChanges[AscDFH.historyitem_CustomPropertiesAddProperty] = function (oClass) { return oClass.properties; }; drawingConstructorsMap[AscDFH.historyitem_ClrMap_SetClr] = CUniColor; drawingConstructorsMap[AscDFH.historyitem_DefaultShapeDefinition_SetBodyPr] = CBodyPr; drawingConstructorsMap[AscDFH.historyitem_DefaultShapeDefinition_SetLstStyle] = TextListStyle; drawingConstructorsMap[AscDFH.historyitem_ShapeStyle_SetLnRef] = drawingConstructorsMap[AscDFH.historyitem_ShapeStyle_SetFillRef] = drawingConstructorsMap[AscDFH.historyitem_ShapeStyle_SetEffectRef] = StyleRef; drawingConstructorsMap[AscDFH.historyitem_ShapeStyle_SetFontRef] = FontRef; drawingConstructorsMap[AscDFH.historyitem_SpPr_SetFill] = CUniFill; drawingConstructorsMap[AscDFH.historyitem_SpPr_SetLn] = CLn; drawingConstructorsMap[AscDFH.historyitem_SpPr_SetEffectPr] = CEffectProperties; drawingConstructorsMap[AscDFH.historyitem_ThemeSetColorScheme] = ClrScheme; drawingConstructorsMap[AscDFH.historyitem_ThemeSetFontScheme] = FontScheme; drawingConstructorsMap[AscDFH.historyitem_ThemeSetFmtScheme] = FmtScheme; drawingConstructorsMap[AscDFH.historyitem_UniNvPr_SetUniSpPr] = CNvUniSpPr; drawingConstructorsMap[AscDFH.historyitem_CNvPr_SetHlinkClick] = CT_Hyperlink; drawingConstructorsMap[AscDFH.historyitem_CNvPr_SetHlinkHover] = CT_Hyperlink; drawingConstructorsMap[AscDFH.historyitem_CustomPropertiesAddProperty] = CCustomProperty; AscDFH.changesFactory[AscDFH.historyitem_DefaultShapeDefinition_SetSpPr] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_DefaultShapeDefinition_SetBodyPr] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_DefaultShapeDefinition_SetLstStyle] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_DefaultShapeDefinition_SetStyle] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetId] = CChangesDrawingsLong; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetName] = CChangesDrawingsString; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetIsHidden] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetDescr] = CChangesDrawingsString; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetTitle] = CChangesDrawingsString; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetHlinkClick] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_CNvPr_SetHlinkHover] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_NvPr_SetIsPhoto] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_NvPr_SetUserDrawn] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_NvPr_SetPh] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_NvPr_AddExt] = CChangesDrawingsContentNoId; AscDFH.changesFactory[AscDFH.historyitem_NvPr_SetUniMedia] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_Ph_SetHasCustomPrompt] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_Ph_SetIdx] = CChangesDrawingsString; AscDFH.changesFactory[AscDFH.historyitem_Ph_SetOrient] = CChangesDrawingsLong; AscDFH.changesFactory[AscDFH.historyitem_Ph_SetSz] = CChangesDrawingsLong; AscDFH.changesFactory[AscDFH.historyitem_Ph_SetType] = CChangesDrawingsLong; AscDFH.changesFactory[AscDFH.historyitem_UniNvPr_SetCNvPr] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_UniNvPr_SetUniPr] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_UniNvPr_SetNvPr] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_UniNvPr_SetUniSpPr] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ShapeStyle_SetLnRef] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ShapeStyle_SetFillRef] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ShapeStyle_SetFontRef] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ShapeStyle_SetEffectRef] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetParent] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetOffX] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetOffY] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetExtX] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetExtY] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetChOffX] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetChOffY] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetChExtX] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetChExtY] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetFlipH] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetFlipV] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_Xfrm_SetRot] = CChangesDrawingsDouble; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetParent] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetBwMode] = CChangesDrawingsLong; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetXfrm] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetGeometry] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetFill] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetLn] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_SpPr_SetEffectPr] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ClrMap_SetClr] = CChangesDrawingsContentLongMap; AscDFH.changesFactory[AscDFH.historyitem_ExtraClrScheme_SetClrScheme] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ExtraClrScheme_SetClrMap] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetColorScheme] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetFontScheme] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetFmtScheme] = CChangesDrawingsObjectNoId; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetName] = CChangesDrawingsString; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetIsThemeOverride] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetSpDef] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetLnDef] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_ThemeSetTxDef] = CChangesDrawingsObject; AscDFH.changesFactory[AscDFH.historyitem_ThemeAddExtraClrScheme] = CChangesDrawingsContent; AscDFH.changesFactory[AscDFH.historyitem_ThemeRemoveExtraClrScheme] = CChangesDrawingsContent; AscDFH.changesFactory[AscDFH.historyitem_HF_SetDt] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_HF_SetFtr] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_HF_SetHdr] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_HF_SetSldNum] = CChangesDrawingsBool; AscDFH.changesFactory[AscDFH.historyitem_CustomPropertiesAddProperty] = CChangesDrawingsContentNoId; // COLOR ----------------------- /* var map_color_scheme = {}; map_color_scheme["accent1"] = 0; map_color_scheme["accent2"] = 1; map_color_scheme["accent3"] = 2; map_color_scheme["accent4"] = 3; map_color_scheme["accent5"] = 4; map_color_scheme["accent6"] = 5; map_color_scheme["bg1"] = 6; map_color_scheme["bg2"] = 7; map_color_scheme["dk1"] = 8; map_color_scheme["dk2"] = 9; map_color_scheme["folHlink"] = 10; map_color_scheme["hlink"] = 11; map_color_scheme["lt1"] = 12; map_color_scheme["lt2"] = 13; map_color_scheme["phClr"] = 14; map_color_scheme["tx1"] = 15; map_color_scheme["tx2"] = 16; */ //Типы изменений в классе CTheme function CreateFontRef(idx, color) { var ret = new FontRef(); ret.idx = idx; ret.Color = color; return ret; } function CreateStyleRef(idx, color) { var ret = new StyleRef(); ret.idx = idx; ret.Color = color; return ret; } function CreatePresetColor(id) { var ret = new CPrstColor(); ret.id = id; return ret; } function sRGB_to_scRGB(value) { if (value < 0) return 0; if (value <= 0.04045) return value / 12.92; if (value <= 1) return Math.pow(((value + 0.055) / 1.055), 2.4); return 1; } function scRGB_to_sRGB(value) { if (value < 0) return 0; if (value <= 0.0031308) return value * 12.92; if (value < 1) return 1.055 * (Math.pow(value, (1 / 2.4))) - 0.055; return 1; } function checkRasterImageId(rasterImageId) { var imageLocal = AscCommon.g_oDocumentUrls.getImageLocal(rasterImageId); return imageLocal ? imageLocal : rasterImageId; } var g_oThemeFontsName = {}; g_oThemeFontsName["+mj-cs"] = true; g_oThemeFontsName["+mj-ea"] = true; g_oThemeFontsName["+mj-lt"] = true; g_oThemeFontsName["+mn-cs"] = true; g_oThemeFontsName["+mn-ea"] = true; g_oThemeFontsName["+mn-lt"] = true; g_oThemeFontsName["majorAscii"] = true; g_oThemeFontsName["majorBidi"] = true; g_oThemeFontsName["majorEastAsia"] = true; g_oThemeFontsName["majorHAnsi"] = true; g_oThemeFontsName["minorAscii"] = true; g_oThemeFontsName["minorBidi"] = true; g_oThemeFontsName["minorEastAsia"] = true; g_oThemeFontsName["minorHAnsi"] = true; function isRealNumber(n) { return typeof n === "number" && !isNaN(n) && isFinite(n); } function isRealBool(b) { return b === true || b === false; } // Own realization of Object.groupBy for IE11 compatibility function groupBy(arr, callback) { return arr.reduce(function (storage, item) { let group = callback(item); storage[group] = storage[group] || []; storage[group].splice(0, 0, item); return storage; }, {}); } function writeLong(w, val) { w.WriteBool(isRealNumber(val)); if (isRealNumber(val)) { w.WriteLong(val); } } function readLong(r) { var ret; if (r.GetBool()) { ret = r.GetLong(); } else { ret = null; } return ret; } function writeDouble(w, val) { w.WriteBool(isRealNumber(val)); if (isRealNumber(val)) { w.WriteDouble(val); } } function readDouble(r) { var ret; if (r.GetBool()) { ret = r.GetDouble(); } else { ret = null; } return ret; } function writeDouble2(w, val) { const isNumber = typeof val === "number"; w.WriteBool(isNumber); if (isNumber) { w.WriteDouble2(val); } } function readDouble2(r) { var ret; if (r.GetBool()) { ret = r.GetDoubleLE(); } else { ret = null; } return ret; } function writeBool(w, val) { w.WriteBool(isRealBool(val)); if (isRealBool(val)) { w.WriteBool(val); } } function readBool(r) { var ret; if (r.GetBool()) { ret = r.GetBool(); } else { ret = null; } return ret; } function writeString(w, val) { w.WriteBool(typeof val === "string"); if (typeof val === "string") { w.WriteString2(val); } } function readString(r) { var ret; if (r.GetBool()) { ret = r.GetString2(); } else { ret = null; } return ret; } function writeObject(w, val) { const bIsRealObject = isRealObject(val); w.WriteBool(bIsRealObject); if (bIsRealObject) { w.WriteString2(val.Get_Id()); } } function readObject(r) { var ret; if (r.GetBool()) { ret = g_oTableId.Get_ById(r.GetString2()); } else { ret = null; } return ret; } function writeObjectNoId(w, val) { const bIsRealObject = isRealObject(val); w.WriteBool(bIsRealObject); if (bIsRealObject) { w.WriteLong(val.getObjectType()); val.Write_ToBinary(w); } } function readObjectNoId(r) { if (r.GetBool()) { const val = AscCommon.g_oTableId.GetClassFromFactory(r.GetLong()); val.Read_FromBinary(r); return val; } return null; } function writeObjectNoIdNoType(w, val) { const bIsRealObject = isRealObject(val); w.WriteBool(bIsRealObject); if (bIsRealObject) { val.Write_ToBinary(w); } } function readObjectNoIdNoType(r, classConstructor) { if (r.GetBool()) { const val = new classConstructor(); val.Read_FromBinary(r); return val; } return null; } function checkThemeFonts(oFontMap, font_scheme) { if (oFontMap["+mj-lt"]) { if (font_scheme.majorFont && typeof font_scheme.majorFont.latin === "string" && font_scheme.majorFont.latin.length > 0) oFontMap[font_scheme.majorFont.latin] = 1; delete oFontMap["+mj-lt"]; } if (oFontMap["+mj-ea"]) { if (font_scheme.majorFont && typeof font_scheme.majorFont.ea === "string" && font_scheme.majorFont.ea.length > 0) oFontMap[font_scheme.majorFont.ea] = 1; delete oFontMap["+mj-ea"]; } if (oFontMap["+mj-cs"]) { if (font_scheme.majorFont && typeof font_scheme.majorFont.cs === "string" && font_scheme.majorFont.cs.length > 0) oFontMap[font_scheme.majorFont.cs] = 1; delete oFontMap["+mj-cs"]; } if (oFontMap["+mn-lt"]) { if (font_scheme.minorFont && typeof font_scheme.minorFont.latin === "string" && font_scheme.minorFont.latin.length > 0) oFontMap[font_scheme.minorFont.latin] = 1; delete oFontMap["+mn-lt"]; } if (oFontMap["+mn-ea"]) { if (font_scheme.minorFont && typeof font_scheme.minorFont.ea === "string" && font_scheme.minorFont.ea.length > 0) oFontMap[font_scheme.minorFont.ea] = 1; delete oFontMap["+mn-ea"]; } if (oFontMap["+mn-cs"]) { if (font_scheme.minorFont && typeof font_scheme.minorFont.cs === "string" && font_scheme.minorFont.cs.length > 0) oFontMap[font_scheme.minorFont.cs] = 1; delete oFontMap["+mn-cs"]; } } function ExecuteNoHistory(f, oThis, args, notOffTableId) { AscCommon.History.TurnOff && AscCommon.History.TurnOff(); var b_table_id = false; if (!notOffTableId && g_oTableId && !g_oTableId.m_bTurnOff) { g_oTableId.m_bTurnOff = true; b_table_id = true; } var ret = f.apply(oThis, args); AscCommon.History.TurnOn && AscCommon.History.TurnOn(); if (b_table_id) { g_oTableId.m_bTurnOff = false; } return ret; } function checkObjectUnifill(obj, theme, colorMap) { if (obj && obj.Unifill) { obj.Unifill.check(theme, colorMap); var rgba = obj.Unifill.getRGBAColor(); obj.Color = new CDocumentColor(rgba.R, rgba.G, rgba.B, false); } } function checkTableCellPr(cellPr, slide, layout, master, theme) { cellPr.Check_PresentationPr(theme); var color_map, rgba; if (slide.clrMap) { color_map = slide.clrMap; } else if (layout.clrMap) { color_map = layout.clrMap; } else if (master.clrMap) { color_map = master.clrMap; } else { color_map = AscFormat.GetDefaultColorMap(); } checkObjectUnifill(cellPr.Shd, theme, color_map); if (cellPr.TableCellBorders) { checkObjectUnifill(cellPr.TableCellBorders.Left, theme, color_map); checkObjectUnifill(cellPr.TableCellBorders.Top, theme, color_map); checkObjectUnifill(cellPr.TableCellBorders.Right, theme, color_map); checkObjectUnifill(cellPr.TableCellBorders.Bottom, theme, color_map); checkObjectUnifill(cellPr.TableCellBorders.InsideH, theme, color_map); checkObjectUnifill(cellPr.TableCellBorders.InsideV, theme, color_map); } return cellPr; } var Ax_Counter = { GLOBAL_AX_ID_COUNTER: 1000 }; var TYPE_TRACK = { SHAPE: 0, GROUP: 0, GROUP_PASSIVE: 1, TEXT: 2, EMPTY_PH: 3, CHART_TEXT: 4, CROP: 5, FORM: 6, ANNOT_STAMP: 7 }; var TYPE_KIND = { SLIDE: 0, LAYOUT: 1, MASTER: 2, NOTES: 3, NOTES_MASTER: 4 }; var map_hightlight = {}; map_hightlight["black"] = 0x000000; map_hightlight["blue"] = 0x0000FF; map_hightlight["cyan"] = 0x00FFFF; map_hightlight["darkBlue"] = 0x00008B; map_hightlight["darkCyan"] = 0x008B8B; map_hightlight["darkGray"] = 0x0A9A9A9; map_hightlight["darkGreen"] = 0x006400; map_hightlight["darkMagenta"] = 0x800080; map_hightlight["darkRed"] = 0x8B0000; map_hightlight["darkYellow"] = 0x808000; map_hightlight["green"] = 0x00FF00; map_hightlight["lightGray"] = 0xD3D3D3; map_hightlight["magenta"] = 0xFF00FF; map_hightlight["none"] = 0x000000; map_hightlight["red"] = 0xFF0000; map_hightlight["white"] = 0xFFFFFF; map_hightlight["yellow"] = 0xFFFF00; var map_prst_color = {}; map_prst_color["aliceBlue"] = 0xF0F8FF; map_prst_color["antiqueWhite"] = 0xFAEBD7; map_prst_color["aqua"] = 0x00FFFF; map_prst_color["aquamarine"] = 0x7FFFD4; map_prst_color["azure"] = 0xF0FFFF; map_prst_color["beige"] = 0xF5F5DC; map_prst_color["bisque"] = 0xFFE4C4; map_prst_color["black"] = 0x000000; map_prst_color["blanchedAlmond"] = 0xFFEBCD; map_prst_color["blue"] = 0x0000FF; map_prst_color["blueViolet"] = 0x8A2BE2; map_prst_color["brown"] = 0xA52A2A; map_prst_color["burlyWood"] = 0xDEB887; map_prst_color["cadetBlue"] = 0x5F9EA0; map_prst_color["chartreuse"] = 0x7FFF00; map_prst_color["chocolate"] = 0xD2691E; map_prst_color["coral"] = 0xFF7F50; map_prst_color["cornflowerBlue"] = 0x6495ED; map_prst_color["cornsilk"] = 0xFFF8DC; map_prst_color["crimson"] = 0xDC143C; map_prst_color["cyan"] = 0x00FFFF; map_prst_color["darkBlue"] = 0x00008B; map_prst_color["darkCyan"] = 0x008B8B; map_prst_color["darkGoldenrod"] = 0xB8860B; map_prst_color["darkGray"] = 0xA9A9A9; map_prst_color["darkGreen"] = 0x006400; map_prst_color["darkGrey"] = 0xA9A9A9; map_prst_color["darkKhaki"] = 0xBDB76B; map_prst_color["darkMagenta"] = 0x8B008B; map_prst_color["darkOliveGreen"] = 0x556B2F; map_prst_color["darkOrange"] = 0xFF8C00; map_prst_color["darkOrchid"] = 0x9932CC; map_prst_color["darkRed"] = 0x8B0000; map_prst_color["darkSalmon"] = 0xE9967A; map_prst_color["darkSeaGreen"] = 0x8FBC8F; map_prst_color["darkSlateBlue"] = 0x483D8B; map_prst_color["darkSlateGray"] = 0x2F4F4F; map_prst_color["darkSlateGrey"] = 0x2F4F4F; map_prst_color["darkTurquoise"] = 0x00CED1; map_prst_color["darkViolet"] = 0x9400D3; map_prst_color["deepPink"] = 0xFF1493; map_prst_color["deepSkyBlue"] = 0x00BFFF; map_prst_color["dimGray"] = 0x696969; map_prst_color["dimGrey"] = 0x696969; map_prst_color["dkBlue"] = 0x00008B; map_prst_color["dkCyan"] = 0x008B8B; map_prst_color["dkGoldenrod"] = 0xB8860B; map_prst_color["dkGray"] = 0xA9A9A9; map_prst_color["dkGreen"] = 0x006400; map_prst_color["dkGrey"] = 0xA9A9A9; map_prst_color["dkKhaki"] = 0xBDB76B; map_prst_color["dkMagenta"] = 0x8B008B; map_prst_color["dkOliveGreen"] = 0x556B2F; map_prst_color["dkOrange"] = 0xFF8C00; map_prst_color["dkOrchid"] = 0x9932CC; map_prst_color["dkRed"] = 0x8B0000; map_prst_color["dkSalmon"] = 0xE9967A; map_prst_color["dkSeaGreen"] = 0x8FBC8B; map_prst_color["dkSlateBlue"] = 0x483D8B; map_prst_color["dkSlateGray"] = 0x2F4F4F; map_prst_color["dkSlateGrey"] = 0x2F4F4F; map_prst_color["dkTurquoise"] = 0x00CED1; map_prst_color["dkViolet"] = 0x9400D3; map_prst_color["dodgerBlue"] = 0x1E90FF; map_prst_color["firebrick"] = 0xB22222; map_prst_color["floralWhite"] = 0xFFFAF0; map_prst_color["forestGreen"] = 0x228B22; map_prst_color["fuchsia"] = 0xFF00FF; map_prst_color["gainsboro"] = 0xDCDCDC; map_prst_color["ghostWhite"] = 0xF8F8FF; map_prst_color["gold"] = 0xFFD700; map_prst_color["goldenrod"] = 0xDAA520; map_prst_color["gray"] = 0x808080; map_prst_color["green"] = 0x008000; map_prst_color["greenYellow"] = 0xADFF2F; map_prst_color["grey"] = 0x808080; map_prst_color["honeydew"] = 0xF0FFF0; map_prst_color["hotPink"] = 0xFF69B4; map_prst_color["indianRed"] = 0xCD5C5C; map_prst_color["indigo"] = 0x4B0082; map_prst_color["ivory"] = 0xFFFFF0; map_prst_color["khaki"] = 0xF0E68C; map_prst_color["lavender"] = 0xE6E6FA; map_prst_color["lavenderBlush"] = 0xFFF0F5; map_prst_color["lawnGreen"] = 0x7CFC00; map_prst_color["lemonChiffon"] = 0xFFFACD; map_prst_color["lightBlue"] = 0xADD8E6; map_prst_color["lightCoral"] = 0xF08080; map_prst_color["lightCyan"] = 0xE0FFFF; map_prst_color["lightGoldenrodYellow"] = 0xFAFAD2; map_prst_color["lightGray"] = 0xD3D3D3; map_prst_color["lightGreen"] = 0x90EE90; map_prst_color["lightGrey"] = 0xD3D3D3; map_prst_color["lightPink"] = 0xFFB6C1; map_prst_color["lightSalmon"] = 0xFFA07A; map_prst_color["lightSeaGreen"] = 0x20B2AA; map_prst_color["lightSkyBlue"] = 0x87CEFA; map_prst_color["lightSlateGray"] = 0x778899; map_prst_color["lightSlateGrey"] = 0x778899; map_prst_color["lightSteelBlue"] = 0xB0C4DE; map_prst_color["lightYellow"] = 0xFFFFE0; map_prst_color["lime"] = 0x00FF00; map_prst_color["limeGreen"] = 0x32CD32; map_prst_color["linen"] = 0xFAF0E6; map_prst_color["ltBlue"] = 0xADD8E6; map_prst_color["ltCoral"] = 0xF08080; map_prst_color["ltCyan"] = 0xE0FFFF; map_prst_color["ltGoldenrodYellow"] = 0xFAFA78; map_prst_color["ltGray"] = 0xD3D3D3; map_prst_color["ltGreen"] = 0x90EE90; map_prst_color["ltGrey"] = 0xD3D3D3; map_prst_color["ltPink"] = 0xFFB6C1; map_prst_color["ltSalmon"] = 0xFFA07A; map_prst_color["ltSeaGreen"] = 0x20B2AA; map_prst_color["ltSkyBlue"] = 0x87CEFA; map_prst_color["ltSlateGray"] = 0x778899; map_prst_color["ltSlateGrey"] = 0x778899; map_prst_color["ltSteelBlue"] = 0xB0C4DE; map_prst_color["ltYellow"] = 0xFFFFE0; map_prst_color["magenta"] = 0xFF00FF; map_prst_color["maroon"] = 0x800000; map_prst_color["medAquamarine"] = 0x66CDAA; map_prst_color["medBlue"] = 0x0000CD; map_prst_color["mediumAquamarine"] = 0x66CDAA; map_prst_color["mediumBlue"] = 0x0000CD; map_prst_color["mediumOrchid"] = 0xBA55D3; map_prst_color["mediumPurple"] = 0x9370DB; map_prst_color["mediumSeaGreen"] = 0x3CB371; map_prst_color["mediumSlateBlue"] = 0x7B68EE; map_prst_color["mediumSpringGreen"] = 0x00FA9A; map_prst_color["mediumTurquoise"] = 0x48D1CC; map_prst_color["mediumVioletRed"] = 0xC71585; map_prst_color["medOrchid"] = 0xBA55D3; map_prst_color["medPurple"] = 0x9370DB; map_prst_color["medSeaGreen"] = 0x3CB371; map_prst_color["medSlateBlue"] = 0x7B68EE; map_prst_color["medSpringGreen"] = 0x00FA9A; map_prst_color["medTurquoise"] = 0x48D1CC; map_prst_color["medVioletRed"] = 0xC71585; map_prst_color["midnightBlue"] = 0x191970; map_prst_color["mintCream"] = 0xF5FFFA; map_prst_color["mistyRose"] = 0xFFE4FF; map_prst_color["moccasin"] = 0xFFE4B5; map_prst_color["navajoWhite"] = 0xFFDEAD; map_prst_color["navy"] = 0x000080; map_prst_color["oldLace"] = 0xFDF5E6; map_prst_color["olive"] = 0x808000; map_prst_color["oliveDrab"] = 0x6B8E23; map_prst_color["orange"] = 0xFFA500; map_prst_color["orangeRed"] = 0xFF4500; map_prst_color["orchid"] = 0xDA70D6; map_prst_color["paleGoldenrod"] = 0xEEE8AA; map_prst_color["paleGreen"] = 0x98FB98; map_prst_color["paleTurquoise"] = 0xAFEEEE; map_prst_color["paleVioletRed"] = 0xDB7093; map_prst_color["papayaWhip"] = 0xFFEFD5; map_prst_color["peachPuff"] = 0xFFDAB9; map_prst_color["peru"] = 0xCD853F; map_prst_color["pink"] = 0xFFC0CB; map_prst_color["plum"] = 0xD3A0D3; map_prst_color["powderBlue"] = 0xB0E0E6; map_prst_color["purple"] = 0x800080; map_prst_color["red"] = 0xFF0000; map_prst_color["rosyBrown"] = 0xBC8F8F; map_prst_color["royalBlue"] = 0x4169E1; map_prst_color["saddleBrown"] = 0x8B4513; map_prst_color["salmon"] = 0xFA8072; map_prst_color["sandyBrown"] = 0xF4A460; map_prst_color["seaGreen"] = 0x2E8B57; map_prst_color["seaShell"] = 0xFFF5EE; map_prst_color["sienna"] = 0xA0522D; map_prst_color["silver"] = 0xC0C0C0; map_prst_color["skyBlue"] = 0x87CEEB; map_prst_color["slateBlue"] = 0x6A5AEB; map_prst_color["slateGray"] = 0x708090; map_prst_color["slateGrey"] = 0x708090; map_prst_color["snow"] = 0xFFFAFA; map_prst_color["springGreen"] = 0x00FF7F; map_prst_color["steelBlue"] = 0x4682B4; map_prst_color["tan"] = 0xD2B48C; map_prst_color["teal"] = 0x008080; map_prst_color["thistle"] = 0xD8BFD8; map_prst_color["tomato"] = 0xFF7347; map_prst_color["turquoise"] = 0x40E0D0; map_prst_color["violet"] = 0xEE82EE; map_prst_color["wheat"] = 0xF5DEB3; map_prst_color["white"] = 0xFFFFFF; map_prst_color["whiteSmoke"] = 0xF5F5F5; map_prst_color["yellow"] = 0xFFFF00; map_prst_color["yellowGreen"] = 0x9ACD32; function CColorMod(sName, nVal) { this.name = sName ? sName : ""; this.val = AscFormat.isRealNumber(nVal) ? nVal : 0; } CColorMod.prototype.setName = function (name) { this.name = name; }; CColorMod.prototype.setVal = function (val) { this.val = val; }; CColorMod.prototype.createDuplicate = function () { var duplicate = new CColorMod(); duplicate.name = this.name; duplicate.val = this.val; return duplicate; }; var cd16 = 1.0 / 6.0; var cd13 = 1.0 / 3.0; var cd23 = 2.0 / 3.0; var max_hls = 255.0; function CColorModifiers() { this.Mods = []; } CColorModifiers.prototype.isUsePow = (!AscCommon.AscBrowser.isSailfish || !AscCommon.AscBrowser.isEmulateDevicePixelRatio); CColorModifiers.prototype.getModValue = function (sName) { let oMod = this.getMod(sName); if(oMod) { return oMod.val; } return null; }; CColorModifiers.prototype.getMod = function (sName) { if (Array.isArray(this.Mods)) { for (let nMod = 0; nMod < this.Mods.length; ++nMod) { let oMod = this.Mods[nMod]; if (oMod && oMod.name === sName) { return oMod; } } } return null; }; CColorModifiers.prototype.Write_ToBinary = function (w) { w.WriteLong(this.Mods.length); for (var i = 0; i < this.Mods.length; ++i) { w.WriteString2(this.Mods[i].name); w.WriteLong(this.Mods[i].val); } }; CColorModifiers.prototype.Read_FromBinary = function (r) { var len = r.GetLong(); for (var i = 0; i < len; ++i) { var mod = new CColorMod(); mod.name = r.GetString2(); mod.val = r.GetLong(); this.Mods.push(mod); } }; CColorModifiers.prototype.addMod = function (mod) { let oModForAdd; if(arguments.length === 1) { if(arguments[0] instanceof CColorMod) { oModForAdd = arguments[0]; } } else if(arguments.length === 2) { if(typeof arguments[0] === "string" && AscFormat.isRealNumber(arguments[1])) { oModForAdd = new CColorMod(arguments[0], arguments[1]); } } if(oModForAdd) { this.Mods.push(oModForAdd); } }; CColorModifiers.prototype.removeMod = function (pos) { this.Mods.splice(pos, 1)[0]; }; CColorModifiers.prototype.IsIdentical = function (mods) { if (mods == null) { return false } if (mods.Mods == null || this.Mods.length !== mods.Mods.length) { return false; } for (var i = 0; i < this.Mods.length; ++i) { if (this.Mods[i].name !== mods.Mods[i].name || this.Mods[i].val !== mods.Mods[i].val) { return false; } } return true; }; CColorModifiers.prototype.createDuplicate = function () { var duplicate = new CColorModifiers(); for (var i = 0; i < this.Mods.length; ++i) { duplicate.Mods[i] = this.Mods[i].createDuplicate(); } return duplicate; }; CColorModifiers.prototype.RGB2HSL = function (R, G, B, HLS) { var iMin = (R < G ? R : G); iMin = iMin < B ? iMin : B;//Math.min(R, G, B); var iMax = (R > G ? R : G); iMax = iMax > B ? iMax : B;//Math.max(R, G, B); var iDelta = iMax - iMin; var dMax = (iMax + iMin) / 255.0; var dDelta = iDelta / 255.0; var H = 0; var S = 0; var L = dMax / 2.0; if (iDelta != 0) { if (L < 0.5) S = dDelta / dMax; else S = dDelta / (2.0 - dMax); dDelta = dDelta * 1530.0; var dR = (iMax - R) / dDelta; var dG = (iMax - G) / dDelta; var dB = (iMax - B) / dDelta; if (R == iMax) H = dB - dG; else if (G == iMax) H = cd13 + dR - dB; else if (B == iMax) H = cd23 + dG - dR; if (H < 0.0) H += 1.0; if (H > 1.0) H -= 1.0; } H = H * max_hls; if (H < 0) H = 0; if (H > 255) H = 255; S = S * max_hls; if (S < 0) S = 0; if (S > 255) S = 255; L = L * max_hls; if (L < 0) L = 0; if (L > 255) L = 255; HLS.H = H; HLS.S = S; HLS.L = L; }; CColorModifiers.prototype.HSL2RGB = function (HSL, RGB, bRoundValues) { if (HSL.S == 0) { const clampL = bRoundValues ? AscFormat.ClampColor(HSL.L) : HSL.L; RGB.R = clampL; RGB.G = clampL; RGB.B = clampL; } else { var H = HSL.H / max_hls; var S = HSL.S / max_hls; var L = HSL.L / max_hls; var v2 = 0; if (L < 0.5) v2 = L * (1.0 + S); else v2 = L + S - S * L; var v1 = 2.0 * L - v2; var R = (255 * this.Hue_2_RGB(v1, v2, H + cd13)); var G = (255 * this.Hue_2_RGB(v1, v2, H)); var B = (255 * this.Hue_2_RGB(v1, v2, H - cd13)); if (bRoundValues) { RGB.R = AscFormat.ClampColor(R); RGB.G = AscFormat.ClampColor(G); RGB.B = AscFormat.ClampColor(B); } else { RGB.R = R; RGB.G = G; RGB.B = B; } } }; CColorModifiers.prototype.Hue_2_RGB = function (v1, v2, vH) { if (vH < 0.0) vH += 1.0; if (vH > 1.0) vH -= 1.0; if (vH < cd16) return v1 + (v2 - v1) * 6.0 * vH; if (vH < 0.5) return v2; if (vH < cd23) return v1 + (v2 - v1) * (cd23 - vH) * 6.0; return v1; }; CColorModifiers.prototype.standardToLinear = function(nColorValue) { if (nColorValue <= 0.04045) { return nColorValue / 12.92; } return Math.pow((nColorValue + 0.055) / 1.055, 2.4); } CColorModifiers.prototype.linearToStandard = function(nColorValue) { if (nColorValue <= 0.0031308) { return 12.92 * nColorValue; } return 1.055 * Math.pow(nColorValue, 1 / 2.4) - 0.055; } CColorModifiers.prototype.RgbtoCrgbColor = function (c) { if (this.isUsePow) { return this.standardToLinear(c / 255); } return c / 255; }; CColorModifiers.prototype.RgbtoCrgb = function (RGBA) { RGBA.R = this.RgbtoCrgbColor(RGBA.R); RGBA.G = this.RgbtoCrgbColor(RGBA.G); RGBA.B = this.RgbtoCrgbColor(RGBA.B); }; CColorModifiers.prototype.CrgbtoRgbColor = function (c) { if (this.isUsePow) { return this.linearToStandard(c) * 255; } return c * 255; }; CColorModifiers.prototype.CrgbtoRgb = function (RGBA) { RGBA.R = this.CrgbtoRgbColor(RGBA.R); RGBA.G = this.CrgbtoRgbColor(RGBA.G); RGBA.B = this.CrgbtoRgbColor(RGBA.B); }; CColorModifiers.prototype.graySaturation = function(RGBA, nSat) { const L = RGBA.R; if (L < 128) { RGBA.R = L * (1 + nSat); RGBA.G = L * (1 - nSat); RGBA.B = L * (1 - 5 * nSat); } else { RGBA.R = (L + (255 - L) * nSat); RGBA.G = (L - (255 - L) * nSat); RGBA.B = (L - 5 * (255 - L) * nSat); } }; CColorModifiers.prototype.Apply = function (RGBA) { if (null == this.Mods) return; const _len = this.Mods.length; for (let i = 0; i < _len; i++) { const colorMod = this.Mods[i]; let val = colorMod.val / 100000; switch (colorMod.name) { case "alpha": { if (val < 0 || val > 1) { val = 0; } RGBA.A = 255 * val; break; } case "alphaMod": { RGBA.A = RGBA.A * val; break; } case "alphaOff": { if (val > 1) { RGBA.A = 0; } else { RGBA.A = RGBA.A + 255 * val; } break; } case"blue": { RGBA.B = this.CrgbtoRgbColor(val); break; } case"blueMod": { RGBA.B = this.RgbtoCrgbColor(RGBA.B); RGBA.B = RGBA.B * val; RGBA.B = this.CrgbtoRgbColor(RGBA.B); break; } case"blueOff": { RGBA.B = this.RgbtoCrgbColor(RGBA.B); RGBA.B = RGBA.B + val; RGBA.B = this.CrgbtoRgbColor(RGBA.B); break; } case"green": { RGBA.G = this.CrgbtoRgbColor(val); break; } case"greenMod": { RGBA.G = this.RgbtoCrgbColor(RGBA.G); RGBA.G = RGBA.G * val; RGBA.G = this.CrgbtoRgbColor(RGBA.G); break; } case"greenOff": { RGBA.G = this.RgbtoCrgbColor(RGBA.G); RGBA.G = RGBA.G + val; RGBA.G = this.CrgbtoRgbColor(RGBA.G); break; } case"red": { RGBA.R = this.CrgbtoRgbColor(val); break; } case"redMod": { RGBA.R = this.RgbtoCrgbColor(RGBA.R); RGBA.R = RGBA.R * val; RGBA.R = this.CrgbtoRgbColor(RGBA.R); break; } case"redOff": { RGBA.R = this.RgbtoCrgbColor(RGBA.R); RGBA.R = RGBA.R + val; RGBA.R = this.CrgbtoRgbColor(RGBA.R); break; } case"hueMod": { val = Math.max(0, val); if (val === 1) { continue; } const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const _H = HSL.H * val; HSL.H = _H - Math.floor(_H / 255) * 255; this.HSL2RGB(HSL, RGBA); break; } case"hueOff": { if (val === 0) { continue; } const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); val = (colorMod.val / 60000) * (max_hls / 360); let res = HSL.H + val; if (res > max_hls || res < 0) { res -= Math.floor(res / max_hls) * max_hls; } HSL.H = res; this.HSL2RGB(HSL, RGBA); break; } case"hue": { const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); val = (colorMod.val / 60000) * (max_hls / 360); const res = AscCommon.trimMinMaxValue(val, 0, max_hls); HSL.H = res; this.HSL2RGB(HSL, RGBA); break; } case"inv": { this.RgbtoCrgb(RGBA); RGBA.R = 1 - RGBA.R; RGBA.G = 1 - RGBA.G; RGBA.B = 1 - RGBA.B; this.CrgbtoRgb(RGBA); break; } case"lumMod": { if (val === 1) { continue; } const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); HSL.L = HSL.L * val; this.HSL2RGB(HSL, RGBA); break; } case"lumOff": { if (val === 0) { continue; } const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const res = HSL.L + val * max_hls; HSL.L = res; this.HSL2RGB(HSL, RGBA); break; } case"satMod": { if (val === 1) { continue; } const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); HSL.S = HSL.S * val; this.HSL2RGB(HSL, RGBA); break; } case"satOff": { if (val === 0) { continue; } if (RGBA.R === RGBA.G && RGBA.R === RGBA.B) { this.graySaturation(RGBA, val); } else { const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const res = HSL.S + val * max_hls; HSL.S = res; this.HSL2RGB(HSL, RGBA); } break; } case"wordShade": { if (colorMod.val === 255) { continue; } const val_ = colorMod.val / 255; const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); HSL.L = AscCommon.trimMinMaxValue(HSL.L * val_, 0, max_hls); this.HSL2RGB(HSL, RGBA); break; } case"wordTint": { if (colorMod.val === 255) { continue; } const _val = colorMod.val / 255; const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const L_ = HSL.L * _val + (255 - colorMod.val); HSL.L = AscCommon.trimMinMaxValue(L_, 0, max_hls); this.HSL2RGB(HSL, RGBA); break; } case"shade": { this.RgbtoCrgb(RGBA); if (val < 0 || val > 1) val = 0; RGBA.R = (RGBA.R * val); RGBA.G = (RGBA.G * val); RGBA.B = (RGBA.B * val); this.CrgbtoRgb(RGBA); break; } case"tint": { this.RgbtoCrgb(RGBA); if (val < 0 || val > 1) val = 0; RGBA.R = (1 - (1 - RGBA.R) * val); RGBA.G = (1 - (1 - RGBA.G) * val); RGBA.B = (1 - (1 - RGBA.B) * val); this.CrgbtoRgb(RGBA); break; } case"gamma": { RGBA.R = this.linearToStandard(RGBA.R / 255) * 255; RGBA.G = this.linearToStandard(RGBA.G / 255) * 255; RGBA.B = this.linearToStandard(RGBA.B / 255) * 255; break; } case"invGamma": { RGBA.R = this.standardToLinear(RGBA.R / 255) * 255; RGBA.G = this.standardToLinear(RGBA.G / 255) * 255; RGBA.B = this.standardToLinear(RGBA.B / 255) * 255; break; } case "comp": { const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const _H = (HSL.H + 0.5 * max_hls) % max_hls; HSL.H = _H; this.HSL2RGB(HSL, RGBA); break; } case "gray": { const gray = 0.2126 * RGBA.R + 0.7152 * RGBA.G + 0.0722 * RGBA.B; RGBA.R = gray; RGBA.G = gray; RGBA.B = gray; break; } case "sat": { if (RGBA.R === RGBA.G && RGBA.R === RGBA.B) { this.graySaturation(RGBA, val); } else { const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const res = val * max_hls; HSL.S = res; this.HSL2RGB(HSL, RGBA); } break; } case "lum": { const HSL = {H: 0, S: 0, L: 0}; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); const res = val * max_hls; HSL.L = res; this.HSL2RGB(HSL, RGBA); break; } } RGBA.R = AscCommon.trimMinMaxValue(RGBA.R, 0, 255); RGBA.G = AscCommon.trimMinMaxValue(RGBA.G, 0, 255); RGBA.B = AscCommon.trimMinMaxValue(RGBA.B, 0, 255); RGBA.A = AscCommon.trimMinMaxValue(RGBA.A, 0, 255); } if (_len) { RGBA.R = AscFormat.ClampColor(RGBA.R); RGBA.G = AscFormat.ClampColor(RGBA.G); RGBA.B = AscFormat.ClampColor(RGBA.B); RGBA.A = AscFormat.ClampColor(RGBA.A); } }; CColorModifiers.prototype.Merge = function (oOther) { if (!oOther) { return; } this.Mods = oOther.Mods.concat(this.Mods); }; CColorModifiers.prototype.getShadeOrTint = function() { const M = this.Mods; if(M.length === 1 && M[0].name === "lumMod" && M[0].val > 0) {//shade return -(100000 - M[0].val); } if(M.length === 2 && M[0].name === "lumMod" && M[0].val > 0 && M[1].name === "lumOff" && M[1].val > 0) { return (100000 - M[0].val); } return null; }; CColorModifiers.prototype.canGetShadeOrTint = function() { return this.getShadeOrTint() !== null; }; CColorModifiers.prototype.getEffectValue = function () { if(this.Mods.length === 1) { let oMod = this.Mods[0]; if(oMod.name === "wordTint") { return (255 - oMod.val) / 255; } if(oMod.name === "wordShade") { return -(255 - oMod.val) / 255; } } let nVal = this.getShadeOrTint(); if(nVal !== null) { return nVal / 100000; } return 0; }; function getPercentageValue(sVal) { var _len = sVal.length; if (_len === 0) return null; var _ret = null; if ((_len - 1) === sVal.indexOf("%")) { sVal.substring(0, _len - 1); _ret = parseFloat(sVal); if (isNaN(_ret)) _ret = null; } else { _ret = parseFloat(sVal); if (isNaN(_ret)) _ret = null; else _ret /= 1000; } return _ret; // let nVal = 0; // if (sVal.indexOf("%") > -1) { // let nPct = parseInt(sVal.slice(0, sVal.length - 1)); // if (AscFormat.isRealNumber(nPct)) { // return ((100000 * nPct / 100 + 0.5 >> 0) - 1); // } // return 0; // } // let nValPct = parseInt(sVal); // if (AscFormat.isRealNumber(nValPct)) { // return nValPct; // } // return 0; } function getPercentageValueForWrite(dVal) { if (!AscFormat.isRealNumber(dVal)) { return null; } return (dVal * 1000 + 0.5 >> 0); } /** * @constructor * @extends CBaseNoIdObject */ function CBaseColor() { CBaseNoIdObject.call(this); this.RGBA = { R: 0, G: 0, B: 0, A: 255, needRecalc: true }; this.Mods = null; //[]; } InitClass(CBaseColor, CBaseNoIdObject, 0); CBaseColor.prototype.type = c_oAscColor.COLOR_TYPE_NONE; CBaseColor.prototype.setR = function (pr) { this.RGBA.R = pr; }; CBaseColor.prototype.setG = function (pr) { this.RGBA.G = pr; }; CBaseColor.prototype.setB = function (pr) { this.RGBA.B = pr; }; CBaseColor.prototype.readModifier = function (name, reader) { if (MODS_MAP[name]) { var oMod = new CColorMod(); oMod.name = name; while (reader.MoveToNextAttribute()) { if (reader.GetNameNoNS() === "val") { let sVal = reader.GetValue(); let nLen = sVal.length; if(typeof sVal === "string" && nLen > 0) { if ((nLen - 1) === sVal.indexOf("%")) { sVal.substring(0, nLen - 1); let dVal = parseFloat(sVal); if (AscFormat.isRealNumber(dVal)) oMod.val = dVal * 1000 + 0.5 >> 0; } else { let dVal = parseFloat(sVal); if(AscFormat.isRealNumber(dVal)) { oMod.val = dVal + 0.5 >> 0; } } } break; } } if (!Array.isArray(this.Mods)) { this.Mods = []; } this.Mods.push(oMod); } return false; }; CBaseColor.prototype.getChannelValue = function (sVal) { let nValPct = getPercentageValue(sVal); return (255 * nValPct / 100000 + 0.5 >> 0); }; CBaseColor.prototype.getTypeName = function () { return ""; }; const COLOR_3DDKSHADOW = 21; const COLOR_3DFACE = 15; const COLOR_3DHIGHLIGHT = 20; const COLOR_3DHILIGHT = 20; const COLOR_3DLIGHT = 22; const COLOR_3DSHADOW = 16; const COLOR_ACTIVEBORDER = 10; const COLOR_ACTIVECAPTION = 2; const COLOR_APPWORKSPACE = 12; const COLOR_BACKGROUND = 1; const COLOR_BTNFACE = 15; const COLOR_BTNHIGHLIGHT = 20; const COLOR_BTNHILIGHT = 20; const COLOR_BTNSHADOW = 16; const COLOR_BTNTEXT = 18; const COLOR_CAPTIONTEXT = 9; const COLOR_DESKTOP = 1; const COLOR_GRAYTEXT = 17; const COLOR_HIGHLIGHT = 13; const COLOR_HIGHLIGHTTEXT = 14; const COLOR_HOTLIGHT = 26; const COLOR_INACTIVEBORDER = 11; const COLOR_INACTIVECAPTION = 3; const COLOR_INACTIVECAPTIONTEXT = 19; const COLOR_INFOBK = 24; const COLOR_INFOTEXT = 23; const COLOR_MENU = 4; const COLOR_GRADIENTACTIVECAPTION = 27; const COLOR_GRADIENTINACTIVECAPTION = 28; const COLOR_MENUHILIGHT = 29; const COLOR_MENUBAR = 30; const COLOR_MENUTEXT = 7; const COLOR_SCROLLBAR = 0; const COLOR_WINDOW = 5; const COLOR_WINDOWFRAME = 6; const COLOR_WINDOWTEXT = 8; function GetSysColor(nIndex) { // get color values from any windows theme // http://msdn.microsoft.com/en-us/library/windows/desktop/ms724371(v=vs.85).aspx //***************** GetSysColor values begin (Win7 x64) ***************** let nValue = 0x0; //***************** GetSysColor values begin (Win7 x64) ***************** switch (nIndex) { case COLOR_3DDKSHADOW: nValue = 0x696969; break; case COLOR_3DFACE: nValue = 0xf0f0f0; break; case COLOR_3DHIGHLIGHT: nValue = 0xffffff; break; // case COLOR_3DHILIGHT: nValue = 0xffffff; break; // is COLOR_3DHIGHLIGHT case COLOR_3DLIGHT: nValue = 0xe3e3e3; break; case COLOR_3DSHADOW: nValue = 0xa0a0a0; break; case COLOR_ACTIVEBORDER: nValue = 0xb4b4b4; break; case COLOR_ACTIVECAPTION: nValue = 0xd1b499; break; case COLOR_APPWORKSPACE: nValue = 0xababab; break; case COLOR_BACKGROUND: nValue = 0x0; break; // case COLOR_BTNFACE: nValue = 0xf0f0f0; break; // is COLOR_3DFACE // case COLOR_BTNHIGHLIGHT: nValue = 0xffffff; break; // is COLOR_3DHIGHLIGHT // case COLOR_BTNHILIGHT: nValue = 0xffffff; break; // is COLOR_3DHIGHLIGHT // case COLOR_BTNSHADOW: nValue = 0xa0a0a0; break; // is COLOR_3DSHADOW case COLOR_BTNTEXT: nValue = 0x0; break; case COLOR_CAPTIONTEXT: nValue = 0x0; break; // case COLOR_DESKTOP: nValue = 0x0; break; // is COLOR_BACKGROUND case COLOR_GRADIENTACTIVECAPTION: nValue = 0xead1b9; break; case COLOR_GRADIENTINACTIVECAPTION: nValue = 0xf2e4d7; break; case COLOR_GRAYTEXT: nValue = 0x6d6d6d; break; case COLOR_HIGHLIGHT: nValue = 0xff9933; break; case COLOR_HIGHLIGHTTEXT: nValue = 0xffffff; break; case COLOR_HOTLIGHT: nValue = 0xcc6600; break; case COLOR_INACTIVEBORDER: nValue = 0xfcf7f4; break; case COLOR_INACTIVECAPTION: nValue = 0xdbcdbf; break; case COLOR_INACTIVECAPTIONTEXT: nValue = 0x544e43; break; case COLOR_INFOBK: nValue = 0xe1ffff; break; case COLOR_INFOTEXT: nValue = 0x0; break; case COLOR_MENU: nValue = 0xf0f0f0; break; case COLOR_MENUHILIGHT: nValue = 0xff9933; break; case COLOR_MENUBAR: nValue = 0xf0f0f0; break; case COLOR_MENUTEXT: nValue = 0x0; break; case COLOR_SCROLLBAR: nValue = 0xc8c8c8; break; case COLOR_WINDOW: nValue = 0xffffff; break; case COLOR_WINDOWFRAME: nValue = 0x646464; break; case COLOR_WINDOWTEXT: nValue = 0x0; break; default: nValue = 0x0; break; } // switch (nIndex) //***************** GetSysColor values end ***************** return nValue; } /** * @constructor * @extends CBaseColor */ function CSysColor() { CBaseColor.call(this); this.id = ""; } InitClass(CSysColor, CBaseColor, 0); CSysColor.prototype.type = c_oAscColor.COLOR_TYPE_SYS; CSysColor.prototype.check = function () { var ret = this.RGBA.needRecalc; this.RGBA.needRecalc = false; return ret; }; CSysColor.prototype.Write_ToBinary = function (w) { w.WriteLong(this.type); w.WriteString2(this.id); w.WriteLong(((this.RGBA.R << 16) & 0xFF0000) + ((this.RGBA.G << 8) & 0xFF00) + this.RGBA.B); }; CSysColor.prototype.Read_FromBinary = function (r) { this.id = r.GetString2(); var RGB = r.GetLong(); this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; }; CSysColor.prototype.setId = function (id) { this.id = id; }; CSysColor.prototype.IsIdentical = function (color) { return color && color.type === this.type && color.id === this.id; }; CSysColor.prototype.Calculate = function (obj) { }; CSysColor.prototype.createDuplicate = function () { var duplicate = new CSysColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }; CSysColor.prototype.FillRGBFromVal = function(str) { let RGB = 0; if (str && str !== "") { switch (str.charAt(0)) { case '3': if (str === ("3dDkShadow")) { RGB = GetSysColor(COLOR_3DDKSHADOW); break; } if (str === ("3dLight")) { RGB = GetSysColor(COLOR_3DLIGHT); break; } break; case 'a': if (str === ("activeBorder")) { RGB = GetSysColor(COLOR_ACTIVEBORDER); break; } if (str === ("activeCaption")) { RGB = GetSysColor(COLOR_ACTIVECAPTION); break; } if (str === ("appWorkspace")) { RGB = GetSysColor(COLOR_APPWORKSPACE); break; } break; case 'b': if (str === ("background")) { RGB = GetSysColor(COLOR_BACKGROUND); break; } if (str === ("btnFace")) { RGB = GetSysColor(COLOR_BTNFACE); break; } if (str === ("btnHighlight")) { RGB = GetSysColor(COLOR_BTNHIGHLIGHT); break; } if (str === ("btnShadow")) { RGB = GetSysColor(COLOR_BTNSHADOW); break; } if (str === ("btnText")) { RGB = GetSysColor(COLOR_BTNTEXT); break; } break; case 'c': if (str === ("captionText")) { RGB = GetSysColor(COLOR_CAPTIONTEXT); break; } break; case 'g': if (str === ("gradientActiveCaption")) { RGB = GetSysColor(COLOR_GRADIENTACTIVECAPTION); break; } if (str === ("gradientInactiveCaption")) { RGB = GetSysColor(COLOR_GRADIENTINACTIVECAPTION); break; } if (str === ("grayText")) { RGB = GetSysColor(COLOR_GRAYTEXT); break; } break; case 'h': if (str === ("highlight")) { RGB = GetSysColor(COLOR_HIGHLIGHT); break; } if (str === ("highlightText")) { RGB = GetSysColor(COLOR_HIGHLIGHTTEXT); break; } if (str === ("hotLight")) { RGB = GetSysColor(COLOR_HOTLIGHT); break; } break; case 'i': if (str === ("inactiveBorder")) { RGB = GetSysColor(COLOR_INACTIVEBORDER); break; } if (str === ("inactiveCaption")) { RGB = GetSysColor(COLOR_INACTIVECAPTION); break; } if (str === ("inactiveCaptionText")) { RGB = GetSysColor(COLOR_INACTIVECAPTIONTEXT); break; } if (str === ("infoBk")) { RGB = GetSysColor(COLOR_INFOBK); break; } if (str === ("infoText")) { RGB = GetSysColor(COLOR_INFOTEXT); break; } break; case 'm': if (str === ("menu")) { RGB = GetSysColor(COLOR_MENU); break; } if (str === ("menuBar")) { RGB = GetSysColor(COLOR_MENUBAR); break; } if (str === ("menuHighlight")) { RGB = GetSysColor(COLOR_MENUHILIGHT); break; } if (str === ("menuText")) { RGB = GetSysColor(COLOR_MENUTEXT); break; } break; case 's': if (str === ("scrollBar")) { RGB = GetSysColor(COLOR_SCROLLBAR); break; } break; case 'w': if (str === ("window")) { RGB = GetSysColor(COLOR_WINDOW); break; } if (str === ("windowFrame")) { RGB = GetSysColor(COLOR_WINDOWFRAME); break; } if (str === ("windowText")) { RGB = GetSysColor(COLOR_WINDOWTEXT); break; } break; } } this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; } /** * @constructor * @extends CBaseColor */ function CPrstColor() { CBaseColor.call(this); this.id = ""; } InitClass(CPrstColor, CBaseColor, 0); CPrstColor.prototype.type = c_oAscColor.COLOR_TYPE_PRST; CPrstColor.prototype.Write_ToBinary = function (w) { w.WriteLong(this.type); w.WriteString2(this.id); }; CPrstColor.prototype.Read_FromBinary = function (r) { this.id = r.GetString2(); }; CPrstColor.prototype.setId = function (id) { this.id = id; }; CPrstColor.prototype.IsIdentical = function (color) { return color && color.type === this.type && color.id === this.id; }; CPrstColor.prototype.createDuplicate = function () { var duplicate = new CPrstColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }; CPrstColor.prototype.Calculate = function (obj) { var RGB = map_prst_color[this.id]; this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; }; CPrstColor.prototype.check = function () { var r, g, b, rgb; rgb = map_prst_color[this.id]; r = (rgb >> 16) & 0xFF; g = (rgb >> 8) & 0xFF; b = rgb & 0xFF; var RGBA = this.RGBA; if (RGBA.needRecalc) { RGBA.R = r; RGBA.G = g; RGBA.B = b; RGBA.needRecalc = false; return true; } else { if (RGBA.R === r && RGBA.G === g && RGBA.B === b) return false; else { RGBA.R = r; RGBA.G = g; RGBA.B = b; return true; } } }; var MODS_MAP = {}; MODS_MAP["alpha"] = true; MODS_MAP["alphaMod"] = true; MODS_MAP["alphaOff"] = true; MODS_MAP["blue"] = true; MODS_MAP["blueMod"] = true; MODS_MAP["blueOff"] = true; MODS_MAP["comp"] = true; MODS_MAP["gamma"] = true; MODS_MAP["gray"] = true; MODS_MAP["green"] = true; MODS_MAP["greenMod"] = true; MODS_MAP["greenOff"] = true; MODS_MAP["hue"] = true; MODS_MAP["hueMod"] = true; MODS_MAP["hueOff"] = true; MODS_MAP["inv"] = true; MODS_MAP["invGamma"] = true; MODS_MAP["lum"] = true; MODS_MAP["lumMod"] = true; MODS_MAP["lumOff"] = true; MODS_MAP["red"] = true; MODS_MAP["redMod"] = true; MODS_MAP["redOff"] = true; MODS_MAP["sat"] = true; MODS_MAP["satMod"] = true; MODS_MAP["satOff"] = true; MODS_MAP["shade"] = true; MODS_MAP["tint"] = true; function toHex(c) { var res = Number(c).toString(16).toUpperCase(); return res.length === 1 ? "0" + res : res; } function fRGBAToHexString(oRGBA) { return "" + toHex(oRGBA.R) + toHex(oRGBA.G) + toHex(oRGBA.B); } /** * @constructor * @extends CBaseColor */ function CRGBColor() { CBaseColor.call(this); this.h = null; this.s = null; this.l = null; } InitClass(CRGBColor, CBaseColor, 0); CRGBColor.prototype.type = c_oAscColor.COLOR_TYPE_SRGB; CRGBColor.prototype.check = function () { var ret = this.RGBA.needRecalc; this.RGBA.needRecalc = false; return ret; }; CRGBColor.prototype.writeToBinaryLong = function (w) { w.WriteLong(((this.RGBA.R << 16) & 0xFF0000) + ((this.RGBA.G << 8) & 0xFF00) + this.RGBA.B); }; CRGBColor.prototype.readFromBinaryLong = function (r) { var RGB = r.GetLong(); this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; }; CRGBColor.prototype.Write_ToBinary = function (w) { w.WriteLong(this.type); w.WriteLong(((this.RGBA.R << 16) & 0xFF0000) + ((this.RGBA.G << 8) & 0xFF00) + this.RGBA.B); }; CRGBColor.prototype.Read_FromBinary = function (r) { var RGB = r.GetLong(); this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; }; CRGBColor.prototype.setColor = function (r, g, b) { this.RGBA.R = r; this.RGBA.G = g; this.RGBA.B = b; }; CRGBColor.prototype.IsIdentical = function (color) { return color && color.type === this.type && color.RGBA.R === this.RGBA.R && color.RGBA.G === this.RGBA.G && color.RGBA.B === this.RGBA.B && color.RGBA.A === this.RGBA.A; }; CRGBColor.prototype.createDuplicate = function () { var duplicate = new CRGBColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }; CRGBColor.prototype.Calculate = function (obj) { }; CRGBColor.prototype.checkHSL = function () { if (this.h !== null && this.s !== null && this.l !== null) { CColorModifiers.prototype.HSL2RGB.call(this, {H: this.h, S: this.s, L: this.l}, this.RGBA, true); this.h = null; this.s = null; this.l = null; } }; CRGBColor.prototype.fromScRgb = function() { this.RGBA.R = 255 * this.scRGB_to_sRGB(this.RGBA.R); this.RGBA.G = 255 * this.scRGB_to_sRGB(this.RGBA.G); this.RGBA.B = 255 * this.scRGB_to_sRGB(this.RGBA.B); }; CRGBColor.prototype.scRGB_to_sRGB = function(value) { if( value < 0) return 0; if(value <= 0.0031308) return value * 12.92; if(value < 1) return 1.055 * (Math.pow(value , (1 / 2.4))) - 0.055; return 1; }; /** * @constructor * @extends CBaseColor */ function CSchemeColor() { CBaseColor.call(this); this.id = 0; } InitClass(CSchemeColor, CBaseColor, 0); CSchemeColor.prototype.type = c_oAscColor.COLOR_TYPE_SCHEME; CSchemeColor.prototype.check = function (theme, colorMap) { var RGBA, colors = theme.themeElements.clrScheme.colors; if (colorMap[this.id] != null && colors[colorMap[this.id]] != null) RGBA = colors[colorMap[this.id]].color.RGBA; else if (colors[this.id] != null) RGBA = colors[this.id].color.RGBA; if (!RGBA) { RGBA = {R: 0, G: 0, B: 0, A: 255}; } var _RGBA = this.RGBA; if (this.RGBA.needRecalc) { _RGBA.R = RGBA.R; _RGBA.G = RGBA.G; _RGBA.B = RGBA.B; _RGBA.A = RGBA.A; this.RGBA.needRecalc = false; return true; } else { if (_RGBA.R === RGBA.R && _RGBA.G === RGBA.G && _RGBA.B === RGBA.B && _RGBA.A === RGBA.A) { return false; } else { _RGBA.R = RGBA.R; _RGBA.G = RGBA.G; _RGBA.B = RGBA.B; _RGBA.A = RGBA.A; return true; } } }; CSchemeColor.prototype.getObjectType = function () { return AscDFH.historyitem_type_SchemeColor; }; CSchemeColor.prototype.Write_ToBinary = function (w) { w.WriteLong(this.type); w.WriteLong(this.id); }; CSchemeColor.prototype.Read_FromBinary = function (r) { this.id = r.GetLong(); }; CSchemeColor.prototype.setId = function (id) { this.id = id; }; CSchemeColor.prototype.IsIdentical = function (color) { return color && color.type === this.type && color.id === this.id; }; CSchemeColor.prototype.createDuplicate = function () { var duplicate = new CSchemeColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }; CSchemeColor.prototype.Calculate = function (theme, slide, layout, masterSlide, RGBA, colorMap) { if (theme && theme.themeElements && theme.themeElements.clrScheme) { if (this.id === phClr) { this.RGBA = RGBA; } else { var clrMap; if (colorMap && colorMap.color_map) { clrMap = colorMap.color_map; } else if (slide != null && slide.clrMap != null) { clrMap = slide.clrMap.color_map; } else if (layout != null && layout.clrMap != null) { clrMap = layout.clrMap.color_map; } else if (masterSlide != null && masterSlide.clrMap != null) { clrMap = masterSlide.clrMap.color_map; } else { clrMap = AscFormat.GetDefaultColorMap().color_map; } if (clrMap[this.id] != null && theme.themeElements.clrScheme.colors[clrMap[this.id]] != null && theme.themeElements.clrScheme.colors[clrMap[this.id]].color != null) this.RGBA = theme.themeElements.clrScheme.colors[clrMap[this.id]].color.RGBA; else if (theme.themeElements.clrScheme.colors[this.id] != null && theme.themeElements.clrScheme.colors[this.id].color != null) this.RGBA = theme.themeElements.clrScheme.colors[this.id].color.RGBA; } } }; /** * @constructor * @extends CBaseColor */ function CStyleColor() { CBaseColor.call(this); this.bAuto = false; this.val = null; } InitClass(CStyleColor, CBaseColor, 0); CStyleColor.prototype.type = c_oAscColor.COLOR_TYPE_STYLE; CStyleColor.prototype.check = function (theme, colorMap) { }; CStyleColor.prototype.Write_ToBinary = function (w) { w.WriteLong(this.type); writeBool(w, this.bAuto); writeLong(w, this.val); }; CStyleColor.prototype.Read_FromBinary = function (r) { this.bAuto = readBool(r); this.val = readLong(r); }; CStyleColor.prototype.IsIdentical = function (color) { return color && color.type === this.type && color.bAuto === this.bAuto && this.val === color.val; }; CStyleColor.prototype.createDuplicate = function () { var duplicate = new CStyleColor(); duplicate.bAuto = this.bAuto; duplicate.val = this.val; return duplicate; }; CStyleColor.prototype.Calculate = function (theme, slide, layout, masterSlide, RGBA, colorMap) { }; CStyleColor.prototype.getNoStyleUnicolor = function (nIdx, aColors) { if (this.bAuto || this.val === null) { return aColors[nIdx % aColors.length]; } else { return aColors[this.val % aColors.length]; } }; /** * @constructor * @extends CBaseNoIdObject */ function CUniColor() { CBaseNoIdObject.call(this); /** * @type {CSysColor | CPrstColor | CRGBColor | CSchemeColor | CStyleColor | any} */ this.color = null; this.Mods = null;//new CColorModifiers(); this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; } InitClass(CUniColor, CBaseNoIdObject, 0); CUniColor.prototype.checkPhColor = function (unicolor) { if (this.color && this.color.type === c_oAscColor.COLOR_TYPE_SCHEME && this.color.id === 14) { if (unicolor) { if (unicolor.color) { this.color = unicolor.color.createDuplicate(); } if (unicolor.Mods) { if (!this.Mods || this.Mods.Mods.length === 0) { this.Mods = unicolor.Mods.createDuplicate(); } else { this.Mods.Merge(unicolor.Mods); } } } } }; CUniColor.prototype.saveSourceFormatting = function () { var _ret = new CUniColor(); _ret.color = new CRGBColor(); _ret.color.RGBA.R = this.RGBA.R; _ret.color.RGBA.G = this.RGBA.G; _ret.color.RGBA.B = this.RGBA.B; return _ret; }; CUniColor.prototype.addColorMod = function (mod) { if (!this.Mods) { this.Mods = new CColorModifiers(); } this.Mods.addMod(mod.createDuplicate()); }; CUniColor.prototype.check = function (theme, colorMap) { if (this.color && this.color.check(theme, colorMap.color_map)/*возвращает был ли изменен RGBA*/) { this.RGBA.R = this.color.RGBA.R; this.RGBA.G = this.color.RGBA.G; this.RGBA.B = this.color.RGBA.B; if (this.Mods) this.Mods.Apply(this.RGBA); } }; CUniColor.prototype.getModValue = function (sModName) { if (this.Mods && this.Mods.getModValue) { return this.Mods.getModValue(sModName); } return null; }; CUniColor.prototype.getMod = function (sModName) { if (this.Mods && this.Mods.getMod) { return this.Mods.getMod(sModName); } return null; }; CUniColor.prototype.getTransparency = function () { let nAlphaVal = this.getModValue("alpha"); if(nAlphaVal === null) { return 0; } return (100000 - nAlphaVal) / 1000; }; CUniColor.prototype.checkWordMods = function () { return this.Mods && this.Mods.Mods.length === 1 && (this.Mods.Mods[0].name === "wordTint" || this.Mods.Mods[0].name === "wordShade"); }; CUniColor.prototype.convertToPPTXMods = function () { if (this.checkWordMods()) { var val_, mod_; if (this.Mods.Mods[0].name === "wordShade") { mod_ = new CColorMod("lumMod", ((this.Mods.Mods[0].val / 255) * 100000) >> 0); this.Mods.Mods.splice(0, this.Mods.Mods.length); this.Mods.Mods.push(mod_); } else { val_ = ((this.Mods.Mods[0].val / 255) * 100000) >> 0; this.Mods.Mods.splice(0, this.Mods.Mods.length); this.Mods.addMod("lumMod", val_); this.Mods.addMod("lumOff", 100000 - val_); } } }; CUniColor.prototype.canConvertPPTXModsToWord = function () { return this.Mods && this.Mods.canGetShadeOrTint(); }; CUniColor.prototype.convertToWordMods = function () { if (this.canConvertPPTXModsToWord()) { var mod_ = new CColorMod(); mod_.setName(this.Mods.Mods.length === 1 ? "wordShade" : "wordTint"); mod_.setVal(((this.Mods.Mods[0].val * 255) / 100000) >> 0); this.Mods.Mods.splice(0, this.Mods.Mods.length); this.Mods.Mods.push(mod_); } }; CUniColor.prototype.setColor = function (color) { this.color = color; }; CUniColor.prototype.setMods = function (mods) { this.Mods = mods; }; CUniColor.prototype.Write_ToBinary = function (w) { if (this.color) { w.WriteBool(true); this.color.Write_ToBinary(w); } else { w.WriteBool(false); } if (this.Mods) { w.WriteBool(true); this.Mods.Write_ToBinary(w); } else { w.WriteBool(false); } if(w.bWriteCompiledColors) { w.WriteLong(((this.RGBA.R << 16) & 0xFF0000) + ((this.RGBA.G << 8) & 0xFF00) + this.RGBA.B); } }; CUniColor.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { var type = r.GetLong(); switch (type) { case c_oAscColor.COLOR_TYPE_NONE: { break; } case c_oAscColor.COLOR_TYPE_SRGB: { this.color = new CRGBColor(); this.color.Read_FromBinary(r); break; } case c_oAscColor.COLOR_TYPE_PRST: { this.color = new CPrstColor(); this.color.Read_FromBinary(r); break; } case c_oAscColor.COLOR_TYPE_SCHEME: { this.color = new CSchemeColor(); this.color.Read_FromBinary(r); break; } case c_oAscColor.COLOR_TYPE_SYS: { this.color = new CSysColor(); this.color.Read_FromBinary(r); break; } case c_oAscColor.COLOR_TYPE_STYLE: { this.color = new CStyleColor(); this.color.Read_FromBinary(r); break; } } } if (r.GetBool()) { this.Mods = new CColorModifiers(); this.Mods.Read_FromBinary(r); } else { this.Mods = null; } if(r.bReadCompiledColors) { let RGB = r.GetLong(); this.RGBA.R = (RGB >> 16) & 0xFF; this.RGBA.G = (RGB >> 8) & 0xFF; this.RGBA.B = RGB & 0xFF; } }; CUniColor.prototype.createDuplicate = function () { var duplicate = new CUniColor(); if (this.color != null) { duplicate.color = this.color.createDuplicate(); } if (this.Mods) duplicate.Mods = this.Mods.createDuplicate(); duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }; CUniColor.prototype.IsIdentical = function (unicolor) { if (!isRealObject(unicolor)) { return false; } if (!isRealObject(unicolor.color) && isRealObject(this.color) || !isRealObject(this.color) && isRealObject(unicolor.color) || isRealObject(this.color) && !this.color.IsIdentical(unicolor.color)) { return false; } if (!isRealObject(unicolor.Mods) && isRealObject(this.Mods) && this.Mods.Mods.length > 0 || !isRealObject(this.Mods) && isRealObject(unicolor.Mods) && unicolor.Mods.Mods.length > 0 || isRealObject(this.Mods) && !this.Mods.IsIdentical(unicolor.Mods)) { return false; } return true; }; CUniColor.prototype.isEqual = CUniColor.prototype.IsIdentical; CUniColor.prototype.Calculate = function (theme, slide, layout, masterSlide, RGBA, colorMap) { if (this.color == null) return this.RGBA; this.color.Calculate(theme, slide, layout, masterSlide, RGBA, colorMap); this.RGBA = {R: this.color.RGBA.R, G: this.color.RGBA.G, B: this.color.RGBA.B, A: this.color.RGBA.A}; if (this.Mods) this.Mods.Apply(this.RGBA); }; CUniColor.prototype.compare = function (unicolor) { if (unicolor == null) { return null; } var _ret = new CUniColor(); if (this.color == null || unicolor.color == null || this.color.type !== unicolor.color.type) { return _ret; } if (this.Mods && unicolor.Mods) { var aMods = this.Mods.Mods; var aMods2 = unicolor.Mods.Mods; if (aMods.length === aMods2.length) { for (var i = 0; i < aMods.length; ++i) { if (aMods2[i].name !== aMods[i].name || aMods2[i].val !== aMods[i].val) { break; } } if (i === aMods.length) { _ret.Mods = this.Mods.createDuplicate(); } } } switch (this.color.type) { case c_oAscColor.COLOR_TYPE_NONE: { break; } case c_oAscColor.COLOR_TYPE_PRST: { _ret.color = new CPrstColor(); if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; } case c_oAscColor.COLOR_TYPE_SCHEME: { _ret.color = new CSchemeColor(); if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; } case c_oAscColor.COLOR_TYPE_SRGB: { _ret.color = new CRGBColor(); var _RGBA1 = this.color.RGBA; var _RGBA2 = this.color.RGBA; if (_RGBA1.R === _RGBA2.R && _RGBA1.G === _RGBA2.G && _RGBA1.B === _RGBA2.B) { _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; } if (_RGBA1.A === _RGBA2.A) { _ret.color.RGBA.A = this.color.RGBA.A; } break; } case c_oAscColor.COLOR_TYPE_SYS: { _ret.color = new CSysColor(); if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; } } return _ret; }; CUniColor.prototype.getCSSColor = function (transparent) { if (transparent != null) { return this.getCSSWithTransparent(1); } return this.getCSSWithTransparent(this.RGBA.A / 255); }; CUniColor.prototype.getCSSValue = function (r, g, b, a) { return "rgba(" + r + "," + g + "," + b + ","+ a +")"; }; CUniColor.prototype.getCSSWithTransparent = function(dTransparent) { const oC = this.RGBA; return this.getCSSValue(oC.R, oC.G, oC.B, dTransparent); }; CUniColor.prototype.isCorrect = function () { if (this.color !== null && this.color !== undefined) { return true; } return false; }; CUniColor.prototype.getNoStyleUnicolor = function (nIdx, aColors) { if (!this.color) { return null; } if (this.color.type !== c_oAscColor.COLOR_TYPE_STYLE) { return this; } return this.color.getNoStyleUnicolor(nIdx, aColors); }; CUniColor.prototype.UNICOLOR_MAP = { "hslClr": true, "scrgbClr": true, "srgbClr": true, "prstClr": true, "schemeClr": true, "sysClr": true }; CUniColor.prototype.isUnicolor = function (sName) { return !!CUniColor.prototype.UNICOLOR_MAP[sName]; }; function CreateUniColorRGB(r, g, b) { var ret = new CUniColor(); ret.setColor(new CRGBColor()); ret.color.setColor(r, g, b); return ret; } function CreateUniColorRGB2(color) { var ret = new CUniColor(); ret.setColor(new CRGBColor()); ret.color.setColor(ret.RGBA.R = color.getR(), ret.RGBA.G = color.getG(), ret.RGBA.B = color.getB()); return ret; } function CreateSolidFillRGB(r, g, b) { return AscFormat.CreateUniFillByUniColor(CreateUniColorRGB(r, g, b)); } function CreateSolidFillRGBA(r, g, b, a) { var ret = new CUniFill(); ret.setFill(new CSolidFill()); ret.fill.setColor(new CUniColor()); var _uni_color = ret.fill.color; _uni_color.setColor(new CRGBColor()); _uni_color.color.setColor(r, g, b); _uni_color.RGBA.R = r; _uni_color.RGBA.G = g; _uni_color.RGBA.B = b; _uni_color.RGBA.A = a; return ret; } // ----------------------------- function CBaseFill() { CBaseNoIdObject.call(this); } InitClass(CBaseFill, CBaseNoIdObject, 0); CBaseFill.prototype.type = c_oAscFill.FILL_TYPE_NONE; function CBlipFill() { CBaseFill.call(this); // Attributes: this.rotWithShape = null; // Content: this.blip; this.srcRect = null; this.tile = null; this.stretch = null; // this.Effects is used instead of this.blip this.RasterImageId = ""; this.Effects = []; this.type = c_oAscFillBlipType.STRETCH; this.texture_id = null; } InitClass(CBlipFill, CBaseFill, 0); CBlipFill.prototype.type = c_oAscFill.FILL_TYPE_BLIP; CBlipFill.prototype.saveSourceFormatting = function () { return this.createDuplicate(); }; CBlipFill.prototype.Write_ToBinary = function (w) { // Attributes: writeBool(w, this.rotWithShape); // Content: if (isRealObject(this.srcRect)) { writeBool(w, true); writeDouble(w, this.srcRect.l); writeDouble(w, this.srcRect.t); writeDouble(w, this.srcRect.r); writeDouble(w, this.srcRect.b); } else { writeBool(w, false); } if (isRealObject(this.tile)) { w.WriteBool(true); this.tile.Write_ToBinary(w); } else { w.WriteBool(false); } if (isRealObject(this.stretch)) { w.WriteBool(true); this.stretch.Write_ToBinary(w); } else { w.WriteBool(false); } // Others: writeString(w, this.RasterImageId); w.WriteLong(this.Effects.length); for (var i = 0; i < this.Effects.length; ++i) { this.Effects[i].Write_ToBinary(w); } }; CBlipFill.prototype.Read_FromBinary = function (r) { // Attributes: this.rotWithShape = readBool(r); // Content: if (readBool(r)) { this.srcRect = new CSrcRect(); this.srcRect.l = readDouble(r); this.srcRect.t = readDouble(r); this.srcRect.r = readDouble(r); this.srcRect.b = readDouble(r); } else { this.srcRect = null; } if (r.GetBool()) { this.tile = new CBlipFillTile(); this.tile.Read_FromBinary(r); } else { this.tile = null; } if (r.GetBool()) { this.stretch = new CBlipFillStretch(); this.stretch.Read_FromBinary(r); } else { this.stretch = null; } // Others: this.RasterImageId = readString(r); const _correct_id = AscCommon.getImageFromChanges(this.RasterImageId); if (null != _correct_id) this.RasterImageId = _correct_id; const effectsCount = r.GetLong(); for (let i = 0; i < effectsCount; ++i) { const effect = fReadEffect(r); if (!effect) break; this.Effects.push(effect); } }; CBlipFill.prototype.Refresh_RecalcData = function () { }; CBlipFill.prototype.check = function () { }; CBlipFill.prototype.checkWordMods = function () { return false; }; CBlipFill.prototype.convertToPPTXMods = function () { }; CBlipFill.prototype.canConvertPPTXModsToWord = function () { return false; }; CBlipFill.prototype.convertToWordMods = function () { }; CBlipFill.prototype.getObjectType = function () { return AscDFH.historyitem_type_BlipFill; }; CBlipFill.prototype.setRasterImageId = function (rasterImageId) { this.RasterImageId = checkRasterImageId(rasterImageId); }; CBlipFill.prototype.createDuplicate = function () { var duplicate = new CBlipFill(); duplicate.RasterImageId = this.RasterImageId; if (isRealObject(this.stretch)) { duplicate.stretch = this.stretch.createDuplicate(); } if (isRealObject(this.tile)) { duplicate.tile = this.tile.createDuplicate(); } if (null != this.srcRect) duplicate.srcRect = this.srcRect.createDublicate(); duplicate.rotWithShape = this.rotWithShape; if (Array.isArray(this.Effects)) { for (var i = 0; i < this.Effects.length; ++i) { if (this.Effects[i] && this.Effects[i].createDuplicate) { duplicate.Effects.push(this.Effects[i].createDuplicate()); } } } return duplicate; }; CBlipFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } if (fill.type !== c_oAscFill.FILL_TYPE_BLIP) { return false; } if (fill.RasterImageId !== this.RasterImageId) { return false; } /*if(fill.VectorImageBin != this.VectorImageBin) { return false; } */ if (fill.stretch != this.stretch) { return false; } if (isRealObject(this.tile)) { if (!this.tile.IsIdentical(fill.tile)) { return false; } } else { if (fill.tile) { return false; } } if(fill.srcRect && !this.srcRect || this.srcRect && !fill.srcRect) { return false; } if(fill.srcRect) { if(!fill.srcRect.isEqual(this.srcRect)) { return false; } } if (fill.Effects.length !== this.Effects.length) { return false; } for (let i = 0; i < fill.Effects.length; i += 1) { if (!fill.Effects[i].IsIdentical(this.Effects[i])) { return false; } } /* if(fill.rotWithShape != this.rotWithShape) { return false; } */ return true; }; CBlipFill.prototype.compare = function (fill) { if (fill == null || fill.type !== c_oAscFill.FILL_TYPE_BLIP) { return null; } var _ret = new CBlipFill(); if (this.RasterImageId == fill.RasterImageId) { _ret.RasterImageId = this.RasterImageId; } if (isRealObject(fill.stretch)) { _ret.stretch = this.stretch.isIdentical(fill.stretch) ? this.stretch.createDuplicate() : new CBlipFillStretch(); } if (isRealObject(fill.tile)) { _ret.tile = fill.tile.IsIdentical(this.tile) ? this.tile.createDuplicate() : new CBlipFillTile(); } if (fill.rotWithShape === this.rotWithShape) { _ret.rotWithShape = this.rotWithShape; } return _ret; }; CBlipFill.prototype.reduceSize = function (nW, nH, nMaxSize) { let dWK = nW / nMaxSize; let dHK = nH / nMaxSize; let dK = Math.max(dWK, dHK); let oResult = {W: nW, H: nH}; if (dK > 1) { oResult.W = ((nW / dK) + 0.5 >> 0); oResult.H = ((nH / dK) + 0.5 >> 0); } return oResult; }; CBlipFill.prototype.getBase64Data = function (bReduce, bReturnOrigIfCantDraw) { let sRasterImageId = this.RasterImageId; if (typeof sRasterImageId !== "string" || sRasterImageId.length === 0) { return null; } let oApi = Asc.editor || editor; let sDefaultResult = sRasterImageId; const nMaxSize = 640; if(bReturnOrigIfCantDraw === false) { sDefaultResult = null; } if (window["NATIVE_EDITOR_ENJINE"] && window["native"]) { let sSrc = AscCommon.getFullImageSrc2(sRasterImageId); let oImageSize = AscCommon.getSourceImageSize(sSrc); let nW = Math.max(oImageSize.width, 1); let nH = Math.max(oImageSize.height, 1); if (bReduce) { let oReducedSize = this.reduceSize(nW, nH, nMaxSize); nW = oReducedSize.W; nH = oReducedSize.H; } let oCanvas = new AscCommon.CNativeGraphics(); oCanvas.width = nW; oCanvas.height = nH; oCanvas.create(window["native"], oCanvas.width, oCanvas.height, oCanvas.width, oCanvas.height); oCanvas.transform(1, 0, 0, 1, 0, 0); oCanvas.drawImage(sSrc, 0, 0, oCanvas.width, oCanvas.height); let sResult; try { sResult = oCanvas.toDataURL("image/png"); } catch (err) { sResult = sDefaultResult; } return {img: sResult, w: oCanvas.width, h: oCanvas.height}; } if (!oApi) { return {img: sDefaultResult, w: null, h: null}; } let oImageLoader = oApi.ImageLoader; if (!oImageLoader) { return {img: sDefaultResult, w: null, h: null}; } let oImage = oImageLoader.map_image_index[AscCommon.getFullImageSrc2(sRasterImageId)]; if (!oImage || !oImage.Image || oImage.Status !== AscFonts.ImageLoadStatus.Complete) { return {img: sDefaultResult, w: null, h: null}; } if (sRasterImageId.indexOf("data:") === 0 && sRasterImageId.indexOf("base64") > 0) { return {img: sRasterImageId, w: oImage.Image.width, h: oImage.Image.height}; } let sResult = sDefaultResult; if (!window["NATIVE_EDITOR_ENJINE"]) { let oCanvas = document.createElement("canvas"); let nW = Math.max(oImage.Image.width, 1); let nH = Math.max(oImage.Image.height, 1); if (bReduce) { let oReducedSize = this.reduceSize(nW, nH, nMaxSize); nW = oReducedSize.W; nH = oReducedSize.H; } oCanvas.width = nW; oCanvas.height = nH; var oCtx = oCanvas.getContext("2d"); oCtx.drawImage(oImage.Image, 0, 0, oCanvas.width, oCanvas.height); try { sResult = oCanvas.toDataURL("image/png"); } catch (err) { sResult = sDefaultResult; } return {img: sResult, w: oCanvas.width, h: oCanvas.height}; } return {img: sRasterImageId, w: null, h: null}; }; CBlipFill.prototype.getBase64RasterImageId = function (bReduce, bReturnOrigIfCantDraw) { return this.getBase64Data(bReduce, bReturnOrigIfCantDraw).img; }; CBlipFill.prototype.getTransparent = function() { for (let nEffect = 0; nEffect < this.Effects.length; ++nEffect) { let oEffect = this.Effects[nEffect]; if (oEffect && oEffect instanceof AscFormat.CAlphaModFix && AscFormat.isRealNumber(oEffect.amt)) { return 255 * oEffect.amt / 100000; } } return null; }; CBlipFill.prototype.setTransparent = function(transparent) { if (transparent != null) { let i; for (i = 0; i < this.Effects.length; ++i) { if (this.Effects[i].Type === EFFECT_TYPE_ALPHAMODFIX) { this.Effects[i].amt = ((transparent * 100000 / 255) >> 0); break; } } if (i === this.Effects.length) { let oEffect = new CAlphaModFix(); oEffect.amt = ((transparent * 100000 / 255) >> 0); this.Effects.push(oEffect); } } }; CBlipFill.prototype.createDuplicateNoRaster = function(transparent) { let sId = this.RasterImageId; this.RasterImageId = null; let copy = this.createDuplicate(); this.RasterImageId = sId; return copy; }; CBlipFill.prototype.getTile = function () { return this.tile; }; CBlipFill.prototype.setTile = function (tile) { this.tile = tile; }; CBlipFill.prototype.getStretch = function () { return this.stretch; }; CBlipFill.prototype.setStretch = function (stretch) { this.stretch = stretch; }; CBlipFill.prototype.getSrcRect = function () { return this.srcRect; }; CBlipFill.prototype.setSrcRect = function (srcRect) { this.srcRect = srcRect; }; CBlipFill.prototype.getBlip = function () { return this.blip; }; CBlipFill.prototype.setBlip = function (blip) { this.blip = blip; }; CBlipFill.prototype.getRotWithShape = function () { return this.rotWithShape; }; CBlipFill.prototype.setRotWithShape = function (rotWithShape) { this.rotWithShape = rotWithShape; }; CBlipFill.prototype.getType = function () { return this.type; }; CBlipFill.prototype.setType = function (type) { this.type = type; }; CBlipFill.prototype.getTextureId = function () { return this.texture_id; }; CBlipFill.prototype.setTextureId = function (textureId) { this.texture_id = textureId; }; CBlipFill.prototype.getUrl = function () { return this.url; }; CBlipFill.prototype.setUrl = function (url, sToken) { this.url = this.RasterImageId = url; this.token = sToken; }; CBlipFill.flipTypes = { none: 0, x: 1, y: 2, xy: 3 }; function CSrcRect(l, t, r, b) { CBaseNoIdObject.call(this); // Attributes (offset as a percentage): this.l = isRealNumber(l) ? l : null; this.t = isRealNumber(t) ? t : null; this.r = isRealNumber(r) ? r : null; this.b = isRealNumber(b) ? b : null; } InitClass(CSrcRect, CBaseNoIdObject, 0); CSrcRect.prototype.setLTRB = function (l, t, r, b) { this.l = l; this.t = t; this.r = r; this.b = b; }; CSrcRect.prototype.setValueForFitBlipFill = function (shapeWidth, shapeHeight, imageWidth, imageHeight) { if ((imageHeight / imageWidth) > (shapeHeight / shapeWidth)) { const widthAspectRatio = imageWidth / shapeWidth; const heightAspectRatio = shapeHeight / imageHeight; const stretchPercentage = ((1 - widthAspectRatio * heightAspectRatio) / 2) * 100; this.l = 0; this.t = stretchPercentage; this.r = 100; this.b = 100 - stretchPercentage; } else { const widthAspectRatio = shapeWidth / imageWidth; const heightAspectRatio = imageHeight / shapeHeight; const stretchPercentage = ((1 - heightAspectRatio * widthAspectRatio) / 2) * 100; this.l = stretchPercentage; this.t = 0; this.r = 100 - stretchPercentage; this.b = 100; } }; CSrcRect.prototype.Write_ToBinary = function (w) { writeDouble(w, this.l); writeDouble(w, this.t); writeDouble(w, this.r); writeDouble(w, this.b); }; CSrcRect.prototype.Read_FromBinary = function (r) { this.l = readDouble(r); this.t = readDouble(r); this.r = readDouble(r); this.b = readDouble(r); }; CSrcRect.prototype.createDuplicate = CSrcRect.prototype.createDublicate = function () { const copy = new CSrcRect(this.l, this.t, this.r, this.b); return copy; }; CSrcRect.prototype.isFullRect = function () { const approximatelyEqual = AscFormat.fApproxEqual; return approximatelyEqual(this.l, 0) && approximatelyEqual(this.t, 0) && approximatelyEqual(this.r, 100) && approximatelyEqual(this.b, 100); }; CSrcRect.prototype.isEqual = function (other) { return other && other.l === this.l && other.t === this.t && other.r === this.r && other.b === this.b; }; function CBlipFillTile(tx, ty, sx, sy, flip, algn) { CBaseNoIdObject.call(this); // Attributes: this.tx = isRealNumber(tx) ? tx : null; this.ty = isRealNumber(ty) ? ty : null; this.sx = isRealNumber(sx) ? sx : null; this.sy = isRealNumber(sy) ? sy : null; this.flip = isRealNumber(flip) ? flip : null; this.algn = isRealNumber(algn) ? algn : null; } InitClass(CBlipFillTile, CBaseNoIdObject, 0); CBlipFillTile.prototype.Write_ToBinary = function (w) { writeLong(w, this.tx); writeLong(w, this.ty); writeLong(w, this.sx); writeLong(w, this.sy); writeLong(w, this.flip); writeLong(w, this.algn); }; CBlipFillTile.prototype.Read_FromBinary = function (r) { this.tx = readLong(r); this.ty = readLong(r); this.sx = readLong(r); this.sy = readLong(r); this.flip = readLong(r); this.algn = readLong(r); }; CBlipFillTile.prototype.createDuplicate = function () { const copy = new CBlipFillTile(this.tx, this.ty, this.sx, this.sy, this.flip, this.algn); return copy; }; CBlipFillTile.prototype.IsIdentical = function (other) { return other && other.tx == this.tx && other.ty == this.ty && other.sx == this.sx && other.sy == this.sy && other.flip == this.flip && other.algn == this.algn; }; CBlipFillTile.prototype.getTx = function () { return this.tx; }; CBlipFillTile.prototype.setTx = function (tx) { this.tx = tx; }; CBlipFillTile.prototype.getTy = function () { return this.ty; }; CBlipFillTile.prototype.setTy = function (ty) { this.ty = ty; }; CBlipFillTile.prototype.getSx = function () { return this.sx; }; CBlipFillTile.prototype.setSx = function (sx) { this.sx = sx; }; CBlipFillTile.prototype.getSy = function () { return this.sy; }; CBlipFillTile.prototype.setSy = function (sy) { this.sy = sy; }; CBlipFillTile.prototype.getFlip = function () { return this.flip; }; CBlipFillTile.prototype.setFlip = function (flip) { this.flip = flip; }; CBlipFillTile.prototype.getAlgn = function () { return this.algn; }; CBlipFillTile.prototype.setAlgn = function (algn) { this.algn = algn; }; function CBlipFillStretch(fillRect) { CBaseNoIdObject.call(this); // Content: this.fillRect = isRealObject(fillRect) ? fillRect : null; } InitClass(CBlipFillStretch, CBaseNoIdObject, 0); CBlipFillStretch.prototype.setFillRect = function () { if (arguments[0] instanceof AscFormat.CFillRect) { return this.fillRect = arguments[0]; } if (typeof arguments[0] === 'number' && arguments.length === 4) { return this.fillRect = new AscFormat.CFillRect(arguments[0], arguments[1], arguments[2], arguments[3]); } }; CBlipFillStretch.prototype.getFillRect = function () { return this.fillRect; }; CBlipFillStretch.prototype.Write_ToBinary = function (w) { const hasFillRect = AscCommon.isRealObject(this.fillRect); writeBool(w, hasFillRect); if (hasFillRect) this.fillRect.Write_ToBinary(w); }; CBlipFillStretch.prototype.Read_FromBinary = function (r) { const hasFillRect = readBool(r); if (hasFillRect) { const fillRect = new AscFormat.CFillRect(); fillRect.Read_FromBinary(r); this.fillRect = fillRect; } }; CBlipFillStretch.prototype.createDuplicate = function () { const copy = new CBlipFillStretch(); copy.fillRect = AscCommon.isRealObject(this.fillRect) ? this.fillRect.createDuplicate() : null; return copy; }; CBlipFillStretch.prototype.isIdentical = function (other) { return other && ( this.fillRect == null && other.fillRect == null || other.fillRect.l == this.fillRect.l && other.fillRect.t == this.fillRect.t && other.fillRect.r == this.fillRect.r && other.fillRect.b == this.fillRect.b); }; function CBlip(oBlipFill) { CBaseNoIdObject.call(this); this.blipFill = oBlipFill; this.link = null; } InitClass(CBlip, CBaseNoIdObject, 0); //-----Effects----- var EFFECT_TYPE_NONE = 0; var EFFECT_TYPE_OUTERSHDW = 1; var EFFECT_TYPE_GLOW = 2; var EFFECT_TYPE_DUOTONE = 3; var EFFECT_TYPE_XFRM = 4; var EFFECT_TYPE_BLUR = 5; var EFFECT_TYPE_PRSTSHDW = 6; var EFFECT_TYPE_INNERSHDW = 7; var EFFECT_TYPE_REFLECTION = 8; var EFFECT_TYPE_SOFTEDGE = 9; var EFFECT_TYPE_FILLOVERLAY = 10; var EFFECT_TYPE_ALPHACEILING = 11; var EFFECT_TYPE_ALPHAFLOOR = 12; var EFFECT_TYPE_TINTEFFECT = 13; var EFFECT_TYPE_RELOFF = 14; var EFFECT_TYPE_LUM = 15; var EFFECT_TYPE_HSL = 16; var EFFECT_TYPE_GRAYSCL = 17; var EFFECT_TYPE_ELEMENT = 18; var EFFECT_TYPE_ALPHAREPL = 19; var EFFECT_TYPE_ALPHAOUTSET = 20; var EFFECT_TYPE_ALPHAMODFIX = 21; var EFFECT_TYPE_ALPHABILEVEL = 22; var EFFECT_TYPE_BILEVEL = 23; var EFFECT_TYPE_DAG = 24; var EFFECT_TYPE_FILL = 25; var EFFECT_TYPE_CLRREPL = 26; var EFFECT_TYPE_CLRCHANGE = 27; var EFFECT_TYPE_ALPHAINV = 28; var EFFECT_TYPE_ALPHAMOD = 29; var EFFECT_TYPE_BLEND = 30; function fCreateEffectByType(type) { var ret = null; switch (type) { case EFFECT_TYPE_NONE: { break; } case EFFECT_TYPE_OUTERSHDW: { ret = new COuterShdw(); break; } case EFFECT_TYPE_GLOW: { ret = new CGlow(); break; } case EFFECT_TYPE_DUOTONE: { ret = new CDuotone(); break; } case EFFECT_TYPE_XFRM: { ret = new CXfrmEffect(); break; } case EFFECT_TYPE_BLUR: { ret = new CBlur(); break; } case EFFECT_TYPE_PRSTSHDW: { ret = new CPrstShdw(); break; } case EFFECT_TYPE_INNERSHDW: { ret = new CInnerShdw(); break; } case EFFECT_TYPE_REFLECTION: { ret = new CReflection(); break; } case EFFECT_TYPE_SOFTEDGE: { ret = new CSoftEdge(); break; } case EFFECT_TYPE_FILLOVERLAY: { ret = new CFillOverlay(); break; } case EFFECT_TYPE_ALPHACEILING: { ret = new CAlphaCeiling(); break; } case EFFECT_TYPE_ALPHAFLOOR: { ret = new CAlphaFloor(); break; } case EFFECT_TYPE_TINTEFFECT: { ret = new CTintEffect(); break; } case EFFECT_TYPE_RELOFF: { ret = new CRelOff(); break; } case EFFECT_TYPE_LUM: { ret = new CLumEffect(); break; } case EFFECT_TYPE_HSL: { ret = new CHslEffect(); break; } case EFFECT_TYPE_GRAYSCL: { ret = new CGrayscl(); break; } case EFFECT_TYPE_ELEMENT: { ret = new CEffectElement(); break; } case EFFECT_TYPE_ALPHAREPL: { ret = new CAlphaRepl(); break; } case EFFECT_TYPE_ALPHAOUTSET: { ret = new CAlphaOutset(); break; } case EFFECT_TYPE_ALPHAMODFIX: { ret = new CAlphaModFix(); break; } case EFFECT_TYPE_ALPHABILEVEL: { ret = new CAlphaBiLevel(); break; } case EFFECT_TYPE_BILEVEL: { ret = new CBiLevel(); break; } case EFFECT_TYPE_DAG: { ret = new CEffectContainer(); break; } case EFFECT_TYPE_FILL: { ret = new CFillEffect(); break; } case EFFECT_TYPE_CLRREPL: { ret = new CClrRepl(); break; } case EFFECT_TYPE_CLRCHANGE: { ret = new CClrChange(); break; } case EFFECT_TYPE_ALPHAINV: { ret = new CAlphaInv(); break; } case EFFECT_TYPE_ALPHAMOD: { ret = new CAlphaMod(); break; } case EFFECT_TYPE_BLEND: { ret = new CBlend(); break; } } return ret; } function fReadEffect(r) { var type = r.GetLong(); var ret = fCreateEffectByType(type); ret.Read_FromBinary(r); return ret; } function CAlphaBiLevel() { CBaseNoIdObject.call(this); this.tresh = 0; } InitClass(CAlphaBiLevel, CBaseNoIdObject, 0); CAlphaBiLevel.prototype.Type = EFFECT_TYPE_ALPHABILEVEL; CAlphaBiLevel.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHABILEVEL); w.WriteLong(this.tresh); }; CAlphaBiLevel.prototype.Read_FromBinary = function (r) { this.tresh = r.GetLong(); }; CAlphaBiLevel.prototype.createDuplicate = function () { var oCopy = new CAlphaBiLevel(); oCopy.tresh = this.tresh; return oCopy; }; CAlphaBiLevel.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.tresh !== oEffect.tresh) { return false; } return true; }; function CAlphaCeiling() { CBaseNoIdObject.call(this); } InitClass(CAlphaCeiling, CBaseNoIdObject, 0); CAlphaCeiling.prototype.Type = EFFECT_TYPE_ALPHACEILING; CAlphaCeiling.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHACEILING); }; CAlphaCeiling.prototype.Read_FromBinary = function (r) { }; CAlphaCeiling.prototype.createDuplicate = function () { var oCopy = new CAlphaCeiling(); return oCopy; }; CAlphaCeiling.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } return true; }; function CAlphaFloor() { CBaseNoIdObject.call(this); } InitClass(CBaseNoIdObject, CBaseNoIdObject, 0); CAlphaFloor.prototype.Type = EFFECT_TYPE_ALPHAFLOOR; CAlphaFloor.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAFLOOR); }; CAlphaFloor.prototype.Read_FromBinary = function (r) { }; CAlphaFloor.prototype.createDuplicate = function () { var oCopy = new CAlphaFloor(); return oCopy; }; CAlphaFloor.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } return true; }; function CAlphaInv() { CBaseNoIdObject.call(this); this.unicolor = null; } InitClass(CAlphaInv, CBaseNoIdObject, 0); CAlphaInv.prototype.Type = EFFECT_TYPE_ALPHAINV; CAlphaInv.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAINV); if (this.unicolor) { w.WriteBool(true); this.unicolor.Write_ToBinary(w); } else { w.WriteBool(false); } }; CAlphaInv.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.unicolor = new CUniColor(); this.unicolor.Read_FromBinary(r); } }; CAlphaInv.prototype.createDuplicate = function () { var oCopy = new CAlphaInv(); if (this.unicolor) { oCopy.unicolor = this.unicolor.createDuplicate(); } return oCopy; }; CAlphaInv.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.unicolor && oEffect.unicolor && this.unicolor.IsIdentical(oEffect.unicolor) || !this.unicolor && !oEffect.unicolor)) { return false; } return true; }; var effectcontainertypeSib = 0; var effectcontainertypeTree = 1; function CEffectContainer() { CBaseNoIdObject.call(this); this.type = null; this.name = null; this.effectList = []; } InitClass(CEffectContainer, CBaseNoIdObject, 0); CEffectContainer.prototype.Type = EFFECT_TYPE_DAG; CEffectContainer.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_DAG); writeLong(w, this.type); writeString(w, this.name); w.WriteLong(this.effectList.length); for (var i = 0; i < this.effectList.length; ++i) { this.effectList[i].Write_ToBinary(w); } }; CEffectContainer.prototype.Read_FromBinary = function (r) { this.type = readLong(r); this.name = readString(r); var count = r.GetLong(); for (var i = 0; i < count; ++i) { var effect = fReadEffect(r); if (!effect) { //error break; } this.effectList.push(effect); } }; CEffectContainer.prototype.createDuplicate = function () { var oCopy = new CEffectContainer(); oCopy.type = this.type; oCopy.name = this.name; for (var i = 0; i < this.effectList.length; ++i) { oCopy.effectList.push(this.effectList[i].createDuplicate()); } return oCopy; }; CEffectContainer.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.type !== oEffect.type) { return false; } if (this.effectList.length !== oEffect.effectList.length) { return false; } for (let i = 0; i < this.effectList.length; i += 1) { if (!this.effectList[i].IsIdentical(oEffect.effectList[i])) { return false; } } // todo ? /*if (this.name !== oEffect.name) { return false; }*/ return true; }; function CAlphaMod() { CBaseNoIdObject.call(this); this.cont = new CEffectContainer(); } InitClass(CAlphaMod, CBaseNoIdObject, 0); CAlphaMod.prototype.Type = EFFECT_TYPE_ALPHAMOD; CAlphaMod.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAMOD); this.cont.Write_ToBinary(w); }; CAlphaMod.prototype.Read_FromBinary = function (r) { this.cont.Read_FromBinary(r); }; CAlphaMod.prototype.createDuplicate = function () { var oCopy = new CAlphaMod(); oCopy.cont = this.cont.createDuplicate(); return oCopy; }; CAlphaMod.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.cont && oEffect.cont && this.cont.IsIdentical(oEffect.cont) || !this.cont && !oEffect.cont)) { return false; } return true; }; function CAlphaModFix() { CBaseNoIdObject.call(this); this.amt = null; } InitClass(CAlphaModFix, CBaseNoIdObject, 0); CAlphaModFix.prototype.Type = EFFECT_TYPE_ALPHAMODFIX; CAlphaModFix.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAMODFIX); writeLong(w, this.amt); }; CAlphaModFix.prototype.Read_FromBinary = function (r) { this.amt = readLong(r); }; CAlphaModFix.prototype.createDuplicate = function () { var oCopy = new CAlphaModFix(); oCopy.amt = this.amt; return oCopy; }; CAlphaModFix.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.amt !== oEffect.amt) { return false; } return true; }; function CAlphaOutset() { CBaseNoIdObject.call(this); this.rad = null; } InitClass(CAlphaOutset, CBaseNoIdObject, 0); CAlphaOutset.prototype.Type = EFFECT_TYPE_ALPHAOUTSET; CAlphaOutset.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAOUTSET); writeLong(w, this.rad); }; CAlphaOutset.prototype.Read_FromBinary = function (r) { this.rad = readLong(r); }; CAlphaOutset.prototype.createDuplicate = function () { var oCopy = new CAlphaOutset(); oCopy.rad = this.rad; return oCopy; }; CAlphaOutset.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.rad !== oEffect.rad) { return false; } return true; }; function CAlphaRepl() { CBaseNoIdObject.call(this); this.a = null; } InitClass(CAlphaRepl, CBaseNoIdObject, 0); CAlphaRepl.prototype.Type = EFFECT_TYPE_ALPHAREPL; CAlphaRepl.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ALPHAREPL); writeLong(w, this.a); }; CAlphaRepl.prototype.Read_FromBinary = function (r) { this.a = readLong(r); }; CAlphaRepl.prototype.createDuplicate = function () { var oCopy = new CAlphaRepl(); oCopy.a = this.a; return oCopy; }; CAlphaRepl.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.a !== oEffect.a) { return false; } return true; }; function CBiLevel() { CBaseNoIdObject.call(this); this.thresh = null; } InitClass(CBiLevel, CBaseNoIdObject, 0); CBiLevel.prototype.Type = EFFECT_TYPE_BILEVEL; CBiLevel.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_BILEVEL); writeLong(w, this.thresh); }; CBiLevel.prototype.Read_FromBinary = function (r) { this.thresh = readLong(r); }; CBiLevel.prototype.createDuplicate = function () { var oCopy = new CBiLevel(); oCopy.thresh = this.thresh; return oCopy; }; CBiLevel.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.thresh !== oEffect.thresh) { return false; } return true; }; var blendmodeDarken = 0; var blendmodeLighten = 1; var blendmodeMult = 2; var blendmodeOver = 3; var blendmodeScreen = 4; function CBlend() { CBaseNoIdObject.call(this); this.blend = null; this.cont = new CEffectContainer(); } InitClass(CBlend, CBaseNoIdObject, 0); CBlend.prototype.Type = EFFECT_TYPE_BLEND; CBlend.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_BLEND); writeLong(w, this.blend); this.cont.Write_ToBinary(w); }; CBlend.prototype.Read_FromBinary = function (r) { this.blend = readLong(r); this.cont.Read_FromBinary(r); }; CBlend.prototype.createDuplicate = function () { var oCopy = new CBlend(); oCopy.blend = this.blend; oCopy.cont = this.cont.createDuplicate(); return oCopy; }; CBlend.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.blend !== oEffect.blend) { return false; } if (!(this.cont && oEffect.cont && this.cont.IsIdentical(oEffect.cont) || !this.cont && !oEffect.cont)) { return false; } return true; }; function CBlur() { CBaseNoIdObject.call(this); this.rad = null; this.grow = null; } InitClass(CBlur, CBaseNoIdObject, 0); CBlur.prototype.Type = EFFECT_TYPE_BLUR; CBlur.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_BLUR); writeLong(w, this.rad); writeBool(w, this.grow); }; CBlur.prototype.Read_FromBinary = function (r) { this.rad = readLong(r); this.grow = readBool(r); }; CBlur.prototype.createDuplicate = function () { var oCopy = new CBlur(); oCopy.rad = this.rad; oCopy.grow = this.grow; return oCopy; }; CBlur.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.rad !== oEffect.rad) { return false; } if (this.grow !== oEffect.grow) { return false; } return true; }; function CClrChange() { CBaseNoIdObject.call(this); this.clrFrom = new CUniColor(); this.clrTo = new CUniColor(); this.useA = null; } InitClass(CClrChange, CBaseNoIdObject, 0); CClrChange.prototype.Type = EFFECT_TYPE_CLRCHANGE; CClrChange.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_CLRCHANGE); this.clrFrom.Write_ToBinary(w); this.clrTo.Write_ToBinary(w); writeBool(w, this.useA); }; CClrChange.prototype.Read_FromBinary = function (r) { this.clrFrom.Read_FromBinary(r); this.clrTo.Read_FromBinary(r); this.useA = readBool(r); }; CClrChange.prototype.createDuplicate = function () { var oCopy = new CClrChange(); oCopy.clrFrom = this.clrFrom.createDuplicate(); oCopy.clrTo = this.clrTo.createDuplicate(); oCopy.useA = this.useA; return oCopy; }; CClrChange.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.clrFrom && oEffect.clrFrom && this.clrFrom.IsIdentical(oEffect.clrFrom) || !this.clrFrom && !oEffect.clrFrom)) { return false; } if (!(this.clrTo && oEffect.clrTo && this.clrTo.IsIdentical(oEffect.clrTo) || !this.clrTo && !oEffect.clrTo)) { return false; } if (this.useA !== oEffect.useA) { return false; } return true; }; function CClrRepl() { CBaseNoIdObject.call(this); this.color = new CUniColor(); } InitClass(CClrRepl, CBaseNoIdObject, 0); CClrRepl.prototype.Type = EFFECT_TYPE_CLRREPL; CClrRepl.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_CLRREPL); this.color.Write_ToBinary(w); }; CClrRepl.prototype.Read_FromBinary = function (r) { this.color.Read_FromBinary(r); }; CClrRepl.prototype.createDuplicate = function () { var oCopy = new CClrRepl(); oCopy.color = this.color.createDuplicate(); return oCopy; }; CClrRepl.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.color && oEffect.color && this.color.IsIdentical(oEffect.color) || !this.color && !oEffect.color)) { return false; } return true; }; function CDuotone() { CBaseNoIdObject.call(this); this.colors = []; } InitClass(CDuotone, CBaseNoIdObject, 0); CDuotone.prototype.Type = EFFECT_TYPE_DUOTONE; CDuotone.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_DUOTONE); w.WriteLong(this.colors.length); for (var i = 0; i < this.colors.length; ++i) { this.colors[i].Write_ToBinary(w); } }; CDuotone.prototype.Read_FromBinary = function (r) { var count = r.GetLong(); for (var i = 0; i < count; ++i) { this.colors[i] = new CUniColor(); this.colors[i].Read_FromBinary(r); } }; CDuotone.prototype.createDuplicate = function () { var oCopy = new CDuotone(); for (var i = 0; i < this.colors.length; ++i) { oCopy.colors[i] = this.colors[i].createDuplicate(); } return oCopy; }; CDuotone.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.colors.length !== oEffect.colors.length) { return false; } for (let i = 0; i < this.colors.length; i += 1) { if (!this.colors[i].IsIdentical(oEffect.colors[i])) { return false; } } return true; }; function CEffectElement() { CBaseNoIdObject.call(this); this.ref = null; } InitClass(CEffectElement, CBaseNoIdObject, 0); CEffectElement.prototype.Type = EFFECT_TYPE_ELEMENT; CEffectElement.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_ELEMENT); writeString(w, this.ref); }; CEffectElement.prototype.Read_FromBinary = function (r) { this.ref = readString(r); }; CEffectElement.prototype.createDuplicate = function () { var oCopy = new CEffectElement(); oCopy.ref = this.ref; return oCopy; }; CEffectElement.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.ref !== oEffect.ref) { return false; } return true; }; function CFillEffect() { CBaseNoIdObject.call(this); this.fill = new CUniFill(); } InitClass(CFillEffect, CBaseNoIdObject, 0); CFillEffect.prototype.Type = EFFECT_TYPE_FILL; CFillEffect.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_FILL); this.fill.Write_ToBinary(w); }; CFillEffect.prototype.Read_FromBinary = function (r) { this.fill.Read_FromBinary(r); }; CFillEffect.prototype.createDuplicate = function () { var oCopy = new CFillEffect(); oCopy.fill = this.fill.createDuplicate(); return oCopy; }; CFillEffect.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.fill && oEffect.fill && this.fill.IsIdentical(oEffect.fill) || !this.fill && !oEffect.fill)) { return false; } return true; }; function CFillOverlay() { CBaseNoIdObject.call(this); this.fill = new CUniFill(); this.blend = 0; } InitClass(CFillOverlay, CBaseNoIdObject, 0); CFillOverlay.prototype.Type = EFFECT_TYPE_FILLOVERLAY; CFillOverlay.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_FILLOVERLAY); this.fill.Write_ToBinary(w); w.WriteLong(this.blend); }; CFillOverlay.prototype.Read_FromBinary = function (r) { this.fill.Read_FromBinary(r); this.blend = r.GetLong(); }; CFillOverlay.prototype.createDuplicate = function () { var oCopy = new CFillOverlay(); oCopy.fill = this.fill.createDuplicate(); oCopy.blend = this.blend; return oCopy; }; CFillOverlay.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.fill && oEffect.fill && this.fill.IsIdentical(oEffect) || !this.fill && !oEffect.fill)) { return false; } if (this.blend !== oEffect.blend) { return false; } return true; }; function CGlow() { CBaseNoIdObject.call(this); this.color = new CUniColor(); this.rad = null; } InitClass(CGlow, CBaseNoIdObject, 0); CGlow.prototype.Type = EFFECT_TYPE_GLOW; CGlow.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_GLOW); this.color.Write_ToBinary(w); writeLong(w, this.rad); }; CGlow.prototype.Read_FromBinary = function (r) { this.color.Read_FromBinary(r); this.rad = readLong(r); }; CGlow.prototype.createDuplicate = function () { var oCopy = new CGlow(); oCopy.color = this.color.createDuplicate(); oCopy.rad = this.rad; return oCopy; }; CGlow.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.color && oEffect.color && this.color.IsIdentical(oEffect.color) || !this.color && !oEffect.color)) { return false; } if (this.rad !== oEffect.rad) { return false; } return true; }; function CGrayscl() { CBaseNoIdObject.call(this); } InitClass(CGrayscl, CBaseNoIdObject, 0); CGrayscl.prototype.Type = EFFECT_TYPE_GRAYSCL; CGrayscl.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_GRAYSCL); }; CGrayscl.prototype.Read_FromBinary = function (r) { }; CGrayscl.prototype.createDuplicate = function () { var oCopy = new CGrayscl(); return oCopy; }; CGrayscl.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } return true; }; function CHslEffect() { CBaseNoIdObject.call(this); this.h = null; this.s = null; this.l = null; } InitClass(CHslEffect, CBaseNoIdObject, 0); CHslEffect.prototype.Type = EFFECT_TYPE_HSL; CHslEffect.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_HSL); writeLong(w, this.h); writeLong(w, this.s); writeLong(w, this.l); }; CHslEffect.prototype.Read_FromBinary = function (r) { this.h = readLong(r); this.s = readLong(r); this.l = readLong(r); }; CHslEffect.prototype.createDuplicate = function () { var oCopy = new CHslEffect(); oCopy.h = this.h; oCopy.s = this.s; oCopy.l = this.l; return oCopy; }; CHslEffect.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.h !== oEffect.h) { return false; } if (this.s !== oEffect.s) { return false; } if (this.l !== oEffect.l) { return false; } return true; }; function CInnerShdw() { CBaseNoIdObject.call(this); this.color = new CUniColor(); this.blurRad = null; this.dir = null; this.dist = null; } InitClass(CInnerShdw, CBaseNoIdObject, 0); CInnerShdw.prototype.Type = EFFECT_TYPE_INNERSHDW; CInnerShdw.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_INNERSHDW); this.color.Write_ToBinary(w); writeLong(w, this.blurRad); writeLong(w, this.dir); writeLong(w, this.dist); }; CInnerShdw.prototype.Read_FromBinary = function (r) { this.color.Read_FromBinary(r); this.blurRad = readLong(r); this.dir = readLong(r); this.dist = readLong(r); }; CInnerShdw.prototype.createDuplicate = function () { var oCopy = new CInnerShdw(); oCopy.color = this.color.createDuplicate(); oCopy.blurRad = this.blurRad; oCopy.dir = this.dir; oCopy.dist = this.dist; return oCopy; }; CInnerShdw.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.color && oEffect.color && this.color.IsIdentical(oEffect.color) || !this.color && !oEffect.color)) { return false; } if (this.blurRad !== oEffect.blurRad) { return false; } if (this.dir !== oEffect.dir) { return false; } if (this.dist !== oEffect.dist) { return false; } return true; }; function CLumEffect() { CBaseNoIdObject.call(this); this.bright = null; this.contrast = null; } InitClass(CLumEffect, CBaseNoIdObject, 0); CLumEffect.prototype.Type = EFFECT_TYPE_LUM; CLumEffect.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_LUM); writeLong(w, this.bright); writeLong(w, this.contrast); }; CLumEffect.prototype.Read_FromBinary = function (r) { this.bright = readLong(r); this.contrast = readLong(r); }; CLumEffect.prototype.createDuplicate = function () { var oCopy = new CLumEffect(); oCopy.bright = this.bright; oCopy.contrast = this.contrast; return oCopy; }; CLumEffect.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.bright !== oEffect.bright) { return false; } if (this.contrast !== oEffect.contrast) { return false; } return true; }; function COuterShdw() { CBaseNoIdObject.call(this); this.color = new CUniColor(); this.algn = null; this.blurRad = null; this.dir = null; this.dist = null; this.kx = null; this.ky = null; this.rotWithShape = null; this.sx = null; this.sy = null; } InitClass(COuterShdw, CBaseNoIdObject, 0); COuterShdw.prototype.Type = EFFECT_TYPE_OUTERSHDW; COuterShdw.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_OUTERSHDW); this.color.Write_ToBinary(w); writeLong(w, this.algn); writeLong(w, this.blurRad); writeLong(w, this.dir); writeLong(w, this.dist); writeLong(w, this.kx); writeLong(w, this.ky); writeBool(w, this.rotWithShape); writeLong(w, this.sx); writeLong(w, this.sy); }; COuterShdw.prototype.Read_FromBinary = function (r) { this.color.Read_FromBinary(r); this.algn = readLong(r); this.blurRad = readLong(r); this.dir = readLong(r); this.dist = readLong(r); this.kx = readLong(r); this.ky = readLong(r); this.rotWithShape = readBool(r); this.sx = readLong(r); this.sy = readLong(r); }; COuterShdw.prototype.createDuplicate = function () { var oCopy = new COuterShdw(); this.fillObject(oCopy); return oCopy; }; COuterShdw.prototype.fillObject = function (oCopy) { oCopy.color = this.color.createDuplicate(); oCopy.algn = this.algn; oCopy.blurRad = this.blurRad; oCopy.dir = this.dir; oCopy.dist = this.dist; oCopy.kx = this.kx; oCopy.ky = this.ky; oCopy.rotWithShape = this.rotWithShape; oCopy.sx = this.sx; oCopy.sy = this.sy; }; COuterShdw.prototype.IsIdentical = function (other) { if (!other) { return false; } if (!this.color && other.color || this.color && !other.color || !this.color.IsIdentical(other.color)) { return false; } if (other.algn !== this.algn || other.blurRad !== this.blurRad || other.dir !== this.dir || other.dist !== this.dist || other.kx !== this.kx || other.ky !== this.ky || other.rotWithShape !== this.rotWithShape || other.sx !== this.sx || other.sy !== this.sy) { return false; } return true; }; COuterShdw.prototype.getAscShdw = function() { const oCopy = new asc_CShadowProperty(); this.fillObject(oCopy); return oCopy; }; const RECT_ALIGN_B = 0; const RECT_ALIGN_BL = 1; const RECT_ALIGN_BR = 2; const RECT_ALIGN_CTR = 3; const RECT_ALIGN_L = 4; const RECT_ALIGN_R = 5; const RECT_ALIGN_T = 6; const RECT_ALIGN_TL = 7; const RECT_ALIGN_TR = 8; function asc_CShadowProperty() { COuterShdw.call(this); this.setDefault(); } InitClass(asc_CShadowProperty, COuterShdw, 0); asc_CShadowProperty.prototype.setDefault = function() { this.algn = 7; this.blurRad = 50800; this.color = new CUniColor(); this.color.color = new CPrstColor(); this.color.color.id = "black"; this.putTransparency(60); this.dir = 2700000; this.dist = 38100; this.rotWithShape = false; }; asc_CShadowProperty.prototype.putPreset = function (sAlgn) { this.setDefault(); switch (sAlgn) { case "l": { this.algn = RECT_ALIGN_L; this.dir = null; break; } case "t": { this.algn = RECT_ALIGN_T; this.dir = 5400000; break; } case "r": { this.algn = RECT_ALIGN_R; this.dir = 10800000; break; } case "b": { this.algn = null; this.dir = 16200000; break; } case "tl": { this.algn = RECT_ALIGN_TL; this.dir = 2700000; break; } case "tr": { this.algn = RECT_ALIGN_TR; this.dir = 8100000; break; } case "bl": { this.algn = RECT_ALIGN_BL; this.dir = 18900000; break; } case "br": { this.algn = RECT_ALIGN_BR; this.dir = 13500000; break; } case "ctr": { this.algn = RECT_ALIGN_CTR; this.dir = null; this.sx = 102000; this.sy = 102000; this.dist = null; break; } } }; asc_CShadowProperty.prototype.getPreset = function() { const aPresets = ["l", "t", "r", "b", "tl", "tr", "bl", "br", "ctr"]; for(let nPrst = 0; nPrst < aPresets.length; ++nPrst) { let oShd = new asc_CShadowProperty(); let sPrst = aPresets[nPrst]; oShd.putPreset(sPrst); if(this.IsIdentical(oShd)) { return sPrst; } } return null; }; asc_CShadowProperty.prototype.createDuplicate = function () { var oCopy = new asc_CShadowProperty(); this.fillObject(oCopy); return oCopy; }; asc_CShadowProperty.prototype.getTransparency = function() { if(!this.color) { return 0; } return this.color.getTransparency(); }; asc_CShadowProperty.prototype.putTransparency = function(nVal) { if(!this.color) { return; } if(!this.color.Mods) { this.color.Mods = new CColorModifiers(); } let oMod = this.color.Mods.getMod("alpha"); if(!oMod) { oMod = new CColorMod("alpha", (100 - nVal) * 1000 + 0.5 >> 0); this.color.Mods.addMod(oMod); } else { oMod.setVal((100 - nVal) * 1000 + 0.5 >> 0); } }; asc_CShadowProperty.prototype.getSize = function() { let nSX = this.sx !== null ? this.sx : 100000; let nSY = this.sy !== null ? this.sy : 100000; return Math.max(nSX, nSY) / 1000; }; asc_CShadowProperty.prototype.putSize = function(nVal) { this.sx = nVal * 1000 + 0.5 >> 0; this.sy = this.sx; }; asc_CShadowProperty.prototype.getAngle = function() { let nAngle = this.dir || 0; return nAngle / 60000; }; asc_CShadowProperty.prototype.putAngle = function(nVal) { this.dir = nVal * 60000 + 0.5 >> 0; }; asc_CShadowProperty.prototype.getDistance = function() { let nDist = this.dist || 0; return nDist / 36000; }; asc_CShadowProperty.prototype.putDistance = function(nVal) { this.dist = nVal * 36000 + 0.5 >> 0; }; asc_CShadowProperty.prototype.getColor = function() { return AscCommon.CreateAscColor(this.color); }; asc_CShadowProperty.prototype.putColor = function(oAscColor) { let nTransparency = this.getTransparency(); let nFlag; if(Asc.editor.editorId === AscCommon.c_oEditorId.Word) { nFlag = 1; } else { nFlag = 0; } this.color = AscFormat.CorrectUniColor(oAscColor, this.color, nFlag); this.putTransparency(nTransparency); }; asc_CShadowProperty.prototype.checkColor = function(oTheme, oColorMap) { if(this.color) { if(oTheme && oColorMap) { this.color.check(oTheme, oColorMap); } } }; asc_CShadowProperty.prototype["getTransparency"] = asc_CShadowProperty.prototype.getTransparency; asc_CShadowProperty.prototype["putTransparency"] = asc_CShadowProperty.prototype.putTransparency; asc_CShadowProperty.prototype["getSize"] = asc_CShadowProperty.prototype.getSize; asc_CShadowProperty.prototype["putSize"] = asc_CShadowProperty.prototype.putSize; asc_CShadowProperty.prototype["getAngle"] = asc_CShadowProperty.prototype.getAngle; asc_CShadowProperty.prototype["putAngle"] = asc_CShadowProperty.prototype.putAngle; asc_CShadowProperty.prototype["getDistance"] = asc_CShadowProperty.prototype.getDistance; asc_CShadowProperty.prototype["putDistance"] = asc_CShadowProperty.prototype.putDistance; asc_CShadowProperty.prototype["getColor"] = asc_CShadowProperty.prototype.getColor; asc_CShadowProperty.prototype["putColor"] = asc_CShadowProperty.prototype.putColor; asc_CShadowProperty.prototype["putPreset"] = asc_CShadowProperty.prototype.putPreset; asc_CShadowProperty.prototype["getPreset"] = asc_CShadowProperty.prototype.getPreset; window['Asc'] = window['Asc'] || {}; window['Asc']['asc_CShadowProperty'] = window['Asc'].asc_CShadowProperty = asc_CShadowProperty; function CPrstShdw() { CBaseNoIdObject.call(this); this.color = new CUniColor(); this.prst = null; this.dir = null; this.dist = null; } InitClass(CPrstShdw, CBaseNoIdObject, 0); CPrstShdw.prototype.Type = EFFECT_TYPE_PRSTSHDW; CPrstShdw.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_PRSTSHDW); this.color.Write_ToBinary(w); writeLong(w, this.prst); writeLong(w, this.dir); writeLong(w, this.dist); }; CPrstShdw.prototype.Read_FromBinary = function (r) { this.color.Read_FromBinary(r); this.prst = readLong(r); this.dir = readLong(r); this.dist = readLong(r); }; CPrstShdw.prototype.createDuplicate = function () { var oCopy = new CPrstShdw(); oCopy.color = this.color.createDuplicate(); oCopy.prst = this.prst; oCopy.dir = this.dir; oCopy.dist = this.dist; return oCopy; }; CPrstShdw.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (!(this.color && oEffect.color && this.color.IsIdentical(oEffect.color) || !this.color && !oEffect.color)) { return false; } if (this.prst !== oEffect.prst) { return false; } if (this.dir !== oEffect.dir) { return false; } if (this.dist !== oEffect.dist) { return false; } return true; }; function CReflection() { CBaseNoIdObject.call(this); this.algn = null; this.blurRad = null; this.stA = null; this.endA = null; this.stPos = null; this.endPos = null; this.dir = null; this.fadeDir = null; this.dist = null; this.kx = null; this.ky = null; this.rotWithShape = null; this.sx = null; this.sy = null; } InitClass(CReflection, CBaseNoIdObject, 0); CReflection.prototype.Type = EFFECT_TYPE_REFLECTION; CReflection.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_REFLECTION); writeLong(w, this.algn); writeLong(w, this.blurRad); writeLong(w, this.stA); writeLong(w, this.endA); writeLong(w, this.stPos); writeLong(w, this.endPos); writeLong(w, this.dir); writeLong(w, this.fadeDir); writeLong(w, this.dist); writeLong(w, this.kx); writeLong(w, this.ky); writeBool(w, this.rotWithShape); writeLong(w, this.sx); writeLong(w, this.sy); }; CReflection.prototype.Read_FromBinary = function (r) { this.algn = readLong(r); this.blurRad = readLong(r); this.stA = readLong(r); this.endA = readLong(r); this.stPos = readLong(r); this.endPos = readLong(r); this.dir = readLong(r); this.fadeDir = readLong(r); this.dist = readLong(r); this.kx = readLong(r); this.ky = readLong(r); this.rotWithShape = readBool(r); this.sx = readLong(r); this.sy = readLong(r); }; CReflection.prototype.createDuplicate = function () { var oCopy = new CReflection(); oCopy.algn = this.algn; oCopy.blurRad = this.blurRad; oCopy.stA = this.stA; oCopy.endA = this.endA; oCopy.stPos = this.stPos; oCopy.endPos = this.endPos; oCopy.dir = this.dir; oCopy.fadeDir = this.fadeDir; oCopy.dist = this.dist; oCopy.kx = this.kx; oCopy.ky = this.ky; oCopy.rotWithShape = this.rotWithShape; oCopy.sx = this.sx; oCopy.sy = this.sy; return oCopy; }; CReflection.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.algn !== oEffect.algn) { return false; } if (this.blurRad !== oEffect.blurRad) { return false; } if (this.stA !== oEffect.stA) { return false; } if (this.endA !== oEffect.endA) { return false; } if (this.stPos !== oEffect.stPos) { return false; } if (this.endPos !== oEffect.endPos) { return false; } if (this.dir !== oEffect.dir) { return false; } if (this.fadeDir !== oEffect.fadeDir) { return false; } if (this.dist !== oEffect.dist) { return false; } if (this.kx !== oEffect.kx) { return false; } if (this.ky !== oEffect.ky) { return false; } if (this.rotWithShape !== oEffect.rotWithShape) { return false; } if (this.sx !== oEffect.sx) { return false; } if (this.sy !== oEffect.sy) { return false; } return true; }; function CRelOff() { CBaseNoIdObject.call(this); this.tx = null; this.ty = null; } InitClass(CRelOff, CBaseNoIdObject, 0); CRelOff.prototype.Type = EFFECT_TYPE_RELOFF; CRelOff.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_RELOFF); writeLong(w, this.tx); writeLong(w, this.ty); }; CRelOff.prototype.Read_FromBinary = function (r) { this.tx = readLong(r); this.ty = readLong(r); }; CRelOff.prototype.createDuplicate = function () { var oCopy = new CRelOff(); oCopy.tx = this.tx; oCopy.ty = this.ty; return oCopy; }; CRelOff.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.tx !== oEffect.tx) { return false; } if (this.ty !== oEffect.ty) { return false; } return true; }; function CSoftEdge() { CBaseNoIdObject.call(this); this.rad = null; } InitClass(CSoftEdge, CBaseNoIdObject, 0); CSoftEdge.prototype.Type = EFFECT_TYPE_SOFTEDGE; CSoftEdge.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_SOFTEDGE); writeLong(w, this.rad); }; CSoftEdge.prototype.Read_FromBinary = function (r) { this.rad = readLong(r); }; CSoftEdge.prototype.createDuplicate = function () { var oCopy = new CSoftEdge(); oCopy.rad = this.rad; return oCopy; }; CSoftEdge.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.rad !== oEffect.rad) { return false; } return true; }; function CTintEffect() { CBaseNoIdObject.call(this); this.amt = null; this.hue = null; } InitClass(CTintEffect, CBaseNoIdObject, 0); CTintEffect.prototype.Type = EFFECT_TYPE_TINTEFFECT; CTintEffect.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_TINTEFFECT); writeLong(w, this.amt); writeLong(w, this.hue); }; CTintEffect.prototype.Read_FromBinary = function (r) { this.amt = readLong(r); this.hue = readLong(r); }; CTintEffect.prototype.createDuplicate = function () { var oCopy = new CTintEffect(); oCopy.amt = this.amt; oCopy.hue = this.hue; return oCopy; }; CTintEffect.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.amt !== oEffect.amt) { return false; } if (this.hue !== oEffect.hue) { return false; } return true; }; function CXfrmEffect() { CBaseNoIdObject.call(this); this.kx = null; this.ky = null; this.sx = null; this.sy = null; this.tx = null; this.ty = null; } InitClass(CXfrmEffect, CBaseNoIdObject, 0); CXfrmEffect.prototype.Type = EFFECT_TYPE_XFRM; CXfrmEffect.prototype.Write_ToBinary = function (w) { w.WriteLong(EFFECT_TYPE_XFRM); writeLong(w, this.kx); writeLong(w, this.ky); writeLong(w, this.sx); writeLong(w, this.sy); writeLong(w, this.tx); writeLong(w, this.ty); }; CXfrmEffect.prototype.Read_FromBinary = function (r) { this.kx = readLong(r); this.ky = readLong(r); this.sx = readLong(r); this.sy = readLong(r); this.tx = readLong(r); this.ty = readLong(r); }; CXfrmEffect.prototype.createDuplicate = function () { var oCopy = new CXfrmEffect(); oCopy.kx = this.kx; oCopy.ky = this.ky; oCopy.sx = this.sx; oCopy.sy = this.sy; oCopy.tx = this.tx; oCopy.ty = this.ty; return oCopy; }; CXfrmEffect.prototype.IsIdentical = function (oEffect) { if (this.Type !== oEffect.Type) { return false; } if (this.kx !== oEffect.kx) { return false; } if (this.ky !== oEffect.ky) { return false; } if (this.sx !== oEffect.sx) { return false; } if (this.sy !== oEffect.sy) { return false; } if (this.tx !== oEffect.tx) { return false; } if (this.ty !== oEffect.ty) { return false; } return true; }; //----------------- /** * @constructor */ function CSolidFill() { CBaseNoIdObject.call(this); this.type = c_oAscFill.FILL_TYPE_SOLID; this.color = null; } InitClass(CSolidFill, CBaseNoIdObject, 0); CSolidFill.prototype.check = function (theme, colorMap) { if (this.color) { this.color.check(theme, colorMap); } }; CSolidFill.prototype.saveSourceFormatting = function () { var _ret = new CSolidFill(); if (this.color) { _ret.color = this.color.saveSourceFormatting(); } return _ret; }; CSolidFill.prototype.setColor = function (color) { this.color = color; }; CSolidFill.prototype.Write_ToBinary = function (w) { if (this.color) { w.WriteBool(true); this.color.Write_ToBinary(w); } else { w.WriteBool(false); } }; CSolidFill.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.color = new CUniColor(); this.color.Read_FromBinary(r); } }; CSolidFill.prototype.checkWordMods = function () { return this.color && this.color.checkWordMods(); }; CSolidFill.prototype.convertToPPTXMods = function () { this.color && this.color.convertToPPTXMods(); }; CSolidFill.prototype.canConvertPPTXModsToWord = function () { return this.color && this.color.canConvertPPTXModsToWord(); }; CSolidFill.prototype.convertToWordMods = function () { this.color && this.color.convertToWordMods(); }; CSolidFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } if (fill.type !== c_oAscFill.FILL_TYPE_SOLID) { return false; } if (this.color) { return this.color.IsIdentical(fill.color); } return (fill.color === null); }; CSolidFill.prototype.createDuplicate = function () { var duplicate = new CSolidFill(); if (this.color) { duplicate.color = this.color.createDuplicate(); } return duplicate; }; CSolidFill.prototype.compare = function (fill) { if (fill == null || fill.type !== c_oAscFill.FILL_TYPE_SOLID) { return null; } if (this.color && fill.color) { var _ret = new CSolidFill(); _ret.color = this.color.compare(fill.color); return _ret; } return null; }; function CGs() { CBaseNoIdObject.call(this); this.color = null; this.pos = 0; } InitClass(CGs, CBaseNoIdObject, 0); CGs.prototype.setColor = function (color) { this.color = color; }; CGs.prototype.setPos = function (pos) { this.pos = pos; }; CGs.prototype.saveSourceFormatting = function () { var _ret = new CGs(); _ret.pos = this.pos; if (this.color) { _ret.color = this.color.saveSourceFormatting(); } return _ret; }; CGs.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.color)); if (isRealObject(this.color)) { this.color.Write_ToBinary(w); } writeLong(w, this.pos); }; CGs.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.color = new CUniColor(); this.color.Read_FromBinary(r); } else { this.color = null; } this.pos = readLong(r); }; CGs.prototype.IsIdentical = function (fill) { if (!fill) return false; if (this.pos !== fill.pos) return false; if (!this.color && fill.color || this.color && !fill.color || (this.color && fill.color && !this.color.IsIdentical(fill.color))) return false; return true; }; CGs.prototype.createDuplicate = function () { var duplicate = new CGs(); duplicate.pos = this.pos; if (this.color) { duplicate.color = this.color.createDuplicate(); } return duplicate; }; CGs.prototype.compare = function (gs) { if (gs.pos !== this.pos) { return null; } var compare_unicolor = this.color.compare(gs.color); if (!isRealObject(compare_unicolor)) { return null; } var ret = new CGs(); ret.color = compare_unicolor; ret.pos = gs.pos === this.pos ? this.pos : 0; return ret; }; function GradLin() { CBaseNoIdObject.call(this); this.angle = 5400000; this.scale = true; } InitClass(GradLin, CBaseNoIdObject, 0); GradLin.prototype.setAngle = function (angle) { this.angle = angle; }; GradLin.prototype.setScale = function (scale) { this.scale = scale; }; GradLin.prototype.Write_ToBinary = function (w) { writeLong(w, this.angle); writeBool(w, this.scale); }; GradLin.prototype.Read_FromBinary = function (r) { this.angle = readLong(r); this.scale = readBool(r); }; GradLin.prototype.IsIdentical = function (lin) { if (this.angle != lin.angle) return false; if (this.scale != lin.scale) return false; return true; }; GradLin.prototype.createDuplicate = function () { var duplicate = new GradLin(); duplicate.angle = this.angle; duplicate.scale = this.scale; return duplicate; }; GradLin.prototype.compare = function (lin) { return null; }; function GradPath() { CBaseNoIdObject.call(this); this.path = 0; this.rect = null; } InitClass(GradPath, CBaseNoIdObject, 0); GradPath.prototype.setPath = function (path) { this.path = path; }; GradPath.prototype.setRect = function (rect) { this.rect = rect; }; GradPath.prototype.Write_ToBinary = function (w) { writeLong(w, this.path); w.WriteBool(isRealObject(this.rect)); if (isRealObject(this.rect)) { this.rect.Write_ToBinary(w); } }; GradPath.prototype.Read_FromBinary = function (r) { this.path = readLong(r); if (r.GetBool()) { this.rect = new CSrcRect(); this.rect.Read_FromBinary(r); } }; GradPath.prototype.IsIdentical = function (path) { if (this.path !== path.path) return false; return true; }; GradPath.prototype.createDuplicate = function () { var duplicate = new GradPath(); duplicate.path = this.path; return duplicate; }; GradPath.prototype.compare = function (path) { return null; }; function CGradFill() { CBaseFill.call(this); // пока просто front color this.colors = []; this.lin = null; this.path = null; this.rotateWithShape = null; } InitClass(CGradFill, CBaseFill, 0); CGradFill.prototype.type = c_oAscFill.FILL_TYPE_GRAD; CGradFill.prototype.saveSourceFormatting = function () { var _ret = new CGradFill(); if (this.lin) { _ret.lin = this.lin.createDuplicate(); } if (this.path) { _ret.path = this.path.createDuplicate(); } for (var i = 0; i < this.colors.length; ++i) { _ret.colors.push(this.colors[i].saveSourceFormatting()); } return _ret; }; CGradFill.prototype.check = function (theme, colorMap) { for (var i = 0; i < this.colors.length; ++i) { if (this.colors[i].color) { this.colors[i].color.check(theme, colorMap); } } }; CGradFill.prototype.checkWordMods = function () { for (var i = 0; i < this.colors.length; ++i) { if (this.colors[i] && this.colors[i].color && this.colors[i].color.checkWordMods()) { return true; } } return false; }; CGradFill.prototype.convertToPPTXMods = function () { for (var i = 0; i < this.colors.length; ++i) { this.colors[i] && this.colors[i].color && this.colors[i].color.convertToPPTXMods(); } }; CGradFill.prototype.canConvertPPTXModsToWord = function () { for (var i = 0; i < this.colors.length; ++i) { if (this.colors[i] && this.colors[i].color && this.colors[i].color.canConvertPPTXModsToWord()) { return true; } } return false; }; CGradFill.prototype.convertToWordMods = function () { for (var i = 0; i < this.colors.length; ++i) { this.colors[i] && this.colors[i].color && this.colors[i].color.convertToWordMods(); } }; CGradFill.prototype.addColor = function (color) { this.colors.push(color); }; CGradFill.prototype.setLin = function (lin) { this.lin = lin; }; CGradFill.prototype.setPath = function (path) { this.path = path; }; CGradFill.prototype.Write_ToBinary = function (w) { w.WriteLong(this.colors.length); for (var i = 0; i < this.colors.length; ++i) { this.colors[i].Write_ToBinary(w); } w.WriteBool(isRealObject(this.lin)); if (isRealObject(this.lin)) { this.lin.Write_ToBinary(w); } w.WriteBool(isRealObject(this.path)); if (isRealObject(this.path)) { this.path.Write_ToBinary(w); } writeBool(w, this.rotateWithShape); }; CGradFill.prototype.Read_FromBinary = function (r) { var len = r.GetLong(); for (var i = 0; i < len; ++i) { this.colors[i] = new CGs(); this.colors[i].Read_FromBinary(r); } if (r.GetBool()) { this.lin = new GradLin(); this.lin.Read_FromBinary(r); } else { this.lin = null; } if (r.GetBool()) { this.path = new GradPath(); this.path.Read_FromBinary(r); } else { this.path = null; } this.rotateWithShape = readBool(r); }; CGradFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } if (fill.type !== c_oAscFill.FILL_TYPE_GRAD) { return false; } if (fill.colors.length !== this.colors.length) { return false; } for (var i = 0; i < this.colors.length; ++i) { if (!this.colors[i].IsIdentical(fill.colors[i])) { return false; } } if (!this.path && fill.path || this.path && !fill.path || (this.path && fill.path && !this.path.IsIdentical(fill.path))) return false; if (!this.lin && fill.lin || !fill.lin && this.lin || (this.lin && fill.lin && !this.lin.IsIdentical(fill.lin))) return false; if(this.rotateWithShape !== fill.rotateWithShape) { return false; } return true; }; CGradFill.prototype.createDuplicate = function () { var duplicate = new CGradFill(); for (var i = 0; i < this.colors.length; ++i) { duplicate.colors[i] = this.colors[i].createDuplicate(); } if (this.lin) duplicate.lin = this.lin.createDuplicate(); if (this.path) duplicate.path = this.path.createDuplicate(); if (this.rotateWithShape != null) duplicate.rotateWithShape = this.rotateWithShape; return duplicate; }; CGradFill.prototype.compare = function (fill) { if (fill == null || fill.type !== c_oAscFill.FILL_TYPE_GRAD) { return null; } var _ret = new CGradFill(); if (this.lin == null || fill.lin == null) _ret.lin = null; else { _ret.lin = new GradLin(); _ret.lin.angle = this.lin && this.lin.angle === fill.lin.angle ? fill.lin.angle : 5400000; _ret.lin.scale = this.lin && this.lin.scale === fill.lin.scale ? fill.lin.scale : true; } if (this.path == null || fill.path == null) { _ret.path = null; } else { _ret.path = new GradPath(); } if (this.colors.length === fill.colors.length) { for (var i = 0; i < this.colors.length; ++i) { var compare_unicolor = this.colors[i].compare(fill.colors[i]); if (!isRealObject(compare_unicolor)) { return null; } _ret.colors[i] = compare_unicolor; } } if(this.rotateWithShape === fill.rotateWithShape) { _ret.rotateWithShape = this.rotateWithShape; } return _ret; }; CGradFill.prototype.getColorsCount = function() { return this.colors.length; }; function CPattFill() { CBaseFill.call(this); this.ftype = 0; this.fgClr = null;//new CUniColor(); this.bgClr = null;//new CUniColor(); } InitClass(CPattFill, CBaseFill, 0); CPattFill.prototype.type = c_oAscFill.FILL_TYPE_PATT; CPattFill.prototype.check = function (theme, colorMap) { if (this.fgClr) this.fgClr.check(theme, colorMap); if (this.bgClr) this.bgClr.check(theme, colorMap); }; CPattFill.prototype.checkWordMods = function () { if (this.fgClr && this.fgClr.checkWordMods()) { return true; } return this.bgClr && this.bgClr.checkWordMods(); }; CPattFill.prototype.saveSourceFormatting = function () { var _ret = new CPattFill(); if (this.fgClr) { _ret.fgClr = this.fgClr.saveSourceFormatting(); } if (this.bgClr) { _ret.bgClr = this.bgClr.saveSourceFormatting(); } _ret.ftype = this.ftype; return _ret; }; CPattFill.prototype.convertToPPTXMods = function () { this.fgClr && this.fgClr.convertToPPTXMods(); this.bgClr && this.bgClr.convertToPPTXMods(); }; CPattFill.prototype.canConvertPPTXModsToWord = function () { if (this.fgClr && this.fgClr.canConvertPPTXModsToWord()) { return true; } return this.bgClr && this.bgClr.canConvertPPTXModsToWord(); }; CPattFill.prototype.convertToWordMods = function () { this.fgClr && this.fgClr.convertToWordMods(); this.bgClr && this.bgClr.convertToWordMods(); }; CPattFill.prototype.setFType = function (fType) { this.ftype = fType; }; CPattFill.prototype.setFgColor = function (fgClr) { this.fgClr = fgClr; }; CPattFill.prototype.setBgColor = function (bgClr) { this.bgClr = bgClr; }; CPattFill.prototype.Write_ToBinary = function (w) { writeLong(w, this.ftype); w.WriteBool(isRealObject(this.fgClr)); if (isRealObject(this.fgClr)) { this.fgClr.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bgClr)); if (isRealObject(this.bgClr)) { this.bgClr.Write_ToBinary(w); } }; CPattFill.prototype.Read_FromBinary = function (r) { this.ftype = readLong(r); if (r.GetBool()) { this.fgClr = new CUniColor(); this.fgClr.Read_FromBinary(r); } if (r.GetBool()) { this.bgClr = new CUniColor(); this.bgClr.Read_FromBinary(r); } }; CPattFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } if (fill.type !== c_oAscFill.FILL_TYPE_PATT && this.ftype !== fill.ftype) { return false; } return this.fgClr.IsIdentical(fill.fgClr) && this.bgClr.IsIdentical(fill.bgClr) && this.ftype === fill.ftype; }; CPattFill.prototype.createDuplicate = function () { var duplicate = new CPattFill(); duplicate.ftype = this.ftype; if (this.fgClr) { duplicate.fgClr = this.fgClr.createDuplicate(); } if (this.bgClr) { duplicate.bgClr = this.bgClr.createDuplicate(); } return duplicate; }; CPattFill.prototype.compare = function (fill) { if (fill == null) { return null; } if (fill.type !== c_oAscFill.FILL_TYPE_PATT) { return null; } var _ret = new CPattFill(); if (fill.ftype == this.ftype) { _ret.ftype = this.ftype; } if (this.fgClr) { _ret.fgClr = this.fgClr.compare(fill.fgClr); } else { _ret.fgClr = null; } if (this.bgClr) { _ret.bgClr = this.bgClr.compare(fill.bgClr); } else { _ret.bgClr = null; } if (!_ret.bgClr && !_ret.fgClr) { return null; } return _ret; }; function CNoFill() { CBaseFill.call(this); } InitClass(CNoFill, CBaseFill, 0); CNoFill.prototype.type = c_oAscFill.FILL_TYPE_NOFILL; CNoFill.prototype.check = function () { }; CNoFill.prototype.saveSourceFormatting = function () { return this.createDuplicate(); }; CNoFill.prototype.Write_ToBinary = function (w) { }; CNoFill.prototype.Read_FromBinary = function (r) { }; CNoFill.prototype.checkWordMods = function () { return false; }; CNoFill.prototype.convertToPPTXMods = function () { }; CNoFill.prototype.canConvertPPTXModsToWord = function () { return false; }; CNoFill.prototype.convertToWordMods = function () { }; CNoFill.prototype.createDuplicate = function () { return new CNoFill(); }; CNoFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } return fill.type === c_oAscFill.FILL_TYPE_NOFILL; }; CNoFill.prototype.compare = function (nofill) { if (nofill == null) { return null; } if (nofill.type === this.type) { return new CNoFill(); } return null; }; function CGrpFill() { CBaseFill.call(this); } InitClass(CGrpFill, CBaseFill, 0); CGrpFill.prototype.type = c_oAscFill.FILL_TYPE_GRP; CGrpFill.prototype.check = function () { }; CGrpFill.prototype.getObjectType = function () { return AscDFH.historyitem_type_GrpFill; }; CGrpFill.prototype.Write_ToBinary = function (w) { }; CGrpFill.prototype.Read_FromBinary = function (r) { }; CGrpFill.prototype.checkWordMods = function () { return false; }; CGrpFill.prototype.convertToPPTXMods = function () { }; CGrpFill.prototype.canConvertPPTXModsToWord = function () { return false; }; CGrpFill.prototype.convertToWordMods = function () { }; CGrpFill.prototype.createDuplicate = function () { return new CGrpFill(); }; CGrpFill.prototype.IsIdentical = function (fill) { if (fill == null) { return false; } return fill.type === c_oAscFill.FILL_TYPE_GRP; }; CGrpFill.prototype.compare = function (grpfill) { if (grpfill == null) { return null; } if (grpfill.type === this.type) { return new CGrpFill(); } return null; }; function getGrayscaleValue(color) { return color.R * 0.2126 + color.G * 0.7152 + color.B * 0.0722; } function FormatRGBAColor(r, g, b) { this.R = r || 0; this.G = g || 0; this.B = b || 0; this.A = 255; } FormatRGBAColor.prototype.getGrayscaleValue = function () { return getGrayscaleValue(this); }; function checkUniFillRasterImageId(oUnifill) { if (oUnifill) { return oUnifill.checkRasterImageId(); } return null; } /** @constructor */ function CUniFill() { CBaseNoIdObject.call(this); this.fill = null; this.transparent = null; } InitClass(CUniFill, CBaseNoIdObject, 0); CUniFill.prototype.check = function (theme, colorMap) { if (this.fill) { this.fill.check(theme, colorMap); } }; CUniFill.prototype.addColorMod = function (mod) { if (this.fill) { switch (this.fill.type) { case c_oAscFill.FILL_TYPE_BLIP: case c_oAscFill.FILL_TYPE_NOFILL: case c_oAscFill.FILL_TYPE_GRP: { break; } case c_oAscFill.FILL_TYPE_SOLID: { if (this.fill.color && this.fill.color) { this.fill.color.addColorMod(mod); } break; } case c_oAscFill.FILL_TYPE_GRAD: { for (var i = 0; i < this.fill.colors.length; ++i) { if (this.fill.colors[i] && this.fill.colors[i].color) { this.fill.colors[i].color.addColorMod(mod); } } break; } case c_oAscFill.FILL_TYPE_PATT: { if (this.fill.bgClr) { this.fill.bgClr.addColorMod(mod); } if (this.fill.fgClr) { this.fill.fgClr.addColorMod(mod); } break; } } } }; CUniFill.prototype.checkPhColor = function (unicolor) { if (this.fill) { switch (this.fill.type) { case c_oAscFill.FILL_TYPE_BLIP: case c_oAscFill.FILL_TYPE_NOFILL: case c_oAscFill.FILL_TYPE_GRP: { break; } case c_oAscFill.FILL_TYPE_SOLID: { if (this.fill.color && this.fill.color) { this.fill.color.checkPhColor(unicolor); } break; } case c_oAscFill.FILL_TYPE_GRAD: { for (var i = 0; i < this.fill.colors.length; ++i) { if (this.fill.colors[i] && this.fill.colors[i].color) { this.fill.colors[i].color.checkPhColor(unicolor); } } break; } case c_oAscFill.FILL_TYPE_PATT: { if (this.fill.bgClr) { this.fill.bgClr.checkPhColor(unicolor); } if (this.fill.fgClr) { this.fill.fgClr.checkPhColor(unicolor); } break; } } } }; CUniFill.prototype.checkPatternType = function (nType) { if (this.fill) { if (this.fill.type === c_oAscFill.FILL_TYPE_PATT) { this.fill.ftype = nType; } } }; CUniFill.prototype.Get_TextBackGroundColor = function () { if (!this.fill) { return undefined; } var oColor = undefined, RGBA; switch (this.fill.type) { case c_oAscFill.FILL_TYPE_SOLID: { if (this.fill.color) { RGBA = this.fill.color.RGBA; if (RGBA) { oColor = new CDocumentColor(RGBA.R, RGBA.G, RGBA.B, false); } } break; } case c_oAscFill.FILL_TYPE_PATT: { var oClr; if (this.fill.ftype === 38) { oClr = this.fill.fgClr; } else { oClr = this.fill.bgClr; } if (oClr) { RGBA = oClr.RGBA; if (RGBA) { oColor = new CDocumentColor(RGBA.R, RGBA.G, RGBA.B, false); } } break; } } return oColor; }; CUniFill.prototype.checkWordMods = function () { return this.fill && this.fill.checkWordMods(); }; CUniFill.prototype.convertToPPTXMods = function () { this.fill && this.fill.convertToPPTXMods(); }; CUniFill.prototype.canConvertPPTXModsToWord = function () { return this.fill && this.fill.canConvertPPTXModsToWord(); }; CUniFill.prototype.convertToWordMods = function () { this.fill && this.fill.convertToWordMods(); }; CUniFill.prototype.setFill = function (fill) { this.fill = fill; }; CUniFill.prototype.setTransparent = function (transparent) { this.transparent = transparent; }; CUniFill.prototype.Set_FromObject = function (o) { //TODO: }; CUniFill.prototype.Write_ToBinary = function (w) { writeDouble(w, this.transparent); w.WriteBool(isRealObject(this.fill)); if (isRealObject(this.fill)) { w.WriteLong(this.fill.type); this.fill.Write_ToBinary(w); } }; CUniFill.prototype.Read_FromBinary = function (r) { this.transparent = readDouble(r); if (r.GetBool()) { var type = r.GetLong(); switch (type) { case c_oAscFill.FILL_TYPE_BLIP: { this.fill = new CBlipFill(); this.fill.Read_FromBinary(r); break; } case c_oAscFill.FILL_TYPE_NOFILL: { this.fill = new CNoFill(); this.fill.Read_FromBinary(r); break; } case c_oAscFill.FILL_TYPE_SOLID: { this.fill = new CSolidFill(); this.fill.Read_FromBinary(r); break; } case c_oAscFill.FILL_TYPE_GRAD: { this.fill = new CGradFill(); this.fill.Read_FromBinary(r); break; } case c_oAscFill.FILL_TYPE_PATT: { this.fill = new CPattFill(); this.fill.Read_FromBinary(r); break; } case c_oAscFill.FILL_TYPE_GRP: { this.fill = new CGrpFill(); this.fill.Read_FromBinary(r); break; } } } }; CUniFill.prototype.calculate = function (theme, slide, layout, masterSlide, RGBA, colorMap) { if (this.fill) { if (this.fill.color) { this.fill.color.Calculate(theme, slide, layout, masterSlide, RGBA, colorMap); } if (this.fill.colors) { for (var i = 0; i < this.fill.colors.length; ++i) { this.fill.colors[i].color.Calculate(theme, slide, layout, masterSlide, RGBA, colorMap); } } if (this.fill.fgClr) this.fill.fgClr.Calculate(theme, slide, layout, masterSlide, RGBA, colorMap); if (this.fill.bgClr) this.fill.bgClr.Calculate(theme, slide, layout, masterSlide, RGBA, colorMap); } }; CUniFill.prototype.getGrayscaleValue = function () { const RGBAColor = this.getRGBAColor(); return getGrayscaleValue(RGBAColor); }; CUniFill.prototype.getRGBAColor = function () { if (this.fill) { if (this.fill.type === c_oAscFill.FILL_TYPE_SOLID) { if (this.fill.color) { return this.fill.color.RGBA; } else { return new FormatRGBAColor(); } } if (this.fill.type === c_oAscFill.FILL_TYPE_GRAD) { var RGBA = new FormatRGBAColor(); var _colors = this.fill.colors; var _len = _colors.length; if (0 === _len) return RGBA; for (var i = 0; i < _len; i++) { RGBA.R += _colors[i].color.RGBA.R; RGBA.G += _colors[i].color.RGBA.G; RGBA.B += _colors[i].color.RGBA.B; } RGBA.R = (RGBA.R / _len) >> 0; RGBA.G = (RGBA.G / _len) >> 0; RGBA.B = (RGBA.B / _len) >> 0; return RGBA; } if (this.fill.type === c_oAscFill.FILL_TYPE_PATT) { return this.fill.fgClr.RGBA; } if (this.fill.type === c_oAscFill.FILL_TYPE_NOFILL) { return {R: 0, G: 0, B: 0}; } } return new FormatRGBAColor(); }; CUniFill.prototype.getStartAnimRGBA = function () { let oFill = this.fill; if(!oFill) { return new FormatRGBAColor(255, 255, 255); } switch (oFill.type) { case c_oAscFill.FILL_TYPE_SOLID: { if (oFill.color) { return this.fill.color.RGBA; } else { return new FormatRGBAColor(255, 255, 255); } } case c_oAscFill.FILL_TYPE_GRAD: { let _colors = this.fill.colors; let _len = _colors.length; if (0 === _len) { return new FormatRGBAColor(255, 255, 255); } let oFirstColor = _colors[0].color; if(!oFirstColor) { return new FormatRGBAColor(255, 255, 255); } return oFirstColor.RGBA; } case c_oAscFill.FILL_TYPE_PATT: { if(oFill.fgClr) { return oFill.fgClr.RGBA } return new FormatRGBAColor(255, 255, 255); } case c_oAscFill.FILL_TYPE_NOFILL: { return new FormatRGBAColor(255, 255, 255); } } return new FormatRGBAColor(255, 255, 255); }; CUniFill.prototype.createDuplicate = function () { var duplicate = new CUniFill(); if (this.fill != null) { duplicate.fill = this.fill.createDuplicate(); } duplicate.transparent = this.transparent; return duplicate; }; CUniFill.prototype.saveSourceFormatting = function () { var duplicate = new CUniFill(); if (this.fill) { if (this.fill.saveSourceFormatting) { duplicate.fill = this.fill.saveSourceFormatting(); } else { duplicate.fill = this.fill.createDuplicate(); } } duplicate.transparent = this.transparent; return duplicate; }; CUniFill.prototype.merge = function (unifill) { if (unifill) { if (unifill.fill != null) { this.fill = unifill.fill.createDuplicate(); if (this.fill.type === c_oAscFill.FILL_TYPE_PATT) { var _patt_fill = this.fill; if (!_patt_fill.fgClr) { _patt_fill.setFgColor(CreateUniColorRGB(0, 0, 0)); } if (!_patt_fill.bgClr) { _patt_fill.bgClr = CreateUniColorRGB(255, 255, 255); } } } if (unifill.transparent != null) { this.transparent = unifill.transparent; } } }; CUniFill.prototype.IsIdentical = function (unifill) { if (unifill == null) { return false; } if (isRealNumber(this.transparent) !== isRealNumber(unifill.transparent) || isRealNumber(this.transparent) && this.transparent !== unifill.transparent) { return false; } if (this.fill == null && unifill.fill == null) { return true; } if (this.fill != null) { return this.fill.IsIdentical(unifill.fill); } else { return false; } }; CUniFill.prototype.Is_Equal = function (unfill) { return this.IsIdentical(unfill); }; CUniFill.prototype.isEqual = function (unfill) { return this.IsIdentical(unfill); }; CUniFill.prototype.compare = function (unifill) { if (unifill == null) { return null; } var _ret = new CUniFill(); if (!(this.fill == null || unifill.fill == null)) { if (this.fill.compare) { _ret.fill = this.fill.compare(unifill.fill); } } return _ret.fill; }; CUniFill.prototype.isSolidFillRGB = function () { return (this.isSolidFill() && this.fill.color.color.type === window['Asc'].c_oAscColor.COLOR_TYPE_SRGB) }; CUniFill.prototype.isSolidFill = function () { return !!(this.fill && this.fill.color && this.fill.color.color); }; CUniFill.prototype.isSolidFillScheme = function () { return (this.isSolidFill() && this.fill.color.color.type === window['Asc'].c_oAscColor.COLOR_TYPE_SCHEME) }; CUniFill.prototype.isNoFill = function () { return this.fill && this.fill.type === window['Asc'].c_oAscFill.FILL_TYPE_NOFILL; }; CUniFill.prototype.isVisible = function () { return this.fill && this.fill.type !== window['Asc'].c_oAscFill.FILL_TYPE_NOFILL; }; CUniFill.prototype.FILL_NAMES = { "blipFill": true, "gradFill": true, "grpFill": true, "noFill": true, "pattFill": true, "solidFill": true }; CUniFill.prototype.isFillName = function (sName) { return !!CUniFill.prototype.FILL_NAMES[sName]; }; CUniFill.prototype.addAlpha = function(dValue) { this.setTransparent(Math.max(0, Math.min(255, (dValue * 255 + 0.5) >> 0))); // let oMod = new CColorMod(); // oMod.name = "alpha"; // oMod.val = nPctValue; // this.addColorMod(oMod); }; CUniFill.prototype.isBlipFill = function() { if(this.fill && this.fill.type === c_oAscFill.FILL_TYPE_BLIP) { return true; } }; CUniFill.prototype.isGradientFill = function() { if(this.fill && this.fill.type === c_oAscFill.FILL_TYPE_GRAD) { return true; } }; CUniFill.prototype.checkTransparent = function() { let oFill = this.fill; if(oFill) { switch (oFill.type) { case c_oAscFill.FILL_TYPE_BLIP: { let aEffects = oFill.Effects; for(let nEffect = 0; nEffect < aEffects.length; ++nEffect) { let oEffect = aEffects[nEffect]; if(oEffect instanceof AscFormat.CAlphaModFix && AscFormat.isRealNumber(oEffect.amt)) { this.setTransparent(255 * oEffect.amt / 100000); } } break; } case c_oAscFill.FILL_TYPE_SOLID: { let oColor = oFill.color; if(oColor) { let fAlphaVal = oColor.getModValue("alpha"); if(fAlphaVal !== null) { this.setTransparent(255 * fAlphaVal / 100000); let aMods = oColor.Mods && oColor.Mods.Mods; if(Array.isArray(aMods)) { for(let nMod = aMods.length -1; nMod > -1; nMod--) { let oMod = aMods[nMod]; if(oMod && oMod.name === "alpha") { aMods.splice(nMod, 1); } } } } } break; } case c_oAscFill.FILL_TYPE_PATT: { if(oFill.fgClr && oFill.bgClr) { let fAlphaVal = oFill.fgClr.getModValue("alpha"); if(fAlphaVal !== null) { if(fAlphaVal === oFill.bgClr.getModValue("alpha")) { this.setTransparent(255 * fAlphaVal / 100000) } } } break; } } } }; CUniFill.prototype.checkRasterImageId = function() { if (this.fill && typeof this.fill.RasterImageId === "string" && this.fill.RasterImageId.length > 0) return this.fill.RasterImageId; return null; } function CBuBlip() { CBaseNoIdObject.call(this); this.blip = null; } InitClass(CBuBlip, CBaseNoIdObject, 0); CBuBlip.prototype.setBlip = function (oPr) { this.blip = oPr; }; CBuBlip.prototype.fillObject = function (oCopy, oIdMap) { if (this.blip) { oCopy.setBlip(this.blip.createDuplicate(oIdMap)); } }; CBuBlip.prototype.createDuplicate = function () { var oCopy = new CBuBlip(); this.fillObject(oCopy, {}); return oCopy; }; CBuBlip.prototype.getChildren = function () { return [this.blip]; }; CBuBlip.prototype.isEqual = function (oBlip) { return this.blip.isEqual(oBlip.blip); }; CBuBlip.prototype.toPPTY = function (pWriter) { var _src = this.blip.fill.RasterImageId; var imageLocal = AscCommon.g_oDocumentUrls.getImageLocal(_src); if (imageLocal) _src = imageLocal; pWriter.image_map[_src] = true; _src = pWriter.prepareRasterImageIdForWrite(_src); pWriter.WriteBlip(this.blip.fill, _src); }; CBuBlip.prototype.fromPPTY = function (pReader, oParagraph, oBullet) { this.setBlip(new AscFormat.CUniFill()); this.blip.setFill(new AscFormat.CBlipFill()); pReader.ReadBlip(this.blip, undefined, undefined, undefined, oParagraph, oBullet); }; CBuBlip.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.blip = new CUniFill(); this.blip.Read_FromBinary(r); } }; CBuBlip.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.blip)); if (isRealObject(this.blip)) { this.blip.Write_ToBinary(w); } }; CBuBlip.prototype.compare = function (compareObj) { var ret = null; if (compareObj instanceof CBuBlip) { ret = new CBuBlip(); if (this.blip) { ret.blip = CompareUniFill(this.blip, compareObj.blip); } } return ret; }; function CompareUniFill(unifill_1, unifill_2) { if (unifill_1 == null || unifill_2 == null) { return null; } var _ret = new CUniFill(); if (!(unifill_1.transparent === null || unifill_2.transparent === null || unifill_1.transparent !== unifill_2.transparent)) { _ret.transparent = unifill_1.transparent; } if (unifill_1.fill == null || unifill_2.fill == null || unifill_1.fill.type != unifill_2.fill.type) { return _ret; } _ret.fill = unifill_1.compare(unifill_2); return _ret; } function CompareBlipTiles(tile1, tile2) { if (isRealObject(tile1)) { return tile1.IsIdentical(tile2); } return tile1 === tile2; } function CompareUnifillBool(u1, u2) { if (!u1 && !u2) return true; if (!u1 && u2 || u1 && !u2) return false; if (isRealNumber(u1.transparent) !== isRealNumber(u2.transparent) || isRealNumber(u1.transparent) && u1.transparent !== u2.transparent) { return false; } if (!u1.fill && !u2.fill) return true; if (!u1.fill && u2.fill || u1.fill && !u2.fill) return false; if (u1.fill.type !== u2.fill.type) return false; switch (u1.fill.type) { case c_oAscFill.FILL_TYPE_BLIP: { if (u1.fill.RasterImageId && !u2.fill.RasterImageId || u2.fill.RasterImageId && !u1.fill.RasterImageId) return false; if (typeof u1.fill.RasterImageId === "string" && typeof u2.fill.RasterImageId === "string" && AscCommon.getFullImageSrc2(u1.fill.RasterImageId) !== AscCommon.getFullImageSrc2(u2.fill.RasterImageId)) return false; if (u1.fill.srcRect && !u2.fill.srcRect || !u1.fill.srcRect && u2.fill.srcRect) return false; if (u1.fill.srcRect && u2.fill.srcRect) { if (u1.fill.srcRect.l !== u2.fill.srcRect.l || u1.fill.srcRect.t !== u2.fill.srcRect.t || u1.fill.srcRect.r !== u2.fill.srcRect.r || u1.fill.srcRect.b !== u2.fill.srcRect.b) return false; } if (u1.fill.stretch !== u2.fill.stretch || !CompareBlipTiles(u1.fill.tile, u2.fill.tile) || u1.fill.rotWithShape !== u2.fill.rotWithShape) return false; break; } case c_oAscFill.FILL_TYPE_SOLID: { if (u1.fill.color && u2.fill.color) { return CompareUniColor(u1.fill.color, u2.fill.color) } break; } case c_oAscFill.FILL_TYPE_GRAD: { if (u1.fill.colors.length !== u2.fill.colors.length) return false; if (isRealObject(u1.fill.path) !== isRealObject(u2.fill.path)) return false; if (u1.fill.path && !u1.fill.path.IsIdentical(u2.fill.path)) return false; if (isRealObject(u1.fill.lin) !== isRealObject(u2.fill.lin)) return false; if (u1.fill.lin && !u1.fill.lin.IsIdentical(u2.fill.lin)) return false; for (var i = 0; i < u1.fill.colors.length; ++i) { if (u1.fill.colors[i].pos !== u2.fill.colors[i].pos || !CompareUniColor(u1.fill.colors[i].color, u2.fill.colors[i].color)) return false; } break; } case c_oAscFill.FILL_TYPE_PATT: { if (u1.fill.ftype !== u2.fill.ftype || !CompareUniColor(u1.fill.fgClr, u2.fill.fgClr) || !CompareUniColor(u1.fill.bgClr, u2.fill.bgClr)) return false; break; } } return true; } function CompareUniColor(u1, u2) { if (!u1 && !u2) return true; if (!u1 && u2 || u1 && !u2) return false; if (!u1.color && u2.color || u1.color && !u2.color) return false; if (u1.color && u2.color) { if (u1.color.type !== u2.color.type) return false; switch (u1.color.type) { case c_oAscColor.COLOR_TYPE_NONE: { break; } case c_oAscColor.COLOR_TYPE_SRGB: { if (u1.color.RGBA.R !== u2.color.RGBA.R || u1.color.RGBA.G !== u2.color.RGBA.G || u1.color.RGBA.B !== u2.color.RGBA.B || u1.color.RGBA.A !== u2.color.RGBA.A) { return false; } break; } case c_oAscColor.COLOR_TYPE_PRST: case c_oAscColor.COLOR_TYPE_SCHEME: { if (u1.color.id !== u2.color.id) return false; break; } case c_oAscColor.COLOR_TYPE_SYS: { if (u1.color.RGBA.R !== u2.color.RGBA.R || u1.color.RGBA.G !== u2.color.RGBA.G || u1.color.RGBA.B !== u2.color.RGBA.B || u1.color.RGBA.A !== u2.color.RGBA.A || u1.color.id !== u2.color.id) { return false; } break; } case c_oAscColor.COLOR_TYPE_STYLE: { if (u1.bAuto !== u2.bAuto || u1.val !== u2.val) { return false; } break; } } } if (!u1.Mods && u2.Mods || !u2.Mods && u1.Mods) return false; if (u1.Mods && u2.Mods) { if (u1.Mods.Mods.length !== u2.Mods.Mods.length) return false; for (var i = 0; i < u1.Mods.Mods.length; ++i) { if (u1.Mods.Mods[i].name !== u2.Mods.Mods[i].name || u1.Mods.Mods[i].val !== u2.Mods.Mods[i].val) return false; } } return true; } // ----------------------------- function CompareShapeProperties(shapeProp1, shapeProp2) { var _result_shape_prop = {}; if (shapeProp1.type === shapeProp2.type) { _result_shape_prop.type = shapeProp1.type; } else { _result_shape_prop.type = null; } if (shapeProp1.h === shapeProp2.h) { _result_shape_prop.h = shapeProp1.h; } else { _result_shape_prop.h = null; } if (shapeProp1.w === shapeProp2.w) { _result_shape_prop.w = shapeProp1.w; } else { _result_shape_prop.w = null; } if (shapeProp1.x === shapeProp2.x) { _result_shape_prop.x = shapeProp1.x; } else { _result_shape_prop.x = null; } if (shapeProp1.y === shapeProp2.y) { _result_shape_prop.y = shapeProp1.y; } else { _result_shape_prop.y = null; } if (shapeProp1.rot === shapeProp2.rot) { _result_shape_prop.rot = shapeProp1.rot; } else { _result_shape_prop.rot = null; } if (shapeProp1.flipH === shapeProp2.flipH) { _result_shape_prop.flipH = shapeProp1.flipH; } else { _result_shape_prop.flipH = null; } if (shapeProp1.flipV === shapeProp2.flipV) { _result_shape_prop.flipV = shapeProp1.flipV; } else { _result_shape_prop.flipV = null; } if (shapeProp1.anchor === shapeProp2.anchor) { _result_shape_prop.anchor = shapeProp1.anchor; } else { _result_shape_prop.anchor = null; } if (shapeProp1.stroke == null || shapeProp2.stroke == null) { _result_shape_prop.stroke = null; } else { _result_shape_prop.stroke = shapeProp1.stroke.compare(shapeProp2.stroke) } /* if(shapeProp1.verticalTextAlign === shapeProp2.verticalTextAlign) { _result_shape_prop.verticalTextAlign = shapeProp1.verticalTextAlign; } else */ { _result_shape_prop.verticalTextAlign = null; _result_shape_prop.vert = null; } if (shapeProp1.canChangeArrows !== true || shapeProp2.canChangeArrows !== true) _result_shape_prop.canChangeArrows = false; else _result_shape_prop.canChangeArrows = true; _result_shape_prop.fill = CompareUniFill(shapeProp1.fill, shapeProp2.fill); _result_shape_prop.IsLocked = shapeProp1.IsLocked === true || shapeProp2.IsLocked === true; if (isRealObject(shapeProp1.paddings) && isRealObject(shapeProp2.paddings)) { _result_shape_prop.paddings = new Asc.asc_CPaddings(); _result_shape_prop.paddings.Left = isRealNumber(shapeProp1.paddings.Left) ? (shapeProp1.paddings.Left === shapeProp2.paddings.Left ? shapeProp1.paddings.Left : undefined) : undefined; _result_shape_prop.paddings.Top = isRealNumber(shapeProp1.paddings.Top) ? (shapeProp1.paddings.Top === shapeProp2.paddings.Top ? shapeProp1.paddings.Top : undefined) : undefined; _result_shape_prop.paddings.Right = isRealNumber(shapeProp1.paddings.Right) ? (shapeProp1.paddings.Right === shapeProp2.paddings.Right ? shapeProp1.paddings.Right : undefined) : undefined; _result_shape_prop.paddings.Bottom = isRealNumber(shapeProp1.paddings.Bottom) ? (shapeProp1.paddings.Bottom === shapeProp2.paddings.Bottom ? shapeProp1.paddings.Bottom : undefined) : undefined; } _result_shape_prop.canFill = shapeProp1.canFill === true || shapeProp2.canFill === true; if (shapeProp1.bFromChart || shapeProp2.bFromChart) { _result_shape_prop.bFromChart = true; } else { _result_shape_prop.bFromChart = false; } if (shapeProp1.bFromSmartArt || shapeProp2.bFromSmartArt) { _result_shape_prop.bFromSmartArt = true; } else { _result_shape_prop.bFromSmartArt = false; } if (shapeProp1.bFromSmartArtInternal || shapeProp2.bFromSmartArtInternal) { _result_shape_prop.bFromSmartArtInternal = true; } else { _result_shape_prop.bFromSmartArtInternal = false; } if (shapeProp1.bFromGroup || shapeProp2.bFromGroup) { _result_shape_prop.bFromGroup = true; } else { _result_shape_prop.bFromGroup = false; } if (!shapeProp1.bFromImage || !shapeProp2.bFromImage) { _result_shape_prop.bFromImage = false; } else { _result_shape_prop.bFromImage = true; } if (shapeProp1.locked || shapeProp2.locked) { _result_shape_prop.locked = true; } _result_shape_prop.lockAspect = !!(shapeProp1.lockAspect && shapeProp2.lockAspect); _result_shape_prop.textArtProperties = CompareTextArtProperties(shapeProp1.textArtProperties, shapeProp2.textArtProperties); if (shapeProp1.bFromSmartArtInternal && !shapeProp2.bFromSmartArtInternal || !shapeProp1.bFromSmartArtInternal && shapeProp2.bFromSmartArtInternal) { _result_shape_prop.textArtProperties = null; } if (shapeProp1.title === shapeProp2.title) { _result_shape_prop.title = shapeProp1.title; } if (shapeProp1.description === shapeProp2.description) { _result_shape_prop.description = shapeProp1.description; } if (shapeProp1.name === shapeProp2.name) { _result_shape_prop.name = shapeProp1.name; } if (shapeProp1.columnNumber === shapeProp2.columnNumber) { _result_shape_prop.columnNumber = shapeProp1.columnNumber; } if (shapeProp1.columnSpace === shapeProp2.columnSpace) { _result_shape_prop.columnSpace = shapeProp1.columnSpace; } if (shapeProp1.textFitType === shapeProp2.textFitType) { _result_shape_prop.textFitType = shapeProp1.textFitType; } if (shapeProp1.vertOverflowType === shapeProp2.vertOverflowType) { _result_shape_prop.vertOverflowType = shapeProp1.vertOverflowType; } if (!shapeProp1.shadow && !shapeProp2.shadow) { _result_shape_prop.shadow = null; } else if (shapeProp1.shadow && !shapeProp2.shadow) { _result_shape_prop.shadow = null; } else if (!shapeProp1.shadow && shapeProp2.shadow) { _result_shape_prop.shadow = null; } else if (shapeProp1.shadow.IsIdentical(shapeProp2.shadow)) { _result_shape_prop.shadow = shapeProp1.shadow.createDuplicate(); } else { _result_shape_prop.shadow = null; } _result_shape_prop.protectionLockText = CompareProtectionFlags(shapeProp1.protectionLockText, shapeProp2.protectionLockText); _result_shape_prop.protectionLocked = CompareProtectionFlags(shapeProp1.protectionLocked, shapeProp2.protectionLocked); _result_shape_prop.protectionPrint = CompareProtectionFlags(shapeProp1.protectionPrint, shapeProp2.protectionPrint); return _result_shape_prop; } function CompareProtectionFlags(bFlag1, bFlag2) { if (bFlag1 === null || bFlag2 === null) { return null; } else if (bFlag1 === bFlag2) { return bFlag1; } return undefined; } function CompareTextArtProperties(oProps1, oProps2) { if (!oProps1 || !oProps2) return null; var oRet = {Fill: undefined, Line: undefined, Form: undefined}; if (oProps1.Form === oProps2.Form) { oRet.From = oProps1.Form; } if (oProps1.Fill && oProps2.Fill) { oRet.Fill = CompareUniFill(oProps1.Fill, oProps2.Fill); } if (oProps1.Line && oProps2.Line) { oRet.Line = oProps1.Line.compare(oProps2.Line); } return oRet; } // LN -------------------------- // размеры стрелок; var lg = 500, mid = 300, sm = 200; //типы стрелок var ar_arrow = 0, ar_diamond = 1, ar_none = 2, ar_oval = 3, ar_stealth = 4, ar_triangle = 5; var LineEndType = { None: 0, Arrow: 1, Diamond: 2, Oval: 3, Stealth: 4, Triangle: 5, ReverseArrow: 6, ReverseTriangle: 7, Butt: 8, Square: 9, Slash: 10, vsdxNone: 11, vsdxOpen90Arrow: 12, vsdxFilled90Arrow: 13, vsdxOpenSharpArrow: 14, vsdxFilledSharpArrow: 15, vsdxIndentedFilledArrow: 16, vsdxOutdentedFilledArrow: 17, vsdxOpenFletch: 18, vsdxFilledFletch: 19, vsdxDimensionLine: 20, vsdxFilledDot: 21, vsdxFilledSquare: 22, vsdxOpenASMEArrow: 23, vsdxFilledASMEArrow: 24, vsdxClosedASMEArrow: 25, vsdxClosed90Arrow: 26, vsdxClosedSharpArrow: 27, vsdxIndentedClosedArrow: 28, vsdxOutdentedClosedArrow: 29, vsdxClosedFletch: 30, vsdxClosedDot: 31, vsdxClosedSquare: 32, vsdxDiamond: 33, vsdxBackslash: 34, vsdxOpenOneDash: 35, vsdxOpenTwoDash: 36, vsdxOpenThreeDash: 37, vsdxFork: 38, vsdxDashFork: 39, vsdxClosedFork: 40, vsdxClosedPlus: 41, vsdxClosedOneDash: 42, vsdxClosedTwoDash: 43, vsdxClosedThreeDash: 44, vsdxClosedDiamond: 45, vsdxFilledOneDash: 46, vsdxFilledTwoDash: 47, vsdxFilledThreeDash: 48, vsdxFilledDiamond: 49, vsdxFilledDoubleArrow: 50, vsdxClosedDoubleArrow: 51, vsdxClosedNoDash: 52, vsdxFilledNoDash: 53, vsdxOpenDoubleArrow: 54, vsdxOpenArrowSingleDash: 55, vsdxOpenDoubleArrowSingleDash: 56 }; var LineEndSize = { Large: 0, Mid: 1, Small: 2, vsdxVerySmall : 3, vsdxSmall: 4, vsdxMedium: 5, vsdxLarge: 6, vsdxExtraLarge: 7, vsdxJumbo: 8, vsdxColossal: 9 }; var LineJoinType = { Empty: 0, Round: 1, Bevel: 2, Miter: 3 }; let lineWidthInfluenceCoef = 0.028; function EndArrow() { CBaseNoIdObject.call(this); this.type = null; this.len = null; this.w = null; } InitClass(EndArrow, CBaseNoIdObject, 0); EndArrow.prototype.compare = function (end_arrow) { if (end_arrow == null) { return null; } var _ret = new EndArrow(); if (this.type === end_arrow.type) { _ret.type = this.type; } if (this.len === end_arrow.len) { _ret.len = this.len; } if (this.w === end_arrow) { _ret.w = this.w; } return _ret; }; EndArrow.prototype.createDuplicate = function () { var duplicate = new EndArrow(); duplicate.type = this.type; duplicate.len = this.len; duplicate.w = this.w; return duplicate; }; EndArrow.prototype.IsIdentical = function (arrow) { return arrow && arrow.type === this.type && arrow.len === this.len && arrow.w === this.w; }; EndArrow.prototype.GetWidth = function (_size, _max) { var size = Math.max(_size, _max ? _max : 2); var _ret = 3 * size; let startSizeInch; let inchSize; if (null != this.w) { switch (this.w) { case LineEndSize.Large: _ret = 5 * size; break; case LineEndSize.Small: _ret = 2 * size; break; case LineEndSize.vsdxVerySmall: startSizeInch = 0.0391; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxSmall: startSizeInch = 0.0508; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxMedium: startSizeInch = 0.0693; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxLarge: startSizeInch = 0.0898; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxExtraLarge: startSizeInch = 0.1094; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxJumbo: startSizeInch = 0.2473; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxColossal: startSizeInch = 0.499; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; default: break; } } return _ret; }; EndArrow.prototype.GetLen = function (_size, _max) { var size = Math.max(_size, _max ? _max : 2); var _ret = 3 * size; let startSizeInch; let inchSize; if (null != this.len) { switch (this.len) { case LineEndSize.Large: _ret = 5 * size; break; case LineEndSize.Small: _ret = 2 * size; break; case LineEndSize.vsdxVerySmall: startSizeInch = 0.0391; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxSmall: startSizeInch = 0.0508; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxMedium: startSizeInch = 0.0693; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxLarge: startSizeInch = 0.0898; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxExtraLarge: startSizeInch = 0.1094; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxJumbo: startSizeInch = 0.2473; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; case LineEndSize.vsdxColossal: startSizeInch = 0.499; inchSize = startSizeInch + lineWidthInfluenceCoef * _size * AscCommonWord.g_dKoef_mm_to_pt; _ret = inchSize * AscCommonWord.g_dKoef_in_to_mm; break; default: break; } } return _ret; }; EndArrow.prototype.setType = function (type) { this.type = type; }; EndArrow.prototype.setLen = function (len) { this.len = len; }; EndArrow.prototype.setW = function (w) { this.w = w; }; EndArrow.prototype.Write_ToBinary = function (w) { writeLong(w, this.type); writeLong(w, this.len); writeLong(w, this.w); }; EndArrow.prototype.Read_FromBinary = function (r) { this.type = readLong(r); this.len = readLong(r); this.w = readLong(r); }; EndArrow.prototype.GetSizeCode = function (sVal) { switch (sVal) { case "lg": { return LineEndSize.Large; } case "med": { return LineEndSize.Mid; } case "sm": { return LineEndSize.Small; } // not used for visio end types. use types enum directly } return LineEndSize.Mid; }; EndArrow.prototype.GetSizeByCode = function (nCode) { switch (nCode) { case LineEndSize.Large: { return "lg"; } case LineEndSize.Mid: { return "med"; } case LineEndSize.Small: { return "sm"; } // not used for visio end types. use types enum directly } return "med"; }; EndArrow.prototype.GetTypeCode = function (sVal) { switch (sVal) { case "arrow": { return LineEndType.Arrow; } case "diamond": { return LineEndType.Diamond; } case "none": { return LineEndType.None; } case "oval": { return LineEndType.Oval; } case "stealth": { return LineEndType.Stealth; } case "triangle": { return LineEndType.Triangle; } // not used for visio end types. use types enum directly } return LineEndType.Arrow; }; EndArrow.prototype.GetTypeByCode = function (nCode) { switch (nCode) { case LineEndType.Arrow : { return "arrow"; } case LineEndType.Diamond: { return "diamond"; } case LineEndType.None: { return "none"; } case LineEndType.Oval: { return "oval"; } case LineEndType.Stealth: { return "stealth"; } case LineEndType.Triangle: { return "triangle"; } // not used for visio end types. use types enum directly } return "arrow"; }; EndArrow.prototype.isPresent = function () { return AscFormat.isRealNumber(this.type) && this.type !== LineEndType.None && this.type !== LineEndType.vsdxNone; }; function ConvertJoinAggType(_type) { switch (_type) { case LineJoinType.Round: return 2; case LineJoinType.Bevel: return 1; case LineJoinType.Miter: return 0; default: break; } return 2; } function LineJoin(type) { CBaseNoIdObject.call(this); this.type = AscFormat.isRealNumber(type) ? type : null; this.limit = null; } InitClass(LineJoin, CBaseNoIdObject, 0); LineJoin.prototype.IsIdentical = function (oJoin) { if (!oJoin) return false; if (this.type !== oJoin.type) { return false; } if (this.limit !== oJoin.limit) return false; return true; }; LineJoin.prototype.createDuplicate = function () { var duplicate = new LineJoin(); duplicate.type = this.type; duplicate.limit = this.limit; return duplicate; }; LineJoin.prototype.setType = function (type) { this.type = type; }; LineJoin.prototype.setLimit = function (limit) { this.limit = limit; }; LineJoin.prototype.Write_ToBinary = function (w) { writeLong(w, this.type); writeLong(w, this.limit); }; LineJoin.prototype.Read_FromBinary = function (r) { this.type = readLong(r); this.limit = readLong(r); }; function CLn() { CBaseNoIdObject.call(this); this.Fill = null;//new CUniFill(); this.prstDash = null; this.Join = null; this.headEnd = null; this.tailEnd = null; this.algn = null; this.cap = null; this.cmpd = null; this.w = null; } InitClass(CLn, CBaseNoIdObject, 0); CLn.prototype.compare = function (line) { if (line == null) { return null; } var _ret = new CLn(); if (this.Fill != null) { _ret.Fill = CompareUniFill(this.Fill, line.Fill); } if (this.prstDash === line.prstDash) { _ret.prstDash = this.prstDash; } else { _ret.prstDash = undefined; } if (this.Join === line.Join) { _ret.Join = this.Join; } if (this.tailEnd != null) { _ret.tailEnd = this.tailEnd.compare(line.tailEnd); } if (this.headEnd != null) { _ret.headEnd = this.headEnd.compare(line.headEnd); } if (this.algn === line.algn) { _ret.algn = this.algn; } if (this.cap === line.cap) { _ret.cap = this.cap; } if (this.cmpd === line.cmpd) { _ret.cmpd = this.cmpd; } if (this.w === line.w) { _ret.w = this.w; } return _ret; }; CLn.prototype.merge = function (ln) { if (ln == null) { return; } if (ln.Fill != null && ln.Fill.fill != null) { this.setFill(ln.Fill.createDuplicate()); } if (ln.prstDash != null) { this.setPrstDash(ln.prstDash); } if (ln.Join != null) { this.setJoin(ln.Join.createDuplicate()); } if (ln.headEnd != null) { this.setHeadEnd(ln.headEnd.createDuplicate()); } if (ln.tailEnd != null) { this.setTailEnd(ln.tailEnd.createDuplicate()); } if (ln.algn != null) { this.setAlgn(ln.algn); } if (ln.cap != null) { this.setCap(ln.cap); } if (ln.cmpd != null) { this.setCmpd(ln.cmpd); } if (ln.w != null) { this.setW(ln.w); } else if(ln.isNoFillLine && ln.isNoFillLine()) { this.setW(0); } }; CLn.prototype.calculate = function (theme, slide, layout, master, RGBA, colorMap) { if (isRealObject(this.Fill)) { this.Fill.calculate(theme, slide, layout, master, RGBA, colorMap); } }; CLn.prototype.createDuplicate = function (bSaveFormatting) { var duplicate = new CLn(); if (null != this.Fill) { if (bSaveFormatting === true) { duplicate.Fill = this.Fill.saveSourceFormatting(); } else { duplicate.Fill = this.Fill.createDuplicate(); } } duplicate.prstDash = this.prstDash; duplicate.Join = this.Join; if (this.headEnd != null) { duplicate.headEnd = this.headEnd.createDuplicate(); } if (this.tailEnd != null) { duplicate.tailEnd = this.tailEnd.createDuplicate(); } duplicate.algn = this.algn; duplicate.cap = this.cap; duplicate.cmpd = this.cmpd; duplicate.w = this.w; return duplicate; }; CLn.prototype.IsIdentical = function (ln) { return ln && (this.Fill == null ? ln.Fill == null : this.Fill.IsIdentical(ln.Fill)) && (this.Join == null ? ln.Join == null : this.Join.IsIdentical(ln.Join)) && (this.headEnd == null ? ln.headEnd == null : this.headEnd.IsIdentical(ln.headEnd)) && (this.tailEnd == null ? ln.tailEnd == null : this.tailEnd.IsIdentical(ln.tailEnd)) && this.algn == ln.algn && this.cap == ln.cap && this.cmpd == ln.cmpd && this.w == ln.w && this.prstDash === ln.prstDash; }; CLn.prototype.isEqual = function (ln) { return this.IsIdentical(ln); }; CLn.prototype.setFill = function (fill) { this.Fill = fill; }; CLn.prototype.setPrstDash = function (prstDash) { this.prstDash = prstDash; }; CLn.prototype.setJoin = function (join) { this.Join = join; }; CLn.prototype.setHeadEnd = function (headEnd) { this.headEnd = headEnd; }; CLn.prototype.setTailEnd = function (tailEnd) { this.tailEnd = tailEnd; }; CLn.prototype.setAlgn = function (algn) { this.algn = algn; }; CLn.prototype.setCap = function (cap) { this.cap = cap; }; CLn.prototype.setCmpd = function (cmpd) { this.cmpd = cmpd; }; CLn.prototype.setW = function (w) { this.w = w; }; CLn.prototype.isVisible = function () { return this.Fill && this.Fill.isVisible(); }; CLn.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.Fill)); if (isRealObject(this.Fill)) { this.Fill.Write_ToBinary(w); } writeLong(w, this.prstDash); w.WriteBool(isRealObject(this.Join)); if (isRealObject(this.Join)) { this.Join.Write_ToBinary(w); } w.WriteBool(isRealObject(this.headEnd)); if (isRealObject(this.headEnd)) { this.headEnd.Write_ToBinary(w); } w.WriteBool(isRealObject(this.tailEnd)); if (isRealObject(this.tailEnd)) { this.tailEnd.Write_ToBinary(w); } writeLong(w, this.algn); writeLong(w, this.cap); writeLong(w, this.cmpd); writeLong(w, this.w); }; CLn.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.Fill = new CUniFill(); this.Fill.Read_FromBinary(r); } else { this.Fill = null; } this.prstDash = readLong(r); if (r.GetBool()) { this.Join = new LineJoin(); this.Join.Read_FromBinary(r); } if (r.GetBool()) { this.headEnd = new EndArrow(); this.headEnd.Read_FromBinary(r); } if (r.GetBool()) { this.tailEnd = new EndArrow(); this.tailEnd.Read_FromBinary(r); } this.algn = readLong(r); this.cap = readLong(r); this.cmpd = readLong(r); this.w = readLong(r); }; CLn.prototype.isNoFillLine = function () { if (this.Fill) { return this.Fill.isNoFill(); } return false; }; CLn.prototype.GetCapCode = function (sVal) { switch (sVal) { case "flat": { return 0; } case "rnd": { return 1; } case "sq": { return 2; } } return 0; }; CLn.prototype.GetCapByCode = function (nCode) { switch (nCode) { case 0: { return "flat"; } case 1: { return "rnd"; } case 2: { return "sq"; } } return null; }; CLn.prototype.GetAlgnCode = function (sVal) { switch (sVal) { case "ctr": { return 0; } case "in": { return 1; } } return 0; }; CLn.prototype.GetAlgnByCode = function (sVal) { switch (sVal) { case 0: { return "ctr"; } case 1: { return "in"; } } return null; }; CLn.prototype.GetCmpdCode = function (sVal) { switch (sVal) { case "dbl": { return 0; } case "sng": { return 1; } case "thickThin": { return 2; } case "thinThick": { return 3; } case "tri": { return 4; } } return 1; }; CLn.prototype.GetCmpdByCode = function (sVal) { switch (sVal) { case 0: { return "dbl"; } case 1: { return "sng"; } case 2: { return "thickThin"; } case 3: { return "thinThick"; } case 4: { return "tri"; } } return null; }; CLn.prototype.GetDashCode = function (sVal) { switch (sVal) { case "dash": { return 0; } case "dashDot": { return 1; } case "dot": { return 2; } case "lgDash": { return 3; } case "lgDashDot": { return 4; } case "lgDashDotDot": { return 5; } case "solid": { return 6; } case "sysDash": { return 7; } case "sysDashDot": { return 8; } case "sysDashDotDot": { return 9; } case "sysDot": { return 10; } case "vsdxTransparent": { return 11; } case "vsdxSolid": { return 12; } case "vsdxDash": { return 13; } case "vsdxDot": { return 14; } case "vsdxDashDot": { return 15; } case "vsdxDashDotDot": { return 16; } case "vsdxDashDashDot": { return 17; } case "vsdxLongDashShortDash": { return 18; } case "vsdxLongDashShortDashShortDash": { return 19; } case "vsdxHalfDash": { return 20; } case "vsdxHalfDot": { return 21; } case "vsdxHalfDashDot": { return 22; } case "vsdxHalfDashDotDot": { return 23; } case "vsdxHalfDashDashDot": { return 24; } case "vsdxHalfLongDashShortDash": { return 25; } case "vsdxHalfLongDashShortDashShortDash": { return 26; } case "vsdxDoubleDash": { return 27; } case "vsdxDoubleDot": { return 28; } case "vsdxDoubleDashDot": { return 29; } case "vsdxDoubleDashDotDot": { return 30; } case "vsdxDoubleDashDashDot": { return 31; } case "vsdxDoubleLongDashShortDash": { return 32; } case "vsdxDoubleLongDashShortDashShortDash": { return 33; } case "vsdxHalfHalfDash": { return 34; } } return 6; }; CLn.prototype.GetDashByCode = function (sVal) { switch (sVal) { case 0: { return "dash"; } case 1 : { return "dashDot"; } case 2 : { return "dot"; } case 3 : { return "lgDash"; } case 4 : { return "lgDashDot"; } case 5 : { return "lgDashDotDot"; } case 6 : { return "solid"; } case 7 : { return "sysDash"; } case 8: { return "sysDashDot"; } case 9 : { return "sysDashDotDot"; } case 10 : { return "sysDot"; } case 11: { return "vsdxTransparent"; } case 12: { return "vsdxSolid"; } case 13: { return "vsdxDash"; } case 14: { return "vsdxDot"; } case 15: { return "vsdxDashDot"; } case 16: { return "vsdxDashDotDot"; } case 17: { return "vsdxDashDashDot"; } case 18: { return "vsdxLongDashShortDash"; } case 19: { return "vsdxLongDashShortDashShortDash"; } case 20: { return "vsdxHalfDash"; } case 21: { return "vsdxHalfDot"; } case 22: { return "vsdxHalfDashDot"; } case 23: { return "vsdxHalfDashDotDot"; } case 24: { return "vsdxHalfDashDashDot"; } case 25: { return "vsdxHalfLongDashShortDash"; } case 26: { return "vsdxHalfLongDashShortDashShortDash"; } case 27: { return "vsdxDoubleDash"; } case 28: { return "vsdxDoubleDot"; } case 29: { return "vsdxDoubleDashDot"; } case 30: { return "vsdxDoubleDashDotDot"; } case 31: { return "vsdxDoubleDashDashDot"; } case 32: { return "vsdxDoubleLongDashShortDash"; } case 33: { return "vsdxDoubleLongDashShortDashShortDash"; } case 34: { return "vsdxHalfHalfDash"; } } return null; }; CLn.prototype.fillDocumentBorder = function(oBorder) { if(this.Fill) { oBorder.Unifill = this.Fill; } oBorder.Size = (this.w === null) ? 12700 : ((this.w) >> 0); oBorder.Size /= 36000; oBorder.Value = AscCommonWord.border_Single; }; CLn.prototype.fromDocumentBorder = function(oBorder) { this.Fill = oBorder.Unifill; this.w = null; if(AscFormat.isRealNumber(oBorder.Size)) { this.w = oBorder.Size * 36000 >> 0; } this.cmpd = 1; }; CLn.prototype.getWidthMM = function () { const nEmu = AscFormat.isRealNumber(this.w) ? this.w : 12700; return nEmu * AscCommonWord.g_dKoef_emu_to_mm; }; CLn.prototype.isArrowPresent = function () { if(this.tailEnd && this.tailEnd.isPresent() || this.headEnd && this.headEnd.isPresent()) return true; return false; }; // ----------------------------- // SHAPE ---------------------------- function DefaultShapeDefinition() { CBaseFormatObject.call(this); this.spPr = new CSpPr(); this.bodyPr = new CBodyPr(); this.lstStyle = new TextListStyle(); this.style = null; } InitClass(DefaultShapeDefinition, CBaseFormatObject, AscDFH.historyitem_type_DefaultShapeDefinition); DefaultShapeDefinition.prototype.setSpPr = function (spPr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_DefaultShapeDefinition_SetSpPr, this.spPr, spPr)); this.spPr = spPr; }; DefaultShapeDefinition.prototype.setBodyPr = function (bodyPr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_DefaultShapeDefinition_SetBodyPr, this.bodyPr, bodyPr)); this.bodyPr = bodyPr; }; DefaultShapeDefinition.prototype.setLstStyle = function (lstStyle) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_DefaultShapeDefinition_SetLstStyle, this.lstStyle, lstStyle)); this.lstStyle = lstStyle; }; DefaultShapeDefinition.prototype.setStyle = function (style) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_DefaultShapeDefinition_SetStyle, this.style, style)); this.style = style; }; DefaultShapeDefinition.prototype.createDuplicate = function () { var ret = new DefaultShapeDefinition(); if (this.spPr) { ret.setSpPr(this.spPr.createDuplicate()); } if (this.bodyPr) { ret.setBodyPr(this.bodyPr.createDuplicate()); } if (this.lstStyle) { ret.setLstStyle(this.lstStyle.createDuplicate()); } if (this.style) { ret.setStyle(this.style.createDuplicate()); } return ret; }; function CNvPr() { CBaseFormatObject.call(this); this.id = 0; this.name = ""; this.isHidden = null; this.descr = null; this.title = null; this.hlinkClick = null; this.hlinkHover = null; this.form = null; this.setId(AscCommon.CreateDurableId()); } InitClass(CNvPr, CBaseFormatObject, AscDFH.historyitem_type_CNvPr); CNvPr.prototype.createDuplicate = function () { var duplicate = new CNvPr(); duplicate.setName(this.name); duplicate.setIsHidden(this.isHidden); duplicate.setDescr(this.descr); duplicate.setTitle(this.title); if (this.hlinkClick) { duplicate.setHlinkClick(this.hlinkClick.createDuplicate()); } if (this.hlinkHover) { duplicate.setHlinkHover(this.hlinkHover.createDuplicate()); } return duplicate; }; CNvPr.prototype.setId = function (id) { AscCommon.History.Add(new CChangesDrawingsLong(this, AscDFH.historyitem_CNvPr_SetId, this.id, id)); this.id = id; }; CNvPr.prototype.setName = function (name) { AscCommon.History.Add(new CChangesDrawingsString(this, AscDFH.historyitem_CNvPr_SetName, this.name, name)); this.name = name; }; CNvPr.prototype.setIsHidden = function (isHidden) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_CNvPr_SetIsHidden, this.isHidden, isHidden)); this.isHidden = isHidden; }; CNvPr.prototype.setDescr = function (descr) { AscCommon.History.Add(new CChangesDrawingsString(this, AscDFH.historyitem_CNvPr_SetDescr, this.descr, descr)); this.descr = descr; }; CNvPr.prototype.setHlinkClick = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_CNvPr_SetHlinkClick, this.hlinkClick, pr)); this.hlinkClick = pr; }; CNvPr.prototype.setHlinkHover = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_CNvPr_SetHlinkHover, this.hlinkHover, pr)); this.hlinkHover = pr; }; CNvPr.prototype.setTitle = function (title) { AscCommon.History.Add(new CChangesDrawingsString(this, AscDFH.historyitem_CNvPr_SetTitle, this.title, title)); this.title = title; }; CNvPr.prototype.setFromOther = function (oOther) { if (!oOther) { return; } if (oOther.name) { this.setName(oOther.name); } if (oOther.descr) { this.setDescr(oOther.descr); } if (oOther.title) { this.setTitle(oOther.title); } }; CNvPr.prototype.hasSameNameAndId = function (oPr) { if (!oPr) { return false; } return this.id === oPr.id && this.name === oPr.name; }; const AUDIO_CD = 0; const WAV_AUDIO_FILE = 1; const AUDIO_FILE = 2; const VIDEO_FILE = 3; const QUICK_TIME_FILE = 4; const DRAW_TYPE_PEN = 0; const DRAW_TYPE_PENCIL = 1; const DRAW_TYPE_HIGHLITER = 2; function UniMedia() { CBaseNoIdObject.call(this); this.type = null; this.media = null; } InitClass(UniMedia, CBaseNoIdObject, 0); UniMedia.prototype.Write_ToBinary = function (w) { var bType = this.type !== null && this.type !== undefined; var bMedia = typeof this.media === 'string'; var nFlags = 0; bType && (nFlags |= 1); bMedia && (nFlags |= 2); w.WriteLong(nFlags); bType && w.WriteLong(this.type); bMedia && w.WriteString2(this.media); }; UniMedia.prototype.Read_FromBinary = function (r) { var nFlags = r.GetLong(); if (nFlags & 1) { this.type = r.GetLong(); } if (nFlags & 2) { this.media = r.GetString2(); } }; UniMedia.prototype.createDuplicate = function () { var _ret = new UniMedia(); _ret.type = this.type; _ret.media = this.media; return _ret; }; drawingConstructorsMap[AscDFH.historyitem_NvPr_SetUniMedia] = UniMedia; function NvPr() { CBaseFormatObject.call(this); this.isPhoto = null; this.userDrawn = null; this.ph = null; this.unimedia = null; this.extLst = []; } InitClass(NvPr, CBaseFormatObject, AscDFH.historyitem_type_NvPr); NvPr.prototype.setIsPhoto = function (isPhoto) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_NvPr_SetIsPhoto, this.isPhoto, isPhoto)); this.isPhoto = isPhoto; }; NvPr.prototype.setUserDrawn = function (userDrawn) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_NvPr_SetUserDrawn, this.userDrawn, userDrawn)); this.userDrawn = userDrawn; }; NvPr.prototype.setPh = function (ph) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_NvPr_SetPh, this.ph, ph)); this.ph = ph; }; NvPr.prototype.addExt = function (ext) { History.Add(new CChangesDrawingsContentNoId(this, AscDFH.historyitem_NvPr_AddExt, this.extLst.length, [ext], true)); this.extLst.push(ext); }; NvPr.prototype.setUniMedia = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_NvPr_SetUniMedia, this.unimedia, pr)); this.unimedia = pr; }; NvPr.prototype.createDuplicate = function () { var duplicate = new NvPr(); duplicate.setIsPhoto(this.isPhoto); duplicate.setUserDrawn(this.userDrawn); if (this.ph != null) { duplicate.setPh(this.ph.createDuplicate()); } if (this.unimedia != null) { duplicate.setUniMedia(this.unimedia.createDuplicate()); } return duplicate; }; var szPh_full = 0, szPh_half = 1, szPh_quarter = 2; var orientPh_horz = 0, orientPh_vert = 1; function Ph() { CBaseFormatObject.call(this); this.hasCustomPrompt = null; this.idx = null; this.orient = null; this.sz = null; this.type = null; } InitClass(Ph, CBaseFormatObject, AscDFH.historyitem_type_Ph); Ph.prototype.createDuplicate = function () { var duplicate = new Ph(); duplicate.setHasCustomPrompt(this.hasCustomPrompt); duplicate.setIdx(this.idx); duplicate.setOrient(this.orient); duplicate.setSz(this.sz); duplicate.setType(this.type); return duplicate; }; Ph.prototype.setHasCustomPrompt = function (hasCustomPrompt) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_Ph_SetHasCustomPrompt, this.hasCustomPrompt, hasCustomPrompt)); this.hasCustomPrompt = hasCustomPrompt; }; Ph.prototype.setIdx = function (idx) { AscCommon.History.Add(new CChangesDrawingsString(this, AscDFH.historyitem_Ph_SetIdx, this.idx, idx)); this.idx = idx; }; Ph.prototype.getIdx = function() { return this.idx; } Ph.prototype.setOrient = function (orient) { AscCommon.History.Add(new CChangesDrawingsLong(this, AscDFH.historyitem_Ph_SetOrient, this.orient, orient)); this.orient = orient; }; Ph.prototype.setSz = function (sz) { AscCommon.History.Add(new CChangesDrawingsLong(this, AscDFH.historyitem_Ph_SetSz, this.sz, sz)); this.sz = sz; }; Ph.prototype.setType = function (type) { AscCommon.History.Add(new CChangesDrawingsLong(this, AscDFH.historyitem_Ph_SetType, this.type, type)); this.type = type; }; Ph.prototype.getType = function() { return this.type; }; function fUpdateLocksValue(nLocks, nMask, bValue) { nLocks |= nMask; if (bValue) { nLocks |= (nMask << 1) } else { nLocks &= ~(nMask << 1) } return nLocks; } function fGetLockValue(nLocks, nMask) { if (nLocks & nMask) { return !!(nLocks & (nMask << 1)); } return undefined; } window['AscFormat'] = window['AscFormat'] || {}; window['AscFormat'].fUpdateLocksValue = fUpdateLocksValue; window['AscFormat'].fGetLockValue = fGetLockValue; function CNvUniSpPr() { CBaseNoIdObject.call(this); this.locks = null; this.stCnxIdx = null; this.stCnxId = null; this.endCnxIdx = null; this.endCnxId = null; } InitClass(CNvUniSpPr, CBaseNoIdObject, 0); CNvUniSpPr.prototype.Write_ToBinary = function (w) { if (AscFormat.isRealNumber(this.locks)) { w.WriteBool(true); w.WriteLong(this.locks); } else { w.WriteBool(false); } if (AscFormat.isRealNumber(this.stCnxIdx) && typeof (this.stCnxId) === "string" && this.stCnxId.length > 0) { w.WriteBool(true); w.WriteLong(this.stCnxIdx); w.WriteString2(this.stCnxId); } else { w.WriteBool(false); } if (AscFormat.isRealNumber(this.endCnxIdx) && typeof (this.endCnxId) === "string" && this.endCnxId.length > 0) { w.WriteBool(true); w.WriteLong(this.endCnxIdx); w.WriteString2(this.endCnxId); } else { w.WriteBool(false); } }; CNvUniSpPr.prototype.Read_FromBinary = function (r) { var bCnx = r.GetBool(); if (bCnx) { this.locks = r.GetLong(); } else { this.locks = null; } bCnx = r.GetBool(); if (bCnx) { this.stCnxIdx = r.GetLong(); this.stCnxId = r.GetString2(); } else { this.stCnxIdx = null; this.stCnxId = null; } bCnx = r.GetBool(); if (bCnx) { this.endCnxIdx = r.GetLong(); this.endCnxId = r.GetString2(); } else { this.endCnxIdx = null; this.endCnxId = null; } }; CNvUniSpPr.prototype.assignConnectors = function(aSpTree) { let bNeedSetStart = AscFormat.isRealNumber(this.stCnxIdFormat); let bNeedSetEnd = AscFormat.isRealNumber(this.endCnxIdFormat); if(bNeedSetStart || bNeedSetEnd) { for(let nSp = 0; nSp < aSpTree.length && (bNeedSetEnd || bNeedSetStart); ++nSp) { let oSp = aSpTree[nSp]; if(bNeedSetStart && oSp.getFormatId() === this.stCnxIdFormat) { this.stCnxId = oSp.Get_Id(); this.stCnxIdFormat = undefined; bNeedSetStart = false; } if(bNeedSetEnd && oSp.getFormatId() === this.endCnxIdFormat) { this.endCnxId = oSp.Get_Id(); this.endCnxIdFormat = undefined; bNeedSetEnd = false; } } } }; CNvUniSpPr.prototype.copy = function () { var _ret = new CNvUniSpPr(); _ret.locks = this.locks; _ret.stCnxId = this.stCnxId; _ret.stCnxIdx = this.stCnxIdx; _ret.endCnxId = this.endCnxId; _ret.endCnxIdx = this.endCnxIdx; return _ret; }; CNvUniSpPr.prototype.getLocks = function() { if(!AscFormat.isRealNumber(this.locks)) { return 0; } return this.locks; }; function UniNvPr() { CBaseFormatObject.call(this); this.cNvPr = null; this.UniPr = null; this.nvPr = null; this.nvUniSpPr = null; this.setCNvPr(new CNvPr()); this.setNvPr(new NvPr()); this.setUniSpPr(new CNvUniSpPr()); } InitClass(UniNvPr, CBaseFormatObject, AscDFH.historyitem_type_UniNvPr); UniNvPr.prototype.setCNvPr = function (cNvPr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_UniNvPr_SetCNvPr, this.cNvPr, cNvPr)); this.cNvPr = cNvPr; }; UniNvPr.prototype.setUniSpPr = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_UniNvPr_SetUniSpPr, this.nvUniSpPr, pr)); this.nvUniSpPr = pr; }; UniNvPr.prototype.setUniPr = function (uniPr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_UniNvPr_SetUniPr, this.UniPr, uniPr)); this.UniPr = uniPr; }; UniNvPr.prototype.setNvPr = function (nvPr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_UniNvPr_SetNvPr, this.nvPr, nvPr)); this.nvPr = nvPr; }; UniNvPr.prototype.createDuplicate = function () { var duplicate = new UniNvPr(); this.cNvPr && duplicate.setCNvPr(this.cNvPr.createDuplicate()); this.nvPr && duplicate.setNvPr(this.nvPr.createDuplicate()); this.nvUniSpPr && duplicate.setUniSpPr(this.nvUniSpPr.copy()); return duplicate; }; UniNvPr.prototype.Write_ToBinary2 = function (w) { w.WriteLong(this.getObjectType()); w.WriteString2(this.Id); writeObject(w, this.cNvPr); writeObject(w, this.nvPr); }; UniNvPr.prototype.Read_FromBinary2 = function (r) { this.Id = r.GetString2(); this.cNvPr = readObject(r); this.nvPr = readObject(r); }; UniNvPr.prototype.getLocks = function() { if(this.nvUniSpPr) { return this.nvUniSpPr.getLocks(); } return 0; }; function StyleRef() { CBaseNoIdObject.call(this); this.idx = 0; this.Color = new CUniColor(); this.styleClr = null; } InitClass(StyleRef, CBaseNoIdObject, 0); StyleRef.prototype.isIdentical = function (styleRef) { if (styleRef == null) { return false; } if (this.idx !== styleRef.idx) { return false; } if(this.Color && !styleRef.Color || !this.Color && styleRef.Color) { return false; } if (!this.Color.IsIdentical(styleRef.Color)) { return false; } return true; }; StyleRef.prototype.getObjectType = function () { return AscDFH.historyitem_type_StyleRef; }; StyleRef.prototype.setIdx = function (idx) { this.idx = idx; }; StyleRef.prototype.setStyleClr = function (styleClr) { this.styleClr = styleClr; }; StyleRef.prototype.setColor = function (color) { this.Color = color; }; StyleRef.prototype.createDuplicate = function () { var duplicate = new StyleRef(); duplicate.setIdx(this.idx); if (this.Color) duplicate.setColor(this.Color.createDuplicate()); return duplicate; }; StyleRef.prototype.Refresh_RecalcData = function () { }; StyleRef.prototype.Write_ToBinary = function (w) { writeLong(w, this.idx); w.WriteBool(isRealObject(this.Color)); if (isRealObject(this.Color)) { this.Color.Write_ToBinary(w); } }; StyleRef.prototype.Read_FromBinary = function (r) { this.idx = readLong(r); if (r.GetBool()) { this.Color = new CUniColor(); this.Color.Read_FromBinary(r); } }; StyleRef.prototype.getNoStyleUnicolor = function (nIdx, aColors) { if (this.Color && this.Color.isCorrect()) { return this.Color.getNoStyleUnicolor(nIdx, aColors); } return null; }; function FontRef() { CBaseNoIdObject.call(this); this.idx = AscFormat.fntStyleInd_none; this.Color = null; } InitClass(FontRef, CBaseNoIdObject, 0); FontRef.prototype.getObjectType = function() { return AscDFH.historyitem_type_FontRef; }; FontRef.prototype.setIdx = function (idx) { this.idx = idx; }; FontRef.prototype.setColor = function (color) { this.Color = color; }; FontRef.prototype.createDuplicate = function () { var duplicate = new FontRef(); duplicate.setIdx(this.idx); if (this.Color) duplicate.setColor(this.Color.createDuplicate()); return duplicate; }; FontRef.prototype.Write_ToBinary = function (w) { writeLong(w, this.idx); w.WriteBool(isRealObject(this.Color)); if (isRealObject(this.Color)) { this.Color.Write_ToBinary(w); } }; FontRef.prototype.Read_FromBinary = function (r) { this.idx = readLong(r); if (r.GetBool()) { this.Color = new CUniColor(); this.Color.Read_FromBinary(r); } }; FontRef.prototype.getNoStyleUnicolor = function (nIdx, aColors) { if (this.Color && this.Color.isCorrect()) { return this.Color.getNoStyleUnicolor(nIdx, aColors); } return null; }; FontRef.prototype.getFirstPartThemeName = function () { if (this.idx === AscFormat.fntStyleInd_major) { return "+mj-"; } return "+mn-"; }; function CShapeStyle() { CBaseFormatObject.call(this); this.lnRef = null; this.fillRef = null; this.effectRef = null; this.fontRef = null; } InitClass(CShapeStyle, CBaseFormatObject, AscDFH.historyitem_type_ShapeStyle); CShapeStyle.prototype.merge = function (style) { if (style != null) { if (style.lnRef != null) { this.setLnRef(style.lnRef.createDuplicate()); } if (style.fillRef != null) { this.setFillRef(style.fillRef.createDuplicate()); } if (style.effectRef != null) { this.setEffectRef(style.effectRef.createDuplicate()); } if (style.fontRef != null) { this.setFontRef(style.fontRef.createDuplicate()); } } }; CShapeStyle.prototype.createDuplicate = function () { var duplicate = new CShapeStyle(); if (this.lnRef != null) { duplicate.setLnRef(this.lnRef.createDuplicate()); } if (this.fillRef != null) { duplicate.setFillRef(this.fillRef.createDuplicate()); } if (this.effectRef != null) { duplicate.setEffectRef(this.effectRef.createDuplicate()); } if (this.fontRef != null) { duplicate.setFontRef(this.fontRef.createDuplicate()); } return duplicate; }; CShapeStyle.prototype.setLnRef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ShapeStyle_SetLnRef, this.lnRef, pr)); this.lnRef = pr; }; CShapeStyle.prototype.setFillRef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ShapeStyle_SetFillRef, this.fillRef, pr)); this.fillRef = pr; }; CShapeStyle.prototype.setFontRef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ShapeStyle_SetFontRef, this.fontRef, pr)); this.fontRef = pr; }; CShapeStyle.prototype.setEffectRef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ShapeStyle_SetEffectRef, this.effectRef, pr)); this.effectRef = pr; }; CShapeStyle.prototype.Write_ToBinary = function(w) { AscFormat.writeObjectNoId(w, this.lnRef); AscFormat.writeObjectNoId(w, this.fillRef); AscFormat.writeObjectNoId(w, this.fontRef); AscFormat.writeObjectNoId(w, this.effectRef); }; CShapeStyle.prototype.Read_FromBinary = function(r) { this.lnRef = AscFormat.readObjectNoId(r); this.fillRef = AscFormat.readObjectNoId(r); this.fontRef = AscFormat.readObjectNoId(r); this.effectRef = AscFormat.readObjectNoId(r); }; var LINE_PRESETS_MAP = {}; LINE_PRESETS_MAP["line"] = true; LINE_PRESETS_MAP["bracePair"] = true; LINE_PRESETS_MAP["leftBrace"] = true; LINE_PRESETS_MAP["rightBrace"] = true; LINE_PRESETS_MAP["bracketPair"] = true; LINE_PRESETS_MAP["leftBracket"] = true; LINE_PRESETS_MAP["rightBracket"] = true; LINE_PRESETS_MAP["bentConnector2"] = true; LINE_PRESETS_MAP["bentConnector3"] = true; LINE_PRESETS_MAP["bentConnector4"] = true; LINE_PRESETS_MAP["bentConnector5"] = true; LINE_PRESETS_MAP["curvedConnector2"] = true; LINE_PRESETS_MAP["curvedConnector3"] = true; LINE_PRESETS_MAP["curvedConnector4"] = true; LINE_PRESETS_MAP["curvedConnector5"] = true; LINE_PRESETS_MAP["straightConnector1"] = true; LINE_PRESETS_MAP["arc"] = true; function CreateDefaultShapeStyle(preset) { var b_line = typeof preset === "string" && LINE_PRESETS_MAP[preset]; var tx_color = b_line; var unicolor; var style = new CShapeStyle(); var lnRef = new StyleRef(); lnRef.setIdx(b_line ? 1 : 2); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); unicolor.setMods(new CColorModifiers()); unicolor.Mods.addMod("shade", 50000); lnRef.setColor(unicolor); style.setLnRef(lnRef); var fillRef = new StyleRef(); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); fillRef.setIdx(b_line ? 0 : 1); fillRef.setColor(unicolor); style.setFillRef(fillRef); var effectRef = new StyleRef(); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); effectRef.setIdx(0); effectRef.setColor(unicolor); style.setEffectRef(effectRef); var fontRef = new FontRef(); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(tx_color ? 15 : 12); fontRef.setIdx(AscFormat.fntStyleInd_minor); fontRef.setColor(unicolor); style.setFontRef(fontRef); return style; } function CXfrm() { CBaseFormatObject.call(this); this.offX = null; this.offY = null; this.extX = null; this.extY = null; this.chOffX = null; this.chOffY = null; this.chExtX = null; this.chExtY = null; this.flipH = null; this.flipV = null; this.rot = null; } InitClass(CXfrm, CBaseFormatObject, AscDFH.historyitem_type_Xfrm); CXfrm.prototype.isNotNull = function () { return isRealNumber(this.offX) && isRealNumber(this.offY) && isRealNumber(this.extX) && isRealNumber(this.extY); }; CXfrm.prototype.isNull = function () { return !isRealNumber(this.offX) && !isRealNumber(this.offY) && !isRealNumber(this.extX) && !isRealNumber(this.extY); }; CXfrm.prototype.isNotNullForGroup = function () { return isRealNumber(this.offX) && isRealNumber(this.offY) && isRealNumber(this.chOffX) && isRealNumber(this.chOffY) && isRealNumber(this.extX) && isRealNumber(this.extY) && isRealNumber(this.chExtX) && isRealNumber(this.chExtY); }; CXfrm.prototype.isZero = function () { return ( this.offX === 0 && this.offY === 0 && this.extX === 0 && this.extY === 0 ); }; CXfrm.prototype.isZeroCh = function () { return ( this.chOffX === 0 && this.chOffY === 0 && this.chExtX === 0 && this.chExtY === 0 ); }; CXfrm.prototype.isZeroInGroup = function () { return this.isZero() && this.isZeroCh(); }; CXfrm.prototype.isEqual = function (xfrm) { return xfrm && this.offX === xfrm.offX && this.offY === xfrm.offY && this.extX === xfrm.extX && this.extY === xfrm.extY && this.chOffX === xfrm.chOffX && this.chOffY === xfrm.chOffY && this.chExtX === xfrm.chExtX && this.chExtY === xfrm.chExtY; }; CXfrm.prototype.merge = function (xfrm) { if(!xfrm) { return; } if (xfrm.offX != null) { this.setOffX(xfrm.offX); } if (xfrm.offY != null) { this.setOffY(xfrm.offY); } if (xfrm.extX != null) { this.setExtX(xfrm.extX); } if (xfrm.extY != null) { this.setExtY(xfrm.extY); } if (xfrm.chOffX != null) { this.setChOffX(xfrm.chOffX); } if (xfrm.chOffY != null) { this.setChOffY(xfrm.chOffY); } if (xfrm.chExtX != null) { this.setChExtX(xfrm.chExtX); } if (xfrm.chExtY != null) { this.setChExtY(xfrm.chExtY); } if (xfrm.flipH != null) { this.setFlipH(xfrm.flipH); } if (xfrm.flipV != null) { this.setFlipV(xfrm.flipV); } if (xfrm.rot != null) { this.setRot(xfrm.rot); } }; CXfrm.prototype.createDuplicate = function () { var duplicate = new CXfrm(); duplicate.setOffX(this.offX); duplicate.setOffY(this.offY); duplicate.setExtX(this.extX); duplicate.setExtY(this.extY); duplicate.setChOffX(this.chOffX); duplicate.setChOffY(this.chOffY); duplicate.setChExtX(this.chExtX); duplicate.setChExtY(this.chExtY); duplicate.setFlipH(this.flipH); duplicate.setFlipV(this.flipV); duplicate.setRot(this.rot); return duplicate; }; CXfrm.prototype.setParent = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_Xfrm_SetParent, this.parent, pr)); this.parent = pr; }; CXfrm.prototype.setOffX = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetOffX, this.offX, pr)); this.offX = pr; this.handleUpdatePosition(); }; CXfrm.prototype.setOffY = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetOffY, this.offY, pr)); this.offY = pr; this.handleUpdatePosition(); }; CXfrm.prototype.setExtX = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetExtX, this.extX, pr)); this.extX = pr; this.handleUpdateExtents(true); }; CXfrm.prototype.setExtY = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetExtY, this.extY, pr)); this.extY = pr; this.handleUpdateExtents(false); }; CXfrm.prototype.setChOffX = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetChOffX, this.chOffX, pr)); this.chOffX = pr; this.handleUpdateChildOffset(); }; CXfrm.prototype.setChOffY = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetChOffY, this.chOffY, pr)); this.chOffY = pr; this.handleUpdateChildOffset(); }; CXfrm.prototype.setChExtX = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetChExtX, this.chExtX, pr)); this.chExtX = pr; this.handleUpdateChildExtents(); }; CXfrm.prototype.setChExtY = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetChExtY, this.chExtY, pr)); this.chExtY = pr; this.handleUpdateChildExtents(); }; CXfrm.prototype.setFlipH = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_Xfrm_SetFlipH, this.flipH, pr)); this.flipH = pr; this.handleUpdateFlip(); }; CXfrm.prototype.setFlipV = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_Xfrm_SetFlipV, this.flipV, pr)); this.flipV = pr; this.handleUpdateFlip(); }; CXfrm.prototype.setRot = function (pr) { AscCommon.History.CanAddChanges() && AscCommon.History.Add(new CChangesDrawingsDouble(this, AscDFH.historyitem_Xfrm_SetRot, this.rot, pr)); this.rot = pr; this.handleUpdateRot(); }; CXfrm.prototype.getRot = function() { return this.rot; }; CXfrm.prototype.shift = function(dDX, dDY) { if(this.offX !== null && this.offY !== null) { this.setOffX(this.offX + dDX); this.setOffY(this.offY + dDY); } }; CXfrm.prototype.handleUpdatePosition = function () { if (this.parent && this.parent.handleUpdatePosition) { this.parent.handleUpdatePosition(); } }; CXfrm.prototype.handleUpdateExtents = function (bExtX) { if (this.parent && this.parent.handleUpdateExtents) { this.parent.handleUpdateExtents(bExtX); } }; CXfrm.prototype.handleUpdateChildOffset = function () { if (this.parent && this.parent.handleUpdateChildOffset) { this.parent.handleUpdateChildOffset(); } }; CXfrm.prototype.handleUpdateChildExtents = function () { if (this.parent && this.parent.handleUpdateChildExtents) { this.parent.handleUpdateChildExtents(); } }; CXfrm.prototype.handleUpdateFlip = function () { if (this.parent && this.parent.handleUpdateFlip) { this.parent.handleUpdateFlip(); } }; CXfrm.prototype.handleUpdateRot = function () { if (this.parent && this.parent.handleUpdateRot) { this.parent.handleUpdateRot(); } }; CXfrm.prototype.Refresh_RecalcData = function (data) { switch (data.Type) { case AscDFH.historyitem_Xfrm_SetOffX: { this.handleUpdatePosition(); break; } case AscDFH.historyitem_Xfrm_SetOffY: { this.handleUpdatePosition(); break; } case AscDFH.historyitem_Xfrm_SetExtX: { this.handleUpdateExtents(); break; } case AscDFH.historyitem_Xfrm_SetExtY: { this.handleUpdateExtents(); break; } case AscDFH.historyitem_Xfrm_SetChOffX: { this.handleUpdateChildOffset(); break; } case AscDFH.historyitem_Xfrm_SetChOffY: { this.handleUpdateChildOffset(); break; } case AscDFH.historyitem_Xfrm_SetChExtX: { this.handleUpdateChildExtents(); break; } case AscDFH.historyitem_Xfrm_SetChExtY: { this.handleUpdateChildExtents(); break; } case AscDFH.historyitem_Xfrm_SetFlipH: { this.handleUpdateFlip(); break; } case AscDFH.historyitem_Xfrm_SetFlipV: { this.handleUpdateFlip(); break; } case AscDFH.historyitem_Xfrm_SetRot: { this.handleUpdateRot(); break; } } }; CXfrm.prototype.fillStandardSmartArtXfrm = function () { const oApi = Asc.editor || editor; if (oApi && oApi.isDocumentEditor) { this.setOffX(0); this.setOffY(0); } else { this.setOffX(2032000 * AscCommonWord.g_dKoef_emu_to_mm); this.setOffY(719666 * AscCommonWord.g_dKoef_emu_to_mm); } this.setExtX(8128000 * AscCommonWord.g_dKoef_emu_to_mm); this.setExtY(5418667 * AscCommonWord.g_dKoef_emu_to_mm); this.setChOffX(0); this.setChOffY(0); this.setChExtX(this.extX); this.setChExtY(this.extY); }; /** * @constructor */ function CEffectProperties() { CBaseNoIdObject.call(this); this.EffectDag = null; this.EffectLst = null; } InitClass(CEffectProperties, CBaseNoIdObject, AscDFH.historyitem_type_CEffectProperties); CEffectProperties.prototype.createDuplicate = function () { var oCopy = new CEffectProperties(); if (this.EffectDag) { oCopy.EffectDag = this.EffectDag.createDuplicate(); } if (this.EffectLst) { oCopy.EffectLst = this.EffectLst.createDuplicate(); } return oCopy; }; CEffectProperties.prototype.merge = function (effectPr) { // if (effectPr.EffectDag) { // if (!this.EffectDag) { // this.EffectDag = new CEffectContainer(); // } // this.EffectDag.merge(effectPr.EffectDag); // } if (effectPr.EffectLst) { if (!this.EffectLst) { this.EffectLst = new CEffectLst(); } this.EffectLst.merge(effectPr.EffectLst); } }; CEffectProperties.prototype.Write_ToBinary = function (w) { var nFlags = 0; if (this.EffectDag) { nFlags |= 1; } if (this.EffectLst) { nFlags |= 2; } w.WriteLong(nFlags); if (this.EffectDag) { this.EffectDag.Write_ToBinary(w); } if (this.EffectLst) { this.EffectLst.Write_ToBinary(w); } }; CEffectProperties.prototype.Read_FromBinary = function (r) { var nFlags = r.GetLong(); if (nFlags & 1) { this.EffectDag = new CEffectContainer(); this.EffectDag.Read_FromBinary(r); } if (nFlags & 2) { this.EffectLst = new CEffectLst(); this.EffectLst.Read_FromBinary(r); } }; function CEffectLst() { CBaseNoIdObject.call(this); this.blur = null; this.fillOverlay = null; this.glow = null; this.innerShdw = null; this.outerShdw = null; this.prstShdw = null; this.reflection = null; this.softEdge = null; } InitClass(CEffectLst, CBaseNoIdObject, 0); CEffectLst.prototype.createDuplicate = function () { var oCopy = new CEffectLst(); if (this.blur) { oCopy.blur = this.blur.createDuplicate(); } if (this.fillOverlay) { oCopy.fillOverlay = this.fillOverlay.createDuplicate(); } if (this.glow) { oCopy.glow = this.glow.createDuplicate(); } if (this.innerShdw) { oCopy.innerShdw = this.innerShdw.createDuplicate(); } if (this.outerShdw) { oCopy.outerShdw = this.outerShdw.createDuplicate(); } if (this.prstShdw) { oCopy.prstShdw = this.prstShdw.createDuplicate(); } if (this.reflection) { oCopy.reflection = this.reflection.createDuplicate(); } if (this.softEdge) { oCopy.softEdge = this.softEdge.createDuplicate(); } return oCopy; }; CEffectLst.prototype.merge = function (effectLst) { if (effectLst.blur) { this.blur = effectLst.blur.createDuplicate(); } if (effectLst.fillOverlay) { this.fillOverlay = effectLst.fillOverlay.createDuplicate(); } if (effectLst.glow) { this.glow = effectLst.glow.createDuplicate(); } if (effectLst.innerShdw) { this.innerShdw = effectLst.innerShdw.createDuplicate(); } if (effectLst.outerShdw) { this.outerShdw = effectLst.outerShdw.createDuplicate(); } if (effectLst.prstShdw) { this.prstShdw = effectLst.prstShdw.createDuplicate(); } if (effectLst.reflection) { this.reflection = effectLst.reflection.createDuplicate(); } if (effectLst.softEdge) { this.softEdge = effectLst.softEdge.createDuplicate(); } }; CEffectLst.prototype.Write_ToBinary = function (w) { var nFlags = 0; if (this.blur) { nFlags |= 1; } if (this.fillOverlay) { nFlags |= 2; } if (this.glow) { nFlags |= 4; } if (this.innerShdw) { nFlags |= 8; } if (this.outerShdw) { nFlags |= 16; } if (this.prstShdw) { nFlags |= 32; } if (this.reflection) { nFlags |= 64; } if (this.softEdge) { nFlags |= 128; } w.WriteLong(nFlags); if (this.blur) { this.blur.Write_ToBinary(w); } if (this.fillOverlay) { this.fillOverlay.Write_ToBinary(w); } if (this.glow) { this.glow.Write_ToBinary(w); } if (this.innerShdw) { this.innerShdw.Write_ToBinary(w); } if (this.outerShdw) { this.outerShdw.Write_ToBinary(w); } if (this.prstShdw) { this.prstShdw.Write_ToBinary(w); } if (this.reflection) { this.reflection.Write_ToBinary(w); } if (this.softEdge) { this.softEdge.Write_ToBinary(w); } }; CEffectLst.prototype.Read_FromBinary = function (r) { var nFlags = r.GetLong(); if (nFlags & 1) { this.blur = new CBlur(); r.GetLong(); this.blur.Read_FromBinary(r); } if (nFlags & 2) { this.fillOverlay = new CFillOverlay(); r.GetLong(); this.fillOverlay.Read_FromBinary(r); } if (nFlags & 4) { this.glow = new CGlow(); r.GetLong(); this.glow.Read_FromBinary(r); } if (nFlags & 8) { this.innerShdw = new CInnerShdw(); r.GetLong(); this.innerShdw.Read_FromBinary(r); } if (nFlags & 16) { this.outerShdw = new COuterShdw(); r.GetLong(); this.outerShdw.Read_FromBinary(r); } if (nFlags & 32) { this.prstShdw = new CPrstShdw(); r.GetLong(); this.prstShdw.Read_FromBinary(r); } if (nFlags & 64) { this.reflection = new CReflection(); r.GetLong(); this.reflection.Read_FromBinary(r); } if (nFlags & 128) { this.softEdge = new CSoftEdge(); r.GetLong(); this.softEdge.Read_FromBinary(r); } }; function CSpPr() { CBaseFormatObject.call(this); this.bwMode = 0; this.xfrm = null; this.geometry = null; this.Fill = null; this.ln = null; this.parent = null; this.effectProps = null; } InitClass(CSpPr, CBaseFormatObject, AscDFH.historyitem_type_SpPr); CSpPr.prototype.Refresh_RecalcData = function (data) { switch (data.Type) { case AscDFH.historyitem_SpPr_SetParent: { break; } case AscDFH.historyitem_SpPr_SetBwMode: { break; } case AscDFH.historyitem_SpPr_SetXfrm: { this.handleUpdateExtents(); break; } case AscDFH.historyitem_SpPr_SetGeometry: case AscDFH.historyitem_SpPr_SetEffectPr: { this.handleUpdateGeometry(); break; } case AscDFH.historyitem_SpPr_SetFill: { this.handleUpdateFill(); break; } case AscDFH.historyitem_SpPr_SetLn: { this.handleUpdateLn(); break; } } }; CSpPr.prototype.Refresh_RecalcData2 = function (data) { }; CSpPr.prototype.createDuplicate = function () { var duplicate = new CSpPr(); duplicate.setBwMode(this.bwMode); if (this.xfrm) { duplicate.setXfrm(this.xfrm.createDuplicate()); duplicate.xfrm.setParent(duplicate); } if (this.geometry != null) { duplicate.setGeometry(this.geometry.createDuplicate()); } if (this.Fill != null) { duplicate.setFill(this.Fill.createDuplicate()); } if (this.ln != null) { duplicate.setLn(this.ln.createDuplicate()); } if (this.effectProps) { duplicate.setEffectPr(this.effectProps.createDuplicate()); } return duplicate; }; CSpPr.prototype.createDuplicateForSmartArt = function () { var duplicate = new CSpPr(); if (this.Fill != null) { duplicate.setFill(this.Fill.createDuplicate()); } return duplicate; }; CSpPr.prototype.hasRGBFill = function () { return this.Fill && this.Fill.fill && this.Fill.fill.color && this.Fill.fill.color.color && this.Fill.fill.color.color.type === c_oAscColor.COLOR_TYPE_SRGB; }; CSpPr.prototype.hasNoFill = function () { if (this.Fill) { return this.Fill.isNoFill(); } return false; }; CSpPr.prototype.hasNoFillLine = function () { if (this.ln) { return this.ln.isNoFillLine(); } return false; }; CSpPr.prototype.checkUniFillRasterImageId = function (unifill) { return checkUniFillRasterImageId(unifill); }; CSpPr.prototype.checkBlipFillRasterImage = function (images) { var fill_image_id = this.checkUniFillRasterImageId(this.Fill); if (fill_image_id !== null) images.push(fill_image_id); if (this.ln) { var line_image_id = this.checkUniFillRasterImageId(this.ln.Fill); if (line_image_id) images.push(line_image_id); } }; CSpPr.prototype.changeShadow = function (oShadow) { if (oShadow) { var oEffectProps = this.effectProps ? this.effectProps.createDuplicate() : new AscFormat.CEffectProperties(); if (!oEffectProps.EffectLst) { oEffectProps.EffectLst = new CEffectLst(); } oEffectProps.EffectLst.outerShdw = oShadow.createDuplicate(); this.setEffectPr(oEffectProps); } else { if (this.effectProps) { if (this.effectProps.EffectLst) { if (this.effectProps.EffectLst.outerShdw) { var oEffectProps = this.effectProps.createDuplicate(); oEffectProps.EffectLst.outerShdw = null; this.setEffectPr(oEffectProps); } } } } }; CSpPr.prototype.merge = function (spPr) { /*if(spPr.xfrm != null) { this.xfrm.merge(spPr.xfrm); } */ if (spPr.geometry != null) { this.geometry = spPr.geometry.createDuplicate(); } if (spPr.Fill != null && spPr.Fill.fill != null) { //this.Fill = spPr.Fill.createDuplicate(); } /*if(spPr.ln!=null) { if(this.ln == null) this.ln = new CLn(); this.ln.merge(spPr.ln); } */ }; CSpPr.prototype.fullMerge = function (spPr) { if (spPr.xfrm != null) { this.xfrm.merge(spPr.xfrm); } if (spPr.geometry !== null) { this.setGeometry(spPr.geometry.createDuplicate()); } if (spPr.Fill !== null && spPr.Fill.fill !== null) { this.setFill(spPr.Fill.createDuplicate()); } if (spPr.ln != null) { if (this.ln == null) this.setLn(new CLn()); this.ln.merge(spPr.ln); } if (spPr.effectProps !== null) { if (this.effectProps === null) { this.setEffectPr(new CEffectProperties()); } this.effectProps.merge(spPr.effectProps); } }; CSpPr.prototype.setParent = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_SpPr_SetParent, this.parent, pr)); this.parent = pr; }; CSpPr.prototype.setBwMode = function (pr) { AscCommon.History.Add(new CChangesDrawingsLong(this, AscDFH.historyitem_SpPr_SetBwMode, this.bwMode, pr)); this.bwMode = pr; }; CSpPr.prototype.setXfrm = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_SpPr_SetXfrm, this.xfrm, pr)); this.xfrm = pr; if(pr) { pr.setParent(this); } }; CSpPr.prototype.setGeometry = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_SpPr_SetGeometry, this.geometry, pr)); this.geometry = pr; if (this.geometry) { this.geometry.setParent(this); } this.handleUpdateGeometry(); }; CSpPr.prototype.setFill = function (pr) { if(!pr || !pr.isBlipFill() || !Asc.editor.evalCommand) AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_SpPr_SetFill, this.Fill, pr)); this.Fill = pr; if (this.parent && this.parent.handleUpdateFill) { this.parent.handleUpdateFill(); } }; CSpPr.prototype.setLn = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_SpPr_SetLn, this.ln, pr)); this.ln = pr; if (this.parent && this.parent.handleUpdateLn) { this.parent.handleUpdateLn(); } }; CSpPr.prototype.setEffectPr = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_SpPr_SetEffectPr, this.effectProps, pr)); this.effectProps = pr; }; CSpPr.prototype.handleUpdatePosition = function () { if (this.parent && this.parent.handleUpdatePosition) { this.parent.handleUpdatePosition(); } }; CSpPr.prototype.handleUpdateExtents = function (bExtX) { if (this.parent && this.parent.handleUpdateExtents) { this.parent.handleUpdateExtents(bExtX); } }; CSpPr.prototype.handleUpdateChildOffset = function () { if (this.parent && this.parent.handleUpdateChildOffset) { this.parent.handleUpdateChildOffset(); } }; CSpPr.prototype.handleUpdateChildExtents = function () { if (this.parent && this.parent.handleUpdateChildExtents) { this.parent.handleUpdateChildExtents(); } }; CSpPr.prototype.handleUpdateFlip = function () { if (this.parent && this.parent.handleUpdateFlip) { this.parent.handleUpdateFlip(); } }; CSpPr.prototype.handleUpdateRot = function () { if (this.parent && this.parent.handleUpdateRot) { this.parent.handleUpdateRot(); } }; CSpPr.prototype.handleUpdateGeometry = function () { if (this.parent && this.parent.handleUpdateGeometry) { this.parent.handleUpdateGeometry(); } }; CSpPr.prototype.handleUpdateFill = function () { if (this.parent && this.parent.handleUpdateFill) { this.parent.handleUpdateFill(); } }; CSpPr.prototype.handleUpdateLn = function () { if (this.parent && this.parent.handleUpdateLn) { this.parent.handleUpdateLn(); } }; CSpPr.prototype.setLineFill = function () { if (this.ln && this.ln.Fill) { this.setFill(this.ln.Fill.createDuplicate()); } }; CSpPr.prototype.getOuterShdw = function () { if (this.effectProps && this.effectProps.EffectLst && this.effectProps.EffectLst.outerShdw) { return this.effectProps.EffectLst.outerShdw; } return null; }; // ---------------------------------- // THEME ---------------------------- var g_clr_MIN = 0; var g_clr_accent1 = 0; var g_clr_accent2 = 1; var g_clr_accent3 = 2; var g_clr_accent4 = 3; var g_clr_accent5 = 4; var g_clr_accent6 = 5; var g_clr_dk1 = 6; var g_clr_dk2 = 7; var g_clr_folHlink = 8; var g_clr_hlink = 9; var g_clr_lt1 = 10; var g_clr_lt2 = 11; var g_clr_MAX = 11; var g_clr_bg1 = g_clr_lt1; var g_clr_bg2 = g_clr_lt2; var g_clr_tx1 = g_clr_dk1; var g_clr_tx2 = g_clr_dk2; var phClr = 14; var tx1 = 15; var tx2 = 16; let CLR_IDX_MAP = {}; CLR_IDX_MAP["dk1"] = 8; CLR_IDX_MAP["lt1"] = 12; CLR_IDX_MAP["dk2"] = 9; CLR_IDX_MAP["lt2"] = 13; CLR_IDX_MAP["accent1"] = 0; CLR_IDX_MAP["accent2"] = 1; CLR_IDX_MAP["accent3"] = 2; CLR_IDX_MAP["accent4"] = 3; CLR_IDX_MAP["accent5"] = 4; CLR_IDX_MAP["accent6"] = 5; CLR_IDX_MAP["hlink"] = 11; CLR_IDX_MAP["folHlink"] = 10; let CLR_NAME_MAP = {}; CLR_NAME_MAP[8] = "dk1"; CLR_NAME_MAP[12] = "lt1"; CLR_NAME_MAP[9] = "dk2"; CLR_NAME_MAP[13] = "lt2"; CLR_NAME_MAP[0] = "accent1"; CLR_NAME_MAP[1] = "accent2"; CLR_NAME_MAP[2] = "accent3"; CLR_NAME_MAP[3] = "accent4"; CLR_NAME_MAP[4] = "accent5"; CLR_NAME_MAP[5] = "accent6"; CLR_NAME_MAP[11] = "hlink"; CLR_NAME_MAP[10] = "folHlink"; function ClrScheme() { CBaseNoIdObject.call(this); this.name = ""; this.colors = []; /** * Used to store xml extensions (e.g. visio variant colors) * set in sdkjs-ooxml/common/Drawings/Format.js ClrScheme.prototype.readChildXml */ this.clrSchemeExtLst = null; for (var i = g_clr_MIN; i <= g_clr_MAX; i++) this.colors[i] = null; } InitClass(ClrScheme, CBaseNoIdObject, 0); ClrScheme.prototype.isIdentical = function (clrScheme) { if (!(clrScheme instanceof ClrScheme)) { return false; } if (clrScheme.name !== this.name) { return false; } for (var _clr_index = g_clr_MIN; _clr_index <= g_clr_MAX; ++_clr_index) { if (this.colors[_clr_index]) { if (!this.colors[_clr_index].IsIdentical(clrScheme.colors[_clr_index])) { return false; } } else { if (clrScheme.colors[_clr_index]) { return false; } } } return true; }; ClrScheme.prototype.createDuplicate = function () { var _duplicate = new ClrScheme(); _duplicate.name = this.name; for (var _clr_index = 0; _clr_index <= this.colors.length; ++_clr_index) { if (this.colors[_clr_index]) { _duplicate.colors[_clr_index] = this.colors[_clr_index].createDuplicate(); } } return _duplicate; }; ClrScheme.prototype.Write_ToBinary = function (w) { w.WriteLong(this.colors.length); w.WriteString2(this.name); for (var i = 0; i < this.colors.length; ++i) { w.WriteBool(isRealObject(this.colors[i])); if (isRealObject(this.colors[i])) { this.colors[i].Write_ToBinary(w); } } }; ClrScheme.prototype.Read_FromBinary = function (r) { var len = r.GetLong(); this.name = r.GetString2(); for (var i = 0; i < len; ++i) { if (r.GetBool()) { this.colors[i] = new CUniColor(); this.colors[i].Read_FromBinary(r); } else { this.colors[i] = null; } } }; ClrScheme.prototype.setName = function (name) { this.name = name; }; ClrScheme.prototype.addColor = function (index, color) { this.colors[index] = color; }; function ClrMap() { CBaseFormatObject.call(this); this.color_map = []; for (var i = g_clr_MIN; i <= g_clr_MAX; i++) this.color_map[i] = null; } InitClass(ClrMap, CBaseFormatObject, AscDFH.historyitem_type_ClrMap); ClrMap.prototype.Refresh_RecalcData = function () { }; ClrMap.prototype.notAllowedWithoutId = function () { return false; }; ClrMap.prototype.createDuplicate = function () { var _copy = new ClrMap(); for (var _color_index = g_clr_MIN; _color_index <= this.color_map.length; ++_color_index) { _copy.setClr(_color_index, this.color_map[_color_index]); } return _copy; }; ClrMap.prototype.compare = function (other) { if (!other) return false; for (var i = g_clr_MIN; i < this.color_map.length; ++i) { if (this.color_map[i] !== other.color_map[i]) { return false; } } return true; }; ClrMap.prototype.setClr = function (index, clr) { AscCommon.History.Add(new CChangesDrawingsContentLongMap(this, AscDFH.historyitem_ClrMap_SetClr, index, [clr], true)); this.color_map[index] = clr; }; ClrMap.prototype.SchemeClr_GetBYTECode = function (sValue) { if ("accent1" === sValue) return 0; if ("accent2" === sValue) return 1; if ("accent3" === sValue) return 2; if ("accent4" === sValue) return 3; if ("accent5" === sValue) return 4; if ("accent6" === sValue) return 5; if ("bg1" === sValue) return 6; if ("bg2" === sValue) return 7; if ("dk1" === sValue) return 8; if ("dk2" === sValue) return 9; if ("folHlink" === sValue) return 10; if ("hlink" === sValue) return 11; if ("lt1" === sValue) return 12; if ("lt2" === sValue) return 13; if ("phClr" === sValue) return 14; if ("tx1" === sValue) return 15; if ("tx2" === sValue) return 16; return 0; }; ClrMap.prototype.SchemeClr_GetStringCode = function (val) { switch (val) { case 0: return ("accent1"); case 1: return ("accent2"); case 2: return ("accent3"); case 3: return ("accent4"); case 4: return ("accent5"); case 5: return ("accent6"); case 6: return ("bg1"); case 7: return ("bg2"); case 8: return ("dk1"); case 9: return ("dk2"); case 10: return ("folHlink"); case 11: return ("hlink"); case 12: return ("lt1"); case 13: return ("lt2"); case 14: return ("phClr"); case 15: return ("tx1"); case 16: return ("tx2"); } return ("accent1"); } ClrMap.prototype.getColorIdx = function (name) { if ("accent1" === name) return 0; if ("accent2" === name) return 1; if ("accent3" === name) return 2; if ("accent4" === name) return 3; if ("accent5" === name) return 4; if ("accent6" === name) return 5; if ("bg1" === name) return 6; if ("bg2" === name) return 7; if ("dk1" === name) return 8; if ("dk2" === name) return 9; if ("folHlink" === name) return 10; if ("hlink" === name) return 11; if ("lt1" === name) return 12; if ("lt2" === name) return 13; if ("phClr" === name) return 14; if ("tx1" === name) return 15; if ("tx2" === name) return 16; return null; }; ClrMap.prototype.getColorName = function (nIdx) { if (0 === nIdx) return "accent1"; if (1 === nIdx) return "accent2"; if (2 === nIdx) return "accent3"; if (3 === nIdx) return "accent4"; if (4 === nIdx) return "accent5"; if (5 === nIdx) return "accent6"; if (6 === nIdx) return "bg1"; if (7 === nIdx) return "bg2"; if (8 === nIdx) return "dk1"; if (9 === nIdx) return "dk2"; if (10 === nIdx) return "folHlink"; if (11 === nIdx) return "hlink"; if (12 === nIdx) return "lt1"; if (13 === nIdx) return "lt2"; if (14 === nIdx) return "phClr"; if (15 === nIdx) return "tx1"; if (16 === nIdx) return "tx2"; return null; }; ClrMap.prototype.getColorIdxWord = function (name) { if ("accent1" === name) return 0; if ("accent2" === name) return 1; if ("accent3" === name) return 2; if ("accent4" === name) return 3; if ("accent5" === name) return 4; if ("accent6" === name) return 5; if ("dark1" === name) return 8; if ("dark2" === name) return 9; if ("followedHyperlink" === name) return 10; if ("hyperlink" === name) return 11; if ("light1" === name) return 12; if ("light2" === name) return 13; return null; }; ClrMap.prototype.getColorNameWord = function (val) { switch (val) { case 0: return ("accent1"); case 1: return ("accent2"); case 2: return ("accent3"); case 3: return ("accent4"); case 4: return ("accent5"); case 5: return ("accent6"); case 8: return ("dark1"); case 9: return ("dark2"); case 10: return ("followedHyperlink"); case 11: return ("hyperlink"); case 12: return ("light1"); case 13: return ("light2"); } return (""); }; function ExtraClrScheme() { CBaseFormatObject.call(this); this.clrScheme = null; this.clrMap = null; } InitClass(ExtraClrScheme, CBaseFormatObject, AscDFH.historyitem_type_ExtraClrScheme); ExtraClrScheme.prototype.Refresh_RecalcData = function () { }; ExtraClrScheme.prototype.setClrScheme = function (pr) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ExtraClrScheme_SetClrScheme, this.clrScheme, pr)); this.clrScheme = pr; }; ExtraClrScheme.prototype.setClrMap = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_ExtraClrScheme_SetClrMap, this.clrMap, pr)); this.clrMap = pr; }; ExtraClrScheme.prototype.createDuplicate = function () { var ret = new ExtraClrScheme(); if (this.clrScheme) { ret.setClrScheme(this.clrScheme.createDuplicate()) } if (this.clrMap) { ret.setClrMap(this.clrMap.createDuplicate()); } return ret; }; drawingConstructorsMap[AscDFH.historyitem_ExtraClrScheme_SetClrScheme] = ClrScheme; drawingConstructorsMap[AscDFH.historyitem_NvPr_AddExt] = CExtP; function FontCollection(fontScheme) { CBaseNoIdObject.call(this); this.latin = null; this.ea = null; this.cs = null; if (fontScheme) { this.setFontScheme(fontScheme); } } InitClass(FontCollection, CBaseNoIdObject, 0); FontCollection.prototype.Refresh_RecalcData = function () { }; FontCollection.prototype.setFontScheme = function (fontScheme) { this.fontScheme = fontScheme; }; FontCollection.prototype.setLatin = function (pr) { this.latin = pr; if (this.fontScheme) this.fontScheme.checkFromFontCollection(pr, this, FONT_REGION_LT); }; FontCollection.prototype.setEA = function (pr) { this.ea = pr; if (this.fontScheme) this.fontScheme.checkFromFontCollection(pr, this, FONT_REGION_EA); }; FontCollection.prototype.setCS = function (pr) { this.cs = pr; if (this.fontScheme) this.fontScheme.checkFromFontCollection(pr, this, FONT_REGION_CS); }; FontCollection.prototype.Write_ToBinary = function (w) { writeString(w, this.latin); writeString(w, this.ea); writeString(w, this.cs); }; FontCollection.prototype.Read_FromBinary = function (r) { this.latin = readString(r); this.ea = readString(r); this.cs = readString(r); if (this.fontScheme) { this.fontScheme.checkFromFontCollection(this.latin, this, FONT_REGION_LT); this.fontScheme.checkFromFontCollection(this.ea, this, FONT_REGION_EA); this.fontScheme.checkFromFontCollection(this.cs, this, FONT_REGION_CS); } }; var FONT_REGION_LT = 0x00; var FONT_REGION_EA = 0x01; var FONT_REGION_CS = 0x02; function FontScheme() { CBaseNoIdObject.call(this) this.name = ""; this.majorFont = new FontCollection(this); this.minorFont = new FontCollection(this); this.fontMap = { "+mj-lt": undefined, "+mj-ea": undefined, "+mj-cs": undefined, "+mn-lt": undefined, "+mn-ea": undefined, "+mn-cs": undefined, "majorAscii": undefined, "majorBidi": undefined, "majorEastAsia": undefined, "majorHAnsi": undefined, "minorAscii": undefined, "minorBidi": undefined, "minorEastAsia": undefined, "minorHAnsi": undefined }; /** * visio extension from tag vt:schemeID which is stored in a:extLst * @type {string | null} */ this.schemeEnum = null; } InitClass(FontScheme, CBaseNoIdObject, 0); FontScheme.prototype.createDuplicate = function () { var oCopy = new FontScheme(); oCopy.majorFont.setLatin(this.majorFont.latin); oCopy.majorFont.setEA(this.majorFont.ea); oCopy.majorFont.setCS(this.majorFont.cs); oCopy.minorFont.setLatin(this.minorFont.latin); oCopy.minorFont.setEA(this.minorFont.ea); oCopy.minorFont.setCS(this.minorFont.cs); return oCopy; }; FontScheme.prototype.Refresh_RecalcData = function () { }; FontScheme.prototype.Write_ToBinary = function (w) { this.majorFont.Write_ToBinary(w); this.minorFont.Write_ToBinary(w); writeString(w, this.name); }; FontScheme.prototype.Read_FromBinary = function (r) { this.majorFont.Read_FromBinary(r); this.minorFont.Read_FromBinary(r); this.name = readString(r); }; FontScheme.prototype.checkFromFontCollection = function (font, fontCollection, region) { if (fontCollection === this.majorFont) { switch (region) { case FONT_REGION_LT: { this.fontMap["+mj-lt"] = font; this.fontMap["majorAscii"] = font; this.fontMap["majorHAnsi"] = font; break; } case FONT_REGION_EA: { this.fontMap["+mj-ea"] = font; this.fontMap["majorEastAsia"] = font; break; } case FONT_REGION_CS: { this.fontMap["+mj-cs"] = font; this.fontMap["majorBidi"] = font; break; } } } else if (fontCollection === this.minorFont) { switch (region) { case FONT_REGION_LT: { this.fontMap["+mn-lt"] = font; this.fontMap["minorAscii"] = font; this.fontMap["minorHAnsi"] = font; break; } case FONT_REGION_EA: { this.fontMap["+mn-ea"] = font; this.fontMap["minorEastAsia"] = font; break; } case FONT_REGION_CS: { this.fontMap["+mn-cs"] = font; this.fontMap["minorBidi"] = font; break; } } } }; FontScheme.prototype.checkFont = function (font) { if (g_oThemeFontsName[font]) { if (this.fontMap[font]) { return this.fontMap[font]; } else if (this.fontMap["+mn-lt"]) { return this.fontMap["+mn-lt"]; } else { return "Arial"; } } return font; }; FontScheme.prototype.getObjectType = function () { return AscDFH.historyitem_type_FontScheme; }; FontScheme.prototype.setName = function (pr) { this.name = pr; }; FontScheme.prototype.setMajorFont = function (pr) { this.majorFont = pr; }; FontScheme.prototype.setMinorFont = function (pr) { this.minorFont = pr; }; function FmtScheme() { CBaseNoIdObject.call(this); this.name = ""; this.fillStyleLst = []; this.lnStyleLst = []; this.effectStyleLst = []; this.bgFillStyleLst = []; } InitClass(FmtScheme, CBaseNoIdObject, 0); FmtScheme.prototype.GetFillStyle = function (number, unicolor) { if (number >= 1 && number <= 999) { var ret = this.fillStyleLst[number - 1]; if (!ret) return null; var ret2 = ret.createDuplicate(); ret2.checkPhColor(unicolor); return ret2; } else if (number >= 1001) { var ret = this.bgFillStyleLst[number - 1001]; if (!ret) return null; var ret2 = ret.createDuplicate(); ret2.checkPhColor(unicolor); return ret2; } return null; }; FmtScheme.prototype.GetOuterShdw = function (number) { if (this.effectStyleLst[number - 1]) { const effectStyle = this.effectStyleLst[number - 1]; const effectLst = effectStyle.effectProperties && effectStyle.effectProperties.EffectLst; if (effectLst && effectLst.outerShdw) { return effectLst.outerShdw.createDuplicate(); } } return null; }; FmtScheme.prototype.Write_ToBinary = function (w) { writeString(w, this.name); var i; w.WriteLong(this.fillStyleLst.length); for (i = 0; i < this.fillStyleLst.length; ++i) { this.fillStyleLst[i].Write_ToBinary(w); } w.WriteLong(this.lnStyleLst.length); for (i = 0; i < this.lnStyleLst.length; ++i) { this.lnStyleLst[i].Write_ToBinary(w); } w.WriteLong(this.effectStyleLst.length); for (i = 0; i < this.effectStyleLst.length; ++i) { this.effectStyleLst[i].Write_ToBinary(w); } w.WriteLong(this.bgFillStyleLst.length); for (i = 0; i < this.bgFillStyleLst.length; ++i) { this.bgFillStyleLst[i].Write_ToBinary(w); } }; FmtScheme.prototype.Read_FromBinary = function (r) { this.name = readString(r); var _len = r.GetLong(), i; for (i = 0; i < _len; ++i) { this.fillStyleLst[i] = new CUniFill(); this.fillStyleLst[i].Read_FromBinary(r); } _len = r.GetLong(); for (i = 0; i < _len; ++i) { this.lnStyleLst[i] = new CLn(); this.lnStyleLst[i].Read_FromBinary(r); } _len = r.GetLong(); for (i = 0; i < _len; ++i) { this.effectStyleLst[i] = new CEffectStyle(); this.effectStyleLst[i].Read_FromBinary(r); } _len = r.GetLong(); for (i = 0; i < _len; ++i) { this.bgFillStyleLst[i] = new CUniFill(); this.bgFillStyleLst[i].Read_FromBinary(r); } }; FmtScheme.prototype.createDuplicate = function () { var oCopy = new FmtScheme(); oCopy.name = this.name; var i; for (i = 0; i < this.fillStyleLst.length; ++i) { oCopy.fillStyleLst[i] = this.fillStyleLst[i].createDuplicate(); } for (i = 0; i < this.lnStyleLst.length; ++i) { oCopy.lnStyleLst[i] = this.lnStyleLst[i].createDuplicate(); } for (i = 0; i < this.effectStyleLst.length; ++i) { oCopy.effectStyleLst[i] = this.effectStyleLst[i].createDuplicate(); } for (i = 0; i < this.bgFillStyleLst.length; ++i) { oCopy.bgFillStyleLst[i] = this.bgFillStyleLst[i].createDuplicate(); } return oCopy; }; FmtScheme.prototype.setName = function (pr) { this.name = pr; }; FmtScheme.prototype.addFillToStyleLst = function (pr) { this.fillStyleLst.push(pr); }; FmtScheme.prototype.addLnToStyleLst = function (pr) { this.lnStyleLst.push(pr); }; FmtScheme.prototype.addEffectToStyleLst = function (pr) { this.effectStyleLst.push(pr); }; FmtScheme.prototype.addBgFillToStyleLst = function (pr) { this.bgFillStyleLst.push(pr); }; FmtScheme.prototype.getImageFromBulletsMap = function(oImages) {}; FmtScheme.prototype.getDocContentsWithImageBullets = function (arrContents) {}; FmtScheme.prototype.getAllRasterImages = function(aImages) { for(let nIdx = 0; nIdx < this.fillStyleLst.length; ++nIdx) { let oUnifill = this.fillStyleLst[nIdx]; let sRasterImageId = oUnifill && oUnifill.fill && oUnifill.fill.RasterImageId; if(sRasterImageId) { aImages.push(sRasterImageId); } } for(let nIdx = 0; nIdx < this.bgFillStyleLst.length; ++nIdx) { let oUnifill = this.bgFillStyleLst[nIdx]; let sRasterImageId = oUnifill && oUnifill.fill && oUnifill.fill.RasterImageId; if(sRasterImageId) { aImages.push(sRasterImageId); } } }; FmtScheme.prototype.Reassign_ImageUrls = function(oImageMap) { for(let nIdx = 0; nIdx < this.fillStyleLst.length; ++nIdx) { let oUnifill = this.fillStyleLst[nIdx]; let sRasterImageId = oUnifill && oUnifill.fill && oUnifill.fill.RasterImageId; if(sRasterImageId && oImageMap[sRasterImageId]) { oUnifill.fill.RasterImageId = oImageMap[sRasterImageId] } } for(let nIdx = 0; nIdx < this.bgFillStyleLst.length; ++nIdx) { let oUnifill = this.bgFillStyleLst[nIdx]; let sRasterImageId = oUnifill && oUnifill.fill && oUnifill.fill.RasterImageId; if(sRasterImageId && oImageMap[sRasterImageId]) { oUnifill.fill.RasterImageId = oImageMap[sRasterImageId] } } }; function CEffectStyle() { CBaseFormatNoIdObject.call(this); this.effectProperties = null; this.scene3d = null; this.sp3d = null; } InitClass(CEffectStyle, CBaseFormatNoIdObject, AscDFH.historyitem_type_Unknown); CEffectStyle.prototype.Write_ToBinary = function (w) { writeObjectNoId(w, this.effectProperties); writeObjectNoId(w, this.scene3d); writeObjectNoId(w, this.sp3d); }; CEffectStyle.prototype.Read_FromBinary = function (r) { this.setEffectPr(readObjectNoId(r)); this.setScene3d(readObjectNoId(r)); this.setSp3d(readObjectNoId(r)); }; CEffectStyle.prototype.setEffectPr = function (pr) { this.effectProperties = pr; }; CEffectStyle.prototype.setScene3d = function (pr) { this.scene3d = pr; }; CEffectStyle.prototype.setSp3d = function (pr) { this.sp3d = pr; }; CEffectStyle.prototype.createDuplicate = function () { const copy = new CEffectStyle(); if (this.effectProperties) { copy.setEffectPr(this.effectProperties.createDuplicate()); } if (this.scene3d) { copy.setScene3d(this.scene3d.createDuplicate()); } if (this.sp3d) { copy.setSp3d(this.sp3d.createDuplicate()); } return copy; }; CEffectStyle.prototype.readAttribute = null; CEffectStyle.prototype.privateWriteAttributes = null; CEffectStyle.prototype.readChild = function(nType, pReader) { switch (nType) { case 0: this.setEffectPr(pReader.ReadEffectProperties()); break; case 1: this.setScene3d(new AscFormat.Scene3d()); this.scene3d.fromPPTY(pReader); break; case 2: this.setSp3d(new AscFormat.Sp3d()); this.sp3d.fromPPTY(pReader); break; default: return false; } return true; }; CEffectStyle.prototype.fromPPTY = function (pReader) { CBaseFormatNoIdObject.prototype.fromPPTY.call(this, pReader); this.checkEffectPr(); }; CEffectStyle.prototype.checkEffectPr = function () { if (!this.effectProperties) { this.setEffectPr(new AscFormat.CEffectProperties()); } if (!this.effectProperties.EffectLst && !this.effectProperties.EffectDag) { this.effectProperties.EffectLst = new AscFormat.CEffectLst(); } }; CEffectStyle.prototype.writeChildren = function(pWriter) { var oEffectPr = this.effectProperties; if(oEffectPr) { if(oEffectPr.EffectLst) { pWriter.WriteRecord1(0, oEffectPr.EffectLst, pWriter.WriteEffectLst); } else if(oEffectPr.EffectDag) { pWriter.WriteRecord1(0, oEffectPr.EffectDag, pWriter.WriteEffectDag) } } this.writeRecord2(pWriter, 1, this.scene3d); this.writeRecord2(pWriter, 2, this.sp3d); }; function ThemeElements(oTheme) { CBaseNoIdObject.call(this); this.theme = oTheme; this.clrScheme = new ClrScheme(); this.fontScheme = new FontScheme(); this.fmtScheme = new FmtScheme(); /** * * @type {CThemeExt} */ this.themeExt = null; } InitClass(ThemeElements, CBaseNoIdObject, 0); /** * * @constructor */ function CTheme() { CBaseFormatObject.call(this); this.name = ""; this.themeElements = new ThemeElements(this); this.spDef = null; this.lnDef = null; this.txDef = null; this.extraClrSchemeLst = []; this.isThemeOverride = false; // pointers this.presentation = null; this.clrMap = null; } InitClass(CTheme, CBaseFormatObject, 0); CTheme.prototype.notAllowedWithoutId = function () { return false; }; CTheme.prototype.createDuplicate = function () { var oTheme = new CTheme(); oTheme.setName(this.name); oTheme.setColorScheme(this.themeElements.clrScheme.createDuplicate()); oTheme.setFontScheme(this.themeElements.fontScheme.createDuplicate()); oTheme.setFormatScheme(this.themeElements.fmtScheme.createDuplicate()); if (this.spDef) { oTheme.setSpDef(this.spDef.createDuplicate()); } if (this.lnDef) { oTheme.setLnDef(this.lnDef.createDuplicate()); } if (this.txDef) { oTheme.setTxDef(this.txDef.createDuplicate()); } for (var i = 0; i < this.extraClrSchemeLst.length; ++i) { oTheme.addExtraClrSceme(this.extraClrSchemeLst[i].createDuplicate()); } return oTheme; }; CTheme.prototype.Document_Get_AllFontNames = function (AllFonts) { var font_scheme = this.themeElements.fontScheme; var major_font = font_scheme.majorFont; typeof major_font.latin === "string" && major_font.latin.length > 0 && (AllFonts[major_font.latin] = 1); typeof major_font.ea === "string" && major_font.ea.length > 0 && (AllFonts[major_font.ea] = 1); typeof major_font.cs === "string" && major_font.cs.length > 0 && (AllFonts[major_font.cs] = 1); var minor_font = font_scheme.minorFont; typeof minor_font.latin === "string" && minor_font.latin.length > 0 && (AllFonts[minor_font.latin] = 1); typeof minor_font.ea === "string" && minor_font.ea.length > 0 && (AllFonts[minor_font.ea] = 1); typeof minor_font.cs === "string" && minor_font.cs.length > 0 && (AllFonts[minor_font.cs] = 1); }; CTheme.prototype.getOuterShdw = function (idx) { return this.themeElements.fmtScheme.GetOuterShdw(idx); }; CTheme.prototype.getFillStyle = function (idx, unicolor) { if (idx === 0 || idx === 1000) { return AscFormat.CreateNoFillUniFill(); } var ret; if (idx >= 1 && idx <= 999) { if (this.themeElements.fmtScheme.fillStyleLst[idx - 1]) { ret = this.themeElements.fmtScheme.fillStyleLst[idx - 1].createDuplicate(); if (ret) { ret.checkPhColor(unicolor); return ret; } } } else if (idx >= 1001) { if (this.themeElements.fmtScheme.bgFillStyleLst[idx - 1001]) { ret = this.themeElements.fmtScheme.bgFillStyleLst[idx - 1001].createDuplicate(); if (ret) { ret.checkPhColor(unicolor); return ret; } } } return CreateSolidFillRGBA(0, 0, 0, 255); }; CTheme.prototype.getLnStyle = function (idx, unicolor) { if (idx === 0) { return AscFormat.CreateNoFillLine(); } if (this.themeElements.fmtScheme.lnStyleLst[idx - 1]) { var ret = this.themeElements.fmtScheme.lnStyleLst[idx - 1].createDuplicate(); if (ret.Fill) { ret.Fill.checkPhColor(unicolor); } return ret; } return new CLn(); }; /** * Made for visio editor * @memberof CTheme * @param {number} idx * @param unicolor * @param {Boolean} getConnectorStyle * @return {CFontProps} */ CTheme.prototype.getFontStyle = function (idx, unicolor, getConnectorStyle) { if (idx === 0 || isNaN(idx)) { AscCommon.consoleLog("idx getFontStyle argument is 0 or isNaN(idx) is true"); return AscFormat.CreateNoFillLine(); } let fontProp; if (this.themeElements.themeExt) { if (getConnectorStyle) { fontProp = this.themeElements.themeExt.fontStylesGroup.connectorFontStyles[idx - 1]; } else { fontProp = this.themeElements.themeExt.fontStylesGroup.fontStyles[idx - 1]; } } if (fontProp) { var ret = fontProp.createDuplicate(); if (ret.fontPropsObject.color) { ret.fontPropsObject.color.checkPhColor(unicolor, false); } return ret; } AscCommon.consoleLog("no fontProp object found for idx. Return empty obj", idx); return new CFontProps(); }; /** * Made for visio editor. Get line end props - lineStyles extension. * @memberof CTheme * @param {number} idx * @param {Boolean} getConnectorStyle * @return {CLineStyle} lineStyle */ CTheme.prototype.getLineEndStyle = function (idx, getConnectorStyle) { if (idx === 0 || isNaN(idx)) { AscCommon.consoleLog("idx getFontStyle argument is 0 or isNaN(idx) is true"); return new CLineStyle(); } let lineEndProp; if (this.themeElements.themeExt) { // not using idx - 1. Seems like visio bug here. See file https://disk.yandex.ru/d/OQVR9m1U255B1Q if (getConnectorStyle) { lineEndProp = this.themeElements.themeExt.lineStyles.fmtConnectorSchemeLineStyles[idx]; } else { lineEndProp = this.themeElements.themeExt.lineStyles.fmtSchemeLineStyles[idx]; } } else { AscCommon.consoleLog("no this.themeElements.themeExt (this = CTheme) found with info about line endings. " + "Its ok sometimes. Set end:4 for default lineEndProp"); lineEndProp = new CLineStyle(); lineEndProp.lineEx = {rndg: 0, start: 0, startSize: 2, end: 4, endSize: 2, pattern: 1}; } if (lineEndProp) { var ret = lineEndProp.createDuplicate(); return ret; } AscCommon.consoleLog("no fontProp object found for idx. Its ok sometimes." + " Return new CLineStyle()", idx); return new CLineStyle(); }; /** * Made for visio editor. Get fill pattern from -1) { this.removeExtraClrScheme(nIndex); } }; CTheme.prototype.getExtraAscColorSchemes = function () { var asc_color_scheme; var aCustomSchemes = []; var _extra = this.extraClrSchemeLst; var _count = _extra.length; for (var i = 0; i < _count; ++i) { var _scheme = _extra[i].clrScheme; asc_color_scheme = AscCommon.getAscColorScheme(_scheme, this); aCustomSchemes.push(asc_color_scheme); } return aCustomSchemes; }; CTheme.prototype.setColorScheme = function (clrScheme) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ThemeSetColorScheme, this.themeElements.clrScheme, clrScheme)); this.themeElements.clrScheme = clrScheme; }; CTheme.prototype.setFontScheme = function (fontScheme) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ThemeSetFontScheme, this.themeElements.fontScheme, fontScheme)); this.themeElements.fontScheme = fontScheme; }; /** * made for Visio editor * @return {FontScheme} */ CTheme.prototype.getFontScheme = function () { return this.themeElements.fontScheme; }; CTheme.prototype.setThemeExt = function (themeExt) { this.themeElements.themeExt = themeExt; }; CTheme.prototype.changeFontScheme = function (fontScheme) { this.setFontScheme(fontScheme); let aIndexes = this.GetAllSlideIndexes(); let aSlides = this.GetPresentationSlides(); if(aIndexes && aSlides) { for (let i = 0; i < aIndexes.length; ++i) { aSlides[aIndexes[i]] && aSlides[aIndexes[i]].checkSlideTheme(); } } }; CTheme.prototype.setFormatScheme = function (fmtScheme) { AscCommon.History.Add(new CChangesDrawingsObjectNoId(this, AscDFH.historyitem_ThemeSetFmtScheme, this.themeElements.fmtScheme, fmtScheme)); this.themeElements.fmtScheme = fmtScheme; }; CTheme.prototype.setName = function (pr) { AscCommon.History.Add(new CChangesDrawingsString(this, AscDFH.historyitem_ThemeSetName, this.name, pr)); this.name = pr; }; CTheme.prototype.setIsThemeOverride = function (pr) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_ThemeSetIsThemeOverride, this.isThemeOverride, pr)); this.isThemeOverride = pr; }; CTheme.prototype.setSpDef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_ThemeSetSpDef, this.spDef, pr)); this.spDef = pr; }; CTheme.prototype.setLnDef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_ThemeSetLnDef, this.lnDef, pr)); this.lnDef = pr; }; CTheme.prototype.setTxDef = function (pr) { AscCommon.History.Add(new CChangesDrawingsObject(this, AscDFH.historyitem_ThemeSetTxDef, this.txDef, pr)); this.txDef = pr; }; CTheme.prototype.addExtraClrSceme = function (pr, idx) { var pos; if (AscFormat.isRealNumber(idx)) pos = idx; else pos = this.extraClrSchemeLst.length; AscCommon.History.Add(new CChangesDrawingsContent(this, AscDFH.historyitem_ThemeAddExtraClrScheme, pos, [pr], true)); this.extraClrSchemeLst.splice(pos, 0, pr); }; CTheme.prototype.removeExtraClrScheme = function (idx) { if (idx > -1 && idx < this.extraClrSchemeLst.length) { AscCommon.History.Add(new CChangesDrawingsContent(this, AscDFH.historyitem_ThemeRemoveExtraClrScheme, idx, this.extraClrSchemeLst.splice(idx, 1), false)); } }; CTheme.prototype.GetLogicDocument = function() { let oRet = typeof editor !== "undefined" && editor.WordControl && editor.WordControl.m_oLogicDocument; return AscCommon.isRealObject(oRet) ? oRet : null; }; CTheme.prototype.GetWordDrawingObjects = function () { let oLogicDocument = this.GetLogicDocument(); let oRet = oLogicDocument && oLogicDocument.DrawingObjects; return AscCommon.isRealObject(oRet) ? oRet : null; }; CTheme.prototype.GetPresentationSlides = function () { let oLogicDocument = this.GetLogicDocument(); if(oLogicDocument && Array.isArray(oLogicDocument.Slides)) { return oLogicDocument.Slides; } return null; }; CTheme.prototype.GetPresentation = function () { let oLogicDoc = this.GetLogicDocument(); if(AscCommonSlide.CPresentation && oLogicDoc instanceof AscCommonSlide.CPresentation) { return oLogicDoc; } return null; }; CTheme.prototype.GetAllSlideIndexes = function () { let oPresentation = this.GetLogicDocument(); let aSlides = this.GetPresentationSlides(); if(oPresentation && aSlides) { let aIndexes = []; for(let nSlide = 0; nSlide < aSlides.length; ++nSlide) { let oSlide = aSlides[nSlide]; let oTheme = oSlide.getTheme(); if(oTheme === this) { aIndexes.push(nSlide); } } return aIndexes; } return null; }; CTheme.prototype.Refresh_RecalcData = function (oData) { if (oData) { if (oData.Type === AscDFH.historyitem_ThemeSetColorScheme) { let oWordGraphicObject = this.GetWordDrawingObjects(); if (oWordGraphicObject) { AscCommon.History.RecalcData_Add({All: true}); let aDrawings = oWordGraphicObject.drawingObjects; for (let nDrawing = 0; nDrawing < aDrawings.length; ++nDrawing) { let oGrObject = aDrawings[nDrawing].GraphicObj; if (oGrObject) { oGrObject.handleUpdateFill(); oGrObject.handleUpdateLn(); } } let oApi = oWordGraphicObject.document.Api; oApi.chartPreviewManager.clearPreviews(); oApi.textArtPreviewManager.clear(); } else { let oPresentation = this.GetPresentation(); if(oPresentation) { oPresentation.bNeedUpdateThemes = true; let oThemedObjects = oPresentation.GetSlideObjectsWithTheme(this); for(let nIdx = 0; nIdx < oThemedObjects.masters.length; ++nIdx) { oThemedObjects.masters[nIdx].checkSlideTheme(); } for(let nIdx = 0; nIdx < oThemedObjects.layouts.length; ++nIdx) { oThemedObjects.layouts[nIdx].checkSlideTheme(); } for(let nIdx = 0; nIdx < oThemedObjects.slides.length; ++nIdx) { oThemedObjects.slides[nIdx].checkSlideTheme(); } AscCommon.History.RecalcData_Add({Type: AscDFH.historyitem_recalctype_Drawing, Object: this}); } } } else if(oData.Type === AscDFH.historyitem_ThemeSetFontScheme) { let oPresentation = this.GetLogicDocument(); let aSlideIndexes = this.GetAllSlideIndexes(); if(oPresentation && aSlideIndexes && aSlideIndexes.length > 0) { oPresentation.Refresh_RecalcData2({Type: AscDFH.historyitem_ThemeSetFontScheme, aIndexes: aSlideIndexes}); } } else if (oData.Type === AscDFH.historyitem_ThemeSetName) { let oPresentation = this.GetPresentation(); if (oPresentation) { oPresentation.Refresh_RecalcData2({Type: AscDFH.historyitem_ThemeSetName}); } } } }; CTheme.prototype.getAllRasterImages = function(aImages) { if(this.themeElements && this.themeElements.fmtScheme) { this.themeElements.fmtScheme.getAllRasterImages(aImages); } }; CTheme.prototype.getImageFromBulletsMap = function(oImages) {}; CTheme.prototype.getDocContentsWithImageBullets = function (arrContents) {}; CTheme.prototype.Reassign_ImageUrls = function(images_rename) { if(this.themeElements && this.themeElements.fmtScheme) { let aImages = []; this.themeElements.fmtScheme.getAllRasterImages(aImages); let bReassign = false; for(let nImage = 0; nImage < aImages.length; ++nImage) { if(images_rename[aImages[nImage]]) { bReassign = true; break; } } if(bReassign) { let oNewFmtScheme = this.themeElements.fmtScheme.createDuplicate(); oNewFmtScheme.Reassign_ImageUrls(images_rename); this.setFormatScheme(oNewFmtScheme); } } }; CTheme.prototype.getObjectType = function () { return AscDFH.historyitem_type_Theme; }; CTheme.prototype.Write_ToBinary2 = function (w) { w.WriteLong(AscDFH.historyitem_type_Theme); w.WriteString2(this.Id); }; CTheme.prototype.Read_FromBinary2 = function (r) { this.Id = r.GetString2(); }; /** * @memberOf CTheme * @return {boolean} */ CTheme.prototype.isVariationClrSchemeLstExists = function() { let clrScheme = this.themeElements.clrScheme; let variationClrSchemeLst = clrScheme && clrScheme.clrSchemeExtLst && clrScheme.clrSchemeExtLst.variationClrSchemeLst; return variationClrSchemeLst && variationClrSchemeLst.length > 0; } /** * @memberOf CTheme * @param variationIndex * @param colorIndex * @return {CUniColor|null} */ CTheme.prototype.getVariationClrSchemeColor = function (variationIndex, colorIndex) { let clrScheme = this.themeElements.clrScheme; if (clrScheme.clrSchemeExtLst) { let variationClrSchemeLst = clrScheme.clrSchemeExtLst.variationClrSchemeLst; if (variationClrSchemeLst) { let variation = variationClrSchemeLst[variationIndex]; if (variation) { let colorObj = variation.varColor[colorIndex]; if (colorObj) { return colorObj.unicolor; } } } } return null; }; /** * @param variationIndex * @param styleIndex * @return {CVarStyle|null} */ CTheme.prototype.getVariationStyleScheme = function (variationIndex, styleIndex) { let themeExt = this.themeElements.themeExt; if (themeExt && themeExt.variationStyleSchemeLst[variationIndex]) { return themeExt.variationStyleSchemeLst[variationIndex].varStyle[styleIndex] || null; } return null; }; // ---------------------------------- // CSLD ----------------------------- function HF() { CBaseFormatObject.call(this); this.dt = null; this.ftr = null; this.hdr = null; this.sldNum = null; } InitClass(HF, CBaseFormatObject, AscDFH.historyitem_type_HF); HF.prototype.Refresh_RecalcData = function () { }; HF.prototype.createDuplicate = function () { var ret = new HF(); if (ret.dt !== this.dt) { ret.setDt(this.dt); } if (ret.ftr !== this.ftr) { ret.setFtr(this.ftr); } if (ret.hdr !== this.hdr) { ret.setHdr(this.hdr); } if (ret.sldNum !== this.sldNum) { ret.setSldNum(this.sldNum); } return ret; }; HF.prototype.setDt = function (pr) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_HF_SetDt, this.dt, pr)); this.dt = pr; }; HF.prototype.setFtr = function (pr) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_HF_SetFtr, this.ftr, pr)); this.ftr = pr; }; HF.prototype.setHdr = function (pr) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_HF_SetHdr, this.hdr, pr)); this.hdr = pr; }; HF.prototype.setSldNum = function (pr) { AscCommon.History.Add(new CChangesDrawingsBool(this, AscDFH.historyitem_HF_SetSldNum, this.sldNum, pr)); this.sldNum = pr; }; HF.prototype.applySettings = function (oSettings) { if(!oSettings) return; if (oSettings.get_ShowSlideNum()) { if (this.sldNum !== null) { this.setSldNum(null); } } else { if (this.sldNum !== false) { this.setSldNum(false); } } if (oSettings.get_ShowFooter()) { if (this.ftr !== null) { this.setFtr(null); } } else { if (this.ftr !== false) { this.setFtr(false); } } if (oSettings.get_ShowHeader()) { if (this.hdr !== null) { this.setHdr(null); } } else { if (this.hdr !== false) { this.setHdr(false); } } if (oSettings.get_ShowDateTime()) { if (this.dt !== null) { this.setDt(null); } } else { if (this.dt !== false) { this.setDt(false); } } }; function CBgPr() { CBaseNoIdObject.call(this) this.Fill = null; this.shadeToTitle = false; this.EffectProperties = null; } InitClass(CBgPr, CBaseNoIdObject, 0); CBgPr.prototype.merge = function (bgPr) { if (this.Fill == null) { this.Fill = new CUniFill(); if (bgPr.Fill != null) { this.Fill.merge(bgPr.Fill) } } }; CBgPr.prototype.createFullCopy = function () { var _copy = new CBgPr(); if (this.Fill != null) { _copy.Fill = this.Fill.createDuplicate(); } _copy.shadeToTitle = this.shadeToTitle; return _copy; }; CBgPr.prototype.setFill = function (pr) { this.Fill = pr; }; CBgPr.prototype.setShadeToTitle = function (pr) { this.shadeToTitle = pr; }; CBgPr.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.Fill)); if (isRealObject(this.Fill)) { this.Fill.Write_ToBinary(w); } w.WriteBool(this.shadeToTitle); }; CBgPr.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.Fill = new CUniFill(); this.Fill.Read_FromBinary(r); } this.shadeToTitle = r.GetBool(); }; CBgPr.prototype.checkBlipFillRasterImage = function (images) { let fill_image_id = checkUniFillRasterImageId(this.Fill); if (fill_image_id !== null) images.push(fill_image_id); }; function CBg() { CBaseNoIdObject.call(this); this.bwMode = null; this.bgPr = null; this.bgRef = null; } InitClass(CBg, CBaseNoIdObject, 0); CBg.prototype.setBwMode = function (pr) { this.bwMode = pr; }; CBg.prototype.setBgPr = function (pr) { this.bgPr = pr; }; CBg.prototype.setBgRef = function (pr) { this.bgRef = pr; }; CBg.prototype.merge = function (bg) { if (this.bgPr == null) { this.bgPr = new CBgPr(); if (bg.bgPr != null) { this.bgPr.merge(bg.bgPr); } } }; CBg.prototype.createFullCopy = function () { var _copy = new CBg(); _copy.bwMode = this.bwMode; if (this.bgPr != null) { _copy.bgPr = this.bgPr.createFullCopy(); } if (this.bgRef != null) { _copy.bgRef = this.bgRef.createDuplicate(); } return _copy; }; CBg.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.bgPr)); if (isRealObject(this.bgPr)) { this.bgPr.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bgRef)); if (isRealObject(this.bgRef)) { this.bgRef.Write_ToBinary(w); } }; CBg.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.bgPr = new CBgPr(); this.bgPr.Read_FromBinary(r); } if (r.GetBool()) { this.bgRef = new StyleRef(); this.bgRef.Read_FromBinary(r); } }; function CSld(parent) { CBaseNoIdObject.call(this); this.name = ""; this.Bg = null; this.spTree = [];//new GroupShape(); this.parent = parent; } InitClass(CSld, CBaseNoIdObject, 0); CSld.prototype.removeAllInks = function () { const oController = this.parent && this.parent.graphicObjects; if (!oController) { return; } const arrInks = this.getAllInks(); oController.removeAllInks(arrInks); }; CSld.prototype.getAllInks = function (arrInks) { arrInks = arrInks || []; const arrSpTree = this.spTree; for (let i = arrSpTree.length - 1; i >= 0; i -= 1) { const oDrawing = arrSpTree[i]; if (oDrawing.isInk() || oDrawing.isHaveOnlyInks()) { arrInks.push(oDrawing); } else { oDrawing.getAllInks(arrInks); } } return arrInks; }; CSld.prototype.getObjectsNamesPairs = function () { var aPairs = []; var aSpTree = this.spTree; for (var nSp = 0; nSp < aSpTree.length; ++nSp) { var oSp = aSpTree[nSp]; if (!oSp.isEmptyPlaceholder()) { aPairs.push({object: oSp, name: oSp.getObjectName()}); } } return aPairs; }; CSld.prototype.getObjectsNames = function () { var aPairs = this.getObjectsNamesPairs(); var aNames = []; for (var nPair = 0; nPair < aPairs.length; ++nPair) { var oPair = aPairs[nPair]; aNames.push(oPair.name); } return aNames; }; CSld.prototype.getObjectByName = function (sName) { var aSpTree = this.spTree; for (var nSp = 0; nSp < aSpTree.length; ++nSp) { var oSp = aSpTree[nSp]; if (oSp.getObjectName() === sName) { return oSp; } } return null; }; CSld.prototype.forEachSp = function(fCallback) { for(let nSp = 0; nSp < this.spTree.length; ++nSp) { fCallback(this.spTree[nSp]); } }; CSld.prototype.handleAllContents = function(fCallback) { this.forEachSp(function(oSp) { if (oSp.handleAllContents) { oSp.handleAllContents(fCallback); } }); }; CSld.prototype.refreshAllContentsFields = function(bNoHistory) { let bOldUpdate = AscCommon.History.RecalculateData.Update; if(bNoHistory) { AscCommon.History.RecalculateData.Update = false; } this.handleAllContents(RefreshContentAllFields); if(bNoHistory) { AscCommon.History.RecalculateData.Update = bOldUpdate; } }; function RefreshContentAllFields(oContent) { if(!oContent) { return; } if(!oContent.RecalcAllFields) { return; } oContent.RecalcAllFields(); } function CSpTree(oSlideObject) { CBaseNoIdObject.call(this); this.spTree = []; this.slideObject = oSlideObject; } InitClass(CSpTree, CBaseNoIdObject, 0); // ---------------------------------- // MASTERSLIDE ---------------------- function CTextStyles() { CBaseNoIdObject.call(this); this.titleStyle = null; this.bodyStyle = null; this.otherStyle = null; } InitClass(CTextStyles, CBaseNoIdObject, 0); CTextStyles.prototype.getStyleByPhType = function (phType) { switch (phType) { case AscFormat.phType_ctrTitle: case AscFormat.phType_title: { return this.titleStyle; } case AscFormat.phType_body: case AscFormat.phType_subTitle: case AscFormat.phType_obj: case null: { return this.bodyStyle; } default: { break; } } return this.otherStyle; }; CTextStyles.prototype.createDuplicate = function () { var ret = new CTextStyles(); if (isRealObject(this.titleStyle)) { ret.titleStyle = this.titleStyle.createDuplicate(); } if (isRealObject(this.bodyStyle)) { ret.bodyStyle = this.bodyStyle.createDuplicate(); } if (isRealObject(this.otherStyle)) { ret.otherStyle = this.otherStyle.createDuplicate(); } return ret; }; CTextStyles.prototype.Refresh_RecalcData = function () { }; CTextStyles.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.titleStyle)); if (isRealObject(this.titleStyle)) { this.titleStyle.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bodyStyle)); if (isRealObject(this.bodyStyle)) { this.bodyStyle.Write_ToBinary(w); } w.WriteBool(isRealObject(this.otherStyle)); if (isRealObject(this.otherStyle)) { this.otherStyle.Write_ToBinary(w); } }; CTextStyles.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.titleStyle = new TextListStyle(); this.titleStyle.Read_FromBinary(r); } else { this.titleStyle = null; } if (r.GetBool()) { this.bodyStyle = new TextListStyle(); this.bodyStyle.Read_FromBinary(r); } else { this.bodyStyle = null; } if (r.GetBool()) { this.otherStyle = new TextListStyle(); this.otherStyle.Read_FromBinary(r); } else { this.otherStyle = null; } }; CTextStyles.prototype.Document_Get_AllFontNames = function (AllFonts) { if (this.titleStyle) { this.titleStyle.Document_Get_AllFontNames(AllFonts); } if (this.bodyStyle) { this.bodyStyle.Document_Get_AllFontNames(AllFonts); } if (this.otherStyle) { this.otherStyle.Document_Get_AllFontNames(AllFonts); } }; //--------------------------- // SLIDELAYOUT ---------------------- //Layout types var nSldLtTBlank = 0; // Blank )) var nSldLtTChart = 1; //Chart) var nSldLtTChartAndTx = 2; //( Chart and Text )) var nSldLtTClipArtAndTx = 3; //Clip Art and Text) var nSldLtTClipArtAndVertTx = 4; //Clip Art and Vertical Text) var nSldLtTCust = 5; // Custom )) var nSldLtTDgm = 6; //Diagram )) var nSldLtTFourObj = 7; //Four Objects) var nSldLtTMediaAndTx = 8; // ( Media and Text )) var nSldLtTObj = 9; //Title and Object) var nSldLtTObjAndTwoObj = 10; //Object and Two Object) var nSldLtTObjAndTx = 11; // ( Object and Text )) var nSldLtTObjOnly = 12; //Object) var nSldLtTObjOverTx = 13; // ( Object over Text)) var nSldLtTObjTx = 14; //Title, Object, and Caption) var nSldLtTPicTx = 15; //Picture and Caption) var nSldLtTSecHead = 16; //Section Header) var nSldLtTTbl = 17; // ( Table )) var nSldLtTTitle = 18; // ( Title )) var nSldLtTTitleOnly = 19; // ( Title Only )) var nSldLtTTwoColTx = 20; // ( Two Column Text )) var nSldLtTTwoObj = 21; //Two Objects) var nSldLtTTwoObjAndObj = 22; //Two Objects and Object) var nSldLtTTwoObjAndTx = 23; //Two Objects and Text) var nSldLtTTwoObjOverTx = 24; //Two Objects over Text) var nSldLtTTwoTxTwoObj = 25; //Two Text and Two Objects) var nSldLtTTx = 26; // ( Text )) var nSldLtTTxAndChart = 27; // ( Text and Chart )) var nSldLtTTxAndClipArt = 28; //Text and Clip Art) var nSldLtTTxAndMedia = 29; // ( Text and Media )) var nSldLtTTxAndObj = 30; // ( Text and Object )) var nSldLtTTxAndTwoObj = 31; //Text and Two Objects) var nSldLtTTxOverObj = 32; // ( Text over Object)) var nSldLtTVertTitleAndTx = 33; //Vertical Title and Text) var nSldLtTVertTitleAndTxOverChart = 34; //Vertical Title and Text Over Chart) var nSldLtTVertTx = 35; //Vertical Text) AscFormat.nSldLtTBlank = nSldLtTBlank; // Blank )) AscFormat.nSldLtTChart = nSldLtTChart; //Chart) AscFormat.nSldLtTChartAndTx = nSldLtTChartAndTx; //( Chart and Text )) AscFormat.nSldLtTClipArtAndTx = nSldLtTClipArtAndTx; //Clip Art and Text) AscFormat.nSldLtTClipArtAndVertTx = nSldLtTClipArtAndVertTx; //Clip Art and Vertical Text) AscFormat.nSldLtTCust = nSldLtTCust; // Custom )) AscFormat.nSldLtTDgm = nSldLtTDgm; //Diagram )) AscFormat.nSldLtTFourObj = nSldLtTFourObj; //Four Objects) AscFormat.nSldLtTMediaAndTx = nSldLtTMediaAndTx; // ( Media and Text )) AscFormat.nSldLtTObj = nSldLtTObj; //Title and Object) AscFormat.nSldLtTObjAndTwoObj = nSldLtTObjAndTwoObj; //Object and Two Object) AscFormat.nSldLtTObjAndTx = nSldLtTObjAndTx; // ( Object and Text )) AscFormat.nSldLtTObjOnly = nSldLtTObjOnly; //Object) AscFormat.nSldLtTObjOverTx = nSldLtTObjOverTx; // ( Object over Text)) AscFormat.nSldLtTObjTx = nSldLtTObjTx; //Title, Object, and Caption) AscFormat.nSldLtTPicTx = nSldLtTPicTx; //Picture and Caption) AscFormat.nSldLtTSecHead = nSldLtTSecHead; //Section Header) AscFormat.nSldLtTTbl = nSldLtTTbl; // ( Table )) AscFormat.nSldLtTTitle = nSldLtTTitle; // ( Title )) AscFormat.nSldLtTTitleOnly = nSldLtTTitleOnly; // ( Title Only )) AscFormat.nSldLtTTwoColTx = nSldLtTTwoColTx; // ( Two Column Text )) AscFormat.nSldLtTTwoObj = nSldLtTTwoObj; //Two Objects) AscFormat.nSldLtTTwoObjAndObj = nSldLtTTwoObjAndObj; //Two Objects and Object) AscFormat.nSldLtTTwoObjAndTx = nSldLtTTwoObjAndTx; //Two Objects and Text) AscFormat.nSldLtTTwoObjOverTx = nSldLtTTwoObjOverTx; //Two Objects over Text) AscFormat.nSldLtTTwoTxTwoObj = nSldLtTTwoTxTwoObj; //Two Text and Two Objects) AscFormat.nSldLtTTx = nSldLtTTx; // ( Text )) AscFormat.nSldLtTTxAndChart = nSldLtTTxAndChart; // ( Text and Chart )) AscFormat.nSldLtTTxAndClipArt = nSldLtTTxAndClipArt; //Text and Clip Art) AscFormat.nSldLtTTxAndMedia = nSldLtTTxAndMedia; // ( Text and Media )) AscFormat.nSldLtTTxAndObj = nSldLtTTxAndObj; // ( Text and Object )) AscFormat.nSldLtTTxAndTwoObj = nSldLtTTxAndTwoObj; //Text and Two Objects) AscFormat.nSldLtTTxOverObj = nSldLtTTxOverObj; // ( Text over Object)) AscFormat.nSldLtTVertTitleAndTx = nSldLtTVertTitleAndTx; //Vertical Title and Text) AscFormat.nSldLtTVertTitleAndTxOverChart = nSldLtTVertTitleAndTxOverChart; //Vertical Title and Text Over Chart) AscFormat.nSldLtTVertTx = nSldLtTVertTx; //Vertical Text) var _ph_multiplier = 4; var _weight_body = 9; var _weight_chart = 5; var _weight_clipArt = 2; var _weight_ctrTitle = 11; var _weight_dgm = 4; var _weight_media = 3; var _weight_obj = 8; var _weight_pic = 7; var _weight_subTitle = 10; var _weight_tbl = 6; var _weight_title = 11; var _ph_summ_blank = 0; var _ph_summ_chart = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_chart); var _ph_summ_chart_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_chart) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ_dgm = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_dgm); var _ph_summ_four_obj = Math.pow(_ph_multiplier, _weight_title) + 4 * Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__media_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_media) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__obj = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__obj_and_two_obj = Math.pow(_ph_multiplier, _weight_title) + 3 * Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__obj_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_obj) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__obj_only = Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__pic_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_pic) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__sec_head = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_subTitle); var _ph_summ__tbl = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_tbl); var _ph_summ__title_only = Math.pow(_ph_multiplier, _weight_title); var _ph_summ__two_col_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_body); var _ph_summ__two_obj_and_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_obj) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__two_obj_and_two_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_obj) + 2 * Math.pow(_ph_multiplier, _weight_body); var _ph_summ__tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__tx_and_clip_art = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_body) + +Math.pow(_ph_multiplier, _weight_clipArt); var _arr_lt_types_weight = []; _arr_lt_types_weight[0] = _ph_summ_blank; _arr_lt_types_weight[1] = _ph_summ_chart; _arr_lt_types_weight[2] = _ph_summ_chart_and_tx; _arr_lt_types_weight[3] = _ph_summ_dgm; _arr_lt_types_weight[4] = _ph_summ_four_obj; _arr_lt_types_weight[5] = _ph_summ__media_and_tx; _arr_lt_types_weight[6] = _ph_summ__obj; _arr_lt_types_weight[7] = _ph_summ__obj_and_two_obj; _arr_lt_types_weight[8] = _ph_summ__obj_and_tx; _arr_lt_types_weight[9] = _ph_summ__obj_only; _arr_lt_types_weight[10] = _ph_summ__pic_tx; _arr_lt_types_weight[11] = _ph_summ__sec_head; _arr_lt_types_weight[12] = _ph_summ__tbl; _arr_lt_types_weight[13] = _ph_summ__title_only; _arr_lt_types_weight[14] = _ph_summ__two_col_tx; _arr_lt_types_weight[15] = _ph_summ__two_obj_and_tx; _arr_lt_types_weight[16] = _ph_summ__two_obj_and_two_tx; _arr_lt_types_weight[17] = _ph_summ__tx; _arr_lt_types_weight[18] = _ph_summ__tx_and_clip_art; _arr_lt_types_weight.sort(AscCommon.fSortAscending); var _global_layout_summs_array = {}; _global_layout_summs_array["_" + _ph_summ_blank] = nSldLtTBlank; _global_layout_summs_array["_" + _ph_summ_chart] = nSldLtTChart; _global_layout_summs_array["_" + _ph_summ_chart_and_tx] = nSldLtTChartAndTx; _global_layout_summs_array["_" + _ph_summ_dgm] = nSldLtTDgm; _global_layout_summs_array["_" + _ph_summ_four_obj] = nSldLtTFourObj; _global_layout_summs_array["_" + _ph_summ__media_and_tx] = nSldLtTMediaAndTx; _global_layout_summs_array["_" + _ph_summ__obj] = nSldLtTObj; _global_layout_summs_array["_" + _ph_summ__obj_and_two_obj] = nSldLtTObjAndTwoObj; _global_layout_summs_array["_" + _ph_summ__obj_and_tx] = nSldLtTObjAndTx; _global_layout_summs_array["_" + _ph_summ__obj_only] = nSldLtTObjOnly; _global_layout_summs_array["_" + _ph_summ__pic_tx] = nSldLtTPicTx; _global_layout_summs_array["_" + _ph_summ__sec_head] = nSldLtTSecHead; _global_layout_summs_array["_" + _ph_summ__tbl] = nSldLtTTbl; _global_layout_summs_array["_" + _ph_summ__title_only] = nSldLtTTitleOnly; _global_layout_summs_array["_" + _ph_summ__two_col_tx] = nSldLtTTwoColTx; _global_layout_summs_array["_" + _ph_summ__two_obj_and_tx] = nSldLtTTwoObjAndTx; _global_layout_summs_array["_" + _ph_summ__two_obj_and_two_tx] = nSldLtTTwoTxTwoObj; _global_layout_summs_array["_" + _ph_summ__tx] = nSldLtTTx; _global_layout_summs_array["_" + _ph_summ__tx_and_clip_art] = nSldLtTTxAndClipArt; // SLIDE ---------------------------- function redrawSlide(slide, presentation, arrInd, pos, direction, arr_slides) { if (slide) { slide.recalculate(); presentation.DrawingDocument.OnRecalculateSlide(presentation.GetSlideIndex(slide)); } if (direction === 0) { if (pos > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[arrInd[pos - 1]], presentation, arrInd, pos - 1, -1, arr_slides) }, recalcSlideInterval); } else { presentation.backChangeThemeTimeOutId = null; } if (pos < arrInd.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[arrInd[pos + 1]], presentation, arrInd, pos + 1, +1, arr_slides) }, recalcSlideInterval); } else { presentation.forwardChangeThemeTimeOutId = null; } presentation.startChangeThemeTimeOutId = null; } if (direction > 0) { if (pos < arrInd.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[arrInd[pos + 1]], presentation, arrInd, pos + 1, +1, arr_slides) }, recalcSlideInterval); } else { presentation.forwardChangeThemeTimeOutId = null; } } if (direction < 0) { if (pos > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[arrInd[pos - 1]], presentation, arrInd, pos - 1, -1, arr_slides) }, recalcSlideInterval); } else { presentation.backChangeThemeTimeOutId = null; } } } function CTextFit(nType) { CBaseNoIdObject.call(this); this.type = nType !== undefined && nType !== null ? nType : 0; this.fontScale = null; this.lnSpcReduction = null; } InitClass(CTextFit, CBaseNoIdObject, 0); CTextFit.prototype.CreateDublicate = function () { var d = new CTextFit(); d.type = this.type; d.fontScale = this.fontScale; d.lnSpcReduction = this.lnSpcReduction; return d; }; CTextFit.prototype.Write_ToBinary = function (w) { writeLong(w, this.type); writeLong(w, this.fontScale); writeLong(w, this.lnSpcReduction); }; CTextFit.prototype.Read_FromBinary = function (r) { this.type = readLong(r); this.fontScale = readLong(r); this.lnSpcReduction = readLong(r); }; CTextFit.prototype.Get_Id = function () { return this.Id; }; CTextFit.prototype.Refresh_RecalcData = function () { }; //----------------------------- //Text Anchoring Types var nTextATB = 0;// (Text Anchor Enum ( Bottom )) var nTextATCtr = 1;// (Text Anchor Enum ( Center )) var nTextATDist = 2;// (Text Anchor Enum ( Distributed )) var nTextATJust = 3;// (Text Anchor Enum ( Justified )) var nTextATT = 4;// Top function CBodyPr() { CBaseNoIdObject.call(this); this.flatTx = null; this.anchor = null; this.anchorCtr = null; this.bIns = null; this.compatLnSpc = null; this.forceAA = null; this.fromWordArt = null; this.horzOverflow = null; this.lIns = null; this.numCol = null; this.rIns = null; this.rot = null; this.rtlCol = null; this.spcCol = null; this.spcFirstLastPara = null; this.tIns = null; this.upright = null; this.vert = null; this.vertOverflow = null; this.wrap = null; this.textFit = null; this.prstTxWarp = null; this.parent = null; } InitClass(CBodyPr, CBaseNoIdObject, 0); CBodyPr.prototype.Get_Id = function () { return this.Id; }; CBodyPr.prototype.Refresh_RecalcData = function () { }; CBodyPr.prototype.setVertOpen = function (nVert) { let nVert_ = nVert; if(nVert === AscFormat.nVertTTwordArtVert) { nVert_ = AscFormat.nVertTTvert; } this.vert = nVert_; }; CBodyPr.prototype.getLnSpcReduction = function () { if (this.textFit && this.textFit.type === AscFormat.text_fit_NormAuto && AscFormat.isRealNumber(this.textFit.lnSpcReduction)) { return this.textFit.lnSpcReduction / 100000.0; } return undefined; }; CBodyPr.prototype.getFontScale = function () { if (this.textFit && this.textFit.type === AscFormat.text_fit_NormAuto && AscFormat.isRealNumber(this.textFit.fontScale)) { return this.textFit.fontScale / 100000.0; } return undefined; }; CBodyPr.prototype.isNotNull = function () { return this.flatTx !== null || this.anchor !== null || this.anchorCtr !== null || this.bIns !== null || this.compatLnSpc !== null || this.forceAA !== null || this.fromWordArt !== null || this.horzOverflow !== null || this.lIns !== null || this.numCol !== null || this.rIns !== null || this.rot !== null || this.rtlCol !== null || this.spcCol !== null || this.spcFirstLastPara !== null || this.tIns !== null || this.upright !== null || this.vert !== null || this.vertOverflow !== null || this.wrap !== null || this.textFit !== null || this.prstTxWarp !== null; }; CBodyPr.prototype.setAnchor = function (val) { this.anchor = val; }; CBodyPr.prototype.setVert = function (val) { this.vert = val; }; CBodyPr.prototype.setRot = function (val) { this.rot = val; }; CBodyPr.prototype.reset = function () { this.flatTx = null; this.anchor = null; this.anchorCtr = null; this.bIns = null; this.compatLnSpc = null; this.forceAA = null; this.fromWordArt = null; this.horzOverflow = null; this.lIns = null; this.numCol = null; this.rIns = null; this.rot = null; this.rtlCol = null; this.spcCol = null; this.spcFirstLastPara = null; this.tIns = null; this.upright = null; this.vert = null; this.vertOverflow = null; this.wrap = null; this.textFit = null; this.prstTxWarp = null; }; CBodyPr.prototype.WritePrstTxWarp = function (w) { w.WriteBool(isRealObject(this.prstTxWarp)); if (isRealObject(this.prstTxWarp)) { writeString(w, this.prstTxWarp.preset); var startPos = w.GetCurPosition(), countAv = 0; w.Skip(4); for (var key in this.prstTxWarp.avLst) { if (this.prstTxWarp.avLst.hasOwnProperty(key)) { ++countAv; w.WriteString2(key); w.WriteLong(this.prstTxWarp.gdLst[key]); } } var endPos = w.GetCurPosition(); w.Seek(startPos); w.WriteLong(countAv); w.Seek(endPos); } }; CBodyPr.prototype.ReadPrstTxWarp = function (r) { ExecuteNoHistory(function () { if (r.GetBool()) { this.prstTxWarp = AscFormat.CreatePrstTxWarpGeometry(readString(r)); var count = r.GetLong(); for (var i = 0; i < count; ++i) { var sAdj = r.GetString2(); var nVal = r.GetLong(); this.prstTxWarp.AddAdj(sAdj, 15, nVal + "", undefined, undefined); } } }, this, []); }; CBodyPr.prototype.Write_ToBinary2 = function (w) { var flag = this.flatTx != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.flatTx); } flag = this.anchor != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.anchor); } flag = this.anchorCtr != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.anchorCtr); } flag = this.bIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.bIns); } flag = this.compatLnSpc != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.compatLnSpc); } flag = this.forceAA != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.forceAA); } flag = this.fromWordArt != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.fromWordArt); } flag = this.horzOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.horzOverflow); } flag = this.lIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.lIns); } flag = this.numCol != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.numCol); } flag = this.rIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.rIns); } flag = this.rot != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.rot); } flag = this.rtlCol != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.rtlCol); } flag = this.spcCol != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.spcCol); } flag = this.spcFirstLastPara != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.spcFirstLastPara); } flag = this.tIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.tIns); } flag = this.upright != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.upright); } flag = this.vert != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vert); } flag = this.vertOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vertOverflow); } flag = this.wrap != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.wrap); } this.WritePrstTxWarp(w); w.WriteBool(isRealObject(this.textFit)); if (this.textFit) { this.textFit.Write_ToBinary(w); } }; CBodyPr.prototype.Read_FromBinary2 = function (r) { var flag = r.GetBool(); if (flag) { this.flatTx = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchor = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchorCtr = r.GetBool(); } flag = r.GetBool(); if (flag) { this.bIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.compatLnSpc = r.GetBool(); } flag = r.GetBool(); if (flag) { this.forceAA = r.GetBool(); } flag = r.GetBool(); if (flag) { this.fromWordArt = r.GetBool(); } flag = r.GetBool(); if (flag) { this.horzOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.lIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.numCol = r.GetLong(); } flag = r.GetBool(); if (flag) { this.rIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.rot = r.GetLong(); } flag = r.GetBool(); if (flag) { this.rtlCol = r.GetBool(); } flag = r.GetBool(); if (flag) { this.spcCol = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.spcFirstLastPara = r.GetBool(); } flag = r.GetBool(); if (flag) { this.tIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.upright = r.GetBool(); } flag = r.GetBool(); if (flag) { this.vert = r.GetLong(); } flag = r.GetBool(); if (flag) { this.vertOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.wrap = r.GetLong(); } this.ReadPrstTxWarp(r); if (r.GetBool()) { this.textFit = new CTextFit(); this.textFit.Read_FromBinary(r); } }; CBodyPr.prototype.setDefaultInsets = function() { this.bIns = 45720 / 36000; this.tIns = 45720 / 36000; this.lIns = 91440 / 36000; this.rIns = 91440 / 36000; }; CBodyPr.prototype.setInsets = function(l, t, r, b) { this.lIns = l; this.tIns = t; this.rIns = r; this.bIns = b; }; CBodyPr.prototype.resetInsets = function() { this.setInsets(0, 0, 0, 0); }; CBodyPr.prototype.setDefault = function () { this.setDefaultInsets(); this.flatTx = null; this.anchor = 4; this.anchorCtr = false; this.compatLnSpc = false; this.forceAA = false; this.fromWordArt = false; this.horzOverflow = AscFormat.nHOTOverflow; this.numCol = 1; this.rot = null; this.rtlCol = false; this.spcCol = false; this.spcFirstLastPara = null; this.upright = false; this.vert = AscFormat.nVertTThorz; this.vertOverflow = AscFormat.nVOTOverflow; this.wrap = AscFormat.nTWTSquare; this.prstTxWarp = null; this.textFit = null; }; CBodyPr.prototype.createDuplicate = function () { var duplicate = new CBodyPr(); duplicate.flatTx = this.flatTx; duplicate.anchor = this.anchor; duplicate.anchorCtr = this.anchorCtr; duplicate.bIns = this.bIns; duplicate.compatLnSpc = this.compatLnSpc; duplicate.forceAA = this.forceAA; duplicate.fromWordArt = this.fromWordArt; duplicate.horzOverflow = this.horzOverflow; duplicate.lIns = this.lIns; duplicate.numCol = this.numCol; duplicate.rIns = this.rIns; duplicate.rot = this.rot; duplicate.rtlCol = this.rtlCol; duplicate.spcCol = this.spcCol; duplicate.spcFirstLastPara = this.spcFirstLastPara; duplicate.tIns = this.tIns; duplicate.upright = this.upright; duplicate.vert = this.vert; duplicate.vertOverflow = this.vertOverflow; duplicate.wrap = this.wrap; if (this.prstTxWarp) { duplicate.prstTxWarp = ExecuteNoHistory(function () { return this.prstTxWarp.createDuplicate(); }, this, []); } if (this.textFit) { duplicate.textFit = this.textFit.CreateDublicate(); } return duplicate; }; CBodyPr.prototype.createDuplicateForSmartArt = function (oPr) { var duplicate = new CBodyPr(); duplicate.anchor = this.anchor; duplicate.vert = this.vert; duplicate.rot = this.rot; duplicate.vertOverflow = this.vertOverflow; duplicate.horzOverflow = this.horzOverflow; duplicate.upright = this.upright; duplicate.rtlCol = this.rtlCol; duplicate.fromWordArt = this.fromWordArt; duplicate.compatLnSpc = this.compatLnSpc; duplicate.forceAA = this.forceAA; if (oPr.lIns) { duplicate.lIns = this.lIns; } if (oPr.rIns) { duplicate.rIns = this.rIns; } if (oPr.tIns) { duplicate.tIns = this.tIns; } if (oPr.bIns) { duplicate.bIns = this.bIns; } return duplicate; }; CBodyPr.prototype.merge = function (bodyPr) { if (!bodyPr) return; if (bodyPr.flatTx != null) { this.flatTx = bodyPr.flatTx; } if (bodyPr.anchor != null) { this.anchor = bodyPr.anchor; } if (bodyPr.anchorCtr != null) { this.anchorCtr = bodyPr.anchorCtr; } if (bodyPr.bIns != null) { this.bIns = bodyPr.bIns; } if (bodyPr.compatLnSpc != null) { this.compatLnSpc = bodyPr.compatLnSpc; } if (bodyPr.forceAA != null) { this.forceAA = bodyPr.forceAA; } if (bodyPr.fromWordArt != null) { this.fromWordArt = bodyPr.fromWordArt; } if (bodyPr.horzOverflow != null) { this.horzOverflow = bodyPr.horzOverflow; } if (bodyPr.lIns != null) { this.lIns = bodyPr.lIns; } if (bodyPr.numCol != null) { this.numCol = bodyPr.numCol; } if (bodyPr.rIns != null) { this.rIns = bodyPr.rIns; } if (bodyPr.rot != null) { this.rot = bodyPr.rot; } if (bodyPr.rtlCol != null) { this.rtlCol = bodyPr.rtlCol; } if (bodyPr.spcCol != null) { this.spcCol = bodyPr.spcCol; } if (bodyPr.spcFirstLastPara != null) { this.spcFirstLastPara = bodyPr.spcFirstLastPara; } if (bodyPr.tIns != null) { this.tIns = bodyPr.tIns; } if (bodyPr.upright != null) { this.upright = bodyPr.upright; } if (bodyPr.vert != null) { this.vert = bodyPr.vert; } if (bodyPr.vertOverflow != null) { this.vertOverflow = bodyPr.vertOverflow; } if (bodyPr.wrap != null) { this.wrap = bodyPr.wrap; } if (bodyPr.prstTxWarp) { this.prstTxWarp = ExecuteNoHistory(function () { return bodyPr.prstTxWarp.createDuplicate(); }, this, []); } if (bodyPr.textFit) { this.textFit = bodyPr.textFit.CreateDublicate(); } if (bodyPr.numCol != null) { this.numCol = bodyPr.numCol; } return this; }; CBodyPr.prototype.Write_ToBinary = function (w) { var flag = this.flatTx != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.flatTx); } flag = this.anchor != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.anchor); } flag = this.anchorCtr != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.anchorCtr); } flag = this.bIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.bIns); } flag = this.compatLnSpc != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.compatLnSpc); } flag = this.forceAA != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.forceAA); } flag = this.fromWordArt != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.fromWordArt); } flag = this.horzOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.horzOverflow); } flag = this.lIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.lIns); } flag = this.numCol != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.numCol); } flag = this.rIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.rIns); } flag = this.rot != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.rot); } flag = this.rtlCol != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.rtlCol); } flag = this.spcCol != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.spcCol); } flag = this.spcFirstLastPara != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.spcFirstLastPara); } flag = this.tIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.tIns); } flag = this.upright != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.upright); } flag = this.vert != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vert); } flag = this.vertOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vertOverflow); } flag = this.wrap != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.wrap); } this.WritePrstTxWarp(w); w.WriteBool(isRealObject(this.textFit)); if (this.textFit) { this.textFit.Write_ToBinary(w); } }; CBodyPr.prototype.Read_FromBinary = function (r) { var flag = r.GetBool(); if (flag) { this.flatTx = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchor = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchorCtr = r.GetBool(); } flag = r.GetBool(); if (flag) { this.bIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.compatLnSpc = r.GetBool(); } flag = r.GetBool(); if (flag) { this.forceAA = r.GetBool(); } flag = r.GetBool(); if (flag) { this.fromWordArt = r.GetBool(); } flag = r.GetBool(); if (flag) { this.horzOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.lIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.numCol = r.GetLong(); } flag = r.GetBool(); if (flag) { this.rIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.rot = r.GetLong(); } flag = r.GetBool(); if (flag) { this.rtlCol = r.GetBool(); } flag = r.GetBool(); if (flag) { this.spcCol = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.spcFirstLastPara = r.GetBool(); } flag = r.GetBool(); if (flag) { this.tIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.upright = r.GetBool(); } flag = r.GetBool(); if (flag) { this.vert = r.GetLong(); } flag = r.GetBool(); if (flag) { this.vertOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.wrap = r.GetLong(); } this.ReadPrstTxWarp(r); if (r.GetBool()) { this.textFit = new CTextFit(); this.textFit.Read_FromBinary(r) } }; function CTextParagraphPr() { this.bullet = new CBullet(); this.lvl = null; this.pPr = new CParaPr(); this.rPr = new CTextPr(); } function CreateNoneBullet() { var ret = new CBullet(); ret.bulletType = new CBulletType(); ret.bulletType.type = AscFormat.BULLET_TYPE_BULLET_NONE; return ret; } function CompareBullets(bullet1, bullet2) { //TODO: пока будем сравнивать только bulletType, т. к. эта функция используется для мержа свойств при отдаче в интерфейс, а для интерфейса bulletTyp'a достаточно. Если понадобится нужно сделать полное сравнение. // if (bullet1.bulletType && bullet2.bulletType && bullet1.bulletType.type === bullet2.bulletType.type) { var ret = new CBullet(); ret.bulletType = new CBulletType(); switch (bullet1.bulletType.type) { case AscFormat.BULLET_TYPE_BULLET_CHAR: { ret.bulletType.type = AscFormat.BULLET_TYPE_BULLET_CHAR; if (bullet1.bulletType.Char === bullet2.bulletType.Char) { ret.bulletType.Char = bullet1.bulletType.Char; } break; } case AscFormat.BULLET_TYPE_BULLET_BLIP: { ret.bulletType.type = AscFormat.BULLET_TYPE_BULLET_BLIP; var compareBlip = bullet1.bulletType.Blip && bullet2.bulletType.Blip && bullet1.bulletType.Blip.compare(bullet2.bulletType.Blip); ret.bulletType.Blip = compareBlip; break; } case AscFormat.BULLET_TYPE_BULLET_AUTONUM: { if (bullet1.bulletType.AutoNumType === bullet2.bulletType.AutoNumType) { ret.bulletType.AutoNumType = bullet1.bulletType.AutoNumType; } if (bullet1.bulletType.startAt === bullet2.bulletType.startAt) { ret.bulletType.startAt = bullet1.bulletType.startAt; } else { ret.bulletType.startAt = undefined; } if (bullet1.bulletType.type === bullet2.bulletType.type) { ret.bulletType.type = bullet1.bulletType.type; } break; } } if (bullet1.bulletSize && bullet2.bulletSize && bullet1.bulletSize.val === bullet2.bulletSize.val && bullet1.bulletSize.type === bullet2.bulletSize.type) { ret.bulletSize = bullet1.bulletSize; } if (bullet1.bulletColor && bullet2.bulletColor && bullet1.bulletColor.type === bullet2.bulletColor.type) { ret.bulletColor = new CBulletColor(); ret.bulletColor.type = bullet2.bulletColor.type; if (bullet1.bulletColor.UniColor) { ret.bulletColor.UniColor = bullet1.bulletColor.UniColor.compare(bullet2.bulletColor.UniColor); } if (!ret.bulletColor.UniColor || !ret.bulletColor.UniColor.color) { ret.bulletColor = null; } } return ret; } else { return undefined; } } function CBullet() { CBaseNoIdObject.call(this) this.bulletColor = null; this.bulletSize = null; this.bulletTypeface = null; this.bulletType = null; this.Bullet = null; //used to get properties for interface this.FirstTextPr = null; } InitClass(CBullet, CBaseNoIdObject, 0); CBullet.prototype.Set_FromObject = function (obj) { if (obj) { if (obj.bulletColor) { this.bulletColor = new CBulletColor(); this.bulletColor.Set_FromObject(obj.bulletColor); } else this.bulletColor = null; if (obj.bulletSize) { this.bulletSize = new CBulletSize(); this.bulletSize.Set_FromObject(obj.bulletSize); } else this.bulletSize = null; if (obj.bulletTypeface) { this.bulletTypeface = new CBulletTypeface(); this.bulletTypeface.Set_FromObject(obj.bulletTypeface); } else this.bulletTypeface = null; } }; CBullet.prototype.merge = function (oBullet) { if (!oBullet) { return; } if (oBullet.bulletColor) { if (!this.bulletColor) { this.bulletColor = oBullet.bulletColor.createDuplicate(); } else { this.bulletColor.merge(oBullet.bulletColor); } } if (oBullet.bulletSize) { if (!this.bulletSize) { this.bulletSize = oBullet.bulletSize.createDuplicate(); } else { this.bulletSize.merge(oBullet.bulletSize); } } if (oBullet.bulletTypeface) { if (!this.bulletTypeface) { this.bulletTypeface = oBullet.bulletTypeface.createDuplicate(); } else { this.bulletTypeface.merge(oBullet.bulletTypeface); } } if (oBullet.bulletType) { if (!this.bulletType) { this.bulletType = oBullet.bulletType.createDuplicate(); } else { this.bulletType.merge(oBullet.bulletType); } } }; CBullet.prototype.createDuplicate = function () { var duplicate = new CBullet(); if (this.bulletColor) { duplicate.bulletColor = this.bulletColor.createDuplicate(); } if (this.bulletSize) { duplicate.bulletSize = this.bulletSize.createDuplicate(); } if (this.bulletTypeface) { duplicate.bulletTypeface = this.bulletTypeface.createDuplicate(); } if (this.bulletType) { duplicate.bulletType = this.bulletType.createDuplicate(); } duplicate.Bullet = this.Bullet; return duplicate; }; CBullet.prototype.isBullet = function () { return this.bulletType != null && this.bulletType.type != null; }; CBullet.prototype.isNone = function() { if (!this.bulletType) return true; return this.bulletType.type === AscFormat.BULLET_TYPE_TYPEFACE_NONE; }; CBullet.prototype.getPresentationBullet = function (theme, color) { var para_pr = new CParaPr(); para_pr.Bullet = this; return para_pr.Get_PresentationBullet(theme, color); }; CBullet.prototype.getBulletType = function (theme, color) { return this.getPresentationBullet(theme, color).m_nType; }; CBullet.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealObject(this.bulletColor)); if (isRealObject(this.bulletColor)) { this.bulletColor.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bulletSize)); if (isRealObject(this.bulletSize)) { this.bulletSize.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bulletTypeface)); if (isRealObject(this.bulletTypeface)) { this.bulletTypeface.Write_ToBinary(w); } w.WriteBool(isRealObject(this.bulletType)); if (isRealObject(this.bulletType)) { this.bulletType.Write_ToBinary(w); } }; CBullet.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { this.bulletColor = new CBulletColor(); this.bulletColor.Read_FromBinary(r); } if (r.GetBool()) { this.bulletSize = new CBulletSize(); this.bulletSize.Read_FromBinary(r); } if (r.GetBool()) { this.bulletTypeface = new CBulletTypeface(); this.bulletTypeface.Read_FromBinary(r); } if (r.GetBool()) { this.bulletType = new CBulletType(); this.bulletType.Read_FromBinary(r); } }; CBullet.prototype.Get_AllFontNames = function (AllFonts) { if (this.bulletTypeface && typeof this.bulletTypeface.typeface === "string" && this.bulletTypeface.typeface.length > 0) { AllFonts[this.bulletTypeface.typeface] = true; } }; CBullet.prototype.putNumStartAt = function (NumStartAt) { if (!this.bulletType) { this.bulletType = new CBulletType(); } this.bulletType.type = AscFormat.BULLET_TYPE_BULLET_AUTONUM; this.bulletType.startAt = NumStartAt; }; CBullet.prototype.getNumStartAt = function () { if (this.bulletType) { if (AscFormat.isRealNumber(this.bulletType.startAt)) { return Math.max(1, this.bulletType.startAt); } } return undefined; }; CBullet.prototype.isEqual = function (oBullet) { if (!oBullet) { return false; } if (!this.bulletColor && oBullet.bulletColor || !oBullet.bulletColor && this.bulletColor) { return false; } if (this.bulletColor && oBullet.bulletColor) { if (!this.bulletColor.IsIdentical(oBullet.bulletColor)) { return false; } } if (!this.bulletSize && oBullet.bulletSize || this.bulletSize && !oBullet.bulletSize) { return false; } if (this.bulletSize && oBullet.bulletSize) { if (!this.bulletSize.IsIdentical(oBullet.bulletSize)) { return false; } } if (!this.bulletTypeface && oBullet.bulletTypeface || this.bulletTypeface && !oBullet.bulletTypeface) { return false; } if (this.bulletTypeface && oBullet.bulletTypeface) { if (!this.bulletTypeface.IsIdentical(oBullet.bulletTypeface)) { return false; } } if (!this.bulletType && oBullet.bulletType || this.bulletType && !oBullet.bulletType) { return false; } if (this.bulletType && oBullet.bulletType) { if (!this.bulletType.IsIdentical(oBullet.bulletType)) { return false; } } return true; }; CBullet.prototype.fillBulletImage = function (url) { this.bulletType = new CBulletType(); this.bulletType.Blip = new AscFormat.CBuBlip(); this.bulletType.type = AscFormat.BULLET_TYPE_BULLET_BLIP; this.bulletType.Blip.setBlip(AscFormat.CreateBlipFillUniFillFromUrl(url)); }; CBullet.prototype.fillBulletFromCharAndFont = function (char, font) { this.bulletType = new AscFormat.CBulletType(); this.bulletTypeface = new AscFormat.CBulletTypeface(); this.bulletTypeface.type = AscFormat.BULLET_TYPE_TYPEFACE_BUFONT; this.bulletTypeface.typeface = font || AscFonts.FontPickerByCharacter.getFontBySymbol(char.getUnicodeIterator().value()); this.bulletType.type = AscFormat.BULLET_TYPE_BULLET_CHAR; this.bulletType.Char = char; }; CBullet.prototype.getImageBulletURL = function () { var res = (this.bulletType && this.bulletType.Blip && this.bulletType.Blip.blip && this.bulletType.Blip.blip.fill && this.bulletType.Blip.blip.fill.RasterImageId); return res ? res : null; }; CBullet.prototype.setImageBulletURL = function (url) { var blipFill = (this.bulletType && this.bulletType.Blip && this.bulletType.Blip.blip && this.bulletType.Blip.blip.fill); if (blipFill) { blipFill.setRasterImageId(url); } }; CBullet.prototype.drawSquareImage = function (sDivId, nRelativeIndent) { nRelativeIndent = nRelativeIndent || 0; const sImageUrl = this.getImageBulletURL(); const oApi = editor || Asc.editor; if (!sImageUrl || !oApi) { return; } const oDiv = document.getElementById(sDivId); if (!oDiv) { return; } const nWidth = oDiv.clientWidth; const nHeight = oDiv.clientHeight; const nRPR = AscCommon.AscBrowser.retinaPixelRatio; const nCanvasSide = Math.min(nWidth, nHeight) * nRPR; let oCanvas = oDiv.firstChild; if (!oCanvas) { oCanvas = document.createElement('canvas'); oCanvas.style.cssText = "padding:0;margin:0;user-select:none;"; oCanvas.style.width = oDiv.clientWidth + 'px'; oCanvas.style.height = oDiv.clientHeight + 'px'; oCanvas.width = nCanvasSide; oCanvas.height = nCanvasSide; oDiv.appendChild(oCanvas); } const oContext = oCanvas.getContext('2d'); oContext.fillStyle = "white"; oContext.fillRect(0, 0, oCanvas.width, oCanvas.height); const oImage = oApi.ImageLoader.map_image_index[AscCommon.getFullImageSrc2(sImageUrl)]; if (oImage && oImage.Image && oImage.Status !== AscFonts.ImageLoadStatus.Loading) { const nImageWidth = oImage.Image.width; const nImageHeight = oImage.Image.height; const absoluteIndent = nCanvasSide * nRelativeIndent; const nSideSizeWithoutIndent = nCanvasSide - 2 * absoluteIndent; const nAdaptCoefficient = Math.max(nImageWidth / nSideSizeWithoutIndent, nImageHeight / nSideSizeWithoutIndent); const nImageAdaptWidth = nImageWidth / nAdaptCoefficient; const nImageAdaptHeight = nImageHeight / nAdaptCoefficient; const nX = (nCanvasSide - nImageAdaptWidth) / 2; const nY = (nCanvasSide - nImageAdaptHeight) / 2; oContext.drawImage(oImage.Image, nX, nY, nImageAdaptWidth, nImageAdaptHeight); } }; //interface methods prot = CBullet.prototype; prot["fillBulletImage"] = prot["asc_fillBulletImage"] = CBullet.prototype.fillBulletImage; prot["fillBulletFromCharAndFont"] = prot["asc_fillBulletFromCharAndFont"] = CBullet.prototype.fillBulletFromCharAndFont; prot["drawSquareImage"] = prot["asc_drawSquareImage"] = CBullet.prototype.drawSquareImage; prot.getImageId = function () { return this.getImageBulletURL(); } prot["getImageId"] = prot["asc_getImageId"] = CBullet.prototype.getImageId; prot.getJsonBullet = prot["asc_getJsonBullet"] = function () { const sUrlId = this.getImageBulletURL(); const oRes = window['AscJsonConverter'].WriterToJSON.prototype.SerBullet(this); if (sUrlId) { const oBuBlip = oRes["bulletType"] && oRes["bulletType"]["buBlip"] && oRes["bulletType"]["buBlip"]["blip"] && oRes["bulletType"]["buBlip"]["blip"]["fill"]; if (oBuBlip) { oBuBlip["rasterImageId"] = sUrlId; } } return oRes; } prot.put_ImageUrl = function (sUrl, token) { var _this = this; var Api = editor || Asc.editor; if (!Api) { return; } AscCommon.sendImgUrls(Api, [sUrl], function (data) { if (data && data[0] && data[0].url !== "error") { var url = AscCommon.g_oDocumentUrls.imagePath2Local(data[0].path); Api.ImageLoader.LoadImagesWithCallback([AscCommon.getFullImageSrc2(url)], function () { _this.fillBulletImage(url); //_this.drawSquareImage(); Api.sendEvent("asc_onBulletImageLoaded", _this); }); } }, false, token); }; prot["put_ImageUrl"] = prot["asc_putImageUrl"] = CBullet.prototype.put_ImageUrl; prot.showFileDialog = function () { var Api = editor || Asc.editor; if (!Api) { return; } var _this = this; AscCommon.ShowImageFileDialog(Api.documentId, Api.documentUserId, Api.CoAuthoringApi.get_jwt(), Api.documentShardKey, Api.documentWopiSrc, Api.documentUserSessionId, function (error, files) { if (Asc.c_oAscError.ID.No !== error) { Api.sendEvent("asc_onError", error, Asc.c_oAscError.Level.NoCritical); } else { Api.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); AscCommon.UploadImageFiles(files, Api.documentId, Api.documentUserId, Api.CoAuthoringApi.get_jwt(), Api.documentShardKey, Api.documentWopiSrc, Api.documentUserSessionId, function (error, urls) { if (Asc.c_oAscError.ID.No !== error) { Api.sendEvent("asc_onError", error, Asc.c_oAscError.Level.NoCritical); Api.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); } else { Api.ImageLoader.LoadImagesWithCallback(urls, function () { if (urls.length > 0) { _this.fillBulletImage(urls[0]); //_this.drawSquareImage(); Api.sendEvent("asc_onBulletImageLoaded", _this); } Api.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); }); } }); } }, function (error) { if (Asc.c_oAscError.ID.No !== error) { Api.sendEvent("asc_onError", error, Asc.c_oAscError.Level.NoCritical); } Api.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); }); }; prot["showFileDialog"] = prot["asc_showFileDialog"] = CBullet.prototype.showFileDialog; prot.asc_getSize = function () { var nRet = 100; if (this.bulletSize) { switch (this.bulletSize.type) { case AscFormat.BULLET_TYPE_SIZE_NONE: { break; } case AscFormat.BULLET_TYPE_SIZE_TX: { break; } case AscFormat.BULLET_TYPE_SIZE_PCT: { nRet = this.bulletSize.val / 1000.0; break; } case AscFormat.BULLET_TYPE_SIZE_PTS: { break; } } } return nRet; }; prot["get_Size"] = prot["asc_getSize"] = CBullet.prototype.asc_getSize; prot.asc_putSize = function (Size) { if (AscFormat.isRealNumber(Size)) { this.bulletSize = new AscFormat.CBulletSize(); this.bulletSize.type = AscFormat.BULLET_TYPE_SIZE_PCT; this.bulletSize.val = (Size * 1000) >> 0; } }; prot["put_Size"] = prot["asc_putSize"] = CBullet.prototype.asc_putSize; prot.asc_getColor = function () { if (this.bulletColor) { if (this.bulletColor.UniColor) { return AscCommon.CreateAscColor(this.bulletColor.UniColor); } } else { var FirstTextPr = this.FirstTextPr; if (FirstTextPr && FirstTextPr.Unifill) { if (FirstTextPr.Unifill.fill instanceof AscFormat.CSolidFill && FirstTextPr.Unifill.fill.color) { return AscCommon.CreateAscColor(FirstTextPr.Unifill.fill.color); } else { var RGBA = FirstTextPr.Unifill.getRGBAColor(); return AscCommon.CreateAscColorCustom(RGBA.R, RGBA.G, RGBA.B); } } } return AscCommon.CreateAscColorCustom(0, 0, 0); }; prot["get_Color"] = prot["asc_getColor"] = prot.asc_getColor; prot.asc_putColor = function (color) { this.bulletColor = new AscFormat.CBulletColor(); this.bulletColor.type = AscFormat.BULLET_TYPE_COLOR_CLR; this.bulletColor.UniColor = AscFormat.CorrectUniColor(color, this.bulletColor.UniColor, 0); }; prot["put_Color"] = prot["asc_putColor"] = prot.asc_putColor; prot.asc_getFont = function () { var sRet = ""; if (this.bulletTypeface && this.bulletTypeface.type === AscFormat.BULLET_TYPE_TYPEFACE_BUFONT && typeof this.bulletTypeface.typeface === "string" && this.bulletTypeface.typeface.length > 0) { sRet = this.bulletTypeface.typeface; } else { var FirstTextPr = this.FirstTextPr; if (FirstTextPr && FirstTextPr.FontFamily && typeof FirstTextPr.FontFamily.Name === "string" && FirstTextPr.FontFamily.Name.length > 0) { sRet = FirstTextPr.FontFamily.Name; } } return sRet; }; prot["get_Font"] = prot["asc_getFont"] = prot.asc_getFont; prot.asc_putFont = function (val) { if (typeof val === "string" && val.length > 0) { this.bulletTypeface = new AscFormat.CBulletTypeface(); this.bulletTypeface.type = AscFormat.BULLET_TYPE_TYPEFACE_BUFONT; this.bulletTypeface.typeface = val; } }; prot["put_Font"] = prot["asc_putFont"] = prot.asc_putFont; prot.asc_putNumStartAt = function (NumStartAt) { this.putNumStartAt(NumStartAt); }; prot["put_NumStartAt"] = prot["asc_putNumStartAt"] = prot.asc_putNumStartAt; prot.asc_getNumStartAt = function () { return this.getNumStartAt(); }; prot["get_NumStartAt"] = prot["asc_getNumStartAt"] = prot.asc_getNumStartAt; prot.asc_getSymbol = function () { if (this.bulletType && this.bulletType.type === AscFormat.BULLET_TYPE_BULLET_CHAR) { return this.bulletType.Char; } return undefined; }; prot["get_Symbol"] = prot["asc_getSymbol"] = prot.asc_getSymbol; prot.asc_putSymbol = function (v) { if (!this.bulletType) { this.bulletType = new CBulletType(); } this.bulletType.AutoNumType = 0; this.bulletType.type = AscFormat.BULLET_TYPE_BULLET_CHAR; this.bulletType.Char = v; }; prot["put_Symbol"] = prot["asc_putSymbol"] = prot.asc_putSymbol; prot.asc_putAutoNumType = function (val) { if (!this.bulletType) { this.bulletType = new CBulletType(); } this.bulletType.type = AscFormat.BULLET_TYPE_BULLET_AUTONUM; this.bulletType.AutoNumType = AscFormat.getNumberingType(val); }; prot["put_AutoNumType"] = prot["asc_putAutoNumType"] = prot.asc_putAutoNumType; prot.asc_getAutoNumType = function () { if (this.bulletType && this.bulletType.type === AscFormat.BULLET_TYPE_BULLET_AUTONUM) { return AscFormat.fGetListTypeFromBullet(this).SubType; } return -1; }; prot["get_AutoNumType"] = prot["asc_getAutoNumType"] = prot.asc_getAutoNumType; prot.asc_putListType = function (type, subtype, custom) { var NumberInfo = { Type: type, SubType: subtype, Custom: custom }; AscFormat.fFillBullet(NumberInfo, this); }; prot["put_ListType"] = prot["asc_putListType"] = prot.asc_putListType; prot.asc_getListType = function () { return new AscCommon.asc_CListType(AscFormat.fGetListTypeFromBullet(this)); }; prot.asc_getType = function () { return this.bulletType && this.bulletType.type; }; prot["get_Type"] = prot["asc_getType"] = prot.asc_getType; window["Asc"]["asc_CBullet"] = window["Asc"].asc_CBullet = CBullet; function CBulletColor(nType) { CBaseNoIdObject.call(this); this.type = AscFormat.isRealNumber(nType) ? nType : AscFormat.BULLET_TYPE_COLOR_CLRTX; this.UniColor = null; } InitClass(CBulletColor, CBaseNoIdObject, 0); CBulletColor.prototype.Set_FromObject = function (o) { this.merge(o); }; CBulletColor.prototype.merge = function (oBulletColor) { if (!oBulletColor) { return; } if (oBulletColor.UniColor) { this.type = oBulletColor.type; this.UniColor = oBulletColor.UniColor.createDuplicate(); } }; CBulletColor.prototype.IsIdentical = function (oBulletColor) { if (!oBulletColor) { return false; } if (this.type !== oBulletColor.type) { return false; } if (this.UniColor && !oBulletColor.UniColor || oBulletColor.UniColor && !this.UniColor) { return false; } if (this.UniColor) { if (!this.UniColor.IsIdentical(oBulletColor.UniColor)) { return false; } } return true; }; CBulletColor.prototype.createDuplicate = function () { var duplicate = new CBulletColor(); duplicate.type = this.type; if (this.UniColor != null) { duplicate.UniColor = this.UniColor.createDuplicate(); } return duplicate; }; CBulletColor.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealNumber(this.type)); if (isRealNumber(this.type)) { w.WriteLong(this.type); } w.WriteBool(isRealObject(this.UniColor)); if (isRealObject(this.UniColor)) { this.UniColor.Write_ToBinary(w); } }; CBulletColor.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { (this.type) = r.GetLong(); } if (r.GetBool()) { this.UniColor = new CUniColor(); this.UniColor.Read_FromBinary(r); } }; function CBulletSize(nType) { CBaseNoIdObject.call(this); this.type = AscFormat.isRealNumber(nType) ? nType : AscFormat.BULLET_TYPE_SIZE_NONE; this.val = 0; } InitClass(CBulletSize, CBaseNoIdObject, 0); CBulletSize.prototype.Set_FromObject = function (o) { this.merge(o); }; CBulletSize.prototype.merge = function (oBulletSize) { if (!oBulletSize) { return; } this.type = oBulletSize.type; this.val = oBulletSize.val; }; CBulletSize.prototype.createDuplicate = function () { var d = new CBulletSize(); d.type = this.type; d.val = this.val; return d; }; CBulletSize.prototype.IsIdentical = function (oBulletSize) { if (!oBulletSize) { return false; } return this.type === oBulletSize.type && this.val === oBulletSize.val; }; CBulletSize.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealNumber(this.type)); if (isRealNumber(this.type)) { w.WriteLong(this.type); } w.WriteBool(isRealNumber(this.val)); if (isRealNumber(this.val)) { w.WriteLong(this.val); } }; CBulletSize.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { (this.type) = r.GetLong(); } if (r.GetBool()) { (this.val) = r.GetLong(); } }; function CBulletTypeface(nType) { CBaseNoIdObject.call(this); this.type = AscFormat.isRealNumber(nType) ? nType : AscFormat.BULLET_TYPE_TYPEFACE_NONE; this.typeface = ""; } InitClass(CBulletTypeface, CBaseNoIdObject, 0); CBulletTypeface.prototype.Set_FromObject = function (o) { this.merge(o); }; CBulletTypeface.prototype.createDuplicate = function () { var d = new CBulletTypeface(); d.type = this.type; d.typeface = this.typeface; return d; }; CBulletTypeface.prototype.merge = function (oBulletTypeface) { if (!oBulletTypeface) { return; } this.type = oBulletTypeface.type; this.typeface = oBulletTypeface.typeface; }; CBulletTypeface.prototype.IsIdentical = function (oBulletTypeface) { if (!oBulletTypeface) { return false; } return this.type === oBulletTypeface.type && this.typeface === oBulletTypeface.typeface; }; CBulletTypeface.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealNumber(this.type)); if (isRealNumber(this.type)) { w.WriteLong(this.type); } w.WriteBool(typeof this.typeface === "string"); if (typeof this.typeface === "string") { w.WriteString2(this.typeface); } }; CBulletTypeface.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { (this.type) = r.GetLong(); } if (r.GetBool()) { (this.typeface) = r.GetString2(); } }; var numbering_presentationnumfrmt_AlphaLcParenBoth = 0; var numbering_presentationnumfrmt_AlphaLcParenR = 1; var numbering_presentationnumfrmt_AlphaLcPeriod = 2; var numbering_presentationnumfrmt_AlphaUcParenBoth = 3; var numbering_presentationnumfrmt_AlphaUcParenR = 4; var numbering_presentationnumfrmt_AlphaUcPeriod = 5; var numbering_presentationnumfrmt_Arabic1Minus = 6; var numbering_presentationnumfrmt_Arabic2Minus = 7; var numbering_presentationnumfrmt_ArabicDbPeriod = 8; var numbering_presentationnumfrmt_ArabicDbPlain = 9; var numbering_presentationnumfrmt_ArabicParenBoth = 10; var numbering_presentationnumfrmt_ArabicParenR = 11; var numbering_presentationnumfrmt_ArabicPeriod = 12; var numbering_presentationnumfrmt_ArabicPlain = 13; var numbering_presentationnumfrmt_CircleNumDbPlain = 14; var numbering_presentationnumfrmt_CircleNumWdBlackPlain = 15; var numbering_presentationnumfrmt_CircleNumWdWhitePlain = 16; var numbering_presentationnumfrmt_Ea1ChsPeriod = 17; var numbering_presentationnumfrmt_Ea1ChsPlain = 18; var numbering_presentationnumfrmt_Ea1ChtPeriod = 19; var numbering_presentationnumfrmt_Ea1ChtPlain = 20; var numbering_presentationnumfrmt_Ea1JpnChsDbPeriod = 21; var numbering_presentationnumfrmt_Ea1JpnKorPeriod = 22; var numbering_presentationnumfrmt_Ea1JpnKorPlain = 23; var numbering_presentationnumfrmt_Hebrew2Minus = 24; var numbering_presentationnumfrmt_HindiAlpha1Period = 25; var numbering_presentationnumfrmt_HindiAlphaPeriod = 26; var numbering_presentationnumfrmt_HindiNumParenR = 27; var numbering_presentationnumfrmt_HindiNumPeriod = 28; var numbering_presentationnumfrmt_RomanLcParenBoth = 29; var numbering_presentationnumfrmt_RomanLcParenR = 30; var numbering_presentationnumfrmt_RomanLcPeriod = 31; var numbering_presentationnumfrmt_RomanUcParenBoth = 32; var numbering_presentationnumfrmt_RomanUcParenR = 33; var numbering_presentationnumfrmt_RomanUcPeriod = 34; var numbering_presentationnumfrmt_ThaiAlphaParenBoth = 35; var numbering_presentationnumfrmt_ThaiAlphaParenR = 36; var numbering_presentationnumfrmt_ThaiAlphaPeriod = 37; var numbering_presentationnumfrmt_ThaiNumParenBoth = 38; var numbering_presentationnumfrmt_ThaiNumParenR = 39; var numbering_presentationnumfrmt_ThaiNumPeriod = 40; var numbering_presentationnumfrmt_None = 100; var numbering_presentationnumfrmt_Char = 101; var numbering_presentationnumfrmt_Blip = 102; AscFormat.numbering_presentationnumfrmt_AlphaLcParenBoth = numbering_presentationnumfrmt_AlphaLcParenBoth; AscFormat.numbering_presentationnumfrmt_AlphaLcParenR = numbering_presentationnumfrmt_AlphaLcParenR; AscFormat.numbering_presentationnumfrmt_AlphaLcPeriod = numbering_presentationnumfrmt_AlphaLcPeriod; AscFormat.numbering_presentationnumfrmt_AlphaUcParenBoth = numbering_presentationnumfrmt_AlphaUcParenBoth; AscFormat.numbering_presentationnumfrmt_AlphaUcParenR = numbering_presentationnumfrmt_AlphaUcParenR; AscFormat.numbering_presentationnumfrmt_AlphaUcPeriod = numbering_presentationnumfrmt_AlphaUcPeriod; AscFormat.numbering_presentationnumfrmt_Arabic1Minus = numbering_presentationnumfrmt_Arabic1Minus; AscFormat.numbering_presentationnumfrmt_Arabic2Minus = numbering_presentationnumfrmt_Arabic2Minus; AscFormat.numbering_presentationnumfrmt_ArabicDbPeriod = numbering_presentationnumfrmt_ArabicDbPeriod; AscFormat.numbering_presentationnumfrmt_ArabicDbPlain = numbering_presentationnumfrmt_ArabicDbPlain; AscFormat.numbering_presentationnumfrmt_ArabicParenBoth = numbering_presentationnumfrmt_ArabicParenBoth; AscFormat.numbering_presentationnumfrmt_ArabicParenR = numbering_presentationnumfrmt_ArabicParenR; AscFormat.numbering_presentationnumfrmt_ArabicPeriod = numbering_presentationnumfrmt_ArabicPeriod; AscFormat.numbering_presentationnumfrmt_ArabicPlain = numbering_presentationnumfrmt_ArabicPlain; AscFormat.numbering_presentationnumfrmt_CircleNumDbPlain = numbering_presentationnumfrmt_CircleNumDbPlain; AscFormat.numbering_presentationnumfrmt_CircleNumWdBlackPlain = numbering_presentationnumfrmt_CircleNumWdBlackPlain; AscFormat.numbering_presentationnumfrmt_CircleNumWdWhitePlain = numbering_presentationnumfrmt_CircleNumWdWhitePlain; AscFormat.numbering_presentationnumfrmt_Ea1ChsPeriod = numbering_presentationnumfrmt_Ea1ChsPeriod; AscFormat.numbering_presentationnumfrmt_Ea1ChsPlain = numbering_presentationnumfrmt_Ea1ChsPlain; AscFormat.numbering_presentationnumfrmt_Ea1ChtPeriod = numbering_presentationnumfrmt_Ea1ChtPeriod; AscFormat.numbering_presentationnumfrmt_Ea1ChtPlain = numbering_presentationnumfrmt_Ea1ChtPlain; AscFormat.numbering_presentationnumfrmt_Ea1JpnChsDbPeriod = numbering_presentationnumfrmt_Ea1JpnChsDbPeriod; AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPeriod = numbering_presentationnumfrmt_Ea1JpnKorPeriod; AscFormat.numbering_presentationnumfrmt_Ea1JpnKorPlain = numbering_presentationnumfrmt_Ea1JpnKorPlain; AscFormat.numbering_presentationnumfrmt_Hebrew2Minus = numbering_presentationnumfrmt_Hebrew2Minus; AscFormat.numbering_presentationnumfrmt_HindiAlpha1Period = numbering_presentationnumfrmt_HindiAlpha1Period; AscFormat.numbering_presentationnumfrmt_HindiAlphaPeriod = numbering_presentationnumfrmt_HindiAlphaPeriod; AscFormat.numbering_presentationnumfrmt_HindiNumParenR = numbering_presentationnumfrmt_HindiNumParenR; AscFormat.numbering_presentationnumfrmt_HindiNumPeriod = numbering_presentationnumfrmt_HindiNumPeriod; AscFormat.numbering_presentationnumfrmt_RomanLcParenBoth = numbering_presentationnumfrmt_RomanLcParenBoth; AscFormat.numbering_presentationnumfrmt_RomanLcParenR = numbering_presentationnumfrmt_RomanLcParenR; AscFormat.numbering_presentationnumfrmt_RomanLcPeriod = numbering_presentationnumfrmt_RomanLcPeriod; AscFormat.numbering_presentationnumfrmt_RomanUcParenBoth = numbering_presentationnumfrmt_RomanUcParenBoth; AscFormat.numbering_presentationnumfrmt_RomanUcParenR = numbering_presentationnumfrmt_RomanUcParenR; AscFormat.numbering_presentationnumfrmt_RomanUcPeriod = numbering_presentationnumfrmt_RomanUcPeriod; AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenBoth = numbering_presentationnumfrmt_ThaiAlphaParenBoth; AscFormat.numbering_presentationnumfrmt_ThaiAlphaParenR = numbering_presentationnumfrmt_ThaiAlphaParenR; AscFormat.numbering_presentationnumfrmt_ThaiAlphaPeriod = numbering_presentationnumfrmt_ThaiAlphaPeriod; AscFormat.numbering_presentationnumfrmt_ThaiNumParenBoth = numbering_presentationnumfrmt_ThaiNumParenBoth; AscFormat.numbering_presentationnumfrmt_ThaiNumParenR = numbering_presentationnumfrmt_ThaiNumParenR; AscFormat.numbering_presentationnumfrmt_ThaiNumPeriod = numbering_presentationnumfrmt_ThaiNumPeriod; AscFormat.numbering_presentationnumfrmt_None = numbering_presentationnumfrmt_None; AscFormat.numbering_presentationnumfrmt_Char = numbering_presentationnumfrmt_Char; AscFormat.numbering_presentationnumfrmt_Blip = numbering_presentationnumfrmt_Blip; var MAP_AUTONUM_TYPES = {}; MAP_AUTONUM_TYPES["alphaLcParenBot"] = numbering_presentationnumfrmt_AlphaLcParenBoth; MAP_AUTONUM_TYPES["alphaLcParen"] = numbering_presentationnumfrmt_AlphaLcParenR; MAP_AUTONUM_TYPES["alphaLcPerio"] = numbering_presentationnumfrmt_AlphaLcPeriod; MAP_AUTONUM_TYPES["alphaUcParenBot"] = numbering_presentationnumfrmt_AlphaUcParenBoth; MAP_AUTONUM_TYPES["alphaUcParen"] = numbering_presentationnumfrmt_AlphaUcParenR; MAP_AUTONUM_TYPES["alphaUcPerio"] = numbering_presentationnumfrmt_AlphaUcPeriod; MAP_AUTONUM_TYPES["arabic1Minu"] = numbering_presentationnumfrmt_Arabic1Minus; MAP_AUTONUM_TYPES["arabic2Minu"] = numbering_presentationnumfrmt_Arabic2Minus; MAP_AUTONUM_TYPES["arabicDbPerio"] = numbering_presentationnumfrmt_ArabicDbPeriod; MAP_AUTONUM_TYPES["arabicDbPlai"] = numbering_presentationnumfrmt_ArabicDbPlain; MAP_AUTONUM_TYPES["arabicParenBoth"] = numbering_presentationnumfrmt_ArabicParenBoth; MAP_AUTONUM_TYPES["arabicParenR"] = numbering_presentationnumfrmt_ArabicParenR; MAP_AUTONUM_TYPES["arabicPeriod"] = numbering_presentationnumfrmt_ArabicPeriod; MAP_AUTONUM_TYPES["arabicPlain"] = numbering_presentationnumfrmt_ArabicPlain; MAP_AUTONUM_TYPES["circleNumDbPlain"] = numbering_presentationnumfrmt_CircleNumDbPlain; MAP_AUTONUM_TYPES["circleNumWdBlackPlain"] = numbering_presentationnumfrmt_CircleNumWdBlackPlain; MAP_AUTONUM_TYPES["circleNumWdWhitePlain"] = numbering_presentationnumfrmt_CircleNumWdWhitePlain; MAP_AUTONUM_TYPES["ea1ChsPeriod"] = numbering_presentationnumfrmt_Ea1ChsPeriod; MAP_AUTONUM_TYPES["ea1ChsPlain"] = numbering_presentationnumfrmt_Ea1ChsPlain; MAP_AUTONUM_TYPES["ea1ChtPeriod"] = numbering_presentationnumfrmt_Ea1ChtPeriod; MAP_AUTONUM_TYPES["ea1ChtPlain"] = numbering_presentationnumfrmt_Ea1ChtPlain; MAP_AUTONUM_TYPES["ea1JpnChsDbPeriod"] = numbering_presentationnumfrmt_Ea1JpnChsDbPeriod; MAP_AUTONUM_TYPES["ea1JpnKorPeriod"] = numbering_presentationnumfrmt_Ea1JpnKorPeriod; MAP_AUTONUM_TYPES["ea1JpnKorPlain"] = numbering_presentationnumfrmt_Ea1JpnKorPlain; MAP_AUTONUM_TYPES["hebrew2Minus"] = numbering_presentationnumfrmt_Hebrew2Minus; MAP_AUTONUM_TYPES["hindiAlpha1Period"] = numbering_presentationnumfrmt_HindiAlpha1Period; MAP_AUTONUM_TYPES["hindiAlphaPeriod"] = numbering_presentationnumfrmt_HindiAlphaPeriod; MAP_AUTONUM_TYPES["hindiNumParenR"] = numbering_presentationnumfrmt_HindiNumParenR; MAP_AUTONUM_TYPES["hindiNumPeriod"] = numbering_presentationnumfrmt_HindiNumPeriod; MAP_AUTONUM_TYPES["romanLcParenBoth"] = numbering_presentationnumfrmt_RomanLcParenBoth; MAP_AUTONUM_TYPES["romanLcParenR"] = numbering_presentationnumfrmt_RomanLcParenR; MAP_AUTONUM_TYPES["romanLcPeriod"] = numbering_presentationnumfrmt_RomanLcPeriod; MAP_AUTONUM_TYPES["romanUcParenBoth"] = numbering_presentationnumfrmt_RomanUcParenBoth; MAP_AUTONUM_TYPES["romanUcParenR"] = numbering_presentationnumfrmt_RomanUcParenR; MAP_AUTONUM_TYPES["romanUcPeriod"] = numbering_presentationnumfrmt_RomanUcPeriod; MAP_AUTONUM_TYPES["thaiAlphaParenBoth"] = numbering_presentationnumfrmt_ThaiAlphaParenBoth; MAP_AUTONUM_TYPES["thaiAlphaParenR"] = numbering_presentationnumfrmt_ThaiAlphaParenR; MAP_AUTONUM_TYPES["thaiAlphaPeriod"] = numbering_presentationnumfrmt_ThaiAlphaPeriod; MAP_AUTONUM_TYPES["thaiNumParenBoth"] = numbering_presentationnumfrmt_ThaiNumParenBoth; MAP_AUTONUM_TYPES["thaiNumParenR"] = numbering_presentationnumfrmt_ThaiNumParenR; MAP_AUTONUM_TYPES["thaiNumPeriod"] = numbering_presentationnumfrmt_ThaiNumPeriod; function CBulletType(nType) { CBaseNoIdObject.call(this); this.type = AscFormat.isRealNumber(nType) ? nType : null;//BULLET_TYPE_BULLET_NONE; this.Char = null; this.AutoNumType = null; this.Blip = null; this.startAt = null; } InitClass(CBulletType, CBaseNoIdObject, 0); CBulletType.prototype.Set_FromObject = function (o) { this.merge(o); }; CBulletType.prototype.IsIdentical = function (oBulletType) { if (!oBulletType) { return false; } return this.type === oBulletType.type && this.Char === oBulletType.Char && this.AutoNumType === oBulletType.AutoNumType && this.startAt === oBulletType.startAt && ((this.Blip && this.Blip.isEqual(oBulletType.Blip)) || this.Blip === oBulletType.Blip); }; CBulletType.prototype.merge = function (oBulletType) { if (!oBulletType) { return; } if (oBulletType.type !== null && this.type !== oBulletType.type) { this.type = oBulletType.type; this.Char = oBulletType.Char; this.AutoNumType = oBulletType.AutoNumType; this.startAt = oBulletType.startAt; if (oBulletType.Blip) { this.Blip = oBulletType.Blip.createDuplicate(); } } else { if (this.type === AscFormat.BULLET_TYPE_BULLET_CHAR) { if (typeof oBulletType.Char === "string" && oBulletType.Char.length > 0) { if (this.Char !== oBulletType.Char) { this.Char = oBulletType.Char; } } } if (this.type === AscFormat.BULLET_TYPE_BULLET_BLIP) { if (this.Blip instanceof AscFormat.CBuBlip && this.Blip !== oBulletType.Blip) { this.Blip = oBulletType.Blip.createDuplicate(); } } if (this.type === AscFormat.BULLET_TYPE_BULLET_AUTONUM) { if (oBulletType.AutoNumType !== null && this.AutoNumType !== oBulletType.AutoNumType) { this.AutoNumType = oBulletType.AutoNumType; } if (oBulletType.startAt !== null && this.startAt !== oBulletType.startAt) { this.startAt = oBulletType.startAt; } } } }; CBulletType.prototype.createDuplicate = function () { var d = new CBulletType(); d.type = this.type; d.Char = this.Char; d.AutoNumType = this.AutoNumType; d.startAt = this.startAt; if (this.Blip) { d.Blip = this.Blip.createDuplicate(); } return d; }; CBulletType.prototype.setBlip = function (oPr) { this.Blip = oPr; }; CBulletType.prototype.Write_ToBinary = function (w) { w.WriteBool(isRealNumber(this.type)); if (isRealNumber(this.type)) { w.WriteLong(this.type); } w.WriteBool(typeof this.Char === "string"); if (typeof this.Char === "string") { w.WriteString2(this.Char); } w.WriteBool(isRealNumber(this.AutoNumType)); if (isRealNumber(this.AutoNumType)) { w.WriteLong(this.AutoNumType); } w.WriteBool(isRealNumber(this.startAt)); if (isRealNumber(this.startAt)) { w.WriteLong(this.startAt); } w.WriteBool(isRealObject(this.Blip)); if (isRealObject(this.Blip)) { this.Blip.Write_ToBinary(w); } }; CBulletType.prototype.Read_FromBinary = function (r) { if (r.GetBool()) { (this.type) = r.GetLong(); } if (r.GetBool()) { (this.Char) = r.GetString2(); if (AscFonts.IsCheckSymbols) AscFonts.FontPickerByCharacter.getFontsByString(this.Char); } if (r.GetBool()) { (this.AutoNumType) = r.GetLong(); } if (r.GetBool()) { (this.startAt) = r.GetLong(); } if (r.GetBool()) { this.Blip = new CBuBlip(); this.Blip.Read_FromBinary(r); var oUnifill = this.Blip.blip; var sRasterImageId = oUnifill && oUnifill.fill && oUnifill.fill.RasterImageId; if (typeof AscCommon.CollaborativeEditing !== "undefined") { if (typeof sRasterImageId === "string" && sRasterImageId.length > 0) { AscCommon.CollaborativeEditing.Add_NewImage(sRasterImageId); } } } }; function TextListStyle() { CBaseNoIdObject.call(this); this.levels = new Array(10); for (var i = 0; i < 10; i++) this.levels[i] = null; } InitClass(TextListStyle, CBaseNoIdObject, 0); TextListStyle.prototype.Get_Id = function () { return this.Id; }; TextListStyle.prototype.Refresh_RecalcData = function () { }; TextListStyle.prototype.createDuplicate = function () { var duplicate = new TextListStyle(); for (var i = 0; i < 10; ++i) { if (this.levels[i] != null) { duplicate.levels[i] = this.levels[i].Copy(); } } return duplicate; }; TextListStyle.prototype.Write_ToBinary = function (w) { for (var i = 0; i < 10; ++i) { w.WriteBool(isRealObject(this.levels[i])); if (isRealObject(this.levels[i])) { this.levels[i].Write_ToBinary(w); } } }; TextListStyle.prototype.Read_FromBinary = function (r) { for (var i = 0; i < 10; ++i) { if (r.GetBool()) { this.levels[i] = new CParaPr(); this.levels[i].Read_FromBinary(r); } else { this.levels[i] = null; } } }; TextListStyle.prototype.merge = function (oTextListStyle) { if (!oTextListStyle) { return; } for (var i = 0; i < this.levels.length; ++i) { if (oTextListStyle.levels[i]) { if (this.levels[i]) { this.levels[i].Merge(oTextListStyle.levels[i]); } else { this.levels[i] = oTextListStyle.levels[i].Copy(); } } } }; TextListStyle.prototype.Document_Get_AllFontNames = function (AllFonts) { for (var i = 0; i < 10; ++i) { if (this.levels[i]) { if (this.levels[i].DefaultRunPr) { this.levels[i].DefaultRunPr.Document_Get_AllFontNames(AllFonts); } if (this.levels[i].Bullet) { this.levels[i].Bullet.Get_AllFontNames(AllFonts); } } } }; TextListStyle.prototype.applyParaPr = function (nLvl, ParaPr, bIncreaseFontSize, oSp) { let iN = AscFormat.isRealNumber; if(bIncreaseFontSize === true || bIncreaseFontSize === false) { if(!this.levels[nLvl]) { this.levels[nLvl] = new AscWord.CParaPr(); } let oLvl = this.levels[nLvl]; if(oLvl) { if(!oLvl.DefaultRunPr) { oLvl.DefaultRunPr = new AscWord.CTextPr(); } let TextPr = oLvl.DefaultRunPr; let Pr; if(iN(TextPr.FontSize)) { TextPr.FontSize = TextPr.GetIncDecFontSize(bIncreaseFontSize) } else { let oSpStyles = oSp.Get_Styles(nLvl); let Styles = oSpStyles.styles; Pr = Styles.Get_Pr(oSpStyles.lastId, styletype_Paragraph, null); TextPr.FontSize = Pr.TextPr.GetIncDecFontSize(bIncreaseFontSize) } if(iN(TextPr.FontSizeCS)) { TextPr.FontSizeCS = TextPr.GetIncDecFontSizeCS(bIncreaseFontSize) } else { if(!Pr) { let oSpStyles = oSp.Get_Styles(nLvl); let Styles = oSpStyles.styles; Pr = Styles.Get_Pr(oSpStyles.lastId, styletype_Paragraph, null); } TextPr.FontSize = Pr.TextPr.GetIncDecFontSize(bIncreaseFontSize) } } return; } if(!ParaPr) { this.levels[nLvl] = null; return; } if(!this.levels[nLvl]) { this.levels[nLvl] = new AscWord.CParaPr(); } let oLvl = this.levels[nLvl]; oLvl.Merge(ParaPr); if(!oLvl.DefaultRunPr) { oLvl.DefaultRunPr = new AscWord.CTextPr(); } if(ParaPr.DefaultRunPr) { let TextPr = ParaPr.DefaultRunPr; if (TextPr.FontFamily) { let FName = TextPr.FontFamily.Name; let FIndex = TextPr.FontFamily.Index; TextPr.RFonts = new CRFonts(); TextPr.RFonts.SetAll(FName, FIndex); } oLvl.DefaultRunPr.Apply(ParaPr.DefaultRunPr); } }; TextListStyle.prototype.changeFontSize = function (nLvl, bIncrease) { if(!this.levels[nLvl]) { this.levels[nLvl] = new AscWord.CParaPr(); } let oLvl = this.levels[nLvl]; if(oLvl.DefaultRunPr) { oLvl.DefaultRunPr = new AscWord.CTextPr(); } }; function CBaseAttrObject() { CBaseNoIdObject.call(this); this.attr = {}; } InitClass(CBaseAttrObject, CBaseNoIdObject, 0); function CChangesCorePr(Class, Old, New, Color) { AscDFH.CChangesBase.call(this, Class, Old, New, Color); if (Old && New) { this.OldCategory = Old.category; this.OldContentStatus = Old.contentStatus; this.OldCreated = Old.created; this.OldCreator = Old.creator; this.OldDescription = Old.description; this.OldIdentifier = Old.identifier; this.OldKeywords = Old.keywords; this.OldLanguage = Old.language; this.OldLastModifiedBy = Old.lastModifiedBy; this.OldLastPrinted = Old.lastPrinted; this.OldModified = Old.modified; this.OldRevision = Old.revision; this.OldSubject = Old.subject; this.OldTitle = Old.title; this.OldVersion = Old.version; this.NewCategory = New.category === Old.category ? undefined : New.category; this.NewContentStatus = New.contentStatus === Old.contentStatus ? undefined : New.contentStatus; this.NewCreated = New.created === Old.created ? undefined : New.created; this.NewCreator = New.creator === Old.creator ? undefined : New.creator; this.NewDescription = New.description === Old.description ? undefined : New.description; this.NewIdentifier = New.identifier === Old.identifier ? undefined : New.identifier; this.NewKeywords = New.keywords === Old.keywords ? undefined : New.keywords; this.NewLanguage = New.language === Old.language ? undefined : New.language; this.NewLastModifiedBy = New.lastModifiedBy === Old.lastModifiedBy ? undefined : New.lastModifiedBy; this.NewLastPrinted = New.lastPrinted === Old.lastPrinted ? undefined : New.lastPrinted; this.NewModified = New.modified === Old.modified ? undefined : New.modified; this.NewRevision = New.revision === Old.revision ? undefined : New.revision; this.NewSubject = New.subject === Old.subject ? undefined : New.subject; this.NewTitle = New.title === Old.title ? undefined : New.title; this.NewVersion = New.version === Old.version ? undefined : New.version; } else { this.OldCategory = undefined; this.OldContentStatus = undefined; this.OldCreated = undefined; this.OldCreator = undefined; this.OldDescription = undefined; this.OldIdentifier = undefined; this.OldKeywords = undefined; this.OldLanguage = undefined; this.OldLastModifiedBy = undefined; this.OldLastPrinted= undefined; this.OldModified = undefined; this.OldRevision = undefined; this.OldSubject = undefined; this.OldTitle = undefined; this.OldVersion = undefined; this.NewCategory = undefined; this.NewContentStatus = undefined; this.NewCreated = undefined; this.NewCreator = undefined; this.NewDescription = undefined; this.NewIdentifier = undefined; this.NewKeywords = undefined; this.NewLanguage = undefined; this.NewLastModifiedBy = undefined; this.NewLastPrinted = undefined; this.NewModified = undefined; this.NewRevision = undefined; this.NewSubject = undefined; this.NewTitle = undefined; this.NewVersion = undefined; } } CChangesCorePr.prototype = Object.create(AscDFH.CChangesBase.prototype); CChangesCorePr.prototype.constructor = CChangesCorePr; CChangesCorePr.prototype.Type = AscDFH.historyitem_CoreProperties; CChangesCorePr.prototype.Undo = function () { if (!this.Class) { return; } this.Class.category = this.OldCategory; this.Class.contentStatus = this.OldContentStatus; this.Class.created = this.OldCreated; this.Class.creator = this.OldCreator; this.Class.description = this.OldDescription; this.Class.identifier = this.OldIdentifier; this.Class.keywords = this.OldKeywords; this.Class.language = this.OldLanguage; this.Class.lastModifiedBy = this.OldLastModifiedBy; this.Class.lastPrinted = this.OldLastPrinted; this.Class.modified = this.OldModified; this.Class.revision = this.OldRevision; this.Class.subject = this.OldSubject; this.Class.title = this.OldTitle; this.Class.version = this.OldVersion; }; CChangesCorePr.prototype.Redo = function () { if (!this.Class) { return; } if (this.NewCategory !== undefined) { this.Class.category = this.NewCategory; } if (this.NewContentStatus !== undefined) { this.Class.contentStatus = this.NewContentStatus; } if (this.NewCreated !== undefined) { this.Class.created = this.NewCreated; } if (this.NewCreator !== undefined) { this.Class.creator = this.NewCreator; } if (this.NewDescription !== undefined) { this.Class.description = this.NewDescription; } if (this.NewIdentifier !== undefined) { this.Class.identifier = this.NewIdentifier; } if (this.NewKeywords !== undefined) { this.Class.keywords = this.NewKeywords; } if (this.NewLanguage !== undefined) { this.Class.language = this.NewLanguage; } if (this.NewLastModifiedBy !== undefined) { this.Class.lastModifiedBy = this.NewLastModifiedBy; } if (this.NewLastPrinted !== undefined) { this.Class.lastPrinted = this.NewLastPrinted; } if (this.NewModified !== undefined) { this.Class.modified = this.NewModified; } if (this.NewRevision !== undefined) { this.Class.revision = this.NewRevision; } if (this.NewSubject !== undefined) { this.Class.subject = this.NewSubject; } if (this.NewTitle !== undefined) { this.Class.title = this.NewTitle; } if (this.NewVersion !== undefined) { this.Class.version = this.NewVersion; } }; CChangesCorePr.prototype.WriteToBinary = function (Writer) { var nFlags = 0; if (undefined !== this.NewTitle) { nFlags |= (1 << 0); } if (undefined !== this.NewCreator) { nFlags |= (1 << 1); } if (undefined !== this.NewDescription) { nFlags |= (1 << 2); } if (undefined !== this.NewSubject) { nFlags |= (1 << 3); } if (undefined !== this.NewCategory) { nFlags |= (1 << 4); } if (undefined !== this.NewContentStatus) { nFlags |= (1 << 5); } if (undefined !== this.NewCreated) { nFlags |= (1 << 6); } if (undefined !== this.NewIdentifier) { nFlags |= (1 << 7); } if (undefined !== this.NewKeywords) { nFlags |= (1 << 8); } if (undefined !== this.NewLanguage) { nFlags |= (1 << 9); } if (undefined !== this.NewLastModifiedBy) { nFlags |= (1 << 10); } if (undefined !== this.NewLastPrinted) { nFlags |= (1 << 11); } if (undefined !== this.NewModified) { nFlags |= (1 << 12); } if (undefined !== this.NewRevision) { nFlags |= (1 << 13); } if (undefined !== this.NewVersion) { nFlags |= (1 << 14); } Writer.WriteLong(nFlags); var bIsField; if (nFlags & (1 << 0)) { bIsField = typeof this.NewTitle === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewTitle); } } if (nFlags & (1 << 1)) { bIsField = typeof this.NewCreator === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewCreator); } } if (nFlags & (1 << 2)) { bIsField = typeof this.NewDescription === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewDescription); } } if (nFlags & (1 << 3)) { bIsField = typeof this.NewSubject === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewSubject); } } if (nFlags & (1 << 4)) { bIsField = typeof this.NewCategory === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewCategory); } } if (nFlags & (1 << 5)) { bIsField = typeof this.NewContentStatus === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewContentStatus); } } if (nFlags & (1 << 6)) { bIsField = this.NewCreated && this.NewCreated instanceof Date; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewCreated.toISOString().slice(0, 19) + 'Z'); } } if (nFlags & (1 << 7)) { bIsField = typeof this.NewIdentifier === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewIdentifier); } } if (nFlags & (1 << 8)) { bIsField = typeof this.NewKeywords === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewKeywords); } } if (nFlags & (1 << 9)) { bIsField = typeof this.NewLanguage === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewLanguage); } } if (nFlags & (1 << 10)) { bIsField = typeof this.NewLastModifiedBy === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewLastModifiedBy); } } if (nFlags & (1 << 11)) { bIsField = this.NewLastPrinted && this.NewLastPrinted instanceof Date; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewLastPrinted.toISOString().slice(0, 19) + 'Z'); } } if (nFlags & (1 << 12)) { bIsField = this.NewModified && this.NewModified instanceof Date; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewModified.toISOString().slice(0, 19) + 'Z'); } } if (nFlags & (1 << 13)) { bIsField = typeof this.NewRevision === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewRevision); } } if (nFlags & (1 << 14)) { bIsField = typeof this.NewVersion === "string"; Writer.WriteBool(bIsField); if (bIsField) { Writer.WriteString2(this.NewVersion); } } }; CChangesCorePr.prototype.ReadFromBinary = function (Reader) { var nFlags = Reader.GetLong(); var bIsField; if (nFlags & (1 << 0)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewTitle = Reader.GetString2(); } else { this.NewTitle = null; } } if (nFlags & (1 << 1)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewCreator = Reader.GetString2(); } else { this.NewCreator = null; } } if (nFlags & (1 << 2)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewDescription = Reader.GetString2(); } else { this.NewDescription = null; } } if (nFlags & (1 << 3)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewSubject = Reader.GetString2(); } else { this.NewSubject = null; } } if (nFlags & (1 << 4)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewCategory = Reader.GetString2(); } else { this.NewCategory = null; } } if (nFlags & (1 << 5)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewContentStatus = Reader.GetString2(); } else { this.NewContentStatus = null; } } if (nFlags & (1 << 6)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewCreated = new Date(Reader.GetString2()); } else { this.NewCreated = null; } } if (nFlags & (1 << 7)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewIdentifier = Reader.GetString2(); } else { this.NewIdentifier = null; } } if (nFlags & (1 << 8)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewKeywords = Reader.GetString2(); } else { this.NewKeywords = null; } } if (nFlags & (1 << 9)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewLanguage = Reader.GetString2(); } else { this.NewLanguage = null; } } if (nFlags & (1 << 10)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewLastModifiedBy = Reader.GetString2(); } else { this.NewLastModifiedBy = null; } } if (nFlags & (1 << 11)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewLastPrinted = new Date(Reader.GetString2()); } else { this.NewLastPrinted = null; } } if (nFlags & (1 << 12)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewModified = new Date(Reader.GetString2()); } else { this.NewModified = null; } } if (nFlags & (1 << 13)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewRevision = Reader.GetString2(); } else { this.NewRevision = null; } } if (nFlags & (1 << 14)) { bIsField = Reader.GetBool(); if (bIsField) { this.NewVersion = Reader.GetString2(); } else { this.NewVersion = null; } } }; CChangesCorePr.prototype.CreateReverseChange = function () { var ret = new CChangesCorePr(this.Class); ret.OldCategory = this.NewCategory; ret.OldContentStatus = this.NewContentStatus; ret.OldCreated = this.NewCreated; ret.OldCreator = this.NewCreator; ret.OldDescription = this.NewDescription; ret.OldIdentifier = this.NewIdentifier; ret.OldKeywords = this.NewKeywords; ret.OldLanguage = this.NewLanguage; ret.OldLastModifiedBy = this.NewLastModifiedBy; ret.OldLastPrinted = this.NewLastPrinted; ret.OldModified = this.NewModified; ret.OldRevision = this.NewRevision; ret.OldSubject = this.NewSubject; ret.OldTitle = this.NewTitle; ret.OldVersion = this.NewVersion; ret.NewCategory = this.OldCategory; ret.NewContentStatus = this.OldContentStatus; ret.NewCreated = this.OldCreated; ret.NewCreator = this.OldCreator; ret.NewDescription = this.OldDescription; ret.NewIdentifier = this.OldIdentifier; ret.NewKeywords = this.OldKeywords; ret.NewLanguage = this.OldLanguage; ret.NewLastModifiedBy = this.OldLastModifiedBy; ret.NewLastPrinted = this.OldLastPrinted; ret.NewModified = this.OldModified; ret.NewRevision = this.OldRevision; ret.NewSubject = this.OldSubject; ret.NewTitle = this.OldTitle; ret.NewVersion = this.OldVersion; return ret; }; AscDFH.changesFactory[AscDFH.historyitem_CoreProperties] = CChangesCorePr; function CCore() { AscFormat.CBaseFormatObject.call(this); this.category = null; this.contentStatus = null;//Status in menu this.created = null; this.creator = null;// Authors in menu this.description = null;//Comments in menu this.identifier = null; this.keywords = null; this.language = null; this.lastModifiedBy = null; this.lastPrinted = null; this.modified = null; this.revision = null; this.subject = null; this.title = null; this.version = null; this.Lock = new AscCommon.CLock(); this.lockType = AscCommon.c_oAscLockTypes.kLockTypeNone; } InitClass(CCore, CBaseFormatObject, AscDFH.historyitem_type_Core); CCore.prototype.fromStream = function (s) { var _type = s.GetUChar(); var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.title = s.GetString2(); break; } case 1: { this.creator = s.GetString2(); break; } case 2: { this.lastModifiedBy = s.GetString2(); break; } case 3: { this.revision = s.GetString2(); break; } case 4: { this.created = this.readDate(s.GetString2()); break; } case 5: { this.modified = this.readDate(s.GetString2()); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { var _end_rec2 = s.cur + s.GetLong() + 4; s.Skip2(1); // start attributes while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 6: { this.category = s.GetString2(); break; } case 7: { this.contentStatus = s.GetString2(); break; } case 8: { this.description = s.GetString2(); break; } case 9: { this.identifier = s.GetString2(); break; } case 10: { this.keywords = s.GetString2(); break; } case 11: { this.language = s.GetString2(); break; } case 12: { this.lastPrinted = this.readDate(s.GetString2()); break; } case 13: { this.subject = s.GetString2(); break; } case 14: { this.version = s.GetString2(); break; } default: return; } } s.Seek2(_end_rec2); break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CCore.prototype.readDate = function (val) { val = new Date(val); return val instanceof Date && !isNaN(val) ? val : null; }; CCore.prototype.toStream = function (s, api) { s.StartRecord(AscCommon.c_oMainTables.Core); s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteString2(0, this.title); s._WriteString2(1, this.creator); if (api && api.DocInfo) { s._WriteString2(2, api.DocInfo.get_UserName()); } var revision = 0; if (this.revision) { var rev = parseInt(this.revision); if (!isNaN(rev)) { revision = rev; } } s._WriteString2(3, (revision + 1).toString()); if (this.created) { s._WriteString2(4, this.created.toISOString().slice(0, 19) + 'Z'); } s._WriteString2(5, new Date().toISOString().slice(0, 19) + 'Z'); s.WriteUChar(g_nodeAttributeEnd); s.StartRecord(0); s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteString2(6, this.category); s._WriteString2(7, this.contentStatus); s._WriteString2(8, this.description); s._WriteString2(9, this.identifier); s._WriteString2(10, this.keywords); s._WriteString2(11, this.language); // we don't track it // if (this.lastPrinted) { // s._WriteString1(12, this.lastPrinted.toISOString().slice(0, 19) + 'Z'); // } s._WriteString2(13, this.subject); s._WriteString2(14, this.version); s.WriteUChar(g_nodeAttributeEnd); s.EndRecord(); s.EndRecord(); }; CCore.prototype.asc_getTitle = function () { return this.title; }; CCore.prototype.asc_getCreator = function () { return this.creator; }; CCore.prototype.asc_getLastModifiedBy = function () { return this.lastModifiedBy; }; CCore.prototype.asc_getRevision = function () { return this.revision; }; CCore.prototype.asc_getCreated = function () { return this.created; }; CCore.prototype.asc_getModified = function () { return this.modified; }; CCore.prototype.asc_getCategory = function () { return this.category; }; CCore.prototype.asc_getContentStatus = function () { return this.contentStatus; }; CCore.prototype.asc_getDescription = function () { return this.description; }; CCore.prototype.asc_getIdentifier = function () { return this.identifier; }; CCore.prototype.asc_getKeywords = function () { return this.keywords; }; CCore.prototype.asc_getLanguage = function () { return this.language; }; CCore.prototype.asc_getLastPrinted = function () { return this.lastPrinted; }; CCore.prototype.asc_getSubject = function () { return this.subject; }; CCore.prototype.asc_getVersion = function () { return this.version; }; CCore.prototype.asc_putTitle = function (v) { this.title = v; }; CCore.prototype.asc_putCreator = function (v) { this.creator = v; }; CCore.prototype.asc_putLastModifiedBy = function (v) { this.lastModifiedBy = v; }; CCore.prototype.asc_putRevision = function (v) { this.revision = v; }; CCore.prototype.asc_putCreated = function (v) { this.created = v; }; CCore.prototype.asc_putModified = function (v) { this.modified = v; }; CCore.prototype.asc_putCategory = function (v) { this.category = v; }; CCore.prototype.asc_putContentStatus = function (v) { this.contentStatus = v; }; CCore.prototype.asc_putDescription = function (v) { this.description = v; }; CCore.prototype.asc_putIdentifier = function (v) { this.identifier = v; }; CCore.prototype.asc_putKeywords = function (v) { this.keywords = v; }; CCore.prototype.asc_putLanguage = function (v) { this.language = v; }; CCore.prototype.asc_putLastPrinted = function (v) { this.lastPrinted = v; }; CCore.prototype.asc_putSubject = function (v) { this.subject = v; }; CCore.prototype.asc_putVersion = function (v) { this.version = v; }; CCore.prototype.setProps = function (oProps) { AscCommon.History.Add(new CChangesCorePr(this, this, oProps, null)); this.category = oProps.category; this.contentStatus = oProps.contentStatus; this.created = oProps.created; this.creator = oProps.creator; this.description = oProps.description; this.identifier = oProps.identifier; this.keywords = oProps.keywords; this.language = oProps.language; this.lastModifiedBy = oProps.lastModifiedBy; this.lastPrinted = oProps.lastPrinted; this.modified = oProps.modified; this.revision = oProps.revision; this.subject = oProps.subject; this.title = oProps.title; this.version = oProps.version; }; CCore.prototype.setCategory = function (sCategory) { const coreCopy = this.copy(); coreCopy.asc_putCategory(sCategory); this.setProps(coreCopy); }; CCore.prototype.setContentStatus = function (sContentStatus) { const coreCopy = this.copy(); coreCopy.asc_putContentStatus(sContentStatus); this.setProps(coreCopy); }; CCore.prototype.setCreated = function (oCreatedDate) { if (oCreatedDate instanceof Date && !isNaN(oCreatedDate)) { const coreCopy = this.copy(); coreCopy.asc_putCreated(oCreatedDate); this.setProps(coreCopy); } }; CCore.prototype.setCreator = function (sCreator) { const coreCopy = this.copy(); coreCopy.asc_putCreator(sCreator); this.setProps(coreCopy); }; CCore.prototype.setDescription = function (sDescription) { const coreCopy = this.copy(); coreCopy.asc_putDescription(sDescription); this.setProps(coreCopy); }; CCore.prototype.setIdentifier = function (sIdentifier) { const coreCopy = this.copy(); coreCopy.asc_putIdentifier(sIdentifier); this.setProps(coreCopy); }; CCore.prototype.setKeywords = function (sKeywords) { const coreCopy = this.copy(); coreCopy.asc_putKeywords(sKeywords); this.setProps(coreCopy); }; CCore.prototype.setLanguage = function (sLanguage) { const coreCopy = this.copy(); coreCopy.asc_putLanguage(sLanguage); this.setProps(coreCopy); }; CCore.prototype.setLastModifiedBy = function (sLastModifiedBy) { const coreCopy = this.copy(); coreCopy.asc_putLastModifiedBy(sLastModifiedBy); this.setProps(coreCopy); }; CCore.prototype.setLastPrinted = function (oLastPrintedDate) { if (oLastPrintedDate instanceof Date && !isNaN(oLastPrintedDate)) { const coreCopy = this.copy(); coreCopy.asc_putLastPrinted(oLastPrintedDate); this.setProps(coreCopy); } }; CCore.prototype.setModified = function (oModifiedDate) { if (oModifiedDate instanceof Date && !isNaN(oModifiedDate)) { const coreCopy = this.copy(); coreCopy.asc_putModified(oModifiedDate); this.setProps(coreCopy); } }; CCore.prototype.setRevision = function (sRevision) { const coreCopy = this.copy(); coreCopy.asc_putRevision(sRevision); this.setProps(coreCopy); }; CCore.prototype.setSubject = function (sSubject) { const coreCopy = this.copy(); coreCopy.asc_putSubject(sSubject); this.setProps(coreCopy); }; CCore.prototype.setTitle = function (sTitle) { const coreCopy = this.copy(); coreCopy.asc_putTitle(sTitle); this.setProps(coreCopy); }; CCore.prototype.setVersion = function (sVersion) { const coreCopy = this.copy(); coreCopy.asc_putVersion(sVersion); this.setProps(coreCopy); }; CCore.prototype.Refresh_RecalcData = function () { }; CCore.prototype.Refresh_RecalcData2 = function () { }; CCore.prototype.copy = function () { return AscFormat.ExecuteNoHistory(function () { var oCopy = new CCore(); oCopy.category = this.category; oCopy.contentStatus = this.contentStatus; oCopy.created = this.created; oCopy.creator = this.creator; oCopy.description = this.description; oCopy.identifier = this.identifier; oCopy.keywords = this.keywords; oCopy.language = this.language; oCopy.lastModifiedBy = this.lastModifiedBy; oCopy.lastPrinted = this.lastPrinted; oCopy.modified = this.modified; oCopy.revision = this.revision; oCopy.subject = this.subject; oCopy.title = this.title; oCopy.version = this.version; return oCopy; }, this, []); }; CCore.prototype.createDefaultPresentationEditor = function() { this.lastModifiedBy = ""; }; let DEFAULT_CREATOR = "CREATOR"; let DEFAULT_LAST_MODIFIED_BY = "CREATOR"; CCore.prototype.setRequiredDefaultsPresentationEditor = function() { if(!this.creator) { this.creator = DEFAULT_CREATOR; } if(!this.lastModifiedBy) { this.lastModifiedBy = DEFAULT_LAST_MODIFIED_BY; } }; window['AscCommon'].CCore = CCore; prot = CCore.prototype; prot["asc_getTitle"] = prot.asc_getTitle; prot["asc_getCreator"] = prot.asc_getCreator; prot["asc_getLastModifiedBy"] = prot.asc_getLastModifiedBy; prot["asc_getRevision"] = prot.asc_getRevision; prot["asc_getCreated"] = prot.asc_getCreated; prot["asc_getModified"] = prot.asc_getModified; prot["asc_getCategory"] = prot.asc_getCategory; prot["asc_getContentStatus"] = prot.asc_getContentStatus; prot["asc_getDescription"] = prot.asc_getDescription; prot["asc_getIdentifier"] = prot.asc_getIdentifier; prot["asc_getKeywords"] = prot.asc_getKeywords; prot["asc_getLanguage"] = prot.asc_getLanguage; prot["asc_getLastPrinted"] = prot.asc_getLastPrinted; prot["asc_getSubject"] = prot.asc_getSubject; prot["asc_getVersion"] = prot.asc_getVersion; prot["asc_putTitle"] = prot.asc_putTitle; prot["asc_putCreator"] = prot.asc_putCreator; prot["asc_putLastModifiedBy"] = prot.asc_putLastModifiedBy; prot["asc_putRevision"] = prot.asc_putRevision; prot["asc_putCreated"] = prot.asc_putCreated; prot["asc_putModified"] = prot.asc_putModified; prot["asc_putCategory"] = prot.asc_putCategory; prot["asc_putContentStatus"] = prot.asc_putContentStatus; prot["asc_putDescription"] = prot.asc_putDescription; prot["asc_putIdentifier"] = prot.asc_putIdentifier; prot["asc_putKeywords"] = prot.asc_putKeywords; prot["asc_putLanguage"] = prot.asc_putLanguage; prot["asc_putLastPrinted"] = prot.asc_putLastPrinted; prot["asc_putSubject"] = prot.asc_putSubject; prot["asc_putVersion"] = prot.asc_putVersion; prot["setCategory"] = prot.setCategory; prot["setContentStatus"] = prot.setContentStatus; prot["setCreated"] = prot.setCreated; prot["setCreator"] = prot.setCreator; prot["setDescription"] = prot.setDescription; prot["setIdentifier"] = prot.setIdentifier; prot["setKeywords"] = prot.setKeywords; prot["setLanguage"] = prot.setLanguage; prot["setLastModifiedBy"] = prot.setLastModifiedBy; prot["setLastPrinted"] = prot.setLastPrinted; prot["setModified"] = prot.setModified; prot["setRevision"] = prot.setRevision; prot["setSubject"] = prot.setSubject; prot["setTitle"] = prot.setTitle; prot["setVersion"] = prot.setVersion; function PartTitle() { CBaseNoIdObject.call(this); this.title = null; } InitClass(PartTitle, CBaseNoIdObject, 0); function CApp() { CBaseNoIdObject.call(this); this.Template = null; this.TotalTime = null; this.Words = null; this.Application = null; this.PresentationFormat = null; this.Paragraphs = null; this.Slides = null; this.Notes = null; this.HiddenSlides = null; this.MMClips = null; this.ScaleCrop = null; this.HeadingPairs = []; this.TitlesOfParts = []; this.Company = null; this.LinksUpToDate = null; this.SharedDoc = null; this.HyperlinksChanged = null; this.AppVersion = null; this.Characters = null; this.CharactersWithSpaces = null; this.DocSecurity = null; this.HyperlinkBase = null; this.Lines = null; this.Manager = null; this.Pages = null; } InitClass(CApp, CBaseNoIdObject, 0); CApp.prototype.getAppName = function() { return AscCommon.g_cCompanyName + "/" + AscCommon.g_cProductVersion; }; CApp.prototype.setRequiredDefaults = function() { this.Application = this.getAppName(); }; CApp.prototype.merge = function(oOtherApp) { oOtherApp.Template !== null && (this.Template = oOtherApp.Template); oOtherApp.TotalTime !== null && (this.TotalTime = oOtherApp.TotalTime); oOtherApp.Words !== null && (this.Words = oOtherApp.Words); oOtherApp.Application !== null && (this.Application = oOtherApp.Application); oOtherApp.PresentationFormat !== null && (this.PresentationFormat = oOtherApp.PresentationFormat); oOtherApp.Paragraphs !== null && (this.Paragraphs = oOtherApp.Paragraphs); //oOtherApp.Slides !== null && (this.Slides = oOtherApp.Slides); //oOtherApp.Notes !== null && (this.Notes = oOtherApp.Notes); oOtherApp.HiddenSlides !== null && (this.HiddenSlides = oOtherApp.HiddenSlides); oOtherApp.MMClips !== null && (this.MMClips = oOtherApp.MMClips); oOtherApp.ScaleCrop !== null && (this.ScaleCrop = oOtherApp.ScaleCrop); oOtherApp.Company !== null && (this.Company = oOtherApp.Company); oOtherApp.LinksUpToDate !== null && (this.LinksUpToDate = oOtherApp.LinksUpToDate); oOtherApp.SharedDoc !== null && (this.SharedDoc = oOtherApp.SharedDoc); oOtherApp.HyperlinksChanged !== null && (this.HyperlinksChanged = oOtherApp.HyperlinksChanged); oOtherApp.AppVersion !== null && (this.AppVersion = oOtherApp.AppVersion); oOtherApp.Characters !== null && (this.Characters = oOtherApp.Characters); oOtherApp.CharactersWithSpaces !== null && (this.CharactersWithSpaces = oOtherApp.CharactersWithSpaces); oOtherApp.DocSecurity !== null && (this.DocSecurity = oOtherApp.DocSecurity); oOtherApp.HyperlinkBase !== null && (this.HyperlinkBase = oOtherApp.HyperlinkBase); oOtherApp.Lines !== null && (this.Lines = oOtherApp.Lines); oOtherApp.Manager !== null && (this.Manager = oOtherApp.Manager); oOtherApp.Pages !== null && (this.Pages = oOtherApp.Pages); }; CApp.prototype.createDefaultPresentationEditor = function(nCountSlides, nCountThemes) { this.TotalTime = 0; this.Words = 0; this.setRequiredDefaults(); this.PresentationFormat = "On-screen Show (4:3)"; this.Paragraphs = 0; this.Slides = nCountSlides; this.Notes = nCountSlides; this.HiddenSlides = 0; this.MMClips = 2; this.ScaleCrop = false; this.HeadingPairs.push(new CVariant()); this.HeadingPairs[0].type = c_oVariantTypes.vtLpstr; this.HeadingPairs[0].strContent = "Theme"; this.HeadingPairs.push(new CVariant()); this.HeadingPairs[1].type = c_oVariantTypes.vtI4; this.HeadingPairs[1].iContent = nCountThemes; this.HeadingPairs.push(new CVariant()); this.HeadingPairs[2].type = c_oVariantTypes.vtLpstr; this.HeadingPairs[2].strContent = "Slide Titles"; this.HeadingPairs.push(new CVariant()); this.HeadingPairs[3].type = c_oVariantTypes.vtI4; this.HeadingPairs[3].iContent = nCountSlides; for (let i = 0; i < nCountThemes; ++i) { let s = "Theme " + ( i + 1); this.TitlesOfParts.push(new PartTitle()); this.TitlesOfParts[i].title = s; } for (let i = 0; i < nCountSlides; ++i) { let s = "Slide " + (i + 1); this.TitlesOfParts.push( new PartTitle()); this.TitlesOfParts[nCountThemes + i].title = s; } this.LinksUpToDate = false; this.SharedDoc = false; this.HyperlinksChanged = false; }; CApp.prototype.fromStream = function (s) { var _type = s.GetUChar(); var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.Template = s.GetString2(); break; } case 1: { this.Application = s.GetString2(); break; } case 2: { this.PresentationFormat = s.GetString2(); break; } case 3: { this.Company = s.GetString2(); break; } case 4: { this.AppVersion = s.GetString2(); break; } case 5: { this.TotalTime = s.GetLong(); break; } case 6: { this.Words = s.GetLong(); break; } case 7: { this.Paragraphs = s.GetLong(); break; } case 8: { this.Slides = s.GetLong(); break; } case 9: { this.Notes = s.GetLong(); break; } case 10: { this.HiddenSlides = s.GetLong(); break; } case 11: { this.MMClips = s.GetLong(); break; } case 12: { this.ScaleCrop = s.GetBool(); break; } case 13: { this.LinksUpToDate = s.GetBool(); break; } case 14: { this.SharedDoc = s.GetBool(); break; } case 15: { this.HyperlinksChanged = s.GetBool(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { var _end_rec2 = s.cur + s.GetLong() + 4; s.Skip2(1); // start attributes while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 16: { this.Characters = s.GetLong(); break; } case 17: { this.CharactersWithSpaces = s.GetLong(); break; } case 18: { this.DocSecurity = s.GetLong(); break; } case 19: { this.HyperlinkBase = s.GetString2(); break; } case 20: { this.Lines = s.GetLong(); break; } case 21: { this.Manager = s.GetString2(); break; } case 22: { this.Pages = s.GetLong(); break; } default: return; } } s.Seek2(_end_rec2); break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CApp.prototype.toStream = function (s) { s.StartRecord(AscCommon.c_oMainTables.App); s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteString2(0, this.Template); // just in case // s._WriteString2(1, this.Application); s._WriteString2(2, this.PresentationFormat); s._WriteString2(3, this.Company); // just in case // s._WriteString2(4, this.AppVersion); //we don't count these stats // s._WriteInt2(5, this.TotalTime); // s._WriteInt2(6, this.Words); // s._WriteInt2(7, this.Paragraphs); // s._WriteInt2(8, this.Slides); // s._WriteInt2(9, this.Notes); // s._WriteInt2(10, this.HiddenSlides); // s._WriteInt2(11, this.MMClips); s._WriteBool2(12, this.ScaleCrop); s._WriteBool2(13, this.LinksUpToDate); s._WriteBool2(14, this.SharedDoc); s._WriteBool2(15, this.HyperlinksChanged); s.WriteUChar(g_nodeAttributeEnd); s.StartRecord(0); s.WriteUChar(AscCommon.g_nodeAttributeStart); // s._WriteInt2(16, this.Characters); // s._WriteInt2(17, this.CharactersWithSpaces); s._WriteInt2(18, this.DocSecurity); s._WriteString2(19, this.HyperlinkBase); // s._WriteInt2(20, this.Lines); s._WriteString2(21, this.Manager); // s._WriteInt2(22, this.Pages); s.WriteUChar(g_nodeAttributeEnd); s.EndRecord(); s.EndRecord(); }; CApp.prototype.asc_getTemplate = function () { return this.Template; }; CApp.prototype.asc_getTotalTime = function () { return this.TotalTime; }; CApp.prototype.asc_getWords = function () { return this.Words; }; CApp.prototype.asc_getApplication = function () { return this.Application; }; CApp.prototype.asc_getPresentationFormat = function () { return this.PresentationFormat; }; CApp.prototype.asc_getParagraphs = function () { return this.Paragraphs; }; CApp.prototype.asc_getSlides = function () { return this.Slides; }; CApp.prototype.asc_getNotes = function () { return this.Notes; }; CApp.prototype.asc_getHiddenSlides = function () { return this.HiddenSlides; }; CApp.prototype.asc_getMMClips = function () { return this.MMClips; }; CApp.prototype.asc_getScaleCrop = function () { return this.ScaleCrop; }; CApp.prototype.asc_getCompany = function () { return this.Company; }; CApp.prototype.asc_getLinksUpToDate = function () { return this.LinksUpToDate; }; CApp.prototype.asc_getSharedDoc = function () { return this.SharedDoc; }; CApp.prototype.asc_getHyperlinksChanged = function () { return this.HyperlinksChanged; }; CApp.prototype.asc_getAppVersion = function () { return this.AppVersion; }; CApp.prototype.asc_getCharacters = function () { return this.Characters; }; CApp.prototype.asc_getCharactersWithSpaces = function () { return this.CharactersWithSpaces; }; CApp.prototype.asc_getDocSecurity = function () { return this.DocSecurity; }; CApp.prototype.asc_getHyperlinkBase = function () { return this.HyperlinkBase; }; CApp.prototype.asc_getLines = function () { return this.Lines; }; CApp.prototype.asc_getManager = function () { return this.Manager; }; CApp.prototype.asc_getPages = function () { return this.Pages; }; window['AscCommon'].CApp = CApp; prot = CApp.prototype; prot["asc_getTemplate"] = prot.asc_getTemplate; prot["asc_getTotalTime"] = prot.asc_getTotalTime; prot["asc_getWords"] = prot.asc_getWords; prot["asc_getApplication"] = prot.asc_getApplication; prot["asc_getPresentationFormat"] = prot.asc_getPresentationFormat; prot["asc_getParagraphs"] = prot.asc_getParagraphs; prot["asc_getSlides"] = prot.asc_getSlides; prot["asc_getNotes"] = prot.asc_getNotes; prot["asc_getHiddenSlides"] = prot.asc_getHiddenSlides; prot["asc_getMMClips"] = prot.asc_getMMClips; prot["asc_getScaleCrop"] = prot.asc_getScaleCrop; prot["asc_getCompany"] = prot.asc_getCompany; prot["asc_getLinksUpToDate"] = prot.asc_getLinksUpToDate; prot["asc_getSharedDoc"] = prot.asc_getSharedDoc; prot["asc_getHyperlinksChanged"] = prot.asc_getHyperlinksChanged; prot["asc_getAppVersion"] = prot.asc_getAppVersion; prot["asc_getCharacters"] = prot.asc_getCharacters; prot["asc_getCharactersWithSpaces"] = prot.asc_getCharactersWithSpaces; prot["asc_getDocSecurity"] = prot.asc_getDocSecurity; prot["asc_getHyperlinkBase"] = prot.asc_getHyperlinkBase; prot["asc_getLines"] = prot.asc_getLines; prot["asc_getManager"] = prot.asc_getManager; prot["asc_getPages"] = prot.asc_getPages; function CCustomProperties() { CBaseObject.call(this); this.properties = []; this.Lock = new AscCommon.CLock(); } InitClass(CCustomProperties, CBaseObject, AscDFH.historyitem_type_CustomProperties); CCustomProperties.prototype.fromStream = function (s) { var _type = s.GetUChar(); var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { s.Skip2(4); var _c = s.GetULong(); for (var i = 0; i < _c; ++i) { s.Skip2(1); // type var tmp = new CCustomProperty(); tmp.fromStream(s); this.properties.push(tmp); } break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CCustomProperties.prototype.toStream = function (s) { s.StartRecord(AscCommon.c_oMainTables.CustomProperties); s.WriteUChar(AscCommon.g_nodeAttributeStart); s.WriteUChar(g_nodeAttributeEnd); this.fillNewPid(); s.WriteRecordArray4(0, 0, this.properties); s.EndRecord(); }; CCustomProperties.prototype.fillNewPid = function (s) { var index = 2; this.properties.forEach(function (property) { property.pid = index++; }); }; CCustomProperties.prototype.add = function (name, variant, opt_linkTarget) { this.addProperty(this.properties.length, this.createPropertyWithVariant(name, variant, opt_linkTarget)); }; CCustomProperties.prototype.createPropertyWithVariant = function (name, variant, opt_linkTarget) { var newProperty = new CCustomProperty(); newProperty.fmtid = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}"; newProperty.pid = null; newProperty.name = name; newProperty.linkTarget = opt_linkTarget || null; newProperty.content = variant; return newProperty; }; CCustomProperties.prototype.createProperty = function (name, type, value, opt_linkTarget) { let oVariant = new CVariant(); oVariant.setType(type); oVariant.setValue(value); return this.createPropertyWithVariant(name, oVariant, opt_linkTarget); }; CCustomProperties.prototype.getAllProperties = function () { return [].concat(this.properties); }; CCustomProperties.prototype.addProperty = function (idx, pr) { let nInsertIdx = Math.min(this.properties.length, Math.max(0, idx)); AscCommon.History.Add(new CChangesDrawingsContentNoId(this, AscDFH.historyitem_CustomPropertiesAddProperty, nInsertIdx, [pr], true)); this.properties.splice(nInsertIdx, 0, pr); }; CCustomProperties.prototype.removeProperty = function (idx) { if(idx < 0 || idx >= this.properties.length) return; let aDeleteElems = this.properties.splice(idx, 1); AscCommon.History.Add(new CChangesDrawingsContentNoId(this, AscDFH.historyitem_CustomPropertiesAddProperty, idx, aDeleteElems, false)); }; CCustomProperties.prototype.modifyProperty = function (idx, pr) { if(idx < 0 || idx >= this.properties.length) return; this.removeProperty(idx); this.addProperty(idx, pr); }; CCustomProperties.prototype.AddProperty = function (name, type, value) { for(let nIdx = 0; nIdx < this.properties.length; ++nIdx) { let oPr = this.properties[nIdx]; if(oPr.name === name) { this.ModifyProperty(nIdx, name, type, value); return; } } this.addProperty(this.properties.length, this.createProperty(name, type, value, null)); }; CCustomProperties.prototype.ModifyProperty = function (idx, name, type, value) { this.modifyProperty(idx, this.createProperty(name, type, value, null)); }; CCustomProperties.prototype.RemoveProperty = function (idx) { return this.removeProperty(idx); }; CCustomProperties.prototype.hasProperties = function () { return this.properties.length > 0; }; window['AscCommon'].CCustomProperties = CCustomProperties; prot = CCustomProperties.prototype; prot["add"] = prot.add; function CCustomProperty() { CBaseNoIdObject.call(this); this.fmtid = null; this.pid = null; this.name = null; this.linkTarget = null; this.content = null; } InitClass(CCustomProperty, CBaseNoIdObject, 0); CCustomProperty.prototype.fromStream = function (s) { var _type; var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.fmtid = s.GetString2(); break; } case 1: { this.pid = s.GetLong(); break; } case 2: { this.name = s.GetString2(); break; } case 3: { this.linkTarget = s.GetString2(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { this.content = new CVariant(this); this.content.fromStream(s); break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CCustomProperty.prototype.toStream = function (s) { s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteString2(0, this.fmtid); s._WriteInt2(1, this.pid); s._WriteString2(2, this.name); s._WriteString2(3, this.linkTarget); s.WriteUChar(g_nodeAttributeEnd); s.WriteRecord4(0, this.content); }; CCustomProperty.prototype.setContent = function (v) { this.content = v; }; CCustomProperty.prototype.asc_getName = function() { return this.name; }; CCustomProperty.prototype.asc_getType = function() { if(this.content) { return this.content.getVariantType(); } return c_oVariantTypes.vtEmpty; }; CCustomProperty.prototype.asc_getValue = function() { if(this.content) { return this.content.getValue(); } return null; }; CCustomProperty.prototype.Write_ToBinary = function(w) { let oStream = AscCommon.pptx_content_writer.BinaryFileWriter; var old = new AscCommon.CMemory(true); oStream.ExportToMemory(old); oStream.ImportFromMemory(w); oStream.WriteRecord4(0, this); oStream.ExportToMemory(w); oStream.ImportFromMemory(old); }; CCustomProperty.prototype.Read_FromBinary = function(r) { let fileStream = r.ToFileStream(); fileStream.GetUChar(); this.fromStream(fileStream); r.FromFileStream(fileStream); }; CCustomProperty.prototype["asc_getName"] = CCustomProperty.prototype.asc_getName; CCustomProperty.prototype["asc_getType"] = CCustomProperty.prototype.asc_getType; CCustomProperty.prototype["asc_getValue"] = CCustomProperty.prototype.asc_getValue; function CVariantVector() { CBaseNoIdObject.call(this); this.baseType = null; this.size = null; this.variants = []; } InitClass(CVariantVector, CBaseNoIdObject, 0); CVariantVector.prototype.fromStream = function (s) { var _type; var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.baseType = s.GetUChar(); break; } case 1: { this.size = s.GetLong(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { s.Skip2(4); var _c = s.GetULong(); for (var i = 0; i < _c; ++i) { s.Skip2(1); // type var tmp = new CVariant(this); tmp.fromStream(s); this.variants.push(tmp); } break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CVariantVector.prototype.toStream = function (s) { s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteUChar2(0, this.baseType); s._WriteInt2(1, this.size); s.WriteUChar(g_nodeAttributeEnd); s.WriteRecordArray4(0, 0, this.variants); }; CVariantVector.prototype.getVariantType = function () { return AscFormat.isRealNumber(this.baseType) ? this.baseType : c_oVariantTypes.vtEmpty; }; function CVariantArray() { CBaseNoIdObject.call(this); this.baseType = null; this.lBounds = null; this.uBounds = null; this.variants = []; } InitClass(CVariantArray, CBaseNoIdObject, 0); CVariantArray.prototype.fromStream = function (s) { var _type; var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.baseType = s.GetUChar(); break; } case 1: { this.lBounds = s.GetString2(); break; } case 2: { this.uBounds = s.GetString2(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { s.Skip2(4); var _c = s.GetULong(); for (var i = 0; i < _c; ++i) { s.Skip2(1); // type var tmp = new CVariant(); tmp.fromStream(s); this.variants.push(tmp); } break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CVariantArray.prototype.toStream = function (s) { s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteUChar2(0, this.baseType); s._WriteString2(1, this.lBounds); s._WriteString2(2, this.uBounds); s.WriteUChar(g_nodeAttributeEnd); s.WriteRecordArray4(0, 0, this.variants); }; CVariantArray.prototype.getVariantType = function () { return AscFormat.isRealNumber(this.baseType) ? this.baseType : c_oVariantTypes.vtEmpty; }; function CVariantVStream() { CBaseNoIdObject.call(this); this.version = null; this.strContent = null; } InitClass(CVariantVStream, CBaseNoIdObject, 0); CVariantVStream.prototype.fromStream = function (s) { var _type; var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.version = s.GetString2(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { this.strContent = s.GetString2(); break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CVariantVStream.prototype.toStream = function (s) { s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteString2(0, this.version); s.WriteUChar(g_nodeAttributeEnd); s._WriteString2(0, this.strContent); }; function CVariant(parent) { this.type = null; this.strContent = null; this.iContent = null; this.uContent = null; this.dContent = null; this.bContent = null; this.variant = null; this.vector = null; this.array = null; this.vStream = null; this.parent = parent; } CVariant.prototype.fromStream = function (s) { var _type; var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; var _at; // attributes var _sa = s.GetUChar(); while (true) { _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.type = s.GetUChar(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { this.strContent = s.GetString2(); break; } case 1: { this.iContent = s.GetLong(); break; } case 2: { this.iContent = s.GetULong(); break; } case 3: { this.dContent = s.GetDouble(); break; } case 4: { this.bContent = s.GetBool(); break; } case 5: { this.variant = new CVariant(this); this.variant.fromStream(s); break; } case 6: { this.vector = new CVariantVector(); this.vector.fromStream(s); break; } case 7: { this.array = new CVariantArray(); this.array.fromStream(s); break; } case 8: { this.vStream = new CVariantVStream(); this.vStream.fromStream(s); break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_pos); }; CVariant.prototype.toStream = function (s) { s.WriteUChar(AscCommon.g_nodeAttributeStart); s._WriteUChar2(0, this.type); s.WriteUChar(g_nodeAttributeEnd); s._WriteString2(0, this.strContent); s._WriteInt2(1, this.iContent); s._WriteUInt2(2, this.uContent); s._WriteDoubleReal2(3, this.dContent); s._WriteBool2(4, this.bContent); s.WriteRecord4(5, this.variant); s.WriteRecord4(6, this.vector); s.WriteRecord4(7, this.array); s.WriteRecord4(8, this.vStream); }; CVariant.prototype.setParent = function(pr) { this.parent = pr; }; CVariant.prototype.setType = function(pr) { this.type = pr; }; CVariant.prototype.setStrContent = function(pr) { this.strContent = pr; }; CVariant.prototype.setIContent = function(pr) { this.iContent = pr; }; CVariant.prototype.setUContent = function(pr) { this.uContent = pr; }; CVariant.prototype.setDContent = function(pr) { this.dContent = pr; }; CVariant.prototype.setBContent = function(pr) { this.bContent = pr; }; CVariant.prototype.setVariant = function(pr) { this.variant = pr; }; CVariant.prototype.setVector = function(pr) { this.vector = pr; }; CVariant.prototype.setArray = function(pr) { this.array = pr; }; CVariant.prototype.setVStream = function(pr) { this.vStream = pr; }; CVariant.prototype.setText = function (val) { this.setType(c_oVariantTypes.vtLpwstr); this.setStrContent(val); }; CVariant.prototype.setNumber = function (val) { this.setType(c_oVariantTypes.vtI4); this.setIContent(val); }; CVariant.prototype.setDate = function (val) { this.setDate(c_oVariantTypes.vtFiletime); this.setStrContent(val.toISOString().slice(0, 19) + 'Z'); }; CVariant.prototype.setBool = function (val) { this.setType(c_oVariantTypes.vtBool); this.setBContent(val); }; CVariant.prototype.typeStrToEnum = function (name) { switch (name) { case "vector": { return c_oVariantTypes.vtVector; break; } case "array": { return c_oVariantTypes.vtArray; break; } case "blob": { return c_oVariantTypes.vtBlob; break; } case "oblob": { return c_oVariantTypes.vtOBlob; break; } case "empty": { return c_oVariantTypes.vtEmpty; break; } case "null": { return c_oVariantTypes.vtNull; break; } case "i1": { return c_oVariantTypes.vtI1; break; } case "i2": { return c_oVariantTypes.vtI2; break; } case "i4": { return c_oVariantTypes.vtI4; break; } case "i8": { return c_oVariantTypes.vtI8; break; } case "int": { return c_oVariantTypes.vtInt; break; } case "ui1": { return c_oVariantTypes.vtUi1; break; } case "ui2": { return c_oVariantTypes.vtUi2; break; } case "ui4": { return c_oVariantTypes.vtUi4; break; } case "ui8": { return c_oVariantTypes.vtUi8; break; } case "uint": { return c_oVariantTypes.vtUint; break; } case "r4": { return c_oVariantTypes.vtR4; break; } case "r8": { return c_oVariantTypes.vtR8; break; } case "decimal": { return c_oVariantTypes.vtDecimal; break; } case "lpstr": { return c_oVariantTypes.vtLpstr; break; } case "lpwstr": { return c_oVariantTypes.vtLpwstr; break; } case "bstr": { return c_oVariantTypes.vtBstr; break; } case "date": { return c_oVariantTypes.vtDate; break; } case "filetime": { return c_oVariantTypes.vtFiletime; break; } case "bool": { return c_oVariantTypes.vtBool; break; } case "cy": { return c_oVariantTypes.vtCy; break; } case "error": { return c_oVariantTypes.vtError; break; } case "stream": { return c_oVariantTypes.vtStream; break; } case "ostream": { return c_oVariantTypes.vtOStream; break; } case "storage": { return c_oVariantTypes.vtStorage; break; } case "ostorage": { return c_oVariantTypes.vtOStorage; break; } case "vstream": { return c_oVariantTypes.vtVStream; break; } case "clsid": { return c_oVariantTypes.vtClsid; break; } } return null; }; CVariant.prototype.getStringByType = function (eType) { if (c_oVariantTypes.vtEmpty === eType) return "empty"; else if (c_oVariantTypes.vtNull === eType) return "null"; else if (c_oVariantTypes.vtVariant === eType) return "variant"; else if (c_oVariantTypes.vtVector === eType) return "vector"; else if (c_oVariantTypes.vtArray === eType) return "array"; else if (c_oVariantTypes.vtVStream === eType) return "vstream"; else if (c_oVariantTypes.vtBlob === eType) return "blob"; else if (c_oVariantTypes.vtOBlob === eType) return "oblob"; else if (c_oVariantTypes.vtI1 === eType) return "i1"; else if (c_oVariantTypes.vtI2 === eType) return "i2"; else if (c_oVariantTypes.vtI4 === eType) return "i4"; else if (c_oVariantTypes.vtI8 === eType) return "i8"; else if (c_oVariantTypes.vtInt === eType) return "int"; else if (c_oVariantTypes.vtUi1 === eType) return "ui1"; else if (c_oVariantTypes.vtUi2 === eType) return "ui2"; else if (c_oVariantTypes.vtUi4 === eType) return "ui4"; else if (c_oVariantTypes.vtUi8 === eType) return "ui8"; else if (c_oVariantTypes.vtUint === eType) return "uint"; else if (c_oVariantTypes.vtR4 === eType) return "r4"; else if (c_oVariantTypes.vtR8 === eType) return "r8"; else if (c_oVariantTypes.vtDecimal === eType) return "decimal"; else if (c_oVariantTypes.vtLpstr === eType) return "lpstr"; else if (c_oVariantTypes.vtLpwstr === eType) return "lpwstr"; else if (c_oVariantTypes.vtBstr === eType) return "bstr"; else if (c_oVariantTypes.vtDate === eType) return "date"; else if (c_oVariantTypes.vtFiletime === eType) return "filetime"; else if (c_oVariantTypes.vtBool === eType) return "bool"; else if (c_oVariantTypes.vtCy === eType) return "cy"; else if (c_oVariantTypes.vtError === eType) return "error"; else if (c_oVariantTypes.vtStream === eType) return "stream"; else if (c_oVariantTypes.vtOStream === eType) return "ostream"; else if (c_oVariantTypes.vtStorage === eType) return "storage"; else if (c_oVariantTypes.vtOStorage === eType) return "ostorage"; else if (c_oVariantTypes.vtClsid === eType) return "clsid"; return ""; }; CVariant.prototype.getVariantType = function () { return AscFormat.isRealNumber(this.type) ? this.type : c_oVariantTypes.vtEmpty; }; CVariant.prototype.getValue = function () { switch (this.type) { case c_oVariantTypes.vtClsid: case c_oVariantTypes.vtOStorage: case c_oVariantTypes.vtStorage: case c_oVariantTypes.vtOStream: case c_oVariantTypes.vtStream: case c_oVariantTypes.vtError: case c_oVariantTypes.vtCy: case c_oVariantTypes.vtBstr: case c_oVariantTypes.vtDecimal: case c_oVariantTypes.vtEmpty: case c_oVariantTypes.vtVariant: case c_oVariantTypes.vtVector: case c_oVariantTypes.vtArray: case c_oVariantTypes.vtVStream: case c_oVariantTypes.vtBlob: case c_oVariantTypes.vtOBlob: case c_oVariantTypes.vtNull: { return null; } case c_oVariantTypes.vtI2: case c_oVariantTypes.vtI4: case c_oVariantTypes.vtI8: case c_oVariantTypes.vtInt: case c_oVariantTypes.vtI1: { return this.iContent; } case c_oVariantTypes.vtUint: case c_oVariantTypes.vtUi8: case c_oVariantTypes.vtUi4: case c_oVariantTypes.vtUi2: case c_oVariantTypes.vtUi1: { return this.uContent; } case c_oVariantTypes.vtR8: case c_oVariantTypes.vtR4: { return this.dContent; } case c_oVariantTypes.vtLpwstr: case c_oVariantTypes.vtLpstr: { return this.strContent; } case c_oVariantTypes.vtDate: case c_oVariantTypes.vtFiletime: { return new Date(this.strContent); } case c_oVariantTypes.vtBool: { return this.bContent; } } }; CVariant.prototype.setValue = function(v) { switch (this.type) { case c_oVariantTypes.vtClsid: case c_oVariantTypes.vtOStorage: case c_oVariantTypes.vtStorage: case c_oVariantTypes.vtOStream: case c_oVariantTypes.vtStream: case c_oVariantTypes.vtError: case c_oVariantTypes.vtCy: case c_oVariantTypes.vtBstr: case c_oVariantTypes.vtDecimal: case c_oVariantTypes.vtEmpty: case c_oVariantTypes.vtVariant: case c_oVariantTypes.vtVector: case c_oVariantTypes.vtArray: case c_oVariantTypes.vtVStream: case c_oVariantTypes.vtBlob: case c_oVariantTypes.vtOBlob: case c_oVariantTypes.vtNull: { break; } case c_oVariantTypes.vtI2: case c_oVariantTypes.vtI4: case c_oVariantTypes.vtI8: case c_oVariantTypes.vtInt: case c_oVariantTypes.vtI1: { this.setIContent(v); break; } case c_oVariantTypes.vtUint: case c_oVariantTypes.vtUi8: case c_oVariantTypes.vtUi4: case c_oVariantTypes.vtUi2: case c_oVariantTypes.vtUi1: { this.setUContent(v); break; } case c_oVariantTypes.vtR8: case c_oVariantTypes.vtR4: { this.setDContent(v); break; } case c_oVariantTypes.vtLpwstr: case c_oVariantTypes.vtLpstr: { this.setStrContent(v); break; } case c_oVariantTypes.vtDate: case c_oVariantTypes.vtFiletime: { this.setStrContent(v.toISOString().slice(0, 19) + 'Z'); break; } case c_oVariantTypes.vtBool: { this.setBContent(v); break; } } }; window['AscCommon'].CVariant = CVariant; prot = CVariant.prototype; prot["setText"] = prot.setText; prot["setNumber"] = prot.setNumber; prot["setDate"] = prot.setDate; prot["setBool"] = prot.setBool; var c_oVariantTypes = { vtEmpty: 0, vtNull: 1, vtVariant: 2, vtVector: 3, vtArray: 4, vtVStream: 5, vtBlob: 6, vtOBlob: 7, vtI1: 8, vtI2: 9, vtI4: 10, vtI8: 11, vtInt: 12, vtUi1: 13, vtUi2: 14, vtUi4: 15, vtUi8: 16, vtUint: 17, vtR4: 18, vtR8: 19, vtDecimal: 20, vtLpstr: 21, vtLpwstr: 22, vtBstr: 23, vtDate: 24, vtFiletime: 25, vtBool: 26, vtCy: 27, vtError: 28, vtStream: 29, vtOStream: 30, vtStorage: 31, vtOStorage: 32, vtClsid: 33 }; window['AscCommon'].c_oVariantTypes = c_oVariantTypes; window['AscCommon']["c_oVariantTypes"] = c_oVariantTypes; c_oVariantTypes["vtEmpty"] = c_oVariantTypes.vtEmpty; c_oVariantTypes["vtNull"] = c_oVariantTypes.vtNull; c_oVariantTypes["vtVariant"] = c_oVariantTypes.vtVariant; c_oVariantTypes["vtVector"] = c_oVariantTypes.vtVector; c_oVariantTypes["vtArray"] = c_oVariantTypes.vtArray; c_oVariantTypes["vtVStream"] = c_oVariantTypes.vtVStream; c_oVariantTypes["vtBlob"] = c_oVariantTypes.vtBlob; c_oVariantTypes["vtOBlob"] = c_oVariantTypes.vtOBlob; c_oVariantTypes["vtI1"] = c_oVariantTypes.vtI1; c_oVariantTypes["vtI2"] = c_oVariantTypes.vtI2; c_oVariantTypes["vtI4"] = c_oVariantTypes.vtI4; c_oVariantTypes["vtI8"] = c_oVariantTypes.vtI8; c_oVariantTypes["vtInt"] = c_oVariantTypes.vtInt; c_oVariantTypes["vtUi1"] = c_oVariantTypes.vtUi1; c_oVariantTypes["vtUi2"] = c_oVariantTypes.vtUi2; c_oVariantTypes["vtUi4"] = c_oVariantTypes.vtUi4; c_oVariantTypes["vtUi8"] = c_oVariantTypes.vtUi8; c_oVariantTypes["vtUint"] = c_oVariantTypes.vtUint; c_oVariantTypes["vtR4"] = c_oVariantTypes.vtR4; c_oVariantTypes["vtR8"] = c_oVariantTypes.vtR8; c_oVariantTypes["vtDecimal"] = c_oVariantTypes.vtDecimal; c_oVariantTypes["vtLpstr"] = c_oVariantTypes.vtLpstr; c_oVariantTypes["vtLpwstr"] = c_oVariantTypes.vtLpwstr; c_oVariantTypes["vtBstr"] = c_oVariantTypes.vtBstr; c_oVariantTypes["vtDate"] = c_oVariantTypes.vtDate; c_oVariantTypes["vtFiletime"] = c_oVariantTypes.vtFiletime; c_oVariantTypes["vtBool"] = c_oVariantTypes.vtBool; c_oVariantTypes["vtCy"] = c_oVariantTypes.vtCy; c_oVariantTypes["vtError"] = c_oVariantTypes.vtError; c_oVariantTypes["vtStream"] = c_oVariantTypes.vtStream; c_oVariantTypes["vtOStream"] = c_oVariantTypes.vtOStream; c_oVariantTypes["vtStorage"] = c_oVariantTypes.vtStorage; c_oVariantTypes["vtOStorage"] = c_oVariantTypes.vtOStorage; c_oVariantTypes["vtClsid"] = c_oVariantTypes.vtClsid; function CPres() { CBaseNoIdObject.call(this); this.defaultTextStyle = null; this.NotesSz = null; this.attrAutoCompressPictures = null; this.attrBookmarkIdSeed = null; this.attrCompatMode = null; this.attrConformance = null; this.attrEmbedTrueTypeFonts = null; this.attrFirstSlideNum = null; this.attrRemovePersonalInfoOnSave = null; this.attrRtl = null; this.attrSaveSubsetFonts = null; this.attrServerZoom = null; this.attrShowSpecialPlsOnTitleSld = null; this.attrStrictFirstAndLastChars = null; } InitClass(CPres, CBaseNoIdObject, 0); CPres.prototype.readSz = function(s) { const oSldSize = new AscCommonSlide.CSlideSize(); s.Skip2(5); // len + start attributes while (true) { var _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { oSldSize.setCX(s.GetLong()); break; } case 1: { oSldSize.setCY(s.GetLong()); break; } case 2: { oSldSize.setType(s.GetUChar()); break; } default: return; } } return oSldSize; }; CPres.prototype.fromStream = function (s, reader) { var _type = s.GetUChar(); var _len = s.GetULong(); var _start_pos = s.cur; var _end_pos = _len + _start_pos; // attributes var _sa = s.GetUChar(); var oPresentattion = reader.presentation; while (true) { var _at = s.GetUChar(); if (_at === g_nodeAttributeEnd) break; switch (_at) { case 0: { this.attrAutoCompressPictures = s.GetBool(); break; } case 1: { this.attrBookmarkIdSeed = s.GetLong(); break; } case 2: { this.attrCompatMode = s.GetBool(); break; } case 3: { this.attrConformance = s.GetUChar(); break; } case 4: { this.attrEmbedTrueTypeFonts = s.GetBool(); break; } case 5: { this.attrFirstSlideNum = s.GetLong(); break; } case 6: { this.attrRemovePersonalInfoOnSave = s.GetBool(); break; } case 7: { this.attrRtl = s.GetBool(); break; } case 8: { this.attrSaveSubsetFonts = s.GetBool(); break; } case 9: { this.attrServerZoom = s.GetString2(); break; } case 10: { this.attrShowSpecialPlsOnTitleSld = s.GetBool(); break; } case 11: { this.attrStrictFirstAndLastChars = s.GetBool(); break; } default: return; } } while (true) { if (s.cur >= _end_pos) break; _type = s.GetUChar(); switch (_type) { case 0: { this.defaultTextStyle = reader.ReadTextListStyle(); break; } case 1: { s.SkipRecord(); break; } case 2: { s.SkipRecord(); break; } case 3: { let oNotesSize = this.readSz(s); if (oPresentattion.setNotesSz) { oPresentattion.setNotesSz(oNotesSize); } break; } case 4: { s.SkipRecord(); break; } case 5: { let oSldSize = this.readSz(s); if (oPresentattion.setSldSz) { oPresentattion.setSldSz(oSldSize); } break; } case 6: { var _end_rec2 = s.cur + s.GetULong() + 4; while (s.cur < _end_rec2) { var _rec = s.GetUChar(); switch (_rec) { case 0: { s.Skip2(4); // len var lCount = s.GetULong(); for (var i = 0; i < lCount; i++) { s.Skip2(1); var _author = new AscCommon.CCommentAuthor(); var _end_rec3 = s.cur + s.GetLong() + 4; s.Skip2(1); // start attributes while (true) { var _at2 = s.GetUChar(); if (_at2 === g_nodeAttributeEnd) break; switch (_at2) { case 0: _author.Id = s.GetLong(); break; case 1: _author.LastId = s.GetLong(); break; case 2: var _clr_idx = s.GetLong(); break; case 3: _author.Name = s.GetString2(); break; case 4: _author.Initials = s.GetString2(); break; default: break; } } s.Seek2(_end_rec3); oPresentattion.CommentAuthors[_author.Name] = _author; } break; } default: { s.SkipRecord(); break; } } } s.Seek2(_end_rec2); break; } case 8: { oPresentattion.Api.vbaProject = new AscCommon.VbaProject(); oPresentattion.Api.vbaProject.fromStream(s); break; } case 9: { var _length = s.GetULong(); var _end_rec2 = s.cur + _length; oPresentattion.Api.macros.SetData(AscCommon.GetStringUtf8(s, _length)); s.Seek2(_end_rec2); break; } case 10: { reader.ReadComments(oPresentattion.writecomments); break; } default: { s.SkipRecord(); break; } } } if (oPresentattion.Load_Comments) { oPresentattion.Load_Comments(oPresentattion.CommentAuthors); } s.Seek2(_end_pos); }; window['AscCommon'].CPres = CPres; function CClrMapOvr() { CBaseNoIdObject.call(this); this.overrideClrMapping = null; } InitClass(CClrMapOvr, CBaseNoIdObject, 0); function IdEntry(name) { AscFormat.CBaseNoIdObject.call(this); this.name = name; this.id = null; this.rId = null; } InitClass(IdEntry, CBaseNoIdObject, undefined); function CExtP() { this.st = null; this.end = null; } InitClass(CExtP, CBaseNoIdObject, undefined); CExtP.prototype.readAttribute = function (nType, pReader) { switch (nType) { case 0: { // id. embed / link pReader.stream.Skip2(4); break; } case 1: { this.st = pReader.stream.GetDouble(); break; } case 2: { this.end = pReader.stream.GetDouble(); break; } } }; CExtP.prototype.Write_ToBinary = function (w) { writeDouble(w, this.st); writeDouble(w, this.end); }; CExtP.prototype.Read_FromBinary = function (r) { this.st = readDouble(r); this.end = readDouble(r); }; function CreateSchemeUnicolorWithMods(id, aMods) { let oColor = new CUniColor(); oColor.color = new CSchemeColor(); oColor.color.id = id; if (aMods) { for(let nMod = 0; nMod < aMods.length; ++nMod) { let oModObject = aMods[nMod]; let oMod = new CColorMod(oModObject.name, oModObject.val); oColor.addColorMod(oMod); } } return oColor; } // DEFAULT OBJECTS function GenerateDefaultTheme(presentation, opt_fontName) { return ExecuteNoHistory(function () { if (!opt_fontName) { opt_fontName = "Arial"; } var theme = new CTheme(); theme.presentation = presentation; theme.setFontScheme(new FontScheme()); theme.themeElements.fontScheme.setMajorFont(new FontCollection(theme.themeElements.fontScheme)); theme.themeElements.fontScheme.setMinorFont(new FontCollection(theme.themeElements.fontScheme)); theme.themeElements.fontScheme.majorFont.setLatin(opt_fontName); theme.themeElements.fontScheme.minorFont.setLatin(opt_fontName); var scheme = theme.themeElements.clrScheme; scheme.colors[8] = CreateUniColorRGB(0, 0, 0); scheme.colors[12] = CreateUniColorRGB(255, 255, 255); scheme.colors[9] = CreateUniColorRGB(0x1F, 0x49, 0x7D); scheme.colors[13] = CreateUniColorRGB(0xEE, 0xEC, 0xE1); scheme.colors[0] = CreateUniColorRGB(0x4F, 0x81, 0xBD); //CreateUniColorRGB(0xFF, 0x81, 0xBD);// scheme.colors[1] = CreateUniColorRGB(0xC0, 0x50, 0x4D); scheme.colors[2] = CreateUniColorRGB(0x9B, 0xBB, 0x59); scheme.colors[3] = CreateUniColorRGB(0x80, 0x64, 0xA2); scheme.colors[4] = CreateUniColorRGB(0x4B, 0xAC, 0xC6); scheme.colors[5] = CreateUniColorRGB(0xF7, 0x96, 0x46); scheme.colors[11] = CreateUniColorRGB(0x00, 0x00, 0xFF); scheme.colors[10] = CreateUniColorRGB(0x80, 0x00, 0x80); // -------------- fill styles ------------------------- var brush = new CUniFill(); brush.setFill(new CSolidFill()); brush.fill.setColor(new CUniColor()); brush.fill.color.setColor(new CSchemeColor()); brush.fill.color.color.setId(phClr); theme.themeElements.fmtScheme.fillStyleLst.push(brush); brush = new CUniFill(); let oFill = new CGradFill(); oFill.rotateWithShape = true; brush.setFill(oFill); let oLin = new GradLin(); oFill.setLin(oLin); oLin.setAngle(16200000); oLin.setScale(true); let oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(0); let oColor = CreateSchemeUnicolorWithMods(14, [{name: "tint", val: 50000}, {name: "satMod", val: 300000}]); oGs.setColor(oColor); oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(35000); oColor = CreateSchemeUnicolorWithMods(14, [{name: "tint", val: 37000}, {name: "satMod", val: 300000}]); oGs.setColor(oColor); oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(100000); oColor = CreateSchemeUnicolorWithMods(14, [{name: "tint", val: 15000}, {name: "satMod", val: 350000}]); oGs.setColor(oColor); theme.themeElements.fmtScheme.fillStyleLst.push(brush); brush = new CUniFill(); oFill = new CGradFill(); brush.setFill(oFill); oFill.rotateWithShape = true; oLin = new GradLin(); oFill.setLin(oLin); oLin.setAngle(16200000); oLin.setScale(false); oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(0); oColor = CreateSchemeUnicolorWithMods(14, [{name: "shade", val: 51000}, {name: "satMod", val: 130000}]); oGs.setColor(oColor); oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(80000); oColor = CreateSchemeUnicolorWithMods(14, [{name: "shade", val: 93000}, {name: "satMod", val: 130000}]); oGs.setColor(oColor); oGs = new CGs(); oFill.addColor(oGs); oGs.setPos(100000); oColor = CreateSchemeUnicolorWithMods(14, [{name: "shade", val: 94000}, {name: "satMod", val: 135000}]); oGs.setColor(oColor); theme.themeElements.fmtScheme.fillStyleLst.push(brush); // ---------------------------------------------------- // -------------- back styles ------------------------- brush = new CUniFill(); brush.setFill(new CSolidFill()); brush.fill.setColor(new CUniColor()); brush.fill.color.setColor(new CSchemeColor()); brush.fill.color.color.setId(phClr); theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); brush = AscFormat.CreateUniFillByUniColor(AscFormat.CreateUniColorRGB(0, 0, 0)); theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); brush = AscFormat.CreateUniFillByUniColor(AscFormat.CreateUniColorRGB(0, 0, 0)); theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); // ---------------------------------------------------- var pen = new CLn(); pen.setW(9525); pen.setFill(new CUniFill()); pen.Fill.setFill(new CSolidFill()); pen.Fill.fill.setColor(new CUniColor()); pen.Fill.fill.color.setColor(new CSchemeColor()); pen.Fill.fill.color.color.setId(phClr); pen.Fill.fill.color.setMods(new CColorModifiers()); pen.Fill.fill.color.Mods.addMod("shade", 95000); pen.Fill.fill.color.Mods.addMod("satMod", 105000); theme.themeElements.fmtScheme.lnStyleLst.push(pen); pen = new CLn(); pen.setW(25400); pen.setFill(new CUniFill()); pen.Fill.setFill(new CSolidFill()); pen.Fill.fill.setColor(new CUniColor()); pen.Fill.fill.color.setColor(new CSchemeColor()); pen.Fill.fill.color.color.setId(phClr); theme.themeElements.fmtScheme.lnStyleLst.push(pen); pen = new CLn(); pen.setW(38100); pen.setFill(new CUniFill()); pen.Fill.setFill(new CSolidFill()); pen.Fill.fill.setColor(new CUniColor()); pen.Fill.fill.color.setColor(new CSchemeColor()); pen.Fill.fill.color.color.setId(phClr); theme.themeElements.fmtScheme.lnStyleLst.push(pen); theme.extraClrSchemeLst = []; let oEffectStyle; oEffectStyle = new AscFormat.CEffectStyle(); oEffectStyle.checkEffectPr(); theme.themeElements.fmtScheme.effectStyleLst.push(oEffectStyle); oEffectStyle = new AscFormat.CEffectStyle(); oEffectStyle.checkEffectPr(); theme.themeElements.fmtScheme.effectStyleLst.push(oEffectStyle); oEffectStyle = new AscFormat.CEffectStyle(); oEffectStyle.checkEffectPr(); const oOuterShdw = new AscFormat.COuterShdw(); oOuterShdw.algn = AscFormat.RECT_ALIGN_CTR; oOuterShdw.blurRad = 57150; oOuterShdw.dir = 5400000; oOuterShdw.dist = 19050; oOuterShdw.rotWithShape = false; const oEffectColor = AscFormat.CreateUniColorRGB(0, 0, 0); const oColorMod = new AscFormat.CColorMod(); oColorMod.name = "alpha"; oColorMod.val = 63000; oEffectColor.addColorMod(oColorMod); oOuterShdw.color = oEffectColor; oEffectStyle.effectProperties.EffectLst.outerShdw = oOuterShdw; theme.themeElements.fmtScheme.effectStyleLst.push(oEffectStyle); return theme; }, this, []); } /** * Don't use this method. Use GetDefaultTheme * @return {CTheme} */ function GenerateDefaultVisioTheme(presentation, opt_fontName) { if (!opt_fontName) { opt_fontName = "Calibri"; } let theme = GenerateDefaultTheme(presentation, opt_fontName); let scheme = theme.themeElements.clrScheme; // TODO change other colors scheme.colors[11] = AscFormat.CreateUniColorRGB(0x05, 0x63, 0xC1); // link scheme.colors[10] = AscFormat.CreateUniColorRGB(0x80, 0x00, 0x80); // followed link theme.themeElements.themeExt = new AscFormat.CThemeExt(); theme.themeElements.themeExt.themeSchemeSchemeEnum = "0"; theme.themeElements.clrScheme.clrSchemeExtLst = new AscFormat.CClrSchemeExtLst(); theme.themeElements.clrScheme.clrSchemeExtLst.schemeEnum = "0"; theme.themeElements.themeExt.fmtConnectorScheme = new AscFormat.FmtScheme(); return theme; } function GetDefaultTheme() { if(!AscFormat.DEFAULT_THEME) { AscFormat.DEFAULT_THEME = AscFormat.GenerateDefaultTheme(null); } return AscFormat.DEFAULT_THEME; } function GenerateDefaultMasterSlide(theme) { var master = new MasterSlide(theme.presentation, theme); master.Theme = theme; master.sldLayoutLst[0] = GenerateDefaultSlideLayout(master); master.setPreserve(true); return master; } function GenerateDefaultSlideLayout(master) { var layout = new SlideLayout(); layout.Theme = master.Theme; layout.Master = master; layout.setPreserve(true); return layout; } function GenerateDefaultSlide(layout) { var slide = new Slide(layout.Master.presentation, layout, 0); slide.Master = layout.Master; slide.Theme = layout.Master.Theme; slide.setNotes(AscCommonSlide.CreateNotes()); slide.notes.setNotesMaster(layout.Master.presentation.notesMasters[0]); slide.notes.setSlide(slide); return slide; } function CreateDefaultTextRectStyle() { var style = new CShapeStyle(); var lnRef = new StyleRef(); lnRef.setIdx(0); var unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); unicolor.setMods(new CColorModifiers()); unicolor.Mods.addMod("shade", 50000); lnRef.setColor(unicolor); style.setLnRef(lnRef); var fillRef = new StyleRef(); fillRef.setIdx(0); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); fillRef.setColor(unicolor); style.setFillRef(fillRef); var effectRef = new StyleRef(); effectRef.setIdx(0); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(g_clr_accent1); effectRef.setColor(unicolor); style.setEffectRef(effectRef); var fontRef = new FontRef(); fontRef.setIdx(AscFormat.fntStyleInd_minor); unicolor = new CUniColor(); unicolor.setColor(new CSchemeColor()); unicolor.color.setId(8); fontRef.setColor(unicolor); style.setFontRef(fontRef); return style; } function GenerateDefaultColorMap() { return AscFormat.ExecuteNoHistory(function () { var clrMap = new ClrMap(); clrMap.color_map[0] = 0; clrMap.color_map[1] = 1; clrMap.color_map[2] = 2; clrMap.color_map[3] = 3; clrMap.color_map[4] = 4; clrMap.color_map[5] = 5; clrMap.color_map[10] = 10; clrMap.color_map[11] = 11; clrMap.color_map[6] = 12; clrMap.color_map[7] = 13; clrMap.color_map[15] = 8; clrMap.color_map[16] = 9; return clrMap; }, [], null); } function GetDefaultColorMap() { if(!AscFormat.DEFAULT_COLOR_MAP) { AscFormat.DEFAULT_COLOR_MAP = GenerateDefaultColorMap(); } return AscFormat.DEFAULT_COLOR_MAP; } function CreateAscFill(unifill) { if (null == unifill || null == unifill.fill) return new asc_CShapeFill(); var ret = new asc_CShapeFill(); var _fill = unifill.fill; switch (_fill.type) { case c_oAscFill.FILL_TYPE_SOLID: { ret.type = c_oAscFill.FILL_TYPE_SOLID; ret.fill = new Asc.asc_CFillSolid(); ret.fill.color = CreateAscColor(_fill.color); break; } case c_oAscFill.FILL_TYPE_PATT: { ret.type = c_oAscFill.FILL_TYPE_PATT; ret.fill = new Asc.asc_CFillHatch(); ret.fill.PatternType = _fill.ftype; ret.fill.fgClr = CreateAscColor(_fill.fgClr); ret.fill.bgClr = CreateAscColor(_fill.bgClr); break; } case c_oAscFill.FILL_TYPE_GRAD: { ret.type = c_oAscFill.FILL_TYPE_GRAD; ret.fill = new Asc.asc_CFillGrad(); var bCheckTransparent = true, nLastTransparent = null, nLastTempTransparent, j, aMods; for (var i = 0; i < _fill.colors.length; i++) { if (0 == i) { ret.fill.Colors = []; ret.fill.Positions = []; } if (bCheckTransparent) { if (_fill.colors[i].color.Mods) { aMods = _fill.colors[i].color.Mods.Mods; nLastTempTransparent = null; for (j = 0; j < aMods.length; ++j) { if (aMods[j].name === "alpha") { if (nLastTempTransparent === null) { nLastTempTransparent = aMods[j].val; if (nLastTransparent === null) { nLastTransparent = nLastTempTransparent; } else { if (nLastTransparent !== nLastTempTransparent) { bCheckTransparent = false; break; } } } else { bCheckTransparent = false; break; } } } } else { bCheckTransparent = false; } } ret.fill.Colors.push(CreateAscColor(_fill.colors[i].color)); ret.fill.Positions.push(_fill.colors[i].pos); } if (bCheckTransparent && nLastTransparent !== null) { ret.transparent = (nLastTransparent / 100000) * 255; } if (_fill.lin) { ret.fill.GradType = c_oAscFillGradType.GRAD_LINEAR; ret.fill.LinearAngle = _fill.lin.angle; ret.fill.LinearScale = _fill.lin.scale; } else if (_fill.path) { ret.fill.GradType = c_oAscFillGradType.GRAD_PATH; ret.fill.PathType = 0; } else { ret.fill.GradType = c_oAscFillGradType.GRAD_LINEAR; ret.fill.LinearAngle = 0; ret.fill.LinearScale = false; } break; } case c_oAscFill.FILL_TYPE_BLIP: { ret.type = c_oAscFill.FILL_TYPE_BLIP; ret.fill = new AscFormat.CBlipFill(); ret.fill.url = _fill.RasterImageId; ret.fill.type = (_fill.tile == null) ? c_oAscFillBlipType.STRETCH : c_oAscFillBlipType.TILE; ret.fill.tile = AscCommon.isRealObject(_fill.tile) ? _fill.tile.createDuplicate() : null; ret.fill.stretch = AscCommon.isRealObject(_fill.stretch) ? _fill.stretch.createDuplicate() : null; break; } case c_oAscFill.FILL_TYPE_NOFILL: { ret.type = c_oAscFill.FILL_TYPE_NOFILL; break; } default: break; } if (isRealNumber(unifill.transparent)) { ret.transparent = unifill.transparent; } return ret; } function CorrectUniFill(asc_fill, unifill, editorId) { if (asc_fill instanceof CUniFill) { return asc_fill; } if (null == asc_fill) return unifill; var ret = unifill; if (null == ret) ret = new CUniFill(); var _fill = asc_fill.fill; var _type = asc_fill.type; if (null != _type) { switch (_type) { case c_oAscFill.FILL_TYPE_NOFILL: { ret.fill = new CNoFill(); break; } case c_oAscFill.FILL_TYPE_GRP: { ret.fill = new CGrpFill(); break; } case c_oAscFill.FILL_TYPE_BLIP: { var _url = _fill.url; var _tx_id = _fill.texture_id; if (null != _tx_id && (0 <= _tx_id) && (_tx_id < AscCommon.g_oUserTexturePresets.length)) { _url = AscCommon.g_oUserTexturePresets[_tx_id]; } if (ret.fill == null) { ret.fill = new CBlipFill(); } if (ret.fill.type !== c_oAscFill.FILL_TYPE_BLIP) { if (!(typeof (_url) === "string" && _url.length > 0) || !isRealNumber(_fill.type)) { break; } ret.fill = new CBlipFill(); } if (_url != null && _url !== undefined && _url != "") ret.fill.setRasterImageId(_url); if (ret.fill.RasterImageId == null) ret.fill.RasterImageId = ""; var tile = _fill.type; if (tile === c_oAscFillBlipType.STRETCH) { ret.fill.tile = null; ret.fill.srcRect = null; ret.fill.stretch = new AscFormat.CBlipFillStretch(); } else if (tile === c_oAscFillBlipType.TILE) { ret.fill.tile = new CBlipFillTile(); ret.fill.stretch = null; ret.fill.srcRect = null; } break; } case c_oAscFill.FILL_TYPE_PATT: { if (ret.fill == null) { ret.fill = new CPattFill(); } if (ret.fill.type != c_oAscFill.FILL_TYPE_PATT) { if (undefined != _fill.PatternType && undefined != _fill.fgClr && undefined != _fill.bgClr) { ret.fill = new CPattFill(); } else { break; } } if (undefined != _fill.PatternType) { ret.fill.ftype = _fill.PatternType; } if (undefined != _fill.fgClr) { ret.fill.fgClr = CorrectUniColor(_fill.fgClr, ret.fill.fgClr, editorId); } if (!ret.fill.fgClr) { ret.fill.fgClr = CreateUniColorRGB(0, 0, 0); } if (undefined != _fill.bgClr) { ret.fill.bgClr = CorrectUniColor(_fill.bgClr, ret.fill.bgClr, editorId); } if (!ret.fill.bgClr) { ret.fill.bgClr = CreateUniColorRGB(0, 0, 0); } break; } case c_oAscFill.FILL_TYPE_GRAD: { if (ret.fill == null) { ret.fill = new CGradFill(); } var _colors = _fill.Colors; var _positions = _fill.Positions; if (ret.fill.type != c_oAscFill.FILL_TYPE_GRAD) { if (undefined != _colors && undefined != _positions) { ret.fill = new CGradFill(); } else { break; } } if (undefined != _colors && undefined != _positions) { if (_colors.length === _positions.length) { if (ret.fill.colors.length === _colors.length) { for (var i = 0; i < _colors.length; i++) { var _gs = ret.fill.colors[i] ? ret.fill.colors[i] : new CGs(); _gs.color = CorrectUniColor(_colors[i], _gs.color, editorId); _gs.pos = _positions[i]; ret.fill.colors[i] = _gs; } } else { ret.fill.colors.length = 0; for (var i = 0; i < _colors.length; i++) { var _gs = new CGs(); _gs.color = CorrectUniColor(_colors[i], _gs.color, editorId); _gs.pos = _positions[i]; ret.fill.colors.push(_gs); } } } } else if (undefined != _colors) { if (_colors.length === ret.fill.colors.length) { for (var i = 0; i < _colors.length; i++) { ret.fill.colors[i].color = CorrectUniColor(_colors[i], ret.fill.colors[i].color, editorId); } } } else if (undefined != _positions) { if (_positions.length <= ret.fill.colors.length) { if (_positions.length < ret.fill.colors.length) { ret.fill.colors.splice(_positions.length, ret.fill.colors.length - _positions.length); } for (var i = 0; i < _positions.length; i++) { ret.fill.colors[i].pos = _positions[i]; } } } var _grad_type = _fill.GradType; if (c_oAscFillGradType.GRAD_LINEAR === _grad_type) { var _angle = _fill.LinearAngle; var _scale = _fill.LinearScale; if (!ret.fill.lin) { ret.fill.lin = new GradLin(); ret.fill.lin.angle = 0; ret.fill.lin.scale = false; } if (undefined != _angle) ret.fill.lin.angle = _angle; if (undefined != _scale) ret.fill.lin.scale = _scale; ret.fill.path = null; } else if (c_oAscFillGradType.GRAD_PATH === _grad_type) { ret.fill.lin = null; ret.fill.path = new GradPath(); } break; } default: { if (ret.fill == null || ret.fill.type !== c_oAscFill.FILL_TYPE_SOLID) { ret.fill = new CSolidFill(); } ret.fill.color = CorrectUniColor(_fill.color, ret.fill.color, editorId); } } } var _alpha = asc_fill.transparent; if (null != _alpha) { ret.transparent = _alpha; } if (ret.transparent != null) { if (ret.fill && ret.fill.type === c_oAscFill.FILL_TYPE_BLIP) { ret.fill.setTransparent(ret.transparent); } } return ret; } // эта функция ДОЛЖНА минимизироваться function CreateAscStroke(ln, _canChangeArrows) { if (null == ln || null == ln.Fill || ln.Fill.fill == null) return new Asc.asc_CStroke(); var ret = new Asc.asc_CStroke(); var _fill = ln.Fill.fill; if (_fill != null) { switch (_fill.type) { case c_oAscFill.FILL_TYPE_BLIP: { break; } case c_oAscFill.FILL_TYPE_SOLID: { ret.color = CreateAscColor(_fill.color); ret.type = c_oAscStrokeType.STROKE_COLOR; break; } case c_oAscFill.FILL_TYPE_GRAD: { var _c = _fill.colors; if (_c != 0) { ret.color = CreateAscColor(_fill.colors[0].color); ret.type = c_oAscStrokeType.STROKE_COLOR; } break; } case c_oAscFill.FILL_TYPE_PATT: { ret.color = CreateAscColor(_fill.fgClr); ret.type = c_oAscStrokeType.STROKE_COLOR; break; } case c_oAscFill.FILL_TYPE_NOFILL: { ret.color = null; ret.type = c_oAscStrokeType.STROKE_NONE; break; } default: { break; } } } ret.width = (ln.w == null) ? 12700 : (ln.w >> 0); ret.width /= 36000.0; if (ln.cap != null) ret.asc_putLinecap(ln.cap); if (ln.Join != null) ret.asc_putLinejoin(ln.Join.type); if (ln.headEnd != null) { ret.asc_putLinebeginstyle((ln.headEnd.type == null) ? LineEndType.None : ln.headEnd.type); var _len = (null == ln.headEnd.len) ? 1 : (2 - ln.headEnd.len); var _w = (null == ln.headEnd.w) ? 1 : (2 - ln.headEnd.w); ret.asc_putLinebeginsize(_w * 3 + _len); } else { ret.asc_putLinebeginstyle(LineEndType.None); } if (ln.tailEnd != null) { ret.asc_putLineendstyle((ln.tailEnd.type == null) ? LineEndType.None : ln.tailEnd.type); var _len = (null == ln.tailEnd.len) ? 1 : (2 - ln.tailEnd.len); var _w = (null == ln.tailEnd.w) ? 1 : (2 - ln.tailEnd.w); ret.asc_putLineendsize(_w * 3 + _len); } else { ret.asc_putLineendstyle(LineEndType.None); } if (AscFormat.isRealNumber(ln.prstDash)) { ret.prstDash = ln.prstDash; } else if (ln.prstDash === null) { ret.prstDash = Asc.c_oDashType.solid; } if (true === _canChangeArrows) ret.canChangeArrows = true; if (isRealNumber(ln.Fill.transparent)) { ret.transparent = ln.Fill.transparent; } return ret; } function CorrectUniStroke(asc_stroke, unistroke, flag) { if (null == asc_stroke) return unistroke; var ret = unistroke; if (null == ret) ret = new CLn(); var _type = asc_stroke.type; var _w = asc_stroke.width; if (_w !== null && _w !== undefined) ret.w = _w * 36000.0; var _color = asc_stroke.color; if (_type === c_oAscStrokeType.STROKE_NONE) { ret.Fill = new CUniFill(); ret.Fill.fill = new CNoFill(); } else if (_type != null) { if (null !== _color && undefined !== _color) { ret.Fill = new CUniFill(); ret.Fill.type = c_oAscFill.FILL_TYPE_SOLID; ret.Fill.fill = new CSolidFill(); ret.Fill.fill.color = CorrectUniColor(_color, ret.Fill.fill.color, flag); } } var _alpha = asc_stroke.transparent; if (null != _alpha) { if(!ret.Fill) { ret.Fill = AscFormat.CreateSolidFillRGB(0, 0, 0); if(!ret.w) { ret.w = 12700; } } ret.Fill.transparent = _alpha; } var _join = asc_stroke.LineJoin; if (null != _join) { ret.Join = new LineJoin(); ret.Join.type = _join; } var _cap = asc_stroke.LineCap; if (null != _cap) { ret.cap = _cap; } var _begin_style = asc_stroke.LineBeginStyle; if (null != _begin_style) { if (ret.headEnd == null) ret.headEnd = new EndArrow(); ret.headEnd.type = _begin_style; } var _end_style = asc_stroke.LineEndStyle; if (null != _end_style) { if (ret.tailEnd == null) ret.tailEnd = new EndArrow(); ret.tailEnd.type = _end_style; } var _begin_size = asc_stroke.LineBeginSize; if (null != _begin_size) { if (ret.headEnd == null) ret.headEnd = new EndArrow(); ret.headEnd.w = 2 - ((_begin_size / 3) >> 0); ret.headEnd.len = 2 - (_begin_size % 3); } var _end_size = asc_stroke.LineEndSize; if (null != _end_size) { if (ret.tailEnd == null) ret.tailEnd = new EndArrow(); ret.tailEnd.w = 2 - ((_end_size / 3) >> 0); ret.tailEnd.len = 2 - (_end_size % 3); } if (AscFormat.isRealNumber(asc_stroke.prstDash)) { ret.prstDash = asc_stroke.prstDash; } return ret; } // эта функция ДОЛЖНА минимизироваться function CreateAscShapeProp(shape) { if (null == shape) return new asc_CShapeProperty(); var ret = new asc_CShapeProperty(); ret.fill = CreateAscFill(shape.brush); ret.stroke = CreateAscStroke(shape.pen); ret.lockAspect = shape.getNoChangeAspect(); var paddings = null; if (shape.textBoxContent) { var body_pr = shape.bodyPr; paddings = new Asc.asc_CPaddings(); if (typeof body_pr.lIns === "number") paddings.Left = body_pr.lIns; else paddings.Left = 2.54; if (typeof body_pr.tIns === "number") paddings.Top = body_pr.tIns; else paddings.Top = 1.27; if (typeof body_pr.rIns === "number") paddings.Right = body_pr.rIns; else paddings.Right = 2.54; if (typeof body_pr.bIns === "number") paddings.Bottom = body_pr.bIns; else paddings.Bottom = 1.27; } return ret; } function CreateAscShapePropFromProp(shapeProp) { var obj = new asc_CShapeProperty(); if (!isRealObject(shapeProp)) return obj; if (isRealBool(shapeProp.locked)) { obj.Locked = shapeProp.locked; } obj.lockAspect = shapeProp.lockAspect; if (typeof shapeProp.type === "string") obj.type = shapeProp.type; if (isRealObject(shapeProp.fill)) obj.fill = CreateAscFill(shapeProp.fill); if (isRealObject(shapeProp.stroke)) obj.stroke = CreateAscStroke(shapeProp.stroke, shapeProp.canChangeArrows); if (isRealObject(shapeProp.paddings)) obj.paddings = shapeProp.paddings; if (shapeProp.canFill === true || shapeProp.canFill === false) { obj.canFill = shapeProp.canFill; } obj.bFromChart = shapeProp.bFromChart; obj.bFromSmartArt = shapeProp.bFromSmartArt; obj.bFromSmartArtInternal = shapeProp.bFromSmartArtInternal; obj.bFromGroup = shapeProp.bFromGroup; obj.bFromImage = shapeProp.bFromImage; obj.w = shapeProp.w; obj.h = shapeProp.h; obj.rot = shapeProp.rot; obj.flipH = shapeProp.flipH; obj.flipV = shapeProp.flipV; obj.vert = shapeProp.vert; obj.verticalTextAlign = shapeProp.verticalTextAlign; if (shapeProp.textArtProperties) { obj.textArtProperties = CreateAscTextArtProps(shapeProp.textArtProperties); } obj.title = shapeProp.title; obj.description = shapeProp.description; obj.name = shapeProp.name; obj.columnNumber = shapeProp.columnNumber; obj.columnSpace = shapeProp.columnSpace; obj.textFitType = shapeProp.textFitType; obj.vertOverflowType = shapeProp.vertOverflowType; obj.shadow = shapeProp.shadow; if (shapeProp.signatureId) { obj.signatureId = shapeProp.signatureId; } if (shapeProp.signatureId) { obj.signatureId = shapeProp.signatureId; } obj.Position = new Asc.CPosition({X: shapeProp.x, Y: shapeProp.y}); obj.isMotionPath = !!shapeProp.isMotionPath; return obj; } function CorrectShapeProp(asc_shape_prop, shape) { if (null == shape || null == asc_shape_prop) return; shape.spPr.Fill = CorrectUniFill(asc_shape_prop.asc_getFill(), shape.spPr.Fill); shape.spPr.ln = CorrectUniFill(asc_shape_prop.asc_getStroke(), shape.spPr.ln); } function CreateAscTextArtProps(oTextArtProps) { if (!oTextArtProps) { return undefined; } var oRet = new Asc.asc_TextArtProperties(); if (oTextArtProps.Fill) { oRet.asc_putFill(CreateAscFill(oTextArtProps.Fill)); } if (oTextArtProps.Line) { oRet.asc_putLine(CreateAscStroke(oTextArtProps.Line, false)); } oRet.asc_putForm(oTextArtProps.Form); return oRet; } function CreateUnifillFromAscColor(asc_color, editorId) { var Unifill = new CUniFill(); Unifill.fill = new CSolidFill(); Unifill.fill.color = CorrectUniColor(asc_color, Unifill.fill.color, editorId); return Unifill; } function CorrectUniColor(asc_color, unicolor, flag) { if (null == asc_color) return unicolor; var ret = unicolor; if (null == ret) ret = new CUniColor(); var _type = asc_color.asc_getType(); switch (_type) { case c_oAscColor.COLOR_TYPE_PRST: { if (ret.color == null || ret.color.type !== c_oAscColor.COLOR_TYPE_PRST) { ret.color = new CPrstColor(); } ret.color.id = asc_color.value; if (ret.Mods.Mods.length != 0) ret.Mods.Mods.splice(0, ret.Mods.Mods.length); break; } case c_oAscColor.COLOR_TYPE_SCHEME: { if (ret.color == null || ret.color.type !== c_oAscColor.COLOR_TYPE_SCHEME) { ret.color = new CSchemeColor(); } // тут выставляется ТОЛЬКО из меню. поэтому: var _index = parseInt(asc_color.value); if (isNaN(_index)) break; var _id = (_index / 6) >> 0; var _pos = _index - _id * 6; var array_colors_types = [6, 15, 7, 16, 0, 1, 2, 3, 4, 5]; ret.color.id = array_colors_types[_id]; if (!ret.Mods) { ret.setMods(new CColorModifiers()); } if (ret.Mods.Mods.length != 0) ret.Mods.Mods.splice(0, ret.Mods.Mods.length); var __mods = null; var _flag; if (editor && editor.WordControl && editor.WordControl.m_oDrawingDocument && editor.WordControl.m_oDrawingDocument.GuiControlColorsMap) { var _map = editor.WordControl.m_oDrawingDocument.GuiControlColorsMap; _flag = isRealNumber(flag) ? flag : 1; __mods = AscCommon.GetDefaultMods(_map[_id].r, _map[_id].g, _map[_id].b, _pos, _flag); } else { var _editor = window["Asc"] && window["Asc"]["editor"]; if (_editor && _editor.wbModel) { var _theme = _editor.wbModel.theme; var _clrMap = _editor.wbModel.clrSchemeMap; if (_theme && _clrMap) { var _schemeClr = new CSchemeColor(); _schemeClr.id = array_colors_types[_id]; var _rgba = {R: 0, G: 0, B: 0, A: 255}; _schemeClr.Calculate(_theme, _clrMap.color_map, _rgba); _flag = isRealNumber(flag) ? flag : 0; __mods = AscCommon.GetDefaultMods(_schemeClr.RGBA.R, _schemeClr.RGBA.G, _schemeClr.RGBA.B, _pos, _flag); } } } if (null != __mods) { ret.Mods.Mods = __mods; } break; } default: { if (ret.color == null || ret.color.type !== c_oAscColor.COLOR_TYPE_SRGB) { ret.color = new CRGBColor(); } ret.color.RGBA.R = asc_color.r; ret.color.RGBA.G = asc_color.g; ret.color.RGBA.B = asc_color.b; ret.color.RGBA.A = asc_color.a; if (ret.Mods && ret.Mods.Mods.length !== 0) ret.Mods.Mods.splice(0, ret.Mods.Mods.length); } } return ret; } function deleteDrawingBase(aObjects, graphicId) { var position = null; for (var i = 0; i < aObjects.length; i++) { if (aObjects[i].graphicObject.Get_Id() == graphicId) { aObjects.splice(i, 1); position = i; break; } } return position; } /** * Common Functions For Builder * @return {CShape} */ function builder_CreateShape(sType, nWidth, nHeight, oFill, oStroke, oParent, oTheme, oDrawingDocument, bWord, worksheet) { var oShapeTrack = new AscFormat.NewShapeTrack(sType, 0, 0, oTheme, null, null, null, 0); oShapeTrack.track({}, nWidth, nHeight, true); var oShape = oShapeTrack.getShape(bWord === true, oDrawingDocument, null); oShape.setParent(oParent); if (worksheet) { oShape.setWorksheet(worksheet); } if (bWord) { oShape.createTextBoxContent(); } else { oShape.createTextBody(); } oShape.spPr.setFill(oFill); oShape.spPr.setLn(oStroke); return oShape; } function ChartBuilderTypeToInternal(sType) { switch (sType) { case "bar": { return Asc.c_oAscChartTypeSettings.barNormal; } case "barStacked": { return Asc.c_oAscChartTypeSettings.barStacked; } case "barStackedPercent": { return Asc.c_oAscChartTypeSettings.barStackedPer; } case "bar3D": { return Asc.c_oAscChartTypeSettings.barNormal3d; } case "barStacked3D": { return Asc.c_oAscChartTypeSettings.barStacked3d; } case "barStackedPercent3D": { return Asc.c_oAscChartTypeSettings.barStackedPer3d; } case "barStackedPercent3DPerspective": { return Asc.c_oAscChartTypeSettings.barNormal3dPerspective; } case "horizontalBar": { return Asc.c_oAscChartTypeSettings.hBarNormal; } case "horizontalBarStacked": { return Asc.c_oAscChartTypeSettings.hBarStacked; } case "horizontalBarStackedPercent": { return Asc.c_oAscChartTypeSettings.hBarStackedPer; } case "horizontalBar3D": { return Asc.c_oAscChartTypeSettings.hBarNormal3d; } case "horizontalBarStacked3D": { return Asc.c_oAscChartTypeSettings.hBarStacked3d; } case "horizontalBarStackedPercent3D": { return Asc.c_oAscChartTypeSettings.hBarStackedPer3d; } case "lineNormal": { return Asc.c_oAscChartTypeSettings.lineNormal; } case "lineStacked": { return Asc.c_oAscChartTypeSettings.lineStacked; } case "lineStackedPercent": { return Asc.c_oAscChartTypeSettings.lineStackedPer; } case "lineNormalMarker": { return Asc.c_oAscChartTypeSettings.lineNormalMarker; } case "lineStackedMarker": { return Asc.c_oAscChartTypeSettings.lineStackedMarker; } case "lineStackedPerMarker": { return Asc.c_oAscChartTypeSettings.lineStackedPerMarker; } case "line3D": { return Asc.c_oAscChartTypeSettings.line3d; } case "pie": { return Asc.c_oAscChartTypeSettings.pie; } case "pie3D": { return Asc.c_oAscChartTypeSettings.pie3d; } case "doughnut": { return Asc.c_oAscChartTypeSettings.doughnut; } case "scatter": { return Asc.c_oAscChartTypeSettings.scatter; } case "scatterLine": { return Asc.c_oAscChartTypeSettings.scatterLine; } case "scatterLineMarker": { return Asc.c_oAscChartTypeSettings.scatterLineMarker; } case "scatterSmooth": { return Asc.c_oAscChartTypeSettings.scatterSmooth; } case "scatterSmoothMarker": { return Asc.c_oAscChartTypeSettings.scatterSmoothMarker; } case "stock": { return Asc.c_oAscChartTypeSettings.stock; } case "area": { return Asc.c_oAscChartTypeSettings.areaNormal; } case "areaStacked": { return Asc.c_oAscChartTypeSettings.areaStacked; } case "areaStackedPercent": { return Asc.c_oAscChartTypeSettings.areaStackedPer; } case "comboCustom": { return Asc.c_oAscChartTypeSettings.comboCustom; } case "comboBarLine": { return Asc.c_oAscChartTypeSettings.comboBarLine; } case "comboBarLineSecondary": { return Asc.c_oAscChartTypeSettings.comboBarLineSecondary; } case "radar": { return Asc.c_oAscChartTypeSettings.radar; } case "radarMarker": { return Asc.c_oAscChartTypeSettings.radarMarker; } case "radarFilled": { return Asc.c_oAscChartTypeSettings.radarFilled; } // Unhandled cases from Asc.c_oAscChartTypeSettings (v9.0.0) // case "scatterMarker": { // return Asc.c_oAscChartTypeSettings.scatterMarker; // } // case "scatterNone": { // return Asc.c_oAscChartTypeSettings.scatterNone; // } // case "comboAreaBar": { // return Asc.c_oAscChartTypeSettings.comboAreaBar; // } // case "contour": { // return Asc.c_oAscChartTypeSettings.contourNormal; // } // case "contourWireframe": { // return Asc.c_oAscChartTypeSettings.contourWireframe; // } // case "surfaceNormal": { // return Asc.c_oAscChartTypeSettings.surfaceNormal; // } // case "surfaceWireframe": { // return Asc.c_oAscChartTypeSettings.surfaceWireframe; // } default: return null; } } function builder_CreateChart(nW, nH, sType, aCatNames, aSeriesNames, aSeries, nStyleIndex, aNumFormats) { let settings = new Asc.asc_ChartSettings(); settings.type = ChartBuilderTypeToInternal(sType); let aAscSeries = []; let aAlphaBet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; let oCat, i; if (aCatNames.length > 0) { let aNumCache = []; for (i = 0; i < aCatNames.length; ++i) { aNumCache.push({val: aCatNames[i] + ""}); } oCat = { Formula: "Sheet1!$B$1:$" + AscFormat.CalcLiterByLength(aAlphaBet, aCatNames.length) + "$1", NumCache: aNumCache }; } for (i = 0; i < aSeries.length; ++i) { let oAscSeries = new AscFormat.asc_CChartSeria(); oAscSeries.Val.NumCache = []; let aData = aSeries[i]; let sEndLiter = AscFormat.CalcLiterByLength(aAlphaBet, aData.length); oAscSeries.Val.Formula = 'Sheet1!' + '$B$' + (i + 2) + ':$' + sEndLiter + '$' + (i + 2); if (aSeriesNames[i]) { oAscSeries.TxCache.Formula = 'Sheet1!' + '$A$' + (i + 2); oAscSeries.TxCache.NumCache = [{ numFormatStr: "General", isDateTimeFormat: false, val: aSeriesNames[i], isHidden: false }]; } if (oCat) { oAscSeries.Cat = oCat; } if (Array.isArray(aNumFormats) && typeof (aNumFormats[i]) === "string") oAscSeries.FormatCode = aNumFormats[i]; for (let j = 0; j < aData.length; ++j) { oAscSeries.Val.NumCache.push({ numFormatStr: oAscSeries.FormatCode !== "" ? null : "General", isDateTimeFormat: false, val: aData[j], isHidden: false }); } aAscSeries.push(oAscSeries); } let oChartSpace = AscFormat.DrawingObjectsController.prototype._getChartSpace(aAscSeries, settings, true); if (!oChartSpace) { return null; } oChartSpace.setBDeleted(false); oChartSpace.extX = nW; oChartSpace.extY = nH; if (AscFormat.isRealNumber(nStyleIndex)) { oChartSpace.setStyle(nStyleIndex); } AscFormat.CheckSpPrXfrm(oChartSpace); return oChartSpace; } function builder_CreateGroup(aDrawings, oController) { if (!oController) { return null; } var aForGroup = []; for (var i = 0; i < aDrawings.length; ++i) { if (!aDrawings[i].Drawing || !aDrawings[i].Drawing.canGroup()) { return null; } aForGroup.push(aDrawings[i].Drawing); } return oController.getGroup(aForGroup); } function builder_CreateSchemeColor(sColorId) { var oUniColor = new AscFormat.CUniColor(); oUniColor.setColor(new AscFormat.CSchemeColor()); switch (sColorId) { case "accent1": { oUniColor.color.id = 0; break; } case "accent2": { oUniColor.color.id = 1; break; } case "accent3": { oUniColor.color.id = 2; break; } case "accent4": { oUniColor.color.id = 3; break; } case "accent5": { oUniColor.color.id = 4; break; } case "accent6": { oUniColor.color.id = 5; break; } case "bg1": { oUniColor.color.id = 6; break; } case "bg2": { oUniColor.color.id = 7; break; } case "dk1": { oUniColor.color.id = 8; break; } case "dk2": { oUniColor.color.id = 9; break; } case "lt1": { oUniColor.color.id = 12; break; } case "lt2": { oUniColor.color.id = 13; break; } case "tx1": { oUniColor.color.id = 15; break; } case "tx2": { oUniColor.color.id = 16; break; } default: { oUniColor.color.id = 16; break; } } return oUniColor; } function builder_CreatePresetColor(sPresetColor) { var oUniColor = new AscFormat.CUniColor(); oUniColor.setColor(new AscFormat.CPrstColor()); oUniColor.color.id = sPresetColor; return oUniColor; } function builder_CreateGradientStop(oUniColor, nPos) { var Gs = new AscFormat.CGs(); Gs.pos = nPos; Gs.color = oUniColor; return Gs; } function builder_CreateGradient(aGradientStop) { var oUniFill = new AscFormat.CUniFill(); oUniFill.fill = new AscFormat.CGradFill(); for (var i = 0; i < aGradientStop.length; ++i) { oUniFill.fill.colors.push(aGradientStop[i].Gs); } return oUniFill; } function builder_CreateLinearGradient(aGradientStop, Angle) { var oUniFill = builder_CreateGradient(aGradientStop); oUniFill.fill.lin = new AscFormat.GradLin(); if (!AscFormat.isRealNumber(Angle)) { oUniFill.fill.lin.angle = 0; } else { oUniFill.fill.lin.angle = Angle; } return oUniFill; } function builder_CreateRadialGradient(aGradientStop) { var oUniFill = builder_CreateGradient(aGradientStop); oUniFill.fill.path = new AscFormat.GradPath(); return oUniFill; } function builder_CreatePatternFill(sPatternType, BgColor, FgColor) { var oUniFill = new AscFormat.CUniFill(); oUniFill.fill = new AscFormat.CPattFill(); oUniFill.fill.ftype = AscCommon.global_hatch_offsets[sPatternType]; oUniFill.fill.fgClr = FgColor && FgColor.Unicolor; oUniFill.fill.bgClr = BgColor && BgColor.Unicolor; return oUniFill; } function builder_CreateBlipFill(sImageUrl, sBlipFillType) { var oUniFill = new AscFormat.CUniFill(); oUniFill.fill = new AscFormat.CBlipFill(); oUniFill.fill.RasterImageId = sImageUrl; if (sBlipFillType === "tile") { oUniFill.fill.tile = new AscFormat.CBlipFillTile(); } else if (sBlipFillType === "stretch") { oUniFill.fill.stretch = new AscFormat.CBlipFillStretch(); } return oUniFill; } function builder_CreateLine(nWidth, oFill) { if (nWidth === 0) { return new AscFormat.CreateNoFillLine(); } var oLn = new AscFormat.CLn(); oLn.w = nWidth; oLn.Fill = oFill.UniFill; return oLn; } function builder_CreateChartTitle(sTitle, nFontSize, bIsBold, oDrawingDocument) { if (typeof sTitle === "string" && sTitle.length > 0) { var oTitle = new AscFormat.CTitle(); oTitle.setOverlay(false); oTitle.setTx(new AscFormat.CChartText()); var oTextBody = AscFormat.CreateTextBodyFromString(sTitle, oDrawingDocument, oTitle.tx); if (AscFormat.isRealNumber(nFontSize)) { oTextBody.content.SetApplyToAll(true); oTextBody.content.AddToParagraph(new ParaTextPr({FontSize: nFontSize, Bold: bIsBold})); oTextBody.content.SetApplyToAll(false); } oTitle.tx.setRich(oTextBody); return oTitle; } return null; } function builder_CreateTitle(sTitle, nFontSize, bIsBold, oChartSpace) { if (typeof sTitle === "string" && sTitle.length > 0) { var oTitle = new AscFormat.CTitle(); oTitle.setOverlay(false); oTitle.setTx(new AscFormat.CChartText()); var oTextBody = AscFormat.CreateTextBodyFromString(sTitle, oChartSpace.getDrawingDocument(), oTitle.tx); if (AscFormat.isRealNumber(nFontSize)) { oTextBody.content.SetApplyToAll(true); oTextBody.content.AddToParagraph(new ParaTextPr({FontSize: nFontSize, Bold: bIsBold})); oTextBody.content.SetApplyToAll(false); } oTitle.tx.setRich(oTextBody); return oTitle; } return null; } function builder_SetChartTitle(oChartSpace, sTitle, nFontSize, bIsBold) { if (oChartSpace) { oChartSpace.chart.setTitle(builder_CreateChartTitle(sTitle, nFontSize, bIsBold, oChartSpace.getDrawingDocument())); } } function builder_SetChartHorAxisTitle(oChartSpace, sTitle, nFontSize, bIsBold) { if (oChartSpace) { var horAxis = oChartSpace.chart.plotArea.getHorizontalAxis(); if (horAxis) { horAxis.setTitle(builder_CreateTitle(sTitle, nFontSize, bIsBold, oChartSpace)); } } } function builder_SetChartVertAxisTitle(oChartSpace, sTitle, nFontSize, bIsBold) { if (oChartSpace) { var verAxis = oChartSpace.chart.plotArea.getVerticalAxis(); if (verAxis) { if (typeof sTitle === "string" && sTitle.length > 0) { verAxis.setTitle(builder_CreateTitle(sTitle, nFontSize, bIsBold, oChartSpace)); if (verAxis.title) { var _body_pr = new AscFormat.CBodyPr(); _body_pr.reset(); if (!verAxis.title.txPr) { verAxis.title.setTxPr(AscFormat.CreateTextBodyFromString("", oChartSpace.getDrawingDocument(), verAxis.title)); } var _text_body = verAxis.title.txPr; _text_body.setBodyPr(_body_pr); verAxis.title.setOverlay(false); } } else { verAxis.setTitle(null); } } } } function builder_SetChartVertAxisOrientation(oChartSpace, bIsMinMax) { if (oChartSpace) { var verAxis = oChartSpace.chart.plotArea.getVerticalAxis(); if (verAxis) { if (!verAxis.scaling) verAxis.setScaling(new AscFormat.CScaling()); var scaling = verAxis.scaling; if (bIsMinMax) { scaling.setOrientation(AscFormat.ORIENTATION_MIN_MAX); } else { scaling.setOrientation(AscFormat.ORIENTATION_MAX_MIN); } } } } function builder_SetChartHorAxisOrientation(oChartSpace, bIsMinMax) { if (oChartSpace) { var horAxis = oChartSpace.chart.plotArea.getHorizontalAxis(); if (horAxis) { if (!horAxis.scaling) horAxis.setScaling(new AscFormat.CScaling()); var scaling = horAxis.scaling; if (bIsMinMax) { scaling.setOrientation(AscFormat.ORIENTATION_MIN_MAX); } else { scaling.setOrientation(AscFormat.ORIENTATION_MAX_MIN); } } } } function builder_SetChartLegendPos(oChartSpace, sLegendPos) { if (oChartSpace && oChartSpace.chart) { if (sLegendPos === "none") { if (oChartSpace.chart.legend) { oChartSpace.chart.setLegend(null); } } else { var nLegendPos = null; switch (sLegendPos) { case "left": { nLegendPos = Asc.c_oAscChartLegendShowSettings.left; break; } case "top": { nLegendPos = Asc.c_oAscChartLegendShowSettings.top; break; } case "right": { nLegendPos = Asc.c_oAscChartLegendShowSettings.right; break; } case "bottom": { nLegendPos = Asc.c_oAscChartLegendShowSettings.bottom; break; } } if (null !== nLegendPos) { if (!oChartSpace.chart.legend) { oChartSpace.chart.setLegend(new AscFormat.CLegend()); } if (oChartSpace.chart.legend.legendPos !== nLegendPos) oChartSpace.chart.legend.setLegendPos(nLegendPos); if (oChartSpace.chart.legend.overlay !== false) { oChartSpace.chart.legend.setOverlay(false); } } } } } function builder_SetObjectFontSize(oObject, nFontSize, oDrawingDocument) { if (!oObject) { return; } if (!oObject.txPr) { oObject.setTxPr(new AscFormat.CTextBody()); } if (!oObject.txPr.bodyPr) { oObject.txPr.setBodyPr(new AscFormat.CBodyPr()); } if (!oObject.txPr.content) { oObject.txPr.setContent(new AscFormat.CDrawingDocContent(oObject.txPr, oDrawingDocument, 0, 0, 100, 500, false, false, true)); } var oPr = oObject.txPr.content.Content[0].Pr.Copy(); if (!oPr.DefaultRunPr) { oPr.DefaultRunPr = new AscCommonWord.CTextPr(); } oPr.DefaultRunPr.FontSize = nFontSize; oObject.txPr.content.Content[0].Set_Pr(oPr); } function builder_SetLegendFontSize(oChartSpace, nFontSize) { builder_SetObjectFontSize(oChartSpace.chart.legend, nFontSize, oChartSpace.getDrawingDocument()); } function builder_SetHorAxisFontSize(oChartSpace, nFontSize) { builder_SetObjectFontSize(oChartSpace.chart.plotArea.getHorizontalAxis(), nFontSize, oChartSpace.getDrawingDocument()); } function builder_SetVerAxisFontSize(oChartSpace, nFontSize) { builder_SetObjectFontSize(oChartSpace.chart.plotArea.getVerticalAxis(), nFontSize, oChartSpace.getDrawingDocument()); } function builder_SetShowPointDataLabel(oChartSpace, nSeriesIndex, nPointIndex, bShowSerName, bShowCatName, bShowVal, bShowPerecent) { if (oChartSpace && oChartSpace.chart && oChartSpace.chart.plotArea && oChartSpace.chart.plotArea.charts[0]) { var oChart = oChartSpace.chart.plotArea.charts[0]; var bPieChart = oChart.getObjectType() === AscDFH.historyitem_type_PieChart || oChart.getObjectType() === AscDFH.historyitem_type_DoughnutChart; var ser = oChart.series[nSeriesIndex]; if (ser) { { if (!ser.dLbls) { if (oChart.dLbls) { ser.setDLbls(oChart.dLbls.createDuplicate()); } else { ser.setDLbls(new AscFormat.CDLbls()); ser.dLbls.setSeparator(","); ser.dLbls.setShowSerName(false); ser.dLbls.setShowCatName(false); ser.dLbls.setShowVal(false); ser.dLbls.setShowLegendKey(false); if (bPieChart) { ser.dLbls.setShowPercent(false); } ser.dLbls.setShowBubbleSize(false); } } var dLbl = ser.dLbls && ser.dLbls.findDLblByIdx(nPointIndex); if (!dLbl) { dLbl = new AscFormat.CDLbl(); dLbl.setIdx(nPointIndex); if (ser.dLbls.txPr) { dLbl.merge(ser.dLbls); } ser.dLbls.addDLbl(dLbl); } dLbl.setSeparator(","); dLbl.setShowSerName(true == bShowSerName); dLbl.setShowCatName(true == bShowCatName); dLbl.setShowVal(true == bShowVal); dLbl.setShowLegendKey(false); if (bPieChart) { dLbl.setShowPercent(true === bShowPerecent); } dLbl.setShowBubbleSize(false); } } } } function builder_SetShowDataLabels(oChartSpace, bShowSerName, bShowCatName, bShowVal, bShowPerecent) { if (oChartSpace && oChartSpace.chart && oChartSpace.chart.plotArea && oChartSpace.chart.plotArea.charts[0]) { var oChart = oChartSpace.chart.plotArea.charts[0]; var bPieChart = oChart.getObjectType() === AscDFH.historyitem_type_PieChart || oChart.getObjectType() === AscDFH.historyitem_type_DoughnutChart; if (false == bShowSerName && false == bShowCatName && false == bShowVal && (bPieChart && bShowPerecent === false)) { if (oChart.dLbls) { oChart.setDLbls(null); } } if (!oChart.dLbls) { oChart.setDLbls(new AscFormat.CDLbls()); } oChart.dLbls.setSeparator(","); oChart.dLbls.setShowSerName(true == bShowSerName); oChart.dLbls.setShowCatName(true == bShowCatName); oChart.dLbls.setShowVal(true == bShowVal); oChart.dLbls.setShowLegendKey(false); if (bPieChart) { oChart.dLbls.setShowPercent(true === bShowPerecent); } oChart.dLbls.setShowBubbleSize(false); } } function builder_SetChartAxisLabelsPos(oAxis, sPosition) { if (!oAxis || !oAxis.setTickLblPos) { return; } var nPositionType = null; var c_oAscTickLabelsPos = window['Asc'].c_oAscTickLabelsPos; switch (sPosition) { case "high": { nPositionType = c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH; break; } case "low": { nPositionType = c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW; break; } case "nextTo": { nPositionType = c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO; break; } case "none": { nPositionType = c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE; break; } } if (nPositionType !== null) { oAxis.setTickLblPos(nPositionType); } } function builder_SetChartVertAxisTickLablePosition(oChartSpace, sPosition) { if (oChartSpace) { builder_SetChartAxisLabelsPos(oChartSpace.chart.plotArea.getVerticalAxis(), sPosition); } } function builder_SetChartHorAxisTickLablePosition(oChartSpace, sPosition) { if (oChartSpace) { builder_SetChartAxisLabelsPos(oChartSpace.chart.plotArea.getHorizontalAxis(), sPosition); } } function builder_GetTickMark(sTickMark) { var nNewTickMark = null; switch (sTickMark) { case 'cross': { nNewTickMark = Asc.c_oAscTickMark.TICK_MARK_CROSS; break; } case 'in': { nNewTickMark = Asc.c_oAscTickMark.TICK_MARK_IN; break; } case 'none': { nNewTickMark = Asc.c_oAscTickMark.TICK_MARK_NONE; break; } case 'out': { nNewTickMark = Asc.c_oAscTickMark.TICK_MARK_OUT; break; } } return nNewTickMark; } function builder_SetChartAxisMajorTickMark(oAxis, sTickMark) { if (!oAxis) { return; } var nNewTickMark = builder_GetTickMark(sTickMark); if (nNewTickMark !== null) { oAxis.setMajorTickMark(nNewTickMark); } } function builder_SetChartAxisMinorTickMark(oAxis, sTickMark) { if (!oAxis) { return; } var nNewTickMark = builder_GetTickMark(sTickMark); if (nNewTickMark !== null) { oAxis.setMinorTickMark(nNewTickMark); } } function builder_SetChartHorAxisMajorTickMark(oChartSpace, sTickMark) { if (oChartSpace) { builder_SetChartAxisMajorTickMark(oChartSpace.chart.plotArea.getHorizontalAxis(), sTickMark); } } function builder_SetChartHorAxisMinorTickMark(oChartSpace, sTickMark) { if (oChartSpace) { builder_SetChartAxisMinorTickMark(oChartSpace.chart.plotArea.getHorizontalAxis(), sTickMark); } } function builder_SetChartVerAxisMajorTickMark(oChartSpace, sTickMark) { if (oChartSpace) { builder_SetChartAxisMajorTickMark(oChartSpace.chart.plotArea.getVerticalAxis(), sTickMark); } } function builder_SetChartVerAxisMinorTickMark(oChartSpace, sTickMark) { if (oChartSpace) { builder_SetChartAxisMinorTickMark(oChartSpace.chart.plotArea.getVerticalAxis(), sTickMark); } } function builder_SetAxisMajorGridlines(oAxis, oLn) { if (oAxis) { if (!oAxis.majorGridlines) { oAxis.setMajorGridlines(new AscFormat.CSpPr()); } oAxis.majorGridlines.setLn(oLn); if (!oAxis.majorGridlines.Fill && !oAxis.majorGridlines.ln) { oAxis.setMajorGridlines(null); } } } function builder_SetAxisMinorGridlines(oAxis, oLn) { if (oAxis) { if (!oAxis.minorGridlines) { oAxis.setMinorGridlines(new AscFormat.CSpPr()); } oAxis.minorGridlines.setLn(oLn); if (!oAxis.minorGridlines.Fill && !oAxis.minorGridlines.ln) { oAxis.setMinorGridlines(null); } } } function builder_SetHorAxisMajorGridlines(oChartSpace, oLn) { builder_SetAxisMajorGridlines(oChartSpace.chart.plotArea.getVerticalAxis(), oLn); } function builder_SetHorAxisMinorGridlines(oChartSpace, oLn) { builder_SetAxisMinorGridlines(oChartSpace.chart.plotArea.getVerticalAxis(), oLn); } function builder_SetVerAxisMajorGridlines(oChartSpace, oLn) { builder_SetAxisMajorGridlines(oChartSpace.chart.plotArea.getHorizontalAxis(), oLn); } function builder_SetVerAxisMinorGridlines(oChartSpace, oLn) { builder_SetAxisMinorGridlines(oChartSpace.chart.plotArea.getHorizontalAxis(), oLn); } function CreatePresentationTableStyles(Styles, IdMap) { function CreateThemedStyle1(schemeId) { if (schemeId == 8) var style = new CStyle("Themed Style 1", null, null, styletype_Table); else var style = new CStyle("Themed Style 1 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.6) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.8) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); var styleLastRowObject = { TableCellPr: {}, TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) } } styleLastRowObject.TableCellPr.TableCellBorders = { Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, }; style.TableLastRow.Set_FromObject(styleLastRowObject); styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateThemedStyle2(schemeId) { if (schemeId == 8) var style = new CStyle("Themed Style 2", null, null, styletype_Table); else var style = new CStyle("Themed Style 2 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.8) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateLightStyle1(schemeId) { if (schemeId == 8) var style = new CStyle("Light Style 1", null, null, styletype_Table); else var style = new CStyle("Light Style 1 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.4) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateLightStyle2(schemeId) { if (schemeId == 8) var style = new CStyle("Light Style 2", null, null, styletype_Table); else var style = new CStyle("Light Style 2 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellBorders: { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }, } }; var styleTableBand1Vert = { TableCellPr: { TableCellBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } } style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleTableBand1Vert); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateLightStyle3(schemeId) { if (schemeId == 8) var style = new CStyle("Light Style 3", null, null, styletype_Table); else var style = new CStyle("Light Style 3 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TableCellPr.Shd = { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateMediumStyle1(schemeId) { if (schemeId == 8) var style = new CStyle("Medium Style 1", null, null, styletype_Table); else var style = new CStyle("Medium Style 1 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Value: border_None } }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateMediumStyle2(schemeId) { if (schemeId == 8) var style = new CStyle("Medium Style 2", null, null, styletype_Table); else var style = new CStyle("Medium Style 2 - Accent " + (schemeId + 1), null, null, styletype_Table); //style.Id = "{" + GUID() + "}"; style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.4) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } } }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateMediumStyle3(schemeId) { if (schemeId == 8) var style = new CStyle("Medium Style 3", null, null, styletype_Table); else var style = new CStyle("Medium Style 3 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0), Space: 0, Size: 38100 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0), Space: 0, Size: 38100 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(2, 0.2) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } } }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateMediumStyle4(schemeId) { if (schemeId == 8) var style = new CStyle("Medium Style 4", null, null, styletype_Table); else var style = new CStyle("Medium Style 4 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.4) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} }; style.TableFirstCol.Set_FromObject(styleObject); style.TableLastCol.Set_FromObject(styleObject) styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateNoStyle1(schemeId) { var style = new CStyle("No Style, No Grid", null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_None } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateDarkStyle1(schemeId) { if (schemeId == 8) var style = new CStyle("Dark Style 1", null, null, styletype_Table); else var style = new CStyle("Dark Style 1 - Accent " + (schemeId + 1), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, -0.6) } } }; style.TableBand1Vert.Set_FromObject(styleObject); style.TableBand1Horz.Set_FromObject(styleObject); var styleFirstLastColumnObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, -0.6) }, TableCellBorders: { Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } } } }; style.TableFirstCol.Set_FromObject(styleFirstLastColumnObject); styleFirstLastColumnObject.TableCellPr.TableCellBorders = { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single }, Right: { Value: border_None } }; style.TableLastCol.Set_FromObject(styleFirstLastColumnObject); var styleLastRowObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, -0.4) }, } }; styleLastRowObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } } style.TableLastRow.Set_FromObject(styleLastRowObject); var styleFirstRowObject = { TableCellPr: { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellBorders: { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } } } } style.TableFirstRow.Set_FromObject(styleFirstRowObject); return style; } function CreateNoStyle2(schemeId) { var style = new CStyle("No Style, Table Grid", null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) } } }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateBlackStyle(schemeId) { var style = new CStyle("Dark Style 1", null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0.2) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0.4) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) } } }; style.TableLastCol.Set_FromObject(styleObject); style.TableFirstCol.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } }; style.TableLastRow.Set_FromObject(styleObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_Single } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } function CreateDarkStyle2(schemeId) { var style = new CStyle("Dark Style 2 - Accent " + (schemeId + 1) + "/" + "Accent " + (schemeId + 2), null, null, styletype_Table); style.TablePr.Set_FromObject( { TableBorders: { Left: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Right: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideH: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None }, InsideV: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0), Space: 0, Size: 12700 / 36000, Value: border_None } } } ); style.TableWholeTable.Set_FromObject( { TextPr: { FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } } } ); var styleObject = { TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.4) } } }; style.TableBand1Horz.Set_FromObject(styleObject); style.TableBand1Vert.Set_FromObject(styleObject); styleObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }, TableCellPr: { Shd: { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId + 1, 0) } } }; var styleLastObject = { TextPr: { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0) }, TableCellPr: {} } style.TableLastCol.Set_FromObject(styleLastObject); style.TableFirstCol.Set_FromObject(styleLastObject); styleLastObject.TableCellPr.Shd = { Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(schemeId, 0.2) } styleLastObject.TableCellPr.TableCellBorders = { Top: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(8, 0), Space: 0, Size: 38100 / 36000, Value: border_Single } }; style.TableLastRow.Set_FromObject(styleLastObject); styleObject.TableCellPr.TableCellBorders = { Bottom: { Color: {r: 0, g: 0, b: 0}, Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0), Space: 0, Size: 12700 / 36000, Value: border_None } }; styleObject.TextPr = { Bold: true, FontRef: AscFormat.CreateFontRef(AscFormat.fntStyleInd_minor, AscFormat.builder_CreatePresetColor("black")), Unifill: AscFormat.CreateUnifillSolidFillSchemeColor(12, 0) }; style.TableFirstRow.Set_FromObject(styleObject); return style; } var def, style; style = CreateNoStyle1(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateThemedStyle1(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateNoStyle2(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateThemedStyle2(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateLightStyle1(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateLightStyle1(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateLightStyle2(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateLightStyle2(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateLightStyle3(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateLightStyle3(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateMediumStyle1(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateMediumStyle1(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateMediumStyle2(8); Styles.Add(style); IdMap[style.Id] = true; def = CreateMediumStyle2(0); Styles.Add(def); IdMap[def.Id] = true; for (var i = 1; i < 6; ++i) { style = CreateMediumStyle2(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateMediumStyle3(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateMediumStyle3(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateMediumStyle4(8); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateMediumStyle4(i); Styles.Add(style); IdMap[style.Id] = true; } style = CreateBlackStyle(2); Styles.Add(style); IdMap[style.Id] = true; for (var i = 0; i < 6; ++i) { style = CreateDarkStyle1(i); Styles.Add(style); IdMap[style.Id] = true; } for (var i = 0; i < 3; i++) { style = CreateDarkStyle2(2 * i); Styles.Add(style); IdMap[style.Id] = true; } const arrStylesId = Object.keys(Styles.Style); for (let i = 0; i < arrStylesId.length; i += 1) { const oStyle = Styles.Style[arrStylesId[i]]; oStyle.SetStyleId(getDefaultGUIDTableStyleByName(oStyle.Get_Name())); } return def.Id; } function getDefaultGUIDTableStyleByName(sName) { switch (sName) { case "Medium Style 2 - Accent 1": return "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"; case "No Style, No Grid": return "{2D5ABB26-0587-4C30-8999-92F81FD0307C}"; case "Themed Style 1 - Accent 1": return "{3C2FFA5D-87B4-456A-9821-1D502468CF0F}"; case "Themed Style 1 - Accent 2": return "{284E427A-3D55-4303-BF80-6455036E1DE7}"; case "Themed Style 1 - Accent 3": return "{69C7853C-536D-4A76-A0AE-DD22124D55A5}"; case "Themed Style 1 - Accent 4": return "{775DCB02-9BB8-47FD-8907-85C794F793BA}"; case "Themed Style 1 - Accent 5": return "{35758FB7-9AC5-4552-8A53-C91805E547FA}"; case "Themed Style 1 - Accent 6": return "{08FB837D-C827-4EFA-A057-4D05807E0F7C}"; case "No Style, Table Grid": return "{5940675A-B579-460E-94D1-54222C63F5DA}"; case "Themed Style 2 - Accent 1": return "{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}"; case "Themed Style 2 - Accent 2": return "{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}"; case "Themed Style 2 - Accent 3": return "{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}"; case "Themed Style 2 - Accent 4": return "{E269D01E-BC32-4049-B463-5C60D7B0CCD2}"; case "Themed Style 2 - Accent 5": return "{327F97BB-C833-4FB7-BDE5-3F7075034690}"; case "Themed Style 2 - Accent 6": return "{638B1855-1B75-4FBE-930C-398BA8C253C6}"; case "Light Style 1": return "{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}"; case "Light Style 1 - Accent 1": return "{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}"; case "Light Style 1 - Accent 2": return "{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}"; case "Light Style 1 - Accent 3": return "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}"; case "Light Style 1 - Accent 4": return "{D27102A9-8310-4765-A935-A1911B00CA55}"; case "Light Style 1 - Accent 5": return "{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}"; case "Light Style 1 - Accent 6": return "{68D230F3-CF80-4859-8CE7-A43EE81993B5}"; case "Light Style 2": return "{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}"; case "Light Style 2 - Accent 1": return "{69012ECD-51FC-41F1-AA8D-1B2483CD663E}"; case "Light Style 2 - Accent 2": return "{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}"; case "Light Style 2 - Accent 3": return "{F2DE63D5-997A-4646-A377-4702673A728D}"; case "Light Style 2 - Accent 4": return "{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}"; case "Light Style 2 - Accent 5": return "{5A111915-BE36-4E01-A7E5-04B1672EAD32}"; case "Light Style 2 - Accent 6": return "{912C8C85-51F0-491E-9774-3900AFEF0FD7}"; case "Light Style 3": return "{616DA210-FB5B-4158-B5E0-FEB733F419BA}"; case "Light Style 3 - Accent 1": return "{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}"; case "Light Style 3 - Accent 2": return "{5DA37D80-6434-44D0-A028-1B22A696006F}"; case "Light Style 3 - Accent 3": return "{8799B23B-EC83-4686-B30A-512413B5E67A}"; case "Light Style 3 - Accent 4": return "{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}"; case "Light Style 3 - Accent 5": return "{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}"; case "Light Style 3 - Accent 6": return "{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}"; case "Medium Style 1": return "{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}"; case "Medium Style 1 - Accent 1": return "{B301B821-A1FF-4177-AEE7-76D212191A09}"; case "Medium Style 1 - Accent 2": return "{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}"; case "Medium Style 1 - Accent 3": return "{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}"; case "Medium Style 1 - Accent 4": return "{1E171933-4619-4E11-9A3F-F7608DF75F80}"; case "Medium Style 1 - Accent 5": return "{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}"; case "Medium Style 1 - Accent 6": return "{10A1B5D5-9B99-4C35-A422-299274C87663}"; case "Medium Style 2": return "{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}"; case "Medium Style 2 - Accent 2": return "{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}"; case "Medium Style 2 - Accent 3": return "{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}"; case "Medium Style 2 - Accent 4": return "{00A15C55-8517-42AA-B614-E9B94910E393}"; case "Medium Style 2 - Accent 5": return "{7DF18680-E054-41AD-8BC1-D1AEF772440D}"; case "Medium Style 2 - Accent 6": return "{93296810-A885-4BE3-A3E7-6D5BEEA58F35}"; case "Medium Style 3": return "{8EC20E35-A176-4012-BC5E-935CFFF8708E}"; case "Medium Style 3 - Accent 1": return "{6E25E649-3F16-4E02-A733-19D2CDBF48F0}"; case "Medium Style 3 - Accent 2": return "{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}"; case "Medium Style 3 - Accent 3": return "{EB344D84-9AFB-497E-A393-DC336BA19D2E}"; case "Medium Style 3 - Accent 4": return "{EB9631B5-78F2-41C9-869B-9F39066F8104}"; case "Medium Style 3 - Accent 5": return "{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}"; case "Medium Style 3 - Accent 6": return "{2A488322-F2BA-4B5B-9748-0D474271808F}"; case "Medium Style 4": return "{D7AC3CCA-C797-4891-BE02-D94E43425B78}"; case "Medium Style 4 - Accent 1": return "{69CF1AB2-1976-4502-BF36-3FF5EA218861}"; case "Medium Style 4 - Accent 2": return "{8A107856-5554-42FB-B03E-39F5DBC370BA}"; case "Medium Style 4 - Accent 3": return "{0505E3EF-67EA-436B-97B2-0124C06EBD24}"; case "Medium Style 4 - Accent 4": return "{C4B1156A-380E-4F78-BDF5-A606A8083BF9}"; case "Medium Style 4 - Accent 5": return "{22838BEF-8BB2-4498-84A7-C5851F593DF1}"; case "Medium Style 4 - Accent 6": return "{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}"; case "Dark Style 1": return "{E8034E78-7F5D-4C2E-B375-FC64B27BC917}"; case "Dark Style 1 - Accent 1": return "{125E5076-3810-47DD-B79F-674D7AD40C01}"; case "Dark Style 1 - Accent 2": return "{37CE84F3-28C3-443E-9E96-99CF82512B78}"; case "Dark Style 1 - Accent 3": return "{D03447BB-5D67-496B-8E87-E561075AD55C}"; case "Dark Style 1 - Accent 4": return "{E929F9F4-4A8F-4326-A1B4-22849713DDAB}"; case "Dark Style 1 - Accent 5": return "{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}"; case "Dark Style 1 - Accent 6": return "{AF606853-7671-496A-8E4F-DF71F8EC918B}"; case "Dark Style 2": return "{5202B0CA-FC54-4496-8BCA-5EF66A818D29}"; case "Dark Style 2 - Accent 1/Accent 2": return "{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}"; case "Dark Style 2 - Accent 3/Accent 4": return "{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}"; case "Dark Style 2 - Accent 5/Accent 6": return "{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}"; default: return AscCommon.CreateGUID(); } } const OBJECT_MORPH_MARKER = "!!"; function IsEqualObjects(obj1, obj2) { let iO = AscCommon.isRealObject; let iN = AscFormat.isRealNumber; let iEN = AscFormat.fApproxEqual; if(!iO(obj1) && iO(obj2) || iO(obj1) && !iO(obj2)) return false; for(let sKey in obj1) { if(obj1.hasOwnProperty(sKey)) { let pr1 = obj1[sKey]; let pr2 = obj2[sKey]; if(iO(pr1)) { if(!IsEqualObjects(pr1, pr2)) return false; } else if(iN(pr1)) { if(!iEN(pr1, pr2)) return false; } else { if(pr1 !== pr2) return false; } } } return true; } //----------------------------------------------------------export---------------------------------------------------- window['AscFormat'] = window['AscFormat'] || {}; window['AscFormat'].CreateFontRef = CreateFontRef; window['AscFormat'].CreatePresetColor = CreatePresetColor; window['AscFormat'].isRealNumber = isRealNumber; window['AscFormat'].isRealBool = isRealBool; window['AscFormat'].groupBy = groupBy; window['AscFormat'].writeLong = writeLong; window['AscFormat'].readLong = readLong; window['AscFormat'].writeDouble = writeDouble; window['AscFormat'].readDouble = readDouble; window['AscFormat'].writeDouble2 = writeDouble2; window['AscFormat'].readDouble2 = readDouble2; window['AscFormat'].writeBool = writeBool; window['AscFormat'].readBool = readBool; window['AscFormat'].writeString = writeString; window['AscFormat'].readString = readString; window['AscFormat'].writeObject = writeObject; window['AscFormat'].readObject = readObject; window['AscFormat'].readObjectNoId = readObjectNoId; window['AscFormat'].writeObjectNoId = writeObjectNoId; window['AscFormat'].readObjectNoIdNoType = readObjectNoIdNoType; window['AscFormat'].writeObjectNoIdNoType = writeObjectNoIdNoType; window['AscFormat'].checkThemeFonts = checkThemeFonts; window['AscFormat'].ExecuteNoHistory = ExecuteNoHistory; window['AscFormat'].CreatePresentationTableStyles = CreatePresentationTableStyles; window['AscFormat'].getDefaultGUIDTableStyleByName = getDefaultGUIDTableStyleByName; window['AscFormat'].checkTableCellPr = checkTableCellPr; window['AscFormat'].CColorMod = CColorMod; window['AscFormat'].CColorModifiers = CColorModifiers; window['AscFormat'].CBaseColor = CBaseColor; window['AscFormat'].CSysColor = CSysColor; window['AscFormat'].CPrstColor = CPrstColor; window['AscFormat'].CRGBColor = CRGBColor; window['AscFormat'].CSchemeColor = CSchemeColor; window['AscFormat'].CStyleColor = CStyleColor; window['AscFormat'].CUniColor = CUniColor; window['AscFormat'].CreateUniColorRGB = CreateUniColorRGB; window['AscFormat'].CreateUniColorRGB2 = CreateUniColorRGB2; window['AscFormat'].CreateSolidFillRGB = CreateSolidFillRGB; window['AscFormat'].CreateSolidFillRGBA = CreateSolidFillRGBA; window['AscFormat'].getGrayscaleValue = getGrayscaleValue; window['AscFormat'].CBlipFill = window['Asc']['asc_CFillBlip'] = window['Asc'].asc_CFillBlip = CBlipFill; CBlipFill.flipTypes["none"] = CBlipFill.flipTypes.none; CBlipFill.flipTypes["x"] = CBlipFill.flipTypes.x; CBlipFill.flipTypes["y"] = CBlipFill.flipTypes.y; CBlipFill.flipTypes["xy"] = CBlipFill.flipTypes.xy; prot = CBlipFill.prototype; prot['asc_getTile'] = prot.asc_getTile = prot.getTile; prot['asc_setTile'] = prot.asc_setTile = prot.setTile; prot['asc_getStretch'] = prot.asc_getStretch = prot.getStretch; prot['asc_setStretch'] = prot.asc_setStretch = prot.setStretch; prot['asc_getSrcRect'] = prot.asc_getSrcRect = prot.getSrcRect; prot['asc_setSrcRect'] = prot.asc_setSrcRect = prot.setSrcRect; prot['asc_getBlip'] = prot.asc_getBlip = prot.getBlip; prot['asc_setBlip'] = prot.asc_setBlip = prot.setBlip; prot['asc_getRotWithShape'] = prot.asc_getRotWithShape = prot.getRotWithShape; prot['asc_setRotWithShape'] = prot.asc_setRotWithShape = prot.setRotWithShape; prot['asc_getType'] = prot.asc_getType = prot['get_type'] = prot.get_type = prot.getType; prot['asc_setType'] = prot.asc_setType = prot['asc_putType'] = prot.asc_putType = prot['put_type'] = prot.put_type = prot.setType; prot['asc_getTextureId'] = prot.asc_getTextureId = prot['get_texture_id'] = prot.get_texture_id = prot.getTextureId; prot['asc_putTextureId'] = prot.asc_putTextureId = prot['put_texture_id'] = prot.put_texture_id = prot.setTextureId; prot['asc_getUrl'] = prot.asc_getUrl = prot['get_url'] = prot.get_url = prot.getUrl; prot['asc_setUrl'] = prot.asc_setUrl = prot['asc_putUrl'] = prot.asc_putUrl = prot['put_url'] = prot.put_url = prot.setUrl; window['AscFormat'].CBlipFillTile = CBlipFillTile; CBlipFillTile['flipTypes'] = CBlipFillTile.flipTypes = CBlipFill.flipTypes; prot = CBlipFillTile.prototype; prot['getTx'] = prot.getTx; prot['setTx'] = prot.setTx; prot['getTy'] = prot.getTy; prot['setTy'] = prot.setTy; prot['getSx'] = prot.getSx; prot['setSx'] = prot.setSx; prot['getSy'] = prot.getSy; prot['setSy'] = prot.setSy; prot['getFlip'] = prot.getFlip; prot['setFlip'] = prot.setFlip; prot['getAlgn'] = prot.getAlgn; prot['setAlgn'] = prot.setAlgn; window['AscFormat'].CSrcRect = CSrcRect; window['AscFormat'].CBlipFillStretch = CBlipFillStretch; prot = CBlipFillStretch.prototype; prot['getFillRect'] = prot.getFillRect; prot['setFillRect'] = prot.setFillRect; window['AscFormat'].CBlip = CBlip; window['AscFormat'].CFillRect = CSrcRect; window['AscFormat'].CSolidFill = CSolidFill; window['AscFormat'].CGs = CGs; window['AscFormat'].GradLin = GradLin; window['AscFormat'].GradPath = GradPath; window['AscFormat'].CGradFill = CGradFill; window['AscFormat'].CPattFill = CPattFill; window['AscFormat'].CNoFill = CNoFill; window['AscFormat'].CGrpFill = CGrpFill; window['AscFormat'].CUniFill = CUniFill; window['AscFormat'].CompareUniFill = CompareUniFill; window['AscFormat'].CompareUnifillBool = CompareUnifillBool; window['AscFormat'].CompareShapeProperties = CompareShapeProperties; window['AscFormat'].CompareProtectionFlags = CompareProtectionFlags; window['AscFormat'].EndArrow = EndArrow; window['AscFormat'].ConvertJoinAggType = ConvertJoinAggType; window['AscFormat'].LineJoin = LineJoin; window['AscFormat'].CLn = CLn; window['AscFormat'].DefaultShapeDefinition = DefaultShapeDefinition; window['AscFormat'].CNvPr = CNvPr; window['AscFormat'].NvPr = NvPr; window['AscFormat'].Ph = Ph; window['AscFormat'].UniNvPr = UniNvPr; window['AscFormat'].StyleRef = StyleRef; window['AscFormat'].FontRef = FontRef; window['AscFormat'].CShapeStyle = CShapeStyle; window['AscFormat'].CreateDefaultShapeStyle = CreateDefaultShapeStyle; window['AscFormat'].CXfrm = CXfrm; window['AscFormat'].CEffectProperties = CEffectProperties; window['AscFormat'].CEffectLst = CEffectLst; window['AscFormat'].CSpPr = CSpPr; window['AscFormat'].ClrScheme = ClrScheme; window['AscFormat'].ClrMap = ClrMap; window['AscFormat'].ExtraClrScheme = ExtraClrScheme; window['AscFormat'].FontCollection = FontCollection; window['AscFormat'].FontScheme = FontScheme; window['AscFormat'].FmtScheme = FmtScheme; window['AscFormat'].ThemeElements = ThemeElements; window['AscFormat'].CTheme = CTheme; window['AscFormat'].HF = HF; window['AscFormat'].CBgPr = CBgPr; window['AscFormat'].CBg = CBg; window['AscFormat'].CSld = CSld; window['AscFormat'].CTextStyles = CTextStyles; window['AscFormat'].redrawSlide = redrawSlide; window['AscFormat'].CTextFit = CTextFit; window['AscFormat'].CBodyPr = CBodyPr; window['AscFormat'].CTextParagraphPr = CTextParagraphPr; window['AscFormat'].CompareBullets = CompareBullets; window['AscFormat'].CBuBlip = CBuBlip; window['AscFormat'].CBullet = CBullet; window['AscFormat'].CBulletColor = CBulletColor; window['AscFormat'].CBulletSize = CBulletSize; window['AscFormat'].CBulletTypeface = CBulletTypeface; window['AscFormat'].CBulletType = CBulletType; window['AscFormat'].TextListStyle = TextListStyle; window['AscFormat'].GenerateDefaultTheme = GenerateDefaultTheme; window['AscFormat'].GenerateDefaultVisioTheme = GenerateDefaultVisioTheme; window['AscFormat'].GenerateDefaultMasterSlide = GenerateDefaultMasterSlide; window['AscFormat'].GenerateDefaultSlideLayout = GenerateDefaultSlideLayout; window['AscFormat'].GenerateDefaultSlide = GenerateDefaultSlide; window['AscFormat'].CreateDefaultTextRectStyle = CreateDefaultTextRectStyle; window['AscFormat'].GenerateDefaultColorMap = GenerateDefaultColorMap; window['AscFormat'].CreateAscFill = CreateAscFill; window['AscFormat'].CorrectUniFill = CorrectUniFill; window['AscFormat'].CreateAscStroke = CreateAscStroke; window['AscFormat'].CorrectUniStroke = CorrectUniStroke; window['AscFormat'].CreateAscShapePropFromProp = CreateAscShapePropFromProp; window['AscFormat'].CreateAscTextArtProps = CreateAscTextArtProps; window['AscFormat'].CreateUnifillFromAscColor = CreateUnifillFromAscColor; window['AscFormat'].CorrectUniColor = CorrectUniColor; window['AscFormat'].deleteDrawingBase = deleteDrawingBase; window['AscFormat'].CNvUniSpPr = CNvUniSpPr; window['AscFormat'].UniMedia = UniMedia; window['AscFormat'].CT_Hyperlink = CT_Hyperlink; window['AscFormat'].builder_CreateShape = builder_CreateShape; window['AscFormat'].builder_CreateChart = builder_CreateChart; window['AscFormat'].builder_CreateGroup = builder_CreateGroup; window['AscFormat'].builder_CreateSchemeColor = builder_CreateSchemeColor; window['AscFormat'].builder_CreatePresetColor = builder_CreatePresetColor; window['AscFormat'].builder_CreateGradientStop = builder_CreateGradientStop; window['AscFormat'].builder_CreateLinearGradient = builder_CreateLinearGradient; window['AscFormat'].builder_CreateRadialGradient = builder_CreateRadialGradient; window['AscFormat'].builder_CreatePatternFill = builder_CreatePatternFill; window['AscFormat'].builder_CreateBlipFill = builder_CreateBlipFill; window['AscFormat'].builder_CreateLine = builder_CreateLine; window['AscFormat'].builder_SetChartTitle = builder_SetChartTitle; window['AscFormat'].builder_SetChartHorAxisTitle = builder_SetChartHorAxisTitle; window['AscFormat'].builder_SetChartVertAxisTitle = builder_SetChartVertAxisTitle; window['AscFormat'].builder_SetChartLegendPos = builder_SetChartLegendPos; window['AscFormat'].builder_SetShowDataLabels = builder_SetShowDataLabels; window['AscFormat'].builder_SetChartVertAxisOrientation = builder_SetChartVertAxisOrientation; window['AscFormat'].builder_SetChartHorAxisOrientation = builder_SetChartHorAxisOrientation; window['AscFormat'].builder_SetChartVertAxisTickLablePosition = builder_SetChartVertAxisTickLablePosition; window['AscFormat'].builder_SetChartHorAxisTickLablePosition = builder_SetChartHorAxisTickLablePosition; window['AscFormat'].builder_SetChartHorAxisMajorTickMark = builder_SetChartHorAxisMajorTickMark; window['AscFormat'].builder_SetChartHorAxisMinorTickMark = builder_SetChartHorAxisMinorTickMark; window['AscFormat'].builder_SetChartVerAxisMajorTickMark = builder_SetChartVerAxisMajorTickMark; window['AscFormat'].builder_SetChartVerAxisMinorTickMark = builder_SetChartVerAxisMinorTickMark; window['AscFormat'].builder_SetLegendFontSize = builder_SetLegendFontSize; window['AscFormat'].builder_SetHorAxisMajorGridlines = builder_SetHorAxisMajorGridlines; window['AscFormat'].builder_SetHorAxisMinorGridlines = builder_SetHorAxisMinorGridlines; window['AscFormat'].builder_SetVerAxisMajorGridlines = builder_SetVerAxisMajorGridlines; window['AscFormat'].builder_SetVerAxisMinorGridlines = builder_SetVerAxisMinorGridlines; window['AscFormat'].builder_SetHorAxisFontSize = builder_SetHorAxisFontSize; window['AscFormat'].builder_SetVerAxisFontSize = builder_SetVerAxisFontSize; window['AscFormat'].builder_SetShowPointDataLabel = builder_SetShowPointDataLabel; window['AscFormat'].Ax_Counter = Ax_Counter; window['AscFormat'].TYPE_TRACK = TYPE_TRACK; window['AscFormat'].TYPE_KIND = TYPE_KIND; window['AscFormat'].mapPrstColor = map_prst_color; window['AscFormat'].map_hightlight = map_hightlight; window['AscFormat'].ar_arrow = ar_arrow; window['AscFormat'].ar_diamond = ar_diamond; window['AscFormat'].ar_none = ar_none; window['AscFormat'].ar_oval = ar_oval; window['AscFormat'].ar_stealth = ar_stealth; window['AscFormat'].ar_triangle = ar_triangle; window['AscFormat'].LineEndType = LineEndType; window['AscFormat'].LineEndSize = LineEndSize; window['AscFormat'].LineJoinType = LineJoinType; //типы плейсхолдеров window['AscFormat']["phType_body"] = window['AscFormat'].phType_body = 0; window['AscFormat']["phType_chart"] = window['AscFormat'].phType_chart = 1; window['AscFormat']["phType_clipArt"] = window['AscFormat'].phType_clipArt = 2; window['AscFormat']["phType_ctrTitle"] = window['AscFormat'].phType_ctrTitle = 3; window['AscFormat']["phType_dgm"] = window['AscFormat'].phType_dgm = 4; window['AscFormat']["phType_dt"] = window['AscFormat'].phType_dt = 5; window['AscFormat']["phType_ftr"] = window['AscFormat'].phType_ftr = 6; window['AscFormat']["phType_hdr"] = window['AscFormat'].phType_hdr = 7; window['AscFormat']["phType_media"] = window['AscFormat'].phType_media = 8; window['AscFormat']["phType_obj"] = window['AscFormat'].phType_obj = 9; window['AscFormat']["phType_pic"] = window['AscFormat'].phType_pic = 10; window['AscFormat']["phType_sldImg"] = window['AscFormat'].phType_sldImg = 11; window['AscFormat']["phType_sldNum"] = window['AscFormat'].phType_sldNum = 12; window['AscFormat']["phType_subTitle"] = window['AscFormat'].phType_subTitle = 13; window['AscFormat']["phType_tbl"] = window['AscFormat'].phType_tbl = 14; window['AscFormat']["phType_title"] = window['AscFormat'].phType_title = 15; window['AscFormat'].fntStyleInd_none = 2; window['AscFormat'].fntStyleInd_major = 0; window['AscFormat'].fntStyleInd_minor = 1; window['AscFormat'].VERTICAL_ANCHOR_TYPE_BOTTOM = 0; window['AscFormat'].VERTICAL_ANCHOR_TYPE_CENTER = 1; window['AscFormat'].VERTICAL_ANCHOR_TYPE_DISTRIBUTED = 2; window['AscFormat'].VERTICAL_ANCHOR_TYPE_JUSTIFIED = 3; window['AscFormat'].VERTICAL_ANCHOR_TYPE_TOP = 4; //Vertical Text Types window['AscFormat'].nVertTTeaVert = 0; //( ( East Asian Vertical )) window['AscFormat'].nVertTThorz = 1; //( ( Horizontal )) window['AscFormat'].nVertTTmongolianVert = 2; //( ( Mongolian Vertical )) window['AscFormat'].nVertTTvert = 3; //( ( Vertical )) window['AscFormat'].nVertTTvert270 = 4;//( ( Vertical 270 )) window['AscFormat'].nVertTTwordArtVert = 5;//( ( WordArt Vertical )) window['AscFormat'].nVertTTwordArtVertRtl = 6;//(Vertical WordArt Right to Left) //Text Wrapping Types window['AscFormat'].nTWTNone = 0; window['AscFormat'].nTWTSquare = 1; window['AscFormat'].BULLET_TYPE_COLOR_NONE = 0; window['AscFormat'].BULLET_TYPE_COLOR_CLRTX = 1; window['AscFormat'].BULLET_TYPE_COLOR_CLR = 2; window['AscFormat'].BULLET_TYPE_SIZE_NONE = 0; window['AscFormat'].BULLET_TYPE_SIZE_TX = 1; window['AscFormat'].BULLET_TYPE_SIZE_PCT = 2; window['AscFormat'].BULLET_TYPE_SIZE_PTS = 3; window['AscFormat'].BULLET_TYPE_TYPEFACE_NONE = 0; window['AscFormat'].BULLET_TYPE_TYPEFACE_TX = 1; window['AscFormat'].BULLET_TYPE_TYPEFACE_BUFONT = 2; window['AscFormat'].PARRUN_TYPE_NONE = 0; window['AscFormat'].PARRUN_TYPE_RUN = 1; window['AscFormat'].PARRUN_TYPE_FLD = 2; window['AscFormat'].PARRUN_TYPE_BR = 3; window['AscFormat'].PARRUN_TYPE_MATH = 4; window['AscFormat'].PARRUN_TYPE_MATHPARA = 5; window['AscFormat']._weight_body = _weight_body; window['AscFormat']._weight_chart = _weight_chart; window['AscFormat']._weight_clipArt = _weight_clipArt; window['AscFormat']._weight_ctrTitle = _weight_ctrTitle; window['AscFormat']._weight_dgm = _weight_dgm; window['AscFormat']._weight_media = _weight_media; window['AscFormat']._weight_obj = _weight_obj; window['AscFormat']._weight_pic = _weight_pic; window['AscFormat']._weight_subTitle = _weight_subTitle; window['AscFormat']._weight_tbl = _weight_tbl; window['AscFormat']._weight_title = _weight_title; window['AscFormat']._ph_multiplier = _ph_multiplier; window['AscFormat'].nSldLtTTitle = nSldLtTTitle; window['AscFormat'].nSldLtTObj = nSldLtTObj; window['AscFormat'].nSldLtTTx = nSldLtTTx; window['AscFormat']._arr_lt_types_weight = _arr_lt_types_weight; window['AscFormat']._global_layout_summs_array = _global_layout_summs_array; window['AscFormat'].AUDIO_CD = AUDIO_CD; window['AscFormat'].WAV_AUDIO_FILE = WAV_AUDIO_FILE; window['AscFormat'].AUDIO_FILE = AUDIO_FILE; window['AscFormat'].VIDEO_FILE = VIDEO_FILE; window['AscFormat'].QUICK_TIME_FILE = QUICK_TIME_FILE; window['AscFormat'].DRAW_TYPE_PEN = DRAW_TYPE_PEN; window['AscFormat'].DRAW_TYPE_PENCIL = DRAW_TYPE_PENCIL; window['AscFormat'].DRAW_TYPE_HIGHLITER = DRAW_TYPE_HIGHLITER; window['AscFormat'].EFFECT_TYPE_NONE = EFFECT_TYPE_NONE; window['AscFormat'].EFFECT_TYPE_OUTERSHDW = EFFECT_TYPE_OUTERSHDW; window['AscFormat'].EFFECT_TYPE_GLOW = EFFECT_TYPE_GLOW; window['AscFormat'].EFFECT_TYPE_DUOTONE = EFFECT_TYPE_DUOTONE; window['AscFormat'].EFFECT_TYPE_XFRM = EFFECT_TYPE_XFRM; window['AscFormat'].EFFECT_TYPE_BLUR = EFFECT_TYPE_BLUR; window['AscFormat'].EFFECT_TYPE_PRSTSHDW = EFFECT_TYPE_PRSTSHDW; window['AscFormat'].EFFECT_TYPE_INNERSHDW = EFFECT_TYPE_INNERSHDW; window['AscFormat'].EFFECT_TYPE_REFLECTION = EFFECT_TYPE_REFLECTION; window['AscFormat'].EFFECT_TYPE_SOFTEDGE = EFFECT_TYPE_SOFTEDGE; window['AscFormat'].EFFECT_TYPE_FILLOVERLAY = EFFECT_TYPE_FILLOVERLAY; window['AscFormat'].EFFECT_TYPE_ALPHACEILING = EFFECT_TYPE_ALPHACEILING; window['AscFormat'].EFFECT_TYPE_ALPHAFLOOR = EFFECT_TYPE_ALPHAFLOOR; window['AscFormat'].EFFECT_TYPE_TINTEFFECT = EFFECT_TYPE_TINTEFFECT; window['AscFormat'].EFFECT_TYPE_RELOFF = EFFECT_TYPE_RELOFF; window['AscFormat'].EFFECT_TYPE_LUM = EFFECT_TYPE_LUM; window['AscFormat'].EFFECT_TYPE_HSL = EFFECT_TYPE_HSL; window['AscFormat'].EFFECT_TYPE_GRAYSCL = EFFECT_TYPE_GRAYSCL; window['AscFormat'].EFFECT_TYPE_ELEMENT = EFFECT_TYPE_ELEMENT; window['AscFormat'].EFFECT_TYPE_ALPHAREPL = EFFECT_TYPE_ALPHAREPL; window['AscFormat'].EFFECT_TYPE_ALPHAOUTSET = EFFECT_TYPE_ALPHAOUTSET; window['AscFormat'].EFFECT_TYPE_ALPHAMODFIX = EFFECT_TYPE_ALPHAMODFIX; window['AscFormat'].EFFECT_TYPE_ALPHABILEVEL = EFFECT_TYPE_ALPHABILEVEL; window['AscFormat'].EFFECT_TYPE_BILEVEL = EFFECT_TYPE_BILEVEL; window['AscFormat'].EFFECT_TYPE_DAG = EFFECT_TYPE_DAG; window['AscFormat'].EFFECT_TYPE_FILL = EFFECT_TYPE_FILL; window['AscFormat'].EFFECT_TYPE_CLRREPL = EFFECT_TYPE_CLRREPL; window['AscFormat'].EFFECT_TYPE_CLRCHANGE = EFFECT_TYPE_CLRCHANGE; window['AscFormat'].EFFECT_TYPE_ALPHAINV = EFFECT_TYPE_ALPHAINV; window['AscFormat'].EFFECT_TYPE_ALPHAMOD = EFFECT_TYPE_ALPHAMOD; window['AscFormat'].EFFECT_TYPE_BLEND = EFFECT_TYPE_BLEND; window['AscFormat'].fCreateEffectByType = fCreateEffectByType; window['AscFormat'].COuterShdw = COuterShdw; window['AscFormat'].CGlow = CGlow; window['AscFormat'].CDuotone = CDuotone; window['AscFormat'].CXfrmEffect = CXfrmEffect; window['AscFormat'].CBlur = CBlur; window['AscFormat'].CPrstShdw = CPrstShdw; window['AscFormat'].CInnerShdw = CInnerShdw; window['AscFormat'].CReflection = CReflection; window['AscFormat'].CSoftEdge = CSoftEdge; window['AscFormat'].CFillOverlay = CFillOverlay; window['AscFormat'].CAlphaCeiling = CAlphaCeiling; window['AscFormat'].CAlphaFloor = CAlphaFloor; window['AscFormat'].CTintEffect = CTintEffect; window['AscFormat'].CRelOff = CRelOff; window['AscFormat'].CLumEffect = CLumEffect; window['AscFormat'].CHslEffect = CHslEffect; window['AscFormat'].CGrayscl = CGrayscl; window['AscFormat'].CEffectElement = CEffectElement; window['AscFormat'].CAlphaRepl = CAlphaRepl; window['AscFormat'].CAlphaOutset = CAlphaOutset; window['AscFormat'].CAlphaModFix = CAlphaModFix; window['AscFormat'].CAlphaBiLevel = CAlphaBiLevel; window['AscFormat'].CBiLevel = CBiLevel; window['AscFormat'].CEffectContainer = CEffectContainer; window['AscFormat'].CFillEffect = CFillEffect; window['AscFormat'].CClrRepl = CClrRepl; window['AscFormat'].CClrChange = CClrChange; window['AscFormat'].CAlphaInv = CAlphaInv; window['AscFormat'].CAlphaMod = CAlphaMod; window['AscFormat'].CBlend = CBlend; window['AscFormat'].CreateNoneBullet = CreateNoneBullet; window['AscFormat'].ChartBuilderTypeToInternal = ChartBuilderTypeToInternal; window['AscFormat'].InitClass = InitClass; window['AscFormat'].InitClassWithoutType = InitClassWithoutType; window['AscFormat'].CBaseObject = CBaseObject; window['AscFormat'].CBaseFormatObject = CBaseFormatObject; window['AscFormat'].CBaseFormatNoIdObject = CBaseFormatNoIdObject; window['AscFormat'].CBaseNoIdObject = CBaseNoIdObject; window['AscFormat'].checkRasterImageId = checkRasterImageId; window['AscFormat'].IdEntry = IdEntry; window['AscFormat'].CEffectStyle = CEffectStyle; window['AscFormat'].DEFAULT_COLOR_MAP = null; window['AscFormat'].DEFAULT_THEME = null; window['AscFormat'].GetDefaultColorMap = GetDefaultColorMap; window['AscFormat'].GetDefaultTheme = GetDefaultTheme; window['AscFormat'].getPercentageValue = getPercentageValue; window['AscFormat'].getPercentageValueForWrite = getPercentageValueForWrite; window['AscFormat'].CSpTree = CSpTree; window['AscFormat'].CClrMapOvr = CClrMapOvr; window['AscFormat'].CBaseAttrObject = CBaseAttrObject; window['AscFormat'].PartTitle = PartTitle; window['AscFormat'].CCustomProperty = CCustomProperty; window['AscFormat'].CVariantVector = CVariantVector; window['AscFormat'].CVariantArray = CVariantArray; window['AscFormat'].CVariantVStream = CVariantVStream; window['AscFormat'].fRGBAToHexString = fRGBAToHexString; window['AscFormat'].RefreshContentAllFields = RefreshContentAllFields; window['AscFormat'].IsEqualObjects = IsEqualObjects; window['AscFormat'].CreateSchemeUnicolorWithMods = CreateSchemeUnicolorWithMods; window['AscFormat'].szPh_full = szPh_full; window['AscFormat'].szPh_half = szPh_half; window['AscFormat'].szPh_quarter = szPh_quarter; window['AscFormat'].orientPh_horz = orientPh_horz; window['AscFormat'].orientPh_vert = orientPh_vert; window['AscFormat'].effectcontainertypeSib = effectcontainertypeSib; window['AscFormat'].effectcontainertypeTree = effectcontainertypeTree; window['AscFormat'].CLR_IDX_MAP = CLR_IDX_MAP; window['AscFormat'].MAP_AUTONUM_TYPES = MAP_AUTONUM_TYPES; window['AscFormat'].CLR_NAME_MAP = CLR_NAME_MAP; window['AscFormat'].LINE_PRESETS_MAP = LINE_PRESETS_MAP; window['AscFormat'].OBJECT_MORPH_MARKER = OBJECT_MORPH_MARKER; // Visio extensions export window['AscFormat'].CClrSchemeExtLst = CClrSchemeExtLst; window['AscFormat'].CVariationClrScheme = CVariationClrScheme; window['AscFormat'].CVarColor = CVarColor; window['AscFormat'].CThemeExt = CThemeExt; window['AscFormat'].CVariationStyleScheme = CVariationStyleScheme; window['AscFormat'].CVarStyle = CVarStyle; window['AscFormat'].CFontProps = CFontProps; window['AscFormat'].CLineStyle = CLineStyle; window["AscFormat"].RECT_ALIGN_B = RECT_ALIGN_B; window["AscFormat"].RECT_ALIGN_BL = RECT_ALIGN_BL; window["AscFormat"].RECT_ALIGN_BR = RECT_ALIGN_BR; window["AscFormat"].RECT_ALIGN_CTR = RECT_ALIGN_CTR; window["AscFormat"].RECT_ALIGN_L = RECT_ALIGN_L; window["AscFormat"].RECT_ALIGN_R = RECT_ALIGN_R; window["AscFormat"].RECT_ALIGN_T = RECT_ALIGN_T; window["AscFormat"].RECT_ALIGN_TL = RECT_ALIGN_TL; window["AscFormat"].RECT_ALIGN_TR = RECT_ALIGN_TR; }) (window);