postext 0.3.37 → 0.3.39
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__/continuation.test.js +23 -0
- package/dist/__tests__/continuation.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +5 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/pipeline/rotatedResource.test.d.ts +2 -0
- package/dist/__tests__/pipeline/rotatedResource.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/rotatedResource.test.js +242 -0
- package/dist/__tests__/pipeline/rotatedResource.test.js.map +1 -0
- package/dist/__tests__/toc.test.js +14 -3
- package/dist/__tests__/toc.test.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +7 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +21 -4
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/canvas-backend/swatch.d.ts +8 -0
- package/dist/canvas-backend/swatch.d.ts.map +1 -0
- package/dist/canvas-backend/swatch.js +20 -0
- package/dist/canvas-backend/swatch.js.map +1 -0
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +38 -10
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +4 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +2 -1
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/measure/rich.d.ts +8 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +24 -2
- package/dist/measure/rich.js.map +1 -1
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +13 -9
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/index.d.ts +2 -0
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +1 -0
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +26 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +45 -0
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/inlineSnippet.d.ts +1 -1
- package/dist/parse/inlineSnippet.d.ts.map +1 -1
- package/dist/parse/inlineSnippet.js +4 -3
- package/dist/parse/inlineSnippet.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +19 -1
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +12 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +111 -55
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +10 -3
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +10 -5
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts +3 -0
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +6 -2
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/outline.d.ts.map +1 -1
- package/dist/pipeline/outline.js +10 -8
- package/dist/pipeline/outline.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +16 -2
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +51 -4
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +2 -0
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/table/model.d.ts +7 -1
- package/dist/table/model.d.ts.map +1 -1
- package/dist/table/model.js +19 -0
- package/dist/table/model.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +59 -5
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +29 -0
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
* which owns the VDT and measurement context.
|
|
17
17
|
*/
|
|
18
18
|
import type { ContentBlock } from '../parse';
|
|
19
|
-
import type { Resource, ResourceType, ResourceFloatPosition, ResourceFloatSpan } from '../types';
|
|
20
|
-
/** Resolved placement for a resource: never `undefined` fields
|
|
19
|
+
import type { Resource, ResourceType, ResourceFloatPosition, ResourceFloatSpan, ResourceRotation } from '../types';
|
|
20
|
+
/** Resolved placement for a resource: never `undefined` fields (but
|
|
21
|
+
* `rotate`, absent for an upright resource). */
|
|
21
22
|
export interface ResolvedPlacement {
|
|
22
23
|
position: ResourceFloatPosition;
|
|
23
24
|
span: ResourceFloatSpan;
|
|
25
|
+
rotate?: ResourceRotation;
|
|
24
26
|
}
|
|
25
27
|
/** A planned float: the resource, its resolved placement, and the index of the
|
|
26
28
|
* content block where it is first referenced (its anchor). `'auto'` takes
|
|
@@ -31,6 +33,9 @@ export interface PlannedFloat {
|
|
|
31
33
|
firstBlockIdx: number;
|
|
32
34
|
position: 'auto' | 'top' | 'bottom';
|
|
33
35
|
span: ResourceFloatSpan;
|
|
36
|
+
/** Set turned a quarter turn on the page (always page-span; takes a
|
|
37
|
+
* whole page). */
|
|
38
|
+
rotate?: ResourceRotation;
|
|
34
39
|
/** For the rest of a table split across pages: the first model row still
|
|
35
40
|
* to place (the header rows are repeated above it). Absent (or `0`) for
|
|
36
41
|
* a whole resource. */
|
|
@@ -45,7 +50,9 @@ export interface PlannedFloat {
|
|
|
45
50
|
};
|
|
46
51
|
}
|
|
47
52
|
/** Resolve a resource's placement: own `placement` → its type's
|
|
48
|
-
* `defaultPlacement` → the built-in default (`auto` / `column`).
|
|
53
|
+
* `defaultPlacement` → the built-in default (`auto` / `column`). A rotated
|
|
54
|
+
* resource is always a page-span float; an inline (`here`) embed is never
|
|
55
|
+
* rotated. */
|
|
49
56
|
export declare function resolveResourcePlacement(resource: Resource, type: ResourceType | undefined): ResolvedPlacement;
|
|
50
57
|
/**
|
|
51
58
|
* Walk the parsed blocks in reading order and produce the floats to place, in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatPlacement.d.ts","sourceRoot":"","sources":["../../src/pipeline/floatPlacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"floatPlacement.d.ts","sourceRoot":"","sources":["../../src/pipeline/floatPlacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB;iDACiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;2DAG2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB;uBACmB;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;4BAEwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;iBAGa;IACb,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAED;;;eAGe;AACf,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,GAAG,SAAS,GAC7B,iBAAiB,CAQnB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EAAE,EACtB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,GAC5B,YAAY,EAAE,CA6BhB;AAED;+EAC+E;AAC/E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAEpE"}
|
|
@@ -16,11 +16,16 @@
|
|
|
16
16
|
* which owns the VDT and measurement context.
|
|
17
17
|
*/
|
|
18
18
|
/** Resolve a resource's placement: own `placement` → its type's
|
|
19
|
-
* `defaultPlacement` → the built-in default (`auto` / `column`).
|
|
19
|
+
* `defaultPlacement` → the built-in default (`auto` / `column`). A rotated
|
|
20
|
+
* resource is always a page-span float; an inline (`here`) embed is never
|
|
21
|
+
* rotated. */
|
|
20
22
|
export function resolveResourcePlacement(resource, type) {
|
|
21
23
|
const position = resource.placement?.position ?? type?.defaultPlacement?.position ?? 'auto';
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
+
const rotate = position === 'here'
|
|
25
|
+
? undefined
|
|
26
|
+
: (resource.placement?.rotate ?? type?.defaultPlacement?.rotate);
|
|
27
|
+
const span = rotate ? 'page' : (resource.placement?.span ?? type?.defaultPlacement?.span ?? 'column');
|
|
28
|
+
return rotate ? { position, span, rotate } : { position, span };
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* Walk the parsed blocks in reading order and produce the floats to place, in
|
|
@@ -46,10 +51,10 @@ export function computeFloatPlan(blocks, resources, resourceTypes) {
|
|
|
46
51
|
if (!resource)
|
|
47
52
|
return;
|
|
48
53
|
const type = typeById.get(resource.typeId);
|
|
49
|
-
const { position, span } = resolveResourcePlacement(resource, type);
|
|
54
|
+
const { position, span, rotate } = resolveResourcePlacement(resource, type);
|
|
50
55
|
if (position === 'here')
|
|
51
56
|
return;
|
|
52
|
-
plan.push({ resourceId, firstBlockIdx: blockIdx, position, span });
|
|
57
|
+
plan.push({ resourceId, firstBlockIdx: blockIdx, position, span, ...(rotate ? { rotate } : {}) });
|
|
53
58
|
};
|
|
54
59
|
for (let i = 0; i < blocks.length; i++) {
|
|
55
60
|
const b = blocks[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatPlacement.js","sourceRoot":"","sources":["../../src/pipeline/floatPlacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"floatPlacement.js","sourceRoot":"","sources":["../../src/pipeline/floatPlacement.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,9 @@ export interface FloatMeasure {
|
|
|
35
35
|
height: number;
|
|
36
36
|
/** Block-relative baseline of the caption's last line, when captioned. */
|
|
37
37
|
lastCaptionBaseline?: number;
|
|
38
|
+
/** For a rotated block: the width it takes on the page (its upright
|
|
39
|
+
* height), which must fit the band's width. */
|
|
40
|
+
rotatedWidth?: number;
|
|
38
41
|
}
|
|
39
42
|
/** Band geometry for one slot. Both kinds are corrected against the baseline
|
|
40
43
|
* grid so the surrounding text — and the facing page — keeps the rhythm:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatSlots.d.ts","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjD;6EAC6E;AAC7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;+DAG+D;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5D,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,iBAAiB,EAAE,MAAM,EACzB,CAAC,EAAE,YAAY,EACf,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,aAAa,GAC3C,SAAS,EAAE,CA4Bb;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"floatSlots.d.ts","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjD;6EAC6E;AAC7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;+DAG+D;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5D,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,iBAAiB,EAAE,MAAM,EACzB,CAAC,EAAE,YAAY,EACf,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,aAAa,GAC3C,SAAS,EAAE,CA4Bb;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;oDACgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;uEAOuE;AACvE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,GACvC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB7B;AAED;sEACsE;AACtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAKzE;AAED;;+CAE+C;AAC/C,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAET;AAED;yBACyB;AACzB,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,CAElG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatSlots.js","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmB1C,8EAA8E;AAC9E,MAAM,UAAU,yBAAyB,CACvC,IAAa,EACb,iBAAyB,EACzB,CAAe,EACf,SAA4C;IAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,GAAc,EAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;IAE1E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK;YAAE,SAAS;QAClC,IAAI,QAAQ,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"floatSlots.js","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmB1C,8EAA8E;AAC9E,MAAM,UAAU,yBAAyB,CACvC,IAAa,EACb,iBAAyB,EACzB,CAAe,EACf,SAA4C;IAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,GAAc,EAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;IAE1E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK;YAAE,SAAS;QAClC,IAAI,QAAQ,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAYD;;;;;;;uEAOuE;AACvE,MAAM,UAAU,gBAAgB,CAC9B,QAA2B,EAC3B,KAAmB,EACnB,IAA0B,EAC1B,WAAwB,EACxB,YAAoB,EACpB,KAAa,EACb,YAAwC;IAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC;UACnC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;IACnF,sEAAsE;IACtE,iCAAiC;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,mBAAmB,KAAK,SAAS;QAC/C,CAAC,CAAC,iBAAiB,GAAG,GAAG,GAAG,YAAY,GAAG,KAAK,CAAC,mBAAmB;QACpE,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,GAAc;IAC9D,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;AACrG,CAAC;AAED;;+CAE+C;AAC/C,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,GAAc,EACd,OAAgB,EAChB,SAAiB;IAEjB,OAAO,IAAI,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,CAAC;AAED;yBACyB;AACzB,MAAM,UAAU,UAAU,CAAC,GAAc,EAAE,eAA+C;IACxF,OAAO,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureContentBlock.d.ts","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAO3C,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE;;yEAEyE;AACzE,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,wBAAwB,CAAC;IACrE,oEAAoE;IACpE,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,uEAAuE;IACvE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wEAAwE;IACxE,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAClD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC;2EACuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;iFAC6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;6EACyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,mBAAmB,EACxB,IAAI,CAAC,EAAE,0BAA0B,GAChC,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"measureContentBlock.d.ts","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAO3C,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE;;yEAEyE;AACzE,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,wBAAwB,CAAC;IACrE,oEAAoE;IACpE,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,uEAAuE;IACvE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wEAAwE;IACxE,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAClD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC;2EACuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;iFAC6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;6EACyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,mBAAmB,EACxB,IAAI,CAAC,EAAE,0BAA0B,GAChC,oBAAoB,GAAG,IAAI,CA4I7B"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { computeMeasureViewport, enrichMathSpans, isMarkerBlock, stampSourceRanges, } from './buildHelpers';
|
|
11
11
|
import { resolveBlockKind } from './buildBlockKind';
|
|
12
12
|
import { runMeasurement } from './buildMeasurement';
|
|
13
|
-
import { resolveRefSpans } from './resourceLayout';
|
|
13
|
+
import { resolveRefSpans, resolveSwatchSpans } from './resourceLayout';
|
|
14
14
|
import { measureTocBlock } from './toc';
|
|
15
15
|
/**
|
|
16
16
|
* Resolve and measure one content block at `columnWidth`. Returns `null` when
|
|
@@ -73,7 +73,11 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
|
|
|
73
73
|
}),
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
// Inline colour swatches: a palette id resolves to its hex here.
|
|
77
|
+
if (contentBlock.spans.some((s) => s.swatch)) {
|
|
78
|
+
contentBlock = { ...contentBlock, spans: resolveSwatchSpans(contentBlock.spans, resolved.colorPalette) };
|
|
79
|
+
}
|
|
80
|
+
const hasRichSpans = contentBlock.spans.some((s) => s.bold || s.italic || s.mathRender || s.ref || s.swatch);
|
|
77
81
|
// List items reserve horizontal space for indent + bullet + gap.
|
|
78
82
|
const { measureMaxWidth, lineXShift, measureFirstLineIndent, measureHangingIndent, } = computeMeasureViewport(columnWidth, style, listBullet);
|
|
79
83
|
// First-paragraph-after-heading: typographic convention used in many
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAyC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/pipeline/outline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAK1D,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAExE;AAeD,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAQ7E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,eAAe,GACvB,YAAY,EAAE,CA6ChB;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,MAAM,CAAC,EAAE,eAAe,GACvB,YAAY,EAAE,CAEhB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/pipeline/outline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAK1D,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAExE;AAeD,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAQ7E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,eAAe,GACvB,YAAY,EAAE,CA6ChB;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,MAAM,CAAC,EAAE,eAAe,GACvB,YAAY,EAAE,CAEhB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,CAwBvG;AAID,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,OAAO,CAEnH"}
|
package/dist/pipeline/outline.js
CHANGED
|
@@ -102,30 +102,32 @@ export function computeOutlineFor(blocks, config, before) {
|
|
|
102
102
|
* chapters).
|
|
103
103
|
*/
|
|
104
104
|
export function outlineFromDoc(doc, parsedOutline) {
|
|
105
|
-
|
|
105
|
+
const offset = doc.pageIndexOffset ?? 0;
|
|
106
|
+
// Page (label and book index) per heading content index (first fragment
|
|
107
|
+
// of a split heading).
|
|
106
108
|
const headingPage = new Map();
|
|
107
109
|
for (const b of doc.blocks) {
|
|
108
110
|
if (b.type !== 'heading' || b.contentIndex === undefined || b.pageIndex < 0)
|
|
109
111
|
continue;
|
|
110
112
|
if (headingPage.has(b.contentIndex))
|
|
111
113
|
continue;
|
|
112
|
-
headingPage.set(b.contentIndex, doc.pages[b.pageIndex]?.pageLabel ?? '');
|
|
114
|
+
headingPage.set(b.contentIndex, { pageLabel: doc.pages[b.pageIndex]?.pageLabel ?? '', pageIndex: offset + b.pageIndex });
|
|
113
115
|
}
|
|
114
116
|
const partPages = [];
|
|
115
117
|
for (const page of doc.pages)
|
|
116
118
|
if (page.partInfo)
|
|
117
|
-
partPages.push(page.pageLabel);
|
|
119
|
+
partPages.push({ pageLabel: page.pageLabel, pageIndex: offset + page.index });
|
|
118
120
|
const headingIndices = [...headingPage.keys()].sort((a, b) => a - b);
|
|
119
121
|
let h = 0;
|
|
120
122
|
let p = 0;
|
|
121
123
|
return parsedOutline.map((entry) => {
|
|
122
124
|
if (entry.kind === 'part') {
|
|
123
|
-
const
|
|
124
|
-
return
|
|
125
|
+
const page = partPages[p++];
|
|
126
|
+
return page !== undefined ? { ...entry, ...page } : { ...entry };
|
|
125
127
|
}
|
|
126
128
|
const idx = headingIndices[h++];
|
|
127
|
-
const
|
|
128
|
-
return
|
|
129
|
+
const page = idx !== undefined ? headingPage.get(idx) : undefined;
|
|
130
|
+
return page !== undefined ? { ...entry, ...page } : { ...entry };
|
|
129
131
|
});
|
|
130
132
|
}
|
|
131
133
|
const FIELD_SEP = '';
|
|
@@ -134,7 +136,7 @@ export function outlineKey(entries) {
|
|
|
134
136
|
if (!entries)
|
|
135
137
|
return '';
|
|
136
138
|
return entries.map((e) => [
|
|
137
|
-
e.kind, e.level, e.number, e.title, e.numbered ? 1 : 0, e.listed ? 1 : 0, e.styleId ?? '', e.pageLabel ?? '?',
|
|
139
|
+
e.kind, e.level, e.number, e.title, e.numbered ? 1 : 0, e.listed ? 1 : 0, e.styleId ?? '', e.pageLabel ?? '?', e.pageIndex ?? '?',
|
|
138
140
|
e.attrs ? Object.entries(e.attrs).sort().map(([k, v]) => `${k}=${v}`).join(';') : '',
|
|
139
141
|
e.palette ? Object.entries(e.palette).sort().map(([k, v]) => `${k}=${v}`).join(';') : '',
|
|
140
142
|
e.spans ? e.spans.map((s) => `${s.bold ? 'b' : ''}${s.italic ? 'i' : ''}:${s.text}`).join(FIELD_SEP) : '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/pipeline/outline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/pipeline/outline.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* row metrics the full-table layout reports.
|
|
32
32
|
*/
|
|
33
33
|
import type { InlineSpan } from '../parse';
|
|
34
|
-
import type { Resource, ResourceType, TableModel } from '../types';
|
|
34
|
+
import type { ColorPaletteEntry, Resource, ResourceRotation, ResourceType, TableModel } from '../types';
|
|
35
35
|
import type { ResolvedConfig, ResolvedResourceBlock } from '../vdt';
|
|
36
36
|
import type { ResourceNumberingMap } from './resourceNumbering';
|
|
37
37
|
export interface ResourceLayoutInput {
|
|
@@ -39,8 +39,17 @@ export interface ResourceLayoutInput {
|
|
|
39
39
|
resourceType: ResourceType | undefined;
|
|
40
40
|
number: string;
|
|
41
41
|
resolved: ResolvedConfig;
|
|
42
|
-
/** Available column width in px
|
|
42
|
+
/** Available column width in px — for a rotated block, the width of the
|
|
43
|
+
* band it takes on the page (the extent its upright height may reach). */
|
|
43
44
|
columnWidth: number;
|
|
45
|
+
/** Set the block turned a quarter turn on the page. Its upright frame is
|
|
46
|
+
* then laid out `rotatedLength` px wide (the block's extent along the
|
|
47
|
+
* page's height) and the block reports that length as its height on the
|
|
48
|
+
* page; the upright height (the footprint's width) is
|
|
49
|
+
* `block.rotation.height`. See {@link VDTResourceRotation}. */
|
|
50
|
+
rotate?: ResourceRotation;
|
|
51
|
+
/** Upright layout width of a rotated block (px). Defaults to `columnWidth`. */
|
|
52
|
+
rotatedLength?: number;
|
|
44
53
|
/** Full numbering map — lets inline `:ref`s inside the caption resolve. */
|
|
45
54
|
resourceNumbering: ResourceNumberingMap;
|
|
46
55
|
resourceTypes: ResourceType[];
|
|
@@ -75,6 +84,11 @@ export interface TableRowMetrics {
|
|
|
75
84
|
* or all header cells): a slice never ends on one when it can help it. */
|
|
76
85
|
groupHeaderRow: boolean[];
|
|
77
86
|
}
|
|
87
|
+
/** Resolve the colour of every inline `:swatch{…}` span: a `#rgb` / `#rrggbb`
|
|
88
|
+
* hex is normalised to six digits; any other value is looked up as a
|
|
89
|
+
* document palette entry id. An unresolved colour is left as written (the
|
|
90
|
+
* measurer then draws an empty outline). Spans without a swatch pass through. */
|
|
91
|
+
export declare function resolveSwatchSpans(spans: InlineSpan[], palette: ColorPaletteEntry[] | undefined): InlineSpan[];
|
|
78
92
|
/** Build a label for an inline `:ref` to a resource, honouring its `style` and
|
|
79
93
|
* optional override `text`. Mirrors the caption-prefix conventions. */
|
|
80
94
|
export declare function resolveRefLabel(ref: NonNullable<InlineSpan['ref']>, resourceNumbering: ResourceNumberingMap, resourceTypes: ResourceType[], resources: Resource[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resourceLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,29 @@ import { dimensionToPx } from '../units';
|
|
|
38
38
|
// one span list (`:ref{…}` becomes a one-char placeholder span).
|
|
39
39
|
import { parseInlineSnippetSpans as parseRefAwareSpans } from '../parse/inlineSnippet';
|
|
40
40
|
import { mergeCaptionStyle } from '../defaults/captionStyle';
|
|
41
|
+
import { resolveColorValue } from '../defaults/shared';
|
|
41
42
|
import { resolveBodyStyle } from './styles';
|
|
42
43
|
/** Non-breaking space used to glue a resolved `:ref` label into a single
|
|
43
44
|
* atomic text token, so a post-measurement pass can tag it reliably. */
|
|
44
45
|
const NBSP = ' ';
|
|
46
|
+
/** Resolve the colour of every inline `:swatch{…}` span: a `#rgb` / `#rrggbb`
|
|
47
|
+
* hex is normalised to six digits; any other value is looked up as a
|
|
48
|
+
* document palette entry id. An unresolved colour is left as written (the
|
|
49
|
+
* measurer then draws an empty outline). Spans without a swatch pass through. */
|
|
50
|
+
export function resolveSwatchSpans(spans, palette) {
|
|
51
|
+
return spans.map((span) => {
|
|
52
|
+
if (!span.swatch)
|
|
53
|
+
return span;
|
|
54
|
+
const raw = span.swatch.color.trim();
|
|
55
|
+
const short = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(raw);
|
|
56
|
+
if (short)
|
|
57
|
+
return { ...span, swatch: { color: `#${short[1]}${short[1]}${short[2]}${short[2]}${short[3]}${short[3]}`.toLowerCase() } };
|
|
58
|
+
if (/^#[0-9a-f]{6}$/i.test(raw))
|
|
59
|
+
return { ...span, swatch: { color: raw.toLowerCase() } };
|
|
60
|
+
const entry = palette?.find((e) => e.id === raw);
|
|
61
|
+
return entry ? { ...span, swatch: { color: entry.value.hex } } : span;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
45
64
|
/** Build a label for an inline `:ref` to a resource, honouring its `style` and
|
|
46
65
|
* optional override `text`. Mirrors the caption-prefix conventions. */
|
|
47
66
|
export function resolveRefLabel(ref, resourceNumbering, resourceTypes, resources) {
|
|
@@ -440,7 +459,7 @@ function layoutTable(model, columnWidth, style, resourceNumbering, resourceTypes
|
|
|
440
459
|
const isHeader = cellIsHeader(cell, r, model);
|
|
441
460
|
const set = isHeader ? header : body;
|
|
442
461
|
const cellWidth = spanWidth(c, colSpan) - cellPaddingPx * 2;
|
|
443
|
-
const spans = resolveRefSpans(parseRefAwareSpans(cell.content), resourceNumbering, resourceTypes, resources, refStyle);
|
|
462
|
+
const spans = resolveSwatchSpans(resolveRefSpans(parseRefAwareSpans(cell.content), resourceNumbering, resourceTypes, resources, refStyle), style.palette);
|
|
444
463
|
const m = measureCellContent(spans, set, Math.max(1, cellWidth), cell.align ?? 'left', style.listGapPx);
|
|
445
464
|
// An embedded image sits at the top of the cell; the text (when
|
|
446
465
|
// there is any) runs under it, a padding's worth below.
|
|
@@ -450,6 +469,9 @@ function layoutTable(model, columnWidth, style, resourceNumbering, resourceTypes
|
|
|
450
469
|
const lines = image && textHeight > 0 ? shiftLines(m.lines, 0, textY) : m.lines;
|
|
451
470
|
const stackHeight = image ? textY + textHeight : textHeight;
|
|
452
471
|
const contentHeight = Math.max(set.lineHeightPx, stackHeight) + cellPaddingPx * 2;
|
|
472
|
+
const background = cell.background && !cell.hiddenBy
|
|
473
|
+
? resolveColorValue(cell.background, style.palette, cell.background).hex
|
|
474
|
+
: undefined;
|
|
453
475
|
measured.push({
|
|
454
476
|
row: r,
|
|
455
477
|
sliceRow: si,
|
|
@@ -462,6 +484,7 @@ function layoutTable(model, columnWidth, style, resourceNumbering, resourceTypes
|
|
|
462
484
|
lines,
|
|
463
485
|
contentHeight,
|
|
464
486
|
image,
|
|
487
|
+
background,
|
|
465
488
|
});
|
|
466
489
|
// Single-row cells drive their row's minimum height directly.
|
|
467
490
|
if (rowSpan === 1) {
|
|
@@ -544,6 +567,7 @@ function layoutTable(model, columnWidth, style, resourceNumbering, resourceTypes
|
|
|
544
567
|
rect,
|
|
545
568
|
lines: placed,
|
|
546
569
|
...(image ? { image } : {}),
|
|
570
|
+
...(m.background !== undefined ? { background: m.background } : {}),
|
|
547
571
|
};
|
|
548
572
|
});
|
|
549
573
|
const layout = {
|
|
@@ -575,7 +599,11 @@ function layoutTable(model, columnWidth, style, resourceNumbering, resourceTypes
|
|
|
575
599
|
* decide whether the group fits the remaining column space.
|
|
576
600
|
*/
|
|
577
601
|
export function layoutResourceBlock(input) {
|
|
578
|
-
const { resource, resourceType, number, resolved, columnWidth, resourceNumbering, resourceTypes, resources, } = input;
|
|
602
|
+
const { resource, resourceType, number, resolved, columnWidth: footprintWidth, resourceNumbering, resourceTypes, resources, rotate, } = input;
|
|
603
|
+
// A rotated block is laid out upright, `rotatedLength` wide; its upright
|
|
604
|
+
// height must then fit the band's width on the page (`footprintWidth`).
|
|
605
|
+
const columnWidth = rotate ? Math.max(1, input.rotatedLength ?? footprintWidth) : footprintWidth;
|
|
606
|
+
const palette = resolved.colorPalette;
|
|
579
607
|
// A slice only applies to tables; a slice covering the whole table from
|
|
580
608
|
// row 0 is the full table (no continuation marks).
|
|
581
609
|
const model = resource.kind === 'table' ? resource.table?.model : undefined;
|
|
@@ -659,6 +687,7 @@ export function layoutResourceBlock(input) {
|
|
|
659
687
|
bodyBackground: ts.bodyBackgroundEnabled ? ts.bodyBackground.hex : undefined,
|
|
660
688
|
rules: ts.rules,
|
|
661
689
|
listGapPx: dimensionToPx(resolved.unorderedLists.gap, dpi, bodyFontPx),
|
|
690
|
+
palette,
|
|
662
691
|
};
|
|
663
692
|
const { layout, height, metrics } = layoutTable(resource.table.model, columnWidth, style, resourceNumbering, resourceTypes, resources, refStyle, slice ? tableSliceRows(resource.table.model, slice) : undefined);
|
|
664
693
|
table = layout;
|
|
@@ -691,7 +720,7 @@ export function layoutResourceBlock(input) {
|
|
|
691
720
|
const prefixText = captionPrefix.length > 0
|
|
692
721
|
? `${captionPrefix}${NBSP}${number}.${number ? ' ' : ''}`
|
|
693
722
|
: '';
|
|
694
|
-
const resolvedSpans = resolveRefSpans(parseRefAwareSpans(captionText), resourceNumbering, resourceTypes, resources, refStyle);
|
|
723
|
+
const resolvedSpans = resolveSwatchSpans(resolveRefSpans(parseRefAwareSpans(captionText), resourceNumbering, resourceTypes, resources, refStyle), palette);
|
|
695
724
|
// Description spans pick up the configured slant on top of their own markup.
|
|
696
725
|
const descSpans = cs.descriptionItalic
|
|
697
726
|
? resolvedSpans.map((s) => ({ ...s, italic: s.italic || true }))
|
|
@@ -727,7 +756,7 @@ export function layoutResourceBlock(input) {
|
|
|
727
756
|
// The note closes the table: a slice that continues holds it back for
|
|
728
757
|
// the last slice.
|
|
729
758
|
if (noteText.trim().length > 0 && !slice?.continues) {
|
|
730
|
-
const noteSpans = resolveRefSpans(parseRefAwareSpans(noteText), resourceNumbering, resourceTypes, resources, refStyle);
|
|
759
|
+
const noteSpans = resolveSwatchSpans(resolveRefSpans(parseRefAwareSpans(noteText), resourceNumbering, resourceTypes, resources, refStyle), palette);
|
|
731
760
|
const slanted = cs.note.italic
|
|
732
761
|
? noteSpans.map((s) => ({ ...s, italic: s.italic || true }))
|
|
733
762
|
: noteSpans;
|
|
@@ -755,6 +784,17 @@ export function layoutResourceBlock(input) {
|
|
|
755
784
|
const continuesHeight = measuredContinues.length > 0
|
|
756
785
|
? measuredContinues.length * noteLineHeightPx + noteGapPx
|
|
757
786
|
: 0;
|
|
787
|
+
// A rotated figure must also fit the band's width with its caption and
|
|
788
|
+
// note: scale the image down when the stack would run past it (a table
|
|
789
|
+
// is cut between rows by the placer instead).
|
|
790
|
+
if (rotate && (resource.kind === 'bitmap' || resource.kind === 'svg')) {
|
|
791
|
+
const room = footprintWidth - captionHeight - noteHeight - continuesHeight;
|
|
792
|
+
if (bodyHeight > room && bodyHeight > 0) {
|
|
793
|
+
const k = Math.max(0.01, room) / bodyHeight;
|
|
794
|
+
bodyWidth *= k;
|
|
795
|
+
bodyHeight *= k;
|
|
796
|
+
}
|
|
797
|
+
}
|
|
758
798
|
// --- Vertical stacking -------------------------------------------------
|
|
759
799
|
// above: [caption band] gap [body] noteGap [note]
|
|
760
800
|
// below: [body] gap [caption band] noteGap [note]
|
|
@@ -820,6 +860,13 @@ export function layoutResourceBlock(input) {
|
|
|
820
860
|
noteColor: cs.note.color.hex,
|
|
821
861
|
continuesLines,
|
|
822
862
|
};
|
|
863
|
+
if (rotate) {
|
|
864
|
+
// The inner geometry stays in the upright frame; the placer sets the
|
|
865
|
+
// origin when it positions the block. On the page the block is as tall
|
|
866
|
+
// as the upright frame is wide.
|
|
867
|
+
block.rotation = { direction: rotate, originX: 0, originY: 0, width: columnWidth, height: totalHeight };
|
|
868
|
+
return tableRows ? { block, totalHeight: columnWidth, tableRows } : { block, totalHeight: columnWidth };
|
|
869
|
+
}
|
|
823
870
|
return tableRows ? { block, totalHeight, tableRows } : { block, totalHeight };
|
|
824
871
|
}
|
|
825
872
|
//# sourceMappingURL=resourceLayout.js.map
|