postext 1.34.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/bundle.test.js +33 -1
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +88 -0
- package/dist/__tests__/codeBlocks.test.js.map +1 -1
- package/dist/__tests__/composed/fixtures/page8.d.ts +20 -0
- package/dist/__tests__/composed/fixtures/page8.d.ts.map +1 -0
- package/dist/__tests__/composed/fixtures/page8.js +162 -0
- package/dist/__tests__/composed/fixtures/page8.js.map +1 -0
- package/dist/__tests__/composed/fixtures/timeline.d.ts +26 -0
- package/dist/__tests__/composed/fixtures/timeline.d.ts.map +1 -0
- package/dist/__tests__/composed/fixtures/timeline.js +153 -0
- package/dist/__tests__/composed/fixtures/timeline.js.map +1 -0
- package/dist/__tests__/composed/groups.test.d.ts +2 -0
- package/dist/__tests__/composed/groups.test.d.ts.map +1 -0
- package/dist/__tests__/composed/groups.test.js +361 -0
- package/dist/__tests__/composed/groups.test.js.map +1 -0
- package/dist/__tests__/composed/layout.test.d.ts +2 -0
- package/dist/__tests__/composed/layout.test.d.ts.map +1 -0
- package/dist/__tests__/composed/layout.test.js +387 -0
- package/dist/__tests__/composed/layout.test.js.map +1 -0
- package/dist/__tests__/composed/outsidePrint.test.d.ts +2 -0
- package/dist/__tests__/composed/outsidePrint.test.d.ts.map +1 -0
- package/dist/__tests__/composed/outsidePrint.test.js +116 -0
- package/dist/__tests__/composed/outsidePrint.test.js.map +1 -0
- package/dist/__tests__/composed/slotChecks.test.js +6 -3
- package/dist/__tests__/composed/slotChecks.test.js.map +1 -1
- package/dist/__tests__/composed/spread.test.d.ts +2 -0
- package/dist/__tests__/composed/spread.test.d.ts.map +1 -0
- package/dist/__tests__/composed/spread.test.js +475 -0
- package/dist/__tests__/composed/spread.test.js.map +1 -0
- package/dist/__tests__/composedPaint.test.d.ts +2 -0
- package/dist/__tests__/composedPaint.test.d.ts.map +1 -0
- package/dist/__tests__/composedPaint.test.js +199 -0
- package/dist/__tests__/composedPaint.test.js.map +1 -0
- package/dist/__tests__/defaults/stripRoundTrip.test.js +3 -2
- package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +25 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/highlightMarks.test.d.ts +2 -0
- package/dist/__tests__/highlightMarks.test.d.ts.map +1 -0
- package/dist/__tests__/highlightMarks.test.js +169 -0
- package/dist/__tests__/highlightMarks.test.js.map +1 -0
- package/dist/__tests__/tocPartLeader.test.d.ts +2 -0
- package/dist/__tests__/tocPartLeader.test.d.ts.map +1 -0
- package/dist/__tests__/tocPartLeader.test.js +133 -0
- package/dist/__tests__/tocPartLeader.test.js.map +1 -0
- package/dist/bundle/api.d.ts +8 -0
- package/dist/bundle/api.d.ts.map +1 -1
- package/dist/bundle/api.js +6 -3
- package/dist/bundle/api.js.map +1 -1
- package/dist/bundle/codec.d.ts +5 -0
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +4 -0
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/index.d.ts +2 -2
- 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/bundle/manifest.d.ts +14 -0
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +13 -0
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +7 -0
- package/dist/bundle/types.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.d.ts +6 -0
- package/dist/canvas-backend/annotations.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.js +39 -0
- package/dist/canvas-backend/annotations.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +6 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/composed.d.ts +19 -0
- package/dist/canvas-backend/composed.d.ts.map +1 -0
- package/dist/canvas-backend/composed.js +68 -0
- package/dist/canvas-backend/composed.js.map +1 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +15 -1
- 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 +4 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/composed/geometry.d.ts +108 -0
- package/dist/composed/geometry.d.ts.map +1 -0
- package/dist/composed/geometry.js +241 -0
- package/dist/composed/geometry.js.map +1 -0
- package/dist/composed/groups.d.ts +95 -0
- package/dist/composed/groups.d.ts.map +1 -0
- package/dist/composed/groups.js +359 -0
- package/dist/composed/groups.js.map +1 -0
- package/dist/composed/labelText.d.ts +15 -0
- package/dist/composed/labelText.d.ts.map +1 -0
- package/dist/composed/labelText.js +16 -0
- package/dist/composed/labelText.js.map +1 -0
- package/dist/composed/paint.d.ts +64 -0
- package/dist/composed/paint.d.ts.map +1 -0
- package/dist/composed/paint.js +128 -0
- package/dist/composed/paint.js.map +1 -0
- package/dist/composed/reflowLog.d.ts +39 -0
- package/dist/composed/reflowLog.d.ts.map +1 -0
- package/dist/composed/reflowLog.js +123 -0
- package/dist/composed/reflowLog.js.map +1 -0
- package/dist/composed/slotChecks.d.ts +7 -2
- package/dist/composed/slotChecks.d.ts.map +1 -1
- package/dist/composed/slotChecks.js +21 -0
- package/dist/composed/slotChecks.js.map +1 -1
- package/dist/composed/spread.d.ts +106 -0
- package/dist/composed/spread.d.ts.map +1 -0
- package/dist/composed/spread.js +178 -0
- package/dist/composed/spread.js.map +1 -0
- package/dist/composed/types.d.ts +1 -44
- package/dist/composed/types.d.ts.map +1 -1
- package/dist/composed/wrap.d.ts +52 -0
- package/dist/composed/wrap.d.ts.map +1 -0
- package/dist/composed/wrap.js +234 -0
- package/dist/composed/wrap.js.map +1 -0
- package/dist/configWarnings.js +1 -1
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/codeStyle.d.ts.map +1 -1
- package/dist/defaults/codeStyle.js +1 -0
- package/dist/defaults/codeStyle.js.map +1 -1
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +4 -0
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -0
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +9 -0
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/markStyles.d.ts +23 -0
- package/dist/defaults/markStyles.d.ts.map +1 -0
- package/dist/defaults/markStyles.js +80 -0
- package/dist/defaults/markStyles.js.map +1 -0
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +12 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/design/bidiText.d.ts +4 -1
- package/dist/design/bidiText.d.ts.map +1 -1
- package/dist/design/bidiText.js +5 -2
- package/dist/design/bidiText.js.map +1 -1
- package/dist/design/layout.d.ts +19 -0
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +110 -8
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts +28 -2
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js +24 -1
- package/dist/design/placeholders.js.map +1 -1
- package/dist/design/richText.d.ts +2 -0
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js.map +1 -1
- package/dist/highlightMarks.d.ts +33 -0
- package/dist/highlightMarks.d.ts.map +1 -0
- package/dist/highlightMarks.js +209 -0
- package/dist/highlightMarks.js.map +1 -0
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +96 -9
- package/dist/html-backend.js.map +1 -1
- package/dist/htmlAnnotations.d.ts +5 -0
- package/dist/htmlAnnotations.d.ts.map +1 -1
- package/dist/htmlAnnotations.js +16 -0
- package/dist/htmlAnnotations.js.map +1 -1
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +3 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +3 -2
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/measure/cache.js +3 -3
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/chipEdges.d.ts +13 -1
- package/dist/measure/chipEdges.d.ts.map +1 -1
- package/dist/measure/chipEdges.js +59 -1
- package/dist/measure/chipEdges.js.map +1 -1
- package/dist/measure/links.d.ts.map +1 -1
- package/dist/measure/links.js +78 -5
- package/dist/measure/links.js.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 +19 -4
- package/dist/measure/rich.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +14 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +104 -5
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/links.js +1 -1
- package/dist/parse/links.js.map +1 -1
- package/dist/parse/softBreaks.js +1 -1
- package/dist/parse/softBreaks.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +19 -3
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +24 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +213 -301
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +4 -1
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +19 -1
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +36 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +93 -3
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/codeInline.d.ts +10 -1
- package/dist/pipeline/codeInline.d.ts.map +1 -1
- package/dist/pipeline/codeInline.js +96 -15
- package/dist/pipeline/codeInline.js.map +1 -1
- package/dist/pipeline/composedLayout.d.ts +93 -0
- package/dist/pipeline/composedLayout.d.ts.map +1 -0
- package/dist/pipeline/composedLayout.js +520 -0
- package/dist/pipeline/composedLayout.js.map +1 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +2 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +39 -2
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatSlots.js +1 -1
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/frameLayout.d.ts +120 -0
- package/dist/pipeline/frameLayout.d.ts.map +1 -0
- package/dist/pipeline/frameLayout.js +279 -0
- package/dist/pipeline/frameLayout.js.map +1 -0
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +96 -3
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/pageRoles.d.ts +1 -0
- package/dist/pipeline/pageRoles.d.ts.map +1 -1
- package/dist/pipeline/pageRoles.js +3 -0
- package/dist/pipeline/pageRoles.js.map +1 -1
- package/dist/pipeline/placement.js +1 -1
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +5 -3
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/tabs.js +1 -1
- package/dist/pipeline/tabs.js.map +1 -1
- package/dist/types.d.ts +89 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +247 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ContentBlock } from '../parse';
|
|
6
6
|
import type { Resource, ResourceType } from '../types';
|
|
7
|
-
import type { ResolvedConfig, VDTBlock, ResolvedResourceBlock } from '../vdt';
|
|
7
|
+
import type { ResolvedConfig, VDTBlock, ResolvedResourceBlock, VDTFigureLabel } from '../vdt';
|
|
8
8
|
import type { BlockStyle } from './styles';
|
|
9
9
|
import type { MeasuredBlock, MeasurementCache } from '../measure';
|
|
10
10
|
import { measureBlock } from '../measure';
|
|
@@ -66,5 +66,8 @@ export interface MeasurementResult {
|
|
|
66
66
|
/** Height of the caption band set beside the body (`captionAside`). */
|
|
67
67
|
asideHeight?: number;
|
|
68
68
|
}
|
|
69
|
+
/** The labels of a `:::figure` block (#854) as the VDT carries them
|
|
70
|
+
* (`ResolvedResourceBlock.labels`); undefined when it has none. */
|
|
71
|
+
export declare function figureLabels(block: Pick<ContentBlock, 'figure'>): VDTFigureLabel[] | undefined;
|
|
69
72
|
export declare function runMeasurement(input: MeasurementInput): MeasurementResult;
|
|
70
73
|
//# 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,MAAM,QAAQ,CAAC;
|
|
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;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAgE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAuB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,yEAAyE;IACzE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzD,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;mDAC+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC;+CAC2C;IAC3C,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE;oDACgD;IAChD,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAClD,4EAA4E;IAC5E,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;oEACoE;AACpE,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,cAAc,EAAE,GAAG,SAAS,CAU9F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CA+FzE"}
|
|
@@ -5,6 +5,20 @@
|
|
|
5
5
|
import { measureBlock, measureRichBlock, cachedMeasureBlock, cachedMeasureRichBlock } from '../measure';
|
|
6
6
|
import { renderMath } from '../math';
|
|
7
7
|
import { layoutResourceBlock } from './resourceLayout';
|
|
8
|
+
/** The labels of a `:::figure` block (#854) as the VDT carries them
|
|
9
|
+
* (`ResolvedResourceBlock.labels`); undefined when it has none. */
|
|
10
|
+
export function figureLabels(block) {
|
|
11
|
+
const labels = block.figure?.labels;
|
|
12
|
+
if (!labels || labels.length === 0)
|
|
13
|
+
return undefined;
|
|
14
|
+
return labels.map((l) => ({
|
|
15
|
+
text: l.text,
|
|
16
|
+
at: 'anchor' in l.at ? { anchor: l.at.anchor } : { x: l.at.x, y: l.at.y },
|
|
17
|
+
...(l.style !== undefined ? { style: l.style } : {}),
|
|
18
|
+
sourceStart: l.textStart,
|
|
19
|
+
sourceEnd: l.textEnd,
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
8
22
|
export function runMeasurement(input) {
|
|
9
23
|
const { vdtType, rawBlock, contentBlock, style, measureMaxWidth, measureOptions, mathEnabled, useRich, cache } = input;
|
|
10
24
|
// Resource block: lay out the image/table + caption as one atomic group.
|
|
@@ -44,7 +58,11 @@ export function runMeasurement(input) {
|
|
|
44
58
|
}],
|
|
45
59
|
totalHeight,
|
|
46
60
|
};
|
|
47
|
-
|
|
61
|
+
// A `:::figure`'s labels (#862) ride on its block: a copy, so a
|
|
62
|
+
// cached layout of the same resource keeps none of them.
|
|
63
|
+
const labels = figureLabels(contentBlock);
|
|
64
|
+
const resourceBlock = labels ? { ...block, labels } : block;
|
|
65
|
+
return { measured, resourceBlock, ...(tableRows ? { tableRows } : {}), ...(asideHeight !== undefined ? { asideHeight } : {}) };
|
|
48
66
|
}
|
|
49
67
|
// Math display block: bypass text layout entirely. Produce a single
|
|
50
68
|
// VDTLine whose bbox is the math render's pixel box, centred later.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMeasurement.js","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"buildMeasurement.js","sourceRoot":"","sources":["../../src/pipeline/buildMeasurement.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,10 +40,11 @@
|
|
|
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 } from '../vdt';
|
|
43
|
+
import { type ResolvedConfig, type VDTBlock, type VDTDesignBlock } from '../vdt';
|
|
44
44
|
import { type BlockMeasureContext } from './measureContentBlock';
|
|
45
45
|
import { type ParagraphContainerPlan } from './paragraphContainers';
|
|
46
46
|
import { type GalleyItem } from './columnsGroup';
|
|
47
|
+
import type { LineInsetStep } from '../measure/types';
|
|
47
48
|
export interface PlannedCallout {
|
|
48
49
|
/** Index of the matching `containerEnd` marker. */
|
|
49
50
|
endIdx: number;
|
|
@@ -151,6 +152,25 @@ export interface CalloutLayoutInput {
|
|
|
151
152
|
* relative to its box, or undefined to leave it out. Without it strips
|
|
152
153
|
* are left out, as other directives are. */
|
|
153
154
|
stripBlock?: (raw: ContentBlock, blockIdx: number, width: number) => VDTBlock | undefined;
|
|
155
|
+
/** A frame of a composed page (#855): the block's exact height (its tab
|
|
156
|
+
* included). The box is drawn this tall; content shorter than it sits
|
|
157
|
+
* as `verticalAlign` says, content taller runs past the box's foot
|
|
158
|
+
* (`CalloutLayoutResult.overflowPx`, clipped by the backends). */
|
|
159
|
+
boxHeight?: number;
|
|
160
|
+
/** Where the content sits in a `boxHeight` taller than it. Default
|
|
161
|
+
* `'top'`; `'justify'` spreads the space between the box's items. */
|
|
162
|
+
verticalAlign?: 'top' | 'middle' | 'bottom' | 'justify';
|
|
163
|
+
/** Rectangles, in the block's coordinates (its origin at the top-left of
|
|
164
|
+
* its marker column and tab), that the box's text runs round (#855,
|
|
165
|
+
* `exclude: 'push'` frames): a line meeting one is set short on the
|
|
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
|
+
exclusions?: readonly {
|
|
169
|
+
x: number;
|
|
170
|
+
y: number;
|
|
171
|
+
width: number;
|
|
172
|
+
height: number;
|
|
173
|
+
}[];
|
|
154
174
|
}
|
|
155
175
|
/** A box width the first child of a continuation was counted at (see
|
|
156
176
|
* `CalloutLayoutInput.lineWidths`). */
|
|
@@ -203,6 +223,9 @@ export interface CalloutLayoutResult {
|
|
|
203
223
|
* on (`continuesMarkerEnabled`); 0 without one. The split code ranks its
|
|
204
224
|
* cuts with it. */
|
|
205
225
|
continuesMarkerPx: number;
|
|
226
|
+
/** With `boxHeight`: the height of the content that runs past the box's
|
|
227
|
+
* foot (0 when it fits). */
|
|
228
|
+
overflowPx?: number;
|
|
206
229
|
/** The `:::columns` groups among the box's own children (not a nested
|
|
207
230
|
* box's), as laid out: where a fragment may cut inside them (#634). */
|
|
208
231
|
groups?: CalloutGroupLayout[];
|
|
@@ -273,6 +296,8 @@ export declare function resolveCalloutAttrs(style: ResolvedCalloutStyleConfig, a
|
|
|
273
296
|
};
|
|
274
297
|
/** Shift one block (lines, bullet, resource geometry) by `(ox, oy)`. */
|
|
275
298
|
export declare function offsetBlock(blk: VDTBlock, ox: number, oy: number): void;
|
|
299
|
+
/** Shift one block of a design slot by `(ox, oy)`. */
|
|
300
|
+
export declare function offsetDesignBlock(b: VDTDesignBlock, ox: number, oy: number): void;
|
|
276
301
|
/** Move a laid-out callout from frame-relative to absolute page coordinates
|
|
277
302
|
* with the frame's top-left at `(x, y)`. */
|
|
278
303
|
export declare function offsetCalloutToAbsolute(result: CalloutLayoutResult, x: number, y: number): void;
|
|
@@ -281,4 +306,14 @@ export declare function offsetCalloutToAbsolute(result: CalloutLayoutResult, x:
|
|
|
281
306
|
* {@link offsetCalloutToAbsolute}.
|
|
282
307
|
*/
|
|
283
308
|
export declare function layoutCallout(input: CalloutLayoutInput): CalloutLayoutResult;
|
|
309
|
+
/** The line insets of a text set from `y0` in `[x, x + width]` with lines
|
|
310
|
+
* `lineHeight` apart, beside the rectangles of `exclusions` (#855): a line
|
|
311
|
+
* that meets one, even in part, is set short on the side the rectangle
|
|
312
|
+
* covers (the wider side left free when it stands inside the measure). */
|
|
313
|
+
export declare function exclusionInsets(exclusions: readonly {
|
|
314
|
+
x: number;
|
|
315
|
+
y: number;
|
|
316
|
+
width: number;
|
|
317
|
+
height: number;
|
|
318
|
+
}[], x: number, width: number, y0: number, lineHeight: number): LineInsetStep[];
|
|
284
319
|
//# 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,EAGnB,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ import { getMeasureArabicNumbers, getMeasureDirection, shiftLineX } from '../mea
|
|
|
63
63
|
import { resolvedCodeStyle } from '../defaults/codeStyle';
|
|
64
64
|
import { parseLengthText } from '../defaults/tabStops';
|
|
65
65
|
import { isFlowColumnsStyle } from './flowColumns';
|
|
66
|
+
import { FRAME_STYLE_ID } from '../composed/wrap';
|
|
66
67
|
import { fillGalley, galleyBreaks, minFillHeight } from './columnsGroup';
|
|
67
68
|
/** Map every `containerStart{callout}` index to its range. Resolved up front
|
|
68
69
|
* (like `:::paragraphs`) because keep-with-next rollbacks rewind the
|
|
@@ -187,7 +188,9 @@ export function deriveCalloutResolvedConfig(resolved, style) {
|
|
|
187
188
|
* metrics (number widths) are kept from the document context — they were
|
|
188
189
|
* measured with the document's list font, a close-enough approximation. */
|
|
189
190
|
export function deriveCalloutMeasureContext(ctx, style) {
|
|
190
|
-
|
|
191
|
+
// A main-flow group's box and a composed page's frameless story (#855)
|
|
192
|
+
// lend their children nothing: they are set as the text around them.
|
|
193
|
+
if (isFlowColumnsStyle(style.id) || style.id === FRAME_STYLE_ID)
|
|
191
194
|
return ctx;
|
|
192
195
|
const resolved = deriveCalloutResolvedConfig(ctx.resolved, style);
|
|
193
196
|
const bodyStyle = resolveBodyStyle(resolved);
|
|
@@ -322,7 +325,8 @@ export function offsetBlock(blk, ox, oy) {
|
|
|
322
325
|
offsetDesignBlock(b, ox, oy);
|
|
323
326
|
}
|
|
324
327
|
}
|
|
325
|
-
|
|
328
|
+
/** Shift one block of a design slot by `(ox, oy)`. */
|
|
329
|
+
export function offsetDesignBlock(b, ox, oy) {
|
|
326
330
|
b.bbox.x += ox;
|
|
327
331
|
b.bbox.y += oy;
|
|
328
332
|
if (b.kind === 'text') {
|
|
@@ -440,6 +444,10 @@ export function layoutCallout(input) {
|
|
|
440
444
|
const cornerIconW = cornerIcon && iconOn ? iconFootprintWidth(style.icon, iconSize, iconBoxW, ctx) : iconSize;
|
|
441
445
|
const innerX = (stripeLeft ? stripeW : 0) + padL + iconColumn;
|
|
442
446
|
const innerTop = (topStripe ? stripeW : 0) + padT;
|
|
447
|
+
// The label tab's rise (see "Label tab" below), known here so a frame's
|
|
448
|
+
// exclusions and exact height (#855) are read in box coordinates.
|
|
449
|
+
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) => ({ x: e.x - markerColumn, y: e.y - riseAhead, width: e.width, height: e.height }));
|
|
443
451
|
// --- Title -----------------------------------------------------------------
|
|
444
452
|
// A continuation repeats the title, with its suffix, only when the style
|
|
445
453
|
// asks for it (`repeatTitle`); the repeat is pagination furniture.
|
|
@@ -705,7 +713,8 @@ export function layoutCallout(input) {
|
|
|
705
713
|
?? measureContentBlock(raw, blockIdx, width, derivedCtx, { styleOverride });
|
|
706
714
|
if (!measuredBlock)
|
|
707
715
|
return undefined;
|
|
708
|
-
const { kind,
|
|
716
|
+
const { kind, mathDisplayRender, resourceBlock, code } = measuredBlock;
|
|
717
|
+
let { measured, prefixLen, absoluteSourceMap, letterSpacingPx, runtTracking } = measuredBlock;
|
|
709
718
|
const { vdtType, headingLevel, numberPrefix, numberSeparator, headingNumber, listBullet, listDepth, listKind, bulletXOffsetInColumn, strikethroughText } = kind;
|
|
710
719
|
// A structural heading (`hidden`) keeps its lines' text but prints
|
|
711
720
|
// nothing and takes no room: no line height, no margins, and the
|
|
@@ -739,6 +748,18 @@ export function layoutCallout(input) {
|
|
|
739
748
|
spacing = Math.max(st.prevMarginBottom, marginTopPx);
|
|
740
749
|
}
|
|
741
750
|
st.cursorY += spacing;
|
|
751
|
+
// A frame's text runs round the frames that push it (#855): set again
|
|
752
|
+
// with its lines short beside them. A child the range opens inside
|
|
753
|
+
// keeps the lines it was counted with.
|
|
754
|
+
const opensInside = lineCut ? lineCut.from > 0 : isFirstRealOf(k) && (input.lineFrom ?? 0) > 0;
|
|
755
|
+
if (exclusions.length > 0 && !opensInside && !(vdtType === 'resource' && resourceBlock) && !(vdtType === 'mathDisplay' && mathDisplayRender)) {
|
|
756
|
+
const lineInsets = exclusionInsets(exclusions, x, width, st.cursorY, kind.style.lineHeightPx);
|
|
757
|
+
if (lineInsets.length > 0) {
|
|
758
|
+
const again = measureContentBlock(raw, blockIdx, width, derivedCtx, { styleOverride, lineInsets });
|
|
759
|
+
if (again)
|
|
760
|
+
({ measured, prefixLen, absoluteSourceMap, letterSpacingPx, runtTracking } = again);
|
|
761
|
+
}
|
|
762
|
+
}
|
|
742
763
|
const blk = createVDTBlock(input.nextChildId(), vdtType, bs.fontString, bs.color, bs.textAlign);
|
|
743
764
|
applyStyleAttrs(blk, bs);
|
|
744
765
|
// The tracking the lines were measured with (a runt set one line
|
|
@@ -1424,6 +1445,42 @@ export function layoutCallout(input) {
|
|
|
1424
1445
|
}
|
|
1425
1446
|
contentBottom += extra;
|
|
1426
1447
|
}
|
|
1448
|
+
// A frame's exact height (#855): the box is drawn that tall, the
|
|
1449
|
+
// content placed in it as `verticalAlign` says; content taller than the
|
|
1450
|
+
// room runs past the foot.
|
|
1451
|
+
let overflowPx;
|
|
1452
|
+
if (input.boxHeight !== undefined) {
|
|
1453
|
+
const room = Math.max(innerTop, input.boxHeight - riseAhead - padB);
|
|
1454
|
+
if (contentBottom < room - 0.01) {
|
|
1455
|
+
const extra = room - contentBottom;
|
|
1456
|
+
const align = input.verticalAlign ?? 'top';
|
|
1457
|
+
if (align === 'middle' || align === 'bottom') {
|
|
1458
|
+
const dy = align === 'middle' ? extra / 2 : extra;
|
|
1459
|
+
for (const blk of childBlocks)
|
|
1460
|
+
offsetBlock(blk, 0, dy);
|
|
1461
|
+
for (const r of groupRules)
|
|
1462
|
+
offsetDesignBlock(r, 0, dy);
|
|
1463
|
+
for (const g of groupLayouts)
|
|
1464
|
+
g.top += dy;
|
|
1465
|
+
if (continuesBlock)
|
|
1466
|
+
offsetDesignBlock(continuesBlock, 0, dy);
|
|
1467
|
+
}
|
|
1468
|
+
else if (align === 'justify' && units.length > 1) {
|
|
1469
|
+
units.forEach((u, i) => {
|
|
1470
|
+
const dy = (extra * i) / (units.length - 1);
|
|
1471
|
+
if (dy <= 0)
|
|
1472
|
+
return;
|
|
1473
|
+
const moved = u.kind === 'block' ? [u.block] : [u.box.result.frame, ...u.box.result.children];
|
|
1474
|
+
for (const blk of moved)
|
|
1475
|
+
offsetBlock(blk, 0, dy);
|
|
1476
|
+
});
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
else if (contentBottom > room + 0.01) {
|
|
1480
|
+
overflowPx = contentBottom - room;
|
|
1481
|
+
}
|
|
1482
|
+
contentBottom = room;
|
|
1483
|
+
}
|
|
1427
1484
|
const boxHeight = contentBottom + padB;
|
|
1428
1485
|
const innerRect = createBoundingBox(innerX, innerTop, innerWidth, Math.max(0, contentBottom - innerTop));
|
|
1429
1486
|
// --- Box decoration (paint order: background, stripe, icon, title) ---------
|
|
@@ -1662,6 +1719,7 @@ export function layoutCallout(input) {
|
|
|
1662
1719
|
marginTopPx: (flowGroupBox ? fenceMarginPx(attrs.marginTop, em, dpi) : undefined) ?? px(style.marginTop),
|
|
1663
1720
|
marginBottomPx: (flowGroupBox ? fenceMarginPx(attrs.marginBottom, em, dpi) : undefined) ?? px(style.marginBottom),
|
|
1664
1721
|
continuesMarkerPx,
|
|
1722
|
+
...(overflowPx !== undefined ? { overflowPx } : {}),
|
|
1665
1723
|
...(groupLayouts.length > 0 ? { groups: groupLayouts } : {}),
|
|
1666
1724
|
};
|
|
1667
1725
|
}
|
|
@@ -1737,4 +1795,36 @@ function buildIconBlock(spec, x, y, size, ctx, boxWidth = size) {
|
|
|
1737
1795
|
},
|
|
1738
1796
|
};
|
|
1739
1797
|
}
|
|
1798
|
+
/** The line insets of a text set from `y0` in `[x, x + width]` with lines
|
|
1799
|
+
* `lineHeight` apart, beside the rectangles of `exclusions` (#855): a line
|
|
1800
|
+
* that meets one, even in part, is set short on the side the rectangle
|
|
1801
|
+
* covers (the wider side left free when it stands inside the measure). */
|
|
1802
|
+
export function exclusionInsets(exclusions, x, width, y0, lineHeight) {
|
|
1803
|
+
const steps = [];
|
|
1804
|
+
if (!(lineHeight > 0))
|
|
1805
|
+
return steps;
|
|
1806
|
+
const right = x + width;
|
|
1807
|
+
for (const ex of exclusions) {
|
|
1808
|
+
const exRight = ex.x + ex.width;
|
|
1809
|
+
if (exRight <= x + 0.01 || ex.x >= right - 0.01)
|
|
1810
|
+
continue;
|
|
1811
|
+
const bottom = ex.y + ex.height;
|
|
1812
|
+
if (bottom <= y0 + 0.01)
|
|
1813
|
+
continue;
|
|
1814
|
+
const from = Math.max(0, Math.floor((ex.y - y0 + 0.01) / lineHeight));
|
|
1815
|
+
const to = Math.ceil((bottom - y0 - 0.01) / lineHeight) - 1;
|
|
1816
|
+
if (to < from)
|
|
1817
|
+
continue;
|
|
1818
|
+
const roomLeft = ex.x - x;
|
|
1819
|
+
const roomRight = right - exRight;
|
|
1820
|
+
const coversLeft = roomLeft <= roomRight;
|
|
1821
|
+
steps.push({
|
|
1822
|
+
fromLine: from,
|
|
1823
|
+
toLine: to,
|
|
1824
|
+
startInsetPx: coversLeft ? Math.min(width, exRight - x) : 0,
|
|
1825
|
+
endInsetPx: coversLeft ? 0 : Math.min(width, right - ex.x),
|
|
1826
|
+
});
|
|
1827
|
+
}
|
|
1828
|
+
return steps;
|
|
1829
|
+
}
|
|
1740
1830
|
//# sourceMappingURL=calloutLayout.js.map
|