postext 1.17.0 → 1.18.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/__tests__/cjk/grid.test.js +41 -0
- package/dist/__tests__/cjk/grid.test.js.map +1 -1
- package/dist/__tests__/defaults/folio.test.js +58 -1
- package/dist/__tests__/defaults/folio.test.js.map +1 -1
- package/dist/__tests__/defaults/pageSizePreset.test.js +10 -0
- package/dist/__tests__/defaults/pageSizePreset.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +7 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/floatedBoxesSurvive.test.d.ts +2 -0
- package/dist/__tests__/floatedBoxesSurvive.test.d.ts.map +1 -0
- package/dist/__tests__/floatedBoxesSurvive.test.js +39 -0
- package/dist/__tests__/floatedBoxesSurvive.test.js.map +1 -0
- package/dist/__tests__/multipleColumns.test.d.ts +2 -0
- package/dist/__tests__/multipleColumns.test.d.ts.map +1 -0
- package/dist/__tests__/multipleColumns.test.js +144 -0
- package/dist/__tests__/multipleColumns.test.js.map +1 -0
- package/dist/__tests__/multipleColumnsFlow.test.d.ts +2 -0
- package/dist/__tests__/multipleColumnsFlow.test.d.ts.map +1 -0
- package/dist/__tests__/multipleColumnsFlow.test.js +184 -0
- package/dist/__tests__/multipleColumnsFlow.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
- package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
- package/dist/__tests__/sectionPageBackground.test.d.ts +2 -0
- package/dist/__tests__/sectionPageBackground.test.d.ts.map +1 -0
- package/dist/__tests__/sectionPageBackground.test.js +45 -0
- package/dist/__tests__/sectionPageBackground.test.js.map +1 -0
- package/dist/__tests__/videoPlayback.test.d.ts +2 -0
- package/dist/__tests__/videoPlayback.test.d.ts.map +1 -0
- package/dist/__tests__/videoPlayback.test.js +149 -0
- package/dist/__tests__/videoPlayback.test.js.map +1 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +2 -1
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/columnRule.d.ts +8 -4
- package/dist/columnRule.d.ts.map +1 -1
- package/dist/columnRule.js +25 -10
- package/dist/columnRule.js.map +1 -1
- package/dist/configWarnings.js +25 -2
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/calloutStyles.d.ts +1 -0
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +5 -0
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/folio.d.ts +24 -5
- package/dist/defaults/folio.d.ts.map +1 -1
- package/dist/defaults/folio.js +50 -6
- package/dist/defaults/folio.js.map +1 -1
- package/dist/defaults/headingStyles.d.ts.map +1 -1
- package/dist/defaults/headingStyles.js +2 -0
- package/dist/defaults/headingStyles.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +2 -2
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/layout.d.ts +15 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +28 -0
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/page.d.ts.map +1 -1
- package/dist/defaults/page.js +6 -0
- package/dist/defaults/page.js.map +1 -1
- package/dist/defaults/shared.d.ts +3 -0
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +6 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/defaults/videoStyle.d.ts.map +1 -1
- package/dist/defaults/videoStyle.js +1 -0
- package/dist/defaults/videoStyle.js.map +1 -1
- package/dist/html-backend.js +1 -1
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pipeline/build.d.ts +3 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +100 -8
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/cjkGrid.d.ts +3 -2
- package/dist/pipeline/cjkGrid.d.ts.map +1 -1
- package/dist/pipeline/cjkGrid.js +8 -7
- package/dist/pipeline/cjkGrid.js.map +1 -1
- package/dist/pipeline/config.d.ts +2 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +7 -7
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +3 -0
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +7 -0
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +7 -4
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js +26 -2
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +11 -1
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +25 -0
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/types.d.ts +55 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +10 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/dist/video/playback.d.ts +29 -0
- package/dist/video/playback.d.ts.map +1 -0
- package/dist/video/playback.js +70 -0
- package/dist/video/playback.js.map +1 -0
- package/dist/video/url.d.ts +2 -1
- package/dist/video/url.d.ts.map +1 -1
- package/dist/video/url.js +5 -1
- package/dist/video/url.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzS,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAExS,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC7H,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGvG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGhW,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEzR,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE9L,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpI,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/build.d.ts
CHANGED
|
@@ -69,6 +69,9 @@ export interface PassHints {
|
|
|
69
69
|
/** `footnotes.numbering: 'page'` / `'column'`: the number each note got
|
|
70
70
|
* where the previous build set it (see `numberFootnotesByPlacement`). */
|
|
71
71
|
footnoteNumbers?: ReadonlyMap<string, string>;
|
|
72
|
+
/** Trailing-cap passes: the page each floated resource took in the layout
|
|
73
|
+
* the caps level (see `proposeTrailingCap`). */
|
|
74
|
+
floatPages?: ReadonlyMap<string, number>;
|
|
72
75
|
}
|
|
73
76
|
export interface PassResult extends BandPassReport {
|
|
74
77
|
doc: VDTDocument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAqI,MAAM,UAAU,CAAC;AAIjM,OAAO,EAML,KAAK,WAAW,EAUjB,MAAM,QAAQ,CAAC;AAoBhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/build.js
CHANGED
|
@@ -35,7 +35,7 @@ import { appendChapterEndNotes, footnoteIdsOfLines, footnoteParagraphStyle, note
|
|
|
35
35
|
import { planParts, derivePartMeasureContext } from './parts';
|
|
36
36
|
import { layoutCallout, offsetBlock, offsetCalloutToAbsolute, pickCalloutStyle, planCallouts, resolveCalloutAttrs, } from './calloutLayout';
|
|
37
37
|
import { layoutResourceBlock, planTableSlice } from './resourceLayout';
|
|
38
|
-
import { computeFloatPlan, floatedResourceIds, } from './floatPlacement';
|
|
38
|
+
import { computeFloatPlan, floatedResourceIds, floatColumnCount, } from './floatPlacement';
|
|
39
39
|
import { enumerateCurrentPageSlots, measureFloatBand, floatGapAbove, measureSideStack, clearSideObstacles, columnHasFloatBand, fitsStrict, trueBottom, } from './floatSlots';
|
|
40
40
|
import { computeHeadingContext, computeResourceNumbering, } from './resourceNumbering';
|
|
41
41
|
import { documentLocale, effectiveResourceTypes } from '../defaults/resourceTypes';
|
|
@@ -73,6 +73,18 @@ export class BuildCancelledError extends Error {
|
|
|
73
73
|
this.name = 'BuildCancelledError';
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
/** The page each floated resource of `doc` lies on (its first slice's). */
|
|
77
|
+
function floatPagesOf(doc) {
|
|
78
|
+
const out = new Map();
|
|
79
|
+
for (const page of doc.pages) {
|
|
80
|
+
for (const f of page.floats ?? []) {
|
|
81
|
+
const id = f.resourceBlock?.resource.id;
|
|
82
|
+
if (id && !out.has(id))
|
|
83
|
+
out.set(id, page.index);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
76
88
|
/** `{chapterNumber}` at each content block: the value of the last level-1
|
|
77
89
|
* heading at or before it ('' before the first), by the counter the
|
|
78
90
|
* running heads use over the placed blocks (`computeChapterNumbers`) —
|
|
@@ -186,7 +198,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
186
198
|
}
|
|
187
199
|
}
|
|
188
200
|
function placeDocumentPass(content, config, cache, options, hints) {
|
|
189
|
-
const { balanceExtraPx, balanceLooseness, balanceLooseBudget, bandCaps, captionUnder } = hints;
|
|
201
|
+
const { balanceExtraPx, balanceLooseness, balanceLooseBudget, bandCaps, captionUnder, floatPages } = hints;
|
|
190
202
|
const captionUnderProposals = new Set();
|
|
191
203
|
/** Side columns whose foot a figure's side caption has cut, by the figure. */
|
|
192
204
|
const asideCutBy = new WeakMap();
|
|
@@ -599,6 +611,7 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
599
611
|
const calloutBandPages = new Set();
|
|
600
612
|
const enqueueCalloutFloat = (startIdx, plan, style, L, placement, span) => {
|
|
601
613
|
const key = `${CALLOUT_FLOAT_PREFIX}${startIdx}`;
|
|
614
|
+
const columns = plan.attrs.columns !== undefined ? floatColumnCount(plan.attrs.columns) : style.columns;
|
|
602
615
|
// A keep-with-next replay passes the fence again: enqueue once.
|
|
603
616
|
if (!enqueuedFloatIds.has(key)) {
|
|
604
617
|
enqueuedFloatIds.add(key);
|
|
@@ -610,6 +623,7 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
610
623
|
firstBlockIdx: startIdx,
|
|
611
624
|
position: placement,
|
|
612
625
|
span: span === 'page' ? 'page' : 'column',
|
|
626
|
+
...(span === 'column' && columns > 1 ? { columns } : {}),
|
|
613
627
|
callout: { startIdx },
|
|
614
628
|
...(col ? { refPageIndex: page.index, refY: col.bbox.y + (col.bbox.height - col.availableHeight) } : {}),
|
|
615
629
|
});
|
|
@@ -618,6 +632,15 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
618
632
|
for (let i = startIdx + 1; i <= plan.endIdx; i++)
|
|
619
633
|
enqueueFloatsFor(i);
|
|
620
634
|
};
|
|
635
|
+
/** The measure of `n` adjacent text columns of `col`'s band from `col`
|
|
636
|
+
* on, gutters included (as many as the band has). */
|
|
637
|
+
const acrossWidth = (page, col, n) => {
|
|
638
|
+
if (n <= 1)
|
|
639
|
+
return col.bbox.width;
|
|
640
|
+
const run = bandColumns(page, col.band ?? 0).filter((c) => c.kind !== 'side' && c.kind !== 'span' && c.bbox.x >= col.bbox.x - 0.5).slice(0, n);
|
|
641
|
+
const last = run[run.length - 1] ?? col;
|
|
642
|
+
return last.bbox.x + last.bbox.width - col.bbox.x;
|
|
643
|
+
};
|
|
621
644
|
const floatGapPx = bodyStyle.lineHeightPx;
|
|
622
645
|
const minTextPx = bodyStyle.lineHeightPx * 3;
|
|
623
646
|
/** Fewest body rows the closing slice of a split table carries. */
|
|
@@ -981,7 +1004,9 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
981
1004
|
* measured. */
|
|
982
1005
|
const probeFloatBand = (page, f, targetCols, position, pageSpan, anchorToCap, side = false, refY) => {
|
|
983
1006
|
const first = targetCols[0];
|
|
984
|
-
const
|
|
1007
|
+
const last = targetCols[targetCols.length - 1];
|
|
1008
|
+
// A float across several columns takes their measure, gutters included.
|
|
1009
|
+
const slotWidth = pageSpan ? page.contentArea.width : side ? first.bbox.width : last.bbox.x + last.bbox.width - first.bbox.x;
|
|
985
1010
|
const slotX = pageSpan ? page.contentArea.x : first.bbox.x;
|
|
986
1011
|
// A narrower float (`placement.width`) sits in its slot per `align`.
|
|
987
1012
|
const width = f.widthFraction && f.widthFraction < 1 ? slotWidth * f.widthFraction : slotWidth;
|
|
@@ -994,7 +1019,7 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
994
1019
|
// The caption beside the figure, in the band's side column.
|
|
995
1020
|
let aside;
|
|
996
1021
|
let sideCol;
|
|
997
|
-
if (f.captionSide && !pageSpan && !side && !rotated && !captionUnder?.has(f.resourceId)) {
|
|
1022
|
+
if (f.captionSide && !pageSpan && !side && !rotated && targetCols.length === 1 && !captionUnder?.has(f.resourceId)) {
|
|
998
1023
|
const sc = sideColumnOf(page, first.band ?? 0);
|
|
999
1024
|
if (sc && sc.bbox.width > 0.5) {
|
|
1000
1025
|
sideCol = sc;
|
|
@@ -1377,6 +1402,29 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
1377
1402
|
}
|
|
1378
1403
|
return best;
|
|
1379
1404
|
};
|
|
1405
|
+
/** The run of `n` adjacent text columns a float across several
|
|
1406
|
+
* columns takes on a fresh page: the least reserved at the head (or
|
|
1407
|
+
* foot) of those whose bands start (or end) level, the leftmost of
|
|
1408
|
+
* equals, after a split table's previous slice. */
|
|
1409
|
+
const leastReservedGroup = (f, n, pos) => {
|
|
1410
|
+
const after = f.notBefore && f.notBefore.pageIndex === page.index ? f.notBefore.columnIndex : -1;
|
|
1411
|
+
let best;
|
|
1412
|
+
let bestLoad = Infinity;
|
|
1413
|
+
for (let i = 0; i + n <= textCols.length; i++) {
|
|
1414
|
+
const group = textCols.slice(i, i + n);
|
|
1415
|
+
if (group[0].index <= after)
|
|
1416
|
+
continue;
|
|
1417
|
+
const edge = (c) => (pos === 'top' ? c.bbox.y : c.bbox.y + c.bbox.height);
|
|
1418
|
+
if (!group.every((c) => Math.abs(edge(c) - edge(group[0])) < 0.5))
|
|
1419
|
+
continue;
|
|
1420
|
+
const load = group.reduce((m, c) => Math.max(m, reservedOf(c).top + reservedOf(c).bottom), 0);
|
|
1421
|
+
if (load < bestLoad - 0.5) {
|
|
1422
|
+
best = group;
|
|
1423
|
+
bestLoad = load;
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
return best;
|
|
1427
|
+
};
|
|
1380
1428
|
// Order of the passes: page-span floats take the outer bands; column
|
|
1381
1429
|
// floats whose caption goes to the side column reserve it before the
|
|
1382
1430
|
// waiting side boxes and side floats stack there; the rest follow.
|
|
@@ -1398,7 +1446,8 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
1398
1446
|
let i = 0;
|
|
1399
1447
|
while (i < pendingFloats.length) {
|
|
1400
1448
|
const f = pendingFloats[i];
|
|
1401
|
-
const
|
|
1449
|
+
const across = Math.min(f.columns ?? 1, textCols.length);
|
|
1450
|
+
const isPageSpan = (f.span === 'page' || (across > 1 && across === textCols.length)) && (textCols.length > 1 || sideCols.length > 0);
|
|
1402
1451
|
const isSide = !isPageSpan && f.span === 'side' && sideCols.length > 0;
|
|
1403
1452
|
const kind = isPageSpan ? 'page' : isSide ? 'side' : f.captionSide && sideCols.length > 0 ? 'aside' : 'column';
|
|
1404
1453
|
if (kind !== pass || heldBack(i)) {
|
|
@@ -1416,6 +1465,15 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
1416
1465
|
}
|
|
1417
1466
|
else {
|
|
1418
1467
|
for (const pos of positionsFor(f)) {
|
|
1468
|
+
if (!isPageSpan && across > 1) {
|
|
1469
|
+
const group = leastReservedGroup(f, across, pos);
|
|
1470
|
+
if (!group)
|
|
1471
|
+
continue;
|
|
1472
|
+
r = placeFloatInColumns(page, f, group, pos, false, 'fresh');
|
|
1473
|
+
if (r !== 'defer')
|
|
1474
|
+
break;
|
|
1475
|
+
continue;
|
|
1476
|
+
}
|
|
1419
1477
|
const col = isPageSpan ? undefined : leastReserved(f);
|
|
1420
1478
|
if (!isPageSpan && !col)
|
|
1421
1479
|
break;
|
|
@@ -2399,7 +2457,14 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
2399
2457
|
return;
|
|
2400
2458
|
if (activeCap && activeCap.spanIndex === boundaryIndex
|
|
2401
2459
|
&& activeCap.pageIndex === page.index && activeCap.band === band) {
|
|
2402
|
-
|
|
2460
|
+
// The cut must not cost a float its page: one the uncut layout set on
|
|
2461
|
+
// this page and the cut band left no room for (a picture across
|
|
2462
|
+
// several columns that fitted beside the uneven columns) would go to
|
|
2463
|
+
// a page of its own at the chapter's end. Not delivered: the cap is
|
|
2464
|
+
// tried a line lower, then dropped (#505).
|
|
2465
|
+
const displaced = floatPages && pendingFloats.some((f) => floatPages.get(f.resourceId) === page.index);
|
|
2466
|
+
if (!displaced)
|
|
2467
|
+
spanPlacedInBand.add(boundaryIndex);
|
|
2403
2468
|
return;
|
|
2404
2469
|
}
|
|
2405
2470
|
// A cap in force for this boundary that did not open the band the
|
|
@@ -3713,7 +3778,9 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
3713
3778
|
const floating = (placement === 'auto' || placement === 'top' || placement === 'bottom') && span !== 'side';
|
|
3714
3779
|
if (floating) {
|
|
3715
3780
|
const page = doc.pages[cursor.pageIndex];
|
|
3716
|
-
const
|
|
3781
|
+
const col = currentColumn(doc, cursor);
|
|
3782
|
+
const across = span === 'column' ? (plan.attrs.columns !== undefined ? floatColumnCount(plan.attrs.columns) : style.columns) : 1;
|
|
3783
|
+
const width = span === 'page' ? page.contentArea.width : acrossWidth(page, col, across);
|
|
3717
3784
|
const inFlow = tallerThanColumn(L.layoutRange(CUT_START, L.end, width, 'float-probe', false))
|
|
3718
3785
|
&& splitCalloutFragment(L, CUT_START, width, contentArea.height, 'float-probe', false, style.splitMinLines) !== null;
|
|
3719
3786
|
if (!inFlow) {
|
|
@@ -5882,6 +5949,25 @@ function* buildDocumentBalanced(content, config, cache, options, tocRound = 0, f
|
|
|
5882
5949
|
}
|
|
5883
5950
|
return owner;
|
|
5884
5951
|
};
|
|
5952
|
+
/** Whether two block lists set the same content: every content index
|
|
5953
|
+
* that one places, the other places too (in however many pieces). */
|
|
5954
|
+
const sameContent = (a, b) => {
|
|
5955
|
+
const set = (list) => {
|
|
5956
|
+
const out = new Set();
|
|
5957
|
+
for (const blk of list)
|
|
5958
|
+
if (blk.contentIndex !== undefined)
|
|
5959
|
+
out.add(blk.contentIndex);
|
|
5960
|
+
return out;
|
|
5961
|
+
};
|
|
5962
|
+
const sa = set(a);
|
|
5963
|
+
const sb = set(b);
|
|
5964
|
+
if (sa.size !== sb.size)
|
|
5965
|
+
return false;
|
|
5966
|
+
for (const k of sa)
|
|
5967
|
+
if (!sb.has(k))
|
|
5968
|
+
return false;
|
|
5969
|
+
return true;
|
|
5970
|
+
};
|
|
5885
5971
|
/** First page each content index was placed on. */
|
|
5886
5972
|
const pageOfContent = (doc) => {
|
|
5887
5973
|
const m = new Map();
|
|
@@ -5927,6 +6013,12 @@ function* buildDocumentBalanced(content, config, cache, options, tocRound = 0, f
|
|
|
5927
6013
|
...(best.doc.warnings ?? []).filter((w) => !taken(w.pageIndex)),
|
|
5928
6014
|
...(next.doc.warnings ?? []).filter((w) => taken(w.pageIndex)),
|
|
5929
6015
|
].sort((a, b) => (a.pageIndex ?? -1) - (b.pageIndex ?? -1));
|
|
6016
|
+
// Everything the layout sets must survive the splice: a float or box
|
|
6017
|
+
// that moved to a page outside the ranges in `next` (one drained before
|
|
6018
|
+
// a chapter's end) would otherwise drop out of both halves (#515).
|
|
6019
|
+
// Such a splice is not taken.
|
|
6020
|
+
if (!sameContent(blocks, next.doc.blocks))
|
|
6021
|
+
return best;
|
|
5930
6022
|
const doc = { ...best.doc, pages, blocks, ...(warnings.length > 0 ? { warnings } : { warnings: undefined }) };
|
|
5931
6023
|
const pageBest = pageOfContent(best.doc);
|
|
5932
6024
|
const pageNext = pageOfContent(next.doc);
|
|
@@ -6173,7 +6265,7 @@ function* buildDocumentBalanced(content, config, cache, options, tocRound = 0, f
|
|
|
6173
6265
|
// fill what the cut left short (a column ending a line under the cap).
|
|
6174
6266
|
if (balancing.trailing) {
|
|
6175
6267
|
const frozen = hintsFrom(applied.lines, applied.loose);
|
|
6176
|
-
const trailing = yield* resolveTrailingCapsGen(best, bandCaps, (caps) => runPass({ ...frozen, bandCaps: caps }));
|
|
6268
|
+
const trailing = yield* resolveTrailingCapsGen(best, bandCaps, (caps) => runPass({ ...frozen, bandCaps: caps, floatPages: floatPagesOf(best.doc) }));
|
|
6177
6269
|
passCount += trailing.passCount;
|
|
6178
6270
|
if (trailing.result !== best) {
|
|
6179
6271
|
best = trailing.result;
|