docxodus 3.2.0 → 3.4.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/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions } from "./types.js";
2
- import { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair } from "./types.js";
3
- export type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions, };
4
- export { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, };
1
+ import type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions, FormatChangeDetails } from "./types.js";
2
+ import { CommentRenderMode, PaginationMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, isFormatChange } from "./types.js";
3
+ export type { PageDimensions, MeasuredBlock, PageInfo, PaginationResult, PaginationOptions, } from "./pagination.js";
4
+ export { PaginationEngine, paginateHtml } from "./pagination.js";
5
+ export type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions, FormatChangeDetails, };
6
+ export { CommentRenderMode, PaginationMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, isFormatChange, };
5
7
  /**
6
8
  * Current base path for WASM files.
7
9
  * Empty string means auto-detect from module URL.
@@ -33,6 +35,18 @@ export declare function initialize(basePath?: string): Promise<void>;
33
35
  * @param options - Conversion options
34
36
  * @returns HTML string
35
37
  * @throws Error if conversion fails
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * // Basic conversion
42
+ * const html = await convertDocxToHtml(docxFile);
43
+ *
44
+ * // With pagination (PDF.js-style page view)
45
+ * const html = await convertDocxToHtml(docxFile, {
46
+ * paginationMode: PaginationMode.Paginated,
47
+ * paginationScale: 0.8
48
+ * });
49
+ * ```
36
50
  */
37
51
  export declare function convertDocxToHtml(document: File | Uint8Array, options?: ConversionOptions): Promise<string>;
38
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EAEb,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACb,CAAC;AA2BF;;;GAGG;AACH,eAAO,IAAI,YAAY,QAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAajE;AA8FD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgCrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,WAAW,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EAEb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,CAAC;AA2BF;;;GAGG;AACH,eAAO,IAAI,YAAY,QAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAajE;AA8FD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqCrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,WAAW,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- import { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, } from "./types.js";
2
- export { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, };
1
+ import { CommentRenderMode, PaginationMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, isFormatChange, } from "./types.js";
2
+ export { PaginationEngine, paginateHtml } from "./pagination.js";
3
+ export { CommentRenderMode, PaginationMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, isFormatChange, };
3
4
  let wasmExports = null;
4
5
  let initPromise = null;
5
6
  /**
@@ -144,13 +145,33 @@ async function toBytes(input) {
144
145
  * @param options - Conversion options
145
146
  * @returns HTML string
146
147
  * @throws Error if conversion fails
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Basic conversion
152
+ * const html = await convertDocxToHtml(docxFile);
153
+ *
154
+ * // With pagination (PDF.js-style page view)
155
+ * const html = await convertDocxToHtml(docxFile, {
156
+ * paginationMode: PaginationMode.Paginated,
157
+ * paginationScale: 0.8
158
+ * });
159
+ * ```
147
160
  */
148
161
  export async function convertDocxToHtml(document, options) {
149
162
  const exports = ensureInitialized();
150
163
  const bytes = await toBytes(document);
151
- const result = options
152
- ? exports.DocumentConverter.ConvertDocxToHtmlWithOptions(bytes, options.pageTitle ?? "Document", options.cssPrefix ?? "docx-", options.fabricateClasses ?? true, options.additionalCss ?? "", options.commentRenderMode ?? CommentRenderMode.Disabled, options.commentCssClassPrefix ?? "comment-")
153
- : exports.DocumentConverter.ConvertDocxToHtml(bytes);
164
+ let result;
165
+ // Use pagination-aware method when pagination is requested
166
+ if (options?.paginationMode !== undefined && options.paginationMode !== PaginationMode.None) {
167
+ result = exports.DocumentConverter.ConvertDocxToHtmlWithPagination(bytes, options.pageTitle ?? "Document", options.cssPrefix ?? "docx-", options.fabricateClasses ?? true, options.additionalCss ?? "", options.commentRenderMode ?? CommentRenderMode.Disabled, options.commentCssClassPrefix ?? "comment-", options.paginationMode, options.paginationScale ?? 1.0, options.paginationCssClassPrefix ?? "page-");
168
+ }
169
+ else if (options) {
170
+ result = exports.DocumentConverter.ConvertDocxToHtmlWithOptions(bytes, options.pageTitle ?? "Document", options.cssPrefix ?? "docx-", options.fabricateClasses ?? true, options.additionalCss ?? "", options.commentRenderMode ?? CommentRenderMode.Disabled, options.commentCssClassPrefix ?? "comment-");
171
+ }
172
+ else {
173
+ result = exports.DocumentConverter.ConvertDocxToHtml(bytes);
174
+ }
154
175
  if (isErrorResponse(result)) {
155
176
  const error = parseError(result);
156
177
  throw new Error(`Conversion failed: ${error.error}`);
@@ -250,6 +271,11 @@ export async function getRevisions(document, options) {
250
271
  text: r.Text || r.text,
251
272
  moveGroupId: r.MoveGroupId ?? r.moveGroupId,
252
273
  isMoveSource: r.IsMoveSource ?? r.isMoveSource,
274
+ formatChange: (r.FormatChange || r.formatChange) ? {
275
+ oldProperties: r.FormatChange?.OldProperties || r.formatChange?.oldProperties,
276
+ newProperties: r.FormatChange?.NewProperties || r.formatChange?.newProperties,
277
+ changedPropertyNames: r.FormatChange?.ChangedPropertyNames || r.formatChange?.changedPropertyNames,
278
+ } : undefined,
253
279
  }));
254
280
  }
