postext 1.37.0 → 1.38.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.
- package/dist/__tests__/comics/frames.test.d.ts +2 -0
- package/dist/__tests__/comics/frames.test.d.ts.map +1 -0
- package/dist/__tests__/comics/frames.test.js +251 -0
- package/dist/__tests__/comics/frames.test.js.map +1 -0
- package/dist/__tests__/composed/continuationRules.test.d.ts +2 -0
- package/dist/__tests__/composed/continuationRules.test.d.ts.map +1 -0
- package/dist/__tests__/composed/continuationRules.test.js +389 -0
- package/dist/__tests__/composed/continuationRules.test.js.map +1 -0
- package/dist/__tests__/composed/coverImages.test.d.ts +2 -0
- package/dist/__tests__/composed/coverImages.test.d.ts.map +1 -0
- package/dist/__tests__/composed/coverImages.test.js +75 -0
- package/dist/__tests__/composed/coverImages.test.js.map +1 -0
- package/dist/__tests__/composed/decorationSize.test.d.ts +2 -0
- package/dist/__tests__/composed/decorationSize.test.d.ts.map +1 -0
- package/dist/__tests__/composed/decorationSize.test.js +79 -0
- package/dist/__tests__/composed/decorationSize.test.js.map +1 -0
- package/dist/__tests__/composed/emptyFrames.test.d.ts +2 -0
- package/dist/__tests__/composed/emptyFrames.test.d.ts.map +1 -0
- package/dist/__tests__/composed/emptyFrames.test.js +129 -0
- package/dist/__tests__/composed/emptyFrames.test.js.map +1 -0
- package/dist/__tests__/composed/fit.test.js +10 -4
- package/dist/__tests__/composed/fit.test.js.map +1 -1
- package/dist/__tests__/composed/groups.test.js +20 -0
- package/dist/__tests__/composed/groups.test.js.map +1 -1
- package/dist/__tests__/composed/ruledFrames.test.d.ts +2 -0
- package/dist/__tests__/composed/ruledFrames.test.d.ts.map +1 -0
- package/dist/__tests__/composed/ruledFrames.test.js +93 -0
- package/dist/__tests__/composed/ruledFrames.test.js.map +1 -0
- package/dist/__tests__/composed/spread.test.js +82 -0
- package/dist/__tests__/composed/spread.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +12 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/migrate/labelsOnPictures.test.d.ts +2 -0
- package/dist/__tests__/migrate/labelsOnPictures.test.d.ts.map +1 -0
- package/dist/__tests__/migrate/labelsOnPictures.test.js +114 -0
- package/dist/__tests__/migrate/labelsOnPictures.test.js.map +1 -0
- package/dist/__tests__/paragraphDropCap.test.js +38 -0
- package/dist/__tests__/paragraphDropCap.test.js.map +1 -1
- package/dist/__tests__/resourceTypePartial.test.d.ts +2 -0
- package/dist/__tests__/resourceTypePartial.test.d.ts.map +1 -0
- package/dist/__tests__/resourceTypePartial.test.js +60 -0
- package/dist/__tests__/resourceTypePartial.test.js.map +1 -0
- package/dist/canvas-backend/composed.d.ts +3 -0
- package/dist/canvas-backend/composed.d.ts.map +1 -1
- package/dist/canvas-backend/composed.js +47 -26
- package/dist/canvas-backend/composed.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +13 -0
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +16 -5
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/comics/frames.d.ts +82 -0
- package/dist/comics/frames.d.ts.map +1 -0
- package/dist/comics/frames.js +182 -0
- package/dist/comics/frames.js.map +1 -0
- package/dist/comics/index.d.ts +4 -1
- package/dist/comics/index.d.ts.map +1 -1
- package/dist/comics/index.js +3 -1
- package/dist/comics/index.js.map +1 -1
- package/dist/comics/layoutPage.d.ts +9 -0
- package/dist/comics/layoutPage.d.ts.map +1 -1
- package/dist/comics/layoutPage.js +53 -68
- package/dist/comics/layoutPage.js.map +1 -1
- package/dist/comics/page.d.ts.map +1 -1
- package/dist/comics/page.js +10 -1
- package/dist/comics/page.js.map +1 -1
- package/dist/comics/sourceMap.d.ts +60 -0
- package/dist/comics/sourceMap.d.ts.map +1 -0
- package/dist/comics/sourceMap.js +166 -0
- package/dist/comics/sourceMap.js.map +1 -0
- package/dist/comics/spread.d.ts.map +1 -1
- package/dist/comics/spread.js +6 -0
- package/dist/comics/spread.js.map +1 -1
- package/dist/comics/textPanels.d.ts +113 -0
- package/dist/comics/textPanels.d.ts.map +1 -0
- package/dist/comics/textPanels.js +327 -0
- package/dist/comics/textPanels.js.map +1 -0
- package/dist/comics/transform.d.ts +6 -2
- package/dist/comics/transform.d.ts.map +1 -1
- package/dist/comics/transform.js +14 -1
- package/dist/comics/transform.js.map +1 -1
- package/dist/comics/types.d.ts +10 -0
- package/dist/comics/types.d.ts.map +1 -1
- package/dist/composed/continuation.d.ts +55 -5
- package/dist/composed/continuation.d.ts.map +1 -1
- package/dist/composed/continuation.js +118 -16
- package/dist/composed/continuation.js.map +1 -1
- package/dist/composed/groups.d.ts +3 -0
- package/dist/composed/groups.d.ts.map +1 -1
- package/dist/composed/groups.js +34 -4
- package/dist/composed/groups.js.map +1 -1
- package/dist/composed/paint.d.ts +20 -1
- package/dist/composed/paint.d.ts.map +1 -1
- package/dist/composed/paint.js +40 -0
- package/dist/composed/paint.js.map +1 -1
- package/dist/composed/rules.d.ts +31 -0
- package/dist/composed/rules.d.ts.map +1 -0
- package/dist/composed/rules.js +45 -0
- package/dist/composed/rules.js.map +1 -0
- package/dist/composed/slotChecks.d.ts +2 -1
- package/dist/composed/slotChecks.d.ts.map +1 -1
- package/dist/composed/slotChecks.js +56 -2
- package/dist/composed/slotChecks.js.map +1 -1
- package/dist/composed/sourceMap.d.ts.map +1 -1
- package/dist/composed/sourceMap.js +15 -1
- package/dist/composed/sourceMap.js.map +1 -1
- package/dist/composed/spread.d.ts +20 -5
- package/dist/composed/spread.d.ts.map +1 -1
- package/dist/composed/spread.js +51 -26
- package/dist/composed/spread.js.map +1 -1
- package/dist/composed/templates.d.ts +11 -0
- package/dist/composed/templates.d.ts.map +1 -1
- package/dist/composed/templates.js +51 -2
- package/dist/composed/templates.js.map +1 -1
- package/dist/composed/types.d.ts +43 -3
- package/dist/composed/types.d.ts.map +1 -1
- package/dist/composed/validate.d.ts.map +1 -1
- package/dist/composed/validate.js +5 -3
- package/dist/composed/validate.js.map +1 -1
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +11 -1
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +4 -0
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/resourceTypes.d.ts +15 -0
- package/dist/defaults/resourceTypes.d.ts.map +1 -1
- package/dist/defaults/resourceTypes.js +39 -1
- package/dist/defaults/resourceTypes.js.map +1 -1
- package/dist/design/layout.d.ts +7 -0
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +109 -16
- package/dist/design/layout.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +43 -5
- package/dist/html-backend.js.map +1 -1
- package/dist/htmlComic.d.ts +3 -0
- package/dist/htmlComic.d.ts.map +1 -1
- package/dist/htmlComic.js +2 -0
- package/dist/htmlComic.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/migrate/pageDesign.d.ts +35 -2
- package/dist/migrate/pageDesign.d.ts.map +1 -1
- package/dist/migrate/pageDesign.js +134 -7
- package/dist/migrate/pageDesign.js.map +1 -1
- package/dist/migrate/textToMarkdown.d.ts +33 -1
- package/dist/migrate/textToMarkdown.d.ts.map +1 -1
- package/dist/migrate/textToMarkdown.js +206 -9
- package/dist/migrate/textToMarkdown.js.map +1 -1
- package/dist/parse/blockParser.js +26 -0
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +219 -40
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +5 -0
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +70 -0
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/composedLayout.d.ts.map +1 -1
- package/dist/pipeline/composedLayout.js +246 -49
- package/dist/pipeline/composedLayout.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +21 -1
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/dropCap.d.ts +5 -0
- package/dist/pipeline/dropCap.d.ts.map +1 -1
- package/dist/pipeline/dropCap.js +23 -2
- package/dist/pipeline/dropCap.js.map +1 -1
- package/dist/pipeline/frameLayout.d.ts +17 -2
- package/dist/pipeline/frameLayout.d.ts.map +1 -1
- package/dist/pipeline/frameLayout.js +47 -2
- package/dist/pipeline/frameLayout.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +41 -2
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +4 -1
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
- package/dist/pipeline/resourceNumbering.js +13 -4
- package/dist/pipeline/resourceNumbering.js.map +1 -1
- package/dist/preflight.js +5 -1
- package/dist/preflight.js.map +1 -1
- package/dist/types.d.ts +32 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +90 -2
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text panels (`::panel{text}`, #885, DESIGN §7): a panel whose body is
|
|
3
|
+
* Markdown, poured into the frame the split generated for it the way a
|
|
4
|
+
* composed page pours a slot into a frame.
|
|
5
|
+
*
|
|
6
|
+
* The block parser reads the body as any text and sets its blocks right
|
|
7
|
+
* after the comic's directive. Before layout, {@link wrapComicTextPanels}
|
|
8
|
+
* puts each panel's blocks in one frameless story box (the composed pages'
|
|
9
|
+
* {@link FRAME_STYLE_ID} box); the comic page's layout then sets each story
|
|
10
|
+
* in its panel's frame with the composed pages' frame layout
|
|
11
|
+
* (`layoutComposedPage`, one frame filling the panel's text area), so a
|
|
12
|
+
* text panel has real paragraphs: selectable, searchable, read in order by
|
|
13
|
+
* tagged PDF and EPUB. Where a frame cannot take the text (a strip, a
|
|
14
|
+
* spread, a page whose flow is turned or mirrored), the blocks stay
|
|
15
|
+
* unwrapped and are set in the flow after the comic, never lost
|
|
16
|
+
* (`comicPanelFrame`).
|
|
17
|
+
*/
|
|
18
|
+
import { pageIsMirrored, pageIsVertical } from '../vdt';
|
|
19
|
+
import { FRAME_ATTR, FRAME_STYLE_ID } from '../composed/wrap';
|
|
20
|
+
import { normalizeFrame } from '../composed/templates';
|
|
21
|
+
import { composedStories, layoutComposedPage } from '../pipeline/composedLayout';
|
|
22
|
+
import { resolvedDirection } from '../pipeline/config';
|
|
23
|
+
import { dimensionToPx } from '../units';
|
|
24
|
+
import { resolvedComics } from '../defaults/comics';
|
|
25
|
+
import { isComicSpread } from './spread';
|
|
26
|
+
import { comicBoxStyle, isComicTextPanel } from './frames';
|
|
27
|
+
import { comicPanelSources, setComicLayoutWarnings, comicPageLayoutWarnings } from './layoutPage';
|
|
28
|
+
/** `containerAttrs` key of a text panel's story box: the panel's index in
|
|
29
|
+
* its page's source (`ComicPanelSource.index`). */
|
|
30
|
+
export const COMIC_PANEL_ATTR = '__comicPanel';
|
|
31
|
+
/** Container ids of the text panels' story boxes: past any id the parser
|
|
32
|
+
* hands out and clear of the other synthetic boxes'. */
|
|
33
|
+
const COMIC_TEXT_CONTAINER_BASE = 1_900_000_000;
|
|
34
|
+
/** The story key of a text panel (its box's `FRAME_ATTR`). */
|
|
35
|
+
export const comicTextStoryKey = (panelIndex) => `comic:${panelIndex}`;
|
|
36
|
+
/** Whether text panels can be set in their frames in a document: frames
|
|
37
|
+
* take text on pages whose flow is the sheet (horizontal, left to right).
|
|
38
|
+
* On a vertical or right-to-left document the text is set in the flow
|
|
39
|
+
* after the comic. */
|
|
40
|
+
export function comicTextPanelsSupported(resolved) {
|
|
41
|
+
return resolved.layout.writingMode !== 'vertical-rl' && resolvedDirection(resolved) !== 'rtl';
|
|
42
|
+
}
|
|
43
|
+
/** Why a text panel's Markdown is set in the flow instead of its frame:
|
|
44
|
+
* the comic is a strip or a spread, or the document's flow is turned or
|
|
45
|
+
* mirrored. Undefined when its frame takes it. */
|
|
46
|
+
export function comicTextPanelFallback(source, supported) {
|
|
47
|
+
if (source.kind === 'strip')
|
|
48
|
+
return 'strip';
|
|
49
|
+
if (isComicSpread(source))
|
|
50
|
+
return 'spread';
|
|
51
|
+
if (!supported)
|
|
52
|
+
return 'flow';
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* `blocks` with the Markdown of every text panel of a comic page set in
|
|
57
|
+
* its frame regrouped in a story box of its own (see the module comment).
|
|
58
|
+
* Only comics outside any container and whose frame takes text
|
|
59
|
+
* ({@link comicTextPanelFallback}). The same array comes back when there
|
|
60
|
+
* is nothing to wrap.
|
|
61
|
+
*/
|
|
62
|
+
export function wrapComicTextPanels(blocks, supported) {
|
|
63
|
+
let out;
|
|
64
|
+
let next = 0;
|
|
65
|
+
let depth = 0;
|
|
66
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
67
|
+
const b = blocks[i];
|
|
68
|
+
if (b.type === 'containerStart')
|
|
69
|
+
depth++;
|
|
70
|
+
else if (b.type === 'containerEnd')
|
|
71
|
+
depth = Math.max(0, depth - 1);
|
|
72
|
+
const comic = b.type === 'directive' && depth === 0 ? b.comic : undefined;
|
|
73
|
+
const texts = comic && comicTextPanelFallback(comic, supported) === undefined ? comic.panels.filter((p) => p.text && p.text.end > p.text.start && isComicTextPanel(p)) : [];
|
|
74
|
+
if (texts.length === 0) {
|
|
75
|
+
out?.push(b);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
out ??= blocks.slice(0, i);
|
|
79
|
+
out.push(b);
|
|
80
|
+
// The panels' blocks follow the directive, panel after panel.
|
|
81
|
+
let k = i + 1;
|
|
82
|
+
for (const panel of texts) {
|
|
83
|
+
const range = panel.text;
|
|
84
|
+
const start = k;
|
|
85
|
+
while (k < blocks.length && blocks[k].sourceStart >= range.start && blocks[k].sourceEnd <= range.end)
|
|
86
|
+
k++;
|
|
87
|
+
if (k === start)
|
|
88
|
+
continue;
|
|
89
|
+
const first = blocks[start];
|
|
90
|
+
const last = blocks[k - 1];
|
|
91
|
+
const id = COMIC_TEXT_CONTAINER_BASE + next++;
|
|
92
|
+
out.push({
|
|
93
|
+
type: 'containerStart',
|
|
94
|
+
text: '',
|
|
95
|
+
spans: [],
|
|
96
|
+
containerName: 'callout',
|
|
97
|
+
containerAttrs: { type: FRAME_STYLE_ID, placement: 'here', span: 'column', [FRAME_ATTR]: comicTextStoryKey(panel.index), [COMIC_PANEL_ATTR]: String(panel.index) },
|
|
98
|
+
containerId: id,
|
|
99
|
+
sourceStart: first.sourceStart,
|
|
100
|
+
sourceEnd: first.sourceStart,
|
|
101
|
+
sourceMap: [],
|
|
102
|
+
});
|
|
103
|
+
for (let j = start; j < k; j++)
|
|
104
|
+
out.push(blocks[j]);
|
|
105
|
+
out.push({ type: 'containerEnd', text: '', spans: [], containerName: 'callout', containerId: id, sourceStart: last.sourceEnd, sourceEnd: last.sourceEnd, sourceMap: [] });
|
|
106
|
+
}
|
|
107
|
+
i = k - 1;
|
|
108
|
+
}
|
|
109
|
+
return out ? { blocks: out, wrapped: next > 0 } : { blocks: blocks, wrapped: false };
|
|
110
|
+
}
|
|
111
|
+
/** The text panels' stories of every comic page of the pass, by the index
|
|
112
|
+
* of its directive: the markers they span (the directive to the closing
|
|
113
|
+
* marker of the last story) and the stories by key
|
|
114
|
+
* ({@link comicTextStoryKey}). */
|
|
115
|
+
export function planComicTextPanels(blocks, plans) {
|
|
116
|
+
const out = new Map();
|
|
117
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
118
|
+
const b = blocks[i];
|
|
119
|
+
if (b.type !== 'directive' || !b.comic)
|
|
120
|
+
continue;
|
|
121
|
+
let end = i;
|
|
122
|
+
for (let plan = plans.get(end + 1); plan && plan.attrs[COMIC_PANEL_ATTR] !== undefined; plan = plans.get(end + 1))
|
|
123
|
+
end = plan.endIdx;
|
|
124
|
+
if (end === i)
|
|
125
|
+
continue;
|
|
126
|
+
const stories = composedStories(i, end + 1, plans);
|
|
127
|
+
const list = [...stories.values()];
|
|
128
|
+
out.set(i, {
|
|
129
|
+
startIdx: i,
|
|
130
|
+
endIdx: end,
|
|
131
|
+
stories,
|
|
132
|
+
storyAt: (idx) => list.find((s) => idx > s.startIdx && idx < s.plan.endIdx),
|
|
133
|
+
});
|
|
134
|
+
i = end;
|
|
135
|
+
}
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
const px = (v) => ({ value: v, unit: 'px' });
|
|
139
|
+
/**
|
|
140
|
+
* Set the text panels of a laid-out comic page in their frames: each text
|
|
141
|
+
* frame of `comic.frames` gets the blocks its story was set in
|
|
142
|
+
* (`blockIds`), its overflow and its scale; a frame its text does not fit
|
|
143
|
+
* clips it (`comicPanelFrame`, reason `textOverflow`). The frame's text
|
|
144
|
+
* area is the panel's box inside its border and the lettering's inset;
|
|
145
|
+
* with a `box` style, the panel's box (the style's padding keeps the text
|
|
146
|
+
* off its edges).
|
|
147
|
+
*/
|
|
148
|
+
export function layoutComicTextFrames(input) {
|
|
149
|
+
const { comic, page, plan, resolved, dpi } = input;
|
|
150
|
+
const blocks = [];
|
|
151
|
+
const laid = new Set();
|
|
152
|
+
if (!comic.frames || pageIsVertical(page) || pageIsMirrored(page))
|
|
153
|
+
return { blocks, laid };
|
|
154
|
+
const sources = comicPanelSources(comic);
|
|
155
|
+
const insetPx = dimensionToPx(resolvedComics(resolved).lettering.inset, dpi);
|
|
156
|
+
const warnings = [];
|
|
157
|
+
const fence = Number(/^cm(\d+)$/.exec(comic.id ?? '')?.[1] ?? 0);
|
|
158
|
+
comic.frames.forEach((frame, fi) => {
|
|
159
|
+
const panelIndex = frame.panel ?? fi;
|
|
160
|
+
const src = sources[panelIndex];
|
|
161
|
+
if (!src || !isComicTextPanel(src))
|
|
162
|
+
return;
|
|
163
|
+
const key = comicTextStoryKey(src.index);
|
|
164
|
+
const story = plan.stories.get(key);
|
|
165
|
+
if (!story)
|
|
166
|
+
return;
|
|
167
|
+
const panel = comic.panels[panelIndex];
|
|
168
|
+
const box = comicBoxStyle(resolved, src.attrs.box);
|
|
169
|
+
const edge = box ? 0 : panel.border.width + insetPx;
|
|
170
|
+
// A slanted cell: the widest box with straight sides inside its outline,
|
|
171
|
+
// so that no line runs past the slant.
|
|
172
|
+
const r = frame.polygon ? innerBox(frame.polygon, panel.bbox) : panel.bbox;
|
|
173
|
+
const area = { x: r.x + edge, y: r.y + edge, width: Math.max(1, r.width - 2 * edge), height: Math.max(1, r.height - 2 * edge) };
|
|
174
|
+
const valign = src.attrs.valign?.trim().toLowerCase();
|
|
175
|
+
const padding = box ? undefined : { top: px(0), right: px(0), bottom: px(0), left: px(0) };
|
|
176
|
+
const resolvedFrame = normalizeFrame({
|
|
177
|
+
name: frame.name,
|
|
178
|
+
width: 'fill',
|
|
179
|
+
height: 'fill',
|
|
180
|
+
...(box ? { style: box.id } : {}),
|
|
181
|
+
...(valign === 'middle' || valign === 'bottom' ? { verticalAlign: valign } : {}),
|
|
182
|
+
...(padding ? { padding } : {}),
|
|
183
|
+
});
|
|
184
|
+
const template = {
|
|
185
|
+
id: comic.id ?? 'comic',
|
|
186
|
+
area: 'content',
|
|
187
|
+
frames: [resolvedFrame],
|
|
188
|
+
groups: [],
|
|
189
|
+
decoration: { elements: [] },
|
|
190
|
+
decorationPaths: [],
|
|
191
|
+
spread: false,
|
|
192
|
+
gutter: px(0),
|
|
193
|
+
role: 'comic',
|
|
194
|
+
chain: [comic.id ?? 'comic'],
|
|
195
|
+
configPath: '',
|
|
196
|
+
};
|
|
197
|
+
const out = layoutComposedPage({
|
|
198
|
+
pass: input.pass,
|
|
199
|
+
page,
|
|
200
|
+
template,
|
|
201
|
+
fence: { template: template.id, spread: false, attrs: {}, attrSources: {}, fenceIndex: fence, colons: 4 },
|
|
202
|
+
startIdx: plan.startIdx,
|
|
203
|
+
endIdx: plan.endIdx,
|
|
204
|
+
stories: new Map([[frame.name, story]]),
|
|
205
|
+
styleOf: input.styleOf,
|
|
206
|
+
areas: { area, page: area, bleed: area },
|
|
207
|
+
dpi,
|
|
208
|
+
emPx: input.emPx,
|
|
209
|
+
bodyOffset: input.bodyOffset,
|
|
210
|
+
mirrored: input.mirrored,
|
|
211
|
+
pushGapPx: input.pushGapPx,
|
|
212
|
+
...(input.locale ? { locale: input.locale } : {}),
|
|
213
|
+
});
|
|
214
|
+
const set = out.composed.frames[0];
|
|
215
|
+
if (!set || !out.laid.has(frame.name))
|
|
216
|
+
return;
|
|
217
|
+
laid.add(key);
|
|
218
|
+
// The composed pages' ids (`cp<n>:…`) as the comic's (`cm<n>:…`).
|
|
219
|
+
const from = `cp${fence}:`;
|
|
220
|
+
const to = `cm${fence}:`;
|
|
221
|
+
const rename = (id) => (id.startsWith(from) ? to + id.slice(from.length) : id);
|
|
222
|
+
for (const b of out.blocks) {
|
|
223
|
+
b.id = rename(b.id);
|
|
224
|
+
if (b.callout)
|
|
225
|
+
b.callout.childIds = b.callout.childIds.map(rename);
|
|
226
|
+
blocks.push(b);
|
|
227
|
+
}
|
|
228
|
+
comic.frames[fi] = {
|
|
229
|
+
...frame,
|
|
230
|
+
blockIds: set.blockIds.map(rename),
|
|
231
|
+
overflowPx: set.overflowPx,
|
|
232
|
+
scale: set.scale,
|
|
233
|
+
...(set.imageScale !== undefined ? { imageScale: set.imageScale } : {}),
|
|
234
|
+
...(box ? { styleId: box.id } : {}),
|
|
235
|
+
};
|
|
236
|
+
if (set.overflowPx > 0.5) {
|
|
237
|
+
warnings.push({
|
|
238
|
+
kind: 'comicPanelFrame',
|
|
239
|
+
reason: 'textOverflow',
|
|
240
|
+
panel: src.index,
|
|
241
|
+
overflowMm: Math.round((set.overflowPx / dpi) * 254) / 10,
|
|
242
|
+
sourceStart: src.text.start + input.bodyOffset,
|
|
243
|
+
sourceEnd: src.text.end + input.bodyOffset,
|
|
244
|
+
pageIndex: page.index,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
if (warnings.length > 0)
|
|
249
|
+
setComicLayoutWarnings(comic, [...comicPageLayoutWarnings(comic), ...warnings]);
|
|
250
|
+
return { blocks, laid };
|
|
251
|
+
}
|
|
252
|
+
/** Where a horizontal (`axis: 'y'`, at height `at`) or vertical line
|
|
253
|
+
* crosses a convex polygon: the interval it lies in, or undefined. */
|
|
254
|
+
function crossing(poly, axis, at) {
|
|
255
|
+
let lo = Infinity;
|
|
256
|
+
let hi = -Infinity;
|
|
257
|
+
for (let i = 0; i < poly.length; i++) {
|
|
258
|
+
const a = poly[i];
|
|
259
|
+
const b = poly[(i + 1) % poly.length];
|
|
260
|
+
const [a0, a1, b0, b1] = axis === 'y' ? [a.y, a.x, b.y, b.x] : [a.x, a.y, b.x, b.y];
|
|
261
|
+
if ((a0 - at) * (b0 - at) > 0 || a0 === b0) {
|
|
262
|
+
if (a0 === at) {
|
|
263
|
+
lo = Math.min(lo, a1);
|
|
264
|
+
hi = Math.max(hi, a1);
|
|
265
|
+
}
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const v = a1 + ((at - a0) / (b0 - a0)) * (b1 - a1);
|
|
269
|
+
lo = Math.min(lo, v);
|
|
270
|
+
hi = Math.max(hi, v);
|
|
271
|
+
}
|
|
272
|
+
return lo <= hi ? [lo, hi] : undefined;
|
|
273
|
+
}
|
|
274
|
+
/** The box with straight sides inside a convex polygon (a cell cut by
|
|
275
|
+
* slanted lines), so that text keeps off the slants: the larger of the box
|
|
276
|
+
* that keeps the whole height and the width every row of it shares (then
|
|
277
|
+
* the height every column of that width shares), and the box that keeps
|
|
278
|
+
* the whole width first. Falls back to `box` when both are degenerate. */
|
|
279
|
+
export function innerBox(poly, box) {
|
|
280
|
+
const N = 16;
|
|
281
|
+
/** The interval every line across `axis` shares, sampled over [a, b]. */
|
|
282
|
+
const shared = (axis, a, b, lo, hi) => {
|
|
283
|
+
for (let i = 0; i <= N && hi > lo; i++) {
|
|
284
|
+
const c = crossing(poly, axis, a + 0.001 + ((b - a - 0.002) * i) / N);
|
|
285
|
+
if (!c)
|
|
286
|
+
continue;
|
|
287
|
+
lo = Math.max(lo, c[0]);
|
|
288
|
+
hi = Math.min(hi, c[1]);
|
|
289
|
+
}
|
|
290
|
+
return [lo, hi];
|
|
291
|
+
};
|
|
292
|
+
const X0 = box.x;
|
|
293
|
+
const X1 = box.x + box.width;
|
|
294
|
+
const Y0 = box.y;
|
|
295
|
+
const Y1 = box.y + box.height;
|
|
296
|
+
// Rows first: the width all rows share, then the height its columns share.
|
|
297
|
+
const [ax0, ax1] = shared('y', Y0, Y1, X0, X1);
|
|
298
|
+
const [ay0, ay1] = ax1 - ax0 > 1 ? shared('x', ax0, ax1, Y0, Y1) : [0, 0];
|
|
299
|
+
// Columns first.
|
|
300
|
+
const [by0, by1] = shared('x', X0, X1, Y0, Y1);
|
|
301
|
+
const [bx0, bx1] = by1 - by0 > 1 ? shared('y', by0, by1, X0, X1) : [0, 0];
|
|
302
|
+
const area = (w, h) => (w > 1 && h > 1 ? w * h : 0);
|
|
303
|
+
const a = area(ax1 - ax0, ay1 - ay0);
|
|
304
|
+
const b = area(bx1 - bx0, by1 - by0);
|
|
305
|
+
if (a === 0 && b === 0)
|
|
306
|
+
return { ...box };
|
|
307
|
+
return a >= b ? { x: ax0, y: ay0, width: ax1 - ax0, height: ay1 - ay0 } : { x: bx0, y: by0, width: bx1 - bx0, height: by1 - by0 };
|
|
308
|
+
}
|
|
309
|
+
/** The source warnings of a comic's frames (#885): a `box` that names no
|
|
310
|
+
* callout style, and text panels whose Markdown is set in the flow
|
|
311
|
+
* ({@link comicTextPanelFallback}). Offsets as in `source`. */
|
|
312
|
+
export function comicFrameSourceWarnings(source, calloutStyles, supported) {
|
|
313
|
+
const out = [];
|
|
314
|
+
const fallback = comicTextPanelFallback(source, supported);
|
|
315
|
+
for (const panel of source.panels) {
|
|
316
|
+
const box = panel.attrs.box?.trim();
|
|
317
|
+
if (box && !calloutStyles.has(box)) {
|
|
318
|
+
const r = panel.attrSources.box ?? { start: panel.lineStart, end: panel.lineEnd };
|
|
319
|
+
out.push({ kind: 'comicPanelFrame', reason: 'unknownBox', panel: panel.index, style: box, sourceStart: r.start, sourceEnd: r.end });
|
|
320
|
+
}
|
|
321
|
+
if (fallback && isComicTextPanel(panel) && panel.text && panel.text.end > panel.text.start) {
|
|
322
|
+
out.push({ kind: 'comicPanelFrame', reason: fallback, panel: panel.index, sourceStart: panel.lineStart, sourceEnd: panel.lineEnd });
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return out;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=textPanels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textPanels.js","sourceRoot":"","sources":["../../src/comics/textPanels.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* across both sheets, onto the sheet of their page. Pure: every function
|
|
5
5
|
* returns a new comic and leaves its input as it was.
|
|
6
6
|
*/
|
|
7
|
-
import type { VDTBlock, VDTComicBalloon, VDTComicPage, VDTComicPanel, VDTComicSplitter, VDTPage } from '../vdt';
|
|
7
|
+
import type { VDTBlock, VDTComicBalloon, VDTComicPage, VDTComicPanel, VDTComicSplitter, VDTFrame, VDTPage } from '../vdt';
|
|
8
8
|
/**
|
|
9
9
|
* An SVG path moved by `(dx, dy)`: the absolute commands' coordinates are
|
|
10
10
|
* shifted; relative commands are kept, except a relative `m` that opens
|
|
@@ -18,7 +18,11 @@ export declare function translateComicPanel(panel: VDTComicPanel, dx: number, dy
|
|
|
18
18
|
export declare function translateComicSplitter(s: VDTComicSplitter, dx: number, dy: number): VDTComicSplitter;
|
|
19
19
|
/** A balloon moved by `(dx, dy)`: its outline, box, tail tip and lines. */
|
|
20
20
|
export declare function translateComicBalloon(b: VDTComicBalloon, dx: number, dy: number): VDTComicBalloon;
|
|
21
|
-
/** A
|
|
21
|
+
/** A frame the split generated (#885) moved by `(dx, dy)`: its box and
|
|
22
|
+
* outline (a text frame's blocks are the page's, where they stand). */
|
|
23
|
+
export declare function translateComicFrame(f: VDTFrame, dx: number, dy: number): VDTFrame;
|
|
24
|
+
/** A comic moved by `(dx, dy)`: frame, panels, split lines, balloons and
|
|
25
|
+
* the frames the split generated. */
|
|
22
26
|
export declare function translateComicPage(comic: VDTComicPage, dx: number, dy: number): VDTComicPage;
|
|
23
27
|
/**
|
|
24
28
|
* The comic of a strip block (`VDTBlock.comic`, #566) on the sheet of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/comics/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAe,QAAQ,EAAe,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAsB,OAAO,EAAY,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/comics/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAe,QAAQ,EAAe,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAsB,QAAQ,EAAE,OAAO,EAAY,MAAM,QAAQ,CAAC;AA0BlL;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA8B1E;AASD,mCAAmC;AACnC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAS/F;AAED;8CAC8C;AAC9C,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAEpG;AAYD,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAQjG;AAED;wEACwE;AACxE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAQjF;AAED;sCACsC;AACtC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAS5F;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY,GAAG,SAAS,CAShI;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,YAAY,EAAE,CAYvG"}
|
package/dist/comics/transform.js
CHANGED
|
@@ -104,7 +104,19 @@ export function translateComicBalloon(b, dx, dy) {
|
|
|
104
104
|
...(b.tailTip ? { tailTip: movePoint(b.tailTip, dx, dy) } : {}),
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
/** A
|
|
107
|
+
/** A frame the split generated (#885) moved by `(dx, dy)`: its box and
|
|
108
|
+
* outline (a text frame's blocks are the page's, where they stand). */
|
|
109
|
+
export function translateComicFrame(f, dx, dy) {
|
|
110
|
+
return {
|
|
111
|
+
...f,
|
|
112
|
+
rect: moveRect(f.rect, dx, dy),
|
|
113
|
+
...(f.declaredRect ? { declaredRect: moveRect(f.declaredRect, dx, dy) } : {}),
|
|
114
|
+
...(f.polygon ? { polygon: f.polygon.map((p) => movePoint(p, dx, dy)) } : {}),
|
|
115
|
+
blockIds: [...f.blockIds],
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/** A comic moved by `(dx, dy)`: frame, panels, split lines, balloons and
|
|
119
|
+
* the frames the split generated. */
|
|
108
120
|
export function translateComicPage(comic, dx, dy) {
|
|
109
121
|
return {
|
|
110
122
|
...comic,
|
|
@@ -112,6 +124,7 @@ export function translateComicPage(comic, dx, dy) {
|
|
|
112
124
|
panels: comic.panels.map((p) => translateComicPanel(p, dx, dy)),
|
|
113
125
|
splitters: comic.splitters.map((s) => translateComicSplitter(s, dx, dy)),
|
|
114
126
|
balloons: comic.balloons.map((b) => translateComicBalloon(b, dx, dy)),
|
|
127
|
+
...(comic.frames ? { frames: comic.frames.map((f) => translateComicFrame(f, dx, dy)) } : {}),
|
|
115
128
|
};
|
|
116
129
|
}
|
|
117
130
|
/** Strip comics moved onto the sheet, kept while their block stays put. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/comics/transform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/comics/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/comics/types.d.ts
CHANGED
|
@@ -119,6 +119,12 @@ export interface ComicPanelSource {
|
|
|
119
119
|
* in a page that has none. */
|
|
120
120
|
implicit?: true;
|
|
121
121
|
items: ComicScriptItem[];
|
|
122
|
+
/** A text panel (`::panel{text}`, #885): the range of its body, the
|
|
123
|
+
* Markdown poured into its frame (absolute; from the line after the
|
|
124
|
+
* `::panel` line to the end of its last line with text). Its lines are
|
|
125
|
+
* no script: `items` is empty. Absent for a panel lettered from a
|
|
126
|
+
* script. */
|
|
127
|
+
text?: ComicSourceRange;
|
|
122
128
|
}
|
|
123
129
|
/** A comic page or strip as written. */
|
|
124
130
|
export interface ComicPageSource {
|
|
@@ -144,6 +150,10 @@ export interface ComicPageSource {
|
|
|
144
150
|
stray: ComicSourceRange[];
|
|
145
151
|
/** The closing `:::` was found (an unclosed page runs to the end). */
|
|
146
152
|
closed: boolean;
|
|
153
|
+
/** Ordinal of the fence among the comic fences of its text (`:::page`
|
|
154
|
+
* and `:::strip` counted together, from 0), set by the block parser: the
|
|
155
|
+
* stable ids of the comic's frames and balloons (#885). */
|
|
156
|
+
fenceIndex?: number;
|
|
147
157
|
sourceStart: number;
|
|
148
158
|
sourceEnd: number;
|
|
149
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comics/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comics/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import type { CalloutCut } from '../pipeline/frameLayout';
|
|
24
24
|
import type { PlannedCallout } from '../pipeline/calloutLayout';
|
|
25
|
-
import type { ResolvedPageTemplate } from './types';
|
|
25
|
+
import type { ResolvedFrame, ResolvedPageTemplate } from './types';
|
|
26
26
|
/** How many pages, one after another, the content of one composed page may
|
|
27
27
|
* go on to: the generation of added pages after which what still does not
|
|
28
28
|
* fit is cut (`frameContinuationLimit`). */
|
|
@@ -38,7 +38,12 @@ export interface ComposedContinuation {
|
|
|
38
38
|
* id (`VDTFrame.id`). */
|
|
39
39
|
frame: string;
|
|
40
40
|
fromFrameId: string;
|
|
41
|
-
/**
|
|
41
|
+
/** The first frame of the sending frame's chain on its page (the frame
|
|
42
|
+
* itself when no frame comes before it): a story threaded through
|
|
43
|
+
* frames goes on in the frame its chain starts in (#919). */
|
|
44
|
+
head: string;
|
|
45
|
+
/** Where it goes on: `'next-page'`, `'template:<id>'` or `'page:<id>'`
|
|
46
|
+
* (its `{attr.x}` read from the fence). */
|
|
42
47
|
rule: string;
|
|
43
48
|
/** The template of the page it comes from (`'next-page'` reads its
|
|
44
49
|
* `overflowTemplate`). */
|
|
@@ -56,6 +61,12 @@ export interface ComposedContinuation {
|
|
|
56
61
|
/** The frame of the fence's own page that first sent it on: the pieces
|
|
57
62
|
* on later pages are `cp<fence>:<slot>~<k>`. */
|
|
58
63
|
slot: string;
|
|
64
|
+
/** Empty frames that follow the sending frame in its stack and go with
|
|
65
|
+
* the rest to the added page (#912): on a template laid again for what
|
|
66
|
+
* goes on, they keep their size after the frame that takes it. */
|
|
67
|
+
trailing?: readonly string[];
|
|
68
|
+
/** The sending frame's `overflow.fromMark` (#917). */
|
|
69
|
+
fromMark?: string;
|
|
59
70
|
}
|
|
60
71
|
/** What a page added by continuation receives. */
|
|
61
72
|
export interface ComposedContinuationInput {
|
|
@@ -71,6 +82,10 @@ export interface ComposedContinuationInput {
|
|
|
71
82
|
/** The last page continuation may add: what still does not fit stays
|
|
72
83
|
* here, cut at the frame's foot. */
|
|
73
84
|
last: boolean;
|
|
85
|
+
/** A later page fence a story jumps to (#917, `'page:<id>'`): the page
|
|
86
|
+
* is the fence's own, with its own content and frame ids; the frames
|
|
87
|
+
* that take the story go on to pages added after it (`'next-page'`). */
|
|
88
|
+
jump?: true;
|
|
74
89
|
}
|
|
75
90
|
/** `continueIn` sends content to another page. */
|
|
76
91
|
export declare function continuesOffPage(continueIn: string | undefined): boolean;
|
|
@@ -83,8 +98,10 @@ export declare function continuationTarget(c: Pick<ComposedContinuation, 'rule'
|
|
|
83
98
|
/**
|
|
84
99
|
* The frames of `template` that take `list`, in order: each goes on in
|
|
85
100
|
* the frame of its name, else the flow frame, else the first frame no
|
|
86
|
-
* other continuation took.
|
|
87
|
-
*
|
|
101
|
+
* other continuation took. A story threaded through a chain of frames
|
|
102
|
+
* goes on where its chain starts (#919): in the frame of the chain head's
|
|
103
|
+
* name, else the flow frame, else the frame of the sending frame's name.
|
|
104
|
+
* Those that find no free frame are `left` for another page.
|
|
88
105
|
*/
|
|
89
106
|
export declare function assignReceivers(template: Pick<ResolvedPageTemplate, 'frames'>, list: readonly ComposedContinuation[]): {
|
|
90
107
|
receivers: Map<string, ComposedContinuation>;
|
|
@@ -95,8 +112,41 @@ export declare function assignReceivers(template: Pick<ResolvedPageTemplate, 'fr
|
|
|
95
112
|
* their chains go on in on that page) continue as the rule that brought
|
|
96
113
|
* the content, unless they send content off the page themselves; on the
|
|
97
114
|
* last page allowed nothing goes on; with `collapse`, every other frame
|
|
98
|
-
* takes no room and leaves its group
|
|
115
|
+
* takes no room and leaves its group, but the empty frames that came
|
|
116
|
+
* along with the content (`trailing`, #912).
|
|
99
117
|
*/
|
|
118
|
+
/**
|
|
119
|
+
* The frames of a later page fence that take the stories jumping to it
|
|
120
|
+
* (#917), in order: the frame `'page:<id>#<frame>'` names, else the frame
|
|
121
|
+
* of the sending chain's head name, else the first frame of the page its
|
|
122
|
+
* own content leaves empty (`holds`: the frame's chain holds a story of
|
|
123
|
+
* the fence). Those that find none are `left`: they go on after it.
|
|
124
|
+
*/
|
|
125
|
+
export declare function assignJumpReceivers(template: Pick<ResolvedPageTemplate, 'frames'>, list: readonly ComposedContinuation[], holds: (name: string) => boolean): {
|
|
126
|
+
receivers: Map<string, ComposedContinuation>;
|
|
127
|
+
left: ComposedContinuation[];
|
|
128
|
+
};
|
|
129
|
+
/** Whether content `frame` sends on lands on the same template laid again
|
|
130
|
+
* with its other frames collapsed (`'next-page'` with no other
|
|
131
|
+
* `overflowTemplate`), as {@link continuationTarget} decides. */
|
|
132
|
+
export declare function continuesCollapsed(template: Pick<ResolvedPageTemplate, 'id' | 'overflowTemplate'>, frame: Pick<ResolvedFrame, 'overflow'>, collapsed: boolean): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* The empty frames that go with the rest of `frame` to the page it goes
|
|
135
|
+
* on to (#912): those right after it in its stack that hold no story
|
|
136
|
+
* (`holds` says which do) and are not pinned, up to the first that holds
|
|
137
|
+
* one. An answer space under an activity box follows the end of its text.
|
|
138
|
+
*/
|
|
139
|
+
export declare function trailingFrames(template: Pick<ResolvedPageTemplate, 'frames' | 'groups'>, frame: string, holds: (name: string) => boolean): string[];
|
|
140
|
+
/** `template` with `names` taking no room: `'auto'` (`empty`: no height
|
|
141
|
+
* at all, for a frame whose content goes on whole) with no min/max and
|
|
142
|
+
* out of their groups (#859, #912). A group's frames that stay start
|
|
143
|
+
* where its first frame did when that one leaves and they have no
|
|
144
|
+
* placement of their own. */
|
|
145
|
+
export declare function collapseFrames(template: ResolvedPageTemplate, names: ReadonlySet<string>, empty?: ReadonlySet<string>): ResolvedPageTemplate;
|
|
146
|
+
/** The frames a page added by continuation lays with no room: with
|
|
147
|
+
* `collapse`, every frame that neither receives content (nor is in the
|
|
148
|
+
* chain it goes on in) nor came along with it (`trailing`, #912). */
|
|
149
|
+
export declare function collapsedOnAddedPage(template: Pick<ResolvedPageTemplate, 'frames'>, input: ComposedContinuationInput): Set<string>;
|
|
100
150
|
export declare function continuationTemplate(template: ResolvedPageTemplate, input: ComposedContinuationInput): ResolvedPageTemplate;
|
|
101
151
|
export {};
|
|
102
152
|
//# sourceMappingURL=continuation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/composed/continuation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/composed/continuation.ts"],"names":[],"mappings":"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"}
|