diff --git a/common/Drawings/Format/Data.js b/common/Drawings/Format/Data.js index 425e3a27b0..6c50374b21 100644 --- a/common/Drawings/Format/Data.js +++ b/common/Drawings/Format/Data.js @@ -9061,6 +9061,9 @@ Because of this, the display is sometimes not correct. } } } + if (oPr && oPr.contentCopyPr && oPr.contentCopyPr.Comparison) { + copy.generateDrawingPart(); + } return copy; }; SmartArt.prototype.copy2 = function(copy, oPr) diff --git a/word/Editor/Comparison.js b/word/Editor/Comparison.js index 97d494b5ac..131c13072b 100644 --- a/word/Editor/Comparison.js +++ b/word/Editor/Comparison.js @@ -41,7 +41,18 @@ //EXCLUDED_PUNCTUATION[95] = true; EXCLUDED_PUNCTUATION[160] = true; //EXCLUDED_PUNCTUATION[63] = true; + function getMockDocumentFromRuns(arrRuns) { + const arrSlice = arrRuns.slice(); + arrSlice.push(new AscCommonWord.ParaRun()); + arrSlice[arrSlice.length - 1].Content.push(new AscWord.CRunParagraphMark()); + const mockDocument = new AscCommonWord.CMockDocument(); + const mockParagraph = new AscCommonWord.CMockParagraph(); + mockDocument.Content.push(mockParagraph); + mockParagraph.Content = arrSlice; + + return mockDocument; + } function getChanges(arrOriginalTextElements, arrRevisedTextElements, comparison, oMainParent, oRevisedParent) { let arrTextPrChanges = []; if (comparison.options.formatting) { @@ -2168,18 +2179,6 @@ } return !this.oCommentManager.savedParaComments[oParaComment.Id]; } - function getMockDocumentFromRuns(arrRuns) { - const arrSlice = arrRuns.slice(); - arrSlice.push(new AscCommonWord.ParaRun()); - arrSlice[arrSlice.length - 1].Content.push(new AscWord.CRunParagraphMark()); - - const mockDocument = new AscCommonWord.CMockDocument(); - const mockParagraph = new AscCommonWord.CMockParagraph(); - mockDocument.Content.push(mockParagraph); - mockParagraph.Content = arrSlice; - - return mockDocument; - } CDocumentComparison.prototype.executeResolveConflictMode = function (oResolveConflictComparison, fCallback) { const oOldCommentsMeeting = this.oCommentManager.mapCommentMeeting; this.oCommentManager.mapCommentMeeting = {}; @@ -3847,7 +3846,7 @@ oDoc1.SetTrackRevisions(false); let bHaveRevisons2 = false; const oDoc2 = AscFormat.ExecuteNoHistory(function(){ - const openParams = {disableRevisions: true, noSendComments: true}; + const openParams = {disableRevisions: true, noSendComments: true, noGenerateSmartArts: true}; const oTempDocument = new CDocument(oApi.WordControl.m_oDrawingDocument, false); const oBinaryFileReader = new AscCommonWord.BinaryFileReader(oTempDocument, openParams); AscCommon.pptx_content_loader.Start_UseFullUrl(oApi.insertDocumentUrlsData); diff --git a/word/Editor/Merge.js b/word/Editor/Merge.js index 9188123b23..5dfb25fe5f 100644 --- a/word/Editor/Merge.js +++ b/word/Editor/Merge.js @@ -832,7 +832,7 @@ const oldTrackRevisions = oDoc1.GetLocalTrackRevisions(); oDoc1.SetTrackRevisions(false); const oDoc2 = AscFormat.ExecuteNoHistory(function () { - const openParams = {noSendComments: true}; + const openParams = {noSendComments: true, noGenerateSmartArts: true}; const oTempDocument = new CDocument(oApi.WordControl.m_oDrawingDocument, false); const oBinaryFileReader = new AscCommonWord.BinaryFileReader(oTempDocument, openParams); AscCommon.pptx_content_loader.Start_UseFullUrl(oApi.insertDocumentUrlsData); diff --git a/word/Editor/Serialize2.js b/word/Editor/Serialize2.js index 43293c8541..2ea7874981 100644 --- a/word/Editor/Serialize2.js +++ b/word/Editor/Serialize2.js @@ -8473,7 +8473,11 @@ function BinaryFileReader(doc, openParams) api && api.asc_addRestriction(restrictionType); } } - pptx_content_loader.Reader.GenerateSmartArts(); + if (this.openParams && this.openParams.noGenerateSmartArts) { + pptx_content_loader.Reader.smartarts.length = 0; + } else { + pptx_content_loader.Reader.GenerateSmartArts(); + } if (bClearPptxLoader) { //чтобы удалялся stream с бинарником