docxodus 3.7.0 → 3.8.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.
@@ -33,6 +33,7 @@ var DocxodusPagination = (() => {
33
33
  function ptToPx(pt) {
34
34
  return pt / 0.75;
35
35
  }
36
+ var DEFAULT_HEADER_FOOTER_HEIGHT = 36;
36
37
  function parseDimensions(section) {
37
38
  const pageWidth = parseFloat(section.dataset.pageWidth || "") || DEFAULT_PAGE_WIDTH;
38
39
  const pageHeight = parseFloat(section.dataset.pageHeight || "") || DEFAULT_PAGE_HEIGHT;
@@ -42,6 +43,8 @@ var DocxodusPagination = (() => {
42
43
  const marginRight = parseFloat(section.dataset.marginRight || "") || DEFAULT_MARGIN;
43
44
  const marginBottom = parseFloat(section.dataset.marginBottom || "") || DEFAULT_MARGIN;
44
45
  const marginLeft = parseFloat(section.dataset.marginLeft || "") || DEFAULT_MARGIN;
46
+ const headerHeight = parseFloat(section.dataset.headerHeight || "") || DEFAULT_HEADER_FOOTER_HEIGHT;
47
+ const footerHeight = parseFloat(section.dataset.footerHeight || "") || DEFAULT_HEADER_FOOTER_HEIGHT;
45
48
  return {
46
49
  pageWidth,
47
50
  pageHeight,
@@ -50,7 +53,9 @@ var DocxodusPagination = (() => {
50
53
  marginTop,
51
54
  marginRight,
52
55
  marginBottom,
53
- marginLeft
56
+ marginLeft,
57
+ headerHeight,
58
+ footerHeight
54
59
  };
55
60
  }
56
61
  var PaginationEngine = class {
@@ -74,6 +79,8 @@ var DocxodusPagination = (() => {
74
79
  this.cssPrefix = options.cssPrefix ?? "page-";
75
80
  this.showPageNumbers = options.showPageNumbers ?? true;
76
81
  this.pageGap = options.pageGap ?? 20;
82
+ this.hfRegistry = /* @__PURE__ */ new Map();
83
+ this.footnoteRegistry = /* @__PURE__ */ new Map();
77
84
  }
78
85
  /**
79
86
  * Runs the pagination process.
@@ -83,6 +90,8 @@ var DocxodusPagination = (() => {
83
90
  paginate() {
84
91
  const pages = [];
85
92
  let pageNumber = 1;
93
+ this.hfRegistry = this.parseHeaderFooterRegistry();
94
+ this.footnoteRegistry = this.parseFootnoteRegistry();
86
95
  const sections = this.stagingElement.querySelectorAll(
87
96
  "[data-section-index]"
88
97
  );
@@ -136,23 +145,185 @@ var DocxodusPagination = (() => {
136
145
  }
137
146
  return blocks;
138
147
  }
148
+ /**
149
+ * Parses the header/footer registry from the staging element.
150
+ */
151
+ parseHeaderFooterRegistry() {
152
+ const registry = /* @__PURE__ */ new Map();
153
+ const registryEl = this.stagingElement.querySelector("#pagination-hf-registry");
154
+ if (!registryEl) return registry;
155
+ const entries = Array.from(registryEl.querySelectorAll("[data-section][data-hf-type]"));
156
+ for (const entry of entries) {
157
+ const sectionIndex = parseInt(entry.dataset.section || "0", 10);
158
+ const hfType = entry.dataset.hfType;
159
+ if (!registry.has(sectionIndex)) {
160
+ registry.set(sectionIndex, {});
161
+ }
162
+ const section = registry.get(sectionIndex);
163
+ const content = entry.cloneNode(true);
164
+ switch (hfType) {
165
+ case "header-default":
166
+ section.headerDefault = content;
167
+ break;
168
+ case "header-first":
169
+ section.headerFirst = content;
170
+ break;
171
+ case "header-even":
172
+ section.headerEven = content;
173
+ break;
174
+ case "footer-default":
175
+ section.footerDefault = content;
176
+ break;
177
+ case "footer-first":
178
+ section.footerFirst = content;
179
+ break;
180
+ case "footer-even":
181
+ section.footerEven = content;
182
+ break;
183
+ }
184
+ }
185
+ return registry;
186
+ }
187
+ /**
188
+ * Parses the footnote registry from the staging element.
189
+ */
190
+ parseFootnoteRegistry() {
191
+ const registry = /* @__PURE__ */ new Map();
192
+ const registryEl = this.stagingElement.querySelector("#pagination-footnote-registry");
193
+ if (!registryEl) return registry;
194
+ const entries = Array.from(registryEl.querySelectorAll("[data-footnote-id]"));
195
+ for (const entry of entries) {
196
+ const footnoteId = entry.dataset.footnoteId;
197
+ if (footnoteId) {
198
+ registry.set(footnoteId, entry.cloneNode(true));
199
+ }
200
+ }
201
+ return registry;
202
+ }
203
+ /**
204
+ * Extracts footnote reference IDs from an element.
205
+ */
206
+ extractFootnoteRefs(element) {
207
+ const refs = element.querySelectorAll("[data-footnote-id]");
208
+ const ids = [];
209
+ for (const ref of Array.from(refs)) {
210
+ const id = ref.dataset.footnoteId;
211
+ if (id && !ids.includes(id)) {
212
+ ids.push(id);
213
+ }
214
+ }
215
+ return ids;
216
+ }
217
+ /**
218
+ * Measures the height of footnotes for given IDs (in points).
219
+ * Creates a temporary container to measure the footnotes.
220
+ */
221
+ measureFootnotesHeight(footnoteIds, contentWidth) {
222
+ if (footnoteIds.length === 0 || this.footnoteRegistry.size === 0) {
223
+ return 0;
224
+ }
225
+ const measureContainer = document.createElement("div");
226
+ measureContainer.style.position = "absolute";
227
+ measureContainer.style.visibility = "hidden";
228
+ measureContainer.style.width = `${contentWidth}pt`;
229
+ measureContainer.style.left = "-9999px";
230
+ const hr = document.createElement("hr");
231
+ measureContainer.appendChild(hr);
232
+ for (const id of footnoteIds) {
233
+ const footnote = this.footnoteRegistry.get(id);
234
+ if (footnote) {
235
+ measureContainer.appendChild(footnote.cloneNode(true));
236
+ }
237
+ }
238
+ this.stagingElement.appendChild(measureContainer);
239
+ const rect = measureContainer.getBoundingClientRect();
240
+ const heightPt = pxToPt(rect.height);
241
+ this.stagingElement.removeChild(measureContainer);
242
+ return heightPt;
243
+ }
244
+ /**
245
+ * Adds footnotes to a page container.
246
+ */
247
+ addPageFootnotes(pageBox, footnoteIds, dims) {
248
+ if (footnoteIds.length === 0 || this.footnoteRegistry.size === 0) {
249
+ return;
250
+ }
251
+ const footnotesDiv = document.createElement("div");
252
+ footnotesDiv.className = `${this.cssPrefix}footnotes`;
253
+ footnotesDiv.style.position = "absolute";
254
+ footnotesDiv.style.bottom = `${dims.marginBottom}pt`;
255
+ footnotesDiv.style.left = `${dims.marginLeft}pt`;
256
+ footnotesDiv.style.width = `${dims.contentWidth}pt`;
257
+ footnotesDiv.style.boxSizing = "border-box";
258
+ const hr = document.createElement("hr");
259
+ footnotesDiv.appendChild(hr);
260
+ for (const id of footnoteIds) {
261
+ const footnote = this.footnoteRegistry.get(id);
262
+ if (footnote) {
263
+ footnotesDiv.appendChild(footnote.cloneNode(true));
264
+ }
265
+ }
266
+ pageBox.appendChild(footnotesDiv);
267
+ }
268
+ /**
269
+ * Selects the appropriate header for a page based on section, page position, and page number.
270
+ */
271
+ selectHeader(sectionIndex, pageInSection, globalPageNumber) {
272
+ const sectionHf = this.hfRegistry.get(sectionIndex);
273
+ if (!sectionHf) return void 0;
274
+ if (pageInSection === 1 && sectionHf.headerFirst) {
275
+ return sectionHf.headerFirst;
276
+ }
277
+ if (globalPageNumber % 2 === 0 && sectionHf.headerEven) {
278
+ return sectionHf.headerEven;
279
+ }
280
+ return sectionHf.headerDefault;
281
+ }
282
+ /**
283
+ * Selects the appropriate footer for a page based on section, page position, and page number.
284
+ */
285
+ selectFooter(sectionIndex, pageInSection, globalPageNumber) {
286
+ const sectionHf = this.hfRegistry.get(sectionIndex);
287
+ if (!sectionHf) return void 0;
288
+ if (pageInSection === 1 && sectionHf.footerFirst) {
289
+ return sectionHf.footerFirst;
290
+ }
291
+ if (globalPageNumber % 2 === 0 && sectionHf.footerEven) {
292
+ return sectionHf.footerEven;
293
+ }
294
+ return sectionHf.footerDefault;
295
+ }
139
296
  /**
140
297
  * Flows measured blocks into page containers.
298
+ * Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
141
299
  */
142
300
  flowToPages(blocks, dims, startPageNumber, sectionIndex) {
143
301
  const pages = [];
144
302
  let currentContent = [];
145
303
  let remainingHeight = dims.contentHeight;
146
304
  let pageNumber = startPageNumber;
305
+ let pageInSection = 1;
147
306
  let prevMarginBottomPt = 0;
307
+ let currentFootnoteIds = [];
308
+ let currentFootnoteHeight = 0;
148
309
  const finishPage = () => {
149
310
  if (currentContent.length === 0) return;
150
- const page = this.createPage(dims, pageNumber, sectionIndex, currentContent);
311
+ const page = this.createPage(
312
+ dims,
313
+ pageNumber,
314
+ sectionIndex,
315
+ currentContent,
316
+ pageInSection,
317
+ currentFootnoteIds
318
+ );
151
319
  pages.push(page);
152
320
  pageNumber++;
321
+ pageInSection++;
153
322
  currentContent = [];
154
323
  remainingHeight = dims.contentHeight;
155
324
  prevMarginBottomPt = 0;
325
+ currentFootnoteIds = [];
326
+ currentFootnoteHeight = 0;
156
327
  };
157
328
  for (let i = 0; i < blocks.length; i++) {
158
329
  const block = blocks[i];
@@ -164,32 +335,49 @@ var DocxodusPagination = (() => {
164
335
  if (block.pageBreakBefore && currentContent.length > 0) {
165
336
  finishPage();
166
337
  }
338
+ const blockFootnoteIds = this.extractFootnoteRefs(block.element);
339
+ const newFootnoteIds = blockFootnoteIds.filter((id) => !currentFootnoteIds.includes(id));
340
+ let additionalFootnoteHeight = 0;
341
+ if (newFootnoteIds.length > 0 && this.footnoteRegistry.size > 0) {
342
+ const combinedFootnoteIds = [...currentFootnoteIds, ...newFootnoteIds];
343
+ const totalFootnoteHeight = this.measureFootnotesHeight(combinedFootnoteIds, dims.contentWidth);
344
+ additionalFootnoteHeight = totalFootnoteHeight - currentFootnoteHeight;
345
+ }
167
346
  const isFirstOnPage = currentContent.length === 0;
168
347
  let effectiveMarginTop = block.marginTopPt;
169
348
  if (!isFirstOnPage) {
170
349
  effectiveMarginTop = Math.max(block.marginTopPt, prevMarginBottomPt) - prevMarginBottomPt;
171
350
  }
172
- const blockSpace = effectiveMarginTop + block.heightPt + block.marginBottomPt;
351
+ const blockSpace = effectiveMarginTop + block.heightPt + block.marginBottomPt + additionalFootnoteHeight;
173
352
  let neededHeight = blockSpace;
174
353
  if (block.keepWithNext && nextBlock && !nextBlock.isPageBreak) {
175
354
  const collapsedMargin = Math.max(block.marginBottomPt, nextBlock.marginTopPt);
176
- neededHeight = effectiveMarginTop + block.heightPt + collapsedMargin + nextBlock.heightPt + nextBlock.marginBottomPt;
355
+ neededHeight = effectiveMarginTop + block.heightPt + collapsedMargin + nextBlock.heightPt + nextBlock.marginBottomPt + additionalFootnoteHeight;
177
356
  }
178
- if (blockSpace <= remainingHeight) {
357
+ const effectiveRemainingHeight = remainingHeight - currentFootnoteHeight;
358
+ if (blockSpace <= effectiveRemainingHeight) {
179
359
  currentContent.push(block.element.cloneNode(true));
180
- remainingHeight -= blockSpace;
360
+ remainingHeight -= effectiveMarginTop + block.heightPt + block.marginBottomPt;
181
361
  prevMarginBottomPt = block.marginBottomPt;
182
- } else if (block.heightPt + block.marginTopPt + block.marginBottomPt <= dims.contentHeight) {
362
+ if (newFootnoteIds.length > 0) {
363
+ currentFootnoteIds.push(...newFootnoteIds);
364
+ currentFootnoteHeight += additionalFootnoteHeight;
365
+ }
366
+ } else if (block.heightPt + block.marginTopPt + block.marginBottomPt + additionalFootnoteHeight <= dims.contentHeight) {
183
367
  finishPage();
368
+ const newPageFootnoteHeight = blockFootnoteIds.length > 0 ? this.measureFootnotesHeight(blockFootnoteIds, dims.contentWidth) : 0;
184
369
  const newPageSpace = block.marginTopPt + block.heightPt + block.marginBottomPt;
185
370
  currentContent.push(block.element.cloneNode(true));
186
371
  remainingHeight = dims.contentHeight - newPageSpace;
187
372
  prevMarginBottomPt = block.marginBottomPt;
373
+ currentFootnoteIds = [...blockFootnoteIds];
374
+ currentFootnoteHeight = newPageFootnoteHeight;
188
375
  } else {
189
376
  if (currentContent.length > 0) {
190
377
  finishPage();
191
378
  }
192
379
  currentContent.push(block.element.cloneNode(true));
380
+ currentFootnoteIds = [...blockFootnoteIds];
193
381
  finishPage();
194
382
  }
195
383
  }
@@ -199,7 +387,7 @@ var DocxodusPagination = (() => {
199
387
  /**
200
388
  * Creates a page container element.
201
389
  */
202
- createPage(dims, pageNumber, sectionIndex, content) {
390
+ createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = []) {
203
391
  const pageBox = document.createElement("div");
204
392
  pageBox.className = `${this.cssPrefix}box`;
205
393
  pageBox.style.width = `${dims.pageWidth}pt`;
@@ -221,6 +409,26 @@ var DocxodusPagination = (() => {
221
409
  pageBox.style.contain = "layout paint";
222
410
  pageBox.dataset.pageNumber = String(pageNumber);
223
411
  pageBox.dataset.sectionIndex = String(sectionIndex);
412
+ const headerSource = this.selectHeader(sectionIndex, pageInSection, pageNumber);
413
+ if (headerSource) {
414
+ const headerDiv = document.createElement("div");
415
+ headerDiv.className = `${this.cssPrefix}header`;
416
+ headerDiv.style.position = "absolute";
417
+ headerDiv.style.top = "0";
418
+ headerDiv.style.left = `${dims.marginLeft}pt`;
419
+ headerDiv.style.width = `${dims.contentWidth}pt`;
420
+ headerDiv.style.height = `${dims.marginTop}pt`;
421
+ headerDiv.style.overflow = "hidden";
422
+ headerDiv.style.boxSizing = "border-box";
423
+ headerDiv.style.display = "flex";
424
+ headerDiv.style.flexDirection = "column";
425
+ headerDiv.style.justifyContent = "flex-end";
426
+ headerDiv.style.paddingBottom = "4pt";
427
+ for (const child of Array.from(headerSource.childNodes)) {
428
+ headerDiv.appendChild(child.cloneNode(true));
429
+ }
430
+ pageBox.appendChild(headerDiv);
431
+ }
224
432
  const contentArea = document.createElement("div");
225
433
  contentArea.className = `${this.cssPrefix}content`;
226
434
  contentArea.style.position = "absolute";
@@ -233,6 +441,29 @@ var DocxodusPagination = (() => {
233
441
  contentArea.appendChild(el);
234
442
  }
235
443
  pageBox.appendChild(contentArea);
444
+ if (footnoteIds.length > 0) {
445
+ this.addPageFootnotes(pageBox, footnoteIds, dims);
446
+ }
447
+ const footerSource = this.selectFooter(sectionIndex, pageInSection, pageNumber);
448
+ if (footerSource) {
449
+ const footerDiv = document.createElement("div");
450
+ footerDiv.className = `${this.cssPrefix}footer`;
451
+ footerDiv.style.position = "absolute";
452
+ footerDiv.style.bottom = "0";
453
+ footerDiv.style.left = `${dims.marginLeft}pt`;
454
+ footerDiv.style.width = `${dims.contentWidth}pt`;
455
+ footerDiv.style.height = `${dims.marginBottom}pt`;
456
+ footerDiv.style.overflow = "hidden";
457
+ footerDiv.style.boxSizing = "border-box";
458
+ footerDiv.style.display = "flex";
459
+ footerDiv.style.flexDirection = "column";
460
+ footerDiv.style.justifyContent = "flex-start";
461
+ footerDiv.style.paddingTop = "4pt";
462
+ for (const child of Array.from(footerSource.childNodes)) {
463
+ footerDiv.appendChild(child.cloneNode(true));
464
+ }
465
+ pageBox.appendChild(footerDiv);
466
+ }
236
467
  if (this.showPageNumbers) {
237
468
  const pageNum = document.createElement("div");
238
469
  pageNum.className = `${this.cssPrefix}number`;
@@ -24,7 +24,32 @@ export interface PageDimensions {
24
24
  marginBottom: number;
25
25
  /** Left margin in points */
26
26
  marginLeft: number;
27
+ /** Header distance from top of page in points */
28
+ headerHeight: number;
29
+ /** Footer distance from bottom of page in points */
30
+ footerHeight: number;
27
31
  }
32
+ /**
33
+ * Headers and footers for a specific section.
34
+ */
35
+ export interface SectionHeaderFooter {
36
+ /** Default header (used for odd pages or all pages) */
37
+ headerDefault?: HTMLElement;
38
+ /** First page header */
39
+ headerFirst?: HTMLElement;
40
+ /** Even page header */
41
+ headerEven?: HTMLElement;
42
+ /** Default footer (used for odd pages or all pages) */
43
+ footerDefault?: HTMLElement;
44
+ /** First page footer */
45
+ footerFirst?: HTMLElement;
46
+ /** Even page footer */
47
+ footerEven?: HTMLElement;
48
+ }
49
+ /**
50
+ * Registry of headers and footers by section index.
51
+ */
52
+ export type HeaderFooterRegistry = Map<number, SectionHeaderFooter>;
28
53
  /**
29
54
  * A measured content block with metadata for pagination decisions.
30
55
  */
@@ -85,6 +110,10 @@ export interface PaginationOptions {
85
110
  * Pagination engine that converts HTML with pagination metadata
86
111
  * into a paginated view with fixed-size page containers.
87
112
  */
113
+ /**
114
+ * Registry of footnotes by ID for per-page distribution.
115
+ */
116
+ export type FootnoteRegistry = Map<string, HTMLElement>;
88
117
  export declare class PaginationEngine {
89
118
  private stagingElement;
90
119
  private containerElement;
@@ -92,6 +121,8 @@ export declare class PaginationEngine {
92
121
  private cssPrefix;
93
122
  private showPageNumbers;
94
123
  private pageGap;
124
+ private hfRegistry;
125
+ private footnoteRegistry;
95
126
  /**
96
127
  * Creates a new pagination engine.
97
128
  *
@@ -110,8 +141,38 @@ export declare class PaginationEngine {
110
141
  * Measures all content blocks in a section.
111
142
  */
112
143
  private measureBlocks;
144
+ /**
145
+ * Parses the header/footer registry from the staging element.
146
+ */
147
+ private parseHeaderFooterRegistry;
148
+ /**
149
+ * Parses the footnote registry from the staging element.
150
+ */
151
+ private parseFootnoteRegistry;
152
+ /**
153
+ * Extracts footnote reference IDs from an element.
154
+ */
155
+ private extractFootnoteRefs;
156
+ /**
157
+ * Measures the height of footnotes for given IDs (in points).
158
+ * Creates a temporary container to measure the footnotes.
159
+ */
160
+ private measureFootnotesHeight;
161
+ /**
162
+ * Adds footnotes to a page container.
163
+ */
164
+ private addPageFootnotes;
165
+ /**
166
+ * Selects the appropriate header for a page based on section, page position, and page number.
167
+ */
168
+ private selectHeader;
169
+ /**
170
+ * Selects the appropriate footer for a page based on section, page position, and page number.
171
+ */
172
+ private selectFooter;
113
173
  /**
114
174
  * Flows measured blocks into page containers.
175
+ * Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
115
176
  */
116
177
  private flowToPages;
117
178
  /**
@@ -1 +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,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,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;IA4CrB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4FnB;;OAEG;IACH,OAAO,CAAC,UAAU;CA0EnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,WAAW,GAAG,MAAM,EAC/B,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAgClB"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ function pxToPt(px) {
20
20
  function ptToPx(pt) {
21
21
  return pt / 0.75;
22
22
  }
23
+ // Default header/footer distance (0.5 inch)
24
+ const DEFAULT_HEADER_FOOTER_HEIGHT = 36;
23
25
  /**
24
26
  * Parses page dimensions from a section element's data attributes.
25
27
  */
@@ -32,6 +34,8 @@ function parseDimensions(section) {
32
34
  const marginRight = parseFloat(section.dataset.marginRight || "") || DEFAULT_MARGIN;
33
35
  const marginBottom = parseFloat(section.dataset.marginBottom || "") || DEFAULT_MARGIN;
34
36
  const marginLeft = parseFloat(section.dataset.marginLeft || "") || DEFAULT_MARGIN;
37
+ const headerHeight = parseFloat(section.dataset.headerHeight || "") || DEFAULT_HEADER_FOOTER_HEIGHT;
38
+ const footerHeight = parseFloat(section.dataset.footerHeight || "") || DEFAULT_HEADER_FOOTER_HEIGHT;
35
39
  return {
36
40
  pageWidth,
37
41
  pageHeight,
@@ -41,12 +45,10 @@ function parseDimensions(section) {
41
45
  marginRight,
42
46
  marginBottom,
43
47
  marginLeft,
48
+ headerHeight,
49
+ footerHeight,
44
50
  };
45
51
  }
46
- /**
47
- * Pagination engine that converts HTML with pagination metadata
48
- * into a paginated view with fixed-size page containers.
49
- */
50
52
  export class PaginationEngine {
51
53
  /**
52
54
  * Creates a new pagination engine.
@@ -74,6 +76,8 @@ export class PaginationEngine {
74
76
  this.cssPrefix = options.cssPrefix ?? "page-";
75
77
  this.showPageNumbers = options.showPageNumbers ?? true;
76
78
  this.pageGap = options.pageGap ?? 20;
79
+ this.hfRegistry = new Map();
80
+ this.footnoteRegistry = new Map();
77
81
  }
78
82
  /**
79
83
  * Runs the pagination process.
@@ -83,6 +87,10 @@ export class PaginationEngine {
83
87
  paginate() {
84
88
  const pages = [];
85
89
  let pageNumber = 1;
90
+ // Parse the header/footer registry if present
91
+ this.hfRegistry = this.parseHeaderFooterRegistry();
92
+ // Parse the footnote registry if present
93
+ this.footnoteRegistry = this.parseFootnoteRegistry();
86
94
  // Find all section containers
87
95
  const sections = this.stagingElement.querySelectorAll("[data-section-index]");
88
96
  // If no sections found, treat the entire staging content as one section
@@ -147,25 +155,203 @@ export class PaginationEngine {
147
155
  }
148
156
  return blocks;
149
157
  }
158
+ /**
159
+ * Parses the header/footer registry from the staging element.
160
+ */
161
+ parseHeaderFooterRegistry() {
162
+ const registry = new Map();
163
+ const registryEl = this.stagingElement.querySelector("#pagination-hf-registry");
164
+ if (!registryEl)
165
+ return registry;
166
+ const entries = Array.from(registryEl.querySelectorAll("[data-section][data-hf-type]"));
167
+ for (const entry of entries) {
168
+ const sectionIndex = parseInt(entry.dataset.section || "0", 10);
169
+ const hfType = entry.dataset.hfType;
170
+ if (!registry.has(sectionIndex)) {
171
+ registry.set(sectionIndex, {});
172
+ }
173
+ const section = registry.get(sectionIndex);
174
+ // Clone the first child element (the actual header/footer content)
175
+ const content = entry.cloneNode(true);
176
+ switch (hfType) {
177
+ case "header-default":
178
+ section.headerDefault = content;
179
+ break;
180
+ case "header-first":
181
+ section.headerFirst = content;
182
+ break;
183
+ case "header-even":
184
+ section.headerEven = content;
185
+ break;
186
+ case "footer-default":
187
+ section.footerDefault = content;
188
+ break;
189
+ case "footer-first":
190
+ section.footerFirst = content;
191
+ break;
192
+ case "footer-even":
193
+ section.footerEven = content;
194
+ break;
195
+ }
196
+ }
197
+ return registry;
198
+ }
199
+ /**
200
+ * Parses the footnote registry from the staging element.
201
+ */
202
+ parseFootnoteRegistry() {
203
+ const registry = new Map();
204
+ const registryEl = this.stagingElement.querySelector("#pagination-footnote-registry");
205
+ if (!registryEl)
206
+ return registry;
207
+ const entries = Array.from(registryEl.querySelectorAll("[data-footnote-id]"));
208
+ for (const entry of entries) {
209
+ const footnoteId = entry.dataset.footnoteId;
210
+ if (footnoteId) {
211
+ // Clone the footnote element for later use
212
+ registry.set(footnoteId, entry.cloneNode(true));
213
+ }
214
+ }
215
+ return registry;
216
+ }
217
+ /**
218
+ * Extracts footnote reference IDs from an element.
219
+ */
220
+ extractFootnoteRefs(element) {
221
+ const refs = element.querySelectorAll("[data-footnote-id]");
222
+ const ids = [];
223
+ for (const ref of Array.from(refs)) {
224
+ const id = ref.dataset.footnoteId;
225
+ if (id && !ids.includes(id)) {
226
+ ids.push(id);
227
+ }
228
+ }
229
+ return ids;
230
+ }
231
+ /**
232
+ * Measures the height of footnotes for given IDs (in points).
233
+ * Creates a temporary container to measure the footnotes.
234
+ */
235
+ measureFootnotesHeight(footnoteIds, contentWidth) {
236
+ if (footnoteIds.length === 0 || this.footnoteRegistry.size === 0) {
237
+ return 0;
238
+ }
239
+ // Create a temporary measurement container
240
+ const measureContainer = document.createElement("div");
241
+ measureContainer.style.position = "absolute";
242
+ measureContainer.style.visibility = "hidden";
243
+ measureContainer.style.width = `${contentWidth}pt`;
244
+ measureContainer.style.left = "-9999px";
245
+ // Add separator line (same as will be rendered)
246
+ const hr = document.createElement("hr");
247
+ measureContainer.appendChild(hr);
248
+ // Add footnotes
249
+ for (const id of footnoteIds) {
250
+ const footnote = this.footnoteRegistry.get(id);
251
+ if (footnote) {
252
+ measureContainer.appendChild(footnote.cloneNode(true));
253
+ }
254
+ }
255
+ // Append to staging for measurement
256
+ this.stagingElement.appendChild(measureContainer);
257
+ // Measure
258
+ const rect = measureContainer.getBoundingClientRect();
259
+ const heightPt = pxToPt(rect.height);
260
+ // Clean up
261
+ this.stagingElement.removeChild(measureContainer);
262
+ return heightPt;
263
+ }
264
+ /**
265
+ * Adds footnotes to a page container.
266
+ */
267
+ addPageFootnotes(pageBox, footnoteIds, dims) {
268
+ if (footnoteIds.length === 0 || this.footnoteRegistry.size === 0) {
269
+ return;
270
+ }
271
+ const footnotesDiv = document.createElement("div");
272
+ footnotesDiv.className = `${this.cssPrefix}footnotes`;
273
+ footnotesDiv.style.position = "absolute";
274
+ footnotesDiv.style.bottom = `${dims.marginBottom}pt`; // Above footer area
275
+ footnotesDiv.style.left = `${dims.marginLeft}pt`;
276
+ footnotesDiv.style.width = `${dims.contentWidth}pt`;
277
+ footnotesDiv.style.boxSizing = "border-box";
278
+ // Add separator line
279
+ const hr = document.createElement("hr");
280
+ footnotesDiv.appendChild(hr);
281
+ // Clone footnotes in order of appearance
282
+ for (const id of footnoteIds) {
283
+ const footnote = this.footnoteRegistry.get(id);
284
+ if (footnote) {
285
+ footnotesDiv.appendChild(footnote.cloneNode(true));
286
+ }
287
+ }
288
+ pageBox.appendChild(footnotesDiv);
289
+ }
290
+ /**
291
+ * Selects the appropriate header for a page based on section, page position, and page number.
292
+ */
293
+ selectHeader(sectionIndex, pageInSection, globalPageNumber) {
294
+ const sectionHf = this.hfRegistry.get(sectionIndex);
295
+ if (!sectionHf)
296
+ return undefined;
297
+ // First page of section uses first header if available
298
+ if (pageInSection === 1 && sectionHf.headerFirst) {
299
+ return sectionHf.headerFirst;
300
+ }
301
+ // Even pages use even header if available
302
+ if (globalPageNumber % 2 === 0 && sectionHf.headerEven) {
303
+ return sectionHf.headerEven;
304
+ }
305
+ // Default (odd) pages
306
+ return sectionHf.headerDefault;
307
+ }
308
+ /**
309
+ * Selects the appropriate footer for a page based on section, page position, and page number.
310
+ */
311
+ selectFooter(sectionIndex, pageInSection, globalPageNumber) {
312
+ const sectionHf = this.hfRegistry.get(sectionIndex);
313
+ if (!sectionHf)
314
+ return undefined;
315
+ // First page of section uses first footer if available
316
+ if (pageInSection === 1 && sectionHf.footerFirst) {
317
+ return sectionHf.footerFirst;
318
+ }
319
+ // Even pages use even footer if available
320
+ if (globalPageNumber % 2 === 0 && sectionHf.footerEven) {
321
+ return sectionHf.footerEven;
322
+ }
323
+ // Default (odd) pages
324
+ return sectionHf.footerDefault;
325
+ }
150
326
  /**
151
327
  * Flows measured blocks into page containers.
328
+ * Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
152
329
  */
153
330
  flowToPages(blocks, dims, startPageNumber, sectionIndex) {
154
331
  const pages = [];
155
332
  let currentContent = [];
156
333
  let remainingHeight = dims.contentHeight;
157
334
  let pageNumber = startPageNumber;
335
+ // Track page number within this section for first-page header/footer selection
336
+ let pageInSection = 1;
158
337
  // Track the previous block's bottom margin for margin collapsing
159
338
  let prevMarginBottomPt = 0;
339
+ // Track footnote IDs for the current page
340
+ let currentFootnoteIds = [];
341
+ // Track height consumed by footnotes on current page
342
+ let currentFootnoteHeight = 0;
160
343
  const finishPage = () => {
161
344
  if (currentContent.length === 0)
162
345
  return;
163
- const page = this.createPage(dims, pageNumber, sectionIndex, currentContent);
346
+ const page = this.createPage(dims, pageNumber, sectionIndex, currentContent, pageInSection, currentFootnoteIds);
164
347
  pages.push(page);
165
348
  pageNumber++;
349
+ pageInSection++;
166
350
  currentContent = [];
167
351
  remainingHeight = dims.contentHeight;
168
352
  prevMarginBottomPt = 0; // Reset margin tracking for new page
353
+ currentFootnoteIds = []; // Reset footnotes for new page
354
+ currentFootnoteHeight = 0;
169
355
  };
170
356
  for (let i = 0; i < blocks.length; i++) {
171
357
  const block = blocks[i];
@@ -179,6 +365,18 @@ export class PaginationEngine {
179
365
  if (block.pageBreakBefore && currentContent.length > 0) {
180
366
  finishPage();
181
367
  }
368
+ // Extract footnote references from this block
369
+ const blockFootnoteIds = this.extractFootnoteRefs(block.element);
370
+ // Only count new footnotes (not already on this page)
371
+ const newFootnoteIds = blockFootnoteIds.filter(id => !currentFootnoteIds.includes(id));
372
+ // Calculate additional footnote height if this block is added
373
+ let additionalFootnoteHeight = 0;
374
+ if (newFootnoteIds.length > 0 && this.footnoteRegistry.size > 0) {
375
+ // Measure the combined height of all footnotes that would be on this page
376
+ const combinedFootnoteIds = [...currentFootnoteIds, ...newFootnoteIds];
377
+ const totalFootnoteHeight = this.measureFootnotesHeight(combinedFootnoteIds, dims.contentWidth);
378
+ additionalFootnoteHeight = totalFootnoteHeight - currentFootnoteHeight;
379
+ }
182
380
  // Calculate the effective height this block will consume
183
381
  // Account for margin collapsing: the gap between blocks is max(prevBottom, currTop), not sum
184
382
  const isFirstOnPage = currentContent.length === 0;
@@ -187,32 +385,44 @@ export class PaginationEngine {
187
385
  // Margin collapsing: use the larger of the two adjacent margins
188
386
  effectiveMarginTop = Math.max(block.marginTopPt, prevMarginBottomPt) - prevMarginBottomPt;
189
387
  }
190
- // Total height = top margin gap + content + bottom margin
191
- // But we only count bottom margin if it's the last block (otherwise it collapses with next)
192
- const blockSpace = effectiveMarginTop + block.heightPt + block.marginBottomPt;
388
+ // Total height = top margin gap + content + bottom margin + footnote space
389
+ const blockSpace = effectiveMarginTop + block.heightPt + block.marginBottomPt + additionalFootnoteHeight;
193
390
  // Calculate needed height (including keepWithNext)
194
391
  let neededHeight = blockSpace;
195
392
  if (block.keepWithNext && nextBlock && !nextBlock.isPageBreak) {
196
393
  // For keepWithNext, include the next block with collapsed margins
197
394
  const collapsedMargin = Math.max(block.marginBottomPt, nextBlock.marginTopPt);
198
395
  neededHeight = effectiveMarginTop + block.heightPt + collapsedMargin +
199
- nextBlock.heightPt + nextBlock.marginBottomPt;
396
+ nextBlock.heightPt + nextBlock.marginBottomPt + additionalFootnoteHeight;
200
397
  }
201
- // Check if block fits on current page
202
- if (blockSpace <= remainingHeight) {
398
+ // Effective remaining height (content area minus footnotes already on page)
399
+ const effectiveRemainingHeight = remainingHeight - currentFootnoteHeight;
400
+ // Check if block fits on current page (including its footnotes)
401
+ if (blockSpace <= effectiveRemainingHeight) {
203
402
  // Block fits
204
403
  currentContent.push(block.element.cloneNode(true));
205
- remainingHeight -= blockSpace;
404
+ remainingHeight -= (effectiveMarginTop + block.heightPt + block.marginBottomPt);
206
405
  prevMarginBottomPt = block.marginBottomPt;
406
+ // Add new footnotes to current page
407
+ if (newFootnoteIds.length > 0) {
408
+ currentFootnoteIds.push(...newFootnoteIds);
409
+ currentFootnoteHeight += additionalFootnoteHeight;
410
+ }
207
411
  }
208
- else if (block.heightPt + block.marginTopPt + block.marginBottomPt <= dims.contentHeight) {
412
+ else if (block.heightPt + block.marginTopPt + block.marginBottomPt + additionalFootnoteHeight <= dims.contentHeight) {
209
413
  // Block doesn't fit but will fit on a new page
210
414
  finishPage();
211
- // On new page, include full top margin
415
+ // On new page, recalculate footnote height for just this block's footnotes
416
+ const newPageFootnoteHeight = blockFootnoteIds.length > 0
417
+ ? this.measureFootnotesHeight(blockFootnoteIds, dims.contentWidth)
418
+ : 0;
419
+ // Include full top margin
212
420
  const newPageSpace = block.marginTopPt + block.heightPt + block.marginBottomPt;
213
421
  currentContent.push(block.element.cloneNode(true));
214
422
  remainingHeight = dims.contentHeight - newPageSpace;
215
423
  prevMarginBottomPt = block.marginBottomPt;
424
+ currentFootnoteIds = [...blockFootnoteIds];
425
+ currentFootnoteHeight = newPageFootnoteHeight;
216
426
  }
217
427
  else {
218
428
  // Block is taller than a page - add it and let it overflow
@@ -221,6 +431,7 @@ export class PaginationEngine {
221
431
  finishPage();
222
432
  }
223
433
  currentContent.push(block.element.cloneNode(true));
434
+ currentFootnoteIds = [...blockFootnoteIds];
224
435
  finishPage();
225
436
  }
226
437
  }
@@ -231,7 +442,7 @@ export class PaginationEngine {
231
442
  /**
232
443
  * Creates a page container element.
233
444
  */
234
- createPage(dims, pageNumber, sectionIndex, content) {
445
+ createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = []) {
235
446
  // Create page box at full size, then scale the entire box
236
447
  // This ensures proper clipping and consistent scaling of all elements
237
448
  const pageBox = document.createElement("div");
@@ -264,6 +475,28 @@ export class PaginationEngine {
264
475
  pageBox.style.contain = "layout paint";
265
476
  pageBox.dataset.pageNumber = String(pageNumber);
266
477
  pageBox.dataset.sectionIndex = String(sectionIndex);
478
+ // Add header if available for this section/page
479
+ const headerSource = this.selectHeader(sectionIndex, pageInSection, pageNumber);
480
+ if (headerSource) {
481
+ const headerDiv = document.createElement("div");
482
+ headerDiv.className = `${this.cssPrefix}header`;
483
+ headerDiv.style.position = "absolute";
484
+ headerDiv.style.top = "0"; // Start at page top
485
+ headerDiv.style.left = `${dims.marginLeft}pt`;
486
+ headerDiv.style.width = `${dims.contentWidth}pt`;
487
+ headerDiv.style.height = `${dims.marginTop}pt`; // Constrain to top margin area
488
+ headerDiv.style.overflow = "hidden";
489
+ headerDiv.style.boxSizing = "border-box";
490
+ headerDiv.style.display = "flex";
491
+ headerDiv.style.flexDirection = "column";
492
+ headerDiv.style.justifyContent = "flex-end"; // Align content to bottom of header area
493
+ headerDiv.style.paddingBottom = "4pt"; // Small gap before content area
494
+ // Clone the header content (skip the wrapper div's data attributes)
495
+ for (const child of Array.from(headerSource.childNodes)) {
496
+ headerDiv.appendChild(child.cloneNode(true));
497
+ }
498
+ pageBox.appendChild(headerDiv);
499
+ }
267
500
  // Create content area at full page margins and dimensions
268
501
  const contentArea = document.createElement("div");
269
502
  contentArea.className = `${this.cssPrefix}content`;
@@ -278,7 +511,33 @@ export class PaginationEngine {
278
511
  contentArea.appendChild(el);
279
512
  }
280
513
  pageBox.appendChild(contentArea);
281
- // Add page number
514
+ // Add footnotes if any references appear on this page
515
+ if (footnoteIds.length > 0) {
516
+ this.addPageFootnotes(pageBox, footnoteIds, dims);
517
+ }
518
+ // Add footer if available for this section/page
519
+ const footerSource = this.selectFooter(sectionIndex, pageInSection, pageNumber);
520
+ if (footerSource) {
521
+ const footerDiv = document.createElement("div");
522
+ footerDiv.className = `${this.cssPrefix}footer`;
523
+ footerDiv.style.position = "absolute";
524
+ footerDiv.style.bottom = "0"; // Start at page bottom
525
+ footerDiv.style.left = `${dims.marginLeft}pt`;
526
+ footerDiv.style.width = `${dims.contentWidth}pt`;
527
+ footerDiv.style.height = `${dims.marginBottom}pt`; // Constrain to bottom margin area
528
+ footerDiv.style.overflow = "hidden";
529
+ footerDiv.style.boxSizing = "border-box";
530
+ footerDiv.style.display = "flex";
531
+ footerDiv.style.flexDirection = "column";
532
+ footerDiv.style.justifyContent = "flex-start"; // Align content to top of footer area
533
+ footerDiv.style.paddingTop = "4pt"; // Small gap after content area
534
+ // Clone the footer content (skip the wrapper div's data attributes)
535
+ for (const child of Array.from(footerSource.childNodes)) {
536
+ footerDiv.appendChild(child.cloneNode(true));
537
+ }
538
+ pageBox.appendChild(footerDiv);
539
+ }
540
+ // Add page number (will be hidden by CSS if document has footer)
282
541
  if (this.showPageNumbers) {
283
542
  const pageNum = document.createElement("div");
284
543
  pageNum.className = `${this.cssPrefix}number`;
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "DocxodusWasm.dll",
3
3
  "resources": {
4
- "hash": "sha256-AgKfaTsguWIMn5s96Bnw0bMfbLbNwPh/FpqDhGfEPKc=",
4
+ "hash": "sha256-P32xSIvA3tYByp2MpFMtks8DzXj+JZkm9OJj8VGEzOE=",
5
5
  "jsModuleNative": {
6
6
  "dotnet.native.js": "sha256-YLwjs9CPwrZG7YKULjmqr5bYsmhxwcWJOhQNM4bG6Gc="
7
7
  },
@@ -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-XeP9PKY9R9dfDrRkvMH4LkoboOhcwXzROJyHVeEYmcc=",
21
- "DocxodusWasm.wasm": "sha256-gwBPl7Y1EIUIFvU6V7YaDhiDYvPFhiJxbvm8tzzx6Jg=",
20
+ "Docxodus.wasm": "sha256-dz1pKwjvSqtjV6Ol4pB7LMny6xgHPUw3U/ruXt0ayAw=",
21
+ "DocxodusWasm.wasm": "sha256-iwUdChc7ew6Xv4XER/NAlFUHkIqyIeuhWB0LKgAn3zM=",
22
22
  "SkiaSharp.wasm": "sha256-U6RbqUVBn8Vx8qpghJC5+r/DC1NSBY+EIRDxP8o6dsk=",
23
23
  "System.Collections.Concurrent.wasm": "sha256-xXJbJWNeQ2DSYvAGUoUHjF9y4Iajv2ed0eACOxWD19U=",
24
24
  "System.Collections.wasm": "sha256-mNLhFaXT8X16KYjUVNFYwcdw0h3BUjgD427TR5IWVKU=",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docxodus",
3
- "version": "3.7.0",
3
+ "version": "3.8.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",