postext 0.1.10 → 0.1.12
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__/exports.test.js +5 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/canvas-backend.d.ts.map +1 -1
- package/dist/canvas-backend.js +30 -2
- package/dist/canvas-backend.js.map +1 -1
- package/dist/defaults/bodyText.d.ts +7 -0
- package/dist/defaults/bodyText.d.ts.map +1 -0
- package/dist/defaults/bodyText.js +120 -0
- package/dist/defaults/bodyText.js.map +1 -0
- package/dist/defaults/debug.d.ts +5 -0
- package/dist/defaults/debug.d.ts.map +1 -0
- package/dist/defaults/debug.js +78 -0
- package/dist/defaults/debug.js.map +1 -0
- package/dist/defaults/headings.d.ts +5 -0
- package/dist/defaults/headings.d.ts.map +1 -0
- package/dist/defaults/headings.js +142 -0
- package/dist/defaults/headings.js.map +1 -0
- package/dist/defaults/index.d.ts +11 -0
- package/dist/defaults/index.d.ts.map +1 -0
- package/dist/defaults/index.js +69 -0
- package/dist/defaults/index.js.map +1 -0
- package/dist/defaults/layout.d.ts +16 -0
- package/dist/defaults/layout.d.ts.map +1 -0
- package/dist/defaults/layout.js +68 -0
- package/dist/defaults/layout.js.map +1 -0
- package/dist/defaults/lists-shared.d.ts +15 -0
- package/dist/defaults/lists-shared.d.ts.map +1 -0
- package/dist/defaults/lists-shared.js +14 -0
- package/dist/defaults/lists-shared.js.map +1 -0
- package/dist/defaults/orderedLists.d.ts +18 -0
- package/dist/defaults/orderedLists.d.ts.map +1 -0
- package/dist/defaults/orderedLists.js +174 -0
- package/dist/defaults/orderedLists.js.map +1 -0
- package/dist/defaults/page.d.ts +32 -0
- package/dist/defaults/page.d.ts.map +1 -0
- package/dist/defaults/page.js +147 -0
- package/dist/defaults/page.js.map +1 -0
- package/dist/defaults/shared.d.ts +7 -0
- package/dist/defaults/shared.d.ts.map +1 -0
- package/dist/defaults/shared.js +97 -0
- package/dist/defaults/shared.js.map +1 -0
- package/dist/defaults/unorderedLists.d.ts +21 -0
- package/dist/defaults/unorderedLists.d.ts.map +1 -0
- package/dist/defaults/unorderedLists.js +188 -0
- package/dist/defaults/unorderedLists.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/measure.d.ts.map +1 -1
- package/dist/measure.js +112 -12
- package/dist/measure.js.map +1 -1
- package/dist/parse.d.ts +7 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +53 -17
- package/dist/parse.js.map +1 -1
- package/dist/pipeline/build.d.ts +4 -0
- package/dist/pipeline/build.d.ts.map +1 -0
- package/dist/{pipeline.js → pipeline/build.js} +52 -246
- package/dist/pipeline/build.js.map +1 -0
- package/dist/pipeline/config.d.ts +6 -0
- package/dist/pipeline/config.d.ts.map +1 -0
- package/dist/pipeline/config.js +48 -0
- package/dist/pipeline/config.js.map +1 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +2 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/lists.d.ts +54 -0
- package/dist/pipeline/lists.d.ts.map +1 -0
- package/dist/pipeline/lists.js +298 -0
- package/dist/pipeline/lists.js.map +1 -0
- package/dist/pipeline/placement.d.ts +11 -0
- package/dist/pipeline/placement.d.ts.map +1 -0
- package/dist/pipeline/placement.js +48 -0
- package/dist/pipeline/placement.js.map +1 -0
- package/dist/pipeline/styles.d.ts +23 -0
- package/dist/pipeline/styles.d.ts.map +1 -0
- package/dist/pipeline/styles.js +62 -0
- package/dist/pipeline/styles.js.map +1 -0
- package/dist/types.d.ts +103 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +11 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +2 -2
- package/dist/defaults.d.ts +0 -76
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -719
- package/dist/defaults.js.map +0 -1
- package/dist/pipeline.d.ts +0 -4
- package/dist/pipeline.d.ts.map +0 -1
- package/dist/pipeline.js.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export function dimensionsEqual(a, b) {
|
|
2
|
+
return a.value === b.value && a.unit === b.unit;
|
|
3
|
+
}
|
|
4
|
+
export function colorsEqual(a, b) {
|
|
5
|
+
return a.hex === b.hex && a.model === b.model && a.paletteId === b.paletteId;
|
|
6
|
+
}
|
|
7
|
+
export function resolveColorValue(value, palette, fallback) {
|
|
8
|
+
if (!value)
|
|
9
|
+
return fallback;
|
|
10
|
+
if (value.paletteId) {
|
|
11
|
+
const entry = palette?.find((e) => e.id === value.paletteId);
|
|
12
|
+
if (entry)
|
|
13
|
+
return { hex: entry.value.hex, model: entry.value.model, paletteId: value.paletteId };
|
|
14
|
+
return { hex: value.hex, model: value.model };
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
export function resolveColor(value, palette) {
|
|
19
|
+
if (!value || !value.paletteId)
|
|
20
|
+
return value;
|
|
21
|
+
const entry = palette?.find((e) => e.id === value.paletteId);
|
|
22
|
+
if (!entry)
|
|
23
|
+
return { hex: value.hex, model: value.model };
|
|
24
|
+
return { hex: entry.value.hex, model: entry.value.model };
|
|
25
|
+
}
|
|
26
|
+
export function applyPaletteToConfig(config) {
|
|
27
|
+
if (!config)
|
|
28
|
+
return config;
|
|
29
|
+
const palette = config.colorPalette;
|
|
30
|
+
if (!palette || palette.length === 0)
|
|
31
|
+
return config;
|
|
32
|
+
const next = { ...config };
|
|
33
|
+
if (config.page) {
|
|
34
|
+
next.page = {
|
|
35
|
+
...config.page,
|
|
36
|
+
backgroundColor: resolveColor(config.page.backgroundColor, palette),
|
|
37
|
+
cutLines: config.page.cutLines
|
|
38
|
+
? { ...config.page.cutLines, color: resolveColor(config.page.cutLines.color, palette) }
|
|
39
|
+
: config.page.cutLines,
|
|
40
|
+
baselineGrid: config.page.baselineGrid
|
|
41
|
+
? { ...config.page.baselineGrid, color: resolveColor(config.page.baselineGrid.color, palette) }
|
|
42
|
+
: config.page.baselineGrid,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (config.layout?.columnRule) {
|
|
46
|
+
next.layout = {
|
|
47
|
+
...config.layout,
|
|
48
|
+
columnRule: { ...config.layout.columnRule, color: resolveColor(config.layout.columnRule.color, palette) },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (config.bodyText) {
|
|
52
|
+
next.bodyText = {
|
|
53
|
+
...config.bodyText,
|
|
54
|
+
color: resolveColor(config.bodyText.color, palette),
|
|
55
|
+
boldColor: resolveColor(config.bodyText.boldColor, palette),
|
|
56
|
+
italicColor: resolveColor(config.bodyText.italicColor, palette),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (config.headings) {
|
|
60
|
+
next.headings = {
|
|
61
|
+
...config.headings,
|
|
62
|
+
color: resolveColor(config.headings.color, palette),
|
|
63
|
+
levels: config.headings.levels?.map((l) => ({ ...l, color: resolveColor(l.color, palette) })),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (config.unorderedLists) {
|
|
67
|
+
next.unorderedLists = {
|
|
68
|
+
...config.unorderedLists,
|
|
69
|
+
color: resolveColor(config.unorderedLists.color, palette),
|
|
70
|
+
taskCompletedColor: resolveColor(config.unorderedLists.taskCompletedColor, palette),
|
|
71
|
+
levels: config.unorderedLists.levels?.map((l) => ({ ...l, color: resolveColor(l.color, palette) })),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (config.orderedLists) {
|
|
75
|
+
next.orderedLists = {
|
|
76
|
+
...config.orderedLists,
|
|
77
|
+
color: resolveColor(config.orderedLists.color, palette),
|
|
78
|
+
levels: config.orderedLists.levels?.map((l) => ({ ...l, color: resolveColor(l.color, palette) })),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (config.debug) {
|
|
82
|
+
next.debug = {
|
|
83
|
+
...config.debug,
|
|
84
|
+
cursorSync: config.debug.cursorSync
|
|
85
|
+
? { ...config.debug.cursorSync, color: resolveColor(config.debug.cursorSync.color, palette) }
|
|
86
|
+
: config.debug.cursorSync,
|
|
87
|
+
selectionSync: config.debug.selectionSync
|
|
88
|
+
? { ...config.debug.selectionSync, color: resolveColor(config.debug.selectionSync.color, palette) }
|
|
89
|
+
: config.debug.selectionSync,
|
|
90
|
+
looseLineHighlight: config.debug.looseLineHighlight
|
|
91
|
+
? { ...config.debug.looseLineHighlight, color: resolveColor(config.debug.looseLineHighlight.color, palette) }
|
|
92
|
+
: config.debug.looseLineHighlight,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return next;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/defaults/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ResolvedBodyTextConfig, UnorderedListsConfig, ResolvedUnorderedListsConfig } from '../types';
|
|
2
|
+
export declare function resolveUnorderedListsConfig(partial: UnorderedListsConfig | undefined, bodyText: ResolvedBodyTextConfig): ResolvedUnorderedListsConfig;
|
|
3
|
+
/** Default values for fields that have a fixed (non-inherited) default. */
|
|
4
|
+
export declare const DEFAULT_UNORDERED_LISTS_STATIC: {
|
|
5
|
+
fontWeight: number;
|
|
6
|
+
italic: boolean;
|
|
7
|
+
bulletChar: string;
|
|
8
|
+
bulletFontSize: import("..").Dimension;
|
|
9
|
+
gap: import("..").Dimension;
|
|
10
|
+
indent: import("..").Dimension;
|
|
11
|
+
bulletVerticalOffset: import("..").Dimension;
|
|
12
|
+
marginTop: import("..").Dimension;
|
|
13
|
+
marginBottom: import("..").Dimension;
|
|
14
|
+
itemSpacing: import("..").Dimension;
|
|
15
|
+
hangingIndent: boolean;
|
|
16
|
+
taskCheckboxChar: string;
|
|
17
|
+
taskCheckedChar: string;
|
|
18
|
+
taskCompletedStrikethrough: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare function stripUnorderedListsDefaults(lists?: UnorderedListsConfig): UnorderedListsConfig | undefined;
|
|
21
|
+
//# sourceMappingURL=unorderedLists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unorderedLists.d.ts","sourceRoot":"","sources":["../../src/defaults/unorderedLists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAA4B,4BAA4B,EAAoC,MAAM,UAAU,CAAC;AAkBvK,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,QAAQ,EAAE,sBAAsB,GAC/B,4BAA4B,CAiD9B;AAED,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;CAe1C,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,EAAE,oBAAoB,GAC3B,oBAAoB,GAAG,SAAS,CA2HlC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { dimensionsEqual } from './shared';
|
|
2
|
+
import { DEFAULT_LIST_BULLET_CHAR, DEFAULT_LIST_FONT_WEIGHT, DEFAULT_LIST_BULLET_FONT_SIZE, DEFAULT_LIST_GAP, DEFAULT_LIST_INDENT, DEFAULT_LIST_VERTICAL_OFFSET, DEFAULT_LIST_MARGIN_TOP, DEFAULT_LIST_MARGIN_BOTTOM, DEFAULT_LIST_ITEM_SPACING, DEFAULT_LIST_HANGING_INDENT, DEFAULT_TASK_CHECKBOX_CHAR, DEFAULT_TASK_CHECKED_CHAR, DEFAULT_TASK_COMPLETED_STRIKETHROUGH, } from './lists-shared';
|
|
3
|
+
export function resolveUnorderedListsConfig(partial, bodyText) {
|
|
4
|
+
const generalFont = partial?.fontFamily ?? bodyText.fontFamily;
|
|
5
|
+
const generalColor = partial?.color ?? bodyText.color;
|
|
6
|
+
const generalFontWeight = partial?.fontWeight ?? DEFAULT_LIST_FONT_WEIGHT;
|
|
7
|
+
const generalItalic = partial?.italic ?? false;
|
|
8
|
+
const generalBulletChar = partial?.bulletChar ?? DEFAULT_LIST_BULLET_CHAR;
|
|
9
|
+
const generalFontSize = partial?.bulletFontSize ?? DEFAULT_LIST_BULLET_FONT_SIZE;
|
|
10
|
+
const generalIndent = partial?.indent ?? DEFAULT_LIST_INDENT;
|
|
11
|
+
const generalVerticalOffset = partial?.bulletVerticalOffset ?? DEFAULT_LIST_VERTICAL_OFFSET;
|
|
12
|
+
const levels = [1, 2, 3, 4, 5].map((level) => {
|
|
13
|
+
const override = partial?.levels?.find((l) => l.level === level);
|
|
14
|
+
return {
|
|
15
|
+
level,
|
|
16
|
+
bulletChar: override?.bulletChar ?? generalBulletChar,
|
|
17
|
+
fontFamily: override?.fontFamily ?? generalFont,
|
|
18
|
+
fontSize: override?.fontSize ?? generalFontSize,
|
|
19
|
+
color: override?.color ?? generalColor,
|
|
20
|
+
fontWeight: override?.fontWeight ?? generalFontWeight,
|
|
21
|
+
italic: override?.italic ?? generalItalic,
|
|
22
|
+
indent: override?.indent,
|
|
23
|
+
verticalOffset: override?.verticalOffset ?? generalVerticalOffset,
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const resolved = {
|
|
27
|
+
fontFamily: generalFont,
|
|
28
|
+
color: generalColor,
|
|
29
|
+
fontWeight: generalFontWeight,
|
|
30
|
+
italic: generalItalic,
|
|
31
|
+
bulletChar: generalBulletChar,
|
|
32
|
+
bulletFontSize: generalFontSize,
|
|
33
|
+
gap: partial?.gap ?? DEFAULT_LIST_GAP,
|
|
34
|
+
indent: generalIndent,
|
|
35
|
+
bulletVerticalOffset: generalVerticalOffset,
|
|
36
|
+
marginTop: partial?.marginTop ?? DEFAULT_LIST_MARGIN_TOP,
|
|
37
|
+
marginBottom: partial?.marginBottom ?? DEFAULT_LIST_MARGIN_BOTTOM,
|
|
38
|
+
itemSpacing: partial?.itemSpacing ?? DEFAULT_LIST_ITEM_SPACING,
|
|
39
|
+
hangingIndent: partial?.hangingIndent ?? DEFAULT_LIST_HANGING_INDENT,
|
|
40
|
+
levels,
|
|
41
|
+
taskCheckboxChar: partial?.taskCheckboxChar ?? DEFAULT_TASK_CHECKBOX_CHAR,
|
|
42
|
+
taskCheckedChar: partial?.taskCheckedChar ?? DEFAULT_TASK_CHECKED_CHAR,
|
|
43
|
+
taskCompletedStrikethrough: partial?.taskCompletedStrikethrough ?? DEFAULT_TASK_COMPLETED_STRIKETHROUGH,
|
|
44
|
+
};
|
|
45
|
+
if (partial?.taskCompletedColor !== undefined) {
|
|
46
|
+
resolved.taskCompletedColor = partial.taskCompletedColor;
|
|
47
|
+
}
|
|
48
|
+
return resolved;
|
|
49
|
+
}
|
|
50
|
+
/** Default values for fields that have a fixed (non-inherited) default. */
|
|
51
|
+
export const DEFAULT_UNORDERED_LISTS_STATIC = {
|
|
52
|
+
fontWeight: DEFAULT_LIST_FONT_WEIGHT,
|
|
53
|
+
italic: false,
|
|
54
|
+
bulletChar: DEFAULT_LIST_BULLET_CHAR,
|
|
55
|
+
bulletFontSize: DEFAULT_LIST_BULLET_FONT_SIZE,
|
|
56
|
+
gap: DEFAULT_LIST_GAP,
|
|
57
|
+
indent: DEFAULT_LIST_INDENT,
|
|
58
|
+
bulletVerticalOffset: DEFAULT_LIST_VERTICAL_OFFSET,
|
|
59
|
+
marginTop: DEFAULT_LIST_MARGIN_TOP,
|
|
60
|
+
marginBottom: DEFAULT_LIST_MARGIN_BOTTOM,
|
|
61
|
+
itemSpacing: DEFAULT_LIST_ITEM_SPACING,
|
|
62
|
+
hangingIndent: DEFAULT_LIST_HANGING_INDENT,
|
|
63
|
+
taskCheckboxChar: DEFAULT_TASK_CHECKBOX_CHAR,
|
|
64
|
+
taskCheckedChar: DEFAULT_TASK_CHECKED_CHAR,
|
|
65
|
+
taskCompletedStrikethrough: DEFAULT_TASK_COMPLETED_STRIKETHROUGH,
|
|
66
|
+
};
|
|
67
|
+
export function stripUnorderedListsDefaults(lists) {
|
|
68
|
+
if (!lists)
|
|
69
|
+
return undefined;
|
|
70
|
+
const result = {};
|
|
71
|
+
let hasOverride = false;
|
|
72
|
+
if (lists.fontFamily !== undefined) {
|
|
73
|
+
result.fontFamily = lists.fontFamily;
|
|
74
|
+
hasOverride = true;
|
|
75
|
+
}
|
|
76
|
+
if (lists.color !== undefined) {
|
|
77
|
+
result.color = lists.color;
|
|
78
|
+
hasOverride = true;
|
|
79
|
+
}
|
|
80
|
+
if (lists.fontWeight !== undefined && lists.fontWeight !== DEFAULT_LIST_FONT_WEIGHT) {
|
|
81
|
+
result.fontWeight = lists.fontWeight;
|
|
82
|
+
hasOverride = true;
|
|
83
|
+
}
|
|
84
|
+
if (lists.italic !== undefined && lists.italic !== false) {
|
|
85
|
+
result.italic = lists.italic;
|
|
86
|
+
hasOverride = true;
|
|
87
|
+
}
|
|
88
|
+
if (lists.bulletChar !== undefined && lists.bulletChar !== DEFAULT_LIST_BULLET_CHAR) {
|
|
89
|
+
result.bulletChar = lists.bulletChar;
|
|
90
|
+
hasOverride = true;
|
|
91
|
+
}
|
|
92
|
+
if (lists.bulletFontSize !== undefined && !dimensionsEqual(lists.bulletFontSize, DEFAULT_LIST_BULLET_FONT_SIZE)) {
|
|
93
|
+
result.bulletFontSize = lists.bulletFontSize;
|
|
94
|
+
hasOverride = true;
|
|
95
|
+
}
|
|
96
|
+
if (lists.gap !== undefined && !dimensionsEqual(lists.gap, DEFAULT_LIST_GAP)) {
|
|
97
|
+
result.gap = lists.gap;
|
|
98
|
+
hasOverride = true;
|
|
99
|
+
}
|
|
100
|
+
if (lists.indent !== undefined && !dimensionsEqual(lists.indent, DEFAULT_LIST_INDENT)) {
|
|
101
|
+
result.indent = lists.indent;
|
|
102
|
+
hasOverride = true;
|
|
103
|
+
}
|
|
104
|
+
if (lists.bulletVerticalOffset !== undefined && !dimensionsEqual(lists.bulletVerticalOffset, DEFAULT_LIST_VERTICAL_OFFSET)) {
|
|
105
|
+
result.bulletVerticalOffset = lists.bulletVerticalOffset;
|
|
106
|
+
hasOverride = true;
|
|
107
|
+
}
|
|
108
|
+
if (lists.marginTop !== undefined && !dimensionsEqual(lists.marginTop, DEFAULT_LIST_MARGIN_TOP)) {
|
|
109
|
+
result.marginTop = lists.marginTop;
|
|
110
|
+
hasOverride = true;
|
|
111
|
+
}
|
|
112
|
+
if (lists.marginBottom !== undefined && !dimensionsEqual(lists.marginBottom, DEFAULT_LIST_MARGIN_BOTTOM)) {
|
|
113
|
+
result.marginBottom = lists.marginBottom;
|
|
114
|
+
hasOverride = true;
|
|
115
|
+
}
|
|
116
|
+
if (lists.itemSpacing !== undefined && !dimensionsEqual(lists.itemSpacing, DEFAULT_LIST_ITEM_SPACING)) {
|
|
117
|
+
result.itemSpacing = lists.itemSpacing;
|
|
118
|
+
hasOverride = true;
|
|
119
|
+
}
|
|
120
|
+
if (lists.hangingIndent !== undefined && lists.hangingIndent !== DEFAULT_LIST_HANGING_INDENT) {
|
|
121
|
+
result.hangingIndent = lists.hangingIndent;
|
|
122
|
+
hasOverride = true;
|
|
123
|
+
}
|
|
124
|
+
if (lists.levels && lists.levels.length > 0) {
|
|
125
|
+
const strippedLevels = [];
|
|
126
|
+
for (const lvl of lists.levels) {
|
|
127
|
+
const entry = { level: lvl.level };
|
|
128
|
+
let levelHasOverride = false;
|
|
129
|
+
if (lvl.bulletChar !== undefined) {
|
|
130
|
+
entry.bulletChar = lvl.bulletChar;
|
|
131
|
+
levelHasOverride = true;
|
|
132
|
+
}
|
|
133
|
+
if (lvl.fontFamily !== undefined) {
|
|
134
|
+
entry.fontFamily = lvl.fontFamily;
|
|
135
|
+
levelHasOverride = true;
|
|
136
|
+
}
|
|
137
|
+
if (lvl.fontSize !== undefined) {
|
|
138
|
+
entry.fontSize = lvl.fontSize;
|
|
139
|
+
levelHasOverride = true;
|
|
140
|
+
}
|
|
141
|
+
if (lvl.color !== undefined) {
|
|
142
|
+
entry.color = lvl.color;
|
|
143
|
+
levelHasOverride = true;
|
|
144
|
+
}
|
|
145
|
+
if (lvl.fontWeight !== undefined) {
|
|
146
|
+
entry.fontWeight = lvl.fontWeight;
|
|
147
|
+
levelHasOverride = true;
|
|
148
|
+
}
|
|
149
|
+
if (lvl.italic !== undefined) {
|
|
150
|
+
entry.italic = lvl.italic;
|
|
151
|
+
levelHasOverride = true;
|
|
152
|
+
}
|
|
153
|
+
if (lvl.indent !== undefined) {
|
|
154
|
+
entry.indent = lvl.indent;
|
|
155
|
+
levelHasOverride = true;
|
|
156
|
+
}
|
|
157
|
+
if (lvl.verticalOffset !== undefined) {
|
|
158
|
+
entry.verticalOffset = lvl.verticalOffset;
|
|
159
|
+
levelHasOverride = true;
|
|
160
|
+
}
|
|
161
|
+
if (levelHasOverride)
|
|
162
|
+
strippedLevels.push(entry);
|
|
163
|
+
}
|
|
164
|
+
if (strippedLevels.length > 0) {
|
|
165
|
+
result.levels = strippedLevels;
|
|
166
|
+
hasOverride = true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (lists.taskCheckboxChar !== undefined && lists.taskCheckboxChar !== DEFAULT_TASK_CHECKBOX_CHAR) {
|
|
170
|
+
result.taskCheckboxChar = lists.taskCheckboxChar;
|
|
171
|
+
hasOverride = true;
|
|
172
|
+
}
|
|
173
|
+
if (lists.taskCheckedChar !== undefined && lists.taskCheckedChar !== DEFAULT_TASK_CHECKED_CHAR) {
|
|
174
|
+
result.taskCheckedChar = lists.taskCheckedChar;
|
|
175
|
+
hasOverride = true;
|
|
176
|
+
}
|
|
177
|
+
if (lists.taskCompletedStrikethrough !== undefined &&
|
|
178
|
+
lists.taskCompletedStrikethrough !== DEFAULT_TASK_COMPLETED_STRIKETHROUGH) {
|
|
179
|
+
result.taskCompletedStrikethrough = lists.taskCompletedStrikethrough;
|
|
180
|
+
hasOverride = true;
|
|
181
|
+
}
|
|
182
|
+
if (lists.taskCompletedColor !== undefined) {
|
|
183
|
+
result.taskCompletedColor = lists.taskCompletedColor;
|
|
184
|
+
hasOverride = true;
|
|
185
|
+
}
|
|
186
|
+
return hasOverride ? result : undefined;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=unorderedLists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unorderedLists.js","sourceRoot":"","sources":["../../src/defaults/unorderedLists.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export { hyphenateText, setHyphenationLocale } from './hyphenate';
|
|
|
8
8
|
export { parseMarkdown } from './parse';
|
|
9
9
|
export { extractFrontmatter } from './frontmatter';
|
|
10
10
|
export type { ParsedFrontmatter } from './frontmatter';
|
|
11
|
-
export { DEFAULT_PAGE_CONFIG, DEFAULT_CUT_LINES, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, DEFAULT_UNORDERED_LISTS_STATIC, resolveUnorderedListsConfig, stripUnorderedListsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults, DEFAULT_DEBUG_CONFIG, resolveDebugConfig, stripDebugDefaults } from './defaults';
|
|
12
|
-
export type { PostextContent, DocumentMetadata, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, ColorModel, ColorValue, DimensionUnit, Dimension, PageSizePreset, PageMargins, BaselineGridConfig, CutLinesConfig, PageConfig, ResolvedPageConfig, LayoutType, ColumnRuleConfig, LayoutConfig, ResolvedLayoutConfig, TextAlign, HyphenationLocale, HyphenationConfig, ResolvedHyphenationConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingLevelConfig, ResolvedHeadingLevelConfig, HeadingsConfig, ResolvedHeadingsConfig, UnorderedListLevelConfig, ResolvedUnorderedListLevelConfig, UnorderedListsConfig, ResolvedUnorderedListsConfig, SyncIndicatorConfig, DebugConfig, ResolvedDebugConfig, } from './types';
|
|
11
|
+
export { DEFAULT_PAGE_CONFIG, DEFAULT_CUT_LINES, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, DEFAULT_UNORDERED_LISTS_STATIC, resolveUnorderedListsConfig, stripUnorderedListsDefaults, DEFAULT_ORDERED_LISTS_STATIC, resolveOrderedListsConfig, stripOrderedListsDefaults, dimensionsEqual, colorsEqual, resolveColorValue, applyPaletteToConfig, stripPageDefaults, stripConfigDefaults, DEFAULT_DEBUG_CONFIG, resolveDebugConfig, stripDebugDefaults } from './defaults';
|
|
12
|
+
export type { PostextContent, DocumentMetadata, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, ColorModel, ColorValue, ColorPaletteEntry, DimensionUnit, Dimension, PageSizePreset, PageMargins, BaselineGridConfig, CutLinesConfig, PageConfig, ResolvedPageConfig, LayoutType, ColumnRuleConfig, LayoutConfig, ResolvedLayoutConfig, TextAlign, HyphenationLocale, HyphenationConfig, ResolvedHyphenationConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingLevelConfig, ResolvedHeadingLevelConfig, HeadingsConfig, ResolvedHeadingsConfig, UnorderedListLevelConfig, ResolvedUnorderedListLevelConfig, UnorderedListsConfig, ResolvedUnorderedListsConfig, OrderedListLevelConfig, ResolvedOrderedListLevelConfig, OrderedListsConfig, ResolvedOrderedListsConfig, OrderedListNumberFormat, SyncIndicatorConfig, DebugConfig, ResolvedDebugConfig, } from './types';
|
|
13
13
|
export type { BoundingBox, ResolvedConfig, VDTBlockType, VDTLineSegment, VDTLine, VDTBlock, VDTColumn, VDTFootnoteArea, VDTPage, VDTDocument, } from './vdt';
|
|
14
|
-
export type { ContentBlock, ContentBlockType, InlineSpan } from './parse';
|
|
14
|
+
export type { ContentBlock, ContentBlockType, InlineSpan, ListKind } from './parse';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtI,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtI,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACxtB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,GACZ,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,5 +6,5 @@ export { buildFontString, measureBlock, measureRichBlock, measureGlyphWidth, ini
|
|
|
6
6
|
export { hyphenateText, setHyphenationLocale } from './hyphenate';
|
|
7
7
|
export { parseMarkdown } from './parse';
|
|
8
8
|
export { extractFrontmatter } from './frontmatter';
|
|
9
|
-
export { DEFAULT_PAGE_CONFIG, DEFAULT_CUT_LINES, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, DEFAULT_UNORDERED_LISTS_STATIC, resolveUnorderedListsConfig, stripUnorderedListsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults, DEFAULT_DEBUG_CONFIG, resolveDebugConfig, stripDebugDefaults } from './defaults';
|
|
9
|
+
export { DEFAULT_PAGE_CONFIG, DEFAULT_CUT_LINES, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, DEFAULT_UNORDERED_LISTS_STATIC, resolveUnorderedListsConfig, stripUnorderedListsDefaults, DEFAULT_ORDERED_LISTS_STATIC, resolveOrderedListsConfig, stripOrderedListsDefaults, dimensionsEqual, colorsEqual, resolveColorValue, applyPaletteToConfig, stripPageDefaults, stripConfigDefaults, DEFAULT_DEBUG_CONFIG, resolveDebugConfig, stripDebugDefaults } from './defaults';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEtI,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEtI,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/measure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAS1C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,KAAK,GAAE,MAAiB,GACvB,MAAM,CAOR;AAkDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAMD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAS1C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,KAAK,GAAE,MAAiB,GACvB,MAAM,CAOR;AAkDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAMD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAQD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAsEf;AAmFD,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE;AAwED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAoJf"}
|
package/dist/measure.js
CHANGED
|
@@ -70,6 +70,11 @@ export function initHyphenator(locale) {
|
|
|
70
70
|
export function clearMeasurementCache() {
|
|
71
71
|
clearCache();
|
|
72
72
|
}
|
|
73
|
+
/** Compute the normal space width for a given font, used to express justified
|
|
74
|
+
* spacing as a multiplier of the natural space. */
|
|
75
|
+
function normalSpaceWidthFor(font) {
|
|
76
|
+
return measureTextWidth(' ', font);
|
|
77
|
+
}
|
|
73
78
|
/**
|
|
74
79
|
* Measure a text block: break it into lines within maxWidthPx
|
|
75
80
|
* and return VDTLine data with bounding boxes.
|
|
@@ -84,12 +89,14 @@ export function measureBlock(text, font, maxWidthPx, lineHeightPx, options) {
|
|
|
84
89
|
const shouldHyphenate = options?.hyphenate ?? false;
|
|
85
90
|
const indentPx = options?.firstLineIndentPx ?? 0;
|
|
86
91
|
const hanging = options?.hangingIndent ?? false;
|
|
92
|
+
const textAlign = options?.textAlign ?? 'left';
|
|
87
93
|
const processedText = shouldHyphenate ? hyphenateText(text) : text;
|
|
88
94
|
const prepared = prepareWithSegments(processedText, font);
|
|
89
95
|
const lines = [];
|
|
90
96
|
let cursor = { segmentIndex: 0, graphemeIndex: 0 };
|
|
91
97
|
let y = 0;
|
|
92
98
|
let lineIndex = 0;
|
|
99
|
+
const normalSpaceWidth = textAlign === 'justify' ? normalSpaceWidthFor(font) : 0;
|
|
93
100
|
while (true) {
|
|
94
101
|
// First line indent: indent line 0 only. Hanging indent: indent all lines except 0.
|
|
95
102
|
const isFirstLine = lineIndex === 0;
|
|
@@ -114,6 +121,7 @@ export function measureBlock(text, font, maxWidthPx, lineHeightPx, options) {
|
|
|
114
121
|
};
|
|
115
122
|
}
|
|
116
123
|
}
|
|
124
|
+
const justifiedSpaceRatio = computeJustifiedSpaceRatio(segments, lineMaxWidth, normalSpaceWidth, textAlign, isLastLine);
|
|
117
125
|
lines.push({
|
|
118
126
|
text: hyphenated ? cleanSoftHyphens(line.text) + '-' : cleanSoftHyphens(line.text),
|
|
119
127
|
bbox: createBoundingBox(lineIndent, y, line.width, lineHeightPx),
|
|
@@ -121,6 +129,7 @@ export function measureBlock(text, font, maxWidthPx, lineHeightPx, options) {
|
|
|
121
129
|
hyphenated,
|
|
122
130
|
segments,
|
|
123
131
|
isLastLine,
|
|
132
|
+
...(justifiedSpaceRatio !== undefined ? { justifiedSpaceRatio } : {}),
|
|
124
133
|
});
|
|
125
134
|
cursor = nextCursor;
|
|
126
135
|
y += lineHeightPx;
|
|
@@ -128,6 +137,22 @@ export function measureBlock(text, font, maxWidthPx, lineHeightPx, options) {
|
|
|
128
137
|
}
|
|
129
138
|
return { lines, totalHeight: y };
|
|
130
139
|
}
|
|
140
|
+
function computeJustifiedSpaceRatio(segments, lineMaxWidth, normalSpaceWidth, textAlign, isLastLine) {
|
|
141
|
+
if (textAlign !== 'justify' || isLastLine || normalSpaceWidth <= 0)
|
|
142
|
+
return undefined;
|
|
143
|
+
let wordWidth = 0;
|
|
144
|
+
let spaceCount = 0;
|
|
145
|
+
for (const s of segments) {
|
|
146
|
+
if (s.kind === 'space')
|
|
147
|
+
spaceCount++;
|
|
148
|
+
else
|
|
149
|
+
wordWidth += s.width;
|
|
150
|
+
}
|
|
151
|
+
if (spaceCount === 0)
|
|
152
|
+
return undefined;
|
|
153
|
+
const justifiedSpaceWidth = (lineMaxWidth - wordWidth) / spaceCount;
|
|
154
|
+
return justifiedSpaceWidth / normalSpaceWidth;
|
|
155
|
+
}
|
|
131
156
|
// ---------------------------------------------------------------------------
|
|
132
157
|
// Helpers
|
|
133
158
|
// ---------------------------------------------------------------------------
|
|
@@ -192,13 +217,40 @@ function tokenizeSpans(spans, normalFont, boldFont, italicFont, boldItalicFont,
|
|
|
192
217
|
continue;
|
|
193
218
|
for (const part of parts) {
|
|
194
219
|
const isSpace = part.trim().length === 0;
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
220
|
+
if (!isSpace && part.includes(SOFT_HYPHEN)) {
|
|
221
|
+
const clean = part.replace(/\u00AD/g, '');
|
|
222
|
+
const cleanWidth = measureTextWidth(clean, font);
|
|
223
|
+
const breakPoints = [];
|
|
224
|
+
let priorSoft = 0;
|
|
225
|
+
for (let i = 0; i < part.length; i++) {
|
|
226
|
+
if (part[i] === SOFT_HYPHEN) {
|
|
227
|
+
const cleanIdx = i - priorSoft;
|
|
228
|
+
breakPoints.push({
|
|
229
|
+
charIndex: cleanIdx,
|
|
230
|
+
widthBefore: measureTextWidth(clean.slice(0, cleanIdx), font),
|
|
231
|
+
});
|
|
232
|
+
priorSoft++;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
tokens.push({
|
|
236
|
+
text: clean,
|
|
237
|
+
bold: span.bold,
|
|
238
|
+
italic: span.italic,
|
|
239
|
+
kind: 'text',
|
|
240
|
+
width: cleanWidth,
|
|
241
|
+
breakPoints,
|
|
242
|
+
hyphenWidth: measureTextWidth('-', font),
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
tokens.push({
|
|
247
|
+
text: part,
|
|
248
|
+
bold: span.bold,
|
|
249
|
+
italic: span.italic,
|
|
250
|
+
kind: isSpace ? 'space' : 'text',
|
|
251
|
+
width: measureTextWidth(part, font),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
202
254
|
}
|
|
203
255
|
}
|
|
204
256
|
return tokens;
|
|
@@ -215,7 +267,9 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
215
267
|
const shouldHyphenate = options?.hyphenate ?? false;
|
|
216
268
|
const indentPx = options?.firstLineIndentPx ?? 0;
|
|
217
269
|
const hanging = options?.hangingIndent ?? false;
|
|
270
|
+
const textAlign = options?.textAlign ?? 'left';
|
|
218
271
|
const tokens = tokenizeSpans(spans, normalFont, boldFont, italicFont, boldItalicFont, shouldHyphenate);
|
|
272
|
+
const normalSpaceWidth = textAlign === 'justify' ? normalSpaceWidthFor(normalFont) : 0;
|
|
219
273
|
if (tokens.length === 0) {
|
|
220
274
|
return { lines: [], totalHeight: 0 };
|
|
221
275
|
}
|
|
@@ -231,6 +285,7 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
231
285
|
const lineMaxWidth = maxWidthPx - lineIndent;
|
|
232
286
|
const lineTokens = [];
|
|
233
287
|
let lineWidth = 0;
|
|
288
|
+
let lineHyphenated = false;
|
|
234
289
|
// Consume leading spaces at line start (skip them)
|
|
235
290
|
while (tokenIdx < tokens.length && tokens[tokenIdx].kind === 'space') {
|
|
236
291
|
tokenIdx++;
|
|
@@ -238,15 +293,58 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
238
293
|
// Greedy: add tokens until we overflow
|
|
239
294
|
while (tokenIdx < tokens.length) {
|
|
240
295
|
const token = tokens[tokenIdx];
|
|
241
|
-
if (lineWidth + token.width <= lineMaxWidth
|
|
296
|
+
if (lineWidth + token.width <= lineMaxWidth) {
|
|
242
297
|
lineTokens.push(token);
|
|
243
298
|
lineWidth += token.width;
|
|
244
299
|
tokenIdx++;
|
|
300
|
+
continue;
|
|
245
301
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
302
|
+
// Doesn't fit. Try to split at a soft-hyphen.
|
|
303
|
+
if (token.kind === 'text' && token.breakPoints && token.breakPoints.length > 0) {
|
|
304
|
+
const remaining = lineMaxWidth - lineWidth;
|
|
305
|
+
const hyphenW = token.hyphenWidth ?? 0;
|
|
306
|
+
let chosen = null;
|
|
307
|
+
for (const bp of token.breakPoints) {
|
|
308
|
+
if (bp.widthBefore + hyphenW <= remaining)
|
|
309
|
+
chosen = bp;
|
|
310
|
+
else
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
if (chosen) {
|
|
314
|
+
lineTokens.push({
|
|
315
|
+
text: token.text.slice(0, chosen.charIndex) + '-',
|
|
316
|
+
bold: token.bold,
|
|
317
|
+
italic: token.italic,
|
|
318
|
+
kind: 'text',
|
|
319
|
+
width: chosen.widthBefore + hyphenW,
|
|
320
|
+
});
|
|
321
|
+
lineWidth += chosen.widthBefore + hyphenW;
|
|
322
|
+
lineHyphenated = true;
|
|
323
|
+
const chosenIdx = chosen.charIndex;
|
|
324
|
+
const chosenWidth = chosen.widthBefore;
|
|
325
|
+
const residualBreakPoints = token.breakPoints
|
|
326
|
+
.filter((bp) => bp.charIndex > chosenIdx)
|
|
327
|
+
.map((bp) => ({ charIndex: bp.charIndex - chosenIdx, widthBefore: bp.widthBefore - chosenWidth }));
|
|
328
|
+
tokens[tokenIdx] = {
|
|
329
|
+
text: token.text.slice(chosenIdx),
|
|
330
|
+
bold: token.bold,
|
|
331
|
+
italic: token.italic,
|
|
332
|
+
kind: 'text',
|
|
333
|
+
width: token.width - chosenWidth,
|
|
334
|
+
...(residualBreakPoints.length > 0
|
|
335
|
+
? { breakPoints: residualBreakPoints, hyphenWidth: token.hyphenWidth }
|
|
336
|
+
: {}),
|
|
337
|
+
};
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// No viable split. If line is empty, force-fit this token; else break to next line.
|
|
342
|
+
if (lineTokens.length === 0) {
|
|
343
|
+
lineTokens.push(token);
|
|
344
|
+
lineWidth += token.width;
|
|
345
|
+
tokenIdx++;
|
|
249
346
|
}
|
|
347
|
+
break;
|
|
250
348
|
}
|
|
251
349
|
if (lineTokens.length === 0)
|
|
252
350
|
break;
|
|
@@ -272,13 +370,15 @@ export function measureRichBlock(spans, normalFont, boldFont, italicFont, boldIt
|
|
|
272
370
|
}));
|
|
273
371
|
const lineText = lineTokens.map((t) => cleanSoftHyphens(t.text)).join('');
|
|
274
372
|
const contentWidth = lineTokens.reduce((sum, t) => sum + t.width, 0);
|
|
373
|
+
const justifiedSpaceRatio = computeJustifiedSpaceRatio(segments, lineMaxWidth, normalSpaceWidth, textAlign, isLastLine);
|
|
275
374
|
lines.push({
|
|
276
375
|
text: lineText,
|
|
277
376
|
bbox: createBoundingBox(lineIndent, y, contentWidth, lineHeightPx),
|
|
278
377
|
baseline: y + lineHeightPx * 0.8,
|
|
279
|
-
hyphenated:
|
|
378
|
+
hyphenated: lineHyphenated,
|
|
280
379
|
segments,
|
|
281
380
|
isLastLine,
|
|
381
|
+
...(justifiedSpaceRatio !== undefined ? { justifiedSpaceRatio } : {}),
|
|
282
382
|
});
|
|
283
383
|
y += lineHeightPx;
|
|
284
384
|
lineIndex++;
|