@usejunior/docx-core 0.20.1 → 0.21.2

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.
Files changed (125) hide show
  1. package/README.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/conformance-adapter.d.ts.map +1 -1
  4. package/dist/cli/conformance-adapter.js +0 -27
  5. package/dist/cli/conformance-adapter.js.map +1 -1
  6. package/dist/generation/compile.d.ts.map +1 -1
  7. package/dist/generation/compile.js +1 -3
  8. package/dist/generation/compile.js.map +1 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/integration/libreoffice-oracle.d.ts +3 -1
  14. package/dist/integration/libreoffice-oracle.d.ts.map +1 -1
  15. package/dist/integration/libreoffice-oracle.js +9 -3
  16. package/dist/integration/libreoffice-oracle.js.map +1 -1
  17. package/dist/primitives/accept_changes.d.ts +3 -4
  18. package/dist/primitives/accept_changes.d.ts.map +1 -1
  19. package/dist/primitives/accept_changes.js +165 -79
  20. package/dist/primitives/accept_changes.js.map +1 -1
  21. package/dist/primitives/bookmarks.d.ts +7 -2
  22. package/dist/primitives/bookmarks.d.ts.map +1 -1
  23. package/dist/primitives/bookmarks.js +30 -6
  24. package/dist/primitives/bookmarks.js.map +1 -1
  25. package/dist/primitives/comments.d.ts +73 -4
  26. package/dist/primitives/comments.d.ts.map +1 -1
  27. package/dist/primitives/comments.js +266 -165
  28. package/dist/primitives/comments.js.map +1 -1
  29. package/dist/primitives/conformance.d.ts +42 -0
  30. package/dist/primitives/conformance.d.ts.map +1 -0
  31. package/dist/primitives/conformance.js +61 -0
  32. package/dist/primitives/conformance.js.map +1 -0
  33. package/dist/primitives/document.d.ts +98 -1
  34. package/dist/primitives/document.d.ts.map +1 -1
  35. package/dist/primitives/document.js +315 -22
  36. package/dist/primitives/document.js.map +1 -1
  37. package/dist/primitives/errors.d.ts +3 -2
  38. package/dist/primitives/errors.d.ts.map +1 -1
  39. package/dist/primitives/errors.js +3 -1
  40. package/dist/primitives/errors.js.map +1 -1
  41. package/dist/primitives/extract_revisions.d.ts +23 -6
  42. package/dist/primitives/extract_revisions.d.ts.map +1 -1
  43. package/dist/primitives/extract_revisions.js +208 -38
  44. package/dist/primitives/extract_revisions.js.map +1 -1
  45. package/dist/primitives/footnotes.d.ts +36 -0
  46. package/dist/primitives/footnotes.d.ts.map +1 -1
  47. package/dist/primitives/footnotes.js +173 -75
  48. package/dist/primitives/footnotes.js.map +1 -1
  49. package/dist/primitives/index.d.ts +7 -1
  50. package/dist/primitives/index.d.ts.map +1 -1
  51. package/dist/primitives/index.js +7 -1
  52. package/dist/primitives/index.js.map +1 -1
  53. package/dist/primitives/paragraph-index.d.ts +31 -0
  54. package/dist/primitives/paragraph-index.d.ts.map +1 -0
  55. package/dist/primitives/paragraph-index.js +140 -0
  56. package/dist/primitives/paragraph-index.js.map +1 -0
  57. package/dist/primitives/paragraph_merge_formatting.d.ts +24 -0
  58. package/dist/primitives/paragraph_merge_formatting.d.ts.map +1 -0
  59. package/dist/primitives/paragraph_merge_formatting.js +86 -0
  60. package/dist/primitives/paragraph_merge_formatting.js.map +1 -0
  61. package/dist/primitives/paragraph_structure.d.ts +19 -0
  62. package/dist/primitives/paragraph_structure.d.ts.map +1 -0
  63. package/dist/primitives/paragraph_structure.js +66 -0
  64. package/dist/primitives/paragraph_structure.js.map +1 -0
  65. package/dist/primitives/reject_changes.d.ts +3 -4
  66. package/dist/primitives/reject_changes.d.ts.map +1 -1
  67. package/dist/primitives/reject_changes.js +166 -79
  68. package/dist/primitives/reject_changes.js.map +1 -1
  69. package/dist/primitives/relationships.d.ts +22 -0
  70. package/dist/primitives/relationships.d.ts.map +1 -1
  71. package/dist/primitives/relationships.js +87 -0
  72. package/dist/primitives/relationships.js.map +1 -1
  73. package/dist/primitives/revision-parts.d.ts +15 -0
  74. package/dist/primitives/revision-parts.d.ts.map +1 -1
  75. package/dist/primitives/revision-parts.js +33 -1
  76. package/dist/primitives/revision-parts.js.map +1 -1
  77. package/dist/primitives/sections.d.ts +2 -1
  78. package/dist/primitives/sections.d.ts.map +1 -1
  79. package/dist/primitives/sections.js +2 -2
  80. package/dist/primitives/sections.js.map +1 -1
  81. package/dist/primitives/styles.d.ts +1 -0
  82. package/dist/primitives/styles.d.ts.map +1 -1
  83. package/dist/primitives/styles.js +1 -0
  84. package/dist/primitives/styles.js.map +1 -1
  85. package/dist/primitives/table_cells.d.ts +49 -0
  86. package/dist/primitives/table_cells.d.ts.map +1 -0
  87. package/dist/primitives/table_cells.js +149 -0
  88. package/dist/primitives/table_cells.js.map +1 -0
  89. package/dist/primitives/table_columns.d.ts +50 -0
  90. package/dist/primitives/table_columns.d.ts.map +1 -0
  91. package/dist/primitives/table_columns.js +138 -0
  92. package/dist/primitives/table_columns.js.map +1 -0
  93. package/dist/primitives/table_edit_common.d.ts +39 -0
  94. package/dist/primitives/table_edit_common.d.ts.map +1 -0
  95. package/dist/primitives/table_edit_common.js +163 -0
  96. package/dist/primitives/table_edit_common.js.map +1 -0
  97. package/dist/primitives/table_occupancy.d.ts +39 -0
  98. package/dist/primitives/table_occupancy.d.ts.map +1 -0
  99. package/dist/primitives/table_occupancy.js +145 -0
  100. package/dist/primitives/table_occupancy.js.map +1 -0
  101. package/dist/primitives/table_rows.d.ts +56 -0
  102. package/dist/primitives/table_rows.d.ts.map +1 -0
  103. package/dist/primitives/table_rows.js +390 -0
  104. package/dist/primitives/table_rows.js.map +1 -0
  105. package/dist/primitives/text.d.ts +40 -1
  106. package/dist/primitives/text.d.ts.map +1 -1
  107. package/dist/primitives/text.js +309 -129
  108. package/dist/primitives/text.js.map +1 -1
  109. package/dist/primitives/track-changes-emitter.d.ts +16 -2
  110. package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
  111. package/dist/primitives/track-changes-emitter.js +38 -13
  112. package/dist/primitives/track-changes-emitter.js.map +1 -1
  113. package/dist/primitives/zip.d.ts +22 -1
  114. package/dist/primitives/zip.d.ts.map +1 -1
  115. package/dist/primitives/zip.js +47 -8
  116. package/dist/primitives/zip.js.map +1 -1
  117. package/dist/shared/docx/DocxArchive.d.ts +6 -2
  118. package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
  119. package/dist/shared/docx/DocxArchive.js +10 -4
  120. package/dist/shared/docx/DocxArchive.js.map +1 -1
  121. package/dist/shared/field-structure.d.ts +3 -0
  122. package/dist/shared/field-structure.d.ts.map +1 -1
  123. package/dist/shared/field-structure.js +7 -5
  124. package/dist/shared/field-structure.js.map +1 -1
  125. package/package.json +3 -4