255
281
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Pagination engine for creating a PDF.js-style paginated view from HTML output.
3
+ *
4
+ * This module provides client-side pagination that measures rendered content
5
+ * and flows it across fixed-size page containers based on document dimensions.
6
+ */
7
+ /**
8
+ * Page dimensions extracted from HTML data attributes (in points).
9
+ */
10
+ export interface PageDimensions {
11
+ /** Page width in points */
12
+ pageWidth: number;
13
+ /** Page height in points */
14
+ pageHeight: number;
15
+ /** Content area width (page minus margins) in points */
16
+ contentWidth: number;
17
+ /** Content area height (page minus margins) in points */
18
+ contentHeight: number;
19
+ /** Top margin in points */
20
+ marginTop: number;
21
+ /** Right margin in points */
22
+ marginRight: number;
23
+ /** Bottom margin in points */
24
+ marginBottom: number;
25
+ /** Left margin in points */
26
+ marginLeft: number;
27
+ }
28
+ /**
29
+ * A measured content block with metadata for pagination decisions.
30
+ */
31
+ export interface MeasuredBlock {
32
+ /** The DOM element */
33
+ element: HTMLElement;
34
+ /** Measured height in points */
35
+ heightPt: number;
36
+ /** Whether to keep this block with the next one */
37
+ keepWithNext: boolean;
38
+ /** Whether to keep all lines of this block together */
39
+ keepLines: boolean;
40
+ /** Whether to force a page break before this block */
41
+ pageBreakBefore: boolean;
42
+ /** Whether this is a page break marker */
43
+ isPageBreak: boolean;
44
+ }
45
+ /**
46
+ * Information about a rendered page.
47
+ */
48
+ export interface PageInfo {
49
+ /** 1-based page number */
50
+ pageNumber: number;
51
+ /** Section index this page belongs to */
52
+ sectionIndex: number;
53
+ /** Page dimensions */
54
+ dimensions: PageDimensions;
55
+ /** The page container element */
56
+ element: HTMLElement;
57
+ }
58
+ /**
59
+ * Result of pagination operation.
60
+ */
61
+ export interface PaginationResult {
62
+ /** Total number of pages */
63
+ totalPages: number;
64
+ /** Array of page information */
65
+ pages: PageInfo[];
66
+ }
67
+ /**
68
+ * Options for the pagination engine.
69
+ */
70
+ export interface PaginationOptions {
71
+ /** Scale factor for rendering (1.0 = 100%). Default: 1 */
72
+ scale?: number;
73
+ /** CSS class prefix used in the HTML. Default: "page-" */
74
+ cssPrefix?: string;
75
+ /** Whether to show page numbers. Default: true */
76
+ showPageNumbers?: boolean;
77
+ /** Gap between pages in pixels. Default: 20 */
78
+ pageGap?: number;
79
+ }
80
+ /**
81
+ * Pagination engine that converts HTML with pagination metadata
82
+ * into a paginated view with fixed-size page containers.
83
+ */
84
+ export declare class PaginationEngine {
85
+ private stagingElement;
86
+ private containerElement;
87
+ private scale;
88
+ private cssPrefix;
89
+ private showPageNumbers;
90
+ private pageGap;
91
+ /**
92
+ * Creates a new pagination engine.
93
+ *
94
+ * @param staging - The staging element or its ID containing the content to paginate
95
+ * @param container - The container element or its ID where pages will be rendered
96
+ * @param options - Pagination options
97
+ */
98
+ constructor(staging: HTMLElement | string, container: HTMLElement | string, options?: PaginationOptions);
99
+ /**
100
+ * Runs the pagination process.
101
+ *
102
+ * @returns PaginationResult with page information
103
+ */
104
+ paginate(): PaginationResult;
105
+ /**
106
+ * Measures all content blocks in a section.
107
+ */
108
+ private measureBlocks;
109
+ /**
110
+ * Flows measured blocks into page containers.
111
+ */
112
+ private flowToPages;
113
+ /**
114
+ * Creates a page container element.
115
+ */
116
+ private createPage;
117
+ }
118
+ /**
119
+ * Convenience function to paginate HTML content.
120
+ *
121
+ * @param html - HTML string with pagination metadata
122
+ * @param container - Container element or ID where pages will be rendered
123
+ * @param options - Pagination options
124
+ * @returns PaginationResult
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const html = await convertDocxToHtml(docx, { paginationMode: PaginationMode.Paginated });
129
+ *
130
+ * // Create a container for the paginated view
131
+ * const container = document.getElementById('viewer');
132
+ *
133
+ * // Parse and paginate
134
+ * container.innerHTML = html;
135
+ * const staging = document.getElementById('pagination-staging');
136
+ * const pageContainer = document.getElementById('pagination-container');
137
+ *
138
+ * const engine = new PaginationEngine(staging, pageContainer, { scale: 0.8 });
139
+ * const result = engine.paginate();
140
+ *
141
+ * console.log(`Document has ${result.totalPages} pages`);
142
+ * ```
143
+ */
144
+ export declare function paginateHtml(html: string, container: HTMLElement | string, options?: PaginationOptions): PaginationResult;
145
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,eAAe,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,iCAAiC;IACjC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8CD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;OAMG;gBAED,OAAO,EAAE,WAAW,GAAG,MAAM,EAC7B,SAAS,EAAE,WAAW,GAAG,MAAM,EAC/B,OAAO,GAAE,iBAAsB;IAwBjC;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB;IAyC5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsEnB;;OAEG;IACH,OAAO,CAAC,UAAU;CAoDnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,WAAW,GAAG,MAAM,EAC/B,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAgClB"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Pagination engine for creating a PDF.js-style paginated view from HTML output.
3
+ *
4
+ * This module provides client-side pagination that measures rendered content
5
+ * and flows it across fixed-size page containers based on document dimensions.
6
+ */
7
+ // Default letter size in points (612 x 792 = 8.5" x 11")
8
+ const DEFAULT_PAGE_WIDTH = 612;
9
+ const DEFAULT_PAGE_HEIGHT = 792;
10
+ const DEFAULT_MARGIN = 72; // 1 inch
11
+ /**
12
+ * Converts pixels to points (assuming 96 DPI screen).
13
+ */
14
+ function pxToPt(px) {
15
+ return px * 0.75; // 72 points / 96 pixels
16
+ }
17
+ /**
18
+ * Converts points to pixels (assuming 96 DPI screen).
19
+ */
20
+ function ptToPx(pt) {
21
+ return pt / 0.75;
22
+ }
23
+ /**
24
+ * Parses page dimensions from a section element's data attributes.
25
+ */
26
+ function parseDimensions(section) {
27
+ const pageWidth = parseFloat(section.dataset.pageWidth || "") || DEFAULT_PAGE_WIDTH;
28
+ const pageHeight = parseFloat(section.dataset.pageHeight || "") || DEFAULT_PAGE_HEIGHT;
29
+ const contentWidth = parseFloat(section.dataset.contentWidth || "") || pageWidth - 2 * DEFAULT_MARGIN;
30
+ const contentHeight = parseFloat(section.dataset.contentHeight || "") || pageHeight - 2 * DEFAULT_MARGIN;
31
+ const marginTop = parseFloat(section.dataset.marginTop || "") || DEFAULT_MARGIN;
32
+ const marginRight = parseFloat(section.dataset.marginRight || "") || DEFAULT_MARGIN;
33
+ const marginBottom = parseFloat(section.dataset.marginBottom || "") || DEFAULT_MARGIN;
34
+ const marginLeft = parseFloat(section.dataset.marginLeft || "") || DEFAULT_MARGIN;
35
+ return {
36
+ pageWidth,
37
+ pageHeight,
38
+ contentWidth,
39
+ contentHeight,
40
+ marginTop,
41
+ marginRight,
42
+ marginBottom,
43
+ marginLeft,
44
+ };
45
+ }
46
+ /**
47
+ * Pagination engine that converts HTML with pagination metadata
48
+ * into a paginated view with fixed-size page containers.
49
+ */
50
+ export class PaginationEngine {
51
+ /**
52
+ * Creates a new pagination engine.
53
+ *
54
+ * @param staging - The staging element or its ID containing the content to paginate
55
+ * @param container - The container element or its ID where pages will be rendered
56
+ * @param options - Pagination options
57
+ */
58
+ constructor(staging, container, options = {}) {
59
+ this.stagingElement =
60
+ typeof staging === "string"
61
+ ? document.getElementById(staging)
62
+ : staging;
63
+ this.containerElement =
64
+ typeof container === "string"
65
+ ? document.getElementById(container)
66
+ : container;
67
+ if (!this.stagingElement) {
68
+ throw new Error("Staging element not found");
69
+ }
70
+ if (!this.containerElement) {
71
+ throw new Error("Container element not found");
72
+ }
73
+ this.scale = options.scale ?? 1;
74
+ this.cssPrefix = options.cssPrefix ?? "page-";
75
+ this.showPageNumbers = options.showPageNumbers ?? true;
76
+ this.pageGap = options.pageGap ?? 20;
77
+ }
78
+ /**
79
+ * Runs the pagination process.
80
+ *
81
+ * @returns PaginationResult with page information
82
+ */
83
+ paginate() {
84
+ const pages = [];
85
+ let pageNumber = 1;
86
+ // Find all section containers
87
+ const sections = this.stagingElement.querySelectorAll("[data-section-index]");
88
+ // If no sections found, treat the entire staging content as one section
89
+ const sectionsToProcess = sections.length > 0 ? Array.from(sections) : [this.stagingElement];
90
+ for (const section of sectionsToProcess) {
91
+ const sectionIndex = parseInt(section.dataset.sectionIndex || "0", 10);
92
+ const dims = parseDimensions(section);
93
+ // Make staging visible for measurement
94
+ this.stagingElement.style.visibility = "hidden";
95
+ this.stagingElement.style.position = "absolute";
96
+ this.stagingElement.style.left = "-9999px";
97
+ this.stagingElement.style.display = "block";
98
+ // Set width for accurate line wrapping
99
+ section.style.width = `${dims.contentWidth}pt`;
100
+ // Measure all blocks in this section
101
+ const blocks = this.measureBlocks(section, dims);
102
+ // Flow blocks into pages
103
+ const sectionPages = this.flowToPages(blocks, dims, pageNumber, sectionIndex);
104
+ pages.push(...sectionPages);
105
+ pageNumber += sectionPages.length;
106
+ }
107
+ // Hide staging after measurement
108
+ this.stagingElement.style.display = "none";
109
+ return { totalPages: pages.length, pages };
110
+ }
111
+ /**
112
+ * Measures all content blocks in a section.
113
+ */
114
+ measureBlocks(section, dims) {
115
+ const blocks = [];
116
+ // Get direct children (paragraphs, tables, divs, etc.)
117
+ const children = Array.from(section.children);
118
+ for (const child of children) {
119
+ // Skip section dividers that are just wrappers
120
+ if (child.dataset.sectionIndex !== undefined) {
121
+ // Recursively get blocks from nested sections
122
+ const nestedBlocks = this.measureBlocks(child, dims);
123
+ blocks.push(...nestedBlocks);
124
+ continue;
125
+ }
126
+ const rect = child.getBoundingClientRect();
127
+ const heightPt = pxToPt(rect.height);
128
+ const isPageBreak = child.dataset.pageBreak === "true" ||
129
+ child.classList.contains(`${this.cssPrefix}break`);
130
+ blocks.push({
131
+ element: child,
132
+ heightPt,
133
+ keepWithNext: child.dataset.keepWithNext === "true",
134
+ keepLines: child.dataset.keepLines === "true",
135
+ pageBreakBefore: child.dataset.pageBreakBefore === "true",
136
+ isPageBreak,
137
+ });
138
+ }
139
+ return blocks;
140
+ }
141
+ /**
142
+ * Flows measured blocks into page containers.
143
+ */
144
+ flowToPages(blocks, dims, startPageNumber, sectionIndex) {
145
+ const pages = [];
146
+ let currentContent = [];
147
+ let remainingHeight = dims.contentHeight;
148
+ let pageNumber = startPageNumber;
149
+ const finishPage = () => {
150
+ if (currentContent.length === 0)
151
+ return;
152
+ const page = this.createPage(dims, pageNumber, sectionIndex, currentContent);
153
+ pages.push(page);
154
+ pageNumber++;
155
+ currentContent = [];
156
+ remainingHeight = dims.contentHeight;
157
+ };
158
+ for (let i = 0; i < blocks.length; i++) {
159
+ const block = blocks[i];
160
+ const nextBlock = blocks[i + 1];
161
+ // Handle explicit page breaks
162
+ if (block.isPageBreak) {
163
+ finishPage();
164
+ continue;
165
+ }
166
+ // Handle page break before
167
+ if (block.pageBreakBefore && currentContent.length > 0) {
168
+ finishPage();
169
+ }
170
+ // Calculate needed height (including keepWithNext)
171
+ let neededHeight = block.heightPt;
172
+ if (block.keepWithNext && nextBlock && !nextBlock.isPageBreak) {
173
+ neededHeight += nextBlock.heightPt;
174
+ }
175
+ // Check if block fits on current page
176
+ if (block.heightPt <= remainingHeight) {
177
+ // Block fits
178
+ currentContent.push(block.element.cloneNode(true));
179
+ remainingHeight -= block.heightPt;
180
+ }
181
+ else if (block.heightPt <= dims.contentHeight) {
182
+ // Block doesn't fit but will fit on a new page
183
+ finishPage();
184
+ currentContent.push(block.element.cloneNode(true));
185
+ remainingHeight = dims.contentHeight - block.heightPt;
186
+ }
187
+ else {
188
+ // Block is taller than a page - add it and let it overflow
189
+ // (In a more sophisticated implementation, we would split the block)
190
+ if (currentContent.length > 0) {
191
+ finishPage();
192
+ }
193
+ currentContent.push(block.element.cloneNode(true));
194
+ finishPage();
195
+ }
196
+ }
197
+ // Finish last page
198
+ finishPage();
199
+ return pages;
200
+ }
201
+ /**
202
+ * Creates a page container element.
203
+ */
204
+ createPage(dims, pageNumber, sectionIndex, content) {
205
+ const scaledWidth = dims.pageWidth * this.scale;
206
+ const scaledHeight = dims.pageHeight * this.scale;
207
+ // Create page box
208
+ const pageBox = document.createElement("div");
209
+ pageBox.className = `${this.cssPrefix}box`;
210
+ pageBox.style.width = `${scaledWidth}pt`;
211
+ pageBox.style.height = `${scaledHeight}pt`;
212
+ pageBox.dataset.pageNumber = String(pageNumber);
213
+ pageBox.dataset.sectionIndex = String(sectionIndex);
214
+ // Create content area
215
+ const contentArea = document.createElement("div");
216
+ contentArea.className = `${this.cssPrefix}content`;
217
+ contentArea.style.top = `${dims.marginTop * this.scale}pt`;
218
+ contentArea.style.left = `${dims.marginLeft * this.scale}pt`;
219
+ contentArea.style.width = `${dims.contentWidth}pt`;
220
+ contentArea.style.height = `${dims.contentHeight}pt`;
221
+ contentArea.style.transform = `scale(${this.scale})`;
222
+ contentArea.style.transformOrigin = "top left";
223
+ // Add content
224
+ for (const el of content) {
225
+ contentArea.appendChild(el);
226
+ }
227
+ pageBox.appendChild(contentArea);
228
+ // Add page number
229
+ if (this.showPageNumbers) {
230
+ const pageNum = document.createElement("div");
231
+ pageNum.className = `${this.cssPrefix}number`;
232
+ pageNum.textContent = String(pageNumber);
233
+ pageBox.appendChild(pageNum);
234
+ }
235
+ // Add to container
236
+ this.containerElement.appendChild(pageBox);
237
+ return {
238
+ pageNumber,
239
+ sectionIndex,
240
+ dimensions: dims,
241
+ element: pageBox,
242
+ };
243
+ }
244
+ }
245
+ /**
246
+ * Convenience function to paginate HTML content.
247
+ *
248
+ * @param html - HTML string with pagination metadata
249
+ * @param container - Container element or ID where pages will be rendered
250
+ * @param options - Pagination options
251
+ * @returns PaginationResult
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * const html = await convertDocxToHtml(docx, { paginationMode: PaginationMode.Paginated });
256
+ *
257
+ * // Create a container for the paginated view
258
+ * const container = document.getElementById('viewer');
259
+ *
260
+ * // Parse and paginate
261
+ * container.innerHTML = html;
262
+ * const staging = document.getElementById('pagination-staging');
263
+ * const pageContainer = document.getElementById('pagination-container');
264
+ *
265
+ * const engine = new PaginationEngine(staging, pageContainer, { scale: 0.8 });
266
+ * const result = engine.paginate();
267
+ *
268
+ * console.log(`Document has ${result.totalPages} pages`);
269
+ * ```
270
+ */
271
+ export function paginateHtml(html, container, options = {}) {
272
+ const containerEl = typeof container === "string"
273
+ ? document.getElementById(container)
274
+ : container;
275
+ if (!containerEl) {
276
+ throw new Error("Container element not found");
277
+ }
278
+ // Insert HTML into container
279
+ containerEl.innerHTML = html;
280
+ // Find staging and page container
281
+ const cssPrefix = options.cssPrefix ?? "page-";
282
+ const staging = containerEl.querySelector("#pagination-staging") ||
283
+ containerEl.querySelector(`.${cssPrefix}staging`);
284
+ const pageContainer = containerEl.querySelector("#pagination-container") ||
285
+ containerEl.querySelector(`.${cssPrefix}container`);
286
+ if (!staging) {
287
+ throw new Error("Pagination staging element not found. Make sure the HTML was generated with PaginationMode.Paginated");
288
+ }
289
+ if (!pageContainer) {
290
+ throw new Error("Pagination container element not found");
291
+ }
292
+ const engine = new PaginationEngine(staging, pageContainer, options);
293
+ return engine.paginate();
294
+ }
295
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
package/dist/react.d.ts CHANGED
@@ -1,5 +1,8 @@
1
+ import React from "react";
2
+ import type { CSSProperties, ReactElement } from "react";
1
3
  import type { ConversionOptions, CompareOptions, Revision } from "./types.js";
