docxodus 9.8.0 → 10.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 +178 -0
- package/dist/canonical.d.ts +7 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +56 -0
- package/dist/canonical.js.map +1 -0
- package/dist/docxodus.worker.d.ts +2 -1
- package/dist/docxodus.worker.d.ts.map +1 -1
- package/dist/docxodus.worker.js +244 -3
- package/dist/docxodus.worker.js.map +1 -1
- package/dist/editor.bundle.js +2024 -388
- package/dist/editor.d.ts +22 -2
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +94 -9
- package/dist/editor.js.map +1 -1
- package/dist/embed.bundle.js +2912 -437
- package/dist/embed.iife.js +2911 -436
- package/dist/export-assets.json +283 -0
- package/dist/export-browser.bundle.js +7990 -0
- package/dist/export-browser.d.ts +266 -0
- package/dist/export-browser.d.ts.map +1 -0
- package/dist/export-browser.js +2915 -0
- package/dist/export-browser.js.map +1 -0
- package/dist/export-resource-limits-v1.json +57 -0
- package/dist/font-contract.d.ts +150 -0
- package/dist/font-contract.d.ts.map +1 -0
- package/dist/font-contract.js +59 -0
- package/dist/font-contract.js.map +1 -0
- package/dist/font-runtime.d.ts +33 -0
- package/dist/font-runtime.d.ts.map +1 -0
- package/dist/font-runtime.js +1100 -0
- package/dist/font-runtime.js.map +1 -0
- package/dist/index.d.ts +62 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +130 -16
- package/dist/index.js.map +1 -1
- package/dist/page-geometry.d.ts +8 -1
- package/dist/page-geometry.d.ts.map +1 -1
- package/dist/page-geometry.js +37 -11
- package/dist/page-geometry.js.map +1 -1
- package/dist/pagination.bundle.js +1937 -380
- package/dist/pagination.d.ts +277 -15
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +2055 -438
- package/dist/pagination.js.map +1 -1
- package/dist/react.d.ts +11 -4
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +38 -5
- package/dist/react.js.map +1 -1
- package/dist/render-report-v2.schema.json +1581 -0
- package/dist/ribbon-chrome.d.ts +1 -1
- package/dist/ribbon-chrome.d.ts.map +1 -1
- package/dist/ribbon-chrome.js +46 -0
- package/dist/ribbon-chrome.js.map +1 -1
- package/dist/ribbon.js +70 -0
- package/dist/ribbon.js.map +1 -1
- package/dist/session.bundle.js +695 -29
- package/dist/session.d.ts +134 -19
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +562 -25
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +1207 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm +0 -0
- package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm.br +0 -0
- package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm +0 -0
- package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm.br +0 -0
- package/dist/wasm/_framework/Docxodus.wasm +0 -0
- package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
- package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
- package/dist/wasm/_framework/System.Collections.Immutable.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.Immutable.wasm.br +0 -0
- package/dist/wasm/_framework/System.Collections.NonGeneric.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.NonGeneric.wasm.br +0 -0
- package/dist/wasm/_framework/System.Collections.Specialized.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.Specialized.wasm.br +0 -0
- package/dist/wasm/_framework/System.Collections.wasm +0 -0
- package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
- package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm.br +0 -0
- package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm.br +0 -0
- package/dist/wasm/_framework/System.ComponentModel.wasm +0 -0
- package/dist/wasm/_framework/System.ComponentModel.wasm.br +0 -0
- package/dist/wasm/_framework/System.Console.wasm +0 -0
- package/dist/wasm/_framework/System.Console.wasm.br +0 -0
- package/dist/wasm/_framework/System.Diagnostics.Process.wasm +0 -0
- package/dist/wasm/_framework/System.Diagnostics.Process.wasm.br +0 -0
- package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
- package/dist/wasm/_framework/System.IO.Packaging.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Packaging.wasm.br +0 -0
- package/dist/wasm/_framework/System.IO.Pipelines.wasm +0 -0
- package/dist/wasm/_framework/System.IO.Pipelines.wasm.br +0 -0
- package/dist/wasm/_framework/System.Linq.Expressions.wasm +0 -0
- package/dist/wasm/_framework/System.Linq.Expressions.wasm.br +0 -0
- package/dist/wasm/_framework/System.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Linq.wasm.br +0 -0
- package/dist/wasm/_framework/System.Memory.wasm +0 -0
- package/dist/wasm/_framework/System.Memory.wasm.br +0 -0
- package/dist/wasm/_framework/System.Net.Http.wasm +0 -0
- package/dist/wasm/_framework/System.Net.Http.wasm.br +0 -0
- package/dist/wasm/_framework/System.Net.Primitives.wasm +0 -0
- package/dist/wasm/_framework/System.Net.Primitives.wasm.br +0 -0
- package/dist/wasm/_framework/System.ObjectModel.wasm +0 -0
- package/dist/wasm/_framework/System.ObjectModel.wasm.br +0 -0
- package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
- package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
- package/dist/wasm/_framework/System.Private.Uri.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Uri.wasm.br +0 -0
- package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
- package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
- package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
- package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
- package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
- package/dist/wasm/_framework/System.Runtime.wasm +0 -0
- package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
- package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
- package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
- package/dist/wasm/_framework/System.Text.Encodings.Web.wasm +0 -0
- package/dist/wasm/_framework/System.Text.Encodings.Web.wasm.br +0 -0
- package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
- package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
- package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
- package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
- package/dist/wasm/_framework/System.Xml.Linq.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.Linq.wasm.br +0 -0
- package/dist/wasm/_framework/System.Xml.XDocument.wasm +0 -0
- package/dist/wasm/_framework/System.Xml.XDocument.wasm.br +0 -0
- package/dist/wasm/_framework/System.wasm +0 -0
- package/dist/wasm/_framework/System.wasm.br +0 -0
- package/dist/wasm/_framework/dotnet.boot.js +38 -38
- package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
- package/dist/wasm/_framework/dotnet.js +1 -1
- package/dist/wasm/_framework/dotnet.js.br +0 -0
- package/dist/wasm/_framework/dotnet.native.js +3 -3
- package/dist/wasm/_framework/dotnet.native.js.br +0 -0
- package/dist/wasm/_framework/dotnet.native.wasm +0 -0
- package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
- package/dist/wasm/_framework/dotnet.runtime.js +1 -1
- package/dist/wasm/_framework/dotnet.runtime.js.br +0 -0
- package/dist/worker-proxy.bundle.js +196 -29
- package/dist/worker-proxy.d.ts +36 -3
- package/dist/worker-proxy.d.ts.map +1 -1
- package/dist/worker-proxy.js +186 -33
- package/dist/worker-proxy.js.map +1 -1
- package/package.json +24 -7
package/dist/pagination.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ export type HeaderFooterRegistry = Map<number, SectionHeaderFooter>;
|
|
|
45
45
|
export interface MeasuredBlock {
|
|
46
46
|
/** The DOM element */
|
|
47
47
|
element: HTMLElement;
|
|
48
|
+
/** Section whose body owns this block after a continuous section transition. */
|
|
49
|
+
sectionIndex: number;
|
|
48
50
|
/** Measured height in points (content + padding + border, excluding margins) */
|
|
49
51
|
heightPt: number;
|
|
50
52
|
/** Top margin in points */
|
|
@@ -59,6 +61,8 @@ export interface MeasuredBlock {
|
|
|
59
61
|
pageBreakBefore: boolean;
|
|
60
62
|
/** Whether this is a page break marker */
|
|
61
63
|
isPageBreak: boolean;
|
|
64
|
+
/** Whether the block is a Word paragraph whose top margin represents paragraph space-before */
|
|
65
|
+
isWordParagraph?: boolean;
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
64
68
|
* Information about a rendered page.
|
|
@@ -81,7 +85,77 @@ export interface PaginationResult {
|
|
|
81
85
|
totalPages: number;
|
|
82
86
|
/** Array of page information */
|
|
83
87
|
pages: PageInfo[];
|
|
88
|
+
/** Present only when the caller supplied an exact layoutToken. */
|
|
89
|
+
pageMap?: PageMap;
|
|
90
|
+
}
|
|
91
|
+
export type PageMapMode = "paginated" | "continuous";
|
|
92
|
+
export type PageMapAvailability = "available" | "unavailable";
|
|
93
|
+
export type PageMapStory = "body" | "header" | "footer" | "footnote" | "endnote" | "comment";
|
|
94
|
+
export interface PageMapRect {
|
|
95
|
+
/** Page-relative points, independent of viewer zoom/transform. */
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
}
|
|
101
|
+
export interface PageMapPage {
|
|
102
|
+
pageNumber: number;
|
|
103
|
+
pageInSection: number;
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
sectionIndex?: number;
|
|
107
|
+
pageName: string;
|
|
108
|
+
}
|
|
109
|
+
export interface PageMapFragment {
|
|
110
|
+
fragmentId: string;
|
|
111
|
+
/** Canonical collision-safe `kind:scope:unid`, never the bare editor Unid. */
|
|
112
|
+
anchorId: string;
|
|
113
|
+
fragmentIndex: number;
|
|
114
|
+
pageNumber: number;
|
|
115
|
+
geometry: PageMapRect;
|
|
116
|
+
story: PageMapStory;
|
|
117
|
+
/** Table-cell ownership is orthogonal to story (e.g. a body or footnote table cell). */
|
|
118
|
+
inTableCell: boolean;
|
|
119
|
+
}
|
|
120
|
+
/** Versioned portable layout contract consumed by DocxSession and remote agent surfaces. */
|
|
121
|
+
export interface PageMap {
|
|
122
|
+
schemaVersion: 1;
|
|
123
|
+
mode: PageMapMode;
|
|
124
|
+
availability: PageMapAvailability;
|
|
125
|
+
documentVersion: number;
|
|
126
|
+
rendererFingerprint: string;
|
|
127
|
+
pages: PageMapPage[];
|
|
128
|
+
fragments: PageMapFragment[];
|
|
129
|
+
}
|
|
130
|
+
/** Explicit no-pages contract for a continuous viewer. It never estimates page numbers. */
|
|
131
|
+
export declare function createUnavailablePageMap(documentVersion: number, rendererFingerprint: string, mode?: "continuous"): PageMap;
|
|
132
|
+
export interface PageCitationNavigation {
|
|
133
|
+
navigated: boolean;
|
|
134
|
+
target?: HTMLElement;
|
|
135
|
+
pageNumber?: number;
|
|
136
|
+
fragmentId?: string;
|
|
137
|
+
unavailableReason?: "citation_unavailable" | "fragment_not_found";
|
|
84
138
|
}
|
|
139
|
+
/** Remove the citation highlight previously applied within this paginated root. */
|
|
140
|
+
export declare function clearPageCitationHighlight(root: ParentNode): void;
|
|
141
|
+
/**
|
|
142
|
+
* Navigate an exact citation over an already-paginated DOM. The page-qualified fragment id is
|
|
143
|
+
* authoritative; page + canonical source identity is a compatibility fallback for older v1 DOMs.
|
|
144
|
+
*/
|
|
145
|
+
export declare function navigateToPageCitation(root: ParentNode, citation: {
|
|
146
|
+
availability: PageMapAvailability;
|
|
147
|
+
anchorId: string;
|
|
148
|
+
fragments: Array<{
|
|
149
|
+
fragmentId: string;
|
|
150
|
+
pageNumber: number;
|
|
151
|
+
}>;
|
|
152
|
+
}, options?: {
|
|
153
|
+
highlightClass?: string;
|
|
154
|
+
/** Apply a visible inline highlight when no class is supplied. Default true. */
|
|
155
|
+
highlight?: boolean;
|
|
156
|
+
behavior?: ScrollBehavior;
|
|
157
|
+
block?: ScrollLogicalPosition;
|
|
158
|
+
}): PageCitationNavigation;
|
|
85
159
|
/**
|
|
86
160
|
* Options for the pagination engine.
|
|
87
161
|
*/
|
|
@@ -100,6 +174,24 @@ export interface PaginationOptions {
|
|
|
100
174
|
* entry points opt in explicitly.
|
|
101
175
|
*/
|
|
102
176
|
fragmentParagraphs?: boolean;
|
|
177
|
+
/** Cooperative checkpoint for bounded non-yielding browser layout work. */
|
|
178
|
+
checkCancellation?: () => void;
|
|
179
|
+
/**
|
|
180
|
+
* Skip fragment-identity stamping at the end of paginate(). Callers that mutate the page tree
|
|
181
|
+
* afterwards (running-story placement) and then call normalizePageMapFragmentIdentities() would
|
|
182
|
+
* otherwise pay the whole forced-layout pass twice and discard the first result. Default: false.
|
|
183
|
+
*/
|
|
184
|
+
deferFragmentIdentities?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Incremental admission check invoked immediately before each physical page is allocated.
|
|
187
|
+
* Export callers use this to enforce `finalPages` without constructing an over-limit DOM first.
|
|
188
|
+
*/
|
|
189
|
+
checkPageCount?: (prospectivePageCount: number) => void;
|
|
190
|
+
/** Exact invalidation tokens used to materialize an authoritative PageMap with the result. */
|
|
191
|
+
layoutToken?: {
|
|
192
|
+
documentVersion: number;
|
|
193
|
+
rendererFingerprint: string;
|
|
194
|
+
};
|
|
103
195
|
}
|
|
104
196
|
/**
|
|
105
197
|
* Pagination engine that converts HTML with pagination metadata
|
|
@@ -112,16 +204,30 @@ export type FootnoteRegistry = Map<string, HTMLElement>;
|
|
|
112
204
|
export declare class PaginationEngine {
|
|
113
205
|
private stagingElement;
|
|
114
206
|
private containerElement;
|
|
207
|
+
private document;
|
|
208
|
+
private view;
|
|
115
209
|
private scale;
|
|
116
210
|
private cssPrefix;
|
|
117
211
|
private showPageNumbers;
|
|
118
212
|
private pageGap;
|
|
119
213
|
private fragmentParagraphs;
|
|
214
|
+
private deferFragmentIdentities;
|
|
215
|
+
private cancellationCheckpoint?;
|
|
216
|
+
private pageCountCheckpoint?;
|
|
217
|
+
private createdPageCount;
|
|
218
|
+
private layoutToken?;
|
|
120
219
|
private hfRegistry;
|
|
121
220
|
private footnoteRegistry;
|
|
221
|
+
private footnoteSeparator;
|
|
222
|
+
private footnoteContinuationSeparator;
|
|
223
|
+
private commentMarginRegistry;
|
|
224
|
+
private footnoteLayoutLikeWord8;
|
|
122
225
|
private pendingFootnoteContinuation;
|
|
123
226
|
/** Per-section `w:pgNumType` (start / format), read off the section wrappers. */
|
|
124
227
|
private pageNumbering;
|
|
228
|
+
private lastPages;
|
|
229
|
+
private expectedPageMapAnchorIds;
|
|
230
|
+
private state;
|
|
125
231
|
/**
|
|
126
232
|
* Creates a new pagination engine.
|
|
127
233
|
*
|
|
@@ -136,6 +242,48 @@ export declare class PaginationEngine {
|
|
|
136
242
|
* @returns PaginationResult with page information
|
|
137
243
|
*/
|
|
138
244
|
paginate(): PaginationResult;
|
|
245
|
+
private checkpoint;
|
|
246
|
+
/**
|
|
247
|
+
* Normalize visible fragment identities after a caller applies final standalone styles. This
|
|
248
|
+
* deliberately runs before the stability barrier; materializePageMap is read-only so PageMap
|
|
249
|
+
* measurement cannot mutate a tree after it was declared stable.
|
|
250
|
+
*/
|
|
251
|
+
normalizePageMapFragmentIdentities(): void;
|
|
252
|
+
/**
|
|
253
|
+
* Materialize the last completed browser layout as portable page-relative point geometry.
|
|
254
|
+
* The caller supplies both invalidation tokens; this engine never guesses a document version
|
|
255
|
+
* or renderer fingerprint.
|
|
256
|
+
*/
|
|
257
|
+
materializePageMap(documentVersion: number, rendererFingerprint: string): PageMap;
|
|
258
|
+
private normalizeVisiblePageFragments;
|
|
259
|
+
/**
|
|
260
|
+
* Intersect an element with every ancestor that establishes an overflow clip before the page
|
|
261
|
+
* root. getBoundingClientRect() reports layout outside those clips, which is not rendered and
|
|
262
|
+
* therefore must not satisfy PageMap completeness or inflate portable geometry.
|
|
263
|
+
*/
|
|
264
|
+
private intersectWithClippingAncestors;
|
|
265
|
+
private storyForCanonicalAnchor;
|
|
266
|
+
/**
|
|
267
|
+
* Add canonical IDs from an addressable source subtree to the pre-pagination inventory.
|
|
268
|
+
* Registry wrappers are excluded when scanning staging because selectable registry contents are
|
|
269
|
+
* inventoried separately. Producers may explicitly mark content that has no visual substrate
|
|
270
|
+
* with `data-page-map-exclude="true"`; native hidden semantics carry the same signal.
|
|
271
|
+
*/
|
|
272
|
+
private collectExpectedSourceAnchors;
|
|
273
|
+
private isZeroHeightExplicitBreakCarrier;
|
|
274
|
+
private isDeliberatelyUnrenderedSource;
|
|
275
|
+
/**
|
|
276
|
+
* Keep exactly one active bare-Unid editor anchor per source block. Presentation clones use
|
|
277
|
+
* canonical source identity plus page/fragment qualification instead.
|
|
278
|
+
*/
|
|
279
|
+
private qualifyPageFragments;
|
|
280
|
+
/**
|
|
281
|
+
* Page flow clones source blocks while the hidden staging tree stays in the document. Any HTML
|
|
282
|
+
* fragment target copied into a visible page would therefore resolve to its earlier hidden
|
|
283
|
+
* source. Transfer target ownership to the page presentation after flow is complete; registry
|
|
284
|
+
* and wrapper IDs that have no visible counterpart remain available to pagination internals.
|
|
285
|
+
*/
|
|
286
|
+
private transferVisibleFragmentTargets;
|
|
139
287
|
/** Read each section's `w:pgNumType` off its wrapper (see {@link SectionPageNumbering}). */
|
|
140
288
|
private parsePageNumbering;
|
|
141
289
|
/**
|
|
@@ -162,6 +310,27 @@ export declare class PaginationEngine {
|
|
|
162
310
|
* Measures all content blocks in a section.
|
|
163
311
|
*/
|
|
164
312
|
private measureBlocks;
|
|
313
|
+
/**
|
|
314
|
+
* Flatten the converter's `section.endnotes > ol > li > p` presentation into
|
|
315
|
+
* ordinary paragraph blocks. This preserves paragraph formatting and canonical
|
|
316
|
+
* p:en/en:en identities while allowing the existing paragraph fragmenter to
|
|
317
|
+
* split a long endnote across page boundaries.
|
|
318
|
+
*/
|
|
319
|
+
private measureSafeEndnoteBlocks;
|
|
320
|
+
/** Render the CSS ordered-list formats emitted by the converter after an endnote is flattened. */
|
|
321
|
+
private formatOrderedListMarker;
|
|
322
|
+
/**
|
|
323
|
+
* Flows a multi-column (`w:cols`) section's children into CSS-multicol container
|
|
324
|
+
* blocks. Word lays such a section out as N columns inside the same body extent;
|
|
325
|
+
* a balanced `column-count` container reproduces that geometry, and the paginator
|
|
326
|
+
* then places each container as one ordinary measured block. A container grows
|
|
327
|
+
* greedily until its balanced height would exceed the smallest page body available
|
|
328
|
+
* to the section, so a long columned section still splits across pages at block
|
|
329
|
+
* boundaries. Each child lands in exactly one container, so anchors never
|
|
330
|
+
* duplicate. An explicit page break child passes through as its own block, which
|
|
331
|
+
* ends the current container and lets the normal flow logic turn the page.
|
|
332
|
+
*/
|
|
333
|
+
private buildColumnBlocks;
|
|
165
334
|
/**
|
|
166
335
|
* Measures one element in the same hidden staging context used for the source blocks.
|
|
167
336
|
* This is intentionally DOM-based: table row heights cannot be inferred from individual
|
|
@@ -182,6 +351,20 @@ export declare class PaginationEngine {
|
|
|
182
351
|
* intentionally excluded, matching the individual block fit check.
|
|
183
352
|
*/
|
|
184
353
|
private measureKeepWithNextChainBodyHeight;
|
|
354
|
+
/** Word paragraphs render as `p`, or as `h1`–`h6` when their style has an outline level. */
|
|
355
|
+
private isWordParagraphElement;
|
|
356
|
+
private shouldSuppressPageTopSpacing;
|
|
357
|
+
/**
|
|
358
|
+
* Resolves the part of a block's top margin that consumes the current page.
|
|
359
|
+
*
|
|
360
|
+
* In Word's native DOCX layout, paragraph space-before is suppressed when a paragraph is the
|
|
361
|
+
* first body block on a later page of the SAME section. The first page of a document/section is
|
|
362
|
+
* the exception and keeps its spacing. Tables and other block margins are not paragraph spacing,
|
|
363
|
+
* so they continue to use the ordinary CSS collapsing rule.
|
|
364
|
+
*/
|
|
365
|
+
private effectiveBlockMarginTop;
|
|
366
|
+
/** Clone a source block with the same page-top spacing decision used by the height budget. */
|
|
367
|
+
private cloneBlockForPage;
|
|
185
368
|
/**
|
|
186
369
|
* Finds footnote references introduced by a sequence of blocks, preserving
|
|
187
370
|
* document order and excluding references already assigned to the page.
|
|
@@ -206,17 +389,38 @@ export declare class PaginationEngine {
|
|
|
206
389
|
*/
|
|
207
390
|
private trySplitSimpleOversizedTable;
|
|
208
391
|
/**
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
392
|
+
* DOM endpoints that can finish a paragraph fragment. The flattened UTF-16
|
|
393
|
+
* offsets are checked against the browser's Unicode grapheme segmenter, so a
|
|
394
|
+
* formatting-run boundary can never bisect a surrogate pair, combining
|
|
395
|
+
* sequence, or joined emoji. NBSP/word-joiner boundaries remain indivisible.
|
|
396
|
+
* PAGE/NUMPAGES field results are atomic because splitting their marker would
|
|
397
|
+
* make later substitution duplicate or replace only half of the field.
|
|
212
398
|
*/
|
|
213
399
|
private paragraphFragmentEndpoints;
|
|
400
|
+
/** Browser-native UAX #29 boundaries; null keeps older runtimes conservative. */
|
|
401
|
+
private graphemeBoundaryOffsets;
|
|
402
|
+
/**
|
|
403
|
+
* Conservative UAX #14/CSS wrapping opportunities used for synthetic page
|
|
404
|
+
* boundaries. In particular, a formatting-run boundary is not itself a word
|
|
405
|
+
* boundary, and Japanese opening/closing punctuation stays with its pair.
|
|
406
|
+
* Arbitrary grapheme breaks are admitted only when the paragraph's CSS asks
|
|
407
|
+
* the browser to wrap anywhere.
|
|
408
|
+
*/
|
|
409
|
+
private isLegalParagraphLineBoundary;
|
|
410
|
+
/** Never fragment across characters whose line-break meaning is explicitly non-breaking. */
|
|
411
|
+
private isNonBreakingTextBoundary;
|
|
412
|
+
/**
|
|
413
|
+
* Without Intl.Segmenter, admit only an all-ASCII boundary. This still
|
|
414
|
+
* fragments ordinary prose while refusing to guess about Unicode clusters.
|
|
415
|
+
*/
|
|
416
|
+
private isConservativeFallbackTextBoundary;
|
|
214
417
|
/**
|
|
215
418
|
* Whether a range contains visible text after ignoring bidi/zero-width marks.
|
|
216
419
|
* Paragraph fragmentation deliberately excludes non-textual descendants, so
|
|
217
420
|
* this is enough to reject empty head or tail fragments.
|
|
218
421
|
*/
|
|
219
422
|
private hasVisibleFragmentText;
|
|
423
|
+
private hasVisibleText;
|
|
220
424
|
/**
|
|
221
425
|
* Phase one only handles text-like paragraph descendants. Objects, explicit
|
|
222
426
|
* line breaks, list markers, notes, and out-of-flow/inline-block content all
|
|
@@ -224,12 +428,38 @@ export declare class PaginationEngine {
|
|
|
224
428
|
* fallback instead of risking broken content or duplicate anchors.
|
|
225
429
|
*/
|
|
226
430
|
private canFragmentParagraph;
|
|
431
|
+
/**
|
|
432
|
+
* Shared structural gate for body and note paragraph fragmentation. Footnote
|
|
433
|
+
* first paragraphs are inline beside their marker, so that one known layout
|
|
434
|
+
* context may opt into an inline root while retaining every descendant and
|
|
435
|
+
* break-safety restriction used for body text.
|
|
436
|
+
*/
|
|
437
|
+
private canRangeFragmentParagraph;
|
|
438
|
+
/**
|
|
439
|
+
* A range clone preserves nested inline formatting exactly. Anything that establishes its own
|
|
440
|
+
* box/layout context is deferred until a future fragmenter can model it accurately. Callers
|
|
441
|
+
* must invoke this while the paragraph is attached to the styled document.
|
|
442
|
+
*/
|
|
443
|
+
private hasRangeFragmentSafeLayout;
|
|
227
444
|
/**
|
|
228
445
|
* Builds one range-cloned paragraph fragment. Only the leading fragment keeps
|
|
229
446
|
* the source paragraph's addressability; continuations must not duplicate an
|
|
230
447
|
* id/data-anchor in the rendered document.
|
|
231
448
|
*/
|
|
232
449
|
private createParagraphFragment;
|
|
450
|
+
/**
|
|
451
|
+
* Range clones repeat an inline ancestor when the split lands inside it. Keep
|
|
452
|
+
* semantic wrappers (links, comments, formatting) on both sides, but retain a
|
|
453
|
+
* duplicated HTML/editor identity only on the leading fragment. Targets that
|
|
454
|
+
* occur wholly after the split are absent from `head` and remain on `tail`.
|
|
455
|
+
*/
|
|
456
|
+
private reconcileParagraphFragmentIdentities;
|
|
457
|
+
/**
|
|
458
|
+
* Range-clone the largest safe prefix accepted by `fits`. The measurement
|
|
459
|
+
* policy stays with the caller, allowing body blocks and note bands to share
|
|
460
|
+
* one DOM fragmenter while measuring in their respective layout contexts.
|
|
461
|
+
*/
|
|
462
|
+
private splitParagraphAtLargestFit;
|
|
233
463
|
/**
|
|
234
464
|
* Splits a simple paragraph at the largest DOM Range endpoint that fits the
|
|
235
465
|
* currently available body space. The caller then processes the tail normally,
|
|
@@ -245,10 +475,43 @@ export declare class PaginationEngine {
|
|
|
245
475
|
* Parses the footnote registry from the staging element.
|
|
246
476
|
*/
|
|
247
477
|
private parseFootnoteRegistry;
|
|
478
|
+
/** Read Word's optional normal and continuation separator stories. */
|
|
479
|
+
private parseFootnoteSeparators;
|
|
480
|
+
/** Append the exact separator story selected for this initial/continued note band. */
|
|
481
|
+
private appendFootnoteSeparator;
|
|
482
|
+
/** Parses the hidden source notes used to render paginated margin comments. */
|
|
483
|
+
private parseCommentMarginRegistry;
|
|
248
484
|
/**
|
|
249
485
|
* Extracts footnote reference IDs from an element.
|
|
250
486
|
*/
|
|
251
487
|
private extractFootnoteRefs;
|
|
488
|
+
/** Clone a note child for the continuation queue with its original selector position. */
|
|
489
|
+
private cloneFootnoteElementForContinuation;
|
|
490
|
+
/** Remove identities that belong only to the initial registry presentation shell. */
|
|
491
|
+
private makeContinuationShellInert;
|
|
492
|
+
/**
|
|
493
|
+
* Build the exact continuation shape shared by measurement and paint.
|
|
494
|
+
*
|
|
495
|
+
* Keep the source `.footnote-item > .footnote-content` ancestry: document
|
|
496
|
+
* CSS, inherited direction/language, and custom classes frequently target
|
|
497
|
+
* those shells. Only the number and initial HTML/editor identities are
|
|
498
|
+
* omitted. A hidden sentinel preserves `p:not(:first-of-type)` for a page
|
|
499
|
+
* whose first carried element was a later source paragraph.
|
|
500
|
+
*/
|
|
501
|
+
private createFootnoteContinuationWrapper;
|
|
502
|
+
/** Build the exact partial-note item shape shared by measurement and paint. */
|
|
503
|
+
private createPartialFootnoteItem;
|
|
504
|
+
/**
|
|
505
|
+
* Where a note measurement tree is attached.
|
|
506
|
+
*
|
|
507
|
+
* A note band is reserved from a measurement and then painted; if the two
|
|
508
|
+
* happen under different inherited typography the painted notes overflow the
|
|
509
|
+
* reserve, which is the invisible clipping this engine exists to avoid. The
|
|
510
|
+
* registry lives in the staging tree but a band paints inside the output
|
|
511
|
+
* container, so measure there. The host is never a page box, so a page's
|
|
512
|
+
* `zoom` cannot scale a reserve that is accounted for in unscaled points.
|
|
513
|
+
*/
|
|
514
|
+
private noteMeasurementHost;
|
|
252
515
|
/**
|
|
253
516
|
* Measures the height of footnotes for given IDs (in points).
|
|
254
517
|
* Creates a temporary container to measure the footnotes.
|
|
@@ -258,29 +521,24 @@ export declare class PaginationEngine {
|
|
|
258
521
|
*/
|
|
259
522
|
private measureFootnotesHeight;
|
|
260
523
|
/**
|
|
261
|
-
*
|
|
524
|
+
* Partition a continuation for one page's note band, preferring complete children
|
|
525
|
+
* and range-fragmenting an eligible paragraph when necessary. Always advances by
|
|
526
|
+
* at least one element so an indivisible oversized paragraph follows the established
|
|
527
|
+
* clipped fallback without trapping pagination in a loop.
|
|
262
528
|
*/
|
|
263
|
-
private
|
|
529
|
+
private splitContinuationForPage;
|
|
264
530
|
/**
|
|
265
531
|
* Splits a footnote element into parts that fit within the available height.
|
|
266
532
|
* Returns the elements that fit and the elements that need to continue.
|
|
267
533
|
*/
|
|
268
534
|
private splitFootnoteToFit;
|
|
269
|
-
/**
|
|
270
|
-
* Measures a single footnote's height.
|
|
271
|
-
*/
|
|
272
|
-
private measureSingleFootnoteHeight;
|
|
273
535
|
/**
|
|
274
536
|
* Adds footnotes to a page container, including continuation content.
|
|
275
537
|
*/
|
|
276
538
|
private addPageFootnotes;
|
|
277
|
-
/**
|
|
278
|
-
* Selects the appropriate header for a page based on section, page position, and page number.
|
|
279
|
-
*/
|
|
539
|
+
/** Select the section's first/odd/even header from its one-based page position. */
|
|
280
540
|
private selectHeader;
|
|
281
|
-
/**
|
|
282
|
-
* Selects the appropriate footer for a page based on section, page position, and page number.
|
|
283
|
-
*/
|
|
541
|
+
/** Select the section's first/odd/even footer from its one-based page position. */
|
|
284
542
|
private selectFooter;
|
|
285
543
|
/**
|
|
286
544
|
* The header, body, and footer bands for one page position.
|
|
@@ -327,6 +585,8 @@ export declare class PaginationEngine {
|
|
|
327
585
|
* cloned node cannot be uniquely addressed.
|
|
328
586
|
*/
|
|
329
587
|
private makeClonedStoryInert;
|
|
588
|
+
/** A repeated margin note is presentation, not a second bookmark/link target. */
|
|
589
|
+
private makeClonedMarginCommentInert;
|
|
330
590
|
/**
|
|
331
591
|
* Resolves floating DrawingML objects after their anchor paragraphs have landed on a page.
|
|
332
592
|
*
|
|
@@ -340,6 +600,8 @@ export declare class PaginationEngine {
|
|
|
340
600
|
private horizontalAnchorReference;
|
|
341
601
|
private verticalAnchorReference;
|
|
342
602
|
private resolveAnchorAxis;
|
|
603
|
+
/** Charge a physical page before any page-owned partitioning or DOM allocation. */
|
|
604
|
+
private admitPageAllocation;
|
|
343
605
|
/**
|
|
344
606
|
* Creates a page container element.
|
|
345
607
|
*/
|
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;AAYH,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
|