postext 0.3.30 → 0.3.32
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__/pipeline/paragraphStyles.test.js +19 -0
- package/dist/__tests__/pipeline/paragraphStyles.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedLines.test.d.ts +2 -0
- package/dist/__tests__/pipeline/raggedLines.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/raggedLines.test.js +26 -0
- package/dist/__tests__/pipeline/raggedLines.test.js.map +1 -0
- package/dist/__tests__/pipeline/spanFloatAtCut.test.js +6 -2
- package/dist/__tests__/pipeline/spanFloatAtCut.test.js.map +1 -1
- package/dist/__tests__/pipeline/trailingBand.test.js +67 -0
- package/dist/__tests__/pipeline/trailingBand.test.js.map +1 -1
- package/dist/__tests__/wordBreaks.test.d.ts +2 -0
- package/dist/__tests__/wordBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/wordBreaks.test.js +63 -0
- package/dist/__tests__/wordBreaks.test.js.map +1 -0
- package/dist/knuthPlass/richAdapter.d.ts +2 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +5 -4
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/knuthPlass/types.d.ts +3 -0
- package/dist/knuthPlass/types.d.ts.map +1 -1
- package/dist/measure/rich.d.ts +3 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +89 -21
- package/dist/measure/rich.js.map +1 -1
- package/dist/pipeline/bandCaps.d.ts +10 -6
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +33 -17
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +35 -19
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +4 -1
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/paragraphContainers.d.ts.map +1 -1
- package/dist/pipeline/paragraphContainers.js +4 -1
- package/dist/pipeline/paragraphContainers.js.map +1 -1
- package/dist/pipeline/raggedLines.d.ts +16 -0
- package/dist/pipeline/raggedLines.d.ts.map +1 -0
- package/dist/pipeline/raggedLines.js +28 -0
- package/dist/pipeline/raggedLines.js.map +1 -0
- package/dist/vdt.d.ts +4 -0
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/pipeline/raggedUrl.test.d.ts +0 -2
- package/dist/__tests__/pipeline/raggedUrl.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline/raggedUrl.test.js +0 -22
- package/dist/__tests__/pipeline/raggedUrl.test.js.map +0 -1
- package/dist/pipeline/raggedUrl.d.ts +0 -15
- package/dist/pipeline/raggedUrl.d.ts.map +0 -1
- package/dist/pipeline/raggedUrl.js +0 -28
- package/dist/pipeline/raggedUrl.js.map +0 -1
package/dist/measure/rich.js
CHANGED
|
@@ -36,6 +36,71 @@ export function urlBreakIndices(text) {
|
|
|
36
36
|
}
|
|
37
37
|
return out;
|
|
38
38
|
}
|
|
39
|
+
const LETTER_RE = /\p{L}/u;
|
|
40
|
+
/** Break opportunities inside a word: after each soft hyphen the dictionary
|
|
41
|
+
* inserted (a hyphen is added when the line ends there) and after a hard
|
|
42
|
+
* hyphen between two letters — "enseñanza-aprendizaje" — where the line
|
|
43
|
+
* ends on the hyphen the word already carries. `part` still holds the
|
|
44
|
+
* soft hyphens, `clean` is the text as laid out. */
|
|
45
|
+
function wordBreakPoints(part, clean, font, letterSpacingPx) {
|
|
46
|
+
const out = [];
|
|
47
|
+
const widthBefore = (idx) => measureTextWidth(clean.slice(0, idx), font) + letterSpacingPx * idx;
|
|
48
|
+
let priorSoft = 0;
|
|
49
|
+
for (let i = 0; i < part.length; i++) {
|
|
50
|
+
const ch = part[i];
|
|
51
|
+
if (ch === SOFT_HYPHEN) {
|
|
52
|
+
const idx = i - priorSoft;
|
|
53
|
+
if (idx > 0 && idx < clean.length && !out.some((b) => b.charIndex === idx))
|
|
54
|
+
out.push({ charIndex: idx, widthBefore: widthBefore(idx) });
|
|
55
|
+
priorSoft++;
|
|
56
|
+
}
|
|
57
|
+
else if (ch === '-' && i > 0 && i < part.length - 1 && LETTER_RE.test(part[i - 1]) && LETTER_RE.test(part[i + 1])) {
|
|
58
|
+
const idx = i - priorSoft + 1;
|
|
59
|
+
out.push({ charIndex: idx, widthBefore: widthBefore(idx), bare: true });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A word wider than the whole line (a table cell, a narrow column): divide
|
|
66
|
+
* it at the last syllable that fits — the dictionary's, a hyphen added —
|
|
67
|
+
* or, when none does, at the last character that fits, so no word ever
|
|
68
|
+
* runs past its measure. Null when not even one character fits.
|
|
69
|
+
*/
|
|
70
|
+
function emergencySplit(token, font, letterSpacingPx, lineMaxWidth) {
|
|
71
|
+
const text = token.text;
|
|
72
|
+
if (text.length < 2)
|
|
73
|
+
return null;
|
|
74
|
+
const hyphenW = measureTextWidth('-', font) + letterSpacingPx;
|
|
75
|
+
const widthBefore = (idx) => measureTextWidth(text.slice(0, idx), font) + letterSpacingPx * idx;
|
|
76
|
+
const fits = (idx) => widthBefore(idx) + hyphenW <= lineMaxWidth;
|
|
77
|
+
let at = 0;
|
|
78
|
+
const syllabified = hyphenateText(text);
|
|
79
|
+
let priorSoft = 0;
|
|
80
|
+
for (let i = 0; i < syllabified.length; i++) {
|
|
81
|
+
if (syllabified[i] !== SOFT_HYPHEN)
|
|
82
|
+
continue;
|
|
83
|
+
const idx = i - priorSoft;
|
|
84
|
+
priorSoft++;
|
|
85
|
+
if (idx > 0 && idx < text.length && fits(idx))
|
|
86
|
+
at = idx;
|
|
87
|
+
}
|
|
88
|
+
if (at === 0) {
|
|
89
|
+
for (let idx = text.length - 1; idx >= 1; idx--) {
|
|
90
|
+
if (fits(idx)) {
|
|
91
|
+
at = idx;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (at === 0)
|
|
97
|
+
return null;
|
|
98
|
+
const flags = { bold: token.bold, italic: token.italic, captionLabel: token.captionLabel };
|
|
99
|
+
return {
|
|
100
|
+
head: { ...flags, text: text.slice(0, at) + '-', kind: 'text', width: widthBefore(at) + hyphenW },
|
|
101
|
+
tail: { ...flags, text: text.slice(at), kind: 'text', width: token.width - widthBefore(at) },
|
|
102
|
+
};
|
|
103
|
+
}
|
|
39
104
|
function tokenizeSpans(spans, normalFont, boldFont, italicFont, boldItalicFont, shouldHyphenate, letterSpacingPx = 0) {
|
|
40
105
|
const tokens = [];
|
|
41
106
|
// Tracking: every character (spaces included) advances `letterSpacingPx`
|
|
@@ -100,28 +165,16 @@ function tokenizeSpans(spans, normalFont, boldFont, italicFont, boldItalicFont,
|
|
|
100
165
|
});
|
|
101
166
|
continue;
|
|
102
167
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const breakPoints = [];
|
|
107
|
-
let priorSoft = 0;
|
|
108
|
-
for (let i = 0; i < part.length; i++) {
|
|
109
|
-
if (part[i] === SOFT_HYPHEN) {
|
|
110
|
-
const cleanIdx = i - priorSoft;
|
|
111
|
-
breakPoints.push({
|
|
112
|
-
charIndex: cleanIdx,
|
|
113
|
-
widthBefore: measureTextWidth(clean.slice(0, cleanIdx), font) + letterSpacingPx * cleanIdx,
|
|
114
|
-
});
|
|
115
|
-
priorSoft++;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
168
|
+
const clean = isSpace ? part : part.replace(/\u00AD/g, '');
|
|
169
|
+
const breakPoints = isSpace ? [] : wordBreakPoints(part, clean, font, letterSpacingPx);
|
|
170
|
+
if (breakPoints.length > 0) {
|
|
118
171
|
tokens.push({
|
|
119
172
|
text: clean,
|
|
120
173
|
bold: span.bold,
|
|
121
174
|
italic: span.italic,
|
|
122
175
|
captionLabel: span.captionLabel,
|
|
123
176
|
kind: 'text',
|
|
124
|
-
width:
|
|
177
|
+
width: measureTextWidth(clean, font) + track(clean),
|
|
125
178
|
breakPoints,
|
|
126
179
|
hyphenWidth: measureTextWidth('-', font) + letterSpacingPx,
|
|
127
180
|
});
|
|
@@ -222,19 +275,21 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
222
275
|
tokenIdx++;
|
|
223
276
|
continue;
|
|
224
277
|
}
|
|
225
|
-
// Doesn't fit. Try to split at a soft
|
|
278
|
+
// Doesn't fit. Try to split at a break point (a soft hyphen, a hard
|
|
279
|
+
// hyphen inside the word, a URL joint).
|
|
226
280
|
if (token.kind === 'text' && token.breakPoints && token.breakPoints.length > 0) {
|
|
227
281
|
const remaining = lineMaxWidth - lineWidth;
|
|
228
|
-
const
|
|
229
|
-
const mark = token.bareBreaks ? '' : '-';
|
|
282
|
+
const markW = (bp) => (token.bareBreaks || bp.bare ? 0 : (token.hyphenWidth ?? 0));
|
|
230
283
|
let chosen = null;
|
|
231
284
|
for (const bp of token.breakPoints) {
|
|
232
|
-
if (bp.widthBefore +
|
|
285
|
+
if (bp.widthBefore + markW(bp) <= remaining)
|
|
233
286
|
chosen = bp;
|
|
234
287
|
else
|
|
235
288
|
break;
|
|
236
289
|
}
|
|
237
290
|
if (chosen) {
|
|
291
|
+
const hyphenW = markW(chosen);
|
|
292
|
+
const mark = token.bareBreaks || chosen.bare ? '' : '-';
|
|
238
293
|
lineTokens.push({
|
|
239
294
|
text: token.text.slice(0, chosen.charIndex) + mark,
|
|
240
295
|
bold: token.bold,
|
|
@@ -249,7 +304,7 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
249
304
|
const chosenWidth = chosen.widthBefore;
|
|
250
305
|
const residualBreakPoints = token.breakPoints
|
|
251
306
|
.filter((bp) => bp.charIndex > chosenIdx)
|
|
252
|
-
.map((bp) => ({ charIndex: bp.charIndex - chosenIdx, widthBefore: bp.widthBefore - chosenWidth }));
|
|
307
|
+
.map((bp) => ({ ...bp, charIndex: bp.charIndex - chosenIdx, widthBefore: bp.widthBefore - chosenWidth }));
|
|
253
308
|
tokens[tokenIdx] = {
|
|
254
309
|
text: token.text.slice(chosenIdx),
|
|
255
310
|
bold: token.bold,
|
|
@@ -265,6 +320,19 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
265
320
|
break;
|
|
266
321
|
}
|
|
267
322
|
}
|
|
323
|
+
// A word wider than the whole line: divide it rather than let it run
|
|
324
|
+
// past the measure (syllable first, then character).
|
|
325
|
+
if (lineTokens.length === 0 && token.kind === 'text' && !token.mathRender && token.refResourceId === undefined && token.width > lineMaxWidth) {
|
|
326
|
+
const font = pickSpanFont(token.bold, token.italic, normalFont, boldFont, italicFont, boldItalicFont);
|
|
327
|
+
const split = emergencySplit(token, font, letterSpacingPx, lineMaxWidth);
|
|
328
|
+
if (split) {
|
|
329
|
+
lineTokens.push(split.head);
|
|
330
|
+
lineWidth += split.head.width;
|
|
331
|
+
lineHyphenated = true;
|
|
332
|
+
tokens[tokenIdx] = split.tail;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
268
336
|
// No viable split. If line is empty, force-fit this token; else break to next line.
|
|
269
337
|
if (lineTokens.length === 0) {
|
|
270
338
|
lineTokens.push(token);
|
package/dist/measure/rich.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich.js","sourceRoot":"","sources":["../../src/measure/rich.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rich.js","sourceRoot":"","sources":["../../src/measure/rich.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ export declare function bandTop(cols: readonly VDTColumn[]): number;
|
|
|
78
78
|
* column already ending above the cut (bottom float) is left alone. A
|
|
79
79
|
* column that already holds content keeps its used height — the cap then
|
|
80
80
|
* only trims what is left. */
|
|
81
|
-
export declare function applyBandCap(cols: readonly VDTColumn[], capPx: number, uncappedBottoms: Map<VDTColumn, number>, zone?: BandCapZone): void;
|
|
81
|
+
export declare function applyBandCap(cols: readonly VDTColumn[], capPx: number, uncappedBottoms: Map<VDTColumn, number>, zone?: BandCapZone, trailing?: boolean): void;
|
|
82
82
|
/** Give capped columns their true bottom back (the slack below the cap
|
|
83
83
|
* returns to `availableHeight`). */
|
|
84
84
|
export declare function uncapBand(cols: readonly VDTColumn[], uncappedBottoms: Map<VDTColumn, number>): void;
|
|
@@ -126,11 +126,15 @@ export declare function resolveBandCaps<T extends BandPassReport>(initial: T, ru
|
|
|
126
126
|
* already in force, and `runPass` re-places the document with the balancing
|
|
127
127
|
* hints frozen and the given caps. A trailing cap whose band overflowed
|
|
128
128
|
* (applied, not delivered) is retried one line taller; one whose band
|
|
129
|
-
* opened with a different block (not applied
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
129
|
+
* opened with a different block (not applied — an earlier cap's retry moved
|
|
130
|
+
* the flow under it) is replaced by the fresh proposal that pass made for
|
|
131
|
+
* the same boundary, else dropped. A boundary that proposes anew once the
|
|
132
|
+
* caps before it have settled (a dropped one, or a closing band the earlier
|
|
133
|
+
* caps uncovered) joins the next pass, so a cap that stumbles while another
|
|
134
|
+
* is still being retried is not lost. Span caps must stay delivered — a
|
|
135
|
+
* trailing cap that unsettles one is abandoned. The layout returned never
|
|
136
|
+
* carries an undelivered cap; when no trailing cap survives, `initial` is
|
|
137
|
+
* returned untouched.
|
|
134
138
|
*/
|
|
135
139
|
export declare function resolveTrailingCaps<T extends BandPassReport>(initial: T, spanCaps: ReadonlyMap<number, BandCap>, runPass: (bandCaps: ReadonlyMap<number, BandCap>) => T): {
|
|
136
140
|
result: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bandCaps.d.ts","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC;;uEAEuE;AACvE,MAAM,WAAW,OAAO;IACtB;;;wDAGoD;IACpD,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;qEACiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;qBAIiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;qDACqD;AACrD,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C;;sEAEkE;IAClE,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,6DAA6D;IAC7D,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACtC;AAED;mDACmD;AACnD,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAE1D;AAED;;;;;;;+BAO+B;AAC/B,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,EACvC,IAAI,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"bandCaps.d.ts","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ export function bandTop(cols) {
|
|
|
38
38
|
* column already ending above the cut (bottom float) is left alone. A
|
|
39
39
|
* column that already holds content keeps its used height — the cap then
|
|
40
40
|
* only trims what is left. */
|
|
41
|
-
export function applyBandCap(cols, capPx, uncappedBottoms, zone) {
|
|
41
|
+
export function applyBandCap(cols, capPx, uncappedBottoms, zone, trailing = false) {
|
|
42
42
|
const cut = bandTop(cols) + capPx;
|
|
43
43
|
for (let i = 0; i < cols.length; i++) {
|
|
44
44
|
const c = cols[i];
|
|
@@ -46,6 +46,8 @@ export function applyBandCap(cols, capPx, uncappedBottoms, zone) {
|
|
|
46
46
|
const height = Math.max(c.bbox.height - c.availableHeight, colCut - c.bbox.y);
|
|
47
47
|
if (c.bbox.height <= height + 0.01)
|
|
48
48
|
continue;
|
|
49
|
+
if (trailing)
|
|
50
|
+
c.trailingCap = true;
|
|
49
51
|
if (!uncappedBottoms.has(c))
|
|
50
52
|
uncappedBottoms.set(c, c.bbox.y + c.bbox.height);
|
|
51
53
|
const trimmed = c.bbox.height - height;
|
|
@@ -189,23 +191,35 @@ export function resolveBandCaps(initial, runPass) {
|
|
|
189
191
|
* already in force, and `runPass` re-places the document with the balancing
|
|
190
192
|
* hints frozen and the given caps. A trailing cap whose band overflowed
|
|
191
193
|
* (applied, not delivered) is retried one line taller; one whose band
|
|
192
|
-
* opened with a different block (not applied
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
194
|
+
* opened with a different block (not applied — an earlier cap's retry moved
|
|
195
|
+
* the flow under it) is replaced by the fresh proposal that pass made for
|
|
196
|
+
* the same boundary, else dropped. A boundary that proposes anew once the
|
|
197
|
+
* caps before it have settled (a dropped one, or a closing band the earlier
|
|
198
|
+
* caps uncovered) joins the next pass, so a cap that stumbles while another
|
|
199
|
+
* is still being retried is not lost. Span caps must stay delivered — a
|
|
200
|
+
* trailing cap that unsettles one is abandoned. The layout returned never
|
|
201
|
+
* carries an undelivered cap; when no trailing cap survives, `initial` is
|
|
202
|
+
* returned untouched.
|
|
197
203
|
*/
|
|
198
204
|
export function resolveTrailingCaps(initial, spanCaps, runPass) {
|
|
199
205
|
const caps = new Map(spanCaps);
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
206
|
+
/** Caps whose band did open under them and overflowed — the only ones a
|
|
207
|
+
* pass says anything about; a cap that never applied may come back. */
|
|
208
|
+
const tried = new Set();
|
|
209
|
+
/** Adopt the trailing proposals of `report` for boundaries without a cap
|
|
210
|
+
* in force (never one that already failed); returns how many were taken. */
|
|
211
|
+
const adopt = (report) => {
|
|
212
|
+
let taken = 0;
|
|
213
|
+
for (const [i, cap] of report.bandCapProposals) {
|
|
214
|
+
if (cap.kind !== 'trailing' || caps.has(i) || tried.has(capKey(i, cap)))
|
|
215
|
+
continue;
|
|
216
|
+
caps.set(i, { ...cap });
|
|
217
|
+
taken++;
|
|
218
|
+
}
|
|
219
|
+
return taken;
|
|
220
|
+
};
|
|
207
221
|
let passCount = 0;
|
|
208
|
-
if (
|
|
222
|
+
if (adopt(initial) === 0)
|
|
209
223
|
return { result: initial, caps, passCount };
|
|
210
224
|
const trailingKeys = () => [...caps].filter(([, c]) => c.kind === 'trailing').map(([i]) => i);
|
|
211
225
|
const giveUp = () => ({ result: initial, caps: new Map(spanCaps), passCount });
|
|
@@ -216,12 +230,11 @@ export function resolveTrailingCaps(initial, spanCaps, runPass) {
|
|
|
216
230
|
if ([...spanCaps.keys()].some((i) => !result.spanPlacedInBand.has(i)))
|
|
217
231
|
return giveUp();
|
|
218
232
|
const failing = trailingKeys().filter((i) => !result.spanPlacedInBand.has(i));
|
|
219
|
-
if (failing.length === 0)
|
|
220
|
-
return { result, caps, passCount };
|
|
221
233
|
for (const i of failing) {
|
|
222
234
|
const cap = caps.get(i);
|
|
223
235
|
const fresh = result.bandCapProposals.get(i);
|
|
224
236
|
if (result.bandCapsApplied.has(i)) {
|
|
237
|
+
tried.add(capKey(i, cap));
|
|
225
238
|
if (cap.retries < MAX_BAND_CAP_RETRIES) {
|
|
226
239
|
caps.set(i, { ...cap, lines: cap.lines + 1, retries: cap.retries + 1 });
|
|
227
240
|
}
|
|
@@ -229,13 +242,16 @@ export function resolveTrailingCaps(initial, spanCaps, runPass) {
|
|
|
229
242
|
caps.delete(i);
|
|
230
243
|
}
|
|
231
244
|
}
|
|
232
|
-
else if (fresh && fresh.kind === 'trailing') {
|
|
245
|
+
else if (fresh && fresh.kind === 'trailing' && !tried.has(capKey(i, fresh))) {
|
|
233
246
|
caps.set(i, { ...fresh });
|
|
234
247
|
}
|
|
235
248
|
else {
|
|
236
249
|
caps.delete(i);
|
|
237
250
|
}
|
|
238
251
|
}
|
|
252
|
+
const adopted = adopt(result);
|
|
253
|
+
if (failing.length === 0 && adopted === 0)
|
|
254
|
+
return { result, caps, passCount };
|
|
239
255
|
if (trailingKeys().length === 0)
|
|
240
256
|
return giveUp();
|
|
241
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bandCaps.js","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoCH;qDACqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AActC;mDACmD;AACnD,MAAM,UAAU,OAAO,CAAC,IAA0B;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;+BAO+B;AAC/B,MAAM,UAAU,YAAY,CAC1B,IAA0B,EAC1B,KAAa,EACb,eAAuC,EACvC,IAAkB;
|
|
1
|
+
{"version":3,"file":"bandCaps.js","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA0E,MAAM,UAAU,CAAC;AAGtI,OAAO,EAIL,KAAK,WAAW,EAMjB,MAAM,QAAQ,CAAC;AAYhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwEnD,OAAO,EAA+E,KAAK,WAAW,EAA6E,MAAM,mBAAmB,CAAC;AAC7M,OAAO,EAQL,KAAK,OAAO,EACZ,KAAK,cAAc,EAGpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA0E,MAAM,UAAU,CAAC;AAGtI,OAAO,EAIL,KAAK,WAAW,EAMjB,MAAM,QAAQ,CAAC;AAYhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwEnD,OAAO,EAA+E,KAAK,WAAW,EAA6E,MAAM,mBAAmB,CAAC;AAC7M,OAAO,EAQL,KAAK,OAAO,EACZ,KAAK,cAAc,EAGpB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;qCACiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAWD;yEACyE;AACzE,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;4EACwE;IACxE,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,EAAE,WAAW,CAAC;IACjB;;+DAE2D;IAC3D,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;4EAGwE;IACxE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,KAAK,GAAE,SAAc,GACpB,UAAU,CAwoFZ;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,WAAW,CAkLb"}
|
package/dist/pipeline/build.js
CHANGED
|
@@ -24,7 +24,10 @@ import { defaultResourceTypes } from '../defaults/resourceTypes';
|
|
|
24
24
|
import { buildHeadersAndFooters, measureHeadingAdvancedDesignHeight } from './headerFooter';
|
|
25
25
|
import { totalGapLines, proposeBalanceLines, collectColumnGaps, firstDivergentColumn, MAX_BALANCING_PASSES, balanceKey } from './columnBalancing';
|
|
26
26
|
import { applyBandCap, uncapBand, columnBottom, bandCapLines, bandTop, resolveBandCaps, resolveTrailingCaps, bandCapLinesAroundZone, } from './bandCaps';
|
|
27
|
-
import {
|
|
27
|
+
import { raggedLooseLines } from './raggedLines';
|
|
28
|
+
/** Tolerance for "does this block fit" checks against a column's free
|
|
29
|
+
* height, absorbing floating-point drift between grid multiples. */
|
|
30
|
+
const FIT_EPS = 0.01;
|
|
28
31
|
export class BuildCancelledError extends Error {
|
|
29
32
|
constructor() {
|
|
30
33
|
super('Build cancelled');
|
|
@@ -828,7 +831,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
828
831
|
for (const [spanIndex, cap] of bandCaps) {
|
|
829
832
|
if (cap.startContentIndex !== contentIndex || cap.startPart !== part)
|
|
830
833
|
continue;
|
|
831
|
-
applyBandCap(bandColumns(page, band), cap.lines * baselineGrid, uncappedBottoms, cap.zone);
|
|
834
|
+
applyBandCap(bandColumns(page, band), cap.lines * baselineGrid, uncappedBottoms, cap.zone, cap.kind === 'trailing');
|
|
832
835
|
activeCap = { spanIndex, pageIndex: page.index, band };
|
|
833
836
|
bandCapsApplied.add(spanIndex);
|
|
834
837
|
break;
|
|
@@ -863,13 +866,16 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
863
866
|
const cols = bandColumns(page, band).filter((c) => c.bbox.height > 0.5);
|
|
864
867
|
if (cols.length < 2 || cols.some((c) => c.forcedBreak))
|
|
865
868
|
return;
|
|
866
|
-
if (
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
spanPlacedInBand.add(boundaryIndex);
|
|
870
|
-
}
|
|
869
|
+
if (activeCap && activeCap.spanIndex === boundaryIndex
|
|
870
|
+
&& activeCap.pageIndex === page.index && activeCap.band === band) {
|
|
871
|
+
spanPlacedInBand.add(boundaryIndex);
|
|
871
872
|
return;
|
|
872
873
|
}
|
|
874
|
+
// A cap in force for this boundary that did not open the band the
|
|
875
|
+
// boundary is reached in (an earlier cap moved the flow under it, or
|
|
876
|
+
// its own band overflowed) still gets a fresh proposal below: the
|
|
877
|
+
// driver replaces a cap that no longer applies with it, and ignores it
|
|
878
|
+
// while retrying an applied cap a line taller.
|
|
873
879
|
if (activeCap && activeCap.pageIndex === page.index && activeCap.band === band)
|
|
874
880
|
return;
|
|
875
881
|
if (!cols.some((c) => c.blocks.length > 0))
|
|
@@ -1949,11 +1955,16 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
1949
1955
|
? paragraphContainers.byId.get(rawBlock.containerId)
|
|
1950
1956
|
: undefined;
|
|
1951
1957
|
if (pc) {
|
|
1958
|
+
// Margins collapse with the pending spacing; a negative one pulls
|
|
1959
|
+
// the flow up past it instead (the container starts inside the
|
|
1960
|
+
// space the previous block left, or the next block inside the
|
|
1961
|
+
// container's).
|
|
1962
|
+
const collapse = (margin) => margin < 0 ? pendingSpacing + margin : Math.max(pendingSpacing, margin);
|
|
1952
1963
|
if (rawBlock.type === 'containerStart') {
|
|
1953
|
-
pendingSpacing =
|
|
1964
|
+
pendingSpacing = collapse(pc.marginTopPx);
|
|
1954
1965
|
}
|
|
1955
1966
|
else if (contentBlocks[blockIdx - 1]?.type !== 'paragraph') {
|
|
1956
|
-
pendingSpacing =
|
|
1967
|
+
pendingSpacing = collapse(pc.marginBottomPx);
|
|
1957
1968
|
}
|
|
1958
1969
|
}
|
|
1959
1970
|
continue;
|
|
@@ -2120,8 +2131,9 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2120
2131
|
// List items may split too — orphan/widow protection per-list is gated by
|
|
2121
2132
|
// `avoidOrphansInLists` / `avoidWidowsInLists`; bullet stays on first part.
|
|
2122
2133
|
const canSplit = vdtType === 'paragraph' || vdtType === 'blockquote' || vdtType === 'listItem';
|
|
2123
|
-
// A justified line
|
|
2124
|
-
|
|
2134
|
+
// A justified line the breaker could not fill (a link breaking at its
|
|
2135
|
+
// joints, a last word that cannot come up) is set ragged, not stretched.
|
|
2136
|
+
let remainingLines = [...raggedLooseLines(measured.lines, style.textAlign)];
|
|
2125
2137
|
let partIndex = 0;
|
|
2126
2138
|
/** Times this block left an EMPTY short column (see `shortColumn`) —
|
|
2127
2139
|
* bounded so a page whose columns are all short (footnotes, design
|
|
@@ -2251,7 +2263,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2251
2263
|
: 1;
|
|
2252
2264
|
const splitAt = remainingLines.length - 1;
|
|
2253
2265
|
if (splitAt >= effectiveWidowMin) {
|
|
2254
|
-
if (spacingBefore
|
|
2266
|
+
if (spacingBefore !== 0)
|
|
2255
2267
|
curCol.availableHeight -= spacingBefore;
|
|
2256
2268
|
const splitLines = remainingLines.slice(0, splitAt);
|
|
2257
2269
|
const blk = createVDTBlock(id, vdtType, style.fontString, style.color, style.textAlign);
|
|
@@ -2327,8 +2339,10 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2327
2339
|
const shortColumn = shortColumnMoves < 4
|
|
2328
2340
|
&& !uncappedBottoms.has(curCol)
|
|
2329
2341
|
&& curCol.bbox.height < contentArea.height - baselineGrid;
|
|
2330
|
-
// Block fits in current column
|
|
2331
|
-
|
|
2342
|
+
// Block fits in current column (a hair of tolerance: a capped column
|
|
2343
|
+
// and the grid lines balancing adds above a block differ by floating
|
|
2344
|
+
// point noise, which must not push the block over the cut).
|
|
2345
|
+
if (effectiveRemainHeight <= effectiveAvailable + FIT_EPS) {
|
|
2332
2346
|
// Heading keep-with-next: never leave a heading as the last block of a
|
|
2333
2347
|
// column. If the following (non-heading) block wouldn't have room to
|
|
2334
2348
|
// place at least its widow-minimum number of lines after this heading,
|
|
@@ -2373,8 +2387,8 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2373
2387
|
continue;
|
|
2374
2388
|
}
|
|
2375
2389
|
}
|
|
2376
|
-
// Consume spacing
|
|
2377
|
-
if (spacingBefore
|
|
2390
|
+
// Consume spacing (negative: a container margin pulling the block up)
|
|
2391
|
+
if (spacingBefore !== 0) {
|
|
2378
2392
|
curCol.availableHeight -= spacingBefore;
|
|
2379
2393
|
}
|
|
2380
2394
|
const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
|
|
@@ -2437,7 +2451,9 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2437
2451
|
// the grid (e.g. marginBottom is an exact multiple of baselineGrid),
|
|
2438
2452
|
// don't round up to the next line.
|
|
2439
2453
|
const snappedBottom = Math.ceil((naturalBottom - 0.01) / baselineGrid) * baselineGrid;
|
|
2440
|
-
|
|
2454
|
+
// A negative margin below a container tail may snap the flow back
|
|
2455
|
+
// above the text's own bottom; never below the block's top.
|
|
2456
|
+
h = Math.max(0, snappedBottom - usedHeight);
|
|
2441
2457
|
}
|
|
2442
2458
|
placeBlockInColumn(blk, h, curCol, cursor);
|
|
2443
2459
|
finalizeListItem(blk, partIndex === 0);
|
|
@@ -2483,8 +2499,8 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
2483
2499
|
slackWeight: resolved.bodyText.slackWeight,
|
|
2484
2500
|
});
|
|
2485
2501
|
if (choice.splitAt > 0) {
|
|
2486
|
-
// Consume spacing
|
|
2487
|
-
if (spacingBefore
|
|
2502
|
+
// Consume spacing (negative: a container margin pulling the block up)
|
|
2503
|
+
if (spacingBefore !== 0) {
|
|
2488
2504
|
curCol.availableHeight -= spacingBefore;
|
|
2489
2505
|
}
|
|
2490
2506
|
const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
|