postext 1.2.1 → 1.2.3
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__/canvasPageScale.test.d.ts +2 -0
- package/dist/__tests__/canvasPageScale.test.d.ts.map +1 -0
- package/dist/__tests__/canvasPageScale.test.js +48 -0
- package/dist/__tests__/canvasPageScale.test.js.map +1 -0
- package/dist/__tests__/columnBalancing.test.js +62 -2
- package/dist/__tests__/columnBalancing.test.js.map +1 -1
- package/dist/__tests__/columnClip.test.d.ts +2 -0
- package/dist/__tests__/columnClip.test.d.ts.map +1 -0
- package/dist/__tests__/columnClip.test.js +27 -0
- package/dist/__tests__/columnClip.test.js.map +1 -0
- package/dist/__tests__/defaults/calloutStyles.test.js +5 -0
- package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
- package/dist/__tests__/defaults/tableStyles.test.d.ts +2 -0
- package/dist/__tests__/defaults/tableStyles.test.d.ts.map +1 -0
- package/dist/__tests__/defaults/tableStyles.test.js +56 -0
- package/dist/__tests__/defaults/tableStyles.test.js.map +1 -0
- package/dist/__tests__/design/paintOrder.test.d.ts +2 -0
- package/dist/__tests__/design/paintOrder.test.d.ts.map +1 -0
- package/dist/__tests__/design/paintOrder.test.js +75 -0
- package/dist/__tests__/design/paintOrder.test.js.map +1 -0
- package/dist/__tests__/design/slotContainers.test.d.ts +2 -0
- package/dist/__tests__/design/slotContainers.test.d.ts.map +1 -0
- package/dist/__tests__/design/slotContainers.test.js +70 -0
- package/dist/__tests__/design/slotContainers.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +12 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/html-backend.test.js +23 -0
- package/dist/__tests__/html-backend.test.js.map +1 -1
- package/dist/__tests__/parts.test.js +89 -0
- package/dist/__tests__/parts.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutNested.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutNested.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutNested.test.js +264 -0
- package/dist/__tests__/pipeline/calloutNested.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutOverflow.test.js +39 -3
- package/dist/__tests__/pipeline/calloutOverflow.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutSnapToGrid.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutSnapToGrid.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutSnapToGrid.test.js +72 -0
- package/dist/__tests__/pipeline/calloutSnapToGrid.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js +166 -0
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js.map +1 -0
- package/dist/__tests__/pipeline/chips.test.d.ts +2 -0
- package/dist/__tests__/pipeline/chips.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/chips.test.js +230 -0
- package/dist/__tests__/pipeline/chips.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatFirstSlot.test.js +53 -0
- package/dist/__tests__/pipeline/floatFirstSlot.test.js.map +1 -1
- package/dist/__tests__/pipeline/scratchDeepSky.test.d.ts +3 -0
- package/dist/__tests__/pipeline/scratchDeepSky.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/scratchDeepSky.test.js +137 -0
- package/dist/__tests__/pipeline/scratchDeepSky.test.js.map +1 -0
- package/dist/__tests__/pipeline/spanBands.test.js +18 -0
- package/dist/__tests__/pipeline/spanBands.test.js.map +1 -1
- package/dist/__tests__/pipeline/spanBlocks.test.js +3 -2
- package/dist/__tests__/pipeline/spanBlocks.test.js.map +1 -1
- package/dist/__tests__/pipeline/tableCellImages.test.js +87 -1
- package/dist/__tests__/pipeline/tableCellImages.test.js.map +1 -1
- package/dist/__tests__/pipeline/tableStyles.test.d.ts +2 -0
- package/dist/__tests__/pipeline/tableStyles.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/tableStyles.test.js +188 -0
- package/dist/__tests__/pipeline/tableStyles.test.js.map +1 -0
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +10 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/chip.d.ts +10 -0
- package/dist/canvas-backend/chip.d.ts.map +1 -0
- package/dist/canvas-backend/chip.js +49 -0
- package/dist/canvas-backend/chip.js.map +1 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +14 -27
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +48 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/columnClip.d.ts +16 -0
- package/dist/columnClip.d.ts.map +1 -0
- package/dist/columnClip.js +37 -0
- package/dist/columnClip.js.map +1 -0
- package/dist/defaults/calloutStyles.d.ts +1 -0
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +7 -0
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/chipStyles.d.ts +28 -0
- package/dist/defaults/chipStyles.d.ts.map +1 -0
- package/dist/defaults/chipStyles.js +102 -0
- package/dist/defaults/chipStyles.js.map +1 -0
- package/dist/defaults/index.d.ts +2 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +18 -2
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/parts.d.ts +1 -0
- package/dist/defaults/parts.d.ts.map +1 -1
- package/dist/defaults/parts.js +4 -0
- package/dist/defaults/parts.js.map +1 -1
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +43 -16
- package/dist/defaults/shared.js.map +1 -1
- package/dist/defaults/tableStyle.d.ts +17 -1
- package/dist/defaults/tableStyle.d.ts.map +1 -1
- package/dist/defaults/tableStyle.js +46 -0
- package/dist/defaults/tableStyle.js.map +1 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +10 -6
- package/dist/design/layout.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +72 -5
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +3 -1
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +7 -4
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +7 -1
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/chipEdges.d.ts +5 -0
- package/dist/measure/chipEdges.d.ts.map +1 -0
- package/dist/measure/chipEdges.js +20 -0
- package/dist/measure/chipEdges.js.map +1 -0
- package/dist/measure/rich.d.ts +12 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +128 -5
- package/dist/measure/rich.js.map +1 -1
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +10 -7
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/index.d.ts +3 -3
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +1 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +28 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +52 -0
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/inlineSnippet.d.ts +2 -1
- package/dist/parse/inlineSnippet.d.ts.map +1 -1
- package/dist/parse/inlineSnippet.js +6 -4
- package/dist/parse/inlineSnippet.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +25 -1
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +31 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +2 -0
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +261 -60
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +52 -4
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +161 -26
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/chips.d.ts +27 -0
- package/dist/pipeline/chips.d.ts.map +1 -0
- package/dist/pipeline/chips.js +56 -0
- package/dist/pipeline/chips.js.map +1 -0
- package/dist/pipeline/columnBalancing.d.ts +1 -1
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +99 -1
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +3 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +0 -4
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +42 -15
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +6 -1
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/partPalette.d.ts +6 -0
- package/dist/pipeline/partPalette.d.ts.map +1 -0
- package/dist/pipeline/partPalette.js +96 -0
- package/dist/pipeline/partPalette.js.map +1 -0
- package/dist/pipeline/placeholders.d.ts +2 -1
- package/dist/pipeline/placeholders.d.ts.map +1 -1
- package/dist/pipeline/placeholders.js +11 -1
- package/dist/pipeline/placeholders.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +35 -11
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/types.d.ts +141 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +88 -2
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +17 -0
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,9 +22,21 @@
|
|
|
22
22
|
*
|
|
23
23
|
* A style with `keepTogether: false` may be split by the placement code
|
|
24
24
|
* between its children; every fragment is laid out here as a box of its own
|
|
25
|
-
* (`continuation` drops the title and icon of the later ones).
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* (`continuation` drops the title and icon of the later ones).
|
|
26
|
+
*
|
|
27
|
+
* A `:::callout` fence inside a box is a box of its own: laid out
|
|
28
|
+
* recursively with its own style at the parent's inner width, it stacks
|
|
29
|
+
* as one child of the parent (its `marginTop` / `marginBottom` collapse
|
|
30
|
+
* with its neighbours like a paragraph's). Its `span` and `placement` are
|
|
31
|
+
* ignored — it always flows inside its parent. Its frame and children join
|
|
32
|
+
* the parent's flat child list (frame first) and keep the top-level box's
|
|
33
|
+
* `containerId`, so placement and balancing still see one unit;
|
|
34
|
+
* `calloutPath` records the nesting. A fragment of a split box that opens
|
|
35
|
+
* or ends inside a nested box (`openNested`, an unclosed nested fence)
|
|
36
|
+
* redraws the nested frame too, as a continuation when it opens inside it.
|
|
37
|
+
*
|
|
38
|
+
* Limit: `width: 'auto'` shrink-wraps the title only and ignores the
|
|
39
|
+
* children.
|
|
28
40
|
*/
|
|
29
41
|
import type { ContentBlock, DirectiveAttrs } from '../parse';
|
|
30
42
|
import type { CalloutPlacement, CalloutSpan, ResolvedCalloutStyleConfig } from '../types';
|
|
@@ -96,12 +108,48 @@ export interface CalloutLayoutInput {
|
|
|
96
108
|
/** The box lands on a verso of mirrored margins: an `'outer'` corner icon
|
|
97
109
|
* hangs on the left corner there. */
|
|
98
110
|
mirrored?: boolean;
|
|
111
|
+
/** Nested boxes a continuation fragment opens inside, outermost first:
|
|
112
|
+
* their opening markers are not among `children`, which start inside
|
|
113
|
+
* the innermost one. Each is redrawn as a continuation box around the
|
|
114
|
+
* children up to its closing marker (or the end of `children`). */
|
|
115
|
+
openNested?: readonly OpenNestedCallout[];
|
|
116
|
+
/** `calloutPath` of the box's frame and children: set when the box is
|
|
117
|
+
* itself nested (see `VDTBlock.calloutPath`). */
|
|
118
|
+
nestPath?: readonly number[];
|
|
119
|
+
}
|
|
120
|
+
/** An enclosing nested fence a fragment opens inside (see `openNested`). */
|
|
121
|
+
export interface OpenNestedCallout {
|
|
122
|
+
/** Content index of its opening marker. */
|
|
123
|
+
idx: number;
|
|
124
|
+
block: ContentBlock;
|
|
99
125
|
}
|
|
126
|
+
/** A nested box laid out inside its parent (see {@link CalloutUnit}). */
|
|
127
|
+
export interface NestedCalloutLayout {
|
|
128
|
+
result: CalloutLayoutResult;
|
|
129
|
+
style: ResolvedCalloutStyleConfig;
|
|
130
|
+
/** Content index of the nested fence's opening marker. */
|
|
131
|
+
startIdx: number;
|
|
132
|
+
/** Content index of its closing marker; `undefined` when the laid-out
|
|
133
|
+
* range ends inside the box. */
|
|
134
|
+
endIdx?: number;
|
|
135
|
+
}
|
|
136
|
+
/** A direct item of a laid-out box: a child block, or a nested box (whose
|
|
137
|
+
* frame and blocks also sit in the flat `children`). */
|
|
138
|
+
export type CalloutUnit = {
|
|
139
|
+
kind: 'block';
|
|
140
|
+
block: VDTBlock;
|
|
141
|
+
} | {
|
|
142
|
+
kind: 'box';
|
|
143
|
+
box: NestedCalloutLayout;
|
|
144
|
+
};
|
|
100
145
|
export interface CalloutLayoutResult {
|
|
101
146
|
/** The frame block (`type: 'callout'`); decoration on `designOverlay`. */
|
|
102
147
|
frame: VDTBlock;
|
|
103
|
-
/** Content blocks in reading order, block-relative to the frame origin
|
|
148
|
+
/** Content blocks in reading order, block-relative to the frame origin —
|
|
149
|
+
* a nested box's frame followed by its own blocks, recursively. */
|
|
104
150
|
children: VDTBlock[];
|
|
151
|
+
/** The box's direct items in reading order (the split code walks them). */
|
|
152
|
+
units: CalloutUnit[];
|
|
105
153
|
/** Frame width actually used (`width`, or the shrink-wrapped width for
|
|
106
154
|
* `width: 'auto'`). */
|
|
107
155
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,13 +22,25 @@
|
|
|
22
22
|
*
|
|
23
23
|
* A style with `keepTogether: false` may be split by the placement code
|
|
24
24
|
* between its children; every fragment is laid out here as a box of its own
|
|
25
|
-
* (`continuation` drops the title and icon of the later ones).
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* (`continuation` drops the title and icon of the later ones).
|
|
26
|
+
*
|
|
27
|
+
* A `:::callout` fence inside a box is a box of its own: laid out
|
|
28
|
+
* recursively with its own style at the parent's inner width, it stacks
|
|
29
|
+
* as one child of the parent (its `marginTop` / `marginBottom` collapse
|
|
30
|
+
* with its neighbours like a paragraph's). Its `span` and `placement` are
|
|
31
|
+
* ignored — it always flows inside its parent. Its frame and children join
|
|
32
|
+
* the parent's flat child list (frame first) and keep the top-level box's
|
|
33
|
+
* `containerId`, so placement and balancing still see one unit;
|
|
34
|
+
* `calloutPath` records the nesting. A fragment of a split box that opens
|
|
35
|
+
* or ends inside a nested box (`openNested`, an unclosed nested fence)
|
|
36
|
+
* redraws the nested frame too, as a continuation when it opens inside it.
|
|
37
|
+
*
|
|
38
|
+
* Limit: `width: 'auto'` shrink-wraps the title only and ignores the
|
|
39
|
+
* children.
|
|
28
40
|
*/
|
|
29
41
|
import { dimensionToPx } from '../units';
|
|
30
42
|
import { createBoundingBox, createVDTBlock, } from '../vdt';
|
|
31
|
-
import { buildFontString, measureBlock, measureTextWidth } from '../measure';
|
|
43
|
+
import { buildFontString, measureBlock, measureRichBlock, measureTextWidth } from '../measure';
|
|
32
44
|
import { applyStyleAttrs, isMarkerBlock } from './buildHelpers';
|
|
33
45
|
import { resetLinePositions } from './placement';
|
|
34
46
|
import { resolveBodyStyle, resolveBlockquoteStyle } from './styles';
|
|
@@ -98,6 +110,7 @@ export function deriveCalloutResolvedConfig(resolved, style) {
|
|
|
98
110
|
lineHeight: body.lineHeight,
|
|
99
111
|
color: body.color,
|
|
100
112
|
boldColor: body.boldColor ?? body.color,
|
|
113
|
+
...(body.italicColor ? { italicColor: body.italicColor } : {}),
|
|
101
114
|
textAlign: body.textAlign,
|
|
102
115
|
hyphenation: { ...resolved.bodyText.hyphenation, enabled: body.hyphenation },
|
|
103
116
|
paragraphSpacing: body.paragraphSpacing,
|
|
@@ -214,6 +227,13 @@ function offsetBlock(blk, ox, oy) {
|
|
|
214
227
|
blk.bulletY += oy;
|
|
215
228
|
if (blk.resourceBlock)
|
|
216
229
|
offsetResourceBlock(blk.resourceBlock, ox, oy);
|
|
230
|
+
// A nested box's frame carries its decoration on the overlay.
|
|
231
|
+
if (blk.designOverlay) {
|
|
232
|
+
blk.designOverlay.bbox.x += ox;
|
|
233
|
+
blk.designOverlay.bbox.y += oy;
|
|
234
|
+
for (const b of blk.designOverlay.blocks)
|
|
235
|
+
offsetDesignBlock(b, ox, oy);
|
|
236
|
+
}
|
|
217
237
|
}
|
|
218
238
|
function offsetDesignBlock(b, ox, oy) {
|
|
219
239
|
b.bbox.x += ox;
|
|
@@ -322,10 +342,11 @@ export function layoutCallout(input) {
|
|
|
322
342
|
let titleBlock;
|
|
323
343
|
if (hasTitle) {
|
|
324
344
|
const titleW = Math.max(1, innerWidth - titleIndentPx);
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
345
|
+
// Tracking only widens lines on the rich path: the plain breaker would
|
|
346
|
+
// fit an untracked line and the tracked title would overrun the box.
|
|
347
|
+
const measured = titleTrackingPx > 0
|
|
348
|
+
? measureRichBlock([{ text: titleText, bold: false, italic: false }], titleFont, titleFont, titleFont, titleFont, titleW, titleLineHeight, { textAlign: 'left', letterSpacingPx: titleTrackingPx })
|
|
349
|
+
: measureBlock(titleText, titleFont, titleW, titleLineHeight, { textAlign: 'left' });
|
|
329
350
|
const lines = measured.lines.length > 0
|
|
330
351
|
? measured.lines
|
|
331
352
|
: [{ text: titleText, bbox: createBoundingBox(0, 0, titleW, titleLineHeight), baseline: titleLineHeight * 0.8, hyphenated: false }];
|
|
@@ -352,12 +373,14 @@ export function layoutCallout(input) {
|
|
|
352
373
|
// the line boundaries that level the columns best, and takes the height
|
|
353
374
|
// of the tallest column.
|
|
354
375
|
const childBlocks = [];
|
|
376
|
+
const units = [];
|
|
377
|
+
const nestPath = input.nestPath && input.nestPath.length > 0 ? input.nestPath : undefined;
|
|
355
378
|
const columnGapPx = px(style.columnGap);
|
|
356
379
|
const isFirstRealOf = (k) => children.slice(0, k).every((c) => c.type === 'directive' || isMarkerBlock(c));
|
|
357
380
|
const isLastRealOf = (k) => children.slice(k + 1).every((c) => c.type === 'directive' || isMarkerBlock(c));
|
|
358
381
|
/** Lay out one child at `width` from `x`, appending it to `into` and
|
|
359
382
|
* advancing the stack. */
|
|
360
|
-
const placeChild = (raw, k, width, x, st, into) => {
|
|
383
|
+
const placeChild = (raw, k, width, x, st, into, unitsInto) => {
|
|
361
384
|
const blockIdx = childStartIdx + k;
|
|
362
385
|
const measuredBlock = measureContentBlock(raw, blockIdx, width, derivedCtx, {
|
|
363
386
|
styleOverride: input.paragraphStyleFor?.(blockIdx),
|
|
@@ -385,6 +408,8 @@ export function layoutCallout(input) {
|
|
|
385
408
|
blk.dirty = false;
|
|
386
409
|
blk.snappedToGrid = false;
|
|
387
410
|
blk.headingLevel = headingLevel;
|
|
411
|
+
if (nestPath)
|
|
412
|
+
blk.calloutPath = [...nestPath];
|
|
388
413
|
if (numberPrefix)
|
|
389
414
|
blk.numberPrefix = numberPrefix;
|
|
390
415
|
blk.sourceMap = absoluteSourceMap;
|
|
@@ -465,12 +490,85 @@ export function layoutCallout(input) {
|
|
|
465
490
|
blk.listKind = listKind;
|
|
466
491
|
}
|
|
467
492
|
into.push(blk);
|
|
493
|
+
unitsInto.push({ kind: 'block', block: blk });
|
|
468
494
|
st.cursorY += height;
|
|
469
495
|
st.prevMarginBottom = bs.marginBottomPx;
|
|
470
496
|
st.prevWasListItem = vdtType === 'listItem';
|
|
471
497
|
st.first = false;
|
|
472
498
|
return blk;
|
|
473
499
|
};
|
|
500
|
+
/** Lay out the nested box whose fence opens with `open` (content index
|
|
501
|
+
* `openIdx`) over `children[k0 … k1 - 1]` — `k1` is its closing marker's
|
|
502
|
+
* position, or `children.length` when the range ends inside it — at
|
|
503
|
+
* `width` from `x`, appending its frame and blocks to `into` (one unit)
|
|
504
|
+
* and advancing the stack. `reopened` marks a box the fragment opens
|
|
505
|
+
* inside: a continuation of it, holding the line cut `lineFrom` and the
|
|
506
|
+
* boxes `openRest` it opens inside in turn. Returns the blocks, frame
|
|
507
|
+
* first, or `undefined` when no style applies (then the caller flattens). */
|
|
508
|
+
const placeNested = (open, openIdx, k0, k1, width, x, st, into, unitsInto, reopened) => {
|
|
509
|
+
const nestedStyle = pickCalloutStyle(input.resolved.calloutStyles, open.containerAttrs?.type);
|
|
510
|
+
if (!nestedStyle || open.containerId === undefined)
|
|
511
|
+
return undefined;
|
|
512
|
+
const closed = k1 < children.length;
|
|
513
|
+
const nested = layoutCallout({
|
|
514
|
+
style: nestedStyle,
|
|
515
|
+
attrs: open.containerAttrs ?? {},
|
|
516
|
+
children: children.slice(k0, k1),
|
|
517
|
+
childStartIdx: childStartIdx + k0,
|
|
518
|
+
width,
|
|
519
|
+
ctx,
|
|
520
|
+
resolved: input.resolved,
|
|
521
|
+
containerId,
|
|
522
|
+
frameId: input.nextChildId(),
|
|
523
|
+
nextChildId: input.nextChildId,
|
|
524
|
+
...(input.paragraphStyleFor ? { paragraphStyleFor: input.paragraphStyleFor } : {}),
|
|
525
|
+
...(input.bodyOffset !== undefined ? { bodyOffset: input.bodyOffset } : {}),
|
|
526
|
+
continuation: !!reopened,
|
|
527
|
+
...(reopened && input.lineFrom !== undefined ? { lineFrom: input.lineFrom } : {}),
|
|
528
|
+
...(!closed && input.lineTo !== undefined ? { lineTo: input.lineTo } : {}),
|
|
529
|
+
...(reopened && reopened.openRest.length > 0 ? { openNested: reopened.openRest } : {}),
|
|
530
|
+
mirrored: input.mirrored,
|
|
531
|
+
nestPath: [...(nestPath ?? []), open.containerId],
|
|
532
|
+
});
|
|
533
|
+
// Spacing above: as a paragraph's (margin collapsing, none at the top
|
|
534
|
+
// of the box beyond the title gap).
|
|
535
|
+
const spacing = st.first ? st.prevMarginBottom : Math.max(st.prevMarginBottom, nested.marginTopPx);
|
|
536
|
+
st.cursorY += spacing;
|
|
537
|
+
const { frame } = nested;
|
|
538
|
+
frame.contentIndex = openIdx;
|
|
539
|
+
// The box always flows inside its parent.
|
|
540
|
+
if (frame.callout) {
|
|
541
|
+
frame.callout.span = 'column';
|
|
542
|
+
frame.callout.placement = 'here';
|
|
543
|
+
}
|
|
544
|
+
const bodyOff = input.bodyOffset ?? ctx.bodyOffset;
|
|
545
|
+
const firstRaw = reopened ? children[k0] : open;
|
|
546
|
+
const lastRaw = closed ? children[k1] : children[k1 - 1];
|
|
547
|
+
if (firstRaw)
|
|
548
|
+
frame.sourceStart = firstRaw.sourceStart + bodyOff;
|
|
549
|
+
if (lastRaw)
|
|
550
|
+
frame.sourceEnd = lastRaw.sourceEnd + bodyOff;
|
|
551
|
+
offsetCalloutToAbsolute(nested, x, st.cursorY);
|
|
552
|
+
const blocks = [frame, ...nested.children];
|
|
553
|
+
into.push(...blocks);
|
|
554
|
+
unitsInto.push({
|
|
555
|
+
kind: 'box',
|
|
556
|
+
box: { result: nested, style: nestedStyle, startIdx: openIdx, ...(closed ? { endIdx: childStartIdx + k1 } : {}) },
|
|
557
|
+
});
|
|
558
|
+
st.cursorY += nested.totalHeight;
|
|
559
|
+
st.prevMarginBottom = nested.marginBottomPx;
|
|
560
|
+
st.prevWasListItem = false;
|
|
561
|
+
st.first = false;
|
|
562
|
+
return blocks;
|
|
563
|
+
};
|
|
564
|
+
/** Position of the marker closing the nested fence `id` opened before
|
|
565
|
+
* position `from`, or `children.length` when the range ends inside it. */
|
|
566
|
+
const closeOf = (id, from) => {
|
|
567
|
+
let e = from;
|
|
568
|
+
while (e < children.length && !(children[e].type === 'containerEnd' && children[e].containerId === id))
|
|
569
|
+
e++;
|
|
570
|
+
return e;
|
|
571
|
+
};
|
|
474
572
|
/** The tail of a text block cut at line `l`: a block of its own with the
|
|
475
573
|
* lines from `l` on (no bullet — the head keeps it), at y = 0. */
|
|
476
574
|
const tailOf = (blk, l) => {
|
|
@@ -489,7 +587,8 @@ export function layoutCallout(input) {
|
|
|
489
587
|
tail.sourceStart = tail.lines[0]?.sourceStart ?? blk.sourceStart;
|
|
490
588
|
return tail;
|
|
491
589
|
};
|
|
492
|
-
/** A `:::columns{count=N}` group: children `k0 … k1 - 1` in N columns.
|
|
590
|
+
/** A `:::columns{count=N}` group: children `k0 … k1 - 1` in N columns.
|
|
591
|
+
* A nested box among them is one item: never cut, moved whole. */
|
|
493
592
|
const placeColumnsGroup = (k0, k1, count, st, breaks) => {
|
|
494
593
|
const cols = Math.max(1, Math.min(6, count));
|
|
495
594
|
const colW = Math.max(1, (innerWidth - columnGapPx * (cols - 1)) / cols);
|
|
@@ -497,21 +596,34 @@ export function layoutCallout(input) {
|
|
|
497
596
|
const spacing = st.first ? st.prevMarginBottom : st.prevMarginBottom;
|
|
498
597
|
const groupTop = st.cursorY + spacing;
|
|
499
598
|
const gst = { cursorY: 0, prevMarginBottom: 0, prevWasListItem: false, first: true };
|
|
599
|
+
/** The group's items: a child block, or a nested box's blocks (frame first). */
|
|
500
600
|
const stack = [];
|
|
501
601
|
for (let k = k0; k < k1; k++) {
|
|
502
602
|
const raw = children[k];
|
|
603
|
+
const into = [];
|
|
604
|
+
const unitsInto = [];
|
|
605
|
+
if (raw.type === 'containerStart' && raw.containerName === 'callout') {
|
|
606
|
+
const e = closeOf(raw.containerId, k + 1);
|
|
607
|
+
if (placeNested(raw, childStartIdx + k, k + 1, Math.min(e, k1), colW, innerX, gst, into, unitsInto)) {
|
|
608
|
+
stack.push({ blocks: into, unit: unitsInto[0] });
|
|
609
|
+
k = e;
|
|
610
|
+
continue;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
503
613
|
if (raw.type === 'directive' || isMarkerBlock(raw))
|
|
504
614
|
continue;
|
|
505
|
-
placeChild(raw, k, colW, innerX, gst,
|
|
615
|
+
if (placeChild(raw, k, colW, innerX, gst, into, unitsInto))
|
|
616
|
+
stack.push({ blocks: into, unit: unitsInto[0] });
|
|
506
617
|
}
|
|
507
618
|
if (stack.length === 0)
|
|
508
619
|
return;
|
|
509
620
|
const total = gst.cursorY;
|
|
510
621
|
const candidates = [];
|
|
511
|
-
stack.forEach((
|
|
622
|
+
stack.forEach((item, i) => {
|
|
623
|
+
const blk = item.blocks[0];
|
|
512
624
|
if (i > 0)
|
|
513
625
|
candidates.push({ y: blk.bbox.y, block: i, line: 0 });
|
|
514
|
-
const cuttable = blk.type !== 'resource' && blk.type !== 'mathDisplay' && blk.lines.length > 1 && !blk.mathRender;
|
|
626
|
+
const cuttable = item.unit.kind === 'block' && blk.type !== 'resource' && blk.type !== 'mathDisplay' && blk.lines.length > 1 && !blk.mathRender;
|
|
515
627
|
if (cuttable) {
|
|
516
628
|
for (let l = 1; l < blk.lines.length; l++)
|
|
517
629
|
candidates.push({ y: blk.lines[l].bbox.y, block: i, line: l });
|
|
@@ -526,7 +638,7 @@ export function layoutCallout(input) {
|
|
|
526
638
|
const i = b - 1;
|
|
527
639
|
if (i <= 0 || i >= stack.length)
|
|
528
640
|
continue;
|
|
529
|
-
const y = stack[i].bbox.y;
|
|
641
|
+
const y = stack[i].blocks[0].bbox.y;
|
|
530
642
|
if (y <= prevY + 0.01)
|
|
531
643
|
continue;
|
|
532
644
|
cuts.push({ y, block: i, line: 0 });
|
|
@@ -549,14 +661,14 @@ export function layoutCallout(input) {
|
|
|
549
661
|
prevY = best.y;
|
|
550
662
|
}
|
|
551
663
|
}
|
|
552
|
-
// Split the stack at the cuts into columns of
|
|
664
|
+
// Split the stack at the cuts into columns of items; a cut inside a
|
|
553
665
|
// text block leaves its head behind and opens the next column with the
|
|
554
666
|
// tail (a block of its own, bullet-less).
|
|
555
667
|
const columns = [[]];
|
|
556
668
|
const columnStarts = [0];
|
|
557
669
|
let cutIdx = 0;
|
|
558
670
|
for (let i = 0; i < stack.length; i++) {
|
|
559
|
-
let
|
|
671
|
+
let item = stack[i];
|
|
560
672
|
while (cutIdx < cuts.length && cuts[cutIdx].block === i && cuts[cutIdx].line === 0) {
|
|
561
673
|
columns.push([]);
|
|
562
674
|
columnStarts.push(cuts[cutIdx].y);
|
|
@@ -564,6 +676,7 @@ export function layoutCallout(input) {
|
|
|
564
676
|
}
|
|
565
677
|
let consumed = 0;
|
|
566
678
|
while (cutIdx < cuts.length && cuts[cutIdx].block === i && cuts[cutIdx].line > 0) {
|
|
679
|
+
const blk = item.blocks[0];
|
|
567
680
|
const cut = cuts[cutIdx];
|
|
568
681
|
const l = cut.line - consumed;
|
|
569
682
|
cutIdx++;
|
|
@@ -573,23 +686,26 @@ export function layoutCallout(input) {
|
|
|
573
686
|
const tail = tailOf(blk, l);
|
|
574
687
|
blk.lines = blk.lines.slice(0, l);
|
|
575
688
|
blk.bbox = createBoundingBox(blk.bbox.x, blk.bbox.y, blk.bbox.width, l * lh);
|
|
576
|
-
columns[columns.length - 1].push(
|
|
689
|
+
columns[columns.length - 1].push(item);
|
|
577
690
|
offsetBlock(tail, 0, cut.y);
|
|
578
691
|
columns.push([]);
|
|
579
692
|
columnStarts.push(cut.y);
|
|
580
693
|
consumed += l;
|
|
581
|
-
|
|
694
|
+
item = { blocks: [tail], unit: { kind: 'block', block: tail } };
|
|
582
695
|
}
|
|
583
|
-
columns[columns.length - 1].push(
|
|
696
|
+
columns[columns.length - 1].push(item);
|
|
584
697
|
}
|
|
585
698
|
let groupHeight = 0;
|
|
586
|
-
columns.forEach((
|
|
699
|
+
columns.forEach((items, c) => {
|
|
587
700
|
const shiftX = c * (colW + columnGapPx);
|
|
588
701
|
const shiftY = groupTop - (columnStarts[c] ?? 0);
|
|
589
|
-
for (const
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
702
|
+
for (const item of items) {
|
|
703
|
+
for (const blk of item.blocks) {
|
|
704
|
+
offsetBlock(blk, shiftX, shiftY);
|
|
705
|
+
childBlocks.push(blk);
|
|
706
|
+
groupHeight = Math.max(groupHeight, blk.bbox.y + blk.bbox.height - groupTop);
|
|
707
|
+
}
|
|
708
|
+
units.push(item.unit);
|
|
593
709
|
}
|
|
594
710
|
});
|
|
595
711
|
st.cursorY = groupTop + groupHeight;
|
|
@@ -599,8 +715,24 @@ export function layoutCallout(input) {
|
|
|
599
715
|
};
|
|
600
716
|
const st = { cursorY, prevMarginBottom: hasTitle ? gapPx : 0, prevWasListItem: false, first: true };
|
|
601
717
|
if (!isAuto) {
|
|
602
|
-
|
|
718
|
+
let k0 = 0;
|
|
719
|
+
// A continuation opening inside a nested box redraws it (and the boxes
|
|
720
|
+
// it opens inside in turn) around the children up to its closing marker.
|
|
721
|
+
const [reopen, ...openRest] = input.openNested ?? [];
|
|
722
|
+
if (reopen) {
|
|
723
|
+
const e = closeOf(reopen.block.containerId, 0);
|
|
724
|
+
placeNested(reopen.block, reopen.idx, 0, e, innerWidth, innerX, st, childBlocks, units, { openRest });
|
|
725
|
+
k0 = e + 1;
|
|
726
|
+
}
|
|
727
|
+
for (let k = k0; k < children.length; k++) {
|
|
603
728
|
const raw = children[k];
|
|
729
|
+
if (raw.type === 'containerStart' && raw.containerName === 'callout') {
|
|
730
|
+
const e = closeOf(raw.containerId, k + 1);
|
|
731
|
+
if (placeNested(raw, childStartIdx + k, k + 1, e, innerWidth, innerX, st, childBlocks, units)) {
|
|
732
|
+
k = e;
|
|
733
|
+
continue;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
604
736
|
if (raw.type === 'containerStart' && raw.containerName === 'columns') {
|
|
605
737
|
let e = k + 1;
|
|
606
738
|
while (e < children.length && !(children[e].type === 'containerEnd' && children[e].containerName === 'columns' && children[e].containerId === raw.containerId))
|
|
@@ -613,7 +745,7 @@ export function layoutCallout(input) {
|
|
|
613
745
|
}
|
|
614
746
|
if (raw.type === 'directive' || isMarkerBlock(raw))
|
|
615
747
|
continue;
|
|
616
|
-
placeChild(raw, k, innerWidth, innerX, st, childBlocks);
|
|
748
|
+
placeChild(raw, k, innerWidth, innerX, st, childBlocks, units);
|
|
617
749
|
}
|
|
618
750
|
}
|
|
619
751
|
cursorY = st.cursorY;
|
|
@@ -815,6 +947,8 @@ export function layoutCallout(input) {
|
|
|
815
947
|
frame.dirty = false;
|
|
816
948
|
frame.snappedToGrid = false;
|
|
817
949
|
frame.containerId = containerId;
|
|
950
|
+
if (nestPath)
|
|
951
|
+
frame.calloutPath = [...nestPath];
|
|
818
952
|
frame.designOverlay = overlay;
|
|
819
953
|
frame.callout = {
|
|
820
954
|
styleId: style.id,
|
|
@@ -830,6 +964,7 @@ export function layoutCallout(input) {
|
|
|
830
964
|
return {
|
|
831
965
|
frame,
|
|
832
966
|
children: childBlocks,
|
|
967
|
+
units,
|
|
833
968
|
width,
|
|
834
969
|
totalHeight: frameHeight,
|
|
835
970
|
marginTopPx: px(style.marginTop),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calloutLayout.js","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calloutLayout.js","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
|