docxodus 8.0.0 → 9.1.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.
Files changed (114) hide show
  1. package/README.md +156 -31
  2. package/dist/editor-headerfooter.d.ts +39 -3
  3. package/dist/editor-headerfooter.d.ts.map +1 -1
  4. package/dist/editor-headerfooter.js +118 -2
  5. package/dist/editor-headerfooter.js.map +1 -1
  6. package/dist/editor-reconcile.d.ts +75 -0
  7. package/dist/editor-reconcile.d.ts.map +1 -0
  8. package/dist/editor-reconcile.js +125 -0
  9. package/dist/editor-reconcile.js.map +1 -0
  10. package/dist/editor.bundle.js +799 -42
  11. package/dist/editor.d.ts +121 -5
  12. package/dist/editor.d.ts.map +1 -1
  13. package/dist/editor.js +572 -31
  14. package/dist/editor.js.map +1 -1
  15. package/dist/embed.bundle.js +6569 -0
  16. package/dist/embed.d.ts +77 -0
  17. package/dist/embed.d.ts.map +1 -0
  18. package/dist/embed.iife.js +6596 -0
  19. package/dist/embed.js +350 -0
  20. package/dist/embed.js.map +1 -0
  21. package/dist/index.d.ts +11 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +17 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/page-number-format.d.ts +22 -0
  26. package/dist/page-number-format.d.ts.map +1 -0
  27. package/dist/page-number-format.js +60 -0
  28. package/dist/page-number-format.js.map +1 -0
  29. package/dist/pagination.bundle.js +158 -21
  30. package/dist/pagination.d.ts +38 -0
  31. package/dist/pagination.d.ts.map +1 -1
  32. package/dist/pagination.js +181 -29
  33. package/dist/pagination.js.map +1 -1
  34. package/dist/session.bundle.js +241 -4
  35. package/dist/session.d.ts +154 -6
  36. package/dist/session.d.ts.map +1 -1
  37. package/dist/session.js +193 -4
  38. package/dist/session.js.map +1 -1
  39. package/dist/types.d.ts +192 -4
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm +0 -0
  43. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm.br +0 -0
  44. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm +0 -0
  45. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm.br +0 -0
  46. package/dist/wasm/_framework/Docxodus.wasm +0 -0
  47. package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
  48. package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
  49. package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
  50. package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
  51. package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
  52. package/dist/wasm/_framework/System.Collections.Immutable.wasm.br +0 -0
  53. package/dist/wasm/_framework/System.Collections.NonGeneric.wasm.br +0 -0
  54. package/dist/wasm/_framework/System.Collections.Specialized.wasm.br +0 -0
  55. package/dist/wasm/_framework/System.Collections.wasm +0 -0
  56. package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
  57. package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm.br +0 -0
  58. package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm.br +0 -0
  59. package/dist/wasm/_framework/System.ComponentModel.wasm.br +0 -0
  60. package/dist/wasm/_framework/System.Console.wasm +0 -0
  61. package/dist/wasm/_framework/System.Console.wasm.br +0 -0
  62. package/dist/wasm/_framework/System.Diagnostics.Process.wasm +0 -0
  63. package/dist/wasm/_framework/System.Diagnostics.Process.wasm.br +0 -0
  64. package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
  65. package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
  66. package/dist/wasm/_framework/System.IO.Packaging.wasm +0 -0
  67. package/dist/wasm/_framework/System.IO.Packaging.wasm.br +0 -0
  68. package/dist/wasm/_framework/System.IO.Pipelines.wasm.br +0 -0
  69. package/dist/wasm/_framework/System.Linq.Expressions.wasm.br +0 -0
  70. package/dist/wasm/_framework/System.Linq.wasm +0 -0
  71. package/dist/wasm/_framework/System.Linq.wasm.br +0 -0
  72. package/dist/wasm/_framework/System.Memory.wasm +0 -0
  73. package/dist/wasm/_framework/System.Memory.wasm.br +0 -0
  74. package/dist/wasm/_framework/System.Net.Http.wasm.br +0 -0
  75. package/dist/wasm/_framework/System.Net.Primitives.wasm.br +0 -0
  76. package/dist/wasm/_framework/System.ObjectModel.wasm.br +0 -0
  77. package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
  78. package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
  79. package/dist/wasm/_framework/System.Private.Uri.wasm.br +0 -0
  80. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
  81. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
  82. package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
  83. package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
  84. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
  85. package/dist/wasm/_framework/System.Runtime.wasm +0 -0
  86. package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
  87. package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
  88. package/dist/wasm/_framework/System.Text.Encodings.Web.wasm.br +0 -0
  89. package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
  90. package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
  91. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
  92. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
  93. package/dist/wasm/_framework/System.Xml.Linq.wasm.br +0 -0
  94. package/dist/wasm/_framework/System.Xml.XDocument.wasm +0 -0
  95. package/dist/wasm/_framework/System.Xml.XDocument.wasm.br +0 -0
  96. package/dist/wasm/_framework/System.wasm.br +0 -0
  97. package/dist/wasm/_framework/dotnet.boot.js +22 -57
  98. package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
  99. package/dist/wasm/_framework/dotnet.js.br +0 -0
  100. package/dist/wasm/_framework/dotnet.native.js +0 -171
  101. package/dist/wasm/_framework/dotnet.native.js.br +0 -0
  102. package/dist/wasm/_framework/dotnet.native.wasm +0 -0
  103. package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
  104. package/dist/wasm/_framework/dotnet.runtime.js.br +0 -0
  105. package/package.json +26 -5
  106. package/dist/wasm/_framework/System.Text.Encoding.Extensions.wasm +0 -0
  107. package/dist/wasm/_framework/System.Threading.Thread.wasm +0 -0
  108. package/dist/wasm/_framework/System.Threading.wasm +0 -0
  109. package/dist/wasm/_framework/System.Xml.ReaderWriter.wasm +0 -0
  110. package/dist/wasm/_framework/System.Xml.XPath.XDocument.wasm +0 -0
  111. package/dist/wasm/_framework/System.Xml.XPath.wasm +0 -0
  112. package/dist/wasm/_framework/dotnet.js.map +0 -1
  113. package/dist/wasm/_framework/dotnet.native.js.symbols +0 -5532
  114. package/dist/wasm/_framework/dotnet.runtime.js.map +0 -1
package/README.md CHANGED
@@ -1,34 +1,93 @@
1
1
  # Docxodus
2
2
 
3
- DOCX document comparison and HTML conversion in the browser using WebAssembly.
4
-
5
- Docxodus brings professional-grade document comparison (redlining) to JavaScript applications. Compare two Word documents and get tracked changes, or convert DOCX files to HTML - all running entirely in the browser with no server required.
6
-
7
- ## Features
8
-
9
- - **Document Comparison**: Compare two DOCX files and generate a redlined document with tracked changes
10
- - **Move Detection**: Automatically identifies relocated content (not just deleted/re-inserted)
11
- - **Format Change Detection**: Detects formatting-only changes (bold, italic, font size, etc.)
12
- - **HTML Conversion**: Convert DOCX documents to HTML for display in the browser
13
- - Comment rendering (endnote-style, inline, or margin)
14
- - Paginated output mode for PDF-like viewing
15
- - Headers, footers, footnotes, and endnotes support
16
- - Custom annotation rendering
17
- - **Document Metadata**: Fast metadata extraction for lazy loading and pagination
18
- - **Revision Extraction**: Get structured data about all revisions in a compared document
19
- - **OpenContracts Export**: Export documents to OpenContracts format for NLP/document analysis
20
- - **External Annotations**: Store annotations externally without modifying the DOCX
21
- - **100% Client-Side**: All processing happens in the browser using WebAssembly
22
- - **Web Worker Support**: Non-blocking WASM execution via Web Workers
23
- - **React Hooks**: Ready-to-use hooks for React applications
24
- - **TypeScript Support**: Full type definitions included
25
-
26
- ## Installation
3
+ **View, edit, and diff Word `.docx` files in the browser.** No server, no upload, no conversion
4
+ round-trip — a real OOXML engine compiled to WebAssembly, wrapped in TypeScript.
27
5
 
28
6
  ```bash
29
7
  npm install docxodus
30
8
  ```
31
9
 
10
+ ---
11
+
12
+ ## Diff two documents into a redline Word will open
13
+
14
+ `compareDocuments()` returns a `.docx` carrying **native Word tracked changes** — `w:ins`, `w:del`,
15
+ and true move markup — not a text diff with highlighting. Open it in Word and accept/reject as usual.
16
+
17
+ ![A redlined venture financing agreement](https://raw.githubusercontent.com/JSv4/Docxodus/main/docs/images/redline.png)
18
+
19
+ *Real output. One frame: a struck definition, an inserted definition, word-level substitutions inside
20
+ an untouched sentence, and a clause **moved** — struck in purple at the bottom, re-inserted at the top,
21
+ linked as one operation instead of reported as an unrelated delete and insert.*
22
+
23
+ `getRevisions()` gives you the same changes as structured data — typed, with move pairing and stable
24
+ `kind:scope:unid` anchors — so you can drive a review UI without parsing OOXML.
25
+
26
+ ## Render a document faithfully
27
+
28
+ `convertDocxToHtml()` keeps what naive converters drop: justification, style inheritance, legal
29
+ numbering, tables, images, comments, headers and footers, and real footnotes with back-references.
30
+
31
+ ![The NVCA model charter rendered to HTML](https://raw.githubusercontent.com/JSv4/Docxodus/main/docs/images/render.png)
32
+
33
+ Paginated mode flows content into real page boxes with per-page numbers and page-anchored footnotes —
34
+ a print-accurate preview in the browser.
35
+
36
+ ## Edit it in place
37
+
38
+ `DocxEditor` is a framework-agnostic block editor over the live document. Edits go through a
39
+ `DocxSession`, and **only the changed block re-renders**, so structural operations cost ~90–360 ms on
40
+ a 346-block, 94-footnote filing template. `save()` returns lossless bytes.
41
+
42
+ ![The in-browser DOCX editor](https://raw.githubusercontent.com/JSv4/Docxodus/main/docs/images/editor/editor-overview.png)
43
+
44
+ ```ts
45
+ import { DocxEditor } from 'docxodus';
46
+ const editor = DocxEditor.open(container, docxBytes, exports);
47
+ ```
48
+
49
+ See [`examples/editor.html`](https://github.com/JSv4/Docxodus/blob/main/npm/examples/editor.html) for
50
+ a complete ribbon implementation.
51
+
52
+ ## Embed it with one script tag
53
+
54
+ The `embed` entry packages the viewer and editor behind two one-call factories, with the WASM
55
+ runtime location auto-detected — no build step, no configuration:
56
+
57
+ ```html
58
+ <div id="doc"></div>
59
+ <script type="module">
60
+ import { createEditor } from 'https://cdn.jsdelivr.net/npm/docxodus@9.1.0/dist/embed.bundle.js';
61
+ const editor = await createEditor('#doc', './contract.docx'); // or bytes / Blob / File
62
+ // ...later: const editedBytes = editor.save();
63
+ </script>
64
+ ```
65
+
66
+ `createViewer('#doc', source, options?)` is the read-only counterpart. Bundler users get the same
67
+ API from `docxodus/embed`; classic-script pages can load `dist/embed.iife.js` for a global
68
+ `Docxodus`. See [Embedding via CDN](#embedding-via-cdn) below.
69
+
70
+ ## Project it for an LLM
71
+
72
+ `convertWmlToMarkdown()` renders the document as markdown where **every block carries a stable id**,
73
+ so an agent can point at a clause and edit it — and `openDocxSession()` writes back to that same id.
74
+
75
+ ![Markdown projection beside the rendered document](https://raw.githubusercontent.com/JSv4/Docxodus/main/docs/images/projection.png)
76
+
77
+ ---
78
+
79
+ ## Everything else
80
+
81
+ - **Move detection** — relocated content is identified as a move, not a delete plus an insert
82
+ - **Format change detection** — formatting-only changes (bold, italic, font size, …)
83
+ - **Comment rendering** — endnote-style, inline, or margin
84
+ - **Document metadata** — fast extraction for lazy loading and pagination
85
+ - **OpenContracts export** — for NLP and document-analysis pipelines
86
+ - **External annotations** — overlay annotations without modifying the DOCX
87
+ - **Web Worker support** — non-blocking WASM execution off the main thread
88
+ - **React hooks** — `useDocxodus`, `useConversion`, `useComparison`
89
+ - **TypeScript** — full type definitions included
90
+
32
91
  ## Quick Start
33
92
 
34
93
  ### Basic Usage
@@ -357,6 +416,69 @@ Hook for managing custom annotations on documents.
357
416
  #### `useDocumentStructure(wasmBasePath?: string)`
358
417
  Hook for document structure analysis and element-based targeting.
359
418
 
419
+ ## Embedding via CDN
420
+
421
+ Everything in the published package — the JS wrappers AND the WASM runtime — is served by npm CDNs
422
+ (jsDelivr, unpkg) with `Access-Control-Allow-Origin: *` and correct `application/wasm` MIME types,
423
+ so a page can embed a full viewer or editor without hosting anything itself.
424
+
425
+ ### One-tag viewer / editor (recommended)
426
+
427
+ ```html
428
+ <div id="viewer"></div>
429
+ <div id="editor"></div>
430
+ <script type="module">
431
+ import { createViewer, createEditor }
432
+ from 'https://cdn.jsdelivr.net/npm/docxodus@9.1.0/dist/embed.bundle.js';
433
+
434
+ // Choose either factory, or render both into separate containers as shown.
435
+ // Source may be a URL, Uint8Array, ArrayBuffer, Blob, or File.
436
+ const viewer = await createViewer('#viewer', './contract.docx');
437
+
438
+ // No source opens a blank "New document"; returns a DocxEditor.
439
+ const editor = await createEditor('#editor', './contract.docx', { paginated: false });
440
+ const bytes = editor.save(); // lossless DOCX bytes
441
+ </script>
442
+ ```
443
+
444
+ `dist/embed.bundle.js` is a self-contained ESM bundle re-exporting the entire main API
445
+ (convert, compare, diff, sessions, annotations) plus `createViewer`/`createEditor`/`DocxEditor`,
446
+ so it also works as a no-build way to use any other function.
447
+
448
+ For pages that can't use modules, `dist/embed.iife.js` exposes the same surface as a global:
449
+
450
+ ```html
451
+ <div id="doc"></div>
452
+ <script src="https://cdn.jsdelivr.net/npm/docxodus@9.1.0/dist/embed.iife.js"></script>
453
+ <script>
454
+ Docxodus.createEditor('#doc').then((editor) => { /* ... */ });
455
+ </script>
456
+ ```
457
+
458
+ ### How WASM resolution works
459
+
460
+ The ~18 MB runtime request set in `dist/wasm/` loads lazily from the same directory the bundle
461
+ was loaded from (`import.meta.url` for module scripts, `document.currentScript` for the IIFE):
462
+ first `<bundle dir>/wasm/`, then `<bundle dir>/` as a fallback. On a CDN that resolves to
463
+ `.../dist/wasm/_framework/...` automatically. To serve the WASM assets from somewhere else, pass
464
+ `{ wasmBasePath: 'https://your.host/wasm/' }` to either factory (or call `initialize(path)` first).
465
+
466
+ ### CDN caveats
467
+
468
+ - **Pin an exact version in production** (`docxodus@9.1.0`, not `@latest`) — CDN responses are
469
+ cached as immutable, and the wire shapes between the JS wrappers and the WASM assemblies must
470
+ come from the same release.
471
+ - The build patches the .NET loader to fetch with `credentials: "omit"` — required because the
472
+ CDN's `Access-Control-Allow-Origin: *` cannot be combined with credentialed requests.
473
+ - The Web Worker entry (`docxodus/worker`) is not CDN-loadable cross-origin (browsers require
474
+ same-origin worker scripts); embed runs the engine on the main thread. Self-host the package
475
+ if you need the worker.
476
+ - Converter CSS is scoped to a private inner mount so `body`, `span`, and document-class rules
477
+ cannot restyle the host page. Document-global `@import` and `@page` rules are omitted; use the
478
+ full-document conversion/print path rather than an embed factory if those rules are required.
479
+ - First load fetches ~18 MB uncompressed across about 49 requests; subsequent loads hit the
480
+ browser cache.
481
+
360
482
  ## Hosting WASM Files
361
483
 
362
484
  The WASM files need to be served from your web server. After building:
@@ -375,15 +497,18 @@ public/
375
497
  main.js
376
498
  ```
377
499
 
378
- ## Bundle Size
500
+ ## Package and Runtime Size
379
501
 
380
- | Component | Size (uncompressed) | Size (Brotli) |
381
- |-----------|---------------------|---------------|
382
- | dotnet.native.wasm | ~8 MB | ~3 MB |
383
- | Managed assemblies | ~15 MB | ~5 MB |
384
- | Total | ~37 MB | ~10-12 MB |
502
+ | Component | Approx. uncompressed size |
503
+ |-----------|---------------------------:|
504
+ | dotnet.native.wasm | 1.5 MB |
505
+ | Managed/runtime WASM modules | 15.5 MB |
506
+ | WASM payload total | 17.0 MB |
507
+ | Published package (all bundles, types, maps, and WASM) | 20.0 MB |
385
508
 
386
- The WASM files are loaded on-demand and cached by the browser.
509
+ Only the runtime request set (~18 MB including loader JavaScript) is fetched during first
510
+ initialization; source maps, declarations, and unrelated entry bundles are not. Runtime files are
511
+ loaded on demand and cached by the browser.
387
512
 
388
513
  ## Browser Support
389
514
 
@@ -19,7 +19,7 @@
19
19
  * all accept a `p:hdr1:<unid>` anchor. The editor wires band blocks with the same `wireBlock` it
20
20
  * uses for the body, which is why the whole ribbon works inside a band with no new command code.
21
21
  */
22
- import type { HeaderFooterKind } from "./types.js";
22
+ import type { HeaderFooterKind, NumberFormat } from "./types.js";
23
23
  /** Which of the two bands an operation targets. */
24
24
  export type BandWhich = "header" | "footer";
25
25
  /** The bridge slice the region needs. Structurally satisfied by `DocxEditorExports.DocxSessionBridge`;
@@ -29,8 +29,10 @@ export interface HeaderFooterBridge {
29
29
  GetSectionInfo: (handle: number, anchorId: string) => string;
30
30
  SetHeaderText: (handle: number, anchor: string, kind: string, markdown: string) => string;
31
31
  SetFooterText: (handle: number, anchor: string, kind: string, markdown: string) => string;
32
- InsertPageNumberField: (handle: number, anchor: string, field: string) => string;
32
+ InsertPageNumberField: (handle: number, anchor: string, field: string, format: string) => string;
33
33
  EnsureHeaderFooterVisible: (handle: number, anchor: string, kind: string) => string;
34
+ SetPageNumbering: (handle: number, anchor: string, opJson: string) => string;
35
+ ClearPageNumbering: (handle: number, anchor: string) => string;
34
36
  RenderBlockHtml: (handle: number, anchorId: string, cssPrefix: string, fabricateClasses: boolean) => string;
35
37
  }
36
38
  export interface HeaderFooterRegionCallbacks {
@@ -72,8 +74,42 @@ export declare class HeaderFooterRegion {
72
74
  setKind(which: BandWhich, kind: HeaderFooterKind): void;
73
75
  /** The kind a band is currently editing. */
74
76
  kindOf(which: BandWhich): HeaderFooterKind;
75
- /** Append a PAGE / NUMPAGES field to the story paragraph addressed by `anchorId`. */
77
+ /** Append a PAGE / NUMPAGES field to the story paragraph addressed by `anchorId`.
78
+ * Deliberately a PLAIN field (no `\*` switch), exactly as Word inserts one, so it follows the
79
+ * section's page-number format — see {@link setPageNumbering}. Stamping the section's current
80
+ * format as a switch here would silently WIN over any later format change. */
76
81
  insertPageNumber(which: BandWhich, anchorId: string, field: "currentPage" | "totalPages"): boolean;
82
+ /**
83
+ * Set this section's page numbering (`w:pgNumType`) — Word's *Format Page Numbers…*. Omitted
84
+ * fields are left alone, so the format and the start are independently settable. Both bands then
85
+ * repaint, because the values belong to the section rather than to either story.
86
+ *
87
+ * The rendered page numbers in the editor do not change: a page-number field's cached result is
88
+ * what the browser shows, and Word recomputes it on open. Paginated mode substitutes the real
89
+ * per-page number, so it does reflect the format immediately.
90
+ */
91
+ setPageNumbering(op: {
92
+ start?: number;
93
+ format?: NumberFormat;
94
+ }): boolean;
95
+ /** This section's page numbering as the live document states it. Fields are absent, not
96
+ * defaulted — "continues the previous section" is not the same claim as "starts at 1". */
97
+ pageNumbering(): {
98
+ start?: number;
99
+ format?: NumberFormat;
100
+ };
101
+ /** Remove this section's page-numbering start/format — it reverts to continuing the previous
102
+ * section's numbering in Word's default `1, 2, 3`. */
103
+ clearPageNumbering(): boolean;
104
+ /**
105
+ * Re-read the section from the live document and repaint BOTH bands.
106
+ *
107
+ * `refreshAll` only repaints — it deliberately does not re-read, because its callers (remount,
108
+ * undo/redo) already refreshed the section. A section-property write has no such caller, and
109
+ * repainting from the stale snapshot would leave the chrome reporting the value the document had
110
+ * before the edit.
111
+ */
112
+ private reloadSection;
77
113
  /** Insert a page number into a band's own target paragraph (focused, else last). Seeds the
78
114
  * story first if the band's selected kind has none, so the command is never a silent no-op. */
79
115
  insertPageNumberInBand(which: BandWhich, field: "currentPage" | "totalPages"): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-headerfooter.d.ts","sourceRoot":"","sources":["../src/editor-headerfooter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-headerfooter.d.ts","sourceRoot":"","sources":["../src/editor-headerfooter.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,17 @@
19
19
  * all accept a `p:hdr1:<unid>` anchor. The editor wires band blocks with the same `wireBlock` it
20
20
  * uses for the body, which is why the whole ribbon works inside a band with no new command code.
21
21
  */
22
+ /** The page-number formats Word's *Format Page Numbers…* dialog offers, in its order. The blank
23
+ * entry means "leave the section's format alone" — not "decimal", which would write an attribute
24
+ * the document may never have had. */
25
+ const PAGE_FORMAT_LABELS = [
26
+ { value: "", label: "Format…" },
27
+ { value: "decimal", label: "1, 2, 3" },
28
+ { value: "lowerLetter", label: "a, b, c" },
29
+ { value: "upperLetter", label: "A, B, C" },
30
+ { value: "lowerRoman", label: "i, ii, iii" },
31
+ { value: "upperRoman", label: "I, II, III" },
32
+ ];
22
33
  const KIND_LABELS = [
23
34
  { value: "default", label: "Default" },
24
35
  { value: "first", label: "First page" },
@@ -117,14 +128,66 @@ export class HeaderFooterRegion {
117
128
  kindOf(which) {
118
129
  return this.kinds[which];
119
130
  }
120
- /** Append a PAGE / NUMPAGES field to the story paragraph addressed by `anchorId`. */
131
+ /** Append a PAGE / NUMPAGES field to the story paragraph addressed by `anchorId`.
132
+ * Deliberately a PLAIN field (no `\*` switch), exactly as Word inserts one, so it follows the
133
+ * section's page-number format — see {@link setPageNumbering}. Stamping the section's current
134
+ * format as a switch here would silently WIN over any later format change. */
121
135
  insertPageNumber(which, anchorId, field) {
122
- const res = parseResult(this.bridge.InsertPageNumberField(this.handle, anchorId, field));
136
+ const res = parseResult(this.bridge.InsertPageNumberField(this.handle, anchorId, field, ""));
123
137
  if (!res.success)
124
138
  return false;
125
139
  this.refresh(which);
126
140
  return true;
127
141
  }
142
+ /**
143
+ * Set this section's page numbering (`w:pgNumType`) — Word's *Format Page Numbers…*. Omitted
144
+ * fields are left alone, so the format and the start are independently settable. Both bands then
145
+ * repaint, because the values belong to the section rather than to either story.
146
+ *
147
+ * The rendered page numbers in the editor do not change: a page-number field's cached result is
148
+ * what the browser shows, and Word recomputes it on open. Paginated mode substitutes the real
149
+ * per-page number, so it does reflect the format immediately.
150
+ */
151
+ setPageNumbering(op) {
152
+ if (!this.bodyAnchorId)
153
+ return false;
154
+ const res = parseResult(this.bridge.SetPageNumbering(this.handle, this.bodyAnchorId, JSON.stringify(op)));
155
+ if (!res.success)
156
+ return false;
157
+ this.reloadSection();
158
+ return true;
159
+ }
160
+ /** This section's page numbering as the live document states it. Fields are absent, not
161
+ * defaulted — "continues the previous section" is not the same claim as "starts at 1". */
162
+ pageNumbering() {
163
+ return {
164
+ start: this.sectionInfo?.pageNumberStart,
165
+ format: this.sectionInfo?.pageNumberFormat,
166
+ };
167
+ }
168
+ /** Remove this section's page-numbering start/format — it reverts to continuing the previous
169
+ * section's numbering in Word's default `1, 2, 3`. */
170
+ clearPageNumbering() {
171
+ if (!this.bodyAnchorId)
172
+ return false;
173
+ const res = parseResult(this.bridge.ClearPageNumbering(this.handle, this.bodyAnchorId));
174
+ if (!res.success)
175
+ return false;
176
+ this.reloadSection();
177
+ return true;
178
+ }
179
+ /**
180
+ * Re-read the section from the live document and repaint BOTH bands.
181
+ *
182
+ * `refreshAll` only repaints — it deliberately does not re-read, because its callers (remount,
183
+ * undo/redo) already refreshed the section. A section-property write has no such caller, and
184
+ * repainting from the stale snapshot would leave the chrome reporting the value the document had
185
+ * before the edit.
186
+ */
187
+ reloadSection() {
188
+ this.sectionInfo = this.bodyAnchorId ? this.readSectionInfo(this.bodyAnchorId) : null;
189
+ this.refreshAll();
190
+ }
128
191
  /** Insert a page number into a band's own target paragraph (focused, else last). Seeds the
129
192
  * story first if the band's selected kind has none, so the command is never a silent no-op. */
130
193
  insertPageNumberInBand(which, field) {
@@ -258,6 +321,49 @@ export class HeaderFooterRegion {
258
321
  this.insertPageNumber(which, target, field);
259
322
  });
260
323
  chrome.appendChild(pageNum);
324
+ // Word's "Format Page Numbers…": these are SECTION properties (w:pgNumType), not properties of
325
+ // this band's story, so both bands show the same values and either can set them. An inserted
326
+ // page-number field is plain, so it renders through whatever is chosen here.
327
+ const pageFmt = document.createElement("select");
328
+ pageFmt.setAttribute("data-hf-pagefmt", "");
329
+ pageFmt.title = "Page-number format for this section";
330
+ for (const o of PAGE_FORMAT_LABELS) {
331
+ const opt = document.createElement("option");
332
+ opt.value = o.value;
333
+ opt.textContent = o.label;
334
+ pageFmt.appendChild(opt);
335
+ }
336
+ pageFmt.addEventListener("change", () => {
337
+ if (pageFmt.value === "")
338
+ return;
339
+ this.setPageNumbering({ format: pageFmt.value });
340
+ });
341
+ chrome.appendChild(pageFmt);
342
+ const pageStart = document.createElement("input");
343
+ pageStart.setAttribute("data-hf-pagestart", "");
344
+ pageStart.type = "number";
345
+ pageStart.min = "0";
346
+ pageStart.placeholder = "Start at";
347
+ pageStart.title = "Restart this section's page numbering at this number";
348
+ // Commit on blur/Enter, not on every keystroke: typing "12" would otherwise apply a start of 1
349
+ // first, and each apply is an undo step.
350
+ const commitStart = () => {
351
+ const raw = pageStart.value.trim();
352
+ if (raw === "")
353
+ return;
354
+ const start = Number(raw);
355
+ if (!Number.isInteger(start) || start < 0)
356
+ return;
357
+ this.setPageNumbering({ start });
358
+ };
359
+ pageStart.addEventListener("blur", commitStart);
360
+ pageStart.addEventListener("keydown", (e) => {
361
+ if (e.key === "Enter") {
362
+ e.preventDefault();
363
+ commitStart();
364
+ }
365
+ });
366
+ chrome.appendChild(pageStart);
261
367
  const inheritedNote = document.createElement("span");
262
368
  inheritedNote.className = "docx-hf-inherited";
263
369
  inheritedNote.setAttribute("data-hf-inherited-note", "");
@@ -298,6 +404,16 @@ export class HeaderFooterRegion {
298
404
  const select = band.querySelector("[data-hf-kind]");
299
405
  if (select && select.value !== kind)
300
406
  select.value = kind;
407
+ // Section-level page numbering — the same values on both bands, seeded from the live sectPr so
408
+ // the chrome reports what the document says rather than what was last clicked.
409
+ const pageFmt = band.querySelector("[data-hf-pagefmt]");
410
+ if (pageFmt)
411
+ pageFmt.value = this.sectionInfo?.pageNumberFormat ?? "";
412
+ const pageStart = band.querySelector("[data-hf-pagestart]");
413
+ if (pageStart && document.activeElement !== pageStart) {
414
+ const start = this.sectionInfo?.pageNumberStart;
415
+ pageStart.value = start === undefined ? "" : String(start);
416
+ }
301
417
  // A section that declares no reference of this kind shows the story it inherits from an
302
418
  // earlier section. Say so: editing it changes BOTH sections, because they share one part.
303
419
  const inherited = this.refFor(which, kind)?.inherited === true;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-headerfooter.js","sourceRoot":"","sources":["../src/editor-headerfooter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-headerfooter.js","sourceRoot":"","sources":["../src/editor-headerfooter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Unit-sequence diff for the editor's incremental structural repaint.
3
+ *
4
+ * After a structural op (insert table/row, footnote, delete block, undo/redo)
5
+ * the editor fetches the session's {@link RenderPlan} (`ListBlocks`) and diffs
6
+ * each container's unit sequence against the DOM's, so unchanged blocks keep
7
+ * their DOM nodes and only changed/created units re-render — replacing the
8
+ * whole-document remount that cost seconds on large documents.
9
+ *
10
+ * Pure functions only: DOM walking, rendering, and fallback policy live in
11
+ * `editor.ts` (`DocxEditor.reconcile`).
12
+ */
13
+ /** One top-level render unit: a body block (`p`/`h`/`li`), one whole table
14
+ * (`tbl`), or one footnote/endnote definition (`fn`/`en`). Mirrors the wire
15
+ * shape of `DocxSessionBridge.ListBlocks`. `sig` (container units only) is a
16
+ * content signature: a table or note keeps its unid when content INSIDE it
17
+ * changes, so the diff tokens must include it or a changed container would be
18
+ * kept stale. */
19
+ export interface RenderUnit {
20
+ id: string;
21
+ kind: string;
22
+ sig?: string;
23
+ }
24
+ /** The diff token for a unit: unid plus the container content signature. The DOM
25
+ * side composes the same token from a node's `data-anchor` + `data-render-sig`
26
+ * stamp, so a container whose inside changed diffs as an in-place substitution. */
27
+ export declare function tokenOf(unit: RenderUnit): string;
28
+ /** Per-container render plan — the wire shape of `DocxSessionBridge.ListBlocks`. */
29
+ export interface RenderPlan {
30
+ body: RenderUnit[];
31
+ footnotes: RenderUnit[];
32
+ endnotes: RenderUnit[];
33
+ }
34
+ export interface UnitDiff {
35
+ /** newIndex → oldIndex for units that keep their existing DOM node. */
36
+ keep: Map<number, number>;
37
+ /** Indices into the OLD DOM sequence whose nodes must be removed. */
38
+ removed: number[];
39
+ /** Indices into the NEW plan that need a fresh render. */
40
+ added: number[];
41
+ /**
42
+ * added/removed pairs that are an IN-PLACE change (same number of kept units
43
+ * on each side) — e.g. a text edit re-hashing a block's content-addressed
44
+ * unid. A substituted list item keeps its list position, so it renumbers no
45
+ * siblings and may reconcile where a pure li insert/remove may not.
46
+ */
47
+ substituted: Array<{
48
+ oldIndex: number;
49
+ newIndex: number;
50
+ }>;
51
+ }
52
+ /** unid ("a1b2…") from a full anchor id ("p:body:a1b2…"). */
53
+ export declare function unidOf(id: string): string;
54
+ /**
55
+ * LCS diff of the DOM's unit-token sequence against the new plan's. Old entries
56
+ * are tokens (see {@link tokenOf} — bare unids for leaf blocks, `unid|sig` for
57
+ * containers). Equal tokens are interchangeable (content-addressed: equal token
58
+ * ⇒ equal content ⇒ equal rendering, up to position-dependent chrome the caller
59
+ * handles). O(n·m) — sequences are document block counts, a few hundred.
60
+ */
61
+ export declare function diffUnits(oldUnids: string[], newUnits: RenderUnit[]): UnitDiff;
62
+ /**
63
+ * Whether this diff must fall back to a full remount:
64
+ * - a PURE li insert or removal (not an in-place substitution) — sibling list
65
+ * items renumber without their own XML changing, which a unit diff cannot see;
66
+ * - total churn above `threshold` (a remount is cheaper and simpler than
67
+ * rendering half the document block-by-block).
68
+ *
69
+ * `oldKinds[i]` is the kind of the old sequence's i-th unit (the DOM knows it).
70
+ * An li substitution deliberately does NOT force a remount — its list position
71
+ * is unchanged; the CALLER must still verify its list facts (numId/ilvl)
72
+ * survived, and remount when they changed.
73
+ */
74
+ export declare function needsRemount(diff: UnitDiff, newUnits: RenderUnit[], oldKinds: string[], threshold?: number): boolean;
75
+ //# sourceMappingURL=editor-reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-reconcile.d.ts","sourceRoot":"","sources":["../src/editor-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;kBAKkB;AAClB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;oFAEoF;AACpF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEhD;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,uEAAuE;IACvE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,qEAAqE;IACrE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,WAAW,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED,6DAA6D;AAC7D,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,CA8D9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,SAAK,GACb,OAAO,CAWT"}