@@ -4,12 +4,17 @@
4
4
  *
5
5
  * Algorithm:
6
6
  * 1. Clone DOM twice → acceptChanges() on one, rejectChanges() on the other
7
- * 2. Walk all w:p in the *original* tracked DOM (including inside w:tc table cells)
8
- * 3. For each paragraph with revision wrappers, look up before_text (rejected clone)
7
+ * 2. Walk the *original* tracked DOM in document order, visiting every w:tr
8
+ * and every w:p (including inside w:tc table cells)
9
+ * 3. For each table row whose w:trPr carries a row-level marker (w:ins, w:del,
10
+ * w:trPrChange), emit one `scope: 'row'` record keyed by the row's first
11
+ * paragraph, with the whole-row text before/after
12
+ * 4. For each paragraph with revision wrappers, look up before_text (rejected clone)
9
13
  * and after_text (accepted clone) by _bk_* bookmark ID
10
- * 4. Collect individual revision entries with type, text, author
11
- * 5. Join comments by anchoredParagraphId
12
- * 6. Apply offset/limit pagination
14
+ * 5. Collect individual revision entries with type, text, author, and the
15
+ * markup's w:id / w:date when present
16
+ * 6. Join comments by anchoredParagraphId
17
+ * 7. Apply offset/limit pagination
13
18
  */
