@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
|
@@ -21,9 +21,6 @@ function isW(node, localName) {
|
|
|
21
21
|
node.namespaceURI === W_NS &&
|
|
22
22
|
node.localName === localName);
|
|
23
23
|
}
|
|
24
|
-
function isWElement(node) {
|
|
25
|
-
return node.nodeType === 1 && node.namespaceURI === W_NS;
|
|
26
|
-
}
|
|
27
24
|
function getDepth(node) {
|
|
28
25
|
let depth = 0;
|
|
29
26
|
let cur = node.parentNode;
|
|
@@ -87,60 +84,6 @@ function paragraphHasParaMarker(p, markerLocalName) {
|
|
|
87
84
|
}
|
|
88
85
|
return false;
|
|
89
86
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Check if a node (or its descendants) contains any w:r elements.
|
|
92
|
-
*/
|
|
93
|
-
function containsRun(node) {
|
|
94
|
-
if (isW(node, 'r'))
|
|
95
|
-
return true;
|
|
96
|
-
for (let i = 0; i < node.childNodes.length; i++) {
|
|
97
|
-
if (containsRun(node.childNodes[i]))
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
// Tags that are "removed" content — should not count as live content
|
|
103
|
-
const REMOVED_LOCALS = new Set(['del', 'moveFrom']);
|
|
104
|
-
// Tags that are "kept" content — their presence means the paragraph has live content
|
|
105
|
-
const KEPT_LOCALS = new Set(['ins', 'moveTo']);
|
|
106
|
-
// Range marker tags to ignore when scanning paragraph children
|
|
107
|
-
const RANGE_MARKER_LOCALS = new Set([
|
|
108
|
-
'moveFromRangeStart', 'moveFromRangeEnd',
|
|
109
|
-
'moveToRangeStart', 'moveToRangeEnd',
|
|
110
|
-
]);
|
|
111
|
-
/**
|
|
112
|
-
* Determine if a paragraph's only content lives inside w:del or w:moveFrom
|
|
113
|
-
* (no w:r outside those wrappers, and no w:ins/w:moveTo siblings).
|
|
114
|
-
*/
|
|
115
|
-
function paragraphHasOnlyRemovedContent(p) {
|
|
116
|
-
for (let i = 0; i < p.childNodes.length; i++) {
|
|
117
|
-
const child = p.childNodes[i];
|
|
118
|
-
if (child.nodeType !== 1)
|
|
119
|
-
continue;
|
|
120
|
-
const el = child;
|
|
121
|
-
if (el.namespaceURI !== W_NS)
|
|
122
|
-
continue;
|
|
123
|
-
const local = el.localName;
|
|
124
|
-
// If the paragraph has kept content wrappers, it stays
|
|
125
|
-
if (KEPT_LOCALS.has(local))
|
|
126
|
-
return false;
|
|
127
|
-
// Skip pPr, range markers, and removed wrappers — they don't contribute live content
|
|
128
|
-
if (local === 'pPr' || RANGE_MARKER_LOCALS.has(local) || REMOVED_LOCALS.has(local))
|
|
129
|
-
continue;
|
|
130
|
-
// A bare w:r or any other element that contains runs means live content
|
|
131
|
-
if (local === 'r' || containsRun(el))
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
// We passed all children without finding live content — but there must be
|
|
135
|
-
// at least one removed wrapper for this to be a "removed content" paragraph
|
|
136
|
-
for (let i = 0; i < p.childNodes.length; i++) {
|
|
137
|
-
const child = p.childNodes[i];
|
|
138
|
-
if (child.nodeType === 1 && isWElement(child) && REMOVED_LOCALS.has(child.localName)) {
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
87
|
// Property change element local names (all 6 types)
|
|
145
88
|
const PR_CHANGE_LOCALS = [
|
|
146
89
|
'rPrChange', 'pPrChange', 'sectPrChange',
|
|
@@ -148,49 +91,51 @@ const PR_CHANGE_LOCALS = [
|
|
|
148
91
|
];
|
|
149
92
|
// ── Public API ──────────────────────────────────────────────────────
|
|
150
93
|
/**
|
|
151
|
-
* Accept all tracked changes in the document body, producing a
|
|
152
|
-
* document with no revision markup.
|
|
94
|
+
* Accept all tracked changes in the document body or story root, producing a
|
|
95
|
+
* clean document with no revision markup.
|
|
153
96
|
*
|
|
154
97
|
* Mutates the Document in place (same convention as simplifyRedlines
|
|
155
98
|
* and mergeRuns).
|
|
156
99
|
*/
|
|
157
100
|
export function acceptChanges(doc) {
|
|
158
|
-
const
|
|
159
|
-
if (!
|
|
101
|
+
const root = doc.getElementsByTagNameNS(W_NS, 'body').item(0) ?? doc.documentElement;
|
|
102
|
+
if (!root) {
|
|
160
103
|
return { insertionsAccepted: 0, deletionsAccepted: 0, movesResolved: 0, propertyChangesResolved: 0 };
|
|
161
104
|
}
|
|
162
105
|
// Phase A — Identify paragraphs to remove
|
|
163
106
|
const paragraphsToRemove = new Set();
|
|
164
|
-
const allParagraphs = collectByLocalName(
|
|
107
|
+
const allParagraphs = collectByLocalName(root, 'p');
|
|
165
108
|
for (const p of allParagraphs) {
|
|
166
|
-
//
|
|
109
|
+
// Remove a paragraph iff its paragraph MARK is a tracked deletion
|
|
110
|
+
// (w:p > w:pPr > w:rPr > w:del) — the paragraph break itself was deleted.
|
|
111
|
+
// We deliberately do NOT drop a paragraph based on content ("all runs inside
|
|
112
|
+
// w:del/w:moveFrom"): a run-level deletion under an untracked mark means text was
|
|
113
|
+
// deleted from a pre-existing paragraph, which Word/LibreOffice keep (empty) on
|
|
114
|
+
// accept. safe-docx's deleted paragraphs always carry the mark now, so the
|
|
115
|
+
// mark-based rule suffices and is Word-faithful. (Mirrors acceptAllChanges and the
|
|
116
|
+
// reject-side rule.)
|
|
167
117
|
if (paragraphHasParaMarker(p, 'del')) {
|
|
168
118
|
paragraphsToRemove.add(p);
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
// Paragraphs whose only content is inside w:del or w:moveFrom
|
|
172
|
-
if (paragraphHasOnlyRemovedContent(p)) {
|
|
173
|
-
paragraphsToRemove.add(p);
|
|
174
119
|
}
|
|
175
120
|
}
|
|
176
121
|
// Phase B — Remove deletions and move sources
|
|
177
|
-
const deletionsAccepted = removeAllByLocalName(
|
|
178
|
-
const moveFromRemoved = removeAllByLocalName(
|
|
179
|
-
removeAllByLocalName(
|
|
180
|
-
removeAllByLocalName(
|
|
181
|
-
removeAllByLocalName(
|
|
182
|
-
removeAllByLocalName(
|
|
122
|
+
const deletionsAccepted = removeAllByLocalName(root, 'del');
|
|
123
|
+
const moveFromRemoved = removeAllByLocalName(root, 'moveFrom');
|
|
124
|
+
removeAllByLocalName(root, 'moveFromRangeStart');
|
|
125
|
+
removeAllByLocalName(root, 'moveFromRangeEnd');
|
|
126
|
+
removeAllByLocalName(root, 'moveToRangeStart');
|
|
127
|
+
removeAllByLocalName(root, 'moveToRangeEnd');
|
|
183
128
|
// Phase C — Unwrap insertions and move destinations (depth-sorted)
|
|
184
|
-
const insertionsAccepted = unwrapAllByLocalName(
|
|
185
|
-
const moveToUnwrapped = unwrapAllByLocalName(
|
|
129
|
+
const insertionsAccepted = unwrapAllByLocalName(root, 'ins');
|
|
130
|
+
const moveToUnwrapped = unwrapAllByLocalName(root, 'moveTo');
|
|
186
131
|
// Phase D — Remove property change records
|
|
187
132
|
let propertyChangesResolved = 0;
|
|
188
133
|
for (const localName of PR_CHANGE_LOCALS) {
|
|
189
|
-
propertyChangesResolved += removeAllByLocalName(
|
|
134
|
+
propertyChangesResolved += removeAllByLocalName(root, localName);
|
|
190
135
|
}
|
|
191
136
|
// Phase E — Cleanup
|
|
192
137
|
// Strip paragraph-level revision markers from w:pPr/w:rPr
|
|
193
|
-
for (const p of collectByLocalName(
|
|
138
|
+
for (const p of collectByLocalName(root, 'p')) {
|
|
194
139
|
for (let i = 0; i < p.childNodes.length; i++) {
|
|
195
140
|
const child = p.childNodes[i];
|
|
196
141
|
if (!isW(child, 'pPr'))
|
|
@@ -220,7 +165,7 @@ export function acceptChanges(doc) {
|
|
|
220
165
|
}
|
|
221
166
|
}
|
|
222
167
|
// Strip w:rsidDel attributes on remaining elements
|
|
223
|
-
const allElements =
|
|
168
|
+
const allElements = root.getElementsByTagNameNS(W_NS, '*');
|
|
224
169
|
for (let i = 0; i < allElements.length; i++) {
|
|
225
170
|
const el = allElements[i];
|
|
226
171
|
if (el.hasAttributeNS(W_NS, 'rsidDel')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept_changes.js","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AASxB,uEAAuE;AAEvE,SAAS,GAAG,CAAC,IAAU,EAAE,SAAiB;IACxC,OAAO,CACL,IAAI,CAAC,QAAQ,KAAK,CAAC;QAClB,IAAgB,CAAC,YAAY,KAAK,IAAI;QACtC,IAAgB,CAAC,SAAS,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"accept_changes.js","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* and supports threaded replies via commentsExtended.xml.
|
|
6
6
|
*/
|
|
7
7
|
import { DocxZip } from './zip.js';
|
|
8
|
+
import { type RevisionContext } from './track-changes-emitter.js';
|
|
8
9
|
export type BootstrapResult = {
|
|
9
10
|
partsCreated: string[];
|
|
10
11
|
};
|
|
@@ -33,7 +34,7 @@ export type AddCommentResult = {
|
|
|
33
34
|
* - Adds comment entry to comments.xml
|
|
34
35
|
* - Adds author to people.xml if not present
|
|
35
36
|
*/
|
|
36
|
-
export declare function addComment(documentXml: Document, zip: DocxZip, params: AddCommentParams): Promise<AddCommentResult>;
|
|
37
|
+
export declare function addComment(documentXml: Document, zip: DocxZip, params: AddCommentParams, ctx?: RevisionContext): Promise<AddCommentResult>;
|
|
37
38
|
export type AddCommentReplyParams = {
|
|
38
39
|
parentCommentId: number;
|
|
39
40
|
author: string;
|
|
@@ -49,8 +50,11 @@ export type AddCommentReplyResult = {
|
|
|
49
50
|
*
|
|
50
51
|
* Replies don't have range markers in the document body.
|
|
51
52
|
* Thread linkage is stored in commentsExtended.xml via paraIdParent.
|
|
53
|
+
* `ctx` is accepted for API consistency with other comment mutations, but this
|
|
54
|
+
* primitive only updates comment side parts for replies, so no body revision
|
|
55
|
+
* markup is emitted here.
|
|
52
56
|
*/
|
|
53
|
-
export declare function addCommentReply(_documentXml: Document, zip: DocxZip, params: AddCommentReplyParams): Promise<AddCommentReplyResult>;
|
|
57
|
+
export declare function addCommentReply(_documentXml: Document, zip: DocxZip, params: AddCommentReplyParams, _ctx?: RevisionContext): Promise<AddCommentReplyResult>;
|
|
54
58
|
export type Comment = {
|
|
55
59
|
id: number;
|
|
56
60
|
author: string;
|
|
@@ -59,6 +63,11 @@ export type Comment = {
|
|
|
59
63
|
text: string;
|
|
60
64
|
paragraphId: string | null;
|
|
61
65
|
anchoredParagraphId: string | null;
|
|
66
|
+
endParagraphId?: string | null;
|
|
67
|
+
startRunIndex?: number;
|
|
68
|
+
startCharOffset?: number;
|
|
69
|
+
endRunIndex?: number;
|
|
70
|
+
endCharOffset?: number;
|
|
62
71
|
replies: Comment[];
|
|
63
72
|
};
|
|
64
73
|
/**
|
|
@@ -84,5 +93,5 @@ export declare function getComment(zip: DocxZip, documentXml: Document, commentI
|
|
|
84
93
|
*/
|
|
85
94
|
export declare function deleteComment(documentXml: Document, zip: DocxZip, params: {
|
|
86
95
|
commentId: number;
|
|
87
|
-
}): Promise<void>;
|
|
96
|
+
}, ctx?: RevisionContext): Promise<void>;
|
|
88
97
|
//# sourceMappingURL=comments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/primitives/comments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/primitives/comments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKnC,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAgDpC,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA0BlF;AA2FD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,QAAQ,EACrB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,gBAAgB,EACxB,GAAG,CAAC,EAAE,eAAe,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AAID,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,QAAQ,EACtB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,qBAAqB,EAC7B,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAmChC;AA8UD,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB,CAAC;AAyCF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAmGzF;AAwLD;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAGhH;AAaD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,QAAQ,EACrB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7B,GAAG,CAAC,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAoGf"}
|