docxodus 7.1.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/docxodus.worker.js +2 -2
- package/dist/docxodus.worker.js.map +1 -1
- package/dist/editor-headerfooter.d.ts +166 -0
- package/dist/editor-headerfooter.d.ts.map +1 -0
- package/dist/editor-headerfooter.js +530 -0
- package/dist/editor-headerfooter.js.map +1 -0
- 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 +1861 -110
- package/dist/editor.d.ts +200 -6
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +868 -86
- 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 +3 -4
- 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 +635 -37
- package/dist/pagination.d.ts +119 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +706 -52
- package/dist/pagination.js.map +1 -1
- package/dist/react.d.ts +3 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +6 -4
- package/dist/react.js.map +1 -1
- package/dist/session.bundle.js +241 -4
- package/dist/session.d.ts +160 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +202 -4
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +238 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -11
- 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.Collections.Concurrent.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.Immutable.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.NonGeneric.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.Specialized.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.wasm +0 -0
- package/dist/wasm/_framework/System.Console.wasm +0 -0
- package/dist/wasm/_framework/System.Diagnostics.Process.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Pipelines.wasm +0 -0
- package/dist/wasm/_framework/System.Linq.Expressions.wasm +0 -0
- package/dist/wasm/_framework/System.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Memory.wasm +0 -0
- package/dist/wasm/_framework/System.Net.Http.wasm +0 -0
- package/dist/wasm/_framework/System.Net.Primitives.wasm +0 -0
- package/dist/wasm/_framework/System.ObjectModel.wasm +0 -0
- package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Uri.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
- package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
- package/dist/wasm/_framework/System.Runtime.wasm +0 -0
- package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
- package/dist/wasm/_framework/System.Text.Encoding.Extensions.wasm +0 -0
- package/dist/wasm/_framework/System.Text.Encodings.Web.wasm +0 -0
- package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
- package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
- package/dist/wasm/_framework/System.Threading.Thread.wasm +0 -0
- package/dist/wasm/_framework/System.Threading.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.ReaderWriter.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.XDocument.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.XPath.XDocument.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.XPath.wasm +0 -0
- package/dist/wasm/_framework/System.wasm +0 -0
- package/dist/wasm/_framework/dotnet.boot.js +41 -41
- package/dist/wasm/_framework/dotnet.js +1 -1
- package/dist/wasm/_framework/dotnet.js.map +1 -1
- package/dist/wasm/_framework/dotnet.native.js +3 -3
- package/dist/wasm/_framework/dotnet.native.js.symbols +2102 -2101
- package/dist/wasm/_framework/dotnet.native.wasm +0 -0
- package/dist/wasm/_framework/dotnet.runtime.js +1 -1
- package/dist/wasm/_framework/dotnet.runtime.js.map +1 -1
- package/dist/wasm/index.html +2 -1
- package/package.json +17 -4
package/dist/pagination.d.ts
CHANGED
|
@@ -117,6 +117,12 @@ export interface PaginationOptions {
|
|
|
117
117
|
showPageNumbers?: boolean;
|
|
118
118
|
/** Gap between pages in pixels. Default: 20 */
|
|
119
119
|
pageGap?: number;
|
|
120
|
+
/**
|
|
121
|
+
* Whether ordinary paragraphs may be fragmented across page boundaries.
|
|
122
|
+
* Defaults to false for direct PaginationEngine callers; read-only viewer
|
|
123
|
+
* entry points opt in explicitly.
|
|
124
|
+
*/
|
|
125
|
+
fragmentParagraphs?: boolean;
|
|
120
126
|
}
|
|
121
127
|
/**
|
|
122
128
|
* Pagination engine that converts HTML with pagination metadata
|
|
@@ -133,9 +139,12 @@ export declare class PaginationEngine {
|
|
|
133
139
|
private cssPrefix;
|
|
134
140
|
private showPageNumbers;
|
|
135
141
|
private pageGap;
|
|
142
|
+
private fragmentParagraphs;
|
|
136
143
|
private hfRegistry;
|
|
137
144
|
private footnoteRegistry;
|
|
138
145
|
private pendingFootnoteContinuation;
|
|
146
|
+
/** Per-section `w:pgNumType` (start / format), read off the section wrappers. */
|
|
147
|
+
private pageNumbering;
|
|
139
148
|
/**
|
|
140
149
|
* Creates a new pagination engine.
|
|
141
150
|
*
|
|
@@ -150,10 +159,106 @@ export declare class PaginationEngine {
|
|
|
150
159
|
* @returns PaginationResult with page information
|
|
151
160
|
*/
|
|
152
161
|
paginate(): PaginationResult;
|
|
162
|
+
/** Read each section's `w:pgNumType` off its wrapper (see {@link SectionPageNumbering}). */
|
|
163
|
+
private parsePageNumbering;
|
|
164
|
+
/**
|
|
165
|
+
* Fill in the page-number fields inside every page's cloned header/footer.
|
|
166
|
+
*
|
|
167
|
+
* A header/footer is authored once and cloned onto each page, so a PAGE field's single cached
|
|
168
|
+
* result would otherwise show the same number on every page — the whole reason the converter
|
|
169
|
+
* marks these. `data-field-format` (the field's own `\*` switch) wins over the section's format
|
|
170
|
+
* when present, which is exactly how Word resolves the two.
|
|
171
|
+
*
|
|
172
|
+
* Runs after layout because NUMPAGES cannot be known before the last page exists. The
|
|
173
|
+
* substituted text can therefore be marginally wider than the cached result the header was
|
|
174
|
+
* measured with; the header band clips, so the failure mode is a hair of overflow rather than
|
|
175
|
+
* a layout that disagrees with itself.
|
|
176
|
+
*
|
|
177
|
+
* Scoped to the CLONED header/footer regions on purpose. A page-number field in body text is
|
|
178
|
+
* ordinary run content that the editor may make editable, and committing an edited block writes
|
|
179
|
+
* back whatever text the DOM holds — rewriting it here would mean a body field commits a number
|
|
180
|
+
* the document never contained. Body content is also not cloned, so it does not have the problem
|
|
181
|
+
* this method exists to solve.
|
|
182
|
+
*/
|
|
183
|
+
private substitutePageNumberFields;
|
|
153
184
|
/**
|
|
154
185
|
* Measures all content blocks in a section.
|
|
155
186
|
*/
|
|
156
187
|
private measureBlocks;
|
|
188
|
+
/**
|
|
189
|
+
* Measures one element in the same hidden staging context used for the source blocks.
|
|
190
|
+
* This is intentionally DOM-based: table row heights cannot be inferred from individual
|
|
191
|
+
* rows because wrapping and collapsed borders change the height of a fragment.
|
|
192
|
+
*/
|
|
193
|
+
private measureElement;
|
|
194
|
+
/**
|
|
195
|
+
* Returns the contiguous keep-with-next chain beginning at a block.
|
|
196
|
+
*
|
|
197
|
+
* A hard page break or a page-break-before directive is stronger than a
|
|
198
|
+
* keep-with-next directive, so it terminates the chain. The caller only
|
|
199
|
+
* keeps a chain together when the whole chain can fit on a fresh page.
|
|
200
|
+
*/
|
|
201
|
+
private getKeepWithNextChain;
|
|
202
|
+
/**
|
|
203
|
+
* Measures the visible body height of a keep-with-next chain using the same
|
|
204
|
+
* collapsed-margin rules as normal block placement. The trailing margin is
|
|
205
|
+
* intentionally excluded, matching the individual block fit check.
|
|
206
|
+
*/
|
|
207
|
+
private measureKeepWithNextChainBodyHeight;
|
|
208
|
+
/**
|
|
209
|
+
* Finds footnote references introduced by a sequence of blocks, preserving
|
|
210
|
+
* document order and excluding references already assigned to the page.
|
|
211
|
+
*/
|
|
212
|
+
private collectNewFootnoteIds;
|
|
213
|
+
/**
|
|
214
|
+
* The shortest body available to a section's first, default, or even page.
|
|
215
|
+
* A row fragment must fit every variant, otherwise a later header/footer could
|
|
216
|
+
* send it through the oversized-block fallback again.
|
|
217
|
+
*/
|
|
218
|
+
private smallestEffectiveContentHeight;
|
|
219
|
+
/**
|
|
220
|
+
* Builds a clone of a simple table wrapper containing a contiguous run of rows.
|
|
221
|
+
* Complex table features are deliberately rejected by the caller: a split across
|
|
222
|
+
* merged cells, nested tables, or footnotes cannot be made correct by cloning rows.
|
|
223
|
+
*/
|
|
224
|
+
private createSimpleTableFragment;
|
|
225
|
+
/**
|
|
226
|
+
* Splits an oversized, ordinary table at row boundaries. This only participates
|
|
227
|
+
* in the existing oversized-block fallback; unsupported tables keep the previous
|
|
228
|
+
* overflow behavior rather than risking broken table semantics.
|
|
229
|
+
*/
|
|
230
|
+
private trySplitSimpleOversizedTable;
|
|
231
|
+
/**
|
|
232
|
+
* A DOM endpoint that can finish a paragraph fragment. Endpoints are chosen
|
|
233
|
+
* after whitespace or at a run boundary so the paginator never deliberately
|
|
234
|
+
* cuts through an ordinary word merely to fill a little more of a page.
|
|
235
|
+
*/
|
|
236
|
+
private paragraphFragmentEndpoints;
|
|
237
|
+
/**
|
|
238
|
+
* Whether a range contains visible text after ignoring bidi/zero-width marks.
|
|
239
|
+
* Paragraph fragmentation deliberately excludes non-textual descendants, so
|
|
240
|
+
* this is enough to reject empty head or tail fragments.
|
|
241
|
+
*/
|
|
242
|
+
private hasVisibleFragmentText;
|
|
243
|
+
/**
|
|
244
|
+
* Phase one only handles text-like paragraph descendants. Objects, explicit
|
|
245
|
+
* line breaks, list markers, notes, and out-of-flow/inline-block content all
|
|
246
|
+
* require their own line-layout rules and retain the established whole-block
|
|
247
|
+
* fallback instead of risking broken content or duplicate anchors.
|
|
248
|
+
*/
|
|
249
|
+
private canFragmentParagraph;
|
|
250
|
+
/**
|
|
251
|
+
* Builds one range-cloned paragraph fragment. Only the leading fragment keeps
|
|
252
|
+
* the source paragraph's addressability; continuations must not duplicate an
|
|
253
|
+
* id/data-anchor in the rendered document.
|
|
254
|
+
*/
|
|
255
|
+
private createParagraphFragment;
|
|
256
|
+
/**
|
|
257
|
+
* Splits a simple paragraph at the largest DOM Range endpoint that fits the
|
|
258
|
+
* currently available body space. The caller then processes the tail normally,
|
|
259
|
+
* allowing it to fragment again on later pages when necessary.
|
|
260
|
+
*/
|
|
261
|
+
private tryFragmentParagraph;
|
|
157
262
|
/**
|
|
158
263
|
* Parses the header/footer registry from the staging element.
|
|
159
264
|
* Also measures heights during parsing for lazy-loading compatibility.
|
|
@@ -219,6 +324,20 @@ export declare class PaginationEngine {
|
|
|
219
324
|
* Supports footnote continuation - long footnotes can split across pages.
|
|
220
325
|
*/
|
|
221
326
|
private flowToPages;
|
|
327
|
+
/**
|
|
328
|
+
* Strip block addressing from a header/footer node cloned into a page box.
|
|
329
|
+
*
|
|
330
|
+
* A running story is authored ONCE and cloned onto every page, so the clones all carry the same
|
|
331
|
+
* `data-anchor` — on this document, 42 page boxes claiming one footer paragraph. Left editable,
|
|
332
|
+
* committing any one of them writes back through that single shared anchor, and the per-page
|
|
333
|
+
* page-number substitution makes it worse: each clone shows a DIFFERENT number, so a commit
|
|
334
|
+
* writes that page's number into the story as literal text and destroys the PAGE field.
|
|
335
|
+
*
|
|
336
|
+
* Page-box header/footer content is presentation. The docked editing bands
|
|
337
|
+
* (`editor-headerfooter.ts`) are the addressable affordance, and they exist precisely because a
|
|
338
|
+
* cloned node cannot be uniquely addressed.
|
|
339
|
+
*/
|
|
340
|
+
private makeClonedStoryInert;
|
|
222
341
|
/**
|
|
223
342
|
* Creates a page container element.
|
|
224
343
|
*/
|
package/dist/pagination.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
|