docxodus 3.8.0 → 3.8.1
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/pagination.bundle.js +239 -24
- package/dist/pagination.d.ts +19 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +287 -30
- package/dist/pagination.js.map +1 -1
- package/dist/wasm/_framework/Docxodus.wasm +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
- package/dist/wasm/_framework/blazor.boot.json +3 -3
- package/package.json +1 -1
|
@@ -67,6 +67,7 @@ var DocxodusPagination = (() => {
|
|
|
67
67
|
* @param options - Pagination options
|
|
68
68
|
*/
|
|
69
69
|
constructor(staging, container, options = {}) {
|
|
70
|
+
this.pendingFootnoteContinuation = null;
|
|
70
71
|
this.stagingElement = typeof staging === "string" ? document.getElementById(staging) : staging;
|
|
71
72
|
this.containerElement = typeof container === "string" ? document.getElementById(container) : container;
|
|
72
73
|
if (!this.stagingElement) {
|
|
@@ -217,9 +218,13 @@ var DocxodusPagination = (() => {
|
|
|
217
218
|
/**
|
|
218
219
|
* Measures the height of footnotes for given IDs (in points).
|
|
219
220
|
* Creates a temporary container to measure the footnotes.
|
|
221
|
+
* @param footnoteIds - IDs of footnotes to measure
|
|
222
|
+
* @param contentWidth - Width for measurement
|
|
223
|
+
* @param continuation - Optional continuation content to include first
|
|
220
224
|
*/
|
|
221
|
-
measureFootnotesHeight(footnoteIds, contentWidth) {
|
|
222
|
-
|
|
225
|
+
measureFootnotesHeight(footnoteIds, contentWidth, continuation) {
|
|
226
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
227
|
+
if (footnoteIds.length === 0 && !hasContinuation || this.footnoteRegistry.size === 0) {
|
|
223
228
|
return 0;
|
|
224
229
|
}
|
|
225
230
|
const measureContainer = document.createElement("div");
|
|
@@ -229,6 +234,14 @@ var DocxodusPagination = (() => {
|
|
|
229
234
|
measureContainer.style.left = "-9999px";
|
|
230
235
|
const hr = document.createElement("hr");
|
|
231
236
|
measureContainer.appendChild(hr);
|
|
237
|
+
if (hasContinuation) {
|
|
238
|
+
const contWrapper = document.createElement("div");
|
|
239
|
+
contWrapper.className = "footnote-continuation";
|
|
240
|
+
for (const el of continuation.remainingElements) {
|
|
241
|
+
contWrapper.appendChild(el.cloneNode(true));
|
|
242
|
+
}
|
|
243
|
+
measureContainer.appendChild(contWrapper);
|
|
244
|
+
}
|
|
232
245
|
for (const id of footnoteIds) {
|
|
233
246
|
const footnote = this.footnoteRegistry.get(id);
|
|
234
247
|
if (footnote) {
|
|
@@ -242,12 +255,109 @@ var DocxodusPagination = (() => {
|
|
|
242
255
|
return heightPt;
|
|
243
256
|
}
|
|
244
257
|
/**
|
|
245
|
-
*
|
|
258
|
+
* Measures the height of just the continuation content (in points).
|
|
246
259
|
*/
|
|
247
|
-
|
|
248
|
-
if (
|
|
260
|
+
measureContinuationHeight(continuation, contentWidth) {
|
|
261
|
+
if (!continuation || continuation.remainingElements.length === 0) {
|
|
262
|
+
return 0;
|
|
263
|
+
}
|
|
264
|
+
const measureContainer = document.createElement("div");
|
|
265
|
+
measureContainer.style.position = "absolute";
|
|
266
|
+
measureContainer.style.visibility = "hidden";
|
|
267
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
268
|
+
measureContainer.style.left = "-9999px";
|
|
269
|
+
const hr = document.createElement("hr");
|
|
270
|
+
measureContainer.appendChild(hr);
|
|
271
|
+
for (const el of continuation.remainingElements) {
|
|
272
|
+
measureContainer.appendChild(el.cloneNode(true));
|
|
273
|
+
}
|
|
274
|
+
this.stagingElement.appendChild(measureContainer);
|
|
275
|
+
const rect = measureContainer.getBoundingClientRect();
|
|
276
|
+
const heightPt = pxToPt(rect.height);
|
|
277
|
+
this.stagingElement.removeChild(measureContainer);
|
|
278
|
+
return heightPt;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Splits a footnote element into parts that fit within the available height.
|
|
282
|
+
* Returns the elements that fit and the elements that need to continue.
|
|
283
|
+
*/
|
|
284
|
+
splitFootnoteToFit(footnoteElement, availableHeightPt, contentWidth) {
|
|
285
|
+
const footnoteContent = footnoteElement.querySelector(".footnote-content");
|
|
286
|
+
if (!footnoteContent) {
|
|
287
|
+
return { fits: [footnoteElement.cloneNode(true)], overflow: [] };
|
|
288
|
+
}
|
|
289
|
+
const children = Array.from(footnoteContent.children);
|
|
290
|
+
if (children.length <= 1) {
|
|
291
|
+
return { fits: [footnoteElement.cloneNode(true)], overflow: [] };
|
|
292
|
+
}
|
|
293
|
+
const fits = [];
|
|
294
|
+
const overflow = [];
|
|
295
|
+
let currentHeight = 0;
|
|
296
|
+
const hrMeasure = document.createElement("div");
|
|
297
|
+
hrMeasure.style.position = "absolute";
|
|
298
|
+
hrMeasure.style.visibility = "hidden";
|
|
299
|
+
hrMeasure.style.width = `${contentWidth}pt`;
|
|
300
|
+
hrMeasure.style.left = "-9999px";
|
|
301
|
+
const hr = document.createElement("hr");
|
|
302
|
+
hrMeasure.appendChild(hr);
|
|
303
|
+
this.stagingElement.appendChild(hrMeasure);
|
|
304
|
+
const hrHeight = pxToPt(hrMeasure.getBoundingClientRect().height);
|
|
305
|
+
this.stagingElement.removeChild(hrMeasure);
|
|
306
|
+
currentHeight = hrHeight;
|
|
307
|
+
const footnoteNumber = footnoteElement.querySelector(".footnote-number");
|
|
308
|
+
for (let i = 0; i < children.length; i++) {
|
|
309
|
+
const child = children[i];
|
|
310
|
+
const measureContainer = document.createElement("div");
|
|
311
|
+
measureContainer.style.position = "absolute";
|
|
312
|
+
measureContainer.style.visibility = "hidden";
|
|
313
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
314
|
+
measureContainer.style.left = "-9999px";
|
|
315
|
+
measureContainer.appendChild(child.cloneNode(true));
|
|
316
|
+
this.stagingElement.appendChild(measureContainer);
|
|
317
|
+
const childHeight = pxToPt(measureContainer.getBoundingClientRect().height);
|
|
318
|
+
this.stagingElement.removeChild(measureContainer);
|
|
319
|
+
if (currentHeight + childHeight <= availableHeightPt) {
|
|
320
|
+
fits.push(child.cloneNode(true));
|
|
321
|
+
currentHeight += childHeight;
|
|
322
|
+
} else {
|
|
323
|
+
for (let j = i; j < children.length; j++) {
|
|
324
|
+
overflow.push(children[j].cloneNode(true));
|
|
325
|
+
}
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return { fits, overflow };
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Measures a single footnote's height.
|
|
333
|
+
*/
|
|
334
|
+
measureSingleFootnoteHeight(footnoteId, contentWidth) {
|
|
335
|
+
const footnote = this.footnoteRegistry.get(footnoteId);
|
|
336
|
+
if (!footnote) return 0;
|
|
337
|
+
const measureContainer = document.createElement("div");
|
|
338
|
+
measureContainer.style.position = "absolute";
|
|
339
|
+
measureContainer.style.visibility = "hidden";
|
|
340
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
341
|
+
measureContainer.style.left = "-9999px";
|
|
342
|
+
measureContainer.appendChild(footnote.cloneNode(true));
|
|
343
|
+
this.stagingElement.appendChild(measureContainer);
|
|
344
|
+
const rect = measureContainer.getBoundingClientRect();
|
|
345
|
+
const heightPt = pxToPt(rect.height);
|
|
346
|
+
this.stagingElement.removeChild(measureContainer);
|
|
347
|
+
return heightPt;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Adds footnotes to a page container, including continuation content.
|
|
351
|
+
*/
|
|
352
|
+
addPageFootnotes(pageBox, footnoteIds, dims, continuation, partialFootnotes) {
|
|
353
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
354
|
+
if (footnoteIds.length === 0 && !hasContinuation) {
|
|
249
355
|
return;
|
|
250
356
|
}
|
|
357
|
+
if (this.footnoteRegistry.size === 0 && !hasContinuation) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
const partialFootnoteIds = new Set(partialFootnotes?.map((p) => p.footnoteId) || []);
|
|
251
361
|
const footnotesDiv = document.createElement("div");
|
|
252
362
|
footnotesDiv.className = `${this.cssPrefix}footnotes`;
|
|
253
363
|
footnotesDiv.style.position = "absolute";
|
|
@@ -257,10 +367,39 @@ var DocxodusPagination = (() => {
|
|
|
257
367
|
footnotesDiv.style.boxSizing = "border-box";
|
|
258
368
|
const hr = document.createElement("hr");
|
|
259
369
|
footnotesDiv.appendChild(hr);
|
|
370
|
+
if (hasContinuation) {
|
|
371
|
+
const contWrapper = document.createElement("div");
|
|
372
|
+
contWrapper.className = "footnote-continuation";
|
|
373
|
+
for (const el of continuation.remainingElements) {
|
|
374
|
+
contWrapper.appendChild(el.cloneNode(true));
|
|
375
|
+
}
|
|
376
|
+
footnotesDiv.appendChild(contWrapper);
|
|
377
|
+
}
|
|
260
378
|
for (const id of footnoteIds) {
|
|
261
|
-
const
|
|
262
|
-
if (
|
|
263
|
-
|
|
379
|
+
const partial = partialFootnotes?.find((p) => p.footnoteId === id);
|
|
380
|
+
if (partial) {
|
|
381
|
+
const footnote = this.footnoteRegistry.get(id);
|
|
382
|
+
if (footnote) {
|
|
383
|
+
const partialDiv = document.createElement("div");
|
|
384
|
+
partialDiv.className = "footnote-item";
|
|
385
|
+
partialDiv.dataset.footnoteId = id;
|
|
386
|
+
const numberSpan = footnote.querySelector(".footnote-number");
|
|
387
|
+
if (numberSpan) {
|
|
388
|
+
partialDiv.appendChild(numberSpan.cloneNode(true));
|
|
389
|
+
}
|
|
390
|
+
const contentSpan = document.createElement("span");
|
|
391
|
+
contentSpan.className = "footnote-content";
|
|
392
|
+
for (const el of partial.fittingElements) {
|
|
393
|
+
contentSpan.appendChild(el.cloneNode(true));
|
|
394
|
+
}
|
|
395
|
+
partialDiv.appendChild(contentSpan);
|
|
396
|
+
footnotesDiv.appendChild(partialDiv);
|
|
397
|
+
}
|
|
398
|
+
} else {
|
|
399
|
+
const footnote = this.footnoteRegistry.get(id);
|
|
400
|
+
if (footnote) {
|
|
401
|
+
footnotesDiv.appendChild(footnote.cloneNode(true));
|
|
402
|
+
}
|
|
264
403
|
}
|
|
265
404
|
}
|
|
266
405
|
pageBox.appendChild(footnotesDiv);
|
|
@@ -296,6 +435,7 @@ var DocxodusPagination = (() => {
|
|
|
296
435
|
/**
|
|
297
436
|
* Flows measured blocks into page containers.
|
|
298
437
|
* Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
|
|
438
|
+
* Supports footnote continuation - long footnotes can split across pages.
|
|
299
439
|
*/
|
|
300
440
|
flowToPages(blocks, dims, startPageNumber, sectionIndex) {
|
|
301
441
|
const pages = [];
|
|
@@ -306,15 +446,23 @@ var DocxodusPagination = (() => {
|
|
|
306
446
|
let prevMarginBottomPt = 0;
|
|
307
447
|
let currentFootnoteIds = [];
|
|
308
448
|
let currentFootnoteHeight = 0;
|
|
449
|
+
let currentContinuation = this.pendingFootnoteContinuation;
|
|
450
|
+
let nextPageContinuation = null;
|
|
451
|
+
let currentPartialFootnotes = [];
|
|
452
|
+
if (currentContinuation && currentContinuation.remainingElements.length > 0) {
|
|
453
|
+
currentFootnoteHeight = this.measureContinuationHeight(currentContinuation, dims.contentWidth);
|
|
454
|
+
}
|
|
309
455
|
const finishPage = () => {
|
|
310
|
-
if (currentContent.length === 0) return;
|
|
456
|
+
if (currentContent.length === 0 && !currentContinuation) return;
|
|
311
457
|
const page = this.createPage(
|
|
312
458
|
dims,
|
|
313
459
|
pageNumber,
|
|
314
460
|
sectionIndex,
|
|
315
461
|
currentContent,
|
|
316
462
|
pageInSection,
|
|
317
|
-
currentFootnoteIds
|
|
463
|
+
currentFootnoteIds,
|
|
464
|
+
currentContinuation,
|
|
465
|
+
currentPartialFootnotes.length > 0 ? currentPartialFootnotes : void 0
|
|
318
466
|
);
|
|
319
467
|
pages.push(page);
|
|
320
468
|
pageNumber++;
|
|
@@ -323,7 +471,14 @@ var DocxodusPagination = (() => {
|
|
|
323
471
|
remainingHeight = dims.contentHeight;
|
|
324
472
|
prevMarginBottomPt = 0;
|
|
325
473
|
currentFootnoteIds = [];
|
|
326
|
-
|
|
474
|
+
currentPartialFootnotes = [];
|
|
475
|
+
currentContinuation = nextPageContinuation;
|
|
476
|
+
nextPageContinuation = null;
|
|
477
|
+
if (currentContinuation && currentContinuation.remainingElements.length > 0) {
|
|
478
|
+
currentFootnoteHeight = this.measureContinuationHeight(currentContinuation, dims.contentWidth);
|
|
479
|
+
} else {
|
|
480
|
+
currentFootnoteHeight = 0;
|
|
481
|
+
}
|
|
327
482
|
};
|
|
328
483
|
for (let i = 0; i < blocks.length; i++) {
|
|
329
484
|
const block = blocks[i];
|
|
@@ -340,7 +495,11 @@ var DocxodusPagination = (() => {
|
|
|
340
495
|
let additionalFootnoteHeight = 0;
|
|
341
496
|
if (newFootnoteIds.length > 0 && this.footnoteRegistry.size > 0) {
|
|
342
497
|
const combinedFootnoteIds = [...currentFootnoteIds, ...newFootnoteIds];
|
|
343
|
-
const totalFootnoteHeight = this.measureFootnotesHeight(
|
|
498
|
+
const totalFootnoteHeight = this.measureFootnotesHeight(
|
|
499
|
+
combinedFootnoteIds,
|
|
500
|
+
dims.contentWidth,
|
|
501
|
+
currentContinuation
|
|
502
|
+
);
|
|
344
503
|
additionalFootnoteHeight = totalFootnoteHeight - currentFootnoteHeight;
|
|
345
504
|
}
|
|
346
505
|
const isFirstOnPage = currentContent.length === 0;
|
|
@@ -363,15 +522,69 @@ var DocxodusPagination = (() => {
|
|
|
363
522
|
currentFootnoteIds.push(...newFootnoteIds);
|
|
364
523
|
currentFootnoteHeight += additionalFootnoteHeight;
|
|
365
524
|
}
|
|
366
|
-
} else if (block.heightPt + block.marginTopPt + block.marginBottomPt
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
525
|
+
} else if (block.heightPt + block.marginTopPt + block.marginBottomPt <= dims.contentHeight) {
|
|
526
|
+
const blockSpaceWithoutFootnotes = effectiveMarginTop + block.heightPt + block.marginBottomPt;
|
|
527
|
+
if (newFootnoteIds.length > 0 && blockSpaceWithoutFootnotes <= effectiveRemainingHeight) {
|
|
528
|
+
currentContent.push(block.element.cloneNode(true));
|
|
529
|
+
remainingHeight -= effectiveMarginTop + block.heightPt + block.marginBottomPt;
|
|
530
|
+
prevMarginBottomPt = block.marginBottomPt;
|
|
531
|
+
const spaceForFootnotes = remainingHeight - currentFootnoteHeight;
|
|
532
|
+
for (const footnoteId of newFootnoteIds) {
|
|
533
|
+
const footnote = this.footnoteRegistry.get(footnoteId);
|
|
534
|
+
if (!footnote) continue;
|
|
535
|
+
const footnoteHeight = this.measureSingleFootnoteHeight(footnoteId, dims.contentWidth);
|
|
536
|
+
if (footnoteHeight <= spaceForFootnotes - currentFootnoteHeight) {
|
|
537
|
+
currentFootnoteIds.push(footnoteId);
|
|
538
|
+
currentFootnoteHeight += footnoteHeight;
|
|
539
|
+
} else {
|
|
540
|
+
const availableForThisFootnote = spaceForFootnotes;
|
|
541
|
+
if (availableForThisFootnote > 20) {
|
|
542
|
+
const { fits, overflow } = this.splitFootnoteToFit(
|
|
543
|
+
footnote,
|
|
544
|
+
availableForThisFootnote,
|
|
545
|
+
dims.contentWidth
|
|
546
|
+
);
|
|
547
|
+
if (fits.length > 0) {
|
|
548
|
+
currentFootnoteIds.push(footnoteId);
|
|
549
|
+
currentPartialFootnotes.push({
|
|
550
|
+
footnoteId,
|
|
551
|
+
fittingElements: fits
|
|
552
|
+
});
|
|
553
|
+
nextPageContinuation = {
|
|
554
|
+
footnoteId,
|
|
555
|
+
remainingElements: overflow
|
|
556
|
+
};
|
|
557
|
+
currentFootnoteHeight = spaceForFootnotes;
|
|
558
|
+
} else {
|
|
559
|
+
nextPageContinuation = {
|
|
560
|
+
footnoteId,
|
|
561
|
+
remainingElements: Array.from(footnote.querySelectorAll(".footnote-content > *")).map((el) => el.cloneNode(true))
|
|
562
|
+
};
|
|
563
|
+
if (nextPageContinuation.remainingElements.length === 0) {
|
|
564
|
+
nextPageContinuation.remainingElements = [footnote.cloneNode(true)];
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
} else {
|
|
568
|
+
nextPageContinuation = {
|
|
569
|
+
footnoteId,
|
|
570
|
+
remainingElements: Array.from(footnote.querySelectorAll(".footnote-content > *")).map((el) => el.cloneNode(true))
|
|
571
|
+
};
|
|
572
|
+
if (nextPageContinuation.remainingElements.length === 0) {
|
|
573
|
+
nextPageContinuation.remainingElements = [footnote.cloneNode(true)];
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
} else {
|
|
579
|
+
finishPage();
|
|
580
|
+
const newPageFootnoteHeight = blockFootnoteIds.length > 0 ? this.measureFootnotesHeight(blockFootnoteIds, dims.contentWidth, currentContinuation) : currentContinuation ? this.measureContinuationHeight(currentContinuation, dims.contentWidth) : 0;
|
|
581
|
+
const newPageSpace = block.marginTopPt + block.heightPt + block.marginBottomPt;
|
|
582
|
+
currentContent.push(block.element.cloneNode(true));
|
|
583
|
+
remainingHeight = dims.contentHeight - newPageSpace;
|
|
584
|
+
prevMarginBottomPt = block.marginBottomPt;
|
|
585
|
+
currentFootnoteIds = [...blockFootnoteIds];
|
|
586
|
+
currentFootnoteHeight = newPageFootnoteHeight;
|
|
587
|
+
}
|
|
375
588
|
} else {
|
|
376
589
|
if (currentContent.length > 0) {
|
|
377
590
|
finishPage();
|
|
@@ -382,12 +595,13 @@ var DocxodusPagination = (() => {
|
|
|
382
595
|
}
|
|
383
596
|
}
|
|
384
597
|
finishPage();
|
|
598
|
+
this.pendingFootnoteContinuation = nextPageContinuation;
|
|
385
599
|
return pages;
|
|
386
600
|
}
|
|
387
601
|
/**
|
|
388
602
|
* Creates a page container element.
|
|
389
603
|
*/
|
|
390
|
-
createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = []) {
|
|
604
|
+
createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = [], continuation, partialFootnotes) {
|
|
391
605
|
const pageBox = document.createElement("div");
|
|
392
606
|
pageBox.className = `${this.cssPrefix}box`;
|
|
393
607
|
pageBox.style.width = `${dims.pageWidth}pt`;
|
|
@@ -441,8 +655,9 @@ var DocxodusPagination = (() => {
|
|
|
441
655
|
contentArea.appendChild(el);
|
|
442
656
|
}
|
|
443
657
|
pageBox.appendChild(contentArea);
|
|
444
|
-
|
|
445
|
-
|
|
658
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
659
|
+
if (footnoteIds.length > 0 || hasContinuation) {
|
|
660
|
+
this.addPageFootnotes(pageBox, footnoteIds, dims, continuation, partialFootnotes);
|
|
446
661
|
}
|
|
447
662
|
const footerSource = this.selectFooter(sectionIndex, pageInSection, pageNumber);
|
|
448
663
|
if (footerSource) {
|
package/dist/pagination.d.ts
CHANGED
|
@@ -123,6 +123,7 @@ export declare class PaginationEngine {
|
|
|
123
123
|
private pageGap;
|
|
124
124
|
private hfRegistry;
|
|
125
125
|
private footnoteRegistry;
|
|
126
|
+
private pendingFootnoteContinuation;
|
|
126
127
|
/**
|
|
127
128
|
* Creates a new pagination engine.
|
|
128
129
|
*
|
|
@@ -156,10 +157,26 @@ export declare class PaginationEngine {
|
|
|
156
157
|
/**
|
|
157
158
|
* Measures the height of footnotes for given IDs (in points).
|
|
158
159
|
* Creates a temporary container to measure the footnotes.
|
|
160
|
+
* @param footnoteIds - IDs of footnotes to measure
|
|
161
|
+
* @param contentWidth - Width for measurement
|
|
162
|
+
* @param continuation - Optional continuation content to include first
|
|
159
163
|
*/
|
|
160
164
|
private measureFootnotesHeight;
|
|
161
165
|
/**
|
|
162
|
-
*
|
|
166
|
+
* Measures the height of just the continuation content (in points).
|
|
167
|
+
*/
|
|
168
|
+
private measureContinuationHeight;
|
|
169
|
+
/**
|
|
170
|
+
* Splits a footnote element into parts that fit within the available height.
|
|
171
|
+
* Returns the elements that fit and the elements that need to continue.
|
|
172
|
+
*/
|
|
173
|
+
private splitFootnoteToFit;
|
|
174
|
+
/**
|
|
175
|
+
* Measures a single footnote's height.
|
|
176
|
+
*/
|
|
177
|
+
private measureSingleFootnoteHeight;
|
|
178
|
+
/**
|
|
179
|
+
* Adds footnotes to a page container, including continuation content.
|
|
163
180
|
*/
|
|
164
181
|
private addPageFootnotes;
|
|
165
182
|
/**
|
|
@@ -173,6 +190,7 @@ export declare class PaginationEngine {
|
|
|
173
190
|
/**
|
|
174
191
|
* Flows measured blocks into page containers.
|
|
175
192
|
* Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
|
|
193
|
+
* Supports footnote continuation - long footnotes can split across pages.
|
|
176
194
|
*/
|
|
177
195
|
private flowToPages;
|
|
178
196
|
/**
|
package/dist/pagination.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;IACnB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,wBAAwB;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uBAAuB;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,uDAAuD;IACvD,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,wBAAwB;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uBAAuB;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEpE;;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;AAqDD;;;GAGG;AACH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
|
package/dist/pagination.js
CHANGED
|
@@ -58,6 +58,7 @@ export class PaginationEngine {
|
|
|
58
58
|
* @param options - Pagination options
|
|
59
59
|
*/
|
|
60
60
|
constructor(staging, container, options = {}) {
|
|
61
|
+
this.pendingFootnoteContinuation = null;
|
|
61
62
|
this.stagingElement =
|
|
62
63
|
typeof staging === "string"
|
|
63
64
|
? document.getElementById(staging)
|
|
@@ -231,9 +232,13 @@ export class PaginationEngine {
|
|
|
231
232
|
/**
|
|
232
233
|
* Measures the height of footnotes for given IDs (in points).
|
|
233
234
|
* Creates a temporary container to measure the footnotes.
|
|
235
|
+
* @param footnoteIds - IDs of footnotes to measure
|
|
236
|
+
* @param contentWidth - Width for measurement
|
|
237
|
+
* @param continuation - Optional continuation content to include first
|
|
234
238
|
*/
|
|
235
|
-
measureFootnotesHeight(footnoteIds, contentWidth) {
|
|
236
|
-
|
|
239
|
+
measureFootnotesHeight(footnoteIds, contentWidth, continuation) {
|
|
240
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
241
|
+
if ((footnoteIds.length === 0 && !hasContinuation) || this.footnoteRegistry.size === 0) {
|
|
237
242
|
return 0;
|
|
238
243
|
}
|
|
239
244
|
// Create a temporary measurement container
|
|
@@ -245,6 +250,15 @@ export class PaginationEngine {
|
|
|
245
250
|
// Add separator line (same as will be rendered)
|
|
246
251
|
const hr = document.createElement("hr");
|
|
247
252
|
measureContainer.appendChild(hr);
|
|
253
|
+
// Add continuation content first (if any)
|
|
254
|
+
if (hasContinuation) {
|
|
255
|
+
const contWrapper = document.createElement("div");
|
|
256
|
+
contWrapper.className = "footnote-continuation";
|
|
257
|
+
for (const el of continuation.remainingElements) {
|
|
258
|
+
contWrapper.appendChild(el.cloneNode(true));
|
|
259
|
+
}
|
|
260
|
+
measureContainer.appendChild(contWrapper);
|
|
261
|
+
}
|
|
248
262
|
// Add footnotes
|
|
249
263
|
for (const id of footnoteIds) {
|
|
250
264
|
const footnote = this.footnoteRegistry.get(id);
|
|
@@ -262,12 +276,121 @@ export class PaginationEngine {
|
|
|
262
276
|
return heightPt;
|
|
263
277
|
}
|
|
264
278
|
/**
|
|
265
|
-
*
|
|
279
|
+
* Measures the height of just the continuation content (in points).
|
|
280
|
+
*/
|
|
281
|
+
measureContinuationHeight(continuation, contentWidth) {
|
|
282
|
+
if (!continuation || continuation.remainingElements.length === 0) {
|
|
283
|
+
return 0;
|
|
284
|
+
}
|
|
285
|
+
const measureContainer = document.createElement("div");
|
|
286
|
+
measureContainer.style.position = "absolute";
|
|
287
|
+
measureContainer.style.visibility = "hidden";
|
|
288
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
289
|
+
measureContainer.style.left = "-9999px";
|
|
290
|
+
// Add separator line
|
|
291
|
+
const hr = document.createElement("hr");
|
|
292
|
+
measureContainer.appendChild(hr);
|
|
293
|
+
// Add continuation content
|
|
294
|
+
for (const el of continuation.remainingElements) {
|
|
295
|
+
measureContainer.appendChild(el.cloneNode(true));
|
|
296
|
+
}
|
|
297
|
+
this.stagingElement.appendChild(measureContainer);
|
|
298
|
+
const rect = measureContainer.getBoundingClientRect();
|
|
299
|
+
const heightPt = pxToPt(rect.height);
|
|
300
|
+
this.stagingElement.removeChild(measureContainer);
|
|
301
|
+
return heightPt;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Splits a footnote element into parts that fit within the available height.
|
|
305
|
+
* Returns the elements that fit and the elements that need to continue.
|
|
266
306
|
*/
|
|
267
|
-
|
|
268
|
-
|
|
307
|
+
splitFootnoteToFit(footnoteElement, availableHeightPt, contentWidth) {
|
|
308
|
+
// Get child elements (paragraphs) of the footnote content
|
|
309
|
+
const footnoteContent = footnoteElement.querySelector(".footnote-content");
|
|
310
|
+
if (!footnoteContent) {
|
|
311
|
+
// No content structure, can't split - return whole footnote
|
|
312
|
+
return { fits: [footnoteElement.cloneNode(true)], overflow: [] };
|
|
313
|
+
}
|
|
314
|
+
const children = Array.from(footnoteContent.children);
|
|
315
|
+
if (children.length <= 1) {
|
|
316
|
+
// Single paragraph, can't split at paragraph level
|
|
317
|
+
return { fits: [footnoteElement.cloneNode(true)], overflow: [] };
|
|
318
|
+
}
|
|
319
|
+
const fits = [];
|
|
320
|
+
const overflow = [];
|
|
321
|
+
let currentHeight = 0;
|
|
322
|
+
// Measure separator line height
|
|
323
|
+
const hrMeasure = document.createElement("div");
|
|
324
|
+
hrMeasure.style.position = "absolute";
|
|
325
|
+
hrMeasure.style.visibility = "hidden";
|
|
326
|
+
hrMeasure.style.width = `${contentWidth}pt`;
|
|
327
|
+
hrMeasure.style.left = "-9999px";
|
|
328
|
+
const hr = document.createElement("hr");
|
|
329
|
+
hrMeasure.appendChild(hr);
|
|
330
|
+
this.stagingElement.appendChild(hrMeasure);
|
|
331
|
+
const hrHeight = pxToPt(hrMeasure.getBoundingClientRect().height);
|
|
332
|
+
this.stagingElement.removeChild(hrMeasure);
|
|
333
|
+
currentHeight = hrHeight;
|
|
334
|
+
// Also account for footnote number
|
|
335
|
+
const footnoteNumber = footnoteElement.querySelector(".footnote-number");
|
|
336
|
+
for (let i = 0; i < children.length; i++) {
|
|
337
|
+
const child = children[i];
|
|
338
|
+
// Measure this element
|
|
339
|
+
const measureContainer = document.createElement("div");
|
|
340
|
+
measureContainer.style.position = "absolute";
|
|
341
|
+
measureContainer.style.visibility = "hidden";
|
|
342
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
343
|
+
measureContainer.style.left = "-9999px";
|
|
344
|
+
measureContainer.appendChild(child.cloneNode(true));
|
|
345
|
+
this.stagingElement.appendChild(measureContainer);
|
|
346
|
+
const childHeight = pxToPt(measureContainer.getBoundingClientRect().height);
|
|
347
|
+
this.stagingElement.removeChild(measureContainer);
|
|
348
|
+
if (currentHeight + childHeight <= availableHeightPt) {
|
|
349
|
+
fits.push(child.cloneNode(true));
|
|
350
|
+
currentHeight += childHeight;
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
// This and remaining elements overflow
|
|
354
|
+
for (let j = i; j < children.length; j++) {
|
|
355
|
+
overflow.push(children[j].cloneNode(true));
|
|
356
|
+
}
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return { fits, overflow };
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Measures a single footnote's height.
|
|
364
|
+
*/
|
|
365
|
+
measureSingleFootnoteHeight(footnoteId, contentWidth) {
|
|
366
|
+
const footnote = this.footnoteRegistry.get(footnoteId);
|
|
367
|
+
if (!footnote)
|
|
368
|
+
return 0;
|
|
369
|
+
const measureContainer = document.createElement("div");
|
|
370
|
+
measureContainer.style.position = "absolute";
|
|
371
|
+
measureContainer.style.visibility = "hidden";
|
|
372
|
+
measureContainer.style.width = `${contentWidth}pt`;
|
|
373
|
+
measureContainer.style.left = "-9999px";
|
|
374
|
+
measureContainer.appendChild(footnote.cloneNode(true));
|
|
375
|
+
this.stagingElement.appendChild(measureContainer);
|
|
376
|
+
const rect = measureContainer.getBoundingClientRect();
|
|
377
|
+
const heightPt = pxToPt(rect.height);
|
|
378
|
+
this.stagingElement.removeChild(measureContainer);
|
|
379
|
+
return heightPt;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Adds footnotes to a page container, including continuation content.
|
|
383
|
+
*/
|
|
384
|
+
addPageFootnotes(pageBox, footnoteIds, dims, continuation, partialFootnotes) {
|
|
385
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
386
|
+
if (footnoteIds.length === 0 && !hasContinuation) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
if (this.footnoteRegistry.size === 0 && !hasContinuation) {
|
|
269
390
|
return;
|
|
270
391
|
}
|
|
392
|
+
// Create a set of partial footnote IDs for quick lookup
|
|
393
|
+
const partialFootnoteIds = new Set(partialFootnotes?.map(p => p.footnoteId) || []);
|
|
271
394
|
const footnotesDiv = document.createElement("div");
|
|
272
395
|
footnotesDiv.className = `${this.cssPrefix}footnotes`;
|
|
273
396
|
footnotesDiv.style.position = "absolute";
|
|
@@ -278,11 +401,47 @@ export class PaginationEngine {
|
|
|
278
401
|
// Add separator line
|
|
279
402
|
const hr = document.createElement("hr");
|
|
280
403
|
footnotesDiv.appendChild(hr);
|
|
404
|
+
// Add continuation content first (if any)
|
|
405
|
+
if (hasContinuation) {
|
|
406
|
+
const contWrapper = document.createElement("div");
|
|
407
|
+
contWrapper.className = "footnote-continuation";
|
|
408
|
+
for (const el of continuation.remainingElements) {
|
|
409
|
+
contWrapper.appendChild(el.cloneNode(true));
|
|
410
|
+
}
|
|
411
|
+
footnotesDiv.appendChild(contWrapper);
|
|
412
|
+
}
|
|
281
413
|
// Clone footnotes in order of appearance
|
|
282
414
|
for (const id of footnoteIds) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
415
|
+
// Check if this is a partial footnote
|
|
416
|
+
const partial = partialFootnotes?.find(p => p.footnoteId === id);
|
|
417
|
+
if (partial) {
|
|
418
|
+
// Render partial footnote (only the fitting elements)
|
|
419
|
+
const footnote = this.footnoteRegistry.get(id);
|
|
420
|
+
if (footnote) {
|
|
421
|
+
const partialDiv = document.createElement("div");
|
|
422
|
+
partialDiv.className = "footnote-item";
|
|
423
|
+
partialDiv.dataset.footnoteId = id;
|
|
424
|
+
// Add footnote number
|
|
425
|
+
const numberSpan = footnote.querySelector(".footnote-number");
|
|
426
|
+
if (numberSpan) {
|
|
427
|
+
partialDiv.appendChild(numberSpan.cloneNode(true));
|
|
428
|
+
}
|
|
429
|
+
// Add only the fitting content
|
|
430
|
+
const contentSpan = document.createElement("span");
|
|
431
|
+
contentSpan.className = "footnote-content";
|
|
432
|
+
for (const el of partial.fittingElements) {
|
|
433
|
+
contentSpan.appendChild(el.cloneNode(true));
|
|
434
|
+
}
|
|
435
|
+
partialDiv.appendChild(contentSpan);
|
|
436
|
+
footnotesDiv.appendChild(partialDiv);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
// Render full footnote from registry
|
|
441
|
+
const footnote = this.footnoteRegistry.get(id);
|
|
442
|
+
if (footnote) {
|
|
443
|
+
footnotesDiv.appendChild(footnote.cloneNode(true));
|
|
444
|
+
}
|
|
286
445
|
}
|
|
287
446
|
}
|
|
288
447
|
pageBox.appendChild(footnotesDiv);
|
|
@@ -326,6 +485,7 @@ export class PaginationEngine {
|
|
|
326
485
|
/**
|
|
327
486
|
* Flows measured blocks into page containers.
|
|
328
487
|
* Implements a single-pass, forward-only algorithm that is compatible with future lazy loading.
|
|
488
|
+
* Supports footnote continuation - long footnotes can split across pages.
|
|
329
489
|
*/
|
|
330
490
|
flowToPages(blocks, dims, startPageNumber, sectionIndex) {
|
|
331
491
|
const pages = [];
|
|
@@ -340,10 +500,20 @@ export class PaginationEngine {
|
|
|
340
500
|
let currentFootnoteIds = [];
|
|
341
501
|
// Track height consumed by footnotes on current page
|
|
342
502
|
let currentFootnoteHeight = 0;
|
|
503
|
+
// Track footnote continuation for current page (from previous page)
|
|
504
|
+
let currentContinuation = this.pendingFootnoteContinuation;
|
|
505
|
+
// Track any new continuation that will carry to next page
|
|
506
|
+
let nextPageContinuation = null;
|
|
507
|
+
// Track partial footnotes for current page (footnotes that were split)
|
|
508
|
+
let currentPartialFootnotes = [];
|
|
509
|
+
// Account for any continuation from previous section/page
|
|
510
|
+
if (currentContinuation && currentContinuation.remainingElements.length > 0) {
|
|
511
|
+
currentFootnoteHeight = this.measureContinuationHeight(currentContinuation, dims.contentWidth);
|
|
512
|
+
}
|
|
343
513
|
const finishPage = () => {
|
|
344
|
-
if (currentContent.length === 0)
|
|
514
|
+
if (currentContent.length === 0 && !currentContinuation)
|
|
345
515
|
return;
|
|
346
|
-
const page = this.createPage(dims, pageNumber, sectionIndex, currentContent, pageInSection, currentFootnoteIds);
|
|
516
|
+
const page = this.createPage(dims, pageNumber, sectionIndex, currentContent, pageInSection, currentFootnoteIds, currentContinuation, currentPartialFootnotes.length > 0 ? currentPartialFootnotes : undefined);
|
|
347
517
|
pages.push(page);
|
|
348
518
|
pageNumber++;
|
|
349
519
|
pageInSection++;
|
|
@@ -351,7 +521,17 @@ export class PaginationEngine {
|
|
|
351
521
|
remainingHeight = dims.contentHeight;
|
|
352
522
|
prevMarginBottomPt = 0; // Reset margin tracking for new page
|
|
353
523
|
currentFootnoteIds = []; // Reset footnotes for new page
|
|
354
|
-
|
|
524
|
+
currentPartialFootnotes = []; // Reset partial footnotes for new page
|
|
525
|
+
// Carry over continuation to next page
|
|
526
|
+
currentContinuation = nextPageContinuation;
|
|
527
|
+
nextPageContinuation = null;
|
|
528
|
+
// Account for continuation height on new page
|
|
529
|
+
if (currentContinuation && currentContinuation.remainingElements.length > 0) {
|
|
530
|
+
currentFootnoteHeight = this.measureContinuationHeight(currentContinuation, dims.contentWidth);
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
533
|
+
currentFootnoteHeight = 0;
|
|
534
|
+
}
|
|
355
535
|
};
|
|
356
536
|
for (let i = 0; i < blocks.length; i++) {
|
|
357
537
|
const block = blocks[i];
|
|
@@ -373,8 +553,9 @@ export class PaginationEngine {
|
|
|
373
553
|
let additionalFootnoteHeight = 0;
|
|
374
554
|
if (newFootnoteIds.length > 0 && this.footnoteRegistry.size > 0) {
|
|
375
555
|
// Measure the combined height of all footnotes that would be on this page
|
|
556
|
+
// (including any continuation)
|
|
376
557
|
const combinedFootnoteIds = [...currentFootnoteIds, ...newFootnoteIds];
|
|
377
|
-
const totalFootnoteHeight = this.measureFootnotesHeight(combinedFootnoteIds, dims.contentWidth);
|
|
558
|
+
const totalFootnoteHeight = this.measureFootnotesHeight(combinedFootnoteIds, dims.contentWidth, currentContinuation);
|
|
378
559
|
additionalFootnoteHeight = totalFootnoteHeight - currentFootnoteHeight;
|
|
379
560
|
}
|
|
380
561
|
// Calculate the effective height this block will consume
|
|
@@ -409,20 +590,93 @@ export class PaginationEngine {
|
|
|
409
590
|
currentFootnoteHeight += additionalFootnoteHeight;
|
|
410
591
|
}
|
|
411
592
|
}
|
|
412
|
-
else if (block.heightPt + block.marginTopPt + block.marginBottomPt
|
|
413
|
-
// Block doesn't fit but will fit on a new page
|
|
414
|
-
|
|
415
|
-
//
|
|
416
|
-
const
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
593
|
+
else if (block.heightPt + block.marginTopPt + block.marginBottomPt <= dims.contentHeight) {
|
|
594
|
+
// Block doesn't fit but will fit on a new page (even with footnotes)
|
|
595
|
+
// Check if we need to split any footnotes on the current page first
|
|
596
|
+
// Try to fit the block with partial footnotes using footnote continuation
|
|
597
|
+
const blockSpaceWithoutFootnotes = effectiveMarginTop + block.heightPt + block.marginBottomPt;
|
|
598
|
+
if (newFootnoteIds.length > 0 && blockSpaceWithoutFootnotes <= effectiveRemainingHeight) {
|
|
599
|
+
// Block itself fits, but footnotes don't - try footnote continuation
|
|
600
|
+
currentContent.push(block.element.cloneNode(true));
|
|
601
|
+
remainingHeight -= (effectiveMarginTop + block.heightPt + block.marginBottomPt);
|
|
602
|
+
prevMarginBottomPt = block.marginBottomPt;
|
|
603
|
+
// Calculate space available for footnotes
|
|
604
|
+
const spaceForFootnotes = remainingHeight - currentFootnoteHeight;
|
|
605
|
+
// Try to fit as much of each new footnote as possible
|
|
606
|
+
for (const footnoteId of newFootnoteIds) {
|
|
607
|
+
const footnote = this.footnoteRegistry.get(footnoteId);
|
|
608
|
+
if (!footnote)
|
|
609
|
+
continue;
|
|
610
|
+
const footnoteHeight = this.measureSingleFootnoteHeight(footnoteId, dims.contentWidth);
|
|
611
|
+
if (footnoteHeight <= spaceForFootnotes - currentFootnoteHeight) {
|
|
612
|
+
// Whole footnote fits
|
|
613
|
+
currentFootnoteIds.push(footnoteId);
|
|
614
|
+
currentFootnoteHeight += footnoteHeight;
|
|
615
|
+
}
|
|
616
|
+
else {
|
|
617
|
+
// Footnote needs to be split - try to fit part of it
|
|
618
|
+
const availableForThisFootnote = spaceForFootnotes;
|
|
619
|
+
if (availableForThisFootnote > 20) { // Minimum space to start a footnote (roughly 1 line + separator)
|
|
620
|
+
const { fits, overflow } = this.splitFootnoteToFit(footnote, availableForThisFootnote, dims.contentWidth);
|
|
621
|
+
if (fits.length > 0) {
|
|
622
|
+
// Add partial footnote to current page
|
|
623
|
+
currentFootnoteIds.push(footnoteId);
|
|
624
|
+
// Track this as a partial footnote so we only render the fitting part
|
|
625
|
+
currentPartialFootnotes.push({
|
|
626
|
+
footnoteId,
|
|
627
|
+
fittingElements: fits
|
|
628
|
+
});
|
|
629
|
+
// Store overflow for next page
|
|
630
|
+
nextPageContinuation = {
|
|
631
|
+
footnoteId,
|
|
632
|
+
remainingElements: overflow
|
|
633
|
+
};
|
|
634
|
+
// Update height (approximate - we've added some content)
|
|
635
|
+
currentFootnoteHeight = spaceForFootnotes;
|
|
636
|
+
}
|
|
637
|
+
else {
|
|
638
|
+
// Nothing fits, entire footnote continues to next page
|
|
639
|
+
nextPageContinuation = {
|
|
640
|
+
footnoteId,
|
|
641
|
+
remainingElements: Array.from(footnote.querySelectorAll(".footnote-content > *"))
|
|
642
|
+
.map(el => el.cloneNode(true))
|
|
643
|
+
};
|
|
644
|
+
// If no content elements found, use the whole footnote
|
|
645
|
+
if (nextPageContinuation.remainingElements.length === 0) {
|
|
646
|
+
nextPageContinuation.remainingElements = [footnote.cloneNode(true)];
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
else {
|
|
651
|
+
// Not enough space to start footnote - continue whole thing
|
|
652
|
+
nextPageContinuation = {
|
|
653
|
+
footnoteId,
|
|
654
|
+
remainingElements: Array.from(footnote.querySelectorAll(".footnote-content > *"))
|
|
655
|
+
.map(el => el.cloneNode(true))
|
|
656
|
+
};
|
|
657
|
+
if (nextPageContinuation.remainingElements.length === 0) {
|
|
658
|
+
nextPageContinuation.remainingElements = [footnote.cloneNode(true)];
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
else {
|
|
665
|
+
// Block itself doesn't fit - start new page
|
|
666
|
+
finishPage();
|
|
667
|
+
// On new page, recalculate footnote height for just this block's footnotes
|
|
668
|
+
// (plus any continuation from previous page)
|
|
669
|
+
const newPageFootnoteHeight = blockFootnoteIds.length > 0
|
|
670
|
+
? this.measureFootnotesHeight(blockFootnoteIds, dims.contentWidth, currentContinuation)
|
|
671
|
+
: (currentContinuation ? this.measureContinuationHeight(currentContinuation, dims.contentWidth) : 0);
|
|
672
|
+
// Include full top margin
|
|
673
|
+
const newPageSpace = block.marginTopPt + block.heightPt + block.marginBottomPt;
|
|
674
|
+
currentContent.push(block.element.cloneNode(true));
|
|
675
|
+
remainingHeight = dims.contentHeight - newPageSpace;
|
|
676
|
+
prevMarginBottomPt = block.marginBottomPt;
|
|
677
|
+
currentFootnoteIds = [...blockFootnoteIds];
|
|
678
|
+
currentFootnoteHeight = newPageFootnoteHeight;
|
|
679
|
+
}
|
|
426
680
|
}
|
|
427
681
|
else {
|
|
428
682
|
// Block is taller than a page - add it and let it overflow
|
|
@@ -437,12 +691,14 @@ export class PaginationEngine {
|
|
|
437
691
|
}
|
|
438
692
|
// Finish last page
|
|
439
693
|
finishPage();
|
|
694
|
+
// Store any remaining continuation for next section
|
|
695
|
+
this.pendingFootnoteContinuation = nextPageContinuation;
|
|
440
696
|
return pages;
|
|
441
697
|
}
|
|
442
698
|
/**
|
|
443
699
|
* Creates a page container element.
|
|
444
700
|
*/
|
|
445
|
-
createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = []) {
|
|
701
|
+
createPage(dims, pageNumber, sectionIndex, content, pageInSection, footnoteIds = [], continuation, partialFootnotes) {
|
|
446
702
|
// Create page box at full size, then scale the entire box
|
|
447
703
|
// This ensures proper clipping and consistent scaling of all elements
|
|
448
704
|
const pageBox = document.createElement("div");
|
|
@@ -511,9 +767,10 @@ export class PaginationEngine {
|
|
|
511
767
|
contentArea.appendChild(el);
|
|
512
768
|
}
|
|
513
769
|
pageBox.appendChild(contentArea);
|
|
514
|
-
// Add footnotes if any references appear on this page
|
|
515
|
-
|
|
516
|
-
|
|
770
|
+
// Add footnotes if any references appear on this page (or continuation from previous)
|
|
771
|
+
const hasContinuation = continuation && continuation.remainingElements.length > 0;
|
|
772
|
+
if (footnoteIds.length > 0 || hasContinuation) {
|
|
773
|
+
this.addPageFootnotes(pageBox, footnoteIds, dims, continuation, partialFootnotes);
|
|
517
774
|
}
|
|
518
775
|
// Add footer if available for this section/page
|
|
519
776
|
const footerSource = this.selectFooter(sectionIndex, pageInSection, pageNumber);
|
package/dist/pagination.js.map
CHANGED
|
@@ -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
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "DocxodusWasm.dll",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-RxzAbbsN5S15Hyo0OI+2N+bdwmHFby0/QxLF4Ifsfgc=",
|
|
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-
|
|
21
|
-
"DocxodusWasm.wasm": "sha256-
|
|
20
|
+
"Docxodus.wasm": "sha256-OvZl/9HSRpL+1JEJwO0mgaE0j65ablClKKCv9Jd7QoY=",
|
|
21
|
+
"DocxodusWasm.wasm": "sha256-Z25cMxmJXbqKUF/HAmC1MgLELIeCNbdSFxOZc2gIRNs=",
|
|
22
22
|
"SkiaSharp.wasm": "sha256-U6RbqUVBn8Vx8qpghJC5+r/DC1NSBY+EIRDxP8o6dsk=",
|
|
23
23
|
"System.Collections.Concurrent.wasm": "sha256-xXJbJWNeQ2DSYvAGUoUHjF9y4Iajv2ed0eACOxWD19U=",
|
|
24
24
|
"System.Collections.wasm": "sha256-mNLhFaXT8X16KYjUVNFYwcdw0h3BUjgD427TR5IWVKU=",
|