14
19
  import { OOXML } from './namespaces.js';
15
20
  import { acceptChanges } from './accept_changes.js';
@@ -146,6 +151,21 @@ function getRevisionText(el) {
146
151
  function getAttr(el, localName) {
147
152
  return el.getAttributeNS(W_NS, localName) ?? el.getAttribute(`w:${localName}`) ?? '';
148
153
  }
154
+ /**
155
+ * Build one revision entry from a revision element, carrying its `w:id` and
156
+ * `w:date` when the markup has them (both are optional in the schema, and
157
+ * comparison output from some engines omits them).
158
+ */
159
+ function makeEntry(el, type, text) {
160
+ const entry = { type, text, author: getAttr(el, 'author') };
161
+ const id = getAttr(el, 'id');
162
+ if (id)
163
+ entry.id = id;
164
+ const date = getAttr(el, 'date');
165
+ if (date)
166
+ entry.date = date;
167
+ return entry;
168
+ }
149
169
  /**
150
170
  * Collect individual revision entries from a paragraph's revision wrappers.
151
171
  */
@@ -158,11 +178,7 @@ function collectRevisionEntries(p) {
158
178
  // Skip paragraph-level markers (inside pPr/rPr)
159
179
  if (isInsidePPrOrRPr(ins, p))
160
180
  continue;
161
- entries.push({
162
- type: 'INSERTION',
163
- text: getRevisionText(ins),
164
- author: getAttr(ins, 'author'),
165
- });
181
+ entries.push(makeEntry(ins, 'INSERTION', getRevisionText(ins)));
166
182
  }
167
183
  // Collect from w:del wrappers
168
184
  const delEls = p.getElementsByTagNameNS(W_NS, 'del');
@@ -170,46 +186,149 @@ function collectRevisionEntries(p) {
170
186
  const del = delEls[i];
171
187
  if (isInsidePPrOrRPr(del, p))
172
188
  continue;
173
- entries.push({
174
- type: 'DELETION',
175
- text: getRevisionText(del),
176
- author: getAttr(del, 'author'),
177
- });
189
+ entries.push(makeEntry(del, 'DELETION', getRevisionText(del)));
178
190
  }
179
191
  // Collect from w:moveFrom wrappers
180
192
  const moveFromEls = p.getElementsByTagNameNS(W_NS, 'moveFrom');
181
193
  for (let i = 0; i < moveFromEls.length; i++) {
182
194
  const mf = moveFromEls[i];
183
- entries.push({
184
- type: 'MOVE_FROM',
185
- text: getRevisionText(mf),
186
- author: getAttr(mf, 'author'),
187
- });
195
+ entries.push(makeEntry(mf, 'MOVE_FROM', getRevisionText(mf)));
188
196
  }
189
197
  // Collect from w:moveTo wrappers
190
198
  const moveToEls = p.getElementsByTagNameNS(W_NS, 'moveTo');
191
199
  for (let i = 0; i < moveToEls.length; i++) {
192
200
  const mt = moveToEls[i];
193
- entries.push({
194
- type: 'MOVE_TO',
195
- text: getRevisionText(mt),
196
- author: getAttr(mt, 'author'),
197
- });
201
+ entries.push(makeEntry(mt, 'MOVE_TO', getRevisionText(mt)));
198
202
  }
199
203
  // Collect FORMAT_CHANGE from *PrChange records
200
204
  for (const localName of PR_CHANGE_LOCALS) {
201
205
  const changes = p.getElementsByTagNameNS(W_NS, localName);
202
206
  for (let i = 0; i < changes.length; i++) {
203
- const change = changes[i];
204
- entries.push({
205
- type: 'FORMAT_CHANGE',
206
- text: '',
207
- author: getAttr(change, 'author'),
208
- });
207
+ entries.push(makeEntry(changes[i], 'FORMAT_CHANGE', ''));
209
208
  }
210
209
  }
211
210
  return entries;
212
211
  }
212
+ // ── Table-row revisions ─────────────────────────────────────────────
213
+ function directChildren(el, localName) {
214
+ const out = [];
215
+ for (let i = 0; i < el.childNodes.length; i++) {
216
+ const child = el.childNodes[i];
217
+ if (isW(child, localName))
218
+ out.push(child);
219
+ }
220
+ return out;
221
+ }
222
+ /**
223
+ * The row-level revision markers of a `w:tr`: direct children of its `w:trPr`
224
+ * that revise the row itself rather than wrapping a span of content.
225
+ *
226
+ * An empty `w:del` under `w:trPr` marks the enclosing row as a tracked
227
+ * deletion, an empty `w:ins` marks it as a tracked insertion, and
228
+ * `w:trPrChange` records a revision to the row's properties. None of them
229
+ * imply a revision state for the row's cell content, which is revision-marked
230
+ * independently and reported by the per-paragraph walk.
231
+ *
232
+ * @conformance ECMA-376 edition 5, Part 1 § 17.13.5.12
233
+ * @conformance ECMA-376 edition 5, Part 1 § 17.13.5.17
234
+ * @conformance ECMA-376 edition 5, Part 1 § 17.13.5.37
235
+ * @see https://github.com/UseJunior/safe-docx/issues/868
236
+ */
237
+ function rowRevisionMarkers(tr) {
238
+ const markers = [];
239
+ for (const trPr of directChildren(tr, 'trPr')) {
240
+ for (let i = 0; i < trPr.childNodes.length; i++) {
241
+ const child = trPr.childNodes[i];
242
+ if (isW(child, 'ins') || isW(child, 'del') || isW(child, 'trPrChange')) {
243
+ markers.push(child);
244
+ }
245
+ }
246
+ }
247
+ return markers;
248
+ }
249
+ /**
250
+ * Children of `el` with the given local name, looking through the structured
251
+ * document tag and custom XML wrappers the schema allows at that level
252
+ * (`w:sdt > w:sdtContent > …`, `w:customXml > …`), but never into a nested
253
+ * table: `w:tbl` is not a wrapper, and its cells belong to another row.
254
+ */
255
+ function ownChildrenThroughWrappers(el, localName) {
256
+ const out = [];
257
+ for (let i = 0; i < el.childNodes.length; i++) {
258
+ const child = el.childNodes[i];
259
+ if (isW(child, localName)) {
260
+ out.push(child);
261
+ }
262
+ else if (isW(child, 'sdt')) {
263
+ for (const content of directChildren(child, 'sdtContent')) {
264
+ out.push(...ownChildrenThroughWrappers(content, localName));
265
+ }
266
+ }
267
+ else if (isW(child, 'customXml')) {
268
+ out.push(...ownChildrenThroughWrappers(child, localName));
269
+ }
270
+ }
271
+ return out;
272
+ }
273
+ /** The row's own cells, including cells wrapped in `w:sdt` / `w:customXml`. */
274
+ function rowCells(tr) {
275
+ return ownChildrenThroughWrappers(tr, 'tc');
276
+ }
277
+ /** The cell's own paragraphs, including ones wrapped in `w:sdt` / `w:customXml`; paragraphs of a nested table are excluded. */
278
+ function cellParagraphs(tc) {
279
+ return ownChildrenThroughWrappers(tc, 'p');
280
+ }
281
+ /**
282
+ * The first paragraph in the row's own cells (not one inside a nested table),
283
+ * falling back to the first descendant paragraph when the row has none of its
284
+ * own. `trDepth` is how many `w:tr` ancestors (counting `tr` itself) sit
285
+ * between that paragraph and the row, so the row can be recovered from the
286
+ * paragraph in a clone even when the fallback landed inside a nested table.
287
+ */
288
+ function firstRowParagraph(tr) {
289
+ for (const tc of rowCells(tr)) {
290
+ const p = cellParagraphs(tc)[0];
291
+ if (p)
292
+ return { p, trDepth: 1 };
293
+ }
294
+ const p = tr.getElementsByTagNameNS(W_NS, 'p').item(0);
295
+ if (!p)
296
+ return null;
297
+ let trDepth = 0;
298
+ for (let cur = p; cur; cur = cur.parentNode) {
299
+ if (isW(cur, 'tr'))
300
+ trDepth++;
301
+ if (cur === tr)
302
+ break;
303
+ }
304
+ return { p, trDepth };
305
+ }
306
+ /**
307
+ * Whole-row text: each of the row's own cells' own paragraphs joined by
308
+ * newlines, cells joined by tabs. Uses the same visible-text rule as
309
+ * paragraph records. Content of a nested table is not part of the row text.
310
+ */
311
+ function getRowText(tr) {
312
+ return rowCells(tr)
313
+ .map((tc) => cellParagraphs(tc).map(getParagraphText).join('\n'))
314
+ .join('\t');
315
+ }
316
+ /**
317
+ * Locate the row in a clone (accepted or rejected) by the bookmark of the
318
+ * paragraph `firstRowParagraph` chose, climbing `trDepth` row ancestors so a
319
+ * fallback paragraph inside a nested table still resolves to the outer row.
320
+ * Empty when the row no longer exists in that clone.
321
+ */
322
+ function getRowTextByBookmarkId(doc, paraId, trDepth) {
323
+ let cur = findParagraphByBookmarkId(doc, paraId);
324
+ let remaining = trDepth;
325
+ while (cur) {
326
+ if (isW(cur, 'tr') && --remaining === 0)
327
+ break;
328
+ cur = cur.parentNode;
329
+ }
330
+ return cur ? getRowText(cur) : '';
331
+ }
213
332
  /**
214
333
  * Check if an element is nested inside w:pPr or w:rPr within the given paragraph.
215
334
  * These are paragraph-level revision markers, not content revisions.
@@ -276,15 +395,51 @@ export function extractRevisions(doc, comments, opts) {
276
395
  }
277
396
  }
278
397
  }
279
- // Walk all paragraphs in the original tracked DOM
280
- const allParagraphs = Array.from(body.getElementsByTagNameNS(W_NS, 'p'));
281
398
  const changedParagraphs = [];
282
- for (const p of allParagraphs) {
399
+ // A row inserted or deleted as a whole, or a row property change, lives in
400
+ // w:tr > w:trPr and is invisible to a per-paragraph walk. Report it as one
401
+ // record for the row, keyed by the row's first paragraph, in document order
402
+ // (the w:tr precedes its paragraphs, so the row record precedes theirs).
403
+ const visitRow = (tr) => {
404
+ const markers = rowRevisionMarkers(tr);
405
+ if (markers.length === 0)
406
+ return;
407
+ const first = firstRowParagraph(tr);
408
+ const paraId = first ? getParagraphBookmarkId(first.p) : null;
409
+ if (!first || !paraId)
410
+ return;
411
+ const isInserted = markers.some((m) => m.localName === 'ins');
412
+ const isDeleted = markers.some((m) => m.localName === 'del');
413
+ const rowText = getRowText(tr);
414
+ // An inserted row does not exist once rejected; a deleted row does not
415
+ // exist once accepted. Do not look those up: the row's bookmarks leave
416
+ // with it, so a lookup could only hit some other paragraph.
417
+ const beforeText = isInserted ? '' : getRowTextByBookmarkId(rejectedDoc, paraId, first.trDepth);
418
+ const afterText = isDeleted ? '' : getRowTextByBookmarkId(acceptedDoc, paraId, first.trDepth);
419
+ const revisions = markers.map((marker) => {
420
+ if (marker.localName === 'ins')
421
+ return makeEntry(marker, 'ROW_INSERTION', rowText);
422
+ if (marker.localName === 'del')
423
+ return makeEntry(marker, 'ROW_DELETION', rowText);
424
+ return makeEntry(marker, 'FORMAT_CHANGE', '');
425
+ });
426
+ // Comments are anchored to paragraphs, not rows; they stay on the
427
+ // paragraph record so they are never reported twice.
428
+ changedParagraphs.push({
429
+ para_id: paraId,
430
+ scope: 'row',
431
+ before_text: beforeText,
432
+ after_text: afterText,
433
+ revisions,
434
+ comments: [],
435
+ });
436
+ };
437
+ const visitParagraph = (p) => {
283
438
  if (!paragraphHasRevisions(p))
284
- continue;
439
+ return;
285
440
  const paraId = getParagraphBookmarkId(p);
286
441
  if (!paraId)
287
- continue; // All paragraphs should have bookmarks from session resolution
442
+ return; // All paragraphs should have bookmarks from session resolution
288
443
  // Detect entirely-inserted/deleted paragraphs to avoid stale bookmark lookups.
289
444
  // When rejectChanges() removes an inserted paragraph, it relocates bookmarks
290
445
  // to adjacent paragraphs, which would give the wrong before_text.
@@ -313,7 +468,7 @@ export function extractRevisions(doc, comments, opts) {
313
468
  // Skip structurally-empty paragraphs with only paragraph-level markers
314
469
  // (e.g. empty inserted paragraphs from comparison engines with pPr/rPr/ins only)
315
470
  if (revisions.length === 0 && beforeText === '' && afterText === '')
316
- continue;
471
+ return;
317
472
  // Associate comments
318
473
  const paraComments = commentsByParaId.get(paraId) ?? [];
319
474
  const revisionComments = paraComments.map(commentToRevisionComment);
@@ -324,7 +479,22 @@ export function extractRevisions(doc, comments, opts) {
324
479
  revisions,
325
480
  comments: revisionComments,
326
481
  });
327
- }
482
+ };
483
+ // Pre-order walk of the original tracked DOM. This visits the same w:p
484
+ // elements in the same order as getElementsByTagNameNS('p') did (including
485
+ // paragraphs nested in text boxes), and additionally sees every w:tr.
486
+ const walk = (el) => {
487
+ if (isW(el, 'tr'))
488
+ visitRow(el);
489
+ else if (isW(el, 'p'))
490
+ visitParagraph(el);
491
+ for (let i = 0; i < el.childNodes.length; i++) {
492
+ const child = el.childNodes[i];
493
+ if (child.nodeType === 1)
494
+ walk(child);
495
+ }
496
+ };
497
+ walk(body);
328
498
  // Apply pagination
329
499
  const totalChanges = changedParagraphs.length;
330
500
  const offset = opts?.offset ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"extract_revisions.js","sourceRoot":"","sources":["../../src/primitives/extract_revisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract_revisions.js","sourceRoot":"","sources":["../../src/primitives/extract_revisions.ts"],"names":[],"mappings":"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"}
@@ -43,19 +43,35 @@ export type Footnote = {
43
43
  * entry; empty when the note is orphaned (no reference in the body).
44
44
  */
45
45
  refParagraphIds: string[];
46
+ /** Exact canonical visible-coordinate locations of every body reference. */
47
+ referencePoints: FootnoteReferencePoint[];
46
48
  /**
47
49
  * Structured, run-formatting-preserving body paragraphs. Present at
48
50
  * node-level fidelity — see {@link FootnoteParagraph}.
49
51
  */
50
52
  paragraphs: FootnoteParagraph[];
51
53
  };
54
+ export type FootnoteReferencePoint = {
55
+ paragraphId: string;
56
+ textOffset: number;
57
+ };
52
58
  export type AddFootnoteParams = {
53
59
  paragraphEl: Element;
54
60
  afterText?: string;
61
+ visibleOffset?: number;
55
62
  text: string;
56
63
  presentation?: FootnoteNotePresentation;
57
64
  };
65
+ /**
66
+ * Admitted character formatting for a generated footnote run.
67
+ *
68
+ * @conformance ECMA-376 edition 5, Part 1 § 17.3.2.29
69
+ * @conformance ECMA-376 edition 5, Part 1 § 17.3.2.38
70
+ * @see #951
71
+ */
58
72
  export type FootnoteRunStyle = {
73
+ styleId?: string;
74
+ fontSizeHalfPoints?: number;
59
75
  bold?: boolean;
60
76
  italic?: boolean;
61
77
  underline?: boolean;
@@ -67,6 +83,19 @@ export type FootnoteNotePresentation = {
67
83
  prefixSeparator?: string;
68
84
  prefixStyle?: FootnoteRunStyle;
69
85
  bodyStyle?: FootnoteRunStyle;
86
+ prefixRuns?: FootnoteStyledRun[];
87
+ separatorRuns?: FootnoteStyledRun[];
88
+ body?: FootnoteBodyParagraph[];
89
+ };
90
+ export type FootnoteStyledRun = {
91
+ text: string;
92
+ style?: FootnoteRunStyle;
93
+ hyperlink?: {
94
+ destination: string;
95
+ };
96
+ };
97
+ export type FootnoteBodyParagraph = {
98
+ runs: FootnoteStyledRun[];
70
99
  };
71
100
  export type AddFootnoteResult = {
72
101
  noteId: number;
@@ -86,9 +115,16 @@ export declare function bootstrapFootnoteParts(zip: DocxZip): Promise<BootstrapF
86
115
  * When omitted, formatting is read from direct `w:rPr` only — the flattened
87
116
  * `text` and the plural anchor map are unaffected either way, so existing
88
117
  * callers that pass `(zip, documentXml)` keep their exact behavior.
118
+ *
119
+ * @conformance ECMA-376 edition 5, Part 1 § 17.11.14
89
120
  */
90
121
  export declare function getFootnotes(zip: DocxZip, documentXml: Document, styles?: StylesModel, theme?: ThemeModel): Promise<Footnote[]>;
91
122
  export declare function getFootnote(zip: DocxZip, documentXml: Document, noteId: number, styles?: StylesModel, theme?: ThemeModel): Promise<Footnote | null>;
123
+ /**
124
+ * Add one footnote definition and its exact point reference in the main story.
125
+ *
126
+ * @conformance ECMA-376 edition 5, Part 1 § 17.11.14
127
+ */
92
128
  export declare function addFootnote(documentXml: Document, zip: DocxZip, params: AddFootnoteParams, ctx?: RevisionContext): Promise<AddFootnoteResult>;
93
129
  export declare function updateFootnoteText(zip: DocxZip, params: {
94
130
  noteId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"footnotes.d.ts","sourceRoot":"","sources":["../../src/primitives/footnotes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footnotes.d.ts","sourceRoot":"","sources":["../../src/primitives/footnotes.ts"],"names":[],"mappings":"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"}