@usejunior/docx-core 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/atomizer.d.ts +49 -0
- package/dist/atomizer.d.ts.map +1 -1
- package/dist/atomizer.js +90 -0
- package/dist/atomizer.js.map +1 -1
- package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -1
- package/dist/baselines/atomizer/documentReconstructor.js +289 -92
- package/dist/baselines/atomizer/documentReconstructor.js.map +1 -1
- package/dist/baselines/atomizer/formattingFidelity.d.ts +99 -0
- package/dist/baselines/atomizer/formattingFidelity.d.ts.map +1 -0
- package/dist/baselines/atomizer/formattingFidelity.js +449 -0
- package/dist/baselines/atomizer/formattingFidelity.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +37 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +189 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +74 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.js +171 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +88 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js +326 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +85 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +402 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +39 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js +265 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +62 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.js +139 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +189 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +427 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier.d.ts +6 -290
- package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -1
- package/dist/baselines/atomizer/inPlaceModifier.js +23 -1828
- package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -1
- package/dist/baselines/atomizer/pipeline.d.ts +76 -1
- package/dist/baselines/atomizer/pipeline.d.ts.map +1 -1
- package/dist/baselines/atomizer/pipeline.js +445 -108
- package/dist/baselines/atomizer/pipeline.js.map +1 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js +56 -160
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -1
- package/dist/compare-types.d.ts +151 -0
- package/dist/compare-types.d.ts.map +1 -0
- package/dist/compare-types.js +2 -0
- package/dist/compare-types.js.map +1 -0
- package/dist/core-types.d.ts +5 -1
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +5 -1
- package/dist/core-types.js.map +1 -1
- package/dist/footnotes.d.ts +8 -3
- package/dist/footnotes.d.ts.map +1 -1
- package/dist/footnotes.js +8 -3
- package/dist/footnotes.js.map +1 -1
- package/dist/index.d.ts +6 -150
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/libreoffice-oracle.d.ts +41 -0
- package/dist/integration/libreoffice-oracle.d.ts.map +1 -0
- package/dist/integration/libreoffice-oracle.js +282 -0
- package/dist/integration/libreoffice-oracle.js.map +1 -0
- package/dist/integration/synthetic-docx-fixture.d.ts +62 -0
- package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -0
- package/dist/integration/synthetic-docx-fixture.js +171 -0
- package/dist/integration/synthetic-docx-fixture.js.map +1 -0
- package/dist/primitives/accept_changes.d.ts +2 -2
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +24 -79
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/comments.d.ts +12 -3
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +374 -97
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/content_fingerprint.d.ts +29 -0
- package/dist/primitives/content_fingerprint.d.ts.map +1 -0
- package/dist/primitives/content_fingerprint.js +63 -0
- package/dist/primitives/content_fingerprint.js.map +1 -0
- package/dist/primitives/document.d.ts +56 -15
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +303 -32
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-comments.d.ts +18 -0
- package/dist/primitives/document_view-comments.d.ts.map +1 -0
- package/dist/primitives/document_view-comments.js +159 -0
- package/dist/primitives/document_view-comments.js.map +1 -0
- package/dist/primitives/document_view-headings.d.ts +45 -0
- package/dist/primitives/document_view-headings.d.ts.map +1 -0
- package/dist/primitives/document_view-headings.js +247 -0
- package/dist/primitives/document_view-headings.js.map +1 -0
- package/dist/primitives/document_view-styles.d.ts +11 -0
- package/dist/primitives/document_view-styles.d.ts.map +1 -0
- package/dist/primitives/document_view-styles.js +104 -0
- package/dist/primitives/document_view-styles.js.map +1 -0
- package/dist/primitives/document_view-toon.d.ts +37 -0
- package/dist/primitives/document_view-toon.d.ts.map +1 -0
- package/dist/primitives/document_view-toon.js +199 -0
- package/dist/primitives/document_view-toon.js.map +1 -0
- package/dist/primitives/document_view-types.d.ts +137 -0
- package/dist/primitives/document_view-types.d.ts.map +1 -0
- package/dist/primitives/document_view-types.js +2 -0
- package/dist/primitives/document_view-types.js.map +1 -0
- package/dist/primitives/document_view.d.ts +8 -106
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +134 -301
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/dom-helpers.d.ts +9 -0
- package/dist/primitives/dom-helpers.d.ts.map +1 -1
- package/dist/primitives/dom-helpers.js +10 -1
- package/dist/primitives/dom-helpers.js.map +1 -1
- package/dist/primitives/footnotes.d.ts +4 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +232 -44
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.d.ts +6 -0
- package/dist/primitives/formatting_tags.d.ts.map +1 -1
- package/dist/primitives/formatting_tags.js +6 -1
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +6 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +5 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/layout.d.ts +4 -3
- package/dist/primitives/layout.d.ts.map +1 -1
- package/dist/primitives/layout.js +32 -3
- package/dist/primitives/layout.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +21 -3
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +32 -10
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +6 -0
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +9 -0
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/reject_changes.d.ts +2 -2
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +24 -81
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/semantic_tags.d.ts +7 -0
- package/dist/primitives/semantic_tags.d.ts.map +1 -1
- package/dist/primitives/semantic_tags.js +21 -3
- package/dist/primitives/semantic_tags.js.map +1 -1
- package/dist/primitives/serialize_html.d.ts +36 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -0
- package/dist/primitives/serialize_html.js +393 -0
- package/dist/primitives/serialize_html.js.map +1 -0
- package/dist/primitives/serialize_markdown.d.ts +16 -0
- package/dist/primitives/serialize_markdown.d.ts.map +1 -0
- package/dist/primitives/serialize_markdown.js +300 -0
- package/dist/primitives/serialize_markdown.js.map +1 -0
- package/dist/primitives/serialize_plaintext.d.ts +15 -0
- package/dist/primitives/serialize_plaintext.d.ts.map +1 -0
- package/dist/primitives/serialize_plaintext.js +154 -0
- package/dist/primitives/serialize_plaintext.js.map +1 -0
- package/dist/primitives/styles.js +22 -22
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/tables.d.ts.map +1 -1
- package/dist/primitives/tables.js +13 -3
- package/dist/primitives/tables.js.map +1 -1
- package/dist/primitives/text.d.ts +2 -1
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +116 -12
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +139 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -0
- package/dist/primitives/track-changes-emitter.js +241 -0
- package/dist/primitives/track-changes-emitter.js.map +1 -0
- package/dist/primitives/xml-helpers.d.ts +29 -0
- package/dist/primitives/xml-helpers.d.ts.map +1 -0
- package/dist/primitives/xml-helpers.js +35 -0
- package/dist/primitives/xml-helpers.js.map +1 -0
- package/dist/shared/ooxml/namespaces.d.ts +4 -1
- package/dist/shared/ooxml/namespaces.d.ts.map +1 -1
- package/dist/shared/ooxml/namespaces.js +4 -1
- package/dist/shared/ooxml/namespaces.js.map +1 -1
- package/package.json +7 -6
package/dist/atomizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomizer.js","sourceRoot":"","sources":["../src/atomizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"atomizer.js","sourceRoot":"","sources":["../src/atomizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentReconstructor.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/documentReconstructor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"documentReconstructor.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/documentReconstructor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA8B9D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC;CACZ;AAoBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,kBAAkB,EAAE,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAsCR;AAgYD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAKlD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAOA;AAwUD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAEhE;AA4yBD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAmBlF;AAYD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,kBAAkB,EAAE,GAChC,mBAAmB,CAuCrB"}
|
|
@@ -8,8 +8,10 @@ import { XMLSerializer } from '@xmldom/xmldom';
|
|
|
8
8
|
import { parseXml } from '../../primitives/xml.js';
|
|
9
9
|
import { CorrelationStatus } from '../../core-types.js';
|
|
10
10
|
import { getLeafText, childElements, findChildByTagName } from '../../primitives/index.js';
|
|
11
|
+
import { allocateRevisionId, buildPPrChangeElement, convertSerializedDeletionContent, createRevisionContext, createRevisionIdState, escapeXmlAttr, formatDate, wrapSerializedContentWithDel, wrapSerializedContentWithIns, } from '../../primitives/track-changes-emitter.js';
|
|
11
12
|
import { serializeToXml, cloneElement } from './xmlToWmlElement.js';
|
|
12
|
-
import { EMPTY_PARAGRAPH_TAG } from '../../atomizer.js';
|
|
13
|
+
import { EMPTY_PARAGRAPH_TAG, isParagraphLevelLeaf, nearestHyperlinkAncestor } from '../../atomizer.js';
|
|
14
|
+
import { enforceConsumerCompatibility } from './consumerCompatibility.js';
|
|
13
15
|
import { areRunPropertiesEqual } from '../../format-detection.js';
|
|
14
16
|
import { debug } from './debug.js';
|
|
15
17
|
const SYNTHETIC_DOC = parseXml('<root xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"/>');
|
|
@@ -21,21 +23,6 @@ function createEl(tag, attrs) {
|
|
|
21
23
|
el.setAttribute(k, v);
|
|
22
24
|
return el;
|
|
23
25
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Create initial revision ID state.
|
|
26
|
-
*/
|
|
27
|
-
function createRevisionIdState() {
|
|
28
|
-
return {
|
|
29
|
-
nextId: 1,
|
|
30
|
-
moveRangeIds: new Map(),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Allocate a new revision ID.
|
|
35
|
-
*/
|
|
36
|
-
function allocateRevisionId(state) {
|
|
37
|
-
return state.nextId++;
|
|
38
|
-
}
|
|
39
26
|
/**
|
|
40
27
|
* Get or allocate move range IDs for a move name.
|
|
41
28
|
*/
|
|
@@ -50,12 +37,6 @@ function getMoveRangeIds(state, moveName) {
|
|
|
50
37
|
}
|
|
51
38
|
return ids;
|
|
52
39
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Format date for OOXML (ISO 8601).
|
|
55
|
-
*/
|
|
56
|
-
function formatDate(date) {
|
|
57
|
-
return date.toISOString().replace(/\.\d{3}Z$/, 'Z');
|
|
58
|
-
}
|
|
59
40
|
/**
|
|
60
41
|
* Reconstruct document.xml from merged atoms with track changes.
|
|
61
42
|
*
|
|
@@ -87,7 +68,7 @@ export function reconstructDocument(mergedAtoms, originalXml, options) {
|
|
|
87
68
|
const emptyCounters = getEmptyParagraphCounters();
|
|
88
69
|
debug('reconstructor', `Empty paragraphs: inserted=${emptyCounters.inserted}, deleted=${emptyCounters.deleted}, equal=${emptyCounters.equal}, other=${emptyCounters.other}`);
|
|
89
70
|
// Reconstruct the document, preserving original body structure (tables, SDTs, etc.)
|
|
90
|
-
return buildDocumentPreservingStructure(originalXml, paragraphXmls, paragraphGroups);
|
|
71
|
+
return buildDocumentPreservingStructure(originalXml, paragraphXmls, paragraphGroups, () => allocateRevisionId(revState));
|
|
91
72
|
}
|
|
92
73
|
/**
|
|
93
74
|
* Group atoms by paragraph based on their ancestor chain.
|
|
@@ -423,6 +404,7 @@ function isEmptyParagraphGroup(group) {
|
|
|
423
404
|
* Build XML for a single paragraph with track changes.
|
|
424
405
|
*/
|
|
425
406
|
function buildParagraphXml(group, author, dateStr, revState) {
|
|
407
|
+
const revisionCtx = createRevisionContext({ author, date: dateStr, idState: revState });
|
|
426
408
|
// Track empty paragraph statuses for debugging
|
|
427
409
|
if (isEmptyParagraphGroup(group)) {
|
|
428
410
|
const status = group.runGroups[0]?.atoms[0]?.correlationStatus;
|
|
@@ -460,33 +442,25 @@ function buildParagraphXml(group, author, dateStr, revState) {
|
|
|
460
442
|
// entirely (instead of leaving behind a stub <w:p> break).
|
|
461
443
|
if (isEntireParagraphWithStatus(group, CorrelationStatus.Inserted)) {
|
|
462
444
|
const paraId = allocateRevisionId(revState);
|
|
463
|
-
const
|
|
464
|
-
|
|
445
|
+
const insertedRunXml = paragraphHasHyperlinkAtoms(group)
|
|
446
|
+
? buildWholeParagraphRevisionContent(group, (runs) => wrapSerializedContentWithIns(runs, revisionCtx))
|
|
447
|
+
: wrapSerializedContentWithIns(group.runGroups.map((runGroup) => buildRunContentAsPlainRun(runGroup)).join(''), revisionCtx);
|
|
448
|
+
const pPrChangeEl = buildPPrChangeElement(group.pPr, revisionCtx);
|
|
465
449
|
const parts = [];
|
|
466
450
|
parts.push('<w:p>');
|
|
467
451
|
parts.push(serializePPrWithParaRevisionMarker(group.pPr, 'w:ins', paraId, author, dateStr, pPrChangeEl));
|
|
468
|
-
parts.push(
|
|
469
|
-
for (const runGroup of group.runGroups) {
|
|
470
|
-
parts.push(buildRunContentAsPlainRun(runGroup));
|
|
471
|
-
}
|
|
472
|
-
parts.push('</w:ins>');
|
|
452
|
+
parts.push(insertedRunXml);
|
|
473
453
|
parts.push('</w:p>');
|
|
474
454
|
return parts.join('');
|
|
475
455
|
}
|
|
476
456
|
if (isEntireParagraphWithStatus(group, CorrelationStatus.Deleted)) {
|
|
477
457
|
const paraId = allocateRevisionId(revState);
|
|
478
|
-
const runId = allocateRevisionId(revState);
|
|
479
458
|
const parts = [];
|
|
480
459
|
parts.push('<w:p>');
|
|
481
460
|
parts.push(serializePPrWithParaRevisionMarker(group.pPr, 'w:del', paraId, author, dateStr));
|
|
482
|
-
parts.push(
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
parts.push(plainRun
|
|
486
|
-
.replace(/<w:t([^>]*)>([^<]*)<\/w:t>/g, '<w:delText$1>$2</w:delText>')
|
|
487
|
-
.replace(/<w:instrText([^>]*)>([^<]*)<\/w:instrText>/g, '<w:delInstrText$1>$2</w:delInstrText>'));
|
|
488
|
-
}
|
|
489
|
-
parts.push('</w:del>');
|
|
461
|
+
parts.push(paragraphHasHyperlinkAtoms(group)
|
|
462
|
+
? buildWholeParagraphRevisionContent(group, (runs) => wrapSerializedContentWithDel(runs, revisionCtx))
|
|
463
|
+
: wrapSerializedContentWithDel(group.runGroups.map((runGroup) => buildRunContentAsPlainRun(runGroup)).join(''), revisionCtx));
|
|
490
464
|
parts.push('</w:p>');
|
|
491
465
|
return parts.join('');
|
|
492
466
|
}
|
|
@@ -495,7 +469,7 @@ function buildParagraphXml(group, author, dateStr, revState) {
|
|
|
495
469
|
// marker inside w:pPr > w:rPr.
|
|
496
470
|
if (isEmptyParagraphWithStatus(group, CorrelationStatus.Inserted)) {
|
|
497
471
|
const paraId = allocateRevisionId(revState);
|
|
498
|
-
const pPrChangeEl = buildPPrChangeElement(group.pPr,
|
|
472
|
+
const pPrChangeEl = buildPPrChangeElement(group.pPr, revisionCtx);
|
|
499
473
|
const pPrXml = serializePPrWithParaRevisionMarker(group.pPr, 'w:ins', paraId, author, dateStr, pPrChangeEl);
|
|
500
474
|
return `<w:p>${pPrXml}</w:p>`;
|
|
501
475
|
}
|
|
@@ -511,10 +485,17 @@ function buildParagraphXml(group, author, dateStr, revState) {
|
|
|
511
485
|
if (group.pPr) {
|
|
512
486
|
parts.push(serializeToXml(group.pPr));
|
|
513
487
|
}
|
|
514
|
-
// Add run groups with track changes
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
488
|
+
// Add run groups with track changes, restoring w:hyperlink wrappers when
|
|
489
|
+
// the paragraph contains hyperlink atoms (issue #368). Hyperlink-free
|
|
490
|
+
// paragraphs keep the legacy per-group emission byte-identical.
|
|
491
|
+
if (paragraphHasHyperlinkAtoms(group)) {
|
|
492
|
+
parts.push(buildRunGroupsWithHyperlinks(group.runGroups, author, dateStr, revState));
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
for (const runGroup of group.runGroups) {
|
|
496
|
+
const runXml = buildRunGroupXml(runGroup, author, dateStr, revState);
|
|
497
|
+
parts.push(runXml);
|
|
498
|
+
}
|
|
518
499
|
}
|
|
519
500
|
parts.push('</w:p>');
|
|
520
501
|
return parts.join('');
|
|
@@ -555,30 +536,6 @@ function serializePPrWithParaRevisionMarker(pPr, markerTag, id, author, dateStr,
|
|
|
555
536
|
}
|
|
556
537
|
return serializeToXml(effectivePPr);
|
|
557
538
|
}
|
|
558
|
-
/**
|
|
559
|
-
* Build a `<w:pPrChange>` Element from a pPr DOM element.
|
|
560
|
-
*
|
|
561
|
-
* The child `<w:pPr>` conforms to CT_PPrBase — it excludes w:rPr, w:sectPr,
|
|
562
|
-
* w:rPrChange, and w:pPrChange.
|
|
563
|
-
*/
|
|
564
|
-
function buildPPrChangeElement(pPr, author, dateStr, revState) {
|
|
565
|
-
const id = allocateRevisionId(revState);
|
|
566
|
-
const EXCLUDED = new Set(['w:rPr', 'w:rPrChange', 'w:pPrChange', 'w:sectPr']);
|
|
567
|
-
const pPrChange = createEl('w:pPrChange', {
|
|
568
|
-
'w:id': String(id),
|
|
569
|
-
'w:author': author,
|
|
570
|
-
'w:date': dateStr,
|
|
571
|
-
});
|
|
572
|
-
const oldPPr = createEl('w:pPr');
|
|
573
|
-
if (pPr) {
|
|
574
|
-
for (const child of childElements(pPr)) {
|
|
575
|
-
if (!EXCLUDED.has(child.tagName))
|
|
576
|
-
oldPPr.appendChild(child.cloneNode(true));
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
pPrChange.appendChild(oldPPr);
|
|
580
|
-
return pPrChange;
|
|
581
|
-
}
|
|
582
539
|
/**
|
|
583
540
|
* Returns true if every atom in the paragraph is of the specified status
|
|
584
541
|
* (ignoring EMPTY_PARAGRAPH_TAG markers).
|
|
@@ -622,6 +579,11 @@ function buildRunContentAsPlainRun(group) {
|
|
|
622
579
|
const contentAtoms = group.atoms.filter((atom) => atom.contentElement.tagName !== EMPTY_PARAGRAPH_TAG);
|
|
623
580
|
if (contentAtoms.length === 0)
|
|
624
581
|
return '';
|
|
582
|
+
// Paragraph-level markers must sit outside <w:r>; route through the
|
|
583
|
+
// marker-aware helper which buffers run atoms and flushes on each marker.
|
|
584
|
+
if (groupHasParagraphLevelAtoms(group)) {
|
|
585
|
+
return buildRunContentWithParagraphMarkers(group);
|
|
586
|
+
}
|
|
625
587
|
// If group has explicit rPr, emit a single run
|
|
626
588
|
if (group.rPr !== null) {
|
|
627
589
|
return buildSingleRun(group.atoms, group.rPr);
|
|
@@ -707,6 +669,243 @@ function subGroupByRPr(atoms) {
|
|
|
707
669
|
result.push({ rPr: currentRPr, atoms: currentAtoms });
|
|
708
670
|
return result;
|
|
709
671
|
}
|
|
672
|
+
/**
|
|
673
|
+
* Attribute fingerprint of a w:hyperlink element, used to recognize "the
|
|
674
|
+
* same" hyperlink across the original and revised trees (equal/deleted atoms
|
|
675
|
+
* reference the original tree's element, inserted atoms the revised tree's).
|
|
676
|
+
*/
|
|
677
|
+
function hyperlinkKey(el) {
|
|
678
|
+
const parts = [];
|
|
679
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
680
|
+
const attr = el.attributes.item(i);
|
|
681
|
+
if (attr.name.startsWith('xmlns'))
|
|
682
|
+
continue;
|
|
683
|
+
parts.push(`${attr.name}=${attr.value}`);
|
|
684
|
+
}
|
|
685
|
+
return parts.sort().join('');
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Resolve the hyperlink wrapper an atom belongs to, preferring the
|
|
689
|
+
* original-tree element so the re-emitted r:id resolves against the
|
|
690
|
+
* original-based rebuild package: deleted atoms carry original ancestry
|
|
691
|
+
* directly; equal atoms (revised tree) reach it via comparisonUnitAtomBefore.
|
|
692
|
+
*
|
|
693
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.22
|
|
694
|
+
* @see https://github.com/UseJunior/safe-docx/issues/368
|
|
695
|
+
*/
|
|
696
|
+
function resolveHyperlinkForAtom(atom) {
|
|
697
|
+
const own = nearestHyperlinkAncestor(atom);
|
|
698
|
+
if (!own)
|
|
699
|
+
return null;
|
|
700
|
+
if (atom.sourceDocument === 'original') {
|
|
701
|
+
return { element: own, key: hyperlinkKey(own), fromOriginal: true };
|
|
702
|
+
}
|
|
703
|
+
const before = atom.comparisonUnitAtomBefore;
|
|
704
|
+
const beforeHyperlink = before ? nearestHyperlinkAncestor(before) : null;
|
|
705
|
+
// Attribute to the original wrapper only when both trees agree on the
|
|
706
|
+
// hyperlink's attributes. When they differ (e.g. the revision retargeted
|
|
707
|
+
// the link to a new r:id), emitting the original wrapper would pin the
|
|
708
|
+
// still-equal link text to the STALE target in the accepted document —
|
|
709
|
+
// worse than dropping the wrapper. Such atoms fall through to the
|
|
710
|
+
// revised-only policy below instead.
|
|
711
|
+
// TODO(#376): the faithful tracked representation of a retargeted link
|
|
712
|
+
// is delete-old-link + insert-new-link (what Word emits), which needs the
|
|
713
|
+
// hyperlink fingerprint in atom identity so the LCS stops matching text
|
|
714
|
+
// across different link targets.
|
|
715
|
+
if (beforeHyperlink && hyperlinkKey(beforeHyperlink) === hyperlinkKey(own)) {
|
|
716
|
+
return { element: beforeHyperlink, key: hyperlinkKey(beforeHyperlink), fromOriginal: true };
|
|
717
|
+
}
|
|
718
|
+
// Revised-only attribution (purely inserted hyperlink). Emitting its r:id
|
|
719
|
+
// would dangle against the original-based package, so the caller only
|
|
720
|
+
// wraps when the hyperlink carries no relationship reference (anchor-only).
|
|
721
|
+
return { element: own, key: hyperlinkKey(own), fromOriginal: false };
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Whether a resolved hyperlink is safe to re-emit. Original-attributed
|
|
725
|
+
* wrappers always are; revised-only wrappers are safe only without an r:id
|
|
726
|
+
* (internal anchor links), because the rebuild package ships the ORIGINAL
|
|
727
|
+
* document.xml.rels and a revised-only r:id would be a dangling reference
|
|
728
|
+
* (Word treats those as a corrupt package). Revised-only r:id hyperlinks
|
|
729
|
+
* keep today's behavior — content emitted unwrapped.
|
|
730
|
+
*/
|
|
731
|
+
function isEmittableHyperlink(resolved) {
|
|
732
|
+
return resolved.fromOriginal || resolved.element.getAttribute('r:id') === null;
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* True when any atom in the paragraph sits inside a w:hyperlink. Gates the
|
|
736
|
+
* hyperlink-aware emission paths so hyperlink-free paragraphs keep the
|
|
737
|
+
* byte-identical legacy output.
|
|
738
|
+
*/
|
|
739
|
+
function paragraphHasHyperlinkAtoms(group) {
|
|
740
|
+
return group.runGroups.some((rg) => rg.atoms.some((atom) => nearestHyperlinkAncestor(atom) !== null));
|
|
741
|
+
}
|
|
742
|
+
/**
|
|
743
|
+
* Split a RunGroup into contiguous hyperlink-pure sub-groups.
|
|
744
|
+
*
|
|
745
|
+
* Moved groups are returned whole: splitting them would emit
|
|
746
|
+
* moveFromRangeStart/End once per slice, corrupting the move ranges. A move
|
|
747
|
+
* spanning a hyperlink keeps today's unwrapped emission.
|
|
748
|
+
*/
|
|
749
|
+
function splitRunGroupByHyperlink(group) {
|
|
750
|
+
if (group.status === CorrelationStatus.MovedSource ||
|
|
751
|
+
group.status === CorrelationStatus.MovedDestination) {
|
|
752
|
+
return [{ group, hyperlink: null }];
|
|
753
|
+
}
|
|
754
|
+
const segments = [];
|
|
755
|
+
let current = null;
|
|
756
|
+
for (const atom of group.atoms) {
|
|
757
|
+
// Emit-ability is decided per merged bucket, not per atom: an inserted
|
|
758
|
+
// atom inside an otherwise-original hyperlink folds into the adjacent
|
|
759
|
+
// original-attributed bucket via the shared key.
|
|
760
|
+
const resolved = resolveHyperlinkForAtom(atom);
|
|
761
|
+
const key = resolved?.key ?? null;
|
|
762
|
+
if (current && (current.hyperlink?.key ?? null) === key) {
|
|
763
|
+
current.group.atoms.push(atom);
|
|
764
|
+
// Prefer an original-attributed representative within the segment.
|
|
765
|
+
if (resolved?.fromOriginal && current.hyperlink && !current.hyperlink.fromOriginal) {
|
|
766
|
+
current.hyperlink = resolved;
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
else {
|
|
770
|
+
current = {
|
|
771
|
+
group: { ...group, atoms: [atom] },
|
|
772
|
+
hyperlink: resolved,
|
|
773
|
+
};
|
|
774
|
+
segments.push(current);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
return segments;
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* Serialize the opening tag of a re-emitted w:hyperlink wrapper, copying the
|
|
781
|
+
* source element's attributes verbatim (r:id, w:anchor, w:history, ...).
|
|
782
|
+
*/
|
|
783
|
+
function serializeHyperlinkOpenTag(el) {
|
|
784
|
+
const attrs = [];
|
|
785
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
786
|
+
const attr = el.attributes.item(i);
|
|
787
|
+
if (attr.name.startsWith('xmlns'))
|
|
788
|
+
continue;
|
|
789
|
+
attrs.push(` ${attr.name}="${escapeXmlAttr(attr.value)}"`);
|
|
790
|
+
}
|
|
791
|
+
return `<w:hyperlink${attrs.join('')}>`;
|
|
792
|
+
}
|
|
793
|
+
/**
|
|
794
|
+
* Merge adjacent segments that resolve to the same hyperlink fingerprint, so
|
|
795
|
+
* an equal/deleted/inserted sequence inside one link shares one wrapper.
|
|
796
|
+
*/
|
|
797
|
+
function mergeAdjacentHyperlinkSegments(segments) {
|
|
798
|
+
const buckets = [];
|
|
799
|
+
for (const segment of segments) {
|
|
800
|
+
const last = buckets[buckets.length - 1];
|
|
801
|
+
if (last && (last.hyperlink?.key ?? null) === (segment.hyperlink?.key ?? null)) {
|
|
802
|
+
last.groups.push(segment.group);
|
|
803
|
+
if (segment.hyperlink?.fromOriginal && last.hyperlink && !last.hyperlink.fromOriginal) {
|
|
804
|
+
last.hyperlink = segment.hyperlink;
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
else {
|
|
808
|
+
buckets.push({ hyperlink: segment.hyperlink, groups: [segment.group] });
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
return buckets;
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* Emit a paragraph's run groups with w:hyperlink wrappers restored around the
|
|
815
|
+
* runs whose atoms came from inside a hyperlink. Track-change wrappers nest
|
|
816
|
+
* INSIDE the hyperlink (`<w:hyperlink><w:ins>…`): CT_Hyperlink admits
|
|
817
|
+
* EG_RunLevelElts (w:ins / w:del / range markers), while CT_RunTrackChange
|
|
818
|
+
* does not admit w:hyperlink.
|
|
819
|
+
*
|
|
820
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.22
|
|
821
|
+
* @see https://github.com/UseJunior/safe-docx/issues/368
|
|
822
|
+
*/
|
|
823
|
+
function buildRunGroupsWithHyperlinks(runGroups, author, dateStr, revState) {
|
|
824
|
+
const buckets = mergeAdjacentHyperlinkSegments(runGroups.flatMap(splitRunGroupByHyperlink));
|
|
825
|
+
const parts = [];
|
|
826
|
+
for (const bucket of buckets) {
|
|
827
|
+
const content = bucket.groups
|
|
828
|
+
.map((g) => buildRunGroupXml(g, author, dateStr, revState))
|
|
829
|
+
.join('');
|
|
830
|
+
if (!content)
|
|
831
|
+
continue;
|
|
832
|
+
parts.push(bucket.hyperlink && isEmittableHyperlink(bucket.hyperlink)
|
|
833
|
+
? `${serializeHyperlinkOpenTag(bucket.hyperlink.element)}${content}</w:hyperlink>`
|
|
834
|
+
: content);
|
|
835
|
+
}
|
|
836
|
+
return parts.join('');
|
|
837
|
+
}
|
|
838
|
+
/**
|
|
839
|
+
* Whole-paragraph insert/delete emission with hyperlink wrappers restored.
|
|
840
|
+
* Each bucket gets its own revision wrapper so the hyperlink can stay
|
|
841
|
+
* OUTSIDE the w:ins / w:del (see buildRunGroupsWithHyperlinks).
|
|
842
|
+
*/
|
|
843
|
+
function buildWholeParagraphRevisionContent(group, wrap) {
|
|
844
|
+
const buckets = mergeAdjacentHyperlinkSegments(group.runGroups.flatMap(splitRunGroupByHyperlink));
|
|
845
|
+
const parts = [];
|
|
846
|
+
for (const bucket of buckets) {
|
|
847
|
+
const runs = bucket.groups.map((g) => buildRunContentAsPlainRun(g)).join('');
|
|
848
|
+
if (!runs)
|
|
849
|
+
continue;
|
|
850
|
+
const wrapped = wrap(runs);
|
|
851
|
+
parts.push(bucket.hyperlink && isEmittableHyperlink(bucket.hyperlink)
|
|
852
|
+
? `${serializeHyperlinkOpenTag(bucket.hyperlink.element)}${wrapped}</w:hyperlink>`
|
|
853
|
+
: wrapped);
|
|
854
|
+
}
|
|
855
|
+
return parts.join('');
|
|
856
|
+
}
|
|
857
|
+
/**
|
|
858
|
+
* Returns true when any atom in the group is a paragraph-level marker
|
|
859
|
+
* (commentRange / bookmark) that must be emitted outside <w:r>.
|
|
860
|
+
*/
|
|
861
|
+
function groupHasParagraphLevelAtoms(group) {
|
|
862
|
+
for (const atom of group.atoms) {
|
|
863
|
+
if (isParagraphLevelLeaf(atom.contentElement))
|
|
864
|
+
return true;
|
|
865
|
+
}
|
|
866
|
+
return false;
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Marker-aware emission for run groups containing paragraph-level atoms.
|
|
870
|
+
*
|
|
871
|
+
* Walks atoms left-to-right. Run-level atoms accumulate in a buffer; on
|
|
872
|
+
* encountering a paragraph-level atom (or end of group) the buffer is flushed
|
|
873
|
+
* via subGroupByRPr + buildSingleRun (one <w:r> per contiguous rPr) and the
|
|
874
|
+
* marker is emitted as a bare element.
|
|
875
|
+
*
|
|
876
|
+
* group.rPr is intentionally ignored here — RunGroup.rPr is captured from the
|
|
877
|
+
* first atom in groupAtomsByParagraph(), and for moved groups
|
|
878
|
+
* shouldStartNewRunGroup() suppresses rPr-based splitting. Always re-deriving
|
|
879
|
+
* rPr per atom prevents formatting bleed and bogus rPr inheritance from
|
|
880
|
+
* illegally nested markers.
|
|
881
|
+
*/
|
|
882
|
+
function buildRunContentWithParagraphMarkers(group) {
|
|
883
|
+
const parts = [];
|
|
884
|
+
let runBuffer = [];
|
|
885
|
+
const flush = () => {
|
|
886
|
+
if (runBuffer.length === 0)
|
|
887
|
+
return;
|
|
888
|
+
for (const sg of subGroupByRPr(runBuffer)) {
|
|
889
|
+
const run = buildSingleRun(sg.atoms, sg.rPr);
|
|
890
|
+
if (run)
|
|
891
|
+
parts.push(run);
|
|
892
|
+
}
|
|
893
|
+
runBuffer = [];
|
|
894
|
+
};
|
|
895
|
+
for (const atom of group.atoms) {
|
|
896
|
+
if (atom.contentElement.tagName === EMPTY_PARAGRAPH_TAG)
|
|
897
|
+
continue;
|
|
898
|
+
if (isParagraphLevelLeaf(atom.contentElement)) {
|
|
899
|
+
flush();
|
|
900
|
+
parts.push(serializeAtomElement(atom.contentElement));
|
|
901
|
+
}
|
|
902
|
+
else {
|
|
903
|
+
runBuffer.push(atom);
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
flush();
|
|
907
|
+
return parts.join('');
|
|
908
|
+
}
|
|
710
909
|
/**
|
|
711
910
|
* Build a single <w:r> element from a set of atoms with the given rPr.
|
|
712
911
|
* Preserves pendingText coalescing, collapsedFieldAtoms expansion,
|
|
@@ -801,6 +1000,11 @@ function buildRunContent(group) {
|
|
|
801
1000
|
if (contentAtoms.length === 0) {
|
|
802
1001
|
return '';
|
|
803
1002
|
}
|
|
1003
|
+
// Paragraph-level markers must sit outside <w:r>; route through the
|
|
1004
|
+
// marker-aware helper which buffers run atoms and flushes on each marker.
|
|
1005
|
+
if (groupHasParagraphLevelAtoms(group)) {
|
|
1006
|
+
return buildRunContentWithParagraphMarkers(group);
|
|
1007
|
+
}
|
|
804
1008
|
// If group has explicit rPr, emit a single run
|
|
805
1009
|
if (group.rPr !== null) {
|
|
806
1010
|
return buildSingleRun(group.atoms, group.rPr);
|
|
@@ -813,19 +1017,13 @@ function buildRunContent(group) {
|
|
|
813
1017
|
* Wrap content with w:ins element.
|
|
814
1018
|
*/
|
|
815
1019
|
function wrapWithIns(content, author, dateStr, revState) {
|
|
816
|
-
|
|
817
|
-
return `<w:ins w:id="${id}" w:author="${escapeXmlAttr(author)}" w:date="${dateStr}">${content}</w:ins>`;
|
|
1020
|
+
return wrapSerializedContentWithIns(content, createRevisionContext({ author, date: dateStr, idState: revState }));
|
|
818
1021
|
}
|
|
819
1022
|
/**
|
|
820
1023
|
* Wrap content with w:del element.
|
|
821
1024
|
*/
|
|
822
1025
|
function wrapWithDel(content, author, dateStr, revState) {
|
|
823
|
-
|
|
824
|
-
// For deletions, convert w:t to w:delText and w:instrText to w:delInstrText
|
|
825
|
-
const delContent = content
|
|
826
|
-
.replace(/<w:t([^>]*)>([^<]*)<\/w:t>/g, '<w:delText$1>$2</w:delText>')
|
|
827
|
-
.replace(/<w:instrText([^>]*)>([^<]*)<\/w:instrText>/g, '<w:delInstrText$1>$2</w:delInstrText>');
|
|
828
|
-
return `<w:del w:id="${id}" w:author="${escapeXmlAttr(author)}" w:date="${dateStr}">${delContent}</w:del>`;
|
|
1026
|
+
return wrapSerializedContentWithDel(content, createRevisionContext({ author, date: dateStr, idState: revState }));
|
|
829
1027
|
}
|
|
830
1028
|
/**
|
|
831
1029
|
* Wrap content with w:moveFrom elements.
|
|
@@ -833,10 +1031,7 @@ function wrapWithDel(content, author, dateStr, revState) {
|
|
|
833
1031
|
function wrapWithMoveFrom(content, author, dateStr, moveName, revState) {
|
|
834
1032
|
const ids = getMoveRangeIds(revState, moveName);
|
|
835
1033
|
const moveId = allocateRevisionId(revState);
|
|
836
|
-
|
|
837
|
-
const delContent = content
|
|
838
|
-
.replace(/<w:t([^>]*)>([^<]*)<\/w:t>/g, '<w:delText$1>$2</w:delText>')
|
|
839
|
-
.replace(/<w:instrText([^>]*)>([^<]*)<\/w:instrText>/g, '<w:delInstrText$1>$2</w:delInstrText>');
|
|
1034
|
+
const delContent = convertSerializedDeletionContent(content);
|
|
840
1035
|
return (`<w:moveFromRangeStart w:id="${ids.sourceRangeId}" w:name="${moveName}" w:author="${escapeXmlAttr(author)}" w:date="${dateStr}"/>` +
|
|
841
1036
|
`<w:moveFrom w:id="${moveId}" w:author="${escapeXmlAttr(author)}" w:date="${dateStr}">${delContent}</w:moveFrom>` +
|
|
842
1037
|
`<w:moveFromRangeEnd w:id="${ids.sourceRangeId}"/>`);
|
|
@@ -869,7 +1064,13 @@ function buildFormatChangeRun(group, author, dateStr, revState) {
|
|
|
869
1064
|
}
|
|
870
1065
|
}
|
|
871
1066
|
}
|
|
872
|
-
// Add rPrChange with old properties (wrapped in w:rPr per OOXML spec)
|
|
1067
|
+
// Add rPrChange with old properties (wrapped in w:rPr per OOXML spec).
|
|
1068
|
+
// Kept as the original per-child serialization (NOT delegated to
|
|
1069
|
+
// buildRPrChangeElement) to preserve byte-identical output: xmldom emits
|
|
1070
|
+
// inline `xmlns:w="..."` declarations when serializing detached children,
|
|
1071
|
+
// and downstream consumers may pin on that exact serialized form. The
|
|
1072
|
+
// DOM-aware buildRPrChangeElement helper exists for new primitive code
|
|
1073
|
+
// paths (#136 onward).
|
|
873
1074
|
const formatChange = group.atoms[0]?.formatChange;
|
|
874
1075
|
if (formatChange?.oldRunProperties) {
|
|
875
1076
|
const id = allocateRevisionId(revState);
|
|
@@ -946,7 +1147,7 @@ function isRootedGroup(group) {
|
|
|
946
1147
|
* <w:p> slots, inserted paragraphs are placed adjacent to their context, and
|
|
947
1148
|
* all structural wrappers (tables, SDTs, etc.) are preserved.
|
|
948
1149
|
*/
|
|
949
|
-
function buildDocumentPreservingStructure(originalXml, paragraphXmls, paragraphGroups) {
|
|
1150
|
+
function buildDocumentPreservingStructure(originalXml, paragraphXmls, paragraphGroups, allocateRevisionId) {
|
|
950
1151
|
const { doc, body, slots } = parseOriginalBodyStructure(originalXml);
|
|
951
1152
|
let slotCursor = 0;
|
|
952
1153
|
let lastEmittedNode = null;
|
|
@@ -1050,6 +1251,12 @@ function buildDocumentPreservingStructure(originalXml, paragraphXmls, paragraphG
|
|
|
1050
1251
|
for (const el of toRemove) {
|
|
1051
1252
|
el.parentNode.removeChild(el);
|
|
1052
1253
|
}
|
|
1254
|
+
// Balance bookmarks and enforce consumer-compatibility invariants on the
|
|
1255
|
+
// rebuilt body. This dedupes bookmark Names/IDs, hoists bookmarkStart/End
|
|
1256
|
+
// out of <w:ins>/<w:del> wrappers (so they survive accept/reject), and
|
|
1257
|
+
// synthesizes recovery markers for orphaned starts/ends. Mirrors the
|
|
1258
|
+
// post-processing applied in inplace mode (inPlaceModifier.ts).
|
|
1259
|
+
enforceConsumerCompatibility(body, allocateRevisionId);
|
|
1053
1260
|
// Serialize modified body and splice back into original envelope
|
|
1054
1261
|
const serializer = new XMLSerializer();
|
|
1055
1262
|
let newBodyXml = serializer.serializeToString(body);
|
|
@@ -1106,16 +1313,6 @@ function escapeXmlText(text) {
|
|
|
1106
1313
|
.replace(/</g, '<')
|
|
1107
1314
|
.replace(/>/g, '>');
|
|
1108
1315
|
}
|
|
1109
|
-
/**
|
|
1110
|
-
* Escape XML attribute value.
|
|
1111
|
-
*/
|
|
1112
|
-
function escapeXmlAttr(text) {
|
|
1113
|
-
return text
|
|
1114
|
-
.replace(/&/g, '&')
|
|
1115
|
-
.replace(/</g, '<')
|
|
1116
|
-
.replace(/>/g, '>')
|
|
1117
|
-
.replace(/"/g, '"');
|
|
1118
|
-
}
|
|
1119
1316
|
/**
|
|
1120
1317
|
* Count statistics from merged atoms.
|
|
1121
1318
|
*/
|