2
- export type { ConversionOptions, CompareOptions, Revision };
4
+ import { type PaginationOptions, type PaginationResult } from "./pagination.js";
5
+ export type { ConversionOptions, CompareOptions, Revision, PaginationOptions, PaginationResult };
3
6
  export interface UseDocxodusResult {
4
7
  /** Whether the WASM runtime is loaded and ready */
5
8
  isReady: boolean;
@@ -139,4 +142,102 @@ export interface UseComparisonResult {
139
142
  * ```
140
143
  */
141
144
  export declare function useComparison(wasmBasePath?: string): UseComparisonResult;
145
+ /**
146
+ * Props for the PaginatedDocument component.
147
+ */
148
+ export interface PaginatedDocumentProps {
149
+ /** HTML string with pagination metadata (from convertDocxToHtml with PaginationMode.Paginated) */
150
+ html: string;
151
+ /** Scale factor for page rendering (1.0 = 100%). Default: 1 */
152
+ scale?: number;
153
+ /** Whether to show page numbers. Default: true */
154
+ showPageNumbers?: boolean;
155
+ /** Gap between pages in pixels. Default: 20 */
156
+ pageGap?: number;
157
+ /** Background color for the viewer. Default: "#525659" */
158
+ backgroundColor?: string;
159
+ /** CSS class prefix used in the HTML. Default: "page-" */
160
+ cssPrefix?: string;
161
+ /** Callback when pagination completes */
162
+ onPaginationComplete?: (result: PaginationResult) => void;
163
+ /** Callback when a page becomes visible (for tracking current page) */
164
+ onPageVisible?: (pageNumber: number) => void;
165
+ /** Additional CSS class for the container */
166
+ className?: string;
167
+ /** Additional inline styles for the container */
168
+ style?: CSSProperties;
169
+ }
170
+ /**
171
+ * Result of the usePagination hook.
172
+ */
173
+ export interface UsePaginationResult {
174
+ /** Pagination result after processing */
175
+ result: PaginationResult | null;
176
+ /** Whether pagination is in progress */
177
+ isPaginating: boolean;
178
+ /** Error that occurred during pagination */
179
+ error: Error | null;
180
+ /** Manually trigger pagination */
181
+ paginate: () => void;
182
+ }
183
+ /**
184
+ * React hook for pagination state management.
185
+ *
186
+ * @param html - HTML string with pagination metadata
187
+ * @param containerRef - Ref to the container element
188
+ * @param options - Pagination options
189
+ * @returns Pagination state and controls
190
+ *
191
+ * @example
192
+ * ```tsx
193
+ * function Viewer({ html }: { html: string }) {
194
+ * const containerRef = useRef<HTMLDivElement>(null);
195
+ * const { result, isPaginating, error, paginate } = usePagination(html, containerRef);
196
+ *
197
+ * return (
198
+ * <div ref={containerRef} style={{ minHeight: '100vh' }}>
199
+ * {isPaginating && <div>Paginating...</div>}
200
+ * {result && <div>Total pages: {result.totalPages}</div>}
201
+ * </div>
202
+ * );
203
+ * }
204
+ * ```
205
+ */
206
+ export declare function usePagination(html: string, containerRef: React.RefObject<HTMLElement | null>, options?: PaginationOptions): UsePaginationResult;
207
+ /**
208
+ * React component for displaying a paginated document view (PDF.js style).
209
+ *
210
+ * @example
211
+ * ```tsx
212
+ * import { useState, useEffect } from 'react';
213
+ * import { useDocxodus, PaginatedDocument, PaginationMode } from 'docxodus/react';
214
+ *
215
+ * function DocumentViewer() {
216
+ * const { isReady, convertToHtml } = useDocxodus();
217
+ * const [html, setHtml] = useState<string | null>(null);
218
+ *
219
+ * const handleFile = async (file: File) => {
220
+ * const result = await convertToHtml(file, {
221
+ * paginationMode: PaginationMode.Paginated,
222
+ * paginationScale: 0.8
223
+ * });
224
+ * setHtml(result);
225
+ * };
226
+ *
227
+ * return (
228
+ * <div>
229
+ * <input type="file" accept=".docx" onChange={e => e.target.files?.[0] && handleFile(e.target.files[0])} />
230
+ * {html && (
231
+ * <PaginatedDocument
232
+ * html={html}
233
+ * scale={0.8}
234
+ * onPaginationComplete={result => console.log(`${result.totalPages} pages`)}
235
+ * />
236
+ * )}
237
+ * </div>
238
+ * );
239
+ * }
240
+ * ```
241
+ */
242
+ export declare function PaginatedDocument({ html, scale, showPageNumbers, pageGap, backgroundColor, cssPrefix, onPaginationComplete, onPageVisible, className, style, }: PaginatedDocumentProps): ReactElement;
142
243
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,2BAA2B;IAC3B,aAAa,EAAE,CACb,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,iBAAiB,KACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qDAAqD;IACrD,OAAO,EAAE,CACP,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,4CAA4C;IAC5C,aAAa,EAAE,CACb,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,6CAA6C;IAC7C,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAiGpE;AAED,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0CAA0C;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,kCAAkC;IAClC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,+BAA+B;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAkCxE;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,gEAAgE;IAChE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,8CAA8C;IAC9C,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC7B,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,kDAAkD;IAClD,OAAO,EAAE,CACP,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,yCAAyC;IACzC,aAAa,EAAE,CACb,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,wBAAwB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,yCAAyC;IACzC,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAsGxE"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
package/dist/react.js CHANGED
@@ -1,5 +1,6 @@
1
- import { useState, useEffect, useCallback } from "react";
1
+ import { useState, useEffect, useCallback, useRef, createElement } from "react";
2
2
  import { initialize, convertDocxToHtml, compareDocuments, compareDocumentsToHtml, getRevisions, isInitialized, } from "./index.js";
3
+ import { PaginationEngine, } from "./pagination.js";
3
4
  /**
4
5
  * React hook for using Docxodus WASM functionality.
5
6
  * Automatically initializes the WASM runtime on mount.
@@ -267,4 +268,153 @@ export function useComparison(wasmBasePath) {
267
268
  downloadResult,
268
269
  };
269
270
  }
271
+ /**
272
+ * React hook for pagination state management.
273
+ *
274
+ * @param html - HTML string with pagination metadata
275
+ * @param containerRef - Ref to the container element
276
+ * @param options - Pagination options
277
+ * @returns Pagination state and controls
278
+ *
279
+ * @example
280
+ * ```tsx
281
+ * function Viewer({ html }: { html: string }) {
282
+ * const containerRef = useRef<HTMLDivElement>(null);
283
+ * const { result, isPaginating, error, paginate } = usePagination(html, containerRef);
284
+ *
285
+ * return (
286
+ * <div ref={containerRef} style={{ minHeight: '100vh' }}>
287
+ * {isPaginating && <div>Paginating...</div>}
288
+ * {result && <div>Total pages: {result.totalPages}</div>}
289
+ * </div>
290
+ * );
291
+ * }
292
+ * ```
293
+ */
294
+ export function usePagination(html, containerRef, options = {}) {
295
+ const [result, setResult] = useState(null);
296
+ const [isPaginating, setIsPaginating] = useState(false);
297
+ const [error, setError] = useState(null);
298
+ const paginate = useCallback(() => {
299
+ if (!containerRef.current || !html) {
300
+ return;
301
+ }
302
+ setIsPaginating(true);
303
+ setError(null);
304
+ try {
305
+ const container = containerRef.current;
306
+ // Insert HTML into container
307
+ container.innerHTML = html;
308
+ // Find staging and page container
309
+ const cssPrefix = options.cssPrefix ?? "page-";
310
+ const staging = container.querySelector("#pagination-staging") ||
311
+ container.querySelector(`.${cssPrefix}staging`);
312
+ const pageContainer = container.querySelector("#pagination-container") ||
313
+ container.querySelector(`.${cssPrefix}container`);
314
+ if (!staging || !pageContainer) {
315
+ throw new Error("Pagination elements not found. Ensure HTML was generated with PaginationMode.Paginated");
316
+ }
317
+ const engine = new PaginationEngine(staging, pageContainer, options);
318
+ const paginationResult = engine.paginate();
319
+ setResult(paginationResult);
320
+ }
321
+ catch (err) {
322
+ setError(err instanceof Error ? err : new Error(String(err)));
323
+ }
324
+ finally {
325
+ setIsPaginating(false);
326
+ }
327
+ }, [html, containerRef, options]);
328
+ // Auto-paginate when HTML changes
329
+ useEffect(() => {
330
+ if (html && containerRef.current) {
331
+ paginate();
332
+ }
333
+ }, [html, paginate]);
334
+ return { result, isPaginating, error, paginate };
335
+ }
336
+ /**
337
+ * React component for displaying a paginated document view (PDF.js style).
338
+ *
339
+ * @example
340
+ * ```tsx
341
+ * import { useState, useEffect } from 'react';
342
+ * import { useDocxodus, PaginatedDocument, PaginationMode } from 'docxodus/react';
343
+ *
344
+ * function DocumentViewer() {
345
+ * const { isReady, convertToHtml } = useDocxodus();
346
+ * const [html, setHtml] = useState<string | null>(null);
347
+ *
348
+ * const handleFile = async (file: File) => {
349
+ * const result = await convertToHtml(file, {
350
+ * paginationMode: PaginationMode.Paginated,
351
+ * paginationScale: 0.8
352
+ * });
353
+ * setHtml(result);
354
+ * };
355
+ *
356
+ * return (
357
+ * <div>
358
+ * <input type="file" accept=".docx" onChange={e => e.target.files?.[0] && handleFile(e.target.files[0])} />
359
+ * {html && (
360
+ * <PaginatedDocument
361
+ * html={html}
362
+ * scale={0.8}
363
+ * onPaginationComplete={result => console.log(`${result.totalPages} pages`)}
364
+ * />
365
+ * )}
366
+ * </div>
367
+ * );
368
+ * }
369
+ * ```
370
+ */
371
+ export function PaginatedDocument({ html, scale = 1, showPageNumbers = true, pageGap = 20, backgroundColor = "#525659", cssPrefix = "page-", onPaginationComplete, onPageVisible, className, style, }) {
372
+ const containerRef = useRef(null);
373
+ const { result, isPaginating, error } = usePagination(html, containerRef, {
374
+ scale,
375
+ showPageNumbers,
376
+ pageGap,
377
+ cssPrefix,
378
+ });
379
+ // Notify when pagination completes
380
+ useEffect(() => {
381
+ if (result && onPaginationComplete) {
382
+ onPaginationComplete(result);
383
+ }
384
+ }, [result, onPaginationComplete]);
385
+ // Set up intersection observer for page visibility tracking
386
+ useEffect(() => {
387
+ if (!result || !onPageVisible || !containerRef.current) {
388
+ return;
389
+ }
390
+ const observer = new IntersectionObserver((entries) => {
391
+ entries.forEach((entry) => {
392
+ if (entry.isIntersecting) {
393
+ const pageNum = parseInt(entry.target.dataset.pageNumber || "1", 10);
394
+ onPageVisible(pageNum);
395
+ }
396
+ });
397
+ }, { threshold: 0.5 });
398
+ const pages = containerRef.current.querySelectorAll(`.${cssPrefix}box`);
399
+ pages.forEach((page) => observer.observe(page));
400
+ return () => observer.disconnect();
401
+ }, [result, cssPrefix, onPageVisible]);
402
+ // Use createElement to avoid TSX dependency
403
+ const containerStyle = {
404
+ backgroundColor,
405
+ minHeight: "100vh",
406
+ overflow: "auto",
407
+ ...style,
408
+ };
409
+ if (error) {
410
+ return createElement("div", {
411
+ style: { color: "red", padding: "20px", backgroundColor },
412
+ }, `Pagination error: ${error.message}`);
413
+ }
414
+ return createElement("div", {
415
+ ref: containerRef,
416
+ className,
417
+ style: containerStyle,
418
+ }, isPaginating ? "Loading..." : null);
419
+ }
270
420
  //# sourceMappingURL=react.js.map
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,7 +7,9 @@ export declare enum RevisionType {
7
7
  /** Text or content that was removed/deleted */
8
8
  Deleted = "Deleted",
9
9
  /** Text or content that was relocated within the document */
10
- Moved = "Moved"
10
+ Moved = "Moved",
11
+ /** Text content unchanged but formatting (bold, italic, etc.) changed */
12
+ FormatChanged = "FormatChanged"
11
13
  }
12
14
  /**
13
15
  * Comment render mode
@@ -23,6 +25,19 @@ export declare enum CommentRenderMode {
23
25
  /** Render comments in a margin column (CSS-positioned) */
24
26
  Margin = 2
25
27
  }
28
+ /**
29
+ * Pagination mode for HTML output
30
+ */
31
+ export declare enum PaginationMode {
32
+ /** No pagination - content flows continuously (default) */
33
+ None = 0,
34
+ /**
35
+ * Paginated view - outputs page containers with document dimensions
36
+ * and content with data attributes for client-side pagination.
37
+ * Creates a PDF.js-style page preview experience.
38
+ */
39
+ Paginated = 1
40
+ }
26
41
  /**
27
42
  * Options for DOCX to HTML conversion
28
43
  */
@@ -39,6 +54,12 @@ export interface ConversionOptions {
39
54
  commentRenderMode?: CommentRenderMode;
40
55
  /** CSS class prefix for comment elements (default: "comment-") */
41
56
  commentCssClassPrefix?: string;
57
+ /** Pagination mode: None (0) or Paginated (1). Default: None */
58
+ paginationMode?: PaginationMode;
59
+ /** Scale factor for page rendering in paginated mode (1.0 = 100%). Default: 1.0 */
60
+ paginationScale?: number;
61
+ /** CSS class prefix for pagination elements. Default: "page-" */
62
+ paginationCssClassPrefix?: string;
42
63
  }
43
64
  /**
44
65
  * Options for document comparison
@@ -108,6 +129,29 @@ export interface Revision {
108
129
  * Undefined for non-move revisions.
109
130
  */
110
131
  isMoveSource?: boolean;
132
+ /**
133
+ * For FormatChanged revisions: details about what formatting changed.
134
+ * Undefined for non-format-change revisions.
135
+ */
136
+ formatChange?: FormatChangeDetails;
137
+ }
138
+ /**
139
+ * Details about formatting changes for FormatChanged revisions.
140
+ */
141
+ export interface FormatChangeDetails {
142
+ /**
143
+ * Dictionary of old property names and values.
144
+ * Keys are friendly property names like "bold", "italic", "fontSize".
145
+ */
146
+ oldProperties?: Record<string, string>;
147
+ /**
148
+ * Dictionary of new property names and values.
149
+ */
150
+ newProperties?: Record<string, string>;
151
+ /**
152
+ * List of property names that changed (e.g., "bold", "italic", "fontSize").
153
+ */
154
+ changedPropertyNames?: string[];
111
155
  }
112
156
  /**
113
157
  * Type guard to check if a revision is an insertion.
@@ -145,6 +189,21 @@ export declare function isDeletion(revision: Revision): boolean;
145
189
  * ```
146
190
  */
147
191
  export declare function isMove(revision: Revision): boolean;
192
+ /**
193
+ * Type guard to check if a revision is a format change.
194
+ * @param revision - The revision to check
195
+ * @returns true if the revision is a format change
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * const revisions = await getRevisions(doc);
200
+ * const formatChanges = revisions.filter(isFormatChange);
201
+ * for (const rev of formatChanges) {
202
+ * console.log(`Format changed: ${rev.formatChange?.changedPropertyNames?.join(", ")}`);
203
+ * }
204
+ * ```
205
+ */
206
+ export declare function isFormatChange(revision: Revision): boolean;
148
207
  /**
149
208
  * Type guard to check if a revision is a move source (content moved FROM here).
150
209
  * @param revision - The revision to check
@@ -217,6 +276,7 @@ export interface DocxodusWasmExports {
217
276
  DocumentConverter: {
218
277
  ConvertDocxToHtml: (bytes: Uint8Array) => string;
219
278
  ConvertDocxToHtmlWithOptions: (bytes: Uint8Array, pageTitle: string, cssPrefix: string, fabricateClasses: boolean, additionalCss: string, commentRenderMode: number, commentCssClassPrefix: string) => string;
279
+ ConvertDocxToHtmlWithPagination: (bytes: Uint8Array, pageTitle: string, cssPrefix: string, fabricateClasses: boolean, additionalCss: string, commentRenderMode: number, commentCssClassPrefix: string, paginationMode: number, paginationScale: number, paginationCssClassPrefix: string) => string;
220
280
  GetVersion: () => string;
221
281
  };
222
282
  DocumentComparer: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -9,6 +9,8 @@ export var RevisionType;
9
9
  RevisionType["Deleted"] = "Deleted";
10
10
  /** Text or content that was relocated within the document */
11
11
  RevisionType["Moved"] = "Moved";
12
+ /** Text content unchanged but formatting (bold, italic, etc.) changed */
13
+ RevisionType["FormatChanged"] = "FormatChanged";
12
14
  })(RevisionType || (RevisionType = {}));
