docxodus 8.0.0 → 9.0.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/README.md +65 -24
- package/dist/editor-headerfooter.d.ts +39 -3
- package/dist/editor-headerfooter.d.ts.map +1 -1
- package/dist/editor-headerfooter.js +118 -2
- package/dist/editor-headerfooter.js.map +1 -1
- package/dist/editor-reconcile.d.ts +75 -0
- package/dist/editor-reconcile.d.ts.map +1 -0
- package/dist/editor-reconcile.js +125 -0
- package/dist/editor-reconcile.js.map +1 -0
- package/dist/editor.bundle.js +799 -42
- package/dist/editor.d.ts +121 -5
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +572 -31
- package/dist/editor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/page-number-format.d.ts +22 -0
- package/dist/page-number-format.d.ts.map +1 -0
- package/dist/page-number-format.js +60 -0
- package/dist/page-number-format.js.map +1 -0
- package/dist/pagination.bundle.js +158 -21
- package/dist/pagination.d.ts +38 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +181 -29
- package/dist/pagination.js.map +1 -1
- package/dist/session.bundle.js +226 -4
- package/dist/session.d.ts +147 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +187 -4
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +191 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/wasm/_framework/Docxodus.wasm +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
- package/dist/wasm/_framework/System.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Runtime.wasm +0 -0
- package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
- package/dist/wasm/_framework/dotnet.boot.js +10 -10
- package/dist/wasm/_framework/dotnet.native.js.symbols +2102 -2101
- package/dist/wasm/_framework/dotnet.native.wasm +0 -0
- package/package.json +17 -4
package/dist/session.bundle.js
CHANGED
|
@@ -184,6 +184,47 @@ var DocxodusSession = (() => {
|
|
|
184
184
|
deleteTableColumn(cellAnchorId) {
|
|
185
185
|
return JSON.parse(this.wasm.DeleteTableColumn(this.handle, cellAnchorId));
|
|
186
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Table styling, addressed by a cell-paragraph anchor — the post-insert counterpart of
|
|
189
|
+
* {@link insertTable}'s options (issue #315 Stage A). `setColumnWidths` retunes `w:tblGrid` +
|
|
190
|
+
* every row's cell width (one positive twip value per column) and pins the table to fixed
|
|
191
|
+
* layout, exactly as inserting with explicit `columnWidths` would.
|
|
192
|
+
*/
|
|
193
|
+
setColumnWidths(cellAnchorId, widthsTwips) {
|
|
194
|
+
return JSON.parse(
|
|
195
|
+
this.wasm.SetColumnWidths(this.handle, cellAnchorId, JSON.stringify(widthsTwips))
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Set the table-level borders (`w:tblPr/w:tblBorders`) of the table containing the anchor.
|
|
200
|
+
* Only the edges named by `spec.scope` are written; the rest are left untouched. Style
|
|
201
|
+
* `"none"` removes the targeted edges. Omitting `spec` writes a thin single border all round.
|
|
202
|
+
*/
|
|
203
|
+
setTableBorders(cellAnchorId, spec) {
|
|
204
|
+
return JSON.parse(
|
|
205
|
+
this.wasm.SetTableBorders(this.handle, cellAnchorId, spec ? JSON.stringify(spec) : "")
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Shade the cell containing the anchor — or, with scope `"row"`, every cell of its row
|
|
210
|
+
* (header-row banding). `fill` is a hex RRGGBB triplet (leading '#' tolerated) or `"auto"`;
|
|
211
|
+
* `null` removes the shading.
|
|
212
|
+
*/
|
|
213
|
+
setCellShading(cellAnchorId, fill, scope = "cell") {
|
|
214
|
+
return JSON.parse(
|
|
215
|
+
this.wasm.SetCellShading(this.handle, cellAnchorId, fill ?? "", scope)
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Mark (or unmark) the row containing the anchor as a repeating header row
|
|
220
|
+
* (`w:trPr/w:tblHeader`), so a multi-page table re-shows it on every page. Word only honors
|
|
221
|
+
* the flag on a run of rows starting at the table's first row.
|
|
222
|
+
*/
|
|
223
|
+
setRepeatHeaderRow(cellAnchorId, repeat) {
|
|
224
|
+
return JSON.parse(
|
|
225
|
+
this.wasm.SetRepeatHeaderRow(this.handle, cellAnchorId, repeat)
|
|
226
|
+
);
|
|
227
|
+
}
|
|
187
228
|
// ─── Headers / footers / page numbers ────────────────────────────────
|
|
188
229
|
/**
|
|
189
230
|
* Set the running header story for the section that owns `anchorId` (any body block in that
|
|
@@ -204,11 +245,43 @@ var DocxodusSession = (() => {
|
|
|
204
245
|
/**
|
|
205
246
|
* Append a page-number field to the paragraph `anchorId` — typically a header/footer paragraph
|
|
206
247
|
* returned by {@link setFooterText}/{@link setHeaderText}. `"currentPage"` emits a PAGE field,
|
|
207
|
-
* `"totalPages"` a NUMPAGES field (native complex field with a cached
|
|
208
|
-
* the paragraph alignment ({@link setParagraphFormat}). Returns the paragraph anchor in
|
|
248
|
+
* `"totalPages"` a NUMPAGES field (native complex field with a cached result). Center it by
|
|
249
|
+
* setting the paragraph alignment ({@link setParagraphFormat}). Returns the paragraph anchor in
|
|
250
|
+
* `modified`.
|
|
251
|
+
*
|
|
252
|
+
* `format` writes the field's own `\*` general-formatting switch (`PAGE \* roman` → `i, ii, iii`).
|
|
253
|
+
* Omitting it — the default — emits a plain field, which is what Word inserts and what follows the
|
|
254
|
+
* SECTION's format ({@link setPageNumbering}). Prefer the section setting for ordinary page
|
|
255
|
+
* numbering: a switch here overrides it for this one field and keeps overriding it if the section
|
|
256
|
+
* later changes.
|
|
257
|
+
*/
|
|
258
|
+
insertPageNumberField(anchorId, field = "currentPage", format) {
|
|
259
|
+
return JSON.parse(
|
|
260
|
+
this.wasm.InsertPageNumberField(this.handle, anchorId, field, format ?? "")
|
|
261
|
+
);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Set the page-numbering properties (`w:pgNumType`) of the section that owns `anchorId` (any body
|
|
265
|
+
* block in that section) — Word's *Format Page Numbers…* dialog: which number the section starts
|
|
266
|
+
* at and which format its pages use. Omitted fields on `op` are left unchanged, so the start can
|
|
267
|
+
* be set without disturbing the format and vice versa. Creates the element, and a trailing
|
|
268
|
+
* `w:sectPr`, if absent.
|
|
269
|
+
*
|
|
270
|
+
* Applying values the section already has is a successful no-op that does NOT consume undo
|
|
271
|
+
* history — safe to call from a dropdown's change handler.
|
|
272
|
+
*/
|
|
273
|
+
setPageNumbering(anchorId, op) {
|
|
274
|
+
return JSON.parse(
|
|
275
|
+
this.wasm.SetPageNumbering(this.handle, anchorId, JSON.stringify(op))
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Remove the section's page-numbering start/format: it reverts to continuing the previous
|
|
280
|
+
* section's numbering in Word's default `1, 2, 3`. Chapter-numbering attributes
|
|
281
|
+
* (`w:chapStyle`/`w:chapSep`) are preserved. A section with nothing to clear is a no-op.
|
|
209
282
|
*/
|
|
210
|
-
|
|
211
|
-
return JSON.parse(this.wasm.
|
|
283
|
+
clearPageNumbering(anchorId) {
|
|
284
|
+
return JSON.parse(this.wasm.ClearPageNumbering(this.handle, anchorId));
|
|
212
285
|
}
|
|
213
286
|
/**
|
|
214
287
|
* Make the `kind` header/footer stories of the section that owns `anchorId` actually RENDER:
|
|
@@ -225,6 +298,123 @@ var DocxodusSession = (() => {
|
|
|
225
298
|
ensureHeaderFooterVisible(anchorId, kind) {
|
|
226
299
|
return JSON.parse(this.wasm.EnsureHeaderFooterVisible(this.handle, anchorId, kind));
|
|
227
300
|
}
|
|
301
|
+
// ─── Footnotes / endnotes ────────────────────────────────────────────
|
|
302
|
+
/**
|
|
303
|
+
* Create a footnote whose body is `markdown` and cite it from the body paragraph `anchorId`, at
|
|
304
|
+
* `characterOffset` characters into that paragraph's text (0 = before all text, text length =
|
|
305
|
+
* after all of it). On a document with no footnotes yet this also creates the footnotes part,
|
|
306
|
+
* Word's two reserved separator notes, the `FootnoteText`/`FootnoteReference` styles and the
|
|
307
|
+
* `w:footnotePr` settings declaration; otherwise the existing part is reused. The note id is
|
|
308
|
+
* allocated above every id already used in the package, so non-contiguous ids can't collide.
|
|
309
|
+
*
|
|
310
|
+
* Returns the created note anchors in `EditResult.created` — the definition (kind `fn`) and its
|
|
311
|
+
* paragraphs (kind `p`, scope `fn`) — so the note can immediately be edited with
|
|
312
|
+
* {@link replaceText} or removed with {@link deleteBlock} (which also drops the body reference).
|
|
313
|
+
*
|
|
314
|
+
* Body paragraphs only: Word does not allow a note reference inside a header/footer story or
|
|
315
|
+
* inside another note, so a non-body anchor fails with `anchorWrongKind`.
|
|
316
|
+
*/
|
|
317
|
+
insertFootnote(anchorId, characterOffset, markdown) {
|
|
318
|
+
return JSON.parse(
|
|
319
|
+
this.wasm.InsertFootnote(this.handle, anchorId, characterOffset, markdown)
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
/** Create an endnote — see {@link insertFootnote}; writes the endnotes part and a
|
|
323
|
+
* `w:endnoteReference`, and the created definition anchor has kind `en`. */
|
|
324
|
+
insertEndnote(anchorId, characterOffset, markdown) {
|
|
325
|
+
return JSON.parse(
|
|
326
|
+
this.wasm.InsertEndnote(this.handle, anchorId, characterOffset, markdown)
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
// ─── Comments (issue #300) ───────────────────────────────────────────
|
|
330
|
+
/**
|
|
331
|
+
* Add a **native Word comment** (real `w:comment` markup, visible in Word/Google
|
|
332
|
+
* Docs/LibreOffice's Reviewing pane — not the {@link addAnnotation} overlay) on the body
|
|
333
|
+
* paragraph `anchorId`. `span` selects the commented character range; `null` comments the
|
|
334
|
+
* whole block. On a document with no comments yet this also creates the comments part and
|
|
335
|
+
* the `CommentText`/`CommentReference` styles. `opts.date` (ISO-8601) is written only when
|
|
336
|
+
* provided, keeping output deterministic by default.
|
|
337
|
+
*
|
|
338
|
+
* Returns the created definition anchor (kind `cmt`) and its paragraph anchors (kind `p`,
|
|
339
|
+
* scope `cmt`) in `EditResult.created`, so the comment can immediately be edited with
|
|
340
|
+
* {@link updateComment} or removed with {@link removeComment}.
|
|
341
|
+
*
|
|
342
|
+
* Body paragraphs only (Word has no comments-on-comments); a non-body anchor fails with
|
|
343
|
+
* `anchor_wrong_kind`, a zero-length span with `empty_comment_span`.
|
|
344
|
+
*/
|
|
345
|
+
addComment(anchorId, span, author, markdown, opts) {
|
|
346
|
+
const spanJson = span ? JSON.stringify(span) : "";
|
|
347
|
+
return JSON.parse(
|
|
348
|
+
this.wasm.AddComment(
|
|
349
|
+
this.handle,
|
|
350
|
+
anchorId,
|
|
351
|
+
spanJson,
|
|
352
|
+
author,
|
|
353
|
+
opts?.initials ?? "",
|
|
354
|
+
opts?.date ?? "",
|
|
355
|
+
markdown
|
|
356
|
+
)
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Add a native Word reply to `parentCommentAnchorId`. It adds an adjacent reference and
|
|
361
|
+
* inherits the thread root's range through `w15:paraIdParent`; the required
|
|
362
|
+
* `commentsExtended.xml` and `commentsIds.xml` parts are created when the parent was flat.
|
|
363
|
+
*/
|
|
364
|
+
addCommentReply(parentCommentAnchorId, author, markdown, opts) {
|
|
365
|
+
return JSON.parse(
|
|
366
|
+
this.wasm.AddCommentReply(
|
|
367
|
+
this.handle,
|
|
368
|
+
parentCommentAnchorId,
|
|
369
|
+
author,
|
|
370
|
+
opts?.initials ?? "",
|
|
371
|
+
opts?.date ?? "",
|
|
372
|
+
markdown
|
|
373
|
+
)
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
/** Replace a comment's body text, addressed by its definition anchor (kind `cmt`); the
|
|
377
|
+
* comment's author/initials/date are preserved, as is the last paragraph's `w14:paraId`
|
|
378
|
+
* (Word's reply-threading key). */
|
|
379
|
+
updateComment(commentAnchorId, markdown) {
|
|
380
|
+
return JSON.parse(this.wasm.UpdateComment(this.handle, commentAnchorId, markdown));
|
|
381
|
+
}
|
|
382
|
+
/** Resolve or reopen one comment (`false` reopens it). Flat comments are upgraded with the
|
|
383
|
+
* paraId-keyed metadata Word uses, and the operation is undoable. */
|
|
384
|
+
setCommentResolved(commentAnchorId, resolved) {
|
|
385
|
+
return JSON.parse(
|
|
386
|
+
this.wasm.SetCommentResolved(this.handle, commentAnchorId, resolved)
|
|
387
|
+
);
|
|
388
|
+
}
|
|
389
|
+
/** Remove a comment: the definition, its body marker triple everywhere in the package, and
|
|
390
|
+
* any `commentsExtended`/`commentsIds` threading entries keyed by it. */
|
|
391
|
+
removeComment(commentAnchorId) {
|
|
392
|
+
return JSON.parse(this.wasm.RemoveComment(this.handle, commentAnchorId));
|
|
393
|
+
}
|
|
394
|
+
/** The document's native Word comments in comments-part order. */
|
|
395
|
+
listComments() {
|
|
396
|
+
return JSON.parse(this.wasm.ListComments(this.handle));
|
|
397
|
+
}
|
|
398
|
+
// ─── Tracked revisions (issue #318) ──────────────────────────────────
|
|
399
|
+
/** Markup-native tracked-revision listing, in document order across body, headers,
|
|
400
|
+
* footers, footnotes, and endnotes. Ids are stable while the underlying markup
|
|
401
|
+
* exists and address {@link acceptRevision}/{@link rejectRevision}; authors/dates
|
|
402
|
+
* are the markup's own (no accept/reject re-diff). */
|
|
403
|
+
listRevisions() {
|
|
404
|
+
return JSON.parse(this.wasm.ListRevisions(this.handle));
|
|
405
|
+
}
|
|
406
|
+
/** Accept ONE revision by the id {@link listRevisions} reported — insertions keep
|
|
407
|
+
* their content, deletions are carried out, a move materializes at its destination,
|
|
408
|
+
* a format change keeps the new properties. Undoable. */
|
|
409
|
+
acceptRevision(revisionId) {
|
|
410
|
+
return JSON.parse(this.wasm.AcceptRevision(this.handle, revisionId));
|
|
411
|
+
}
|
|
412
|
+
/** Reject ONE revision by id — the inverse of {@link acceptRevision}: insertions are
|
|
413
|
+
* removed, deleted content is restored, a move stays at its source, a format change
|
|
414
|
+
* restores the stored old properties. Undoable. */
|
|
415
|
+
rejectRevision(revisionId) {
|
|
416
|
+
return JSON.parse(this.wasm.RejectRevision(this.handle, revisionId));
|
|
417
|
+
}
|
|
228
418
|
// ─── Tier C: formatting ──────────────────────────────────────────────
|
|
229
419
|
applyFormat(anchorId, span, op) {
|
|
230
420
|
const spanJson = span ? JSON.stringify(span) : "";
|
|
@@ -266,6 +456,27 @@ var DocxodusSession = (() => {
|
|
|
266
456
|
applyListFormat(anchorId, kind) {
|
|
267
457
|
return JSON.parse(this.wasm.ApplyListFormat(this.handle, anchorId, kind));
|
|
268
458
|
}
|
|
459
|
+
/** Apply one list format across the contiguous sibling run from `firstAnchorId` to
|
|
460
|
+
* `lastAnchorId` inclusive (either document order). Every member shares one `w:num`
|
|
461
|
+
* instance so the numbering sequence stays intact; the whole range is a single undo step. */
|
|
462
|
+
applyListFormatRange(firstAnchorId, lastAnchorId, kind) {
|
|
463
|
+
return JSON.parse(
|
|
464
|
+
this.wasm.ApplyListFormatRange(this.handle, firstAnchorId, lastAnchorId, kind)
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
/** Restart the anchored list item's numbering at `value` — Word's *Set Numbering Value…*.
|
|
468
|
+
* Writes a `w:startOverride` on a dedicated `w:num` instance and repoints the anchored item
|
|
469
|
+
* plus every following member of its sequence, so a mid-list restart splits the sequence
|
|
470
|
+
* exactly like Word (earlier items keep their numbers, the tail continues from `value`). */
|
|
471
|
+
setListStartOverride(anchorId, value) {
|
|
472
|
+
return JSON.parse(this.wasm.SetListStartOverride(this.handle, anchorId, value));
|
|
473
|
+
}
|
|
474
|
+
/** Remove the numbering restart from the anchored item's whole sequence (the inverse of
|
|
475
|
+
* {@link setListStartOverride}); the sequence reverts to the definition's own start. A
|
|
476
|
+
* sequence with no override at the item's level is a successful no-op. */
|
|
477
|
+
clearListStartOverride(anchorId) {
|
|
478
|
+
return JSON.parse(this.wasm.ClearListStartOverride(this.handle, anchorId));
|
|
479
|
+
}
|
|
269
480
|
// ─── Tier D: cell content ────────────────────────────────────────────
|
|
270
481
|
replaceCellContent(cellAnchorId, markdown) {
|
|
271
482
|
return JSON.parse(this.wasm.ReplaceCellContent(this.handle, cellAnchorId, markdown));
|
|
@@ -689,6 +900,17 @@ var DocxodusSession = (() => {
|
|
|
689
900
|
);
|
|
690
901
|
}
|
|
691
902
|
// ─── Lifecycle ───────────────────────────────────────────────────────
|
|
903
|
+
/**
|
|
904
|
+
* Switch how subsequent mutations are recorded (issue #304). Session configuration,
|
|
905
|
+
* not a document mutation: not undoable, and already-applied markup is never touched.
|
|
906
|
+
*/
|
|
907
|
+
setTrackedChanges(mode) {
|
|
908
|
+
this.wasm.SetTrackedChanges(this.handle, mode);
|
|
909
|
+
}
|
|
910
|
+
/** Author stamped on subsequent tracked-change markup; `null` restores the "docxodus" default. */
|
|
911
|
+
setRevisionAuthor(author) {
|
|
912
|
+
this.wasm.SetRevisionAuthor(this.handle, author ?? "");
|
|
913
|
+
}
|
|
692
914
|
undo() {
|
|
693
915
|
return this.wasm.Undo(this.handle);
|
|
694
916
|
}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AnchorInfo, AnchorTargetRef, AnnotationUpdate, BlockMetadata, BulkEditResult, CharSpan, CrossBlockMatch, DiffEntry, DocumentAnnotation, DocxodusWasmExports, DocxSessionProjection, DocxSessionSettings, EditResult, EditSummary, FillOptions, FindOptions, FormatOp, HeaderFooterKind, PageNumberField, ParagraphBorderEdge, ParagraphFormatOp, TableInsertOptions, ListFormat, GrepOptions, ListMembership, ReplaceOptions, SectionInfo, TemplatePlaceholder, TextMatch } from "./types.js";
|
|
2
|
-
import { DiffFormat, ProjectionDepth } from "./types.js";
|
|
1
|
+
import type { AnchorInfo, AnchorTargetRef, AnnotationUpdate, BlockMetadata, BulkEditResult, CharSpan, CommentListEntry, CrossBlockMatch, DiffEntry, DocumentAnnotation, DocxodusWasmExports, DocxSessionProjection, DocxSessionSettings, EditResult, EditSummary, FillOptions, FindOptions, FormatOp, HeaderFooterKind, NumberFormat, PageNumberField, PageNumberingOp, ParagraphBorderEdge, ParagraphFormatOp, TableBorderSpec, TableInsertOptions, TableShadingScope, ListFormat, GrepOptions, ListMembership, ReplaceOptions, RevisionListEntry, SectionInfo, TemplatePlaceholder, TextMatch } from "./types.js";
|
|
2
|
+
import { DiffFormat, ProjectionDepth, TrackedChangeMode } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Stateful in-memory DOCX editing session keyed by markdown-projection anchor ids.
|
|
5
5
|
* Mirror of the .NET `DocxSession` surface. See
|
|
@@ -89,6 +89,31 @@ export declare class DocxSession {
|
|
|
89
89
|
insertTableColumn(cellAnchorId: string, position: "before" | "after"): EditResult;
|
|
90
90
|
deleteTableRow(cellAnchorId: string): EditResult;
|
|
91
91
|
deleteTableColumn(cellAnchorId: string): EditResult;
|
|
92
|
+
/**
|
|
93
|
+
* Table styling, addressed by a cell-paragraph anchor — the post-insert counterpart of
|
|
94
|
+
* {@link insertTable}'s options (issue #315 Stage A). `setColumnWidths` retunes `w:tblGrid` +
|
|
95
|
+
* every row's cell width (one positive twip value per column) and pins the table to fixed
|
|
96
|
+
* layout, exactly as inserting with explicit `columnWidths` would.
|
|
97
|
+
*/
|
|
98
|
+
setColumnWidths(cellAnchorId: string, widthsTwips: number[]): EditResult;
|
|
99
|
+
/**
|
|
100
|
+
* Set the table-level borders (`w:tblPr/w:tblBorders`) of the table containing the anchor.
|
|
101
|
+
* Only the edges named by `spec.scope` are written; the rest are left untouched. Style
|
|
102
|
+
* `"none"` removes the targeted edges. Omitting `spec` writes a thin single border all round.
|
|
103
|
+
*/
|
|
104
|
+
setTableBorders(cellAnchorId: string, spec?: TableBorderSpec): EditResult;
|
|
105
|
+
/**
|
|
106
|
+
* Shade the cell containing the anchor — or, with scope `"row"`, every cell of its row
|
|
107
|
+
* (header-row banding). `fill` is a hex RRGGBB triplet (leading '#' tolerated) or `"auto"`;
|
|
108
|
+
* `null` removes the shading.
|
|
109
|
+
*/
|
|
110
|
+
setCellShading(cellAnchorId: string, fill: string | null, scope?: TableShadingScope): EditResult;
|
|
111
|
+
/**
|
|
112
|
+
* Mark (or unmark) the row containing the anchor as a repeating header row
|
|
113
|
+
* (`w:trPr/w:tblHeader`), so a multi-page table re-shows it on every page. Word only honors
|
|
114
|
+
* the flag on a run of rows starting at the table's first row.
|
|
115
|
+
*/
|
|
116
|
+
setRepeatHeaderRow(cellAnchorId: string, repeat: boolean): EditResult;
|
|
92
117
|
/**
|
|
93
118
|
* Set the running header story for the section that owns `anchorId` (any body block in that
|
|
94
119
|
* section) to `markdown`. Creates the header part + `w:headerReference` if the story of `kind`
|
|
@@ -104,10 +129,34 @@ export declare class DocxSession {
|
|
|
104
129
|
/**
|
|
105
130
|
* Append a page-number field to the paragraph `anchorId` — typically a header/footer paragraph
|
|
106
131
|
* returned by {@link setFooterText}/{@link setHeaderText}. `"currentPage"` emits a PAGE field,
|
|
107
|
-
* `"totalPages"` a NUMPAGES field (native complex field with a cached
|
|
108
|
-
* the paragraph alignment ({@link setParagraphFormat}). Returns the paragraph anchor in
|
|
132
|
+
* `"totalPages"` a NUMPAGES field (native complex field with a cached result). Center it by
|
|
133
|
+
* setting the paragraph alignment ({@link setParagraphFormat}). Returns the paragraph anchor in
|
|
134
|
+
* `modified`.
|
|
135
|
+
*
|
|
136
|
+
* `format` writes the field's own `\*` general-formatting switch (`PAGE \* roman` → `i, ii, iii`).
|
|
137
|
+
* Omitting it — the default — emits a plain field, which is what Word inserts and what follows the
|
|
138
|
+
* SECTION's format ({@link setPageNumbering}). Prefer the section setting for ordinary page
|
|
139
|
+
* numbering: a switch here overrides it for this one field and keeps overriding it if the section
|
|
140
|
+
* later changes.
|
|
141
|
+
*/
|
|
142
|
+
insertPageNumberField(anchorId: string, field?: PageNumberField, format?: NumberFormat): EditResult;
|
|
143
|
+
/**
|
|
144
|
+
* Set the page-numbering properties (`w:pgNumType`) of the section that owns `anchorId` (any body
|
|
145
|
+
* block in that section) — Word's *Format Page Numbers…* dialog: which number the section starts
|
|
146
|
+
* at and which format its pages use. Omitted fields on `op` are left unchanged, so the start can
|
|
147
|
+
* be set without disturbing the format and vice versa. Creates the element, and a trailing
|
|
148
|
+
* `w:sectPr`, if absent.
|
|
149
|
+
*
|
|
150
|
+
* Applying values the section already has is a successful no-op that does NOT consume undo
|
|
151
|
+
* history — safe to call from a dropdown's change handler.
|
|
109
152
|
*/
|
|
110
|
-
|
|
153
|
+
setPageNumbering(anchorId: string, op: PageNumberingOp): EditResult;
|
|
154
|
+
/**
|
|
155
|
+
* Remove the section's page-numbering start/format: it reverts to continuing the previous
|
|
156
|
+
* section's numbering in Word's default `1, 2, 3`. Chapter-numbering attributes
|
|
157
|
+
* (`w:chapStyle`/`w:chapSep`) are preserved. A section with nothing to clear is a no-op.
|
|
158
|
+
*/
|
|
159
|
+
clearPageNumbering(anchorId: string): EditResult;
|
|
111
160
|
/**
|
|
112
161
|
* Make the `kind` header/footer stories of the section that owns `anchorId` actually RENDER:
|
|
113
162
|
* `"first"` sets `w:titlePg`, `"even"` sets the document-global `w:evenAndOddHeaders`;
|
|
@@ -121,6 +170,78 @@ export declare class DocxSession {
|
|
|
121
170
|
* and governs footers too.
|
|
122
171
|
*/
|
|
123
172
|
ensureHeaderFooterVisible(anchorId: string, kind: HeaderFooterKind): EditResult;
|
|
173
|
+
/**
|
|
174
|
+
* Create a footnote whose body is `markdown` and cite it from the body paragraph `anchorId`, at
|
|
175
|
+
* `characterOffset` characters into that paragraph's text (0 = before all text, text length =
|
|
176
|
+
* after all of it). On a document with no footnotes yet this also creates the footnotes part,
|
|
177
|
+
* Word's two reserved separator notes, the `FootnoteText`/`FootnoteReference` styles and the
|
|
178
|
+
* `w:footnotePr` settings declaration; otherwise the existing part is reused. The note id is
|
|
179
|
+
* allocated above every id already used in the package, so non-contiguous ids can't collide.
|
|
180
|
+
*
|
|
181
|
+
* Returns the created note anchors in `EditResult.created` — the definition (kind `fn`) and its
|
|
182
|
+
* paragraphs (kind `p`, scope `fn`) — so the note can immediately be edited with
|
|
183
|
+
* {@link replaceText} or removed with {@link deleteBlock} (which also drops the body reference).
|
|
184
|
+
*
|
|
185
|
+
* Body paragraphs only: Word does not allow a note reference inside a header/footer story or
|
|
186
|
+
* inside another note, so a non-body anchor fails with `anchorWrongKind`.
|
|
187
|
+
*/
|
|
188
|
+
insertFootnote(anchorId: string, characterOffset: number, markdown: string): EditResult;
|
|
189
|
+
/** Create an endnote — see {@link insertFootnote}; writes the endnotes part and a
|
|
190
|
+
* `w:endnoteReference`, and the created definition anchor has kind `en`. */
|
|
191
|
+
insertEndnote(anchorId: string, characterOffset: number, markdown: string): EditResult;
|
|
192
|
+
/**
|
|
193
|
+
* Add a **native Word comment** (real `w:comment` markup, visible in Word/Google
|
|
194
|
+
* Docs/LibreOffice's Reviewing pane — not the {@link addAnnotation} overlay) on the body
|
|
195
|
+
* paragraph `anchorId`. `span` selects the commented character range; `null` comments the
|
|
196
|
+
* whole block. On a document with no comments yet this also creates the comments part and
|
|
197
|
+
* the `CommentText`/`CommentReference` styles. `opts.date` (ISO-8601) is written only when
|
|
198
|
+
* provided, keeping output deterministic by default.
|
|
199
|
+
*
|
|
200
|
+
* Returns the created definition anchor (kind `cmt`) and its paragraph anchors (kind `p`,
|
|
201
|
+
* scope `cmt`) in `EditResult.created`, so the comment can immediately be edited with
|
|
202
|
+
* {@link updateComment} or removed with {@link removeComment}.
|
|
203
|
+
*
|
|
204
|
+
* Body paragraphs only (Word has no comments-on-comments); a non-body anchor fails with
|
|
205
|
+
* `anchor_wrong_kind`, a zero-length span with `empty_comment_span`.
|
|
206
|
+
*/
|
|
207
|
+
addComment(anchorId: string, span: CharSpan | null, author: string, markdown: string, opts?: {
|
|
208
|
+
initials?: string;
|
|
209
|
+
date?: string;
|
|
210
|
+
}): EditResult;
|
|
211
|
+
/**
|
|
212
|
+
* Add a native Word reply to `parentCommentAnchorId`. It adds an adjacent reference and
|
|
213
|
+
* inherits the thread root's range through `w15:paraIdParent`; the required
|
|
214
|
+
* `commentsExtended.xml` and `commentsIds.xml` parts are created when the parent was flat.
|
|
215
|
+
*/
|
|
216
|
+
addCommentReply(parentCommentAnchorId: string, author: string, markdown: string, opts?: {
|
|
217
|
+
initials?: string;
|
|
218
|
+
date?: string;
|
|
219
|
+
}): EditResult;
|
|
220
|
+
/** Replace a comment's body text, addressed by its definition anchor (kind `cmt`); the
|
|
221
|
+
* comment's author/initials/date are preserved, as is the last paragraph's `w14:paraId`
|
|
222
|
+
* (Word's reply-threading key). */
|
|
223
|
+
updateComment(commentAnchorId: string, markdown: string): EditResult;
|
|
224
|
+
/** Resolve or reopen one comment (`false` reopens it). Flat comments are upgraded with the
|
|
225
|
+
* paraId-keyed metadata Word uses, and the operation is undoable. */
|
|
226
|
+
setCommentResolved(commentAnchorId: string, resolved: boolean): EditResult;
|
|
227
|
+
/** Remove a comment: the definition, its body marker triple everywhere in the package, and
|
|
228
|
+
* any `commentsExtended`/`commentsIds` threading entries keyed by it. */
|
|
229
|
+
removeComment(commentAnchorId: string): EditResult;
|
|
230
|
+
/** The document's native Word comments in comments-part order. */
|
|
231
|
+
listComments(): CommentListEntry[];
|
|
232
|
+
/** Markup-native tracked-revision listing, in document order across body, headers,
|
|
233
|
+
* footers, footnotes, and endnotes. Ids are stable while the underlying markup
|
|
234
|
+
* exists and address {@link acceptRevision}/{@link rejectRevision}; authors/dates
|
|
235
|
+
* are the markup's own (no accept/reject re-diff). */
|
|
236
|
+
listRevisions(): RevisionListEntry[];
|
|
237
|
+
/** Accept ONE revision by the id {@link listRevisions} reported — insertions keep
|
|
238
|
+
* their content, deletions are carried out, a move materializes at its destination,
|
|
239
|
+
* a format change keeps the new properties. Undoable. */
|
|
240
|
+
acceptRevision(revisionId: string): EditResult;
|
|
241
|
+
/** Reject ONE revision by id — the inverse of {@link acceptRevision}: insertions are
|
|
242
|
+
* removed, deleted content is restored, a move stays at its source, a format change
|
|
243
|
+
* restores the stored old properties. Undoable. */
|
|
244
|
+
rejectRevision(revisionId: string): EditResult;
|
|
124
245
|
applyFormat(anchorId: string, span: CharSpan | null, op: FormatOp): EditResult;
|
|
125
246
|
/**
|
|
126
247
|
* Convenience: find `substring` in the anchor's flat text and apply `op` to the
|
|
@@ -141,6 +262,19 @@ export declare class DocxSession {
|
|
|
141
262
|
removeListMembership(anchorId: string): EditResult;
|
|
142
263
|
/** Make the paragraph a bullet/numbered list item, or remove list membership ("none"). */
|
|
143
264
|
applyListFormat(anchorId: string, kind: ListFormat): EditResult;
|
|
265
|
+
/** Apply one list format across the contiguous sibling run from `firstAnchorId` to
|
|
266
|
+
* `lastAnchorId` inclusive (either document order). Every member shares one `w:num`
|
|
267
|
+
* instance so the numbering sequence stays intact; the whole range is a single undo step. */
|
|
268
|
+
applyListFormatRange(firstAnchorId: string, lastAnchorId: string, kind: ListFormat): EditResult;
|
|
269
|
+
/** Restart the anchored list item's numbering at `value` — Word's *Set Numbering Value…*.
|
|
270
|
+
* Writes a `w:startOverride` on a dedicated `w:num` instance and repoints the anchored item
|
|
271
|
+
* plus every following member of its sequence, so a mid-list restart splits the sequence
|
|
272
|
+
* exactly like Word (earlier items keep their numbers, the tail continues from `value`). */
|
|
273
|
+
setListStartOverride(anchorId: string, value: number): EditResult;
|
|
274
|
+
/** Remove the numbering restart from the anchored item's whole sequence (the inverse of
|
|
275
|
+
* {@link setListStartOverride}); the sequence reverts to the definition's own start. A
|
|
276
|
+
* sequence with no override at the item's level is a successful no-op. */
|
|
277
|
+
clearListStartOverride(anchorId: string): EditResult;
|
|
144
278
|
replaceCellContent(cellAnchorId: string, markdown: string): EditResult;
|
|
145
279
|
readonly raw: {
|
|
146
280
|
getXml: (anchorId: string) => string;
|
|
@@ -387,6 +521,13 @@ export declare class DocxSession {
|
|
|
387
521
|
removeAnnotation(annotationId: string): EditResult;
|
|
388
522
|
updateAnnotation(annotationId: string, update: AnnotationUpdate): EditResult;
|
|
389
523
|
moveAnnotation(annotationId: string, newAnchorId: string, newSpan: CharSpan | null): EditResult;
|
|
524
|
+
/**
|
|
525
|
+
* Switch how subsequent mutations are recorded (issue #304). Session configuration,
|
|
526
|
+
* not a document mutation: not undoable, and already-applied markup is never touched.
|
|
527
|
+
*/
|
|
528
|
+
setTrackedChanges(mode: TrackedChangeMode): void;
|
|
529
|
+
/** Author stamped on subsequent tracked-change markup; `null` restores the "docxodus" default. */
|
|
530
|
+
setRevisionAuthor(author: string | null): void;
|
|
390
531
|
undo(): boolean;
|
|
391
532
|
redo(): boolean;
|
|
392
533
|
save(): Uint8Array;
|
|
@@ -399,6 +540,6 @@ export declare class DocxSession {
|
|
|
399
540
|
* {@link DocxSession.close} (or it is disposed).
|
|
400
541
|
*/
|
|
401
542
|
export declare function openDocxSession(bytes: Uint8Array, wasmExports: DocxodusWasmExports, settings?: DocxSessionSettings): DocxSession;
|
|
402
|
-
export type { AnchorInfo, AnchorRef, AnchorTargetRef, BlockSlice, CharSpan, CrossBlockMatch, DocumentAnnotation, DocxSessionProjection, DocxSessionSettings, EditError, EditErrorCode, EditResult, FindOptions, FormatOp, GrepOptions, MarkdownPatch, PlaceholderKind, ReplaceOptions, RunFormatting, RunFragment, TemplatePlaceholder, TextMatch } from "./types.js";
|
|
543
|
+
export type { AnchorInfo, AnchorRef, AnchorTargetRef, BlockSlice, CharSpan, CommentListEntry, CrossBlockMatch, DocumentAnnotation, DocxSessionProjection, DocxSessionSettings, EditError, EditErrorCode, EditResult, FindOptions, FormatOp, GrepOptions, MarkdownPatch, PlaceholderKind, ReplaceOptions, RunFormatting, RunFragment, TemplatePlaceholder, TextMatch } from "./types.js";
|
|
403
544
|
export { ContextBoundary, PlaceholderKinds } from "./types.js";
|
|
404
545
|
//# sourceMappingURL=session.d.ts.map
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EAEV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EAEnB,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAmB,UAAU,EAAoB,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|