postext 1.33.11 → 1.34.1

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.
Files changed (303) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/bundle/designOverflowPin.test.js +1 -1
  3. package/dist/__tests__/bundle/gridBreakRulesPin.test.js +2 -2
  4. package/dist/__tests__/bundle/shapingLanguagePin.test.js +3 -3
  5. package/dist/__tests__/bundle/taskBoxPin.test.js +1 -1
  6. package/dist/__tests__/bundle.test.js +34 -2
  7. package/dist/__tests__/bundle.test.js.map +1 -1
  8. package/dist/__tests__/codeBlocks.test.js +89 -1
  9. package/dist/__tests__/codeBlocks.test.js.map +1 -1
  10. package/dist/__tests__/composed/corpus.test.d.ts +2 -0
  11. package/dist/__tests__/composed/corpus.test.d.ts.map +1 -0
  12. package/dist/__tests__/composed/corpus.test.js +33 -0
  13. package/dist/__tests__/composed/corpus.test.js.map +1 -0
  14. package/dist/__tests__/composed/fixtures/page8.d.ts +20 -0
  15. package/dist/__tests__/composed/fixtures/page8.d.ts.map +1 -0
  16. package/dist/__tests__/composed/fixtures/page8.js +159 -0
  17. package/dist/__tests__/composed/fixtures/page8.js.map +1 -0
  18. package/dist/__tests__/composed/layout.test.d.ts +2 -0
  19. package/dist/__tests__/composed/layout.test.d.ts.map +1 -0
  20. package/dist/__tests__/composed/layout.test.js +387 -0
  21. package/dist/__tests__/composed/layout.test.js.map +1 -0
  22. package/dist/__tests__/composed/slotChecks.test.d.ts +2 -0
  23. package/dist/__tests__/composed/slotChecks.test.d.ts.map +1 -0
  24. package/dist/__tests__/composed/slotChecks.test.js +151 -0
  25. package/dist/__tests__/composed/slotChecks.test.js.map +1 -0
  26. package/dist/__tests__/composedPaint.test.d.ts +2 -0
  27. package/dist/__tests__/composedPaint.test.d.ts.map +1 -0
  28. package/dist/__tests__/composedPaint.test.js +191 -0
  29. package/dist/__tests__/composedPaint.test.js.map +1 -0
  30. package/dist/__tests__/composedTemplates.test.d.ts +2 -0
  31. package/dist/__tests__/composedTemplates.test.d.ts.map +1 -0
  32. package/dist/__tests__/composedTemplates.test.js +349 -0
  33. package/dist/__tests__/composedTemplates.test.js.map +1 -0
  34. package/dist/__tests__/contentInConfig.test.d.ts +2 -0
  35. package/dist/__tests__/contentInConfig.test.d.ts.map +1 -0
  36. package/dist/__tests__/contentInConfig.test.js +201 -0
  37. package/dist/__tests__/contentInConfig.test.js.map +1 -0
  38. package/dist/__tests__/defaults/stripRoundTrip.test.js +6 -3
  39. package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
  40. package/dist/__tests__/exports.test.js +34 -0
  41. package/dist/__tests__/exports.test.js.map +1 -1
  42. package/dist/__tests__/hardBreaks.test.js +1 -1
  43. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  44. package/dist/__tests__/highlightMarks.test.d.ts +2 -0
  45. package/dist/__tests__/highlightMarks.test.d.ts.map +1 -0
  46. package/dist/__tests__/highlightMarks.test.js +169 -0
  47. package/dist/__tests__/highlightMarks.test.js.map +1 -0
  48. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  49. package/dist/__tests__/parse/composedPages.test.d.ts +2 -0
  50. package/dist/__tests__/parse/composedPages.test.d.ts.map +1 -0
  51. package/dist/__tests__/parse/composedPages.test.js +323 -0
  52. package/dist/__tests__/parse/composedPages.test.js.map +1 -0
  53. package/dist/__tests__/parse/containers.test.js +2 -2
  54. package/dist/__tests__/parse/containers.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  56. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  57. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  58. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  59. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  60. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  61. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  62. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  63. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  64. package/dist/__tests__/tocGroups.test.d.ts +2 -0
  65. package/dist/__tests__/tocGroups.test.d.ts.map +1 -0
  66. package/dist/__tests__/tocGroups.test.js +213 -0
  67. package/dist/__tests__/tocGroups.test.js.map +1 -0
  68. package/dist/__tests__/tocPartLeader.test.d.ts +2 -0
  69. package/dist/__tests__/tocPartLeader.test.d.ts.map +1 -0
  70. package/dist/__tests__/tocPartLeader.test.js +133 -0
  71. package/dist/__tests__/tocPartLeader.test.js.map +1 -0
  72. package/dist/__tests__/verseLines.test.js +1 -1
  73. package/dist/bundle/api.d.ts +8 -0
  74. package/dist/bundle/api.d.ts.map +1 -1
  75. package/dist/bundle/api.js +6 -3
  76. package/dist/bundle/api.js.map +1 -1
  77. package/dist/bundle/codec.d.ts +5 -0
  78. package/dist/bundle/codec.d.ts.map +1 -1
  79. package/dist/bundle/codec.js +4 -0
  80. package/dist/bundle/codec.js.map +1 -1
  81. package/dist/bundle/configVersion.d.ts +16 -5
  82. package/dist/bundle/configVersion.d.ts.map +1 -1
  83. package/dist/bundle/configVersion.js +17 -4
  84. package/dist/bundle/configVersion.js.map +1 -1
  85. package/dist/bundle/index.d.ts +2 -2
  86. package/dist/bundle/index.d.ts.map +1 -1
  87. package/dist/bundle/index.js +1 -1
  88. package/dist/bundle/index.js.map +1 -1
  89. package/dist/bundle/manifest.d.ts +14 -0
  90. package/dist/bundle/manifest.d.ts.map +1 -1
  91. package/dist/bundle/manifest.js +13 -0
  92. package/dist/bundle/manifest.js.map +1 -1
  93. package/dist/bundle/types.d.ts +11 -3
  94. package/dist/bundle/types.d.ts.map +1 -1
  95. package/dist/canvas-backend/annotations.d.ts +6 -0
  96. package/dist/canvas-backend/annotations.d.ts.map +1 -1
  97. package/dist/canvas-backend/annotations.js +39 -0
  98. package/dist/canvas-backend/annotations.js.map +1 -1
  99. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  100. package/dist/canvas-backend/blockRender.js +6 -1
  101. package/dist/canvas-backend/blockRender.js.map +1 -1
  102. package/dist/canvas-backend/composed.d.ts +15 -0
  103. package/dist/canvas-backend/composed.d.ts.map +1 -0
  104. package/dist/canvas-backend/composed.js +41 -0
  105. package/dist/canvas-backend/composed.js.map +1 -0
  106. package/dist/canvas-backend/index.d.ts.map +1 -1
  107. package/dist/canvas-backend/index.js +15 -1
  108. package/dist/canvas-backend/index.js.map +1 -1
  109. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  110. package/dist/canvas-backend/renderResourceBlock.js +4 -1
  111. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  112. package/dist/composed/document.d.ts +43 -0
  113. package/dist/composed/document.d.ts.map +1 -0
  114. package/dist/composed/document.js +88 -0
  115. package/dist/composed/document.js.map +1 -0
  116. package/dist/composed/geometry.d.ts +108 -0
  117. package/dist/composed/geometry.d.ts.map +1 -0
  118. package/dist/composed/geometry.js +241 -0
  119. package/dist/composed/geometry.js.map +1 -0
  120. package/dist/composed/paint.d.ts +41 -0
  121. package/dist/composed/paint.d.ts.map +1 -0
  122. package/dist/composed/paint.js +83 -0
  123. package/dist/composed/paint.js.map +1 -0
  124. package/dist/composed/slotChecks.d.ts +29 -0
  125. package/dist/composed/slotChecks.d.ts.map +1 -0
  126. package/dist/composed/slotChecks.js +109 -0
  127. package/dist/composed/slotChecks.js.map +1 -0
  128. package/dist/composed/templates.d.ts +133 -0
  129. package/dist/composed/templates.d.ts.map +1 -0
  130. package/dist/composed/templates.js +702 -0
  131. package/dist/composed/templates.js.map +1 -0
  132. package/dist/composed/types.d.ts +361 -0
  133. package/dist/composed/types.d.ts.map +1 -0
  134. package/dist/composed/types.js +2 -0
  135. package/dist/composed/types.js.map +1 -0
  136. package/dist/composed/validate.d.ts +26 -0
  137. package/dist/composed/validate.d.ts.map +1 -0
  138. package/dist/composed/validate.js +276 -0
  139. package/dist/composed/validate.js.map +1 -0
  140. package/dist/composed/wrap.d.ts +52 -0
  141. package/dist/composed/wrap.d.ts.map +1 -0
  142. package/dist/composed/wrap.js +234 -0
  143. package/dist/composed/wrap.js.map +1 -0
  144. package/dist/configWarnings.d.ts +19 -3
  145. package/dist/configWarnings.d.ts.map +1 -1
  146. package/dist/configWarnings.js +171 -41
  147. package/dist/configWarnings.js.map +1 -1
  148. package/dist/defaults/checks.d.ts +7 -0
  149. package/dist/defaults/checks.d.ts.map +1 -0
  150. package/dist/defaults/checks.js +49 -0
  151. package/dist/defaults/checks.js.map +1 -0
  152. package/dist/defaults/codeStyle.d.ts.map +1 -1
  153. package/dist/defaults/codeStyle.js +1 -0
  154. package/dist/defaults/codeStyle.js.map +1 -1
  155. package/dist/defaults/index.d.ts +2 -0
  156. package/dist/defaults/index.d.ts.map +1 -1
  157. package/dist/defaults/index.js +35 -0
  158. package/dist/defaults/index.js.map +1 -1
  159. package/dist/defaults/markStyles.d.ts +23 -0
  160. package/dist/defaults/markStyles.d.ts.map +1 -0
  161. package/dist/defaults/markStyles.js +80 -0
  162. package/dist/defaults/markStyles.js.map +1 -0
  163. package/dist/defaults/shared.d.ts.map +1 -1
  164. package/dist/defaults/shared.js +12 -0
  165. package/dist/defaults/shared.js.map +1 -1
  166. package/dist/defaults/toc.d.ts +17 -2
  167. package/dist/defaults/toc.d.ts.map +1 -1
  168. package/dist/defaults/toc.js +53 -1
  169. package/dist/defaults/toc.js.map +1 -1
  170. package/dist/design/bidiText.d.ts +4 -1
  171. package/dist/design/bidiText.d.ts.map +1 -1
  172. package/dist/design/bidiText.js +5 -2
  173. package/dist/design/bidiText.js.map +1 -1
  174. package/dist/design/layout.d.ts +10 -0
  175. package/dist/design/layout.d.ts.map +1 -1
  176. package/dist/design/layout.js +110 -8
  177. package/dist/design/layout.js.map +1 -1
  178. package/dist/design/placeholders.d.ts +28 -2
  179. package/dist/design/placeholders.d.ts.map +1 -1
  180. package/dist/design/placeholders.js +24 -1
  181. package/dist/design/placeholders.js.map +1 -1
  182. package/dist/design/richText.d.ts +2 -0
  183. package/dist/design/richText.d.ts.map +1 -1
  184. package/dist/design/richText.js.map +1 -1
  185. package/dist/design/slots.d.ts +29 -0
  186. package/dist/design/slots.d.ts.map +1 -0
  187. package/dist/design/slots.js +48 -0
  188. package/dist/design/slots.js.map +1 -0
  189. package/dist/highlightMarks.d.ts +33 -0
  190. package/dist/highlightMarks.d.ts.map +1 -0
  191. package/dist/highlightMarks.js +209 -0
  192. package/dist/highlightMarks.js.map +1 -0
  193. package/dist/html-backend.d.ts.map +1 -1
  194. package/dist/html-backend.js +65 -8
  195. package/dist/html-backend.js.map +1 -1
  196. package/dist/htmlAnnotations.d.ts +5 -0
  197. package/dist/htmlAnnotations.d.ts.map +1 -1
  198. package/dist/htmlAnnotations.js +16 -0
  199. package/dist/htmlAnnotations.js.map +1 -1
  200. package/dist/index.d.ts +21 -5
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +14 -3
  203. package/dist/index.js.map +1 -1
  204. package/dist/knuthPlass/richAdapter.d.ts +3 -0
  205. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  206. package/dist/knuthPlass/richAdapter.js +3 -2
  207. package/dist/knuthPlass/richAdapter.js.map +1 -1
  208. package/dist/measure/cache.js +3 -3
  209. package/dist/measure/cache.js.map +1 -1
  210. package/dist/measure/chipEdges.d.ts +13 -1
  211. package/dist/measure/chipEdges.d.ts.map +1 -1
  212. package/dist/measure/chipEdges.js +59 -1
  213. package/dist/measure/chipEdges.js.map +1 -1
  214. package/dist/measure/links.d.ts.map +1 -1
  215. package/dist/measure/links.js +78 -5
  216. package/dist/measure/links.js.map +1 -1
  217. package/dist/measure/rich.d.ts +3 -0
  218. package/dist/measure/rich.d.ts.map +1 -1
  219. package/dist/measure/rich.js +19 -4
  220. package/dist/measure/rich.js.map +1 -1
  221. package/dist/parse/blockParser.d.ts.map +1 -1
  222. package/dist/parse/blockParser.js +295 -36
  223. package/dist/parse/blockParser.js.map +1 -1
  224. package/dist/parse/index.d.ts +1 -1
  225. package/dist/parse/index.d.ts.map +1 -1
  226. package/dist/parse/index.js.map +1 -1
  227. package/dist/parse/indexMarks.d.ts.map +1 -1
  228. package/dist/parse/indexMarks.js +24 -0
  229. package/dist/parse/indexMarks.js.map +1 -1
  230. package/dist/parse/inlineFormatting.d.ts +14 -0
  231. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  232. package/dist/parse/inlineFormatting.js +104 -5
  233. package/dist/parse/inlineFormatting.js.map +1 -1
  234. package/dist/parse/links.js +1 -1
  235. package/dist/parse/links.js.map +1 -1
  236. package/dist/parse/softBreaks.js +1 -1
  237. package/dist/parse/softBreaks.js.map +1 -1
  238. package/dist/parse/sourceMapping.d.ts.map +1 -1
  239. package/dist/parse/sourceMapping.js +19 -3
  240. package/dist/parse/sourceMapping.js.map +1 -1
  241. package/dist/parse/types.d.ts +119 -2
  242. package/dist/parse/types.d.ts.map +1 -1
  243. package/dist/pipeline/build.d.ts.map +1 -1
  244. package/dist/pipeline/build.js +318 -287
  245. package/dist/pipeline/build.js.map +1 -1
  246. package/dist/pipeline/calloutLayout.d.ts +33 -0
  247. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  248. package/dist/pipeline/calloutLayout.js +91 -2
  249. package/dist/pipeline/calloutLayout.js.map +1 -1
  250. package/dist/pipeline/codeInline.d.ts +10 -1
  251. package/dist/pipeline/codeInline.d.ts.map +1 -1
  252. package/dist/pipeline/codeInline.js +96 -15
  253. package/dist/pipeline/codeInline.js.map +1 -1
  254. package/dist/pipeline/composedLayout.d.ts +88 -0
  255. package/dist/pipeline/composedLayout.d.ts.map +1 -0
  256. package/dist/pipeline/composedLayout.js +320 -0
  257. package/dist/pipeline/composedLayout.js.map +1 -0
  258. package/dist/pipeline/config.d.ts.map +1 -1
  259. package/dist/pipeline/config.js +18 -2
  260. package/dist/pipeline/config.js.map +1 -1
  261. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  262. package/dist/pipeline/contentWarnings.js +105 -1
  263. package/dist/pipeline/contentWarnings.js.map +1 -1
  264. package/dist/pipeline/floatSlots.js +1 -1
  265. package/dist/pipeline/floatSlots.js.map +1 -1
  266. package/dist/pipeline/frameLayout.d.ts +120 -0
  267. package/dist/pipeline/frameLayout.d.ts.map +1 -0
  268. package/dist/pipeline/frameLayout.js +279 -0
  269. package/dist/pipeline/frameLayout.js.map +1 -0
  270. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  271. package/dist/pipeline/headerFooter.js +48 -3
  272. package/dist/pipeline/headerFooter.js.map +1 -1
  273. package/dist/pipeline/pageRoles.d.ts +1 -0
  274. package/dist/pipeline/pageRoles.d.ts.map +1 -1
  275. package/dist/pipeline/pageRoles.js +3 -0
  276. package/dist/pipeline/pageRoles.js.map +1 -1
  277. package/dist/pipeline/placeholders.d.ts +7 -0
  278. package/dist/pipeline/placeholders.d.ts.map +1 -1
  279. package/dist/pipeline/placeholders.js +41 -0
  280. package/dist/pipeline/placeholders.js.map +1 -1
  281. package/dist/pipeline/placement.js +1 -1
  282. package/dist/pipeline/placement.js.map +1 -1
  283. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  284. package/dist/pipeline/resourceLayout.js +5 -3
  285. package/dist/pipeline/resourceLayout.js.map +1 -1
  286. package/dist/pipeline/tabs.js +1 -1
  287. package/dist/pipeline/tabs.js.map +1 -1
  288. package/dist/pipeline/textWrap.js +1 -1
  289. package/dist/pipeline/textWrap.js.map +1 -1
  290. package/dist/pipeline/toc.d.ts +11 -1
  291. package/dist/pipeline/toc.d.ts.map +1 -1
  292. package/dist/pipeline/toc.js +147 -8
  293. package/dist/pipeline/toc.js.map +1 -1
  294. package/dist/types.d.ts +168 -3
  295. package/dist/types.d.ts.map +1 -1
  296. package/dist/util/closestKey.d.ts +4 -0
  297. package/dist/util/closestKey.d.ts.map +1 -0
  298. package/dist/util/closestKey.js +40 -0
  299. package/dist/util/closestKey.js.map +1 -0
  300. package/dist/vdt.d.ts +293 -7
  301. package/dist/vdt.d.ts.map +1 -1
  302. package/dist/vdt.js.map +1 -1
  303. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"floatSlots.js","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floatSlots.js","sourceRoot":"","sources":["../../src/pipeline/floatSlots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * The box typesetter (#855): lay a run of content blocks out as a box of a
3
+ * callout style at a width, and cut it at a height, resumably.
4
+ *
5
+ * Factored out of `placeDocumentPass` (`build.ts`) with an explicit pass
6
+ * context so callouts and the frames of composed pages (DESIGN §5.1) share
7
+ * it: a callout's fragments (`keepTogether: false`) and a frame's content
8
+ * cut at the frame's foot are the same operation. Nothing here reads the
9
+ * page or the cursor; the pass context hands in what the layout needs.
10
+ */
11
+ import type { ContentBlock } from '../parse';
12
+ import type { ResolvedCalloutStyleConfig } from '../types';
13
+ import type { ResolvedConfig, VDTBlock } from '../vdt';
14
+ import type { BlockMeasureContext } from './measureContentBlock';
15
+ import type { ParagraphContainerPlan } from './paragraphContainers';
16
+ import { type CalloutLayoutInput, type CalloutLayoutResult, type CalloutLineWidth, type GroupPos, type PlannedCallout } from './calloutLayout';
17
+ /** What a frame of a composed page (#855) adds to a box's layout: its exact
18
+ * height, where content shorter than it sits, and the rectangles its text
19
+ * runs round. Absent for callouts. */
20
+ export type FrameBoxOptions = Pick<CalloutLayoutInput, 'boxHeight' | 'verticalAlign' | 'exclusions'>;
21
+ /** What the box typesetter reads of a layout pass. */
22
+ export interface FrameLayoutPass {
23
+ /** The pass's content blocks (after every block transform). */
24
+ readonly contentBlocks: readonly ContentBlock[];
25
+ /** The pass's configuration (`layout.flowColumns`,
26
+ * `layout.boxChildSplitMinLines`). */
27
+ readonly resolved: ResolvedConfig;
28
+ /** The configuration boxes are laid out with: `resolved` plus the
29
+ * synthetic box styles of the pass. */
30
+ readonly calloutResolved: ResolvedConfig;
31
+ readonly paragraphContainers: ParagraphContainerPlan;
32
+ /** The measure context the children of the box that opens at `startIdx`
33
+ * are set with (a main-flow group's box sets its blocks as the text
34
+ * around it is set). */
35
+ measureCtxFor(startIdx: number, style: ResolvedCalloutStyleConfig): BlockMeasureContext;
36
+ /** Lays out a comic strip among a box's children (see
37
+ * `CalloutLayoutInput.stripBlock`). */
38
+ stripBlock(raw: ContentBlock, idx: number, width: number): VDTBlock | undefined;
39
+ /** The height of an empty, full-height column of the current page (see
40
+ * {@link tallerThanColumn}). */
41
+ columnHeight(): number;
42
+ }
43
+ /** A position inside a box's children where a fragment starts or ends:
44
+ * before child `child` (a position in `children`), past its first
45
+ * `line` text lines. `line: 0` is the child's head; a cut with
46
+ * `line > 0` falls inside that child, between two of its lines. */
47
+ export interface CalloutCut {
48
+ child: number;
49
+ line: number;
50
+ /** For a cut inside a child (`line > 0`): the box widths that child's
51
+ * lines up to `line` were counted at, from line `fromLine` on (see
52
+ * `CalloutLayoutInput.lineWidths`). A box that goes on in a column of
53
+ * another width breaks the child again from them. */
54
+ widths?: readonly CalloutLineWidth[];
55
+ /** A cut inside the `:::columns` group whose opening marker is at
56
+ * position `open` (#634): where each of its streams stands (one for a
57
+ * snake group). `child` is then the earliest of them, `line` 0. */
58
+ group?: {
59
+ open: number;
60
+ pos: readonly GroupPos[];
61
+ };
62
+ }
63
+ /** The widths a child's lines are counted at in a fragment `width` wide
64
+ * that opens `from` (see `CalloutCut.widths`). */
65
+ export declare const cutWidths: (from: CalloutCut, width: number) => readonly CalloutLineWidth[];
66
+ export declare const CUT_START: CalloutCut;
67
+ export interface CalloutLayouter {
68
+ /** Content blocks between the fence markers. */
69
+ children: readonly ContentBlock[];
70
+ /** Content index of `children[0]`. */
71
+ childBase: number;
72
+ /** Positions in `children` of the blocks the box lays out (marker
73
+ * blocks of nested containers and directives are skipped). */
74
+ realAt: readonly number[];
75
+ /** The cut past the last child (the end of the box). */
76
+ end: CalloutCut;
77
+ /** `:::columns` groups among the children ([start, end] marker
78
+ * positions): only the cuts the group itself offers fall inside one
79
+ * (#634), and none inside a group of a nested box. */
80
+ groups: readonly [number, number][];
81
+ /** Lay out the children from cut `from` to cut `to` at `width` as one
82
+ * box — a `continuation` (every fragment after the head) without
83
+ * title / icon. A cut inside a child keeps only the lines on its side. */
84
+ layoutRange: (from: CalloutCut, to: CalloutCut, width: number, frameId: string, continuation: boolean, mirrored?: boolean, frame?: FrameBoxOptions) => CalloutLayoutResult;
85
+ }
86
+ export declare const makeCalloutLayouter: (pass: FrameLayoutPass, startIdx: number, plan: PlannedCallout, style: ResolvedCalloutStyleConfig) => CalloutLayouter;
87
+ export interface CalloutFragment {
88
+ /** The cut the rest of the box starts at. */
89
+ to: CalloutCut;
90
+ result: CalloutLayoutResult;
91
+ }
92
+ /** The longest leading fragment of the box from cut `from` on whose box
93
+ * is at most `roomPx` tall. Cuts fall between children or between the
94
+ * lines of a text child. `splitMinLines` guards text: a cut between
95
+ * children leaves on each side at least that many text lines or at least
96
+ * one indivisible block (a figure, table, display formula or nested
97
+ * box); a cut inside a text child counts every line on its side, a block
98
+ * as one line, and leaves at least `layout.boxChildSplitMinLines` lines
99
+ * of that child on each side (two by default, `splitMinLines` when that
100
+ * is lower; EF-115). A nested box that may split
101
+ * itself (`keepTogether: false`, or taller than a full column) offers the cuts
102
+ * inside it too, by its own `splitMinLines` over its own children; the
103
+ * fragments on both sides redraw its frame. The full layout's geometry
104
+ * ranks the candidates (box bottom = content bottom at the cut + the
105
+ * tails of the boxes closed below it); the deepest candidate that fits
106
+ * is laid out for real and taken when it truly fits. `null` when none
107
+ * does. */
108
+ export declare const splitCalloutFragment: (pass: FrameLayoutPass, L: CalloutLayouter, from: CalloutCut, width: number, roomPx: number, frameId: string, continuation: boolean, minLines: number, mirrored?: boolean, frame?: FrameBoxOptions) => CalloutFragment | null;
109
+ /** Absolute content indices of the children a fragment from cut `from`
110
+ * to cut `to` of `L` touches, for the fragment's source range. */
111
+ export declare const fragmentRange: (L: CalloutLayouter, from: CalloutCut, to: CalloutCut) => {
112
+ firstChildIdx: number;
113
+ lastChildIdx: number;
114
+ };
115
+ /** The (rest of the) box is taller than an empty, full-height column —
116
+ * a whole page's content area for a page-span box: no column could
117
+ * hold it, so even a keep-together box splits (with the rules of a
118
+ * `keepTogether: false` one) rather than overflow. */
119
+ export declare const tallerThanColumn: (pass: FrameLayoutPass, result: CalloutLayoutResult) => boolean;
120
+ //# sourceMappingURL=frameLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/frameLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB;;uCAEuC;AACvC,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,eAAe,GAAG,YAAY,CAAC,CAAC;AAErG,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;2CACuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC;4CACwC;IACxC,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD;;6BAEyB;IACzB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,mBAAmB,CAAC;IACxF;4CACwC;IACxC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChF;qCACiC;IACjC,YAAY,IAAI,MAAM,CAAC;CACxB;AAED;;;oEAGoE;AACpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;;;0DAGsD;IACtD,MAAM,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC;;wEAEoE;IACpE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAA;KAAE,CAAC;CACpD;AACD;mDACmD;AACnD,eAAO,MAAM,SAAS,GAAI,MAAM,UAAU,EAAE,OAAO,MAAM,KAAG,SAAS,gBAAgB,EAKpF,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,UAAkC,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB;mEAC+D;IAC/D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,wDAAwD;IACxD,GAAG,EAAE,UAAU,CAAC;IAChB;;2DAEuD;IACvD,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC;;+EAE2E;IAC3E,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,KAAK,mBAAmB,CAAC;CAC5K;AAED,eAAO,MAAM,mBAAmB,GAC9B,MAAM,eAAe,EACrB,UAAU,MAAM,EAChB,MAAM,cAAc,EACpB,OAAO,0BAA0B,KAChC,eAwEF,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;YAeY;AACZ,eAAO,MAAM,oBAAoB,GAC/B,MAAM,eAAe,EACrB,GAAG,eAAe,EAClB,MAAM,UAAU,EAChB,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,cAAc,OAAO,EACrB,UAAU,MAAM,EAChB,kBAAgB,EAChB,QAAQ,eAAe,KACtB,eAAe,GAAG,IAyJpB,CAAC;AAEF;mEACmE;AACnE,eAAO,MAAM,aAAa,GAAI,GAAG,eAAe,EAAE,MAAM,UAAU,EAAE,IAAI,UAAU;;;CACkC,CAAC;AAErH;;;uDAGuD;AACvD,eAAO,MAAM,gBAAgB,GAAI,MAAM,eAAe,EAAE,QAAQ,mBAAmB,KAAG,OACrC,CAAC"}
@@ -0,0 +1,279 @@
1
+ import { isMarkerBlock } from './buildHelpers';
2
+ import { layoutCallout, } from './calloutLayout';
3
+ import { fillGalley, galleyBreaks } from './columnsGroup';
4
+ /** The widths a child's lines are counted at in a fragment `width` wide
5
+ * that opens `from` (see `CalloutCut.widths`). */
6
+ export const cutWidths = (from, width) => {
7
+ const before = from.line > 0 ? from.widths : undefined;
8
+ if (!before || before.length === 0)
9
+ return [{ fromLine: 0, width }];
10
+ const last = before[before.length - 1];
11
+ return Math.abs(last.width - width) <= 0.5 ? before : [...before, { fromLine: from.line, width }];
12
+ };
13
+ export const CUT_START = { child: 0, line: 0 };
14
+ export const makeCalloutLayouter = (pass, startIdx, plan, style) => {
15
+ const contentBlocks = pass.contentBlocks;
16
+ const children = contentBlocks.slice(startIdx + 1, plan.endIdx);
17
+ const realAt = [];
18
+ children.forEach((c, k) => {
19
+ if ((c.type !== 'directive' || (c.directiveName === 'strip' && c.comic)) && !isMarkerBlock(c))
20
+ realAt.push(k);
21
+ });
22
+ // `:::columns` groups among the children, as [start marker, end marker]
23
+ // positions: a split never cuts inside one.
24
+ const groups = [];
25
+ children.forEach((c, k) => {
26
+ if (c.type === 'containerStart' && c.containerName === 'columns') {
27
+ let e = k + 1;
28
+ while (e < children.length && !(children[e].type === 'containerEnd' && children[e].containerName === 'columns' && children[e].containerId === c.containerId))
29
+ e++;
30
+ groups.push([k, e]);
31
+ }
32
+ });
33
+ const layoutRange = (from, to, width, frameId, continuation, mirrored = false, frame) => {
34
+ let n = 0;
35
+ // A fragment that opens inside a `:::columns` group starts at its
36
+ // opening marker and one that ends inside it at its closing marker:
37
+ // the group sets the part between the cut's positions (#634).
38
+ const fromChild = from.group ? from.group.open : from.child;
39
+ const closeOfGroup = (open) => groups.find(([gs]) => gs === open)?.[1] ?? children.length - 1;
40
+ // A cut inside child `to.child` includes that child (its first
41
+ // `to.line` lines); a cut at a child's head excludes it.
42
+ const toChild = to.group ? closeOfGroup(to.group.open) + 1 : to.line > 0 ? to.child + 1 : to.child;
43
+ const inSlice = (pos) => pos.map((p) => ({ ...p, child: p.child - fromChild }));
44
+ // Nested boxes still open at `from` (their closing markers leading
45
+ // the range close them): the fragment opens inside them.
46
+ const open = [];
47
+ for (let k = 0; k < fromChild; k++) {
48
+ const c = children[k];
49
+ if (c.containerName !== 'callout')
50
+ continue;
51
+ if (c.type === 'containerStart')
52
+ open.push({ idx: startIdx + 1 + k, block: c });
53
+ else if (c.type === 'containerEnd')
54
+ open.pop();
55
+ }
56
+ for (let k = fromChild; k < children.length && open.length > 0; k++) {
57
+ const c = children[k];
58
+ if (c.type !== 'containerEnd' || c.containerId !== open[open.length - 1].block.containerId)
59
+ break;
60
+ open.pop();
61
+ }
62
+ return layoutCallout({
63
+ style,
64
+ attrs: plan.attrs,
65
+ ...(contentBlocks[startIdx]?.direction ? { direction: contentBlocks[startIdx].direction } : {}),
66
+ continuation,
67
+ // Any range short of the box's end is a fragment that goes on.
68
+ ...(to.child < children.length || to.line > 0 || to.group ? { continues: true } : {}),
69
+ children: children.slice(fromChild, toChild),
70
+ childStartIdx: startIdx + 1 + fromChild,
71
+ width,
72
+ // A main-flow group's box sets its blocks as the text around it is
73
+ // set: a styled section's or a part's body (#634).
74
+ ctx: pass.measureCtxFor(startIdx, style),
75
+ resolved: pass.calloutResolved,
76
+ containerId: plan.containerId,
77
+ frameId,
78
+ nextChildId: () => `${frameId}-c${n++}`,
79
+ paragraphContainers: pass.paragraphContainers,
80
+ ...(from.line > 0 && !from.group ? { lineFrom: from.line } : {}),
81
+ ...(from.line > 0 && !from.group && from.widths ? { lineWidths: from.widths } : {}),
82
+ ...(to.line > 0 && !to.group ? { lineTo: to.line } : {}),
83
+ ...(from.group ? { groupFrom: inSlice(from.group.pos) } : {}),
84
+ ...(to.group ? { groupTo: inSlice(to.group.pos) } : {}),
85
+ ...(open.length > 0 ? { openNested: open } : {}),
86
+ mirrored,
87
+ stripBlock: pass.stripBlock,
88
+ ...frame,
89
+ });
90
+ };
91
+ return { children, childBase: startIdx + 1, realAt, end: { child: children.length, line: 0 }, layoutRange, groups };
92
+ };
93
+ /** The longest leading fragment of the box from cut `from` on whose box
94
+ * is at most `roomPx` tall. Cuts fall between children or between the
95
+ * lines of a text child. `splitMinLines` guards text: a cut between
96
+ * children leaves on each side at least that many text lines or at least
97
+ * one indivisible block (a figure, table, display formula or nested
98
+ * box); a cut inside a text child counts every line on its side, a block
99
+ * as one line, and leaves at least `layout.boxChildSplitMinLines` lines
100
+ * of that child on each side (two by default, `splitMinLines` when that
101
+ * is lower; EF-115). A nested box that may split
102
+ * itself (`keepTogether: false`, or taller than a full column) offers the cuts
103
+ * inside it too, by its own `splitMinLines` over its own children; the
104
+ * fragments on both sides redraw its frame. The full layout's geometry
105
+ * ranks the candidates (box bottom = content bottom at the cut + the
106
+ * tails of the boxes closed below it); the deepest candidate that fits
107
+ * is laid out for real and taken when it truly fits. `null` when none
108
+ * does. */
109
+ export const splitCalloutFragment = (pass, L, from, width, roomPx, frameId, continuation, minLines, mirrored = false, frame) => {
110
+ const full = L.layoutRange(from, L.end, width, frameId, continuation, mirrored, frame);
111
+ /** Figures, tables and display formulas: never cut, not text lines. */
112
+ const indivisible = (c) => c.type === 'resource' || c.type === 'mathDisplay';
113
+ const unitBottom = (u) => {
114
+ const b = u.kind === 'block' ? u.block.bbox : u.box.result.frame.bbox;
115
+ return b.y + b.height;
116
+ };
117
+ /** Room a box keeps under its last item (padding, border, icon growth). */
118
+ const tailOf = (r) => {
119
+ const last = r.units[r.units.length - 1];
120
+ return last ? r.frame.bbox.y + r.totalHeight - unitBottom(last) : 0;
121
+ };
122
+ if (full.units.length === 0)
123
+ return null;
124
+ // A head that goes on also carries the style's continuation marker.
125
+ const tail = tailOf(full) + full.continuesMarkerPx;
126
+ /** Candidate cuts with the head's content bottom. A `soft` cut parts a
127
+ * wrapped code line from its continuation (#624): taken only when no
128
+ * other cut fits. */
129
+ const candidates = [];
130
+ /** Collect the cuts among `units` (one box's items; `below` = the tails
131
+ * of the nested boxes around them), each side of a cut holding enough
132
+ * by the box's `min` lines: a block counts as one line, a nested box
133
+ * as one indivisible block. */
134
+ const collect = (units, minLines, below) => {
135
+ const min = Math.max(1, minLines);
136
+ const lineCount = (u) => (u.kind === 'block' ? Math.max(1, u.block.lines.length) : 1);
137
+ const isBlock = (u) => u.kind === 'box' || indivisible(u.block);
138
+ const totalLines = units.reduce((n, u) => n + lineCount(u), 0);
139
+ const totalBlocks = units.filter(isBlock).length;
140
+ /** A side of a cut holds enough: `lines` (blocks included) of which
141
+ * `blocks` are indivisible. Between children, one block suffices or
142
+ * the text lines alone meet the minimum; inside a text child, the
143
+ * lines do. */
144
+ const holds = (lines, blocks, betweenChildren) => betweenChildren ? blocks > 0 || lines - blocks >= min : lines >= min;
145
+ const bothHold = (lines, blocks, betweenChildren) => holds(lines, blocks, betweenChildren) && holds(totalLines - lines, totalBlocks - blocks, betweenChildren);
146
+ let linesBefore = 0;
147
+ let blocksBefore = 0;
148
+ units.forEach((u, i) => {
149
+ let next;
150
+ if (u.kind === 'block') {
151
+ const c = u.block;
152
+ const k = (c.contentIndex ?? L.childBase) - L.childBase;
153
+ next = k + 1;
154
+ if (!indivisible(c) && c.lines.length > 1) {
155
+ // The first laid-out child of a continuation opens after
156
+ // `from.line` lines: cuts inside it are counted from the
157
+ // child's own head. Each side of the box still counts all its
158
+ // lines against `min`, and a cut inside a child leaves at least
159
+ // `layout.boxChildSplitMinLines` lines of it on each side (2 by
160
+ // default, so no lone line: EF-115), or `min` when that is
161
+ // lower. The count is of this fragment's part of the child,
162
+ // since a part left behind already passed the test.
163
+ const childMin = Math.min(min, pass.resolved.layout.boxChildSplitMinLines);
164
+ const lineBase = k === from.child ? from.line : 0;
165
+ for (let l = childMin; l <= c.lines.length - childMin; l++) {
166
+ const line = c.lines[l - 1];
167
+ if (bothHold(linesBefore + l, blocksBefore, false)) {
168
+ candidates.push({
169
+ cut: { child: k, line: lineBase + l, widths: k === from.child ? cutWidths(from, width) : [{ fromLine: 0, width }] },
170
+ bottom: line.bbox.y + line.bbox.height + below,
171
+ ...(c.lines[l]?.codeLine?.continued ? { soft: true } : {}),
172
+ });
173
+ }
174
+ }
175
+ }
176
+ }
177
+ else {
178
+ const { box } = u;
179
+ if (box.endIdx !== undefined)
180
+ next = box.endIdx + 1 - L.childBase;
181
+ if (!box.style.keepTogether || tallerThanColumn(pass, box.result)) {
182
+ collect(box.result.units, box.style.splitMinLines, below + tailOf(box.result));
183
+ }
184
+ }
185
+ linesBefore += lineCount(u);
186
+ if (isBlock(u))
187
+ blocksBefore++;
188
+ if (i < units.length - 1 && next !== undefined && bothHold(linesBefore, blocksBefore, true)) {
189
+ candidates.push({ cut: { child: next, line: 0 }, bottom: unitBottom(u) + below });
190
+ }
191
+ });
192
+ };
193
+ collect(full.units, minLines, 0);
194
+ // Inside a `:::columns` group of the box (#634): the cut the group
195
+ // offers for the room, where each of its sub-columns (each stream, in
196
+ // a parallel group) ends when the galley fills them in turn; at least
197
+ // one stream goes on and one moves on. A group of a nested box is
198
+ // never cut, nor any group under 1.24's rules (`layout.flowColumns`).
199
+ if (pass.resolved.layout.flowColumns) {
200
+ const base = from.group ? from.group.open : from.child;
201
+ const childMin = Math.min(Math.max(1, minLines), pass.resolved.layout.boxChildSplitMinLines);
202
+ for (const g of full.groups ?? []) {
203
+ const h = roomPx - tail - g.top;
204
+ if (h <= 0.5)
205
+ continue;
206
+ const reopened = from.group?.open === g.open + base ? from.group : undefined;
207
+ const pos = [];
208
+ let moved = false;
209
+ let left = false;
210
+ let used = 0;
211
+ g.streams.forEach((items, s) => {
212
+ const end = { child: (g.ends[s] ?? g.close) + base, line: 0 };
213
+ if (items.length === 0) {
214
+ pos.push(end);
215
+ return;
216
+ }
217
+ const breaks = galleyBreaks(items, childMin);
218
+ const fill = fillGalley(items, breaks, g.flow === 'snake' ? g.columns : 1, h);
219
+ if (fill.end) {
220
+ moved = true;
221
+ used = Math.max(used, fill.used);
222
+ pos.push(end);
223
+ return;
224
+ }
225
+ left = true;
226
+ if (fill.cuts.length === 0) {
227
+ // This stream takes nothing in the fragment: it stays where it is.
228
+ pos.push(reopened?.pos[s] ?? { child: items[0].child + base, line: 0 });
229
+ return;
230
+ }
231
+ moved = true;
232
+ used = Math.max(used, fill.used);
233
+ const b = breaks[fill.cuts[fill.cuts.length - 1]];
234
+ const it = items[b.item];
235
+ if (b.line === 0) {
236
+ pos.push({ child: it.child + base, line: 0 });
237
+ return;
238
+ }
239
+ // The sub-column widths the paragraph's lines are set at.
240
+ const before = it.lineBase > 0 ? reopened?.pos[s]?.widths : undefined;
241
+ const lastW = before?.[before.length - 1];
242
+ const widths = !before || before.length === 0
243
+ ? [{ fromLine: 0, width: g.columnWidth }]
244
+ : Math.abs(lastW.width - g.columnWidth) <= 0.5 ? before : [...before, { fromLine: it.lineBase, width: g.columnWidth }];
245
+ pos.push({ child: it.child + base, line: it.lineBase + b.line, widths });
246
+ });
247
+ if (!moved || !left)
248
+ continue;
249
+ candidates.push({
250
+ cut: { child: Math.min(...pos.map((p) => p.child)), line: 0, group: { open: g.open + base, pos } },
251
+ bottom: g.top + used,
252
+ });
253
+ }
254
+ }
255
+ const insideGroup = (cut) => !cut.group && L.groups.some(([gs, ge]) => (cut.line === 0 ? gs < cut.child && cut.child <= ge : gs < cut.child && cut.child < ge));
256
+ const viable = candidates
257
+ .filter((c) => !insideGroup(c.cut))
258
+ .sort((a, b) => b.bottom - a.bottom);
259
+ // A wrapped code line stays with its continuations when a cut
260
+ // elsewhere fits (#624).
261
+ viable.sort((a, b) => (a.soft ? 1 : 0) - (b.soft ? 1 : 0));
262
+ for (const c of viable) {
263
+ if (c.bottom + tail > roomPx + 0.01)
264
+ continue;
265
+ const result = L.layoutRange(from, c.cut, width, frameId, continuation, mirrored, frame);
266
+ if (result.totalHeight <= roomPx + 0.01)
267
+ return { to: c.cut, result };
268
+ }
269
+ return null;
270
+ };
271
+ /** Absolute content indices of the children a fragment from cut `from`
272
+ * to cut `to` of `L` touches, for the fragment's source range. */
273
+ export const fragmentRange = (L, from, to) => ({ firstChildIdx: L.childBase + from.child, lastChildIdx: L.childBase + (to.line > 0 ? to.child : to.child - 1) });
274
+ /** The (rest of the) box is taller than an empty, full-height column —
275
+ * a whole page's content area for a page-span box: no column could
276
+ * hold it, so even a keep-together box splits (with the rules of a
277
+ * `keepTogether: false` one) rather than overflow. */
278
+ export const tallerThanColumn = (pass, result) => result.totalHeight > pass.columnHeight() + 0.01;
279
+ //# sourceMappingURL=frameLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameLayout.js","sourceRoot":"","sources":["../../src/pipeline/frameLayout.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"headerFooter.d.ts","sourceRoot":"","sources":["../../src/pipeline/headerFooter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headerFooter.d.ts","sourceRoot":"","sources":["../../src/pipeline/headerFooter.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAA+B,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAA6B,0BAA0B,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7M,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EAKnB,KAAK,iBAAiB,EAEvB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAsN,KAAK,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAUrR,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAqB,KAAK,wBAAwB,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AA2DvH;;aAEa;AACb,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAKxE;AAoID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAClE,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,EACrB,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC3C,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBhE;AAED;;;;;;;;;;;;;;;;oBAgBoB;AACpB,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM;AACjB;;;;oCAIoC;AACpC,MAAM,CAAC,EAAE,YAAY;AACrB;+CAC+C;AAC/C,MAAM,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AACjC;;wDAEwD;AACxD,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC3C,MAAM,CAER;AAED;0CAC0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC;6EACyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;;gBAEY;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;oEAQoE;AACpE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC3C,oBAAoB,CAmDtB;AAED,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;yDACqD;IACrD,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C;iEAC6D;IAC7D,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClF;qEACiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;sEACkE;IAClE,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;oEACgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;8EAC0E;IAC1E,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AA6ED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAClE,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,wBAAwB,EACtC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,gBAAgB,GACxB,aAAa,GAAG,SAAS,CAuD3B;AA4FD;oCACoC;AACpC,MAAM,WAAW,kBAAkB;IACjC;;;;;+BAK2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;0EAKsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;oCACoC;AACpC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG;IACnC,QAAQ,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,EAAE,CAAC;CAClG,CAAC;AAEF;iDACiD;AACjD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,EACnB,eAAe,SAAM,GACpB,MAAM,CAER;AASD;;;4BAG4B;AAC5B,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM;AACnB;8CAC8C;AAC9C,eAAe,SAAM,GACpB,kBAAkB,CAgIpB;AAED;;;;;;gBAMgB;AAChB,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,kBAAkB,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AAkJD;gBACgB;AAChB,MAAM,WAAW,kBAAkB;IACjC;;8DAE0D;IAC1D,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACxF;;;2BAGuB;IACvB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,CAAC;CACpF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAE,kBAAuB,GAAG,IAAI,CAS5I;AA2eD;;;gDAGgD;AAChD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EACxD,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EACzD,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,GACpD,IAAI,CAaN"}
@@ -11,7 +11,8 @@ import { arabicNumbersOf, resolvedLocale } from './config';
11
11
  import { classifyPages } from './pageRoles';
12
12
  import { computeSectionStyles, createHeadingLevelResolver, headingIsHidden } from './headingStyles';
13
13
  import { dimensionToPx } from '../units';
14
- import { resolveDesignLineHeight } from '../defaults/headerFooter';
14
+ import { resolveDesignLineHeight, resolveDesignSlot } from '../defaults/headerFooter';
15
+ import { resolvePageTemplate } from '../composed/templates';
15
16
  import { layoutDesignSlot, textVerticalOffset, trailingTracking, } from '../design/layout';
16
17
  import { resolveDesignText } from '../design/placeholders';
17
18
  import { plainDesignText } from '../design/richText';
@@ -964,14 +965,22 @@ function layoutHeadersAndFooters(doc, resourceById, inputs) {
964
965
  : { x: trim.x, y: sheetArea.y, width: Math.max(0, sheetArea.x - trim.x), height: sheetArea.height };
965
966
  const sheetExtras = { ...extras, frames: { ...physicalFrames, outer }, mirrored: false };
966
967
  const section = sectionByPage[page.index];
967
- const headerSlot = section?.header ?? resolved.header;
968
- const footerSlot = section?.footer ?? resolved.footer;
968
+ // A composed page (#855) takes its template's running heads: a slot of
969
+ // its own, `false` for none, unset for the section's.
970
+ const template = page.composed
971
+ ? resolvePageTemplate({ pageTemplates: resolved.pageTemplates, calloutStyles: resolved.calloutStyles }, page.composed.template, { parity: recto ? 'recto' : 'verso' })
972
+ : undefined;
973
+ const pageAttrs = page.composed && Object.keys(page.composed.attrs).length > 0 ? page.composed.attrs : undefined;
974
+ const templateSlot = (own, kind, inherited) => own === false ? { elements: [] } : own ? resolveDesignSlot(own, kind) : inherited;
975
+ const headerSlot = templateSlot(template?.header, 'header', section?.header ?? resolved.header);
976
+ const footerSlot = templateSlot(template?.footer, 'footer', section?.footer ?? resolved.footer);
969
977
  // A comic page is all panels: no running heads or folio unless
970
978
  // `comics.runningHeads` asks for them (its folio still counts).
971
979
  const furniture = !page.comic || resolvedComics(resolved).runningHeads;
972
980
  if (furniture && headerSlot.elements.length > 0) {
973
981
  const placeholders = {
974
982
  kind: 'header',
983
+ ...(pageAttrs ? { pageAttrs } : {}),
975
984
  page,
976
985
  allPages: doc.pages,
977
986
  metadata: doc.metadata,
@@ -1132,6 +1141,8 @@ function layoutHeadersAndFooters(doc, resourceById, inputs) {
1132
1141
  const palette = { ...(partPaletteByPageIndex[page.index] ?? {}), ...(tp.palette ?? {}) };
1133
1142
  const placeholders = {
1134
1143
  kind: 'part',
1144
+ // `{leader}` fills the row with the contents' leader (#889).
1145
+ leader: { enabled: resolved.toc.leader.enabled, char: resolved.toc.leader.char, gap: resolved.toc.leader.gap },
1135
1146
  page: rowPage,
1136
1147
  allPages: doc.pages,
1137
1148
  metadata: doc.metadata,
@@ -1219,6 +1230,7 @@ function layoutHeadersAndFooters(doc, resourceById, inputs) {
1219
1230
  if (furniture && footerSlot.elements.length > 0) {
1220
1231
  const placeholders = {
1221
1232
  kind: 'footer',
1233
+ ...(pageAttrs ? { pageAttrs } : {}),
1222
1234
  page,
1223
1235
  allPages: doc.pages,
1224
1236
  metadata: doc.metadata,
@@ -1236,6 +1248,39 @@ function layoutHeadersAndFooters(doc, resourceById, inputs) {
1236
1248
  };
1237
1249
  page.footer = asFurniture(withMeasureWritingMode('horizontal-tb', () => layoutSlotToVdt(footerSlot, footerContainerBbox(sheetArea, metrics.physical.trimBox), page.index + pageIndexOffset, placeholders, dpi, { ...sheetExtras, slot: 'footer' })));
1238
1250
  }
1251
+ // The template's decoration, laid with the frames' final boxes (its
1252
+ // elements may anchor to `'#frame'`), on the sheet like the running
1253
+ // heads; painted under the frames of layer 1 and up.
1254
+ if (page.composed && template && template.decoration.elements.length > 0) {
1255
+ const named = {};
1256
+ for (const f of page.composed.frames)
1257
+ named[f.name] = f.rect;
1258
+ const container = template.area === 'trim' ? metrics.physical.trimBox : template.area === 'bleed' ? metrics.physical.bleedBox : sheetArea;
1259
+ const attrSources = {};
1260
+ for (const [k, v] of Object.entries(page.composed.attrSources))
1261
+ attrSources[k] = { start: v.sourceStart, end: v.sourceEnd };
1262
+ const placeholders = {
1263
+ kind: 'composed',
1264
+ ...(pageAttrs ? { pageAttrs } : {}),
1265
+ page,
1266
+ allPages: doc.pages,
1267
+ metadata: doc.metadata,
1268
+ chapterTitleByPageIndex,
1269
+ chapterTitleAtTopByPageIndex,
1270
+ chapterNumberAtTopByPageIndex,
1271
+ chapterNumberByPageIndex,
1272
+ chapterAttrsByPageIndex,
1273
+ bookTotalPages,
1274
+ numerals,
1275
+ marksFor,
1276
+ partTitleByPageIndex,
1277
+ partNumberByPageIndex,
1278
+ partPaletteByPageIndex,
1279
+ };
1280
+ const decoration = withMeasureWritingMode('horizontal-tb', () => layoutSlotToVdt(resolveDesignSlot(template.decoration, 'header'), container, page.index + pageIndexOffset, placeholders, dpi, { ...sheetExtras, frames: { ...physicalFrames, named }, attrs: page.composed.attrs, attrSources }));
1281
+ if (decoration)
1282
+ page.composed.decoration = decoration;
1283
+ }
1239
1284
  }
1240
1285
  }
1241
1286
  /** Set `page.background` on the pages whose palette overrides (part and