13
15
  /**
14
16
  * Comment render mode
@@ -25,6 +27,20 @@ export var CommentRenderMode;
25
27
  /** Render comments in a margin column (CSS-positioned) */
26
28
  CommentRenderMode[CommentRenderMode["Margin"] = 2] = "Margin";
27
29
  })(CommentRenderMode || (CommentRenderMode = {}));
30
+ /**
31
+ * Pagination mode for HTML output
32
+ */
33
+ export var PaginationMode;
34
+ (function (PaginationMode) {
35
+ /** No pagination - content flows continuously (default) */
36
+ PaginationMode[PaginationMode["None"] = 0] = "None";
37
+ /**
38
+ * Paginated view - outputs page containers with document dimensions
39
+ * and content with data attributes for client-side pagination.
40
+ * Creates a PDF.js-style page preview experience.
41
+ */
42
+ PaginationMode[PaginationMode["Paginated"] = 1] = "Paginated";
43
+ })(PaginationMode || (PaginationMode = {}));
28
44
  /**
29
45
  * Type guard to check if a revision is an insertion.
30
46
  * @param revision - The revision to check
@@ -67,6 +83,23 @@ export function isDeletion(revision) {
67
83
  export function isMove(revision) {
68
84
  return revision.revisionType === RevisionType.Moved;
69
85
  }
86
+ /**
87
+ * Type guard to check if a revision is a format change.
88
+ * @param revision - The revision to check
89
+ * @returns true if the revision is a format change
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const revisions = await getRevisions(doc);
94
+ * const formatChanges = revisions.filter(isFormatChange);
95
+ * for (const rev of formatChanges) {
96
+ * console.log(`Format changed: ${rev.formatChange?.changedPropertyNames?.join(", ")}`);
97
+ * }
98
+ * ```
99
+ */
100
+ export function isFormatChange(revision) {
101
+ return revision.revisionType === RevisionType.FormatChanged;
102
+ }
70
103
  /**
71
104
  * Type guard to check if a revision is a move source (content moved FROM here).
72
105
  * @param revision - The revision to check
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,8CAA8C;IAC9C,qCAAqB,CAAA;IACrB,+CAA+C;IAC/C,mCAAmB,CAAA;IACnB,6DAA6D;IAC7D,+BAAe,CAAA;AACjB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,uCAAuC;IACvC,kEAAa,CAAA;IACb,2FAA2F;IAC3F,yEAAgB,CAAA;IAChB,8DAA8D;IAC9D,6DAAU,CAAA;IACV,0DAA0D;IAC1D,6DAAU,CAAA;AACZ,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B;AA2FD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB;IAC3C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,QAAkB;IACvC,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,YAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QACtC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,8CAA8C;IAC9C,qCAAqB,CAAA;IACrB,+CAA+C;IAC/C,mCAAmB,CAAA;IACnB,6DAA6D;IAC7D,+BAAe,CAAA;IACf,yEAAyE;IACzE,+CAA+B,CAAA;AACjC,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,uCAAuC;IACvC,kEAAa,CAAA;IACb,2FAA2F;IAC3F,yEAAgB,CAAA;IAChB,8DAA8D;IAC9D,6DAAU,CAAA;IACV,0DAA0D;IAC1D,6DAAU,CAAA;AACZ,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,2DAA2D;IAC3D,mDAAQ,CAAA;IACR;;;;OAIG;IACH,6DAAa,CAAA;AACf,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AAyHD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB;IAC3C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,QAAkB;IACvC,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,aAAa,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,YAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QACtC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAC3C,CAAC;AACJ,CAAC"}
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "DocxodusWasm.dll",
3
3
  "resources": {
4
- "hash": "sha256-PJ0unUdGLm57u9ECBFica6zYqaNdoeSSdB/oSBqGoaE=",
4
+ "hash": "sha256-zmlYhuby7ToCBATrHIZgDbD2VdGCiW3B0GM/f8Ges+g=",
5
5
  "jsModuleNative": {
6
6
  "dotnet.native.js": "sha256-YLwjs9CPwrZG7YKULjmqr5bYsmhxwcWJOhQNM4bG6Gc="
7
7
  },
@@ -9,7 +9,7 @@
9
9
  "dotnet.runtime.js": "sha256-6bV/iAemowb59rmItegP8VsxwWpWUNyMb0Q76Fvvsjo="
10
10
  },
11
11
  "wasmNative": {
12
- "dotnet.native.wasm": "sha256-oysPZYjEKdfpLUD/v48taAyPz6bL0Rc61lGSeQYGjPM="
12
+ "dotnet.native.wasm": "sha256-r4K7/sabghAn25mJC42lFnC3dCx54ufxIPaETC0kF6U="
13
13
  },
14
14
  "wasmSymbols": {
15
15
  "dotnet.native.js.symbols": "sha256-SPuqdYGx50WJuwIFlVGiSuYfladQxWcf88Yd1G1V7W0="
@@ -17,8 +17,8 @@
17
17
  "assembly": {
18
18
  "DocumentFormat.OpenXml.wasm": "sha256-edAN2rIA7QQ8K5qp1o5QXplt8M80fEiVmuMgT/MBmLM=",
19
19
  "DocumentFormat.OpenXml.Framework.wasm": "sha256-CFdrD1dSpnkcOk0gxZcKb2T5p+q2ck9ivs+TOML6Jmw=",
20
- "Docxodus.wasm": "sha256-wU4bzac2fb9ktzajk2MBBFCR8C1JBz9458Xs3oybauU=",
21
- "DocxodusWasm.wasm": "sha256-dJfsCIi+p+dtXBr45AfzuPBfAnIVyMxeoSesjgSFliQ=",
20
+ "Docxodus.wasm": "sha256-O4djUfMXykBAiomURCSQQTQJr0iXBux5Nl74KujwfDk=",
21
+ "DocxodusWasm.wasm": "sha256-NvsROGt5o1nBXc3tazlFDPz9SehXRVO7ucyyjf7luLM=",
22
22
  "SkiaSharp.wasm": "sha256-U6RbqUVBn8Vx8qpghJC5+r/DC1NSBY+EIRDxP8o6dsk=",
23
23
  "System.Collections.Concurrent.wasm": "sha256-xXJbJWNeQ2DSYvAGUoUHjF9y4Iajv2ed0eACOxWD19U=",
24
24
  "System.Collections.wasm": "sha256-J1FML3h2WBTlmekS0TVLGCvZGbIRG+AZnGmlZn3Y5+Q=",
@@ -37,7 +37,7 @@
37
37
  "System.Net.Http.wasm": "sha256-gfinV/63sNC0fUQkDJlS9YhPxGAlhaMJ60PisQ6cGMw=",
38
38
  "System.Net.Primitives.wasm": "sha256-gKuhOsrrlKcVl7zeLW7q8PQ+MGt2EFqxRTMCdp4IjP8=",
39
39
  "System.ObjectModel.wasm": "sha256-x7qtHOTvmJ6Wa03MtqCxc3J0Os4RKQpGO469LHVEgmw=",
40
- "System.Private.CoreLib.wasm": "sha256-UsMfSJt6aM+qdFjWDydlGmYm21iROSck3ALoUhg6zYo=",
40
+ "System.Private.CoreLib.wasm": "sha256-rucy8qCsjYpms+XmyvxH/q4gQimGe78TaIvbuDxLGJg=",
41
41
  "System.Private.Uri.wasm": "sha256-BnaHYeR1cbbaYnfkExIe3083WDqV4eVrRM4cFrjoO6s=",
42
42
  "System.Private.Xml.wasm": "sha256-xn9o+VrKwag3i1zkMUfB04kvi5pFm/FrY1BBZOwULO0=",
43
43
  "System.Private.Xml.Linq.wasm": "sha256-K4auvJEzV4JmdQJ4zitUfOnd5EmsssQ6zwtaDsNyAYk=",
@@ -46,7 +46,7 @@
46
46
  "System.Security.Cryptography.wasm": "sha256-NHnnXxLxDKrA0fmrc1OJWB1VHgO1osqnDF8cKNr3xn0=",
47
47
  "System.Text.Encoding.Extensions.wasm": "sha256-r2L24FanehJy0xuBN4F0+VdLnXa3L1v7sJmv8g7v91s=",
48
48
  "System.Text.Encodings.Web.wasm": "sha256-DSO7E4rBmvQZL4tEVytmH9Y3l1olcV32cOxIlHl7blk=",
49
- "System.Text.Json.wasm": "sha256-nK0iNsrBVQhuqgR9OH8PTNQFHIe7Kc0QrBauOZZt85U=",
49
+ "System.Text.Json.wasm": "sha256-ej3zYfQ15OeU64xypccPDfu2OuP5OGUMx/RI6QLSW1E=",
50
50
  "System.Text.RegularExpressions.wasm": "sha256-Jfqjfhauz+YIZ2/VhD+3zSnxDygPy4W8b3djubLoD54=",
51
51
  "System.Threading.Thread.wasm": "sha256-X1aGeQYTrsi7H0pEZmyqNKJ893KtILavvynk07IGjRM=",
52
52
  "System.Xml.Linq.wasm": "sha256-nZUqq1LQ1iYER5V+ccZ1y3uuv7Hjj42vEGwKqg1UwdE=",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docxodus",
3
- "version": "3.2.0",
3
+ "version": "3.4.0",
4
4
  "description": "DOCX document comparison and HTML conversion in the browser using WebAssembly",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",