postext 1.35.1 → 1.37.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/__bench__/composedPage.bench.test.d.ts +2 -0
- package/dist/__bench__/composedPage.bench.test.d.ts.map +1 -0
- package/dist/__bench__/composedPage.bench.test.js +95 -0
- package/dist/__bench__/composedPage.bench.test.js.map +1 -0
- package/dist/__tests__/composed/continuation.test.d.ts +2 -0
- package/dist/__tests__/composed/continuation.test.d.ts.map +1 -0
- package/dist/__tests__/composed/continuation.test.js +352 -0
- package/dist/__tests__/composed/continuation.test.js.map +1 -0
- package/dist/__tests__/composed/contrast.test.d.ts +2 -0
- package/dist/__tests__/composed/contrast.test.d.ts.map +1 -0
- package/dist/__tests__/composed/contrast.test.js +124 -0
- package/dist/__tests__/composed/contrast.test.js.map +1 -0
- package/dist/__tests__/composed/corpus.test.js +7 -1
- package/dist/__tests__/composed/corpus.test.js.map +1 -1
- package/dist/__tests__/composed/fit.test.d.ts +2 -0
- package/dist/__tests__/composed/fit.test.d.ts.map +1 -0
- package/dist/__tests__/composed/fit.test.js +408 -0
- package/dist/__tests__/composed/fit.test.js.map +1 -0
- package/dist/__tests__/composed/groups.test.js +14 -0
- package/dist/__tests__/composed/groups.test.js.map +1 -1
- package/dist/__tests__/composed/headingDesigns.test.d.ts +2 -0
- package/dist/__tests__/composed/headingDesigns.test.d.ts.map +1 -0
- package/dist/__tests__/composed/headingDesigns.test.js +262 -0
- package/dist/__tests__/composed/headingDesigns.test.js.map +1 -0
- package/dist/__tests__/composed/labels.test.d.ts +2 -0
- package/dist/__tests__/composed/labels.test.d.ts.map +1 -0
- package/dist/__tests__/composed/labels.test.js +326 -0
- package/dist/__tests__/composed/labels.test.js.map +1 -0
- package/dist/__tests__/composed/layout.test.js +2 -1
- package/dist/__tests__/composed/layout.test.js.map +1 -1
- package/dist/__tests__/composed/outsidePrint.test.js +5 -2
- package/dist/__tests__/composed/outsidePrint.test.js.map +1 -1
- package/dist/__tests__/composed/pageMemo.test.d.ts +2 -0
- package/dist/__tests__/composed/pageMemo.test.d.ts.map +1 -0
- package/dist/__tests__/composed/pageMemo.test.js +128 -0
- package/dist/__tests__/composed/pageMemo.test.js.map +1 -0
- package/dist/__tests__/composed/sourceMap.test.d.ts +2 -0
- package/dist/__tests__/composed/sourceMap.test.d.ts.map +1 -0
- package/dist/__tests__/composed/sourceMap.test.js +395 -0
- package/dist/__tests__/composed/sourceMap.test.js.map +1 -0
- package/dist/__tests__/composed/spreadLabels.test.d.ts +2 -0
- package/dist/__tests__/composed/spreadLabels.test.d.ts.map +1 -0
- package/dist/__tests__/composed/spreadLabels.test.js +131 -0
- package/dist/__tests__/composed/spreadLabels.test.js.map +1 -0
- package/dist/__tests__/composed/templateFrameRects.test.d.ts +2 -0
- package/dist/__tests__/composed/templateFrameRects.test.d.ts.map +1 -0
- package/dist/__tests__/composed/templateFrameRects.test.js +37 -0
- package/dist/__tests__/composed/templateFrameRects.test.js.map +1 -0
- package/dist/__tests__/design/imageAltText.test.js +2 -1
- package/dist/__tests__/design/imageAltText.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +33 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/migrate/fixtures/textbookPort.d.ts +14 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.d.ts.map +1 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.js +116 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.js.map +1 -0
- package/dist/__tests__/migrate/textToMarkdown.test.d.ts +2 -0
- package/dist/__tests__/migrate/textToMarkdown.test.d.ts.map +1 -0
- package/dist/__tests__/migrate/textToMarkdown.test.js +268 -0
- package/dist/__tests__/migrate/textToMarkdown.test.js.map +1 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts +2 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts.map +1 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.js +89 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.js.map +1 -0
- package/dist/__tests__/pictureBelowPrintSize.test.d.ts +2 -0
- package/dist/__tests__/pictureBelowPrintSize.test.d.ts.map +1 -0
- package/dist/__tests__/pictureBelowPrintSize.test.js +82 -0
- package/dist/__tests__/pictureBelowPrintSize.test.js.map +1 -0
- package/dist/__tests__/pipeline/contourWrap.test.d.ts +2 -0
- package/dist/__tests__/pipeline/contourWrap.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/contourWrap.test.js +412 -0
- package/dist/__tests__/pipeline/contourWrap.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
- package/dist/__tests__/toc.test.js +3 -2
- package/dist/__tests__/toc.test.js.map +1 -1
- package/dist/bundle/codec.d.ts +16 -0
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +44 -2
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/index.d.ts +1 -1
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/canvas-backend/composed.d.ts +5 -2
- package/dist/canvas-backend/composed.d.ts.map +1 -1
- package/dist/canvas-backend/composed.js +10 -5
- package/dist/canvas-backend/composed.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +37 -19
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts +5 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +60 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/composed/continuation.d.ts +102 -0
- package/dist/composed/continuation.d.ts.map +1 -0
- package/dist/composed/continuation.js +87 -0
- package/dist/composed/continuation.js.map +1 -0
- package/dist/composed/contour.d.ts +21 -0
- package/dist/composed/contour.d.ts.map +1 -0
- package/dist/composed/contour.js +34 -0
- package/dist/composed/contour.js.map +1 -0
- package/dist/composed/geometry.d.ts +8 -0
- package/dist/composed/geometry.d.ts.map +1 -1
- package/dist/composed/geometry.js +26 -0
- package/dist/composed/geometry.js.map +1 -1
- package/dist/composed/ids.d.ts +22 -0
- package/dist/composed/ids.d.ts.map +1 -0
- package/dist/composed/ids.js +32 -0
- package/dist/composed/ids.js.map +1 -0
- package/dist/composed/labels.d.ts +154 -0
- package/dist/composed/labels.d.ts.map +1 -0
- package/dist/composed/labels.js +524 -0
- package/dist/composed/labels.js.map +1 -0
- package/dist/composed/pageMemo.d.ts +73 -0
- package/dist/composed/pageMemo.d.ts.map +1 -0
- package/dist/composed/pageMemo.js +289 -0
- package/dist/composed/pageMemo.js.map +1 -0
- package/dist/composed/paint.d.ts +29 -9
- package/dist/composed/paint.d.ts.map +1 -1
- package/dist/composed/paint.js +41 -7
- package/dist/composed/paint.js.map +1 -1
- package/dist/composed/reflowLog.d.ts +14 -2
- package/dist/composed/reflowLog.d.ts.map +1 -1
- package/dist/composed/reflowLog.js +64 -7
- package/dist/composed/reflowLog.js.map +1 -1
- package/dist/composed/slotChecks.d.ts.map +1 -1
- package/dist/composed/slotChecks.js +3 -1
- package/dist/composed/slotChecks.js.map +1 -1
- package/dist/composed/sourceMap.d.ts +97 -0
- package/dist/composed/sourceMap.d.ts.map +1 -0
- package/dist/composed/sourceMap.js +748 -0
- package/dist/composed/sourceMap.js.map +1 -0
- package/dist/composed/spread.d.ts +3 -0
- package/dist/composed/spread.d.ts.map +1 -1
- package/dist/composed/spread.js +11 -12
- package/dist/composed/spread.js.map +1 -1
- package/dist/composed/templates.d.ts +1 -0
- package/dist/composed/templates.d.ts.map +1 -1
- package/dist/composed/templates.js +4 -0
- package/dist/composed/templates.js.map +1 -1
- package/dist/composed/types.d.ts +15 -32
- package/dist/composed/types.d.ts.map +1 -1
- package/dist/composed/validate.d.ts.map +1 -1
- package/dist/composed/validate.js +3 -2
- package/dist/composed/validate.js.map +1 -1
- package/dist/composed/wrap.d.ts.map +1 -1
- package/dist/composed/wrap.js +7 -1
- package/dist/composed/wrap.js.map +1 -1
- package/dist/configWarnings.d.ts +15 -0
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +29 -17
- package/dist/configWarnings.js.map +1 -1
- package/dist/contour/index.d.ts +134 -0
- package/dist/contour/index.d.ts.map +1 -0
- package/dist/contour/index.js +354 -0
- package/dist/contour/index.js.map +1 -0
- package/dist/contour/png.d.ts +16 -0
- package/dist/contour/png.d.ts.map +1 -0
- package/dist/contour/png.js +173 -0
- package/dist/contour/png.js.map +1 -0
- package/dist/contrast.d.ts +5 -3
- package/dist/contrast.d.ts.map +1 -1
- package/dist/contrast.js +46 -5
- package/dist/contrast.js.map +1 -1
- package/dist/defaults/paragraphStyles.d.ts +1 -1
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +5 -1
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/design/slots.d.ts +12 -10
- package/dist/design/slots.d.ts.map +1 -1
- package/dist/design/slots.js +26 -2
- package/dist/design/slots.js.map +1 -1
- package/dist/fonts/faces.d.ts.map +1 -1
- package/dist/fonts/faces.js +6 -0
- package/dist/fonts/faces.js.map +1 -1
- package/dist/highlightMarks.d.ts.map +1 -1
- package/dist/highlightMarks.js +6 -0
- package/dist/highlightMarks.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +42 -4
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -4
- package/dist/index.js.map +1 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +2 -0
- package/dist/measure/rich.js.map +1 -1
- package/dist/migrate/markdownRuns.d.ts +70 -0
- package/dist/migrate/markdownRuns.d.ts.map +1 -0
- package/dist/migrate/markdownRuns.js +215 -0
- package/dist/migrate/markdownRuns.js.map +1 -0
- package/dist/migrate/pageDesign.d.ts +119 -0
- package/dist/migrate/pageDesign.d.ts.map +1 -0
- package/dist/migrate/pageDesign.js +446 -0
- package/dist/migrate/pageDesign.js.map +1 -0
- package/dist/migrate/textToMarkdown.d.ts +124 -0
- package/dist/migrate/textToMarkdown.d.ts.map +1 -0
- package/dist/migrate/textToMarkdown.js +716 -0
- package/dist/migrate/textToMarkdown.js.map +1 -0
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +44 -3
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/types.d.ts +20 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +298 -30
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +7 -2
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +21 -5
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +39 -14
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +50 -4
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/composedLayout.d.ts +51 -6
- package/dist/pipeline/composedLayout.d.ts.map +1 -1
- package/dist/pipeline/composedLayout.js +633 -78
- package/dist/pipeline/composedLayout.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +15 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +98 -4
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +2 -0
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +1 -0
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/frameLayout.d.ts +7 -4
- package/dist/pipeline/frameLayout.d.ts.map +1 -1
- package/dist/pipeline/frameLayout.js +5 -2
- package/dist/pipeline/frameLayout.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +20 -1
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +225 -70
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +1 -0
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/mirrorFrame.d.ts.map +1 -1
- package/dist/pipeline/mirrorFrame.js +25 -2
- package/dist/pipeline/mirrorFrame.js.map +1 -1
- package/dist/pipeline/outline.d.ts.map +1 -1
- package/dist/pipeline/outline.js +2 -0
- package/dist/pipeline/outline.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +28 -0
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +21 -0
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/styles.d.ts +1 -1
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +4 -0
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/pipeline/textWrap.d.ts +4 -1
- package/dist/pipeline/textWrap.d.ts.map +1 -1
- package/dist/pipeline/textWrap.js +17 -3
- package/dist/pipeline/textWrap.js.map +1 -1
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +1 -0
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/types.d.ts +77 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +290 -15
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/dist/word/toDocx.d.ts.map +1 -1
- package/dist/word/toDocx.js +14 -0
- package/dist/word/toDocx.js.map +1 -1
- package/dist/word/word.test.js +11 -1
- package/dist/word/word.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,9 @@ import type { ResourceNumberingMap } from './resourceNumbering';
|
|
|
14
14
|
import type { CaptionCitations } from './citations';
|
|
15
15
|
export interface MeasurementInput {
|
|
16
16
|
vdtType: VDTBlock['type'];
|
|
17
|
+
/** Offset of the Markdown body in the chapter file: a figure's labels
|
|
18
|
+
* carry absolute offsets (#857). */
|
|
19
|
+
bodyOffset?: number;
|
|
17
20
|
rawBlock: ContentBlock;
|
|
18
21
|
contentBlock: ContentBlock;
|
|
19
22
|
style: BlockStyle;
|
|
@@ -67,7 +70,9 @@ export interface MeasurementResult {
|
|
|
67
70
|
asideHeight?: number;
|
|
68
71
|
}
|
|
69
72
|
/** The labels of a `:::figure` block (#854) as the VDT carries them
|
|
70
|
-
* (`ResolvedResourceBlock.labels`)
|
|
71
|
-
|
|
73
|
+
* (`ResolvedResourceBlock.labels`), their offsets absolute in the
|
|
74
|
+
* chapter file (`bodyOffset` added), with their stable id, their anchor
|
|
75
|
+
* and the source of each character (#857); undefined when it has none. */
|
|
76
|
+
export declare function figureLabels(block: Pick<ContentBlock, 'figure'>, bodyOffset?: number): VDTFigureLabel[] | undefined;
|
|
72
77
|
export declare function runMeasurement(input: MeasurementInput): MeasurementResult;
|
|
73
78
|
//# sourceMappingURL=buildMeasurement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMeasurement.d.ts","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"buildMeasurement.d.ts","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* Measurement invocation for a single block — dispatches between plain/rich
|
|
3
3
|
* text runs and the `mathDisplay` bypass path that skips text layout entirely.
|
|
4
4
|
*/
|
|
5
|
+
import { layOutFigureLabels } from '../composed/labels';
|
|
5
6
|
import { measureBlock, measureRichBlock, cachedMeasureBlock, cachedMeasureRichBlock } from '../measure';
|
|
6
7
|
import { renderMath } from '../math';
|
|
7
8
|
import { layoutResourceBlock } from './resourceLayout';
|
|
8
9
|
/** The labels of a `:::figure` block (#854) as the VDT carries them
|
|
9
|
-
* (`ResolvedResourceBlock.labels`)
|
|
10
|
-
|
|
10
|
+
* (`ResolvedResourceBlock.labels`), their offsets absolute in the
|
|
11
|
+
* chapter file (`bodyOffset` added), with their stable id, their anchor
|
|
12
|
+
* and the source of each character (#857); undefined when it has none. */
|
|
13
|
+
export function figureLabels(block, bodyOffset = 0) {
|
|
11
14
|
const labels = block.figure?.labels;
|
|
12
15
|
if (!labels || labels.length === 0)
|
|
13
16
|
return undefined;
|
|
@@ -15,8 +18,11 @@ export function figureLabels(block) {
|
|
|
15
18
|
text: l.text,
|
|
16
19
|
at: 'anchor' in l.at ? { anchor: l.at.anchor } : { x: l.at.x, y: l.at.y },
|
|
17
20
|
...(l.style !== undefined ? { style: l.style } : {}),
|
|
18
|
-
sourceStart: l.textStart,
|
|
19
|
-
sourceEnd: l.textEnd,
|
|
21
|
+
sourceStart: l.textStart + bodyOffset,
|
|
22
|
+
sourceEnd: l.textEnd + bodyOffset,
|
|
23
|
+
...(l.id !== undefined ? { id: l.id } : {}),
|
|
24
|
+
...(l.anchorRef !== undefined ? { anchorRef: l.anchorRef } : {}),
|
|
25
|
+
...(l.sourceMap.length === l.text.length ? { sourceMap: l.sourceMap.map((o) => o + bodyOffset) } : {}),
|
|
20
26
|
}));
|
|
21
27
|
}
|
|
22
28
|
export function runMeasurement(input) {
|
|
@@ -60,7 +66,17 @@ export function runMeasurement(input) {
|
|
|
60
66
|
};
|
|
61
67
|
// A `:::figure`'s labels (#862) ride on its block: a copy, so a
|
|
62
68
|
// cached layout of the same resource keeps none of them.
|
|
63
|
-
|
|
69
|
+
// Each label is laid out on the picture as set here (#860).
|
|
70
|
+
const plain = figureLabels(contentBlock, input.bodyOffset);
|
|
71
|
+
const labels = plain
|
|
72
|
+
? layOutFigureLabels(plain, contentBlock.figure?.labels, block, {
|
|
73
|
+
resolved: input.resolved,
|
|
74
|
+
...(input.resourceNumbering ? { resourceNumbering: input.resourceNumbering } : {}),
|
|
75
|
+
...(input.resourceTypes ? { resourceTypes: input.resourceTypes } : {}),
|
|
76
|
+
...(input.resources ? { resources: input.resources } : {}),
|
|
77
|
+
...(cache ? { cache } : {}),
|
|
78
|
+
})
|
|
79
|
+
: undefined;
|
|
64
80
|
const resourceBlock = labels ? { ...block, labels } : block;
|
|
65
81
|
return { measured, resourceBlock, ...(tableRows ? { tableRows } : {}), ...(asideHeight !== undefined ? { asideHeight } : {}) };
|
|
66
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMeasurement.js","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"buildMeasurement.js","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
*/
|
|
41
41
|
import type { ContentBlock, DirectiveAttrs } from '../parse';
|
|
42
42
|
import type { CalloutPlacement, CalloutSpan, ResolvedCalloutStyleConfig } from '../types';
|
|
43
|
-
import { type ResolvedConfig, type VDTBlock, type VDTDesignBlock } from '../vdt';
|
|
43
|
+
import { type ResolvedConfig, type VDTLine, type VDTBlock, type VDTDesignBlock, type VDTExclusionContour } from '../vdt';
|
|
44
44
|
import { type BlockMeasureContext } from './measureContentBlock';
|
|
45
45
|
import { type ParagraphContainerPlan } from './paragraphContainers';
|
|
46
46
|
import { type GalleyItem } from './columnsGroup';
|
|
@@ -164,14 +164,35 @@ export interface CalloutLayoutInput {
|
|
|
164
164
|
* its marker column and tab), that the box's text runs round (#855,
|
|
165
165
|
* `exclude: 'push'` frames): a line meeting one is set short on the
|
|
166
166
|
* side the rectangle covers. Applied to the text children that open in
|
|
167
|
-
* the range laid out; a figure or a formula is not moved.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
167
|
+
* the range laid out; a figure or a formula is not moved. One with a
|
|
168
|
+
* `contour` (#883, in the same coordinates) sets each line short by the
|
|
169
|
+
* shape's width beside it instead. */
|
|
170
|
+
exclusions?: readonly BoxExclusion[];
|
|
171
|
+
/** A frame of a composed page whose pictures the reflow ladder scales
|
|
172
|
+
* (#858, `fit.imageMinScale`): each bitmap, SVG or video poster among
|
|
173
|
+
* the children is set at this share of the width it would take, below
|
|
174
|
+
* 1. */
|
|
175
|
+
pictureScale?: number;
|
|
176
|
+
/** The room a heading's own design takes in the box (#906): the
|
|
177
|
+
* `advancedDesign` of its level or heading style, laid out against the
|
|
178
|
+
* heading's box `width` wide, as in a page column. Answers the height
|
|
179
|
+
* the design reserves below the heading's top, or `undefined` when the
|
|
180
|
+
* heading has no design (its lines alone then set its height). The
|
|
181
|
+
* heading keeps at least that height; the design itself is laid out
|
|
182
|
+
* over the placed block after placement (`buildHeadersAndFooters`).
|
|
183
|
+
* Absent: headings in boxes reserve nothing for a design. */
|
|
184
|
+
headingDesign?: BoxHeadingDesign;
|
|
174
185
|
}
|
|
186
|
+
/** See `CalloutLayoutInput.headingDesign`. `lines` are the heading's
|
|
187
|
+
* measured lines (the title is joined back from them, as in a column). */
|
|
188
|
+
export type BoxHeadingDesign = (raw: ContentBlock, blockIdx: number, heading: {
|
|
189
|
+
lines: readonly VDTLine[];
|
|
190
|
+
numberPrefix: string;
|
|
191
|
+
headingNumber?: number;
|
|
192
|
+
}, width: number) => number | undefined;
|
|
193
|
+
/** Whether `block` is a heading of a box set with its own design (see
|
|
194
|
+
* `CalloutLayoutInput.headingDesign`). */
|
|
195
|
+
export declare const isDesignedBoxHeading: (block: VDTBlock) => boolean;
|
|
175
196
|
/** A box width the first child of a continuation was counted at (see
|
|
176
197
|
* `CalloutLayoutInput.lineWidths`). */
|
|
177
198
|
export interface CalloutLineWidth {
|
|
@@ -306,14 +327,18 @@ export declare function offsetCalloutToAbsolute(result: CalloutLayoutResult, x:
|
|
|
306
327
|
* {@link offsetCalloutToAbsolute}.
|
|
307
328
|
*/
|
|
308
329
|
export declare function layoutCallout(input: CalloutLayoutInput): CalloutLayoutResult;
|
|
309
|
-
/**
|
|
310
|
-
*
|
|
311
|
-
|
|
312
|
-
* covers (the wider side left free when it stands inside the measure). */
|
|
313
|
-
export declare function exclusionInsets(exclusions: readonly {
|
|
330
|
+
/** A rectangle a box's text runs round (`CalloutLayoutInput.exclusions`),
|
|
331
|
+
* with the shape inside it a contour wrap runs round (#883). */
|
|
332
|
+
export interface BoxExclusion {
|
|
314
333
|
x: number;
|
|
315
334
|
y: number;
|
|
316
335
|
width: number;
|
|
317
336
|
height: number;
|
|
318
|
-
|
|
337
|
+
contour?: VDTExclusionContour;
|
|
338
|
+
}
|
|
339
|
+
/** The line insets of a text set from `y0` in `[x, x + width]` with lines
|
|
340
|
+
* `lineHeight` apart, beside the rectangles of `exclusions` (#855): a line
|
|
341
|
+
* that meets one, even in part, is set short on the side the rectangle
|
|
342
|
+
* covers (the wider side left free when it stands inside the measure). */
|
|
343
|
+
export declare function exclusionInsets(exclusions: readonly BoxExclusion[], x: number, width: number, y0: number, lineHeight: number): LineInsetStep[];
|
|
319
344
|
//# sourceMappingURL=calloutLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAElB,OAAO,EAKL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAElB,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACzB,MAAM,QAAQ,CAAC;AAShB,OAAO,EAAuB,KAAK,mBAAmB,EAAmC,MAAM,uBAAuB,CAAC;AAKvH,OAAO,EAAsC,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOxG,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;6CAG6C;AAC7C,wBAAgB,YAAY,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAiBhG;AAED;;iCAEiC;AACjC,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,0BAA0B,EAAE,EAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,0BAA0B,GAAG,SAAS,CASxC;AAMD;;;;;sDAKsD;AACtD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,0BAA0B,GAChC,cAAc,CAmEhB;AAED;;;4EAG4E;AAC5E,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,0BAA0B,GAChC,mBAAmB,CAkBrB;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,0BAA0B,CAAC;IAClC,+DAA+D;IAC/D,KAAK,EAAE,cAAc,CAAC;IACtB;wBACoB;IACpB,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC;uEACmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B;;gFAE4E;IAC5E,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IAC7C,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;8BAI0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;yBAEqB;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;+EAI2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;yEAMqE;IACrE,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzC;0CACsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;yCAGqC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B;;;wEAGoE;IACpE,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC1C;sDACkD;IAClD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;qEAEiE;IACjE,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAChC;qEACiE;IACjE,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC9B;;;iDAG6C;IAC7C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;IAC1F;;;uEAGmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;0EACsE;IACtE,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxD;;;;;;2CAMuC;IACvC,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC;;;aAGS;IACT,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;kEAO8D;IAC9D,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED;2EAC2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACpF,KAAK,EAAE,MAAM,KACV,MAAM,GAAG,SAAS,CAAC;AAMxB;2CAC2C;AAC3C,eAAO,MAAM,oBAAoB,GAAI,OAAO,QAAQ,KAAG,OAAyC,CAAC;AAWjG;wCACwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,0BAA0B,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB;qCACiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;yDACyD;AACzD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,KAAK,EAAE,QAAQ,CAAC;IAChB;wEACoE;IACpE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,2EAA2E;IAC3E,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB;4BACwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB;;wBAEoB;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B;iCAC6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;4EACwE;IACxE,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED;;;mCAGmC;AACnC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;uDACmD;IACnD,MAAM,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACtC;AAED;qCACqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ;wEACoE;IACpE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;IACxB;oDACgD;IAChD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;0DACsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;gCAEgC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKtG;AAED;;;;;2CAK2C;AAC3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAiBjH;AAKD,iFAAiF;AACjF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,cAAc,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAUlF;AAiBD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAoBvE;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAUjF;AAED;6CAC6C;AAC7C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAS/F;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAq2C5E;AA4FD;iEACiE;AACjE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;2EAG2E;AAC3E,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CA4BjB"}
|
|
@@ -45,6 +45,7 @@ import { suffixJoiner } from '../parse/inlineFormatting';
|
|
|
45
45
|
import { spaceDirectiveLines } from '../parse/attrs';
|
|
46
46
|
import { dimensionToPx } from '../units';
|
|
47
47
|
import { createBoundingBox, createVDTBlock, pictureTraits, } from '../vdt';
|
|
48
|
+
import { contourInsetSteps, shiftContour } from '../contour';
|
|
48
49
|
import { buildFontString, measureBlock, measureRichBlock } from '../measure';
|
|
49
50
|
import { graphemeCount } from '../measure/graphemes';
|
|
50
51
|
import { applyStyleAttrs, isMarkerBlock, widthLessEndIndent } from './buildHelpers';
|
|
@@ -54,7 +55,7 @@ import { resolveBodyStyle, resolveBlockquoteStyle } from './styles';
|
|
|
54
55
|
import { computeLevelIndentsPx, computeOrderedLevelIndentsPx, directListMarker, listBulletPosition, listItemGapPx, mirrorListMarker } from './lists';
|
|
55
56
|
import { measureContentBlock } from './measureContentBlock';
|
|
56
57
|
import { uppercasePreservingLength } from './buildBlockKind';
|
|
57
|
-
import { headingIsHidden } from './headingStyles';
|
|
58
|
+
import { headingIsHidden, headingStyleOf } from './headingStyles';
|
|
58
59
|
import { directDesignTextBlock } from '../design/bidiText';
|
|
59
60
|
import { arabicNumbersOf } from './config';
|
|
60
61
|
import { containerStyle, paragraphStyleIdOf } from './paragraphContainers';
|
|
@@ -203,6 +204,13 @@ export function deriveCalloutMeasureContext(ctx, style) {
|
|
|
203
204
|
orderedLevelIndentsPx: computeOrderedLevelIndentsPx(resolved, bodyStyle.fontSizePx, ctx.orderedMetrics.maxWidthByDepth),
|
|
204
205
|
};
|
|
205
206
|
}
|
|
207
|
+
/** The headings of boxes laid out with their own design (#906): their
|
|
208
|
+
* lines are not painted (the design replaces them), so a box never cuts
|
|
209
|
+
* between them. */
|
|
210
|
+
const designedBoxHeadings = new WeakSet();
|
|
211
|
+
/** Whether `block` is a heading of a box set with its own design (see
|
|
212
|
+
* `CalloutLayoutInput.headingDesign`). */
|
|
213
|
+
export const isDesignedBoxHeading = (block) => designedBoxHeadings.has(block);
|
|
206
214
|
/** The measures of `layoutCallout`'s first child across widths (see
|
|
207
215
|
* `CalloutLayoutInput.lineWidths`), per resolved configuration and
|
|
208
216
|
* content block: a build lays a split box out again on every pass. */
|
|
@@ -447,7 +455,10 @@ export function layoutCallout(input) {
|
|
|
447
455
|
// The label tab's rise (see "Label tab" below), known here so a frame's
|
|
448
456
|
// exclusions and exact height (#855) are read in box coordinates.
|
|
449
457
|
const riseAhead = style.label && !input.continuation && labelText.trim().length > 0 ? Math.max(0, px(style.label.offset)) : 0;
|
|
450
|
-
const exclusions = (input.exclusions ?? []).map((e) => ({
|
|
458
|
+
const exclusions = (input.exclusions ?? []).map((e) => ({
|
|
459
|
+
x: e.x - markerColumn, y: e.y - riseAhead, width: e.width, height: e.height,
|
|
460
|
+
...(e.contour ? { contour: shiftContour(e.contour, -markerColumn, -riseAhead) } : {}),
|
|
461
|
+
}));
|
|
451
462
|
// --- Title -----------------------------------------------------------------
|
|
452
463
|
// A continuation repeats the title, with its suffix, only when the style
|
|
453
464
|
// asks for it (`repeatTitle`); the repeat is pagination furniture.
|
|
@@ -708,11 +719,20 @@ export function layoutCallout(input) {
|
|
|
708
719
|
...(Math.abs(groupWidths[groupWidths.length - 1].width - width) > 0.5 ? [{ fromLine: lineCut.from, columnWidth: width }] : []),
|
|
709
720
|
])
|
|
710
721
|
: undefined;
|
|
711
|
-
|
|
722
|
+
let measuredBlock = acrossGroup
|
|
712
723
|
?? (lineCut ? undefined : measureFirstChildAcrossWidths(raw, blockIdx, k, width, styleOverride))
|
|
713
724
|
?? measureContentBlock(raw, blockIdx, width, derivedCtx, { styleOverride });
|
|
714
725
|
if (!measuredBlock)
|
|
715
726
|
return undefined;
|
|
727
|
+
// A picture the reflow ladder scales (#858): set again at that share of
|
|
728
|
+
// its width.
|
|
729
|
+
const pictureScale = input.pictureScale;
|
|
730
|
+
const picture = measuredBlock.resourceBlock;
|
|
731
|
+
if (pictureScale !== undefined && pictureScale > 0 && pictureScale < 1 && picture && picture.kind !== 'table' && !picture.rotation) {
|
|
732
|
+
const smaller = measureContentBlock(raw, blockIdx, width, derivedCtx, { styleOverride, figureMaxBodyWidth: picture.bodyRect.width * pictureScale });
|
|
733
|
+
if (smaller)
|
|
734
|
+
measuredBlock = smaller;
|
|
735
|
+
}
|
|
716
736
|
const { kind, mathDisplayRender, resourceBlock, code } = measuredBlock;
|
|
717
737
|
let { measured, prefixLen, absoluteSourceMap, letterSpacingPx, runtTracking } = measuredBlock;
|
|
718
738
|
const { vdtType, headingLevel, numberPrefix, numberSeparator, headingNumber, listBullet, listDepth, listKind, bulletXOffsetInColumn, strikethroughText } = kind;
|
|
@@ -836,8 +856,28 @@ export function layoutCallout(input) {
|
|
|
836
856
|
blk.sourceStart = keptLines[0].sourceStart ?? raw.sourceStart + ctx.bodyOffset;
|
|
837
857
|
blk.sourceEnd = keptLines[keptLines.length - 1].sourceEnd ?? raw.sourceEnd + ctx.bodyOffset;
|
|
838
858
|
}
|
|
859
|
+
// A heading with a design of its own (#906): the box keeps the room
|
|
860
|
+
// the design takes, as a page column does. A heading opened after its
|
|
861
|
+
// first line has no design to draw.
|
|
862
|
+
const blockWidth = widthLessEndIndent(blk, width);
|
|
863
|
+
if (vdtType === 'heading' && !hiddenHeading && !openedMidRun && isTextRun && input.headingDesign) {
|
|
864
|
+
const reserve = input.headingDesign(raw, blockIdx, { lines: measured.lines, numberPrefix: numberPrefix ?? '', ...(headingNumber !== undefined ? { headingNumber } : {}) }, blockWidth);
|
|
865
|
+
if (reserve !== undefined) {
|
|
866
|
+
designedBoxHeadings.add(blk);
|
|
867
|
+
if (Number.isFinite(reserve) && reserve > height)
|
|
868
|
+
height = reserve;
|
|
869
|
+
const offset = input.bodyOffset ?? ctx.bodyOffset;
|
|
870
|
+
const styleId = headingStyleOf(raw, input.resolved)?.id;
|
|
871
|
+
blk.boxDesign = {
|
|
872
|
+
...(styleId !== undefined ? { styleId } : {}),
|
|
873
|
+
...(raw.attrs ? { attrs: raw.attrs } : {}),
|
|
874
|
+
...(raw.attrSources ? { attrSources: Object.fromEntries(Object.entries(raw.attrSources).map(([k, r]) => [k, { start: r.start + offset, end: r.end + offset }])) } : {}),
|
|
875
|
+
...(raw.titleBreaks ? { titleBreaks: raw.titleBreaks, titleLength: raw.text.length } : {}),
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
}
|
|
839
879
|
// Relocate to the inner rect (box-relative).
|
|
840
|
-
blk.bbox = createBoundingBox(x, st.cursorY,
|
|
880
|
+
blk.bbox = createBoundingBox(x, st.cursorY, blockWidth, height);
|
|
841
881
|
for (const line of blk.lines) {
|
|
842
882
|
shiftLineX(line, x);
|
|
843
883
|
line.bbox.y += st.cursorY;
|
|
@@ -981,6 +1021,7 @@ export function layoutCallout(input) {
|
|
|
981
1021
|
...(reopened && reopened.openRest.length > 0 ? { openNested: reopened.openRest } : {}),
|
|
982
1022
|
mirrored: input.mirrored,
|
|
983
1023
|
nestPath: [...(nestPath ?? []), open.containerId],
|
|
1024
|
+
...(input.headingDesign ? { headingDesign: input.headingDesign } : {}),
|
|
984
1025
|
});
|
|
985
1026
|
// Spacing above: as a paragraph's (margin collapsing, none at the top
|
|
986
1027
|
// of the box beyond the title gap).
|
|
@@ -1818,6 +1859,11 @@ export function exclusionInsets(exclusions, x, width, y0, lineHeight) {
|
|
|
1818
1859
|
const roomLeft = ex.x - x;
|
|
1819
1860
|
const roomRight = right - exRight;
|
|
1820
1861
|
const coversLeft = roomLeft <= roomRight;
|
|
1862
|
+
if (ex.contour) {
|
|
1863
|
+
// A contour (#883): each line as short as the shape is wide beside it.
|
|
1864
|
+
steps.push(...contourInsetSteps(ex.contour, coversLeft ? 'left' : 'right', x, width, y0, lineHeight, from, to));
|
|
1865
|
+
continue;
|
|
1866
|
+
}
|
|
1821
1867
|
steps.push({
|
|
1822
1868
|
fromLine: from,
|
|
1823
1869
|
toLine: to,
|