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,166 @@
|
|
|
1
|
+
import { pointInPolygon } from './geometry';
|
|
2
|
+
import { comicPanelContinues } from './paint';
|
|
3
|
+
import { pageComics } from './transform';
|
|
4
|
+
const inBox = (r, p) => p.x >= r.x && p.x <= r.x + r.width && p.y >= r.y && p.y <= r.y + r.height;
|
|
5
|
+
/** A comic as an element (`template` level): its fence. */
|
|
6
|
+
export function comicElement(comic, file) {
|
|
7
|
+
if (!comic.id)
|
|
8
|
+
return undefined;
|
|
9
|
+
return { level: 'template', id: comic.id, source: { kind: 'markdown', start: comic.sourceStart, end: comic.sourceEnd, ...file }, rect: { ...comic.frame } };
|
|
10
|
+
}
|
|
11
|
+
/** A frame the split generated as an element: its panel's source. */
|
|
12
|
+
export function comicFrameElement(comic, frame, file) {
|
|
13
|
+
if (frame.sourceStart === undefined || frame.sourceEnd === undefined)
|
|
14
|
+
return undefined;
|
|
15
|
+
const panel = frame.panel !== undefined ? comic.panels[frame.panel] : undefined;
|
|
16
|
+
return {
|
|
17
|
+
level: 'frame',
|
|
18
|
+
id: frame.id,
|
|
19
|
+
source: { kind: 'markdown', start: frame.sourceStart, end: frame.sourceEnd, ...file },
|
|
20
|
+
rect: { ...frame.rect },
|
|
21
|
+
...(panel && comicPanelContinues(comic, panel) ? { facing: true } : {}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** A balloon as an element: its script line(s). */
|
|
25
|
+
export function comicBalloonElement(b, file) {
|
|
26
|
+
return { level: 'box', id: b.elementId ?? b.id, source: { kind: 'markdown', start: b.sourceStart, end: b.sourceEnd, ...file }, rect: { ...b.bbox } };
|
|
27
|
+
}
|
|
28
|
+
/** Whether a point lies in a frame: in its outline when it has one. */
|
|
29
|
+
export function pointInComicFrame(frame, p) {
|
|
30
|
+
if (!inBox(frame.rect, p))
|
|
31
|
+
return false;
|
|
32
|
+
return frame.polygon && frame.polygon.length >= 3 ? pointInPolygon(frame.polygon, p) : true;
|
|
33
|
+
}
|
|
34
|
+
/** The frames of a comic in hit order: the one painted last first (an
|
|
35
|
+
* inset over its panel). */
|
|
36
|
+
export function comicFramesTopFirst(comic) {
|
|
37
|
+
return (comic.frames ?? [])
|
|
38
|
+
.map((f, i) => ({ f, i }))
|
|
39
|
+
.sort((a, b) => b.f.layer - a.f.layer || b.i - a.i)
|
|
40
|
+
.map(({ f }) => f);
|
|
41
|
+
}
|
|
42
|
+
/** The frame of the page's comics under a sheet point, with its comic,
|
|
43
|
+
* the one on top first; undefined off every comic frame. */
|
|
44
|
+
export function comicFrameAt(page, x, y) {
|
|
45
|
+
const comics = pageComics(page);
|
|
46
|
+
for (let k = comics.length - 1; k >= 0; k--) {
|
|
47
|
+
const comic = comics[k];
|
|
48
|
+
for (const frame of comicFramesTopFirst(comic))
|
|
49
|
+
if (pointInComicFrame(frame, { x, y }))
|
|
50
|
+
return { comic, frame };
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the comics of `page` show at sheet point `p`, innermost first, or
|
|
56
|
+
* undefined where they show nothing: a balloon (its glyph first, through
|
|
57
|
+
* `glyph`), else a panel (its picture first) and its frame; then the
|
|
58
|
+
* comic. A text panel's words are not answered here: its blocks are the
|
|
59
|
+
* page's (the caller's flow answers them, then asks {@link comicTextAncestors}).
|
|
60
|
+
*/
|
|
61
|
+
export function comicChainAt(page, p, file, glyph, onText) {
|
|
62
|
+
const comics = pageComics(page);
|
|
63
|
+
for (let k = comics.length - 1; k >= 0; k--) {
|
|
64
|
+
const comic = comics[k];
|
|
65
|
+
const own = comicElement(comic, file);
|
|
66
|
+
const tail = own ? [own] : [];
|
|
67
|
+
// Balloons lie over everything else, the last painted on top.
|
|
68
|
+
for (let i = comic.balloons.length - 1; i >= 0; i--) {
|
|
69
|
+
const b = comic.balloons[i];
|
|
70
|
+
if (!inBox(b.bbox, p))
|
|
71
|
+
continue;
|
|
72
|
+
const out = [];
|
|
73
|
+
const id = b.elementId ?? b.id;
|
|
74
|
+
// A turned or slanted balloon's letters are not where its upright
|
|
75
|
+
// box puts them: the balloon answers whole.
|
|
76
|
+
if (!b.rotate && !b.skew) {
|
|
77
|
+
for (const t of b.text) {
|
|
78
|
+
if (t.artifact || !inBox(t.bbox, p))
|
|
79
|
+
continue;
|
|
80
|
+
const src = glyph(t, p);
|
|
81
|
+
if (src)
|
|
82
|
+
out.push({ level: 'text', id: `${id}@${src.start}`, source: { kind: 'markdown', ...src, ...file } });
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
out.push(comicBalloonElement(b, file));
|
|
87
|
+
const frame = comic.frames?.find((f) => f.panel === b.panelIndex);
|
|
88
|
+
const fe = frame ? comicFrameElement(comic, frame, file) : undefined;
|
|
89
|
+
return [...out, ...(fe ? [fe] : []), ...tail];
|
|
90
|
+
}
|
|
91
|
+
for (const frame of comicFramesTopFirst(comic)) {
|
|
92
|
+
if (!pointInComicFrame(frame, p))
|
|
93
|
+
continue;
|
|
94
|
+
// A text panel's words: the caller's.
|
|
95
|
+
if (frame.blockIds.length > 0 && onText(frame))
|
|
96
|
+
return undefined;
|
|
97
|
+
const panel = frame.panel !== undefined ? comic.panels[frame.panel] : undefined;
|
|
98
|
+
const out = [];
|
|
99
|
+
if (panel?.art)
|
|
100
|
+
out.push({ level: 'resource', id: `${frame.id}:art`, source: { kind: 'resource', resourceId: panel.art.resourceId }, rect: { ...panel.bbox } });
|
|
101
|
+
const fe = comicFrameElement(comic, frame, file);
|
|
102
|
+
if (fe)
|
|
103
|
+
out.push(fe);
|
|
104
|
+
return [...out, ...tail];
|
|
105
|
+
}
|
|
106
|
+
if (own && inBox(comic.frame, p))
|
|
107
|
+
return tail;
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
/** The text frame of the page's comic holding block `id`, and the elements
|
|
112
|
+
* round it (its frame, the comic): what a text panel's words answer after
|
|
113
|
+
* their own chain. */
|
|
114
|
+
export function comicTextAncestors(page, blockId, file) {
|
|
115
|
+
const comic = page.comic;
|
|
116
|
+
const frame = comic?.frames?.find((f) => f.blockIds.includes(blockId));
|
|
117
|
+
if (!comic || !frame)
|
|
118
|
+
return [];
|
|
119
|
+
const fe = comicFrameElement(comic, frame, file);
|
|
120
|
+
const own = comicElement(comic, file);
|
|
121
|
+
return [...(fe ? [fe] : []), ...(own ? [own] : [])];
|
|
122
|
+
}
|
|
123
|
+
/** The comics, frames and balloons of `page` whose source meets `meets`. */
|
|
124
|
+
export function comicElementsForSource(page, meets, file) {
|
|
125
|
+
const out = [];
|
|
126
|
+
for (const comic of pageComics(page)) {
|
|
127
|
+
if (!comic.id)
|
|
128
|
+
continue;
|
|
129
|
+
if (meets({ start: comic.sourceStart, end: comic.sourceEnd }))
|
|
130
|
+
out.push(comicElement(comic, file));
|
|
131
|
+
for (const frame of comic.frames ?? []) {
|
|
132
|
+
if (frame.sourceStart === undefined || frame.sourceEnd === undefined || !meets({ start: frame.sourceStart, end: frame.sourceEnd }))
|
|
133
|
+
continue;
|
|
134
|
+
const fe = comicFrameElement(comic, frame, file);
|
|
135
|
+
if (fe)
|
|
136
|
+
out.push(fe);
|
|
137
|
+
}
|
|
138
|
+
for (const b of comic.balloons)
|
|
139
|
+
if (b.elementId && meets({ start: b.sourceStart, end: b.sourceEnd }))
|
|
140
|
+
out.push(comicBalloonElement(b, file));
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
/** The comic, frame or balloon of `page` with stable id `id`. */
|
|
145
|
+
export function findComicElement(page, id, file) {
|
|
146
|
+
if (!id.startsWith('cm'))
|
|
147
|
+
return undefined;
|
|
148
|
+
for (const comic of pageComics(page)) {
|
|
149
|
+
if (comic.id === id)
|
|
150
|
+
return comicElement(comic, file);
|
|
151
|
+
for (const frame of comic.frames ?? []) {
|
|
152
|
+
if (frame.id !== id)
|
|
153
|
+
continue;
|
|
154
|
+
const panel = frame.panel !== undefined ? comic.panels[frame.panel] : undefined;
|
|
155
|
+
// The half of a panel across a spread's spine read on this page.
|
|
156
|
+
if (panel && comicPanelContinues(comic, panel))
|
|
157
|
+
continue;
|
|
158
|
+
return comicFrameElement(comic, frame, file);
|
|
159
|
+
}
|
|
160
|
+
const b = comic.balloons.find((x) => x.elementId === id);
|
|
161
|
+
if (b)
|
|
162
|
+
return comicBalloonElement(b, file);
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=sourceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceMap.js","sourceRoot":"","sources":["../../src/comics/sourceMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread.d.ts","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAA6C,MAAM,QAAQ,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAsG,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"spread.d.ts","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAA6C,MAAM,QAAQ,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAsG,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIzJ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAMtF;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY,CAAC,CAAC;AAEvH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;CACxB;AA0CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAqGlH"}
|
package/dist/comics/spread.js
CHANGED
|
@@ -14,6 +14,7 @@ import { clipPolygon, polygonBBox } from './geometry';
|
|
|
14
14
|
import { comicPageFrame, comicPageLayoutWarnings, comicViewerLeaf, layoutComicFrame, setComicLayoutWarnings } from './layoutPage';
|
|
15
15
|
import { resolvedComics } from '../defaults/comics';
|
|
16
16
|
import { translateComicBalloon, translateComicPanel, translateComicSplitter } from './transform';
|
|
17
|
+
import { comicFramesFor } from './frames';
|
|
17
18
|
/** Whether a comic page asks for a spread (`:::page{spread}`). */
|
|
18
19
|
export function isComicSpread(source) {
|
|
19
20
|
if (source.kind !== 'page')
|
|
@@ -159,7 +160,12 @@ export function layoutComicSpread(source, given) {
|
|
|
159
160
|
panels,
|
|
160
161
|
splitters,
|
|
161
162
|
balloons,
|
|
163
|
+
...(whole.id ? { id: whole.id } : {}),
|
|
162
164
|
};
|
|
165
|
+
// The frames of the panels the page shows, cut and moved as they are.
|
|
166
|
+
const frames = comicFramesFor(whole, panels);
|
|
167
|
+
if (frames)
|
|
168
|
+
comic.frames = frames;
|
|
163
169
|
// A panel's warning goes to the page holding its centre (once, even
|
|
164
170
|
// for a panel across the spine).
|
|
165
171
|
setComicLayoutWarnings(comic, warnings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread.js","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAyB,MAAM,cAAc,CAAC;AACzJ,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"spread.js","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
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 type { ContentBlock } from '../parse/types';
|
|
19
|
+
import type { ResolvedCalloutStyleConfig } from '../types';
|
|
20
|
+
import type { ContentWarning, ResolvedConfig, VDTBlock, VDTComicPage, VDTPage } from '../vdt';
|
|
21
|
+
import type { ResolvedFrame } from '../composed/types';
|
|
22
|
+
import type { PlannedCallout } from '../pipeline/calloutLayout';
|
|
23
|
+
import type { FrameLayoutPass } from '../pipeline/frameLayout';
|
|
24
|
+
import { type PlannedComposedPage } from '../pipeline/composedLayout';
|
|
25
|
+
import { resolvedDirection } from '../pipeline/config';
|
|
26
|
+
import type { ComicPageSource } from './types';
|
|
27
|
+
/** `containerAttrs` key of a text panel's story box: the panel's index in
|
|
28
|
+
* its page's source (`ComicPanelSource.index`). */
|
|
29
|
+
export declare const COMIC_PANEL_ATTR = "__comicPanel";
|
|
30
|
+
/** The story key of a text panel (its box's `FRAME_ATTR`). */
|
|
31
|
+
export declare const comicTextStoryKey: (panelIndex: number) => string;
|
|
32
|
+
/** Whether text panels can be set in their frames in a document: frames
|
|
33
|
+
* take text on pages whose flow is the sheet (horizontal, left to right).
|
|
34
|
+
* On a vertical or right-to-left document the text is set in the flow
|
|
35
|
+
* after the comic. */
|
|
36
|
+
export declare function comicTextPanelsSupported(resolved: Pick<ResolvedConfig, 'layout'> & Parameters<typeof resolvedDirection>[0]): boolean;
|
|
37
|
+
/** Why a text panel's Markdown is set in the flow instead of its frame:
|
|
38
|
+
* the comic is a strip or a spread, or the document's flow is turned or
|
|
39
|
+
* mirrored. Undefined when its frame takes it. */
|
|
40
|
+
export declare function comicTextPanelFallback(source: Pick<ComicPageSource, 'kind' | 'attrs'>, supported: boolean): 'strip' | 'spread' | 'flow' | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* `blocks` with the Markdown of every text panel of a comic page set in
|
|
43
|
+
* its frame regrouped in a story box of its own (see the module comment).
|
|
44
|
+
* Only comics outside any container and whose frame takes text
|
|
45
|
+
* ({@link comicTextPanelFallback}). The same array comes back when there
|
|
46
|
+
* is nothing to wrap.
|
|
47
|
+
*/
|
|
48
|
+
export declare function wrapComicTextPanels(blocks: readonly ContentBlock[], supported: boolean): {
|
|
49
|
+
blocks: ContentBlock[];
|
|
50
|
+
wrapped: boolean;
|
|
51
|
+
};
|
|
52
|
+
/** The text panels' stories of every comic page of the pass, by the index
|
|
53
|
+
* of its directive: the markers they span (the directive to the closing
|
|
54
|
+
* marker of the last story) and the stories by key
|
|
55
|
+
* ({@link comicTextStoryKey}). */
|
|
56
|
+
export declare function planComicTextPanels(blocks: readonly ContentBlock[], plans: ReadonlyMap<number, PlannedCallout>): Map<number, PlannedComposedPage>;
|
|
57
|
+
/** What {@link layoutComicTextFrames} reads of the pass (as a composed page
|
|
58
|
+
* does, `ComposedPageInput`). */
|
|
59
|
+
export interface ComicTextFramesInput {
|
|
60
|
+
pass: FrameLayoutPass;
|
|
61
|
+
resolved: ResolvedConfig;
|
|
62
|
+
page: VDTPage;
|
|
63
|
+
comic: VDTComicPage;
|
|
64
|
+
plan: PlannedComposedPage;
|
|
65
|
+
/** The style a frame is drawn with: its `style`, else frameless. */
|
|
66
|
+
styleOf(frame: ResolvedFrame): ResolvedCalloutStyleConfig;
|
|
67
|
+
dpi: number;
|
|
68
|
+
emPx: number;
|
|
69
|
+
bodyOffset: number;
|
|
70
|
+
mirrored: boolean;
|
|
71
|
+
pushGapPx: number;
|
|
72
|
+
locale?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface ComicTextFramesLayout {
|
|
75
|
+
/** The frames' boxes and content, for `page.floats` and `doc.blocks`. */
|
|
76
|
+
blocks: VDTBlock[];
|
|
77
|
+
/** The stories set (by key). */
|
|
78
|
+
laid: Set<string>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Set the text panels of a laid-out comic page in their frames: each text
|
|
82
|
+
* frame of `comic.frames` gets the blocks its story was set in
|
|
83
|
+
* (`blockIds`), its overflow and its scale; a frame its text does not fit
|
|
84
|
+
* clips it (`comicPanelFrame`, reason `textOverflow`). The frame's text
|
|
85
|
+
* area is the panel's box inside its border and the lettering's inset;
|
|
86
|
+
* with a `box` style, the panel's box (the style's padding keeps the text
|
|
87
|
+
* off its edges).
|
|
88
|
+
*/
|
|
89
|
+
export declare function layoutComicTextFrames(input: ComicTextFramesInput): ComicTextFramesLayout;
|
|
90
|
+
/** The box with straight sides inside a convex polygon (a cell cut by
|
|
91
|
+
* slanted lines), so that text keeps off the slants: the larger of the box
|
|
92
|
+
* that keeps the whole height and the width every row of it shares (then
|
|
93
|
+
* the height every column of that width shares), and the box that keeps
|
|
94
|
+
* the whole width first. Falls back to `box` when both are degenerate. */
|
|
95
|
+
export declare function innerBox(poly: readonly {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
}[], box: {
|
|
99
|
+
x: number;
|
|
100
|
+
y: number;
|
|
101
|
+
width: number;
|
|
102
|
+
height: number;
|
|
103
|
+
}): {
|
|
104
|
+
x: number;
|
|
105
|
+
y: number;
|
|
106
|
+
width: number;
|
|
107
|
+
height: number;
|
|
108
|
+
};
|
|
109
|
+
/** The source warnings of a comic's frames (#885): a `box` that names no
|
|
110
|
+
* callout style, and text panels whose Markdown is set in the flow
|
|
111
|
+
* ({@link comicTextPanelFallback}). Offsets as in `source`. */
|
|
112
|
+
export declare function comicFrameSourceWarnings(source: ComicPageSource, calloutStyles: ReadonlySet<string>, supported: boolean): ContentWarning[];
|
|
113
|
+
//# sourceMappingURL=textPanels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textPanels.d.ts","sourceRoot":"","sources":["../../src/comics/textPanels.ts"],"names":[],"mappings":"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"}
|