postext 1.36.0 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/composed/continuation.test.d.ts +2 -0
- package/dist/__tests__/composed/continuation.test.d.ts.map +1 -0
- package/dist/__tests__/composed/continuation.test.js +352 -0
- package/dist/__tests__/composed/continuation.test.js.map +1 -0
- package/dist/__tests__/composed/contrast.test.d.ts +2 -0
- package/dist/__tests__/composed/contrast.test.d.ts.map +1 -0
- package/dist/__tests__/composed/contrast.test.js +124 -0
- package/dist/__tests__/composed/contrast.test.js.map +1 -0
- package/dist/__tests__/composed/corpus.test.js +7 -1
- package/dist/__tests__/composed/corpus.test.js.map +1 -1
- package/dist/__tests__/composed/fit.test.js +9 -6
- package/dist/__tests__/composed/fit.test.js.map +1 -1
- package/dist/__tests__/composed/groups.test.js +14 -0
- package/dist/__tests__/composed/groups.test.js.map +1 -1
- package/dist/__tests__/composed/headingDesigns.test.d.ts +2 -0
- package/dist/__tests__/composed/headingDesigns.test.d.ts.map +1 -0
- package/dist/__tests__/composed/headingDesigns.test.js +262 -0
- package/dist/__tests__/composed/headingDesigns.test.js.map +1 -0
- package/dist/__tests__/composed/labels.test.d.ts +2 -0
- package/dist/__tests__/composed/labels.test.d.ts.map +1 -0
- package/dist/__tests__/composed/labels.test.js +326 -0
- package/dist/__tests__/composed/labels.test.js.map +1 -0
- package/dist/__tests__/composed/outsidePrint.test.js +5 -2
- package/dist/__tests__/composed/outsidePrint.test.js.map +1 -1
- package/dist/__tests__/composed/sourceMap.test.js +26 -0
- package/dist/__tests__/composed/sourceMap.test.js.map +1 -1
- package/dist/__tests__/composed/spreadLabels.test.d.ts +2 -0
- package/dist/__tests__/composed/spreadLabels.test.d.ts.map +1 -0
- package/dist/__tests__/composed/spreadLabels.test.js +131 -0
- package/dist/__tests__/composed/spreadLabels.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +11 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/migrate/fixtures/textbookPort.d.ts +14 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.d.ts.map +1 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.js +116 -0
- package/dist/__tests__/migrate/fixtures/textbookPort.js.map +1 -0
- package/dist/__tests__/migrate/textToMarkdown.test.d.ts +2 -0
- package/dist/__tests__/migrate/textToMarkdown.test.d.ts.map +1 -0
- package/dist/__tests__/migrate/textToMarkdown.test.js +268 -0
- package/dist/__tests__/migrate/textToMarkdown.test.js.map +1 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts +2 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts.map +1 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.js +89 -0
- package/dist/__tests__/paragraphStyleLetterSpacing.test.js.map +1 -0
- package/dist/__tests__/pictureBelowPrintSize.test.d.ts +2 -0
- package/dist/__tests__/pictureBelowPrintSize.test.d.ts.map +1 -0
- package/dist/__tests__/pictureBelowPrintSize.test.js +82 -0
- package/dist/__tests__/pictureBelowPrintSize.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
- package/dist/canvas-backend/composed.d.ts +5 -2
- package/dist/canvas-backend/composed.d.ts.map +1 -1
- package/dist/canvas-backend/composed.js +5 -3
- package/dist/canvas-backend/composed.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +37 -19
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts +5 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +60 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/composed/continuation.d.ts +102 -0
- package/dist/composed/continuation.d.ts.map +1 -0
- package/dist/composed/continuation.js +87 -0
- package/dist/composed/continuation.js.map +1 -0
- package/dist/composed/labels.d.ts +154 -0
- package/dist/composed/labels.d.ts.map +1 -0
- package/dist/composed/labels.js +524 -0
- package/dist/composed/labels.js.map +1 -0
- package/dist/composed/pageMemo.d.ts +3 -2
- package/dist/composed/pageMemo.d.ts.map +1 -1
- package/dist/composed/pageMemo.js +3 -1
- package/dist/composed/pageMemo.js.map +1 -1
- package/dist/composed/paint.d.ts +8 -2
- package/dist/composed/paint.d.ts.map +1 -1
- package/dist/composed/paint.js +8 -2
- package/dist/composed/paint.js.map +1 -1
- package/dist/composed/reflowLog.d.ts +3 -1
- package/dist/composed/reflowLog.d.ts.map +1 -1
- package/dist/composed/reflowLog.js +20 -6
- package/dist/composed/reflowLog.js.map +1 -1
- package/dist/composed/sourceMap.d.ts +0 -21
- package/dist/composed/sourceMap.d.ts.map +1 -1
- package/dist/composed/sourceMap.js +87 -7
- package/dist/composed/sourceMap.js.map +1 -1
- package/dist/composed/spread.d.ts +3 -0
- package/dist/composed/spread.d.ts.map +1 -1
- package/dist/composed/spread.js +1 -1
- package/dist/composed/spread.js.map +1 -1
- package/dist/configWarnings.d.ts +15 -0
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +29 -17
- package/dist/configWarnings.js.map +1 -1
- package/dist/contrast.d.ts +5 -3
- package/dist/contrast.d.ts.map +1 -1
- package/dist/contrast.js +46 -5
- package/dist/contrast.js.map +1 -1
- package/dist/defaults/paragraphStyles.d.ts +1 -1
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +5 -1
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/design/slots.d.ts +12 -10
- package/dist/design/slots.d.ts.map +1 -1
- package/dist/design/slots.js +26 -2
- package/dist/design/slots.js.map +1 -1
- package/dist/fonts/faces.d.ts.map +1 -1
- package/dist/fonts/faces.js +6 -0
- package/dist/fonts/faces.js.map +1 -1
- package/dist/highlightMarks.d.ts.map +1 -1
- package/dist/highlightMarks.js +6 -0
- package/dist/highlightMarks.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +40 -2
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/migrate/markdownRuns.d.ts +70 -0
- package/dist/migrate/markdownRuns.d.ts.map +1 -0
- package/dist/migrate/markdownRuns.js +215 -0
- package/dist/migrate/markdownRuns.js.map +1 -0
- package/dist/migrate/pageDesign.d.ts +119 -0
- package/dist/migrate/pageDesign.d.ts.map +1 -0
- package/dist/migrate/pageDesign.js +446 -0
- package/dist/migrate/pageDesign.js.map +1 -0
- package/dist/migrate/textToMarkdown.d.ts +124 -0
- package/dist/migrate/textToMarkdown.d.ts.map +1 -0
- package/dist/migrate/textToMarkdown.js +716 -0
- package/dist/migrate/textToMarkdown.js.map +1 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +192 -24
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +12 -1
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +20 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +30 -2
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/composedLayout.d.ts +16 -2
- package/dist/pipeline/composedLayout.d.ts.map +1 -1
- package/dist/pipeline/composedLayout.js +107 -37
- package/dist/pipeline/composedLayout.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +15 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +85 -0
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/frameLayout.d.ts +4 -1
- package/dist/pipeline/frameLayout.d.ts.map +1 -1
- package/dist/pipeline/frameLayout.js +5 -2
- package/dist/pipeline/frameLayout.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +11 -1
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +169 -66
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/mirrorFrame.d.ts.map +1 -1
- package/dist/pipeline/mirrorFrame.js +25 -2
- package/dist/pipeline/mirrorFrame.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +28 -0
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +21 -0
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/styles.d.ts +1 -1
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +4 -0
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +138 -7
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/dist/word/toDocx.d.ts.map +1 -1
- package/dist/word/toDocx.js +14 -0
- package/dist/word/toDocx.js.map +1 -1
- package/dist/word/word.test.js +11 -1
- package/dist/word/word.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { buildDocument, collectConfigWarnings, configDesignSlots, moveTextToMarkdown } from '../../index';
|
|
3
|
+
import { createMeasurementCache } from '../../measure';
|
|
4
|
+
import { scanChapter } from '../../migrate/markdownRuns';
|
|
5
|
+
import { joinLines } from '../../migrate/pageDesign';
|
|
6
|
+
import { PORT_CHAPTERS, PORT_CONFIG } from './fixtures/textbookPort';
|
|
7
|
+
// Deterministic text measurement stub (no DOM in the node test env).
|
|
8
|
+
class StubCtx {
|
|
9
|
+
font = '';
|
|
10
|
+
measureText(s) {
|
|
11
|
+
return { width: s.length * 7 };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
globalThis.OffscreenCanvas = class {
|
|
15
|
+
getContext() {
|
|
16
|
+
return new StubCtx();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const metadata = { title: 'Our World' };
|
|
20
|
+
const run = (opts = {}) => moveTextToMarkdown({ config: PORT_CONFIG, chapters: PORT_CHAPTERS, metadata }, opts);
|
|
21
|
+
const contentWarnings = (config) => collectConfigWarnings(config, { metadata }).filter((w) => w.kind === 'contentInConfig');
|
|
22
|
+
const template = (config, id) => config.pageTemplates.find((t) => t.id === id);
|
|
23
|
+
describe('moveTextToMarkdown (#874)', () => {
|
|
24
|
+
it('leaves no content in the configuration but the style no heading uses, and removes that one when asked', () => {
|
|
25
|
+
expect(contentWarnings(PORT_CONFIG).length).toBe(8);
|
|
26
|
+
const kept = run();
|
|
27
|
+
expect(kept.unchanged).toBe(false);
|
|
28
|
+
// Only the unused style still holds a sentence.
|
|
29
|
+
expect(contentWarnings(kept.config).map((w) => w.ownerId)).toEqual(['topic--p9']);
|
|
30
|
+
expect(kept.report.unusedStyles).toEqual(['topic--p9']);
|
|
31
|
+
expect(kept.report.left).toContainEqual({ path: 'headingStyles[id=topic--p9]', reason: 'unused' });
|
|
32
|
+
const removed = run({ unusedStyles: 'remove' });
|
|
33
|
+
expect(contentWarnings(removed.config)).toEqual([]);
|
|
34
|
+
expect(removed.report.contentInConfigAfter).toEqual({ warnings: 0, elements: 0, chars: 0 });
|
|
35
|
+
expect(removed.report.contentInConfigBefore.warnings).toBe(8);
|
|
36
|
+
expect(removed.report.headingStylesRemoved).toEqual(['topic--p9']);
|
|
37
|
+
expect(removed.report.configBytesAfter).toBeLessThan(removed.report.configBytesBefore);
|
|
38
|
+
});
|
|
39
|
+
it('writes a page fence per page, with the text in frame slots, the page picture as an attribute and the hard breaks kept', () => {
|
|
40
|
+
const { chapters, report } = run();
|
|
41
|
+
const ch1 = chapters.find((c) => c.id === 'ch1').markdown;
|
|
42
|
+
// The front matter and the headings stay; each design's run is a fence.
|
|
43
|
+
expect(ch1.startsWith('---\ntitle: "Our World"\n---')).toBe(true);
|
|
44
|
+
expect(ch1.match(/^::::page\{/gm).length).toBe(2);
|
|
45
|
+
expect(ch1).toMatch(/::::page\{template="page-base" background="art-p1"\}\n# Rivers and seas \{style="topic" id="t-rivers"\}\n\n# Where rivers start \{style="next--p1" id="t-springs"\}/);
|
|
46
|
+
// A highlight box under a bold word became the book's chip of its colour.
|
|
47
|
+
expect(ch1).toContain('Water covers most of the planet. :chip[Rivers]{style="key"} carry it from the hills\\\ndown to the sea');
|
|
48
|
+
expect(ch1).toContain(':::frame{slot="shared-');
|
|
49
|
+
expect(ch1).toMatch(/:::paragraphs\{style="fixture-stamp-32-center"\}\nRivers and seas\n:::\n:::/);
|
|
50
|
+
expect(report.chips).toBe(3);
|
|
51
|
+
expect(report.pages.map((p) => [p.chapterId, p.fence, p.template])).toEqual([
|
|
52
|
+
['ch1', 0, 'page-base'], ['ch1', 1, 'p2'], ['ch2', 0, 'p3'], ['ch2', 1, 'p3'], ['ch2', 2, 'spread'], ['ch2', 3, 'spread'],
|
|
53
|
+
]);
|
|
54
|
+
});
|
|
55
|
+
it('joins text blocks of one look set under one another into one frame', () => {
|
|
56
|
+
const { config, chapters, report } = run();
|
|
57
|
+
const ch1 = chapters.find((c) => c.id === 'ch1').markdown;
|
|
58
|
+
const body = ch1.slice(ch1.indexOf('Water covers'), ch1.indexOf('never stop.') + 'never stop.'.length);
|
|
59
|
+
// Three elements, three paragraphs of one frame.
|
|
60
|
+
expect(body.split('\n\n').length).toBe(3);
|
|
61
|
+
expect(body).not.toContain(':::');
|
|
62
|
+
// Kicker, title and body on three pages, a label, the spread's three;
|
|
63
|
+
// the atlas line keeps its placeholder.
|
|
64
|
+
expect(report.movedElements).toBe(5 + 6 + 5 + 3);
|
|
65
|
+
const style = config.paragraphStyles.find((p) => p.id === 'fixture-sans-11');
|
|
66
|
+
expect(style).toMatchObject({ fontFamily: 'Fixture Sans', lineHeight: { value: 1.5, unit: 'em' }, textAlign: 'left', hyphenation: false, spaceBetween: { value: 0, unit: 'mm' }, snapToGrid: false });
|
|
67
|
+
});
|
|
68
|
+
it('proposes a shared template for pages with frames in the same places, and the pages’ own extend it', () => {
|
|
69
|
+
const { config, report } = run();
|
|
70
|
+
const base = report.templates.find((t) => t.id === 'page-base');
|
|
71
|
+
// The first page draws nothing of its own: it is laid on the base.
|
|
72
|
+
expect(base).toMatchObject({ pages: 1 });
|
|
73
|
+
const t = template(config, 'page-base');
|
|
74
|
+
expect(t.frames.map((f) => f.name)).toEqual(['flow', 'shared-1', 'shared-2', 'shared-3']);
|
|
75
|
+
expect(t.frames[0]).toEqual({ name: 'flow', flow: true, optional: true, layer: -1 });
|
|
76
|
+
// The page picture is the page's attribute, shared by every page.
|
|
77
|
+
expect(t.decoration.elements[0]).toMatchObject({ kind: 'image', resourceId: '{attr.background}' });
|
|
78
|
+
expect(t.header).toBe(false);
|
|
79
|
+
expect(t.footer).toBe(false);
|
|
80
|
+
expect(template(config, 'p2').extends).toBe('page-base');
|
|
81
|
+
expect(template(config, 'p2').frames.map((f) => f.name)).toEqual(['text-1']);
|
|
82
|
+
// The card is drawn by every page (under its own id): the base's.
|
|
83
|
+
expect(t.decoration.elements.map((e) => e.id)).toEqual(['page', 'card-p1']);
|
|
84
|
+
expect(template(config, 'p3').decoration.elements.map((e) => e.id)).toEqual(['folio-p3']);
|
|
85
|
+
// No sharing: one template per page design.
|
|
86
|
+
const solo = run({ shareTemplates: false });
|
|
87
|
+
expect(solo.config.pageTemplates.every((x) => x.extends === undefined)).toBe(true);
|
|
88
|
+
expect(solo.report.templates.length).toBe(4);
|
|
89
|
+
expect(solo.report.templates.map((x) => x.id)).toEqual(['p1', 'p2', 'p3', 'spread']);
|
|
90
|
+
});
|
|
91
|
+
it('merges the page styles left the same, renames them in the Markdown and drops the headings that only switched the page', () => {
|
|
92
|
+
const { config, chapters, report } = run();
|
|
93
|
+
expect(report.headingStylesMerged).toEqual([
|
|
94
|
+
{ into: 'topic', from: ['topic--p1', 'topic--p2', 'topic--p3'] },
|
|
95
|
+
]);
|
|
96
|
+
const ids = config.headingStyles.map((s) => s.id);
|
|
97
|
+
expect(ids).toEqual(['topic', 'next--p1', 'cont--p3', 'spread', 'cont--spread', 'topic--p9']);
|
|
98
|
+
expect(config.headingStyles.find((s) => s.id === 'topic')).not.toHaveProperty('header');
|
|
99
|
+
const ch2 = chapters.find((c) => c.id === 'ch2').markdown;
|
|
100
|
+
expect(ch2).toContain('# Maps and plans {style="topic" id="t-maps"}');
|
|
101
|
+
expect(ch2).not.toContain('###### ·');
|
|
102
|
+
// Bare breaks next to composed pages go; the spread's side is a break's.
|
|
103
|
+
expect(ch2).not.toMatch(/^:::pagebreak$/m);
|
|
104
|
+
expect(ch2).toContain(':::pagebreak{parity="even"}\n\n::::page{template="spread"}');
|
|
105
|
+
expect(report.headingsDropped).toBe(1);
|
|
106
|
+
});
|
|
107
|
+
it('keeps a text that mixes words and a placeholder in the decoration and says so', () => {
|
|
108
|
+
const { config, report } = run();
|
|
109
|
+
expect(report.left).toContainEqual({ path: 'headingStyles[3] #folio-p3', reason: 'placeholder' });
|
|
110
|
+
expect(JSON.stringify(template(config, 'p3'))).toContain('Atlas page {pageNumber}');
|
|
111
|
+
});
|
|
112
|
+
it('sets a spread’s sides from the opening heading’s parity: verso frames in the verso variant, recto in the recto', () => {
|
|
113
|
+
const { config, chapters, report } = run();
|
|
114
|
+
const t = template(config, 'spread');
|
|
115
|
+
expect(t.variants?.verso?.frames?.length).toBe(1);
|
|
116
|
+
expect(t.variants?.recto?.frames?.length).toBe(2);
|
|
117
|
+
const spreadPages = report.pages.filter((p) => p.template === 'spread');
|
|
118
|
+
expect(spreadPages.map((p) => p.side)).toEqual(['verso', 'recto']);
|
|
119
|
+
expect(spreadPages[0].differences).toContain('flow');
|
|
120
|
+
const ch2 = chapters.find((c) => c.id === 'ch2').markdown;
|
|
121
|
+
const first = ch2.slice(ch2.indexOf('# Long ago'), ch2.indexOf('::::', ch2.indexOf('# Long ago')));
|
|
122
|
+
expect(first).toContain('Long ago people lived in caves');
|
|
123
|
+
expect(first).not.toContain('built towns');
|
|
124
|
+
expect(first).toContain('Some running text');
|
|
125
|
+
// The second page's own text, recto frames merged into one.
|
|
126
|
+
const second = ch2.slice(ch2.lastIndexOf('::::page'));
|
|
127
|
+
expect(second).toContain('Later they built towns and wrote down their laws.');
|
|
128
|
+
expect(second).toContain('Writing changed how people kept their history.');
|
|
129
|
+
});
|
|
130
|
+
it('lays out: every fence is a composed page, every moved text is set in its frame, the contents still finds the headings', () => {
|
|
131
|
+
const { config, chapters } = run({ unusedStyles: 'remove' });
|
|
132
|
+
for (const ch of chapters) {
|
|
133
|
+
const doc = buildDocument({ markdown: ch.markdown }, config, createMeasurementCache());
|
|
134
|
+
const fences = ch.markdown.match(/^::::page\{/gm).length;
|
|
135
|
+
const composed = doc.pages.filter((p) => p.composed);
|
|
136
|
+
expect(composed.length).toBe(fences);
|
|
137
|
+
// The spread opens on a verso, as its heading asked: page 3 is blank.
|
|
138
|
+
expect(doc.pages.length).toBe(ch.id === 'ch2' ? fences + 1 : fences);
|
|
139
|
+
if (ch.id === 'ch2')
|
|
140
|
+
expect(composed.slice(-2).map((p) => p.composed.variant)).toEqual(['verso', 'recto']);
|
|
141
|
+
const kinds = new Set([...(doc.contentWarnings ?? []), ...(doc.warnings ?? [])].map((w) => w.kind));
|
|
142
|
+
for (const k of ['slotUnknown', 'templateUnknown', 'pageFenceLength', 'unknownDirective'])
|
|
143
|
+
expect(kinds.has(k)).toBe(false);
|
|
144
|
+
const words = composed.flatMap((p) => p.composed.frames.flatMap((f) => f.blockIds.map((id) => p.floats.find((b) => b.id === id)).flatMap((b) => b.lines.map((l) => l.text)))).join(' ');
|
|
145
|
+
if (ch.id === 'ch1') {
|
|
146
|
+
expect(words).toContain('Water covers most of the planet.');
|
|
147
|
+
expect(words).toContain('Rain gauge');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
expect(words).toContain('Writing changed how people kept their history.');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
it('gives back the book unchanged when nothing is held in a page design', () => {
|
|
155
|
+
const clean = { headingStyles: [{ id: 'plain', header: { elements: [{ kind: 'text', id: 'h', content: '{chapterTitle}', fontSize: { value: 9, unit: 'pt' }, placement: { anchor: { to: 'page', edge: 'top-left' } } }] } }] };
|
|
156
|
+
const res = moveTextToMarkdown({ config: clean, chapters: [{ id: 'a', markdown: '# A {style="plain"}\n' }] });
|
|
157
|
+
expect(res.unchanged).toBe(true);
|
|
158
|
+
expect(res.config).toBe(clean);
|
|
159
|
+
expect(res.chapters[0].markdown).toBe('# A {style="plain"}\n');
|
|
160
|
+
});
|
|
161
|
+
it('turns highlights into chips only when asked', () => {
|
|
162
|
+
const off = run({ highlightsToChips: false });
|
|
163
|
+
expect(off.report.chips).toBe(0);
|
|
164
|
+
expect(off.chapters[0].markdown).toContain('**Rivers**');
|
|
165
|
+
expect(JSON.stringify(off.config.pageTemplates)).toContain('hl-p1');
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe('scanChapter (#874)', () => {
|
|
169
|
+
const designOf = (id) => (id.startsWith('a') ? 'A' : id.startsWith('b') ? 'B' : undefined);
|
|
170
|
+
const scan = (md) => scanChapter(md, { designOf, breaksPage: (h) => h.level === 1 });
|
|
171
|
+
it('closes a run at another design, a part and the chapter end; carries containers and code along', () => {
|
|
172
|
+
const md = [
|
|
173
|
+
'# One {style="a1"}', 'text', ':::callout', '# not a heading here {style="b1"}', ':::', '```', '# code {style="b1"}', '```',
|
|
174
|
+
'## sub', '# Two {style="b1"}', 'more', ':::part{title="P"}', ':::', '# Three {style="a2"}',
|
|
175
|
+
].join('\n');
|
|
176
|
+
const s = scan(md);
|
|
177
|
+
expect(s.runs.map((r) => [r.design, r.startLine, r.endLine])).toEqual([['A', 0, 8], ['B', 9, 10], ['A', 13, 13]]);
|
|
178
|
+
});
|
|
179
|
+
it('starts a new page at a page break or a heading that breaks the page, and drops the breaks next to runs', () => {
|
|
180
|
+
const md = ['# One {style="a1"}', 'x', '', ':::pagebreak', '', '###### · {style="a2"}', '# Again {style="a3"}', ':::pagebreak', '# Other {style="b1"}'].join('\n');
|
|
181
|
+
const s = scan(md);
|
|
182
|
+
expect(s.runs[0].pages.map((p) => [p.startLine, p.endLine])).toEqual([[0, 1], [5, 5], [6, 6]]);
|
|
183
|
+
expect(s.runs[0].endLine).toBe(6);
|
|
184
|
+
expect(s.runs[1].startLine).toBe(8);
|
|
185
|
+
expect(s.dropBreaks).toEqual([7]);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
describe('text as Markdown (#874)', () => {
|
|
189
|
+
it('prints a design text as the design printed it: marks kept or escaped, dollars and backslashes literal', () => {
|
|
190
|
+
const el = (id, content, inlineMarks, y) => ({ kind: 'text', id, content, inlineMarks, fontSize: { value: 11, unit: 'pt' }, align: 'left', placement: { anchor: { to: 'page', edge: 'top-left' }, offset: { x: { value: 20, unit: 'mm' }, y: { value: y, unit: 'mm' } }, size: { width: { value: 150, unit: 'mm' } } } });
|
|
191
|
+
const config = { headingStyles: [{ id: 's', hidden: true, header: { elements: [
|
|
192
|
+
el('a', 'Costs $5 *each* in C:\\shop, said the sign', false, 20),
|
|
193
|
+
el('b', 'The **key** word, and $3 too', true, 60),
|
|
194
|
+
] } }] };
|
|
195
|
+
const res = moveTextToMarkdown({ config, chapters: [{ id: 'c', markdown: '# Shop {style="s"}\n' }] });
|
|
196
|
+
const doc = buildDocument({ markdown: res.chapters[0].markdown }, res.config, createMeasurementCache());
|
|
197
|
+
const page = doc.pages.find((p) => p.composed);
|
|
198
|
+
const texts = page.composed.frames.flatMap((f) => f.blockIds.map((id) => page.floats.find((b) => b.id === id)).filter((b) => b.type === 'paragraph').map((b) => b.lines.map((l) => l.text).join(' ')));
|
|
199
|
+
expect(texts).toContain('Costs $5 *each* in C:\\shop, said the sign');
|
|
200
|
+
expect(texts).toContain('The key word, and $3 too');
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
describe('moveTextToMarkdown carries tracking (#907)', () => {
|
|
204
|
+
/** The port with its page titles tracked +15/1000 em, as the textbook's
|
|
205
|
+
* are: on most pages in em, on the third in points (0.48 pt of 32 pt). */
|
|
206
|
+
const tracked = () => {
|
|
207
|
+
const json = JSON.parse(JSON.stringify(PORT_CONFIG));
|
|
208
|
+
for (const style of json.headingStyles ?? []) {
|
|
209
|
+
for (const el of (style.header?.elements ?? [])) {
|
|
210
|
+
if (el.kind !== 'text' || !el.id.startsWith('title-'))
|
|
211
|
+
continue;
|
|
212
|
+
el.letterSpacing = el.id === 'title-p3' ? { value: 0.48, unit: 'pt' } : { value: 0.015, unit: 'em' };
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return json;
|
|
216
|
+
};
|
|
217
|
+
it('writes a moved text’s letter spacing into the paragraph style it creates, in ems of its size', () => {
|
|
218
|
+
const { config, chapters, report } = moveTextToMarkdown({ config: tracked(), chapters: PORT_CHAPTERS, metadata });
|
|
219
|
+
const titles = config.paragraphStyles.filter((p) => p.fontFamily === 'Fixture Stamp' && p.fontSize && p.fontSize.value === 32);
|
|
220
|
+
expect(titles.length).toBeGreaterThan(0);
|
|
221
|
+
for (const t of titles)
|
|
222
|
+
expect(t.letterSpacing).toEqual({ value: 0.015, unit: 'em' });
|
|
223
|
+
// The pages no longer report tracking as a difference.
|
|
224
|
+
expect(report.pages.flatMap((p) => p.differences)).not.toContain('letterSpacing');
|
|
225
|
+
// An untracked look gets none.
|
|
226
|
+
expect(config.paragraphStyles.find((p) => p.id === 'fixture-sans-11').letterSpacing).toBeUndefined();
|
|
227
|
+
// Laid out, the title is set tracked in its frame.
|
|
228
|
+
const ch1 = chapters.find((c) => c.id === 'ch1');
|
|
229
|
+
const doc = buildDocument({ markdown: ch1.markdown }, config, createMeasurementCache());
|
|
230
|
+
const page = doc.pages.find((p) => p.composed);
|
|
231
|
+
const title = (page.floats ?? []).find((b) => b.type === 'paragraph' && b.lines[0]?.text === 'RIVERS AND SEAS');
|
|
232
|
+
const sizePx = (32 / 72) * doc.config.page.dpi;
|
|
233
|
+
expect(title?.letterSpacing).toBeCloseTo(0.015 * sizePx, 5);
|
|
234
|
+
});
|
|
235
|
+
it('keeps tracked and untracked texts of one look apart', () => {
|
|
236
|
+
const config = tracked();
|
|
237
|
+
const p1 = config.headingStyles.find((s) => (s.header?.elements ?? []).some((e) => e.id === 'title-p1'));
|
|
238
|
+
const el = p1.header.elements.find((e) => e.id === 'title-p1');
|
|
239
|
+
delete el.letterSpacing;
|
|
240
|
+
const out = moveTextToMarkdown({ config, chapters: PORT_CHAPTERS, metadata }).config;
|
|
241
|
+
const titles = out.paragraphStyles.filter((p) => p.fontFamily === 'Fixture Stamp' && p.fontSize.value === 32);
|
|
242
|
+
expect(titles.some((t) => t.letterSpacing === undefined)).toBe(true);
|
|
243
|
+
expect(titles.some((t) => t.letterSpacing !== undefined)).toBe(true);
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
describe('joinLines (#874)', () => {
|
|
247
|
+
it('breaks lines with a backslash, and on the same line where the next would start a list', () => {
|
|
248
|
+
expect(joinLines(['a', 'b'])).toBe('a\\\nb');
|
|
249
|
+
expect(joinLines(['1978. A year', '- next'])).toBe('1978. A year \\\\ - next');
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
describe('configDesignSlots and page templates (#874)', () => {
|
|
253
|
+
it('lists a template’s decoration, running heads and variants, so the check reads them', () => {
|
|
254
|
+
const config = {
|
|
255
|
+
pageTemplates: [{
|
|
256
|
+
id: 't',
|
|
257
|
+
decoration: { elements: [{ kind: 'text', id: 'x', content: 'A whole sentence written into the template itself.', fontSize: { value: 9, unit: 'pt' }, placement: { anchor: { to: 'page', edge: 'top-left' } } }] },
|
|
258
|
+
variants: { recto: { header: { elements: [] } } },
|
|
259
|
+
}],
|
|
260
|
+
};
|
|
261
|
+
expect(configDesignSlots(config).map((s) => [s.path, s.kind, s.owner, s.ownerId])).toEqual([
|
|
262
|
+
['pageTemplates[0].decoration', 'decoration', 'pageTemplates[0]', 't'],
|
|
263
|
+
['pageTemplates[0].variants.recto.header', 'header', 'pageTemplates[0]', 't'],
|
|
264
|
+
]);
|
|
265
|
+
expect(collectConfigWarnings(config).filter((w) => w.kind === 'contentInConfig').map((w) => w.path)).toEqual(['pageTemplates[0]']);
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
//# sourceMappingURL=textToMarkdown.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textToMarkdown.test.js","sourceRoot":"","sources":["../../../src/__tests__/migrate/textToMarkdown.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paragraphStyleLetterSpacing.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/paragraphStyleLetterSpacing.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { buildDocument } from '../pipeline';
|
|
3
|
+
import { renderToHtml } from '../html-backend';
|
|
4
|
+
import { resolveParagraphStylesConfig, stripParagraphStylesDefaults } from '../defaults/paragraphStyles';
|
|
5
|
+
import { resolveBodyTextConfig } from '../defaults/bodyText';
|
|
6
|
+
import { collectConfigWarnings } from '../configWarnings';
|
|
7
|
+
// #907: a paragraph style tracks its letters (`letterSpacing`), measured
|
|
8
|
+
// into the lines and painted as a heading level's tracking is.
|
|
9
|
+
class StubCtx {
|
|
10
|
+
font = '';
|
|
11
|
+
measureText(s) {
|
|
12
|
+
return { width: s.length * 7 };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
globalThis.OffscreenCanvas = class {
|
|
16
|
+
getContext() {
|
|
17
|
+
return new StubCtx();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const pt = (value) => ({ value, unit: 'pt' });
|
|
21
|
+
const em = (value) => ({ value, unit: 'em' });
|
|
22
|
+
// 72 dpi and a 10 pt body: 1 em = 10 px.
|
|
23
|
+
const config = (style) => ({
|
|
24
|
+
page: { width: pt(200), height: pt(400), dpi: 72, margins: { top: pt(10), bottom: pt(10), left: pt(10), right: pt(10) } },
|
|
25
|
+
layout: { layoutType: 'single' },
|
|
26
|
+
header: { elements: [] },
|
|
27
|
+
footer: { elements: [] },
|
|
28
|
+
bodyText: { fontSize: pt(10), lineHeight: pt(14), firstLineIndent: pt(0), hyphenation: { enabled: false }, avoidRunts: false },
|
|
29
|
+
paragraphStyles: [{ id: 't', textAlign: 'left', ...style }],
|
|
30
|
+
});
|
|
31
|
+
const TEXT = 'The long line of the page title runs on past the measure of the column and turns over.';
|
|
32
|
+
const build = (style, markdown = `:::paragraphs{style="t"}\n${TEXT}\n:::`) => buildDocument({ markdown }, config(style));
|
|
33
|
+
const para = (doc) => doc.blocks.find((b) => b.type === 'paragraph');
|
|
34
|
+
describe('paragraphStyles[].letterSpacing (#907)', () => {
|
|
35
|
+
it('resolves absent when unset or zero, and survives the strip when set', () => {
|
|
36
|
+
const body = resolveBodyTextConfig();
|
|
37
|
+
const [none, zero, set] = resolveParagraphStylesConfig([{ id: 'a' }, { id: 'b', letterSpacing: em(0) }, { id: 'c', letterSpacing: em(0.015) }], body);
|
|
38
|
+
expect(none.letterSpacing).toBeUndefined();
|
|
39
|
+
expect(zero.letterSpacing).toBeUndefined();
|
|
40
|
+
expect(set.letterSpacing).toEqual(em(0.015));
|
|
41
|
+
expect(stripParagraphStylesDefaults([{ id: 'b', letterSpacing: em(0) }, { id: 'c', letterSpacing: em(0.015) }])).toEqual([{ id: 'b' }, { id: 'c', letterSpacing: em(0.015) }]);
|
|
42
|
+
expect(collectConfigWarnings({ paragraphStyles: [{ id: 'c', letterSpacing: em(0.015) }] }).filter((w) => w.kind === 'unknownConfigKey')).toEqual([]);
|
|
43
|
+
});
|
|
44
|
+
it('measures the tracking into the lines and stamps it on the block', () => {
|
|
45
|
+
const plain = para(build({}));
|
|
46
|
+
const tracked = para(build({ letterSpacing: em(0.1) }));
|
|
47
|
+
expect(plain.letterSpacing).toBeUndefined();
|
|
48
|
+
// 0.1 em of a 10 px style.
|
|
49
|
+
expect(tracked.letterSpacing).toBeCloseTo(1, 5);
|
|
50
|
+
// One px after every letter: the same words take more room, so the
|
|
51
|
+
// paragraph turns over into more lines.
|
|
52
|
+
expect(tracked.lines.length).toBeGreaterThan(plain.lines.length);
|
|
53
|
+
const first = (b) => b.lines[0];
|
|
54
|
+
const perChar = (b) => first(b).bbox.width / first(b).text.length;
|
|
55
|
+
expect(perChar(tracked)).toBeGreaterThan(perChar(plain) + 0.5);
|
|
56
|
+
});
|
|
57
|
+
it('is relative to the style’s own size, and a negative value tightens', () => {
|
|
58
|
+
const big = para(build({ fontSize: pt(20), lineHeight: pt(24), letterSpacing: em(0.05) }));
|
|
59
|
+
expect(big.letterSpacing).toBeCloseTo(1, 5);
|
|
60
|
+
const tight = para(build({ letterSpacing: { value: -0.5, unit: 'pt' } }));
|
|
61
|
+
expect(tight.letterSpacing).toBeCloseTo(-0.5, 5);
|
|
62
|
+
});
|
|
63
|
+
it('keeps justified lines full: the word spaces take the slack over the tracking', () => {
|
|
64
|
+
const b = para(build({ textAlign: 'justify', letterSpacing: em(0.05) }));
|
|
65
|
+
expect(b.letterSpacing).toBeCloseTo(0.5, 5);
|
|
66
|
+
expect(b.lines.length).toBeGreaterThan(1);
|
|
67
|
+
// Each space is a 7 px glyph plus its tracking; the words and the
|
|
68
|
+
// spaces at the line's ratio fill the measure.
|
|
69
|
+
const space = 7 + 0.5;
|
|
70
|
+
for (const line of b.lines.slice(0, -1)) {
|
|
71
|
+
const spaces = line.text.trim().split(' ').length - 1;
|
|
72
|
+
const ratio = line.justifiedSpaceRatio;
|
|
73
|
+
expect(ratio).toBeGreaterThanOrEqual(0.6);
|
|
74
|
+
expect(line.bbox.width - spaces * space + spaces * space * ratio).toBeCloseTo(b.bbox.width, 3);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
it('is painted by the HTML backend', () => {
|
|
78
|
+
const html = renderToHtml(build({ letterSpacing: em(0.1) }));
|
|
79
|
+
expect(html).toMatch(/letter-spacing:1px/);
|
|
80
|
+
expect(renderToHtml(build({}))).not.toMatch(/letter-spacing:1px/);
|
|
81
|
+
});
|
|
82
|
+
it('tracks a styled paragraph inside a box', () => {
|
|
83
|
+
const cfg = config({ letterSpacing: em(0.1) });
|
|
84
|
+
const doc = buildDocument({ markdown: `:::callout\n:::paragraphs{style="t"}\n${TEXT}\n:::\n:::` }, cfg);
|
|
85
|
+
const boxed = doc.blocks.find((b) => b.type === 'paragraph' && b.containerId !== undefined);
|
|
86
|
+
expect(boxed?.letterSpacing).toBeCloseTo(1, 5);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=paragraphStyleLetterSpacing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paragraphStyleLetterSpacing.test.js","sourceRoot":"","sources":["../../src/__tests__/paragraphStyleLetterSpacing.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pictureBelowPrintSize.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/pictureBelowPrintSize.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { buildDocument } from '../pipeline';
|
|
3
|
+
import { formatWarning } from '../pipeline/contentWarnings';
|
|
4
|
+
// #901: a full-page picture in the flow is set at its column's width,
|
|
5
|
+
// and the default page has two columns. Nothing in the figure sizing caps
|
|
6
|
+
// it below that; the layout says so when a picture with a print size is
|
|
7
|
+
// held at under half of it by a column narrower than the page.
|
|
8
|
+
class StubCtx {
|
|
9
|
+
font = '';
|
|
10
|
+
measureText(s) {
|
|
11
|
+
return { width: s.length * 7 };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
globalThis.OffscreenCanvas = class {
|
|
15
|
+
getContext() {
|
|
16
|
+
return new StubCtx();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const mm = (value) => ({ value, unit: 'mm' });
|
|
20
|
+
const DPI = 300;
|
|
21
|
+
const px = (v) => (v / 25.4) * DPI;
|
|
22
|
+
/** The map of the issue: 1066 × 929 px at 200 ppi (135.4 × 118 mm), on a
|
|
23
|
+
* 135.2 × 127.8 mm page with no margins. */
|
|
24
|
+
const map = (bitmap = { resolution: 200 }, placement = { position: 'here', width: 1 }) => ({
|
|
25
|
+
id: 'mapa', typeId: 'mapa', kind: 'bitmap', caption: '', createdAt: 0, updatedAt: 0,
|
|
26
|
+
bitmap: { fileId: 'mapa.png', format: 'png', width: 1066, height: 929, ...bitmap },
|
|
27
|
+
placement,
|
|
28
|
+
});
|
|
29
|
+
const config = (extra = {}) => ({
|
|
30
|
+
page: { width: mm(135.2), height: mm(127.8), dpi: DPI, margins: { top: mm(0), bottom: mm(0), left: mm(0), right: mm(0) } },
|
|
31
|
+
header: { elements: [] },
|
|
32
|
+
footer: { elements: [] },
|
|
33
|
+
resourceTypes: [{ id: 'mapa', name: 'Mapa', shortLabel: 'Mapa', numberingTemplate: '', resetOn: 'never', counterFormat: 'decimal', captionPrefix: '', defaultPlacement: { position: 'here' } }],
|
|
34
|
+
...extra,
|
|
35
|
+
});
|
|
36
|
+
const build = (resource, extra) => buildDocument({ markdown: '::resource{id="mapa"}', resources: [resource] }, config(extra));
|
|
37
|
+
const warnings = (doc) => (doc.contentWarnings ?? []).filter((w) => w.kind === 'pictureBelowPrintSize');
|
|
38
|
+
const body = (doc) => [...doc.pages[0].columns.flatMap((c) => c.blocks), ...(doc.pages[0].floats ?? [])].find((b) => b.resourceBlock).resourceBlock.bodyRect;
|
|
39
|
+
describe('a full-page picture in the flow (#901)', () => {
|
|
40
|
+
it('fills its column, which on the default two-column page is under half the page', () => {
|
|
41
|
+
const doc = build(map());
|
|
42
|
+
const col = doc.pages[0].columns[0].bbox.width;
|
|
43
|
+
expect(doc.pages[0].columns.length).toBe(2);
|
|
44
|
+
expect(body(doc).width).toBeCloseTo(col, 3);
|
|
45
|
+
expect(body(doc).width / px(135.2)).toBeCloseTo(0.472, 2);
|
|
46
|
+
});
|
|
47
|
+
it('says so, with the sizes and the way out', () => {
|
|
48
|
+
const doc = build(map());
|
|
49
|
+
const [w] = warnings(doc);
|
|
50
|
+
expect(w).toMatchObject({ resourceId: 'mapa', pageIndex: 0 });
|
|
51
|
+
expect(w.scale).toBeCloseTo(0.472, 2);
|
|
52
|
+
expect(w.printWidthPx).toBe(Math.round((1066 * DPI) / 200));
|
|
53
|
+
expect(w.pageWidthPx).toBe(Math.round(px(135.2)));
|
|
54
|
+
expect(w.sourceStart).toBe(0);
|
|
55
|
+
const text = formatWarning(w);
|
|
56
|
+
expect(text).toContain('47 % of its print size');
|
|
57
|
+
expect(text).toContain("layout.layoutType: 'single'");
|
|
58
|
+
expect(text).toContain("placement.span: 'page'");
|
|
59
|
+
});
|
|
60
|
+
it('sets it at the page’s width in one column, and is quiet', () => {
|
|
61
|
+
const doc = build(map(), { layout: { layoutType: 'single' } });
|
|
62
|
+
expect(body(doc).width).toBeCloseTo(px(135.2), 3);
|
|
63
|
+
expect(warnings(doc)).toEqual([]);
|
|
64
|
+
});
|
|
65
|
+
it('takes a number in layout.bitmapResolution as a print size, not a resolution read from the file', () => {
|
|
66
|
+
expect(warnings(build(map({}), { layout: { bitmapResolution: 200 } }))).toHaveLength(1);
|
|
67
|
+
expect(warnings(build(map({ fileResolution: 200 }), { layout: { bitmapResolution: 'file' } }))).toEqual([]);
|
|
68
|
+
// No print size at all: its pixels at the page's dpi.
|
|
69
|
+
expect(warnings(build(map({})))).toEqual([]);
|
|
70
|
+
});
|
|
71
|
+
it('leaves a picture narrowed on purpose alone, and one its column holds at half its size or more', () => {
|
|
72
|
+
expect(warnings(build(map({ resolution: 200 }, { position: 'here', width: 0.8 })))).toEqual([]);
|
|
73
|
+
// 1066 px at 400 ppi: 67.7 mm, a little wider than the 63.9 mm column.
|
|
74
|
+
expect(warnings(build(map({ resolution: 400 })))).toEqual([]);
|
|
75
|
+
});
|
|
76
|
+
it('says nothing of a picture spanning the page as a float', () => {
|
|
77
|
+
const doc = build(map({ resolution: 200 }, { position: 'top', span: 'page' }));
|
|
78
|
+
expect(body(doc).width).toBeCloseTo(px(135.2), 3);
|
|
79
|
+
expect(warnings(doc)).toEqual([]);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=pictureBelowPrintSize.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pictureBelowPrintSize.test.js","sourceRoot":"","sources":["../../src/__tests__/pictureBelowPrintSize.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,7 @@ describe('unknown paragraph style keys (EF-173)', () => {
|
|
|
113
113
|
textAlign: 'left', boldColor: { hex: '#000000', model: 'hex' }, italicColor: { hex: '#000000', model: 'hex' },
|
|
114
114
|
fontWeight: 400, boldFontWeight: 700, italic: false, smallCaps: false, hyphenation: false, indent: pt(0), endIndent: pt(9),
|
|
115
115
|
firstLineIndent: pt(0), hangingIndent: pt(0), spaceBetween: pt(0), marginTop: pt(0), marginBottom: pt(0),
|
|
116
|
-
snapToGrid: true, containerSpacing: 'add', textTransform: 'none', wordBreak: 'keep-all', lineNumbers: true,
|
|
116
|
+
snapToGrid: true, containerSpacing: 'add', textTransform: 'none', letterSpacing: { value: 0.015, unit: 'em' }, wordBreak: 'keep-all', lineNumbers: true,
|
|
117
117
|
tabStops: [{ position: { value: 30, unit: 'mm' }, align: 'end', leader: '.', leaderGap: pt(2), decimalChar: ',' }], tabInterval: pt(36),
|
|
118
118
|
dropCap: {
|
|
119
119
|
lines: 3, sink: 2, characters: 1, fontFamily: 'Inter', fontWeight: 700, italic: false, fontSize: pt(30),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraphStyleFaces.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/paragraphStyleFaces.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"paragraphStyleFaces.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/paragraphStyleFaces.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qEAAqE;AACrE,MAAM,OAAO;IACX,IAAI,GAAG,EAAE,CAAC;IACV,WAAW,CAAC,CAAS;QACnB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACjC,CAAC;CACF;AACA,UAAsD,CAAC,eAAe,GAAG;IACxE,UAAU;QACR,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;CACF,CAAC;AAEF,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;AAC/D,MAAM,MAAM,GAAG,CAAC,KAAoC,EAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IAChC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC3C,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC;CACjD,CAAC,CAAC;AACH,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,GAAkB,EAAe,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC9H,MAAM,MAAM,GAAG,CAAC,GAAgB,EAAE,KAAa,EAAY,EAAE,CAC3D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAE,CAAC;AAEpH,kDAAkD;AAClD,MAAM,KAAK,GAAG,4GAA4G,CAAC;AAE3H,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,uCAAuC;QACvC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACrC,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1H,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACrI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;QAC3G,MAAM,EAAE,GAAG,wFAAwF,GAAG,KAAK,CAAC;QAC5G,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACjH,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,mEAAmE;QACnE,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC/E,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvG,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,iDAAiD;QACjD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,sEAAsE;QACtE,iDAAiD;QACjD,MAAM,KAAK,GAAG;YACZ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAgB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YACrH,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;SACjD,CAAC;QACF,MAAM,EAAE,GAAG,2HAA2H,CAAC;QACvI,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAClI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,KAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAE,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,yDAAyD;QACzD,MAAM,aAAa,GAAG,KAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAE,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAiC,CAAC,CAAC;QAC5G,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAA8B,CAAC;QAC1I,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;YACtF,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;YAChG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE;SACtI,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAA8B,CAAC;QAC1H,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,KAAK,GAAmC;YAC5C,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;YACrH,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7G,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1H,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YACxG,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI;YACvJ,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;YACvI,OAAO,EAAE;gBACP,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvG,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;gBAC9G,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;aACxD;SACF,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -6,13 +6,16 @@
|
|
|
6
6
|
* (#861) all of it is clipped to the page's share of the sheet.
|
|
7
7
|
*/
|
|
8
8
|
import type { VDTDesignSlot, VDTPage } from '../vdt';
|
|
9
|
+
import { type ComposedPaintPart } from '../composed/paint';
|
|
9
10
|
/**
|
|
10
11
|
* Paint the frames of `page.composed` in their paint order. With
|
|
11
12
|
* `decoration` the template's decoration is painted between the layers
|
|
12
13
|
* below 0 and the rest; without it (a page painted through a flow frame,
|
|
13
|
-
* whose decoration stands on the sheet) it is left to the caller
|
|
14
|
+
* whose decoration stands on the sheet) it is left to the caller, who
|
|
15
|
+
* paints the frames under it (`part: 'below'`) and over it (`'above'`)
|
|
16
|
+
* in two calls.
|
|
14
17
|
*/
|
|
15
|
-
export declare function renderComposedFrames(ctx: CanvasRenderingContext2D, page: VDTPage, inkHex: string | null, decoration: VDTDesignSlot | undefined): void;
|
|
18
|
+
export declare function renderComposedFrames(ctx: CanvasRenderingContext2D, page: VDTPage, inkHex: string | null, decoration: VDTDesignSlot | undefined, part?: ComposedPaintPart): void;
|
|
16
19
|
/** A composed page's decoration painted on the sheet (a page painted
|
|
17
20
|
* through a flow frame), clipped to its share of a spread's sheet. */
|
|
18
21
|
export declare function renderComposedDecoration(ctx: CanvasRenderingContext2D, page: VDTPage, inkHex: string | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composed.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/composed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"composed.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/composed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAoF,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK7I;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,EAAE,aAAa,GAAG,SAAS,EACrC,IAAI,CAAC,EAAE,iBAAiB,GACvB,IAAI,CAmCN;AAED;uEACuE;AACvE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAclH"}
|