@nasser-sw/fabric 7.0.1-beta8 → 7.0.1-beta9
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/debug/konva-master/CHANGELOG.md +1475 -0
- package/debug/konva-master/LICENSE +22 -0
- package/debug/konva-master/README.md +209 -0
- package/debug/konva-master/gulpfile.mjs +110 -0
- package/debug/konva-master/package.json +139 -0
- package/debug/konva-master/release.sh +62 -0
- package/debug/konva-master/resources/doc-includes/ContainerParams.txt +6 -0
- package/debug/konva-master/resources/doc-includes/NodeParams.txt +20 -0
- package/debug/konva-master/resources/doc-includes/ShapeParams.txt +53 -0
- package/debug/konva-master/resources/jsdoc.conf.json +28 -0
- package/debug/konva-master/rollup.config.mjs +32 -0
- package/debug/konva-master/src/Animation.ts +237 -0
- package/debug/konva-master/src/BezierFunctions.ts +826 -0
- package/debug/konva-master/src/Canvas.ts +230 -0
- package/debug/konva-master/src/Container.ts +649 -0
- package/debug/konva-master/src/Context.ts +1017 -0
- package/debug/konva-master/src/Core.ts +5 -0
- package/debug/konva-master/src/DragAndDrop.ts +173 -0
- package/debug/konva-master/src/Factory.ts +246 -0
- package/debug/konva-master/src/FastLayer.ts +29 -0
- package/debug/konva-master/src/Global.ts +210 -0
- package/debug/konva-master/src/Group.ts +31 -0
- package/debug/konva-master/src/Layer.ts +546 -0
- package/debug/konva-master/src/Node.ts +3477 -0
- package/debug/konva-master/src/PointerEvents.ts +67 -0
- package/debug/konva-master/src/Shape.ts +2081 -0
- package/debug/konva-master/src/Stage.ts +1000 -0
- package/debug/konva-master/src/Tween.ts +811 -0
- package/debug/konva-master/src/Util.ts +1123 -0
- package/debug/konva-master/src/Validators.ts +210 -0
- package/debug/konva-master/src/_CoreInternals.ts +85 -0
- package/debug/konva-master/src/_FullInternals.ts +171 -0
- package/debug/konva-master/src/canvas-backend.ts +36 -0
- package/debug/konva-master/src/filters/Blur.ts +388 -0
- package/debug/konva-master/src/filters/Brighten.ts +48 -0
- package/debug/konva-master/src/filters/Brightness.ts +30 -0
- package/debug/konva-master/src/filters/Contrast.ts +75 -0
- package/debug/konva-master/src/filters/Emboss.ts +207 -0
- package/debug/konva-master/src/filters/Enhance.ts +154 -0
- package/debug/konva-master/src/filters/Grayscale.ts +25 -0
- package/debug/konva-master/src/filters/HSL.ts +108 -0
- package/debug/konva-master/src/filters/HSV.ts +106 -0
- package/debug/konva-master/src/filters/Invert.ts +23 -0
- package/debug/konva-master/src/filters/Kaleidoscope.ts +274 -0
- package/debug/konva-master/src/filters/Mask.ts +220 -0
- package/debug/konva-master/src/filters/Noise.ts +44 -0
- package/debug/konva-master/src/filters/Pixelate.ts +107 -0
- package/debug/konva-master/src/filters/Posterize.ts +46 -0
- package/debug/konva-master/src/filters/RGB.ts +82 -0
- package/debug/konva-master/src/filters/RGBA.ts +103 -0
- package/debug/konva-master/src/filters/Sepia.ts +27 -0
- package/debug/konva-master/src/filters/Solarize.ts +29 -0
- package/debug/konva-master/src/filters/Threshold.ts +44 -0
- package/debug/konva-master/src/index.ts +3 -0
- package/debug/konva-master/src/shapes/Arc.ts +176 -0
- package/debug/konva-master/src/shapes/Arrow.ts +231 -0
- package/debug/konva-master/src/shapes/Circle.ts +76 -0
- package/debug/konva-master/src/shapes/Ellipse.ts +121 -0
- package/debug/konva-master/src/shapes/Image.ts +319 -0
- package/debug/konva-master/src/shapes/Label.ts +386 -0
- package/debug/konva-master/src/shapes/Line.ts +364 -0
- package/debug/konva-master/src/shapes/Path.ts +1013 -0
- package/debug/konva-master/src/shapes/Rect.ts +79 -0
- package/debug/konva-master/src/shapes/RegularPolygon.ts +167 -0
- package/debug/konva-master/src/shapes/Ring.ts +94 -0
- package/debug/konva-master/src/shapes/Sprite.ts +370 -0
- package/debug/konva-master/src/shapes/Star.ts +125 -0
- package/debug/konva-master/src/shapes/Text.ts +1065 -0
- package/debug/konva-master/src/shapes/TextPath.ts +583 -0
- package/debug/konva-master/src/shapes/Transformer.ts +1889 -0
- package/debug/konva-master/src/shapes/Wedge.ts +129 -0
- package/debug/konva-master/src/skia-backend.ts +35 -0
- package/debug/konva-master/src/types.ts +84 -0
- package/debug/konva-master/tsconfig.json +31 -0
- package/debug/konva-master/tsconfig.test.json +7 -0
- package/dist/index.js +915 -23
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +915 -23
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +915 -23
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +915 -23
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/shapes/Text/Text.d.ts +19 -0
- package/dist/src/shapes/Text/Text.d.ts.map +1 -1
- package/dist/src/shapes/Text/Text.min.mjs +1 -1
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.mjs +238 -4
- package/dist/src/shapes/Text/Text.mjs.map +1 -1
- package/dist/src/shapes/Textbox.d.ts +38 -1
- package/dist/src/shapes/Textbox.d.ts.map +1 -1
- package/dist/src/shapes/Textbox.min.mjs +1 -1
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs +497 -15
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/text/examples/arabicTextExample.d.ts +60 -0
- package/dist/src/text/examples/arabicTextExample.d.ts.map +1 -0
- package/dist/src/text/measure.d.ts +9 -0
- package/dist/src/text/measure.d.ts.map +1 -1
- package/dist/src/text/measure.min.mjs +1 -1
- package/dist/src/text/measure.min.mjs.map +1 -1
- package/dist/src/text/measure.mjs +175 -4
- package/dist/src/text/measure.mjs.map +1 -1
- package/dist/src/text/overlayEditor.d.ts.map +1 -1
- package/dist/src/text/overlayEditor.min.mjs +1 -1
- package/dist/src/text/overlayEditor.min.mjs.map +1 -1
- package/dist/src/text/overlayEditor.mjs +7 -0
- package/dist/src/text/overlayEditor.mjs.map +1 -1
- package/dist/src/text/scriptUtils.d.ts +142 -0
- package/dist/src/text/scriptUtils.d.ts.map +1 -0
- package/dist/src/text/scriptUtils.min.mjs +2 -0
- package/dist/src/text/scriptUtils.min.mjs.map +1 -0
- package/dist/src/text/scriptUtils.mjs +212 -0
- package/dist/src/text/scriptUtils.mjs.map +1 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts +19 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Textbox.d.ts +38 -1
- package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
- package/dist-extensions/src/text/measure.d.ts +9 -0
- package/dist-extensions/src/text/measure.d.ts.map +1 -1
- package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
- package/dist-extensions/src/text/scriptUtils.d.ts +142 -0
- package/dist-extensions/src/text/scriptUtils.d.ts.map +1 -0
- package/fabric-test-editor.html +2401 -46
- package/fonts/STV Bold.ttf +0 -0
- package/fonts/STV Light.ttf +0 -0
- package/fonts/STV Regular.ttf +0 -0
- package/package.json +1 -1
- package/src/shapes/Text/Text.ts +238 -5
- package/src/shapes/Textbox.ts +521 -11
- package/src/text/measure.ts +200 -50
- package/src/text/overlayEditor.ts +7 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script Detection and Font Metrics Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides script-aware text measurement for improved bounding box calculations
|
|
5
|
+
* across different writing systems like Arabic, Latin, CJK, etc.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Unicode ranges for different scripts
|
|
10
|
+
*/
|
|
11
|
+
const SCRIPT_RANGES = {
|
|
12
|
+
latin: [[0x0000, 0x007F],
|
|
13
|
+
// Basic Latin
|
|
14
|
+
[0x0080, 0x00FF],
|
|
15
|
+
// Latin-1 Supplement
|
|
16
|
+
[0x0100, 0x017F],
|
|
17
|
+
// Latin Extended-A
|
|
18
|
+
[0x0180, 0x024F],
|
|
19
|
+
// Latin Extended-B
|
|
20
|
+
[0x1E00, 0x1EFF] // Latin Extended Additional
|
|
21
|
+
],
|
|
22
|
+
arabic: [[0x0600, 0x06FF],
|
|
23
|
+
// Arabic
|
|
24
|
+
[0x0750, 0x077F],
|
|
25
|
+
// Arabic Supplement
|
|
26
|
+
[0x08A0, 0x08FF],
|
|
27
|
+
// Arabic Extended-A
|
|
28
|
+
[0xFB50, 0xFDFF],
|
|
29
|
+
// Arabic Presentation Forms-A
|
|
30
|
+
[0xFE70, 0xFEFF] // Arabic Presentation Forms-B
|
|
31
|
+
],
|
|
32
|
+
hebrew: [[0x0590, 0x05FF],
|
|
33
|
+
// Hebrew
|
|
34
|
+
[0xFB1D, 0xFB4F] // Hebrew Presentation Forms
|
|
35
|
+
],
|
|
36
|
+
cjk: [[0x2E80, 0x2EFF],
|
|
37
|
+
// CJK Radicals Supplement
|
|
38
|
+
[0x3000, 0x303F],
|
|
39
|
+
// CJK Symbols and Punctuation
|
|
40
|
+
[0x3400, 0x4DBF],
|
|
41
|
+
// CJK Extension A
|
|
42
|
+
[0x4E00, 0x9FFF],
|
|
43
|
+
// CJK Unified Ideographs
|
|
44
|
+
[0xF900, 0xFAFF],
|
|
45
|
+
// CJK Compatibility Ideographs
|
|
46
|
+
[0x20000, 0x2A6DF] // CJK Extension B
|
|
47
|
+
],
|
|
48
|
+
devanagari: [[0x0900, 0x097F],
|
|
49
|
+
// Devanagari
|
|
50
|
+
[0xA8E0, 0xA8FF] // Devanagari Extended
|
|
51
|
+
],
|
|
52
|
+
thai: [[0x0E00, 0x0E7F] // Thai
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Reference characters for font metrics by script
|
|
58
|
+
*/
|
|
59
|
+
const SCRIPT_REFERENCE_CHARS = {
|
|
60
|
+
latin: 'M',
|
|
61
|
+
arabic: 'ا',
|
|
62
|
+
// Arabic Letter Alef
|
|
63
|
+
hebrew: 'ם',
|
|
64
|
+
// Hebrew Letter Final Mem
|
|
65
|
+
cjk: '中',
|
|
66
|
+
// Chinese character for "middle"
|
|
67
|
+
devanagari: 'म',
|
|
68
|
+
// Devanagari Letter Ma
|
|
69
|
+
thai: 'ก',
|
|
70
|
+
// Thai Letter Ko Kai
|
|
71
|
+
mixed: 'M',
|
|
72
|
+
// Fallback to Latin
|
|
73
|
+
unknown: 'M' // Fallback to Latin
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Script-specific fallback proportions for font metrics
|
|
78
|
+
*/
|
|
79
|
+
const SCRIPT_METRICS = {
|
|
80
|
+
latin: {
|
|
81
|
+
ascentRatio: 0.91,
|
|
82
|
+
descentRatio: 0.21,
|
|
83
|
+
actualAscentRatio: 0.716,
|
|
84
|
+
actualDescentRatio: 0.0
|
|
85
|
+
},
|
|
86
|
+
arabic: {
|
|
87
|
+
ascentRatio: 0.85,
|
|
88
|
+
// Arabic fonts typically have lower ascenders
|
|
89
|
+
descentRatio: 0.30,
|
|
90
|
+
// But deeper descenders for diacritics
|
|
91
|
+
actualAscentRatio: 0.65,
|
|
92
|
+
actualDescentRatio: 0.25
|
|
93
|
+
},
|
|
94
|
+
hebrew: {
|
|
95
|
+
ascentRatio: 0.88,
|
|
96
|
+
descentRatio: 0.25,
|
|
97
|
+
actualAscentRatio: 0.70,
|
|
98
|
+
actualDescentRatio: 0.15
|
|
99
|
+
},
|
|
100
|
+
cjk: {
|
|
101
|
+
ascentRatio: 0.88,
|
|
102
|
+
// CJK fonts are more square
|
|
103
|
+
descentRatio: 0.12,
|
|
104
|
+
actualAscentRatio: 0.80,
|
|
105
|
+
actualDescentRatio: 0.10
|
|
106
|
+
},
|
|
107
|
+
devanagari: {
|
|
108
|
+
ascentRatio: 1.0,
|
|
109
|
+
// Devanagari has tall ascenders
|
|
110
|
+
descentRatio: 0.25,
|
|
111
|
+
actualAscentRatio: 0.85,
|
|
112
|
+
actualDescentRatio: 0.15
|
|
113
|
+
},
|
|
114
|
+
thai: {
|
|
115
|
+
ascentRatio: 0.95,
|
|
116
|
+
// Thai has tall ascenders
|
|
117
|
+
descentRatio: 0.30,
|
|
118
|
+
// And some descenders
|
|
119
|
+
actualAscentRatio: 0.75,
|
|
120
|
+
actualDescentRatio: 0.20
|
|
121
|
+
},
|
|
122
|
+
mixed: {
|
|
123
|
+
ascentRatio: 0.91,
|
|
124
|
+
descentRatio: 0.21,
|
|
125
|
+
actualAscentRatio: 0.716,
|
|
126
|
+
actualDescentRatio: 0.0
|
|
127
|
+
},
|
|
128
|
+
unknown: {
|
|
129
|
+
ascentRatio: 0.91,
|
|
130
|
+
descentRatio: 0.21,
|
|
131
|
+
actualAscentRatio: 0.716,
|
|
132
|
+
actualDescentRatio: 0.0
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Detect the primary script of a text string
|
|
138
|
+
*/
|
|
139
|
+
function detectScript(text) {
|
|
140
|
+
if (!text || text.length === 0) return 'unknown';
|
|
141
|
+
const scriptCounts = {
|
|
142
|
+
latin: 0,
|
|
143
|
+
arabic: 0,
|
|
144
|
+
hebrew: 0,
|
|
145
|
+
cjk: 0,
|
|
146
|
+
devanagari: 0,
|
|
147
|
+
thai: 0,
|
|
148
|
+
mixed: 0,
|
|
149
|
+
unknown: 0
|
|
150
|
+
};
|
|
151
|
+
for (const char of text) {
|
|
152
|
+
const codePoint = char.codePointAt(0);
|
|
153
|
+
if (codePoint === undefined) continue;
|
|
154
|
+
let detected = false;
|
|
155
|
+
for (const [script, ranges] of Object.entries(SCRIPT_RANGES)) {
|
|
156
|
+
for (const [start, end] of ranges) {
|
|
157
|
+
if (codePoint >= start && codePoint <= end) {
|
|
158
|
+
scriptCounts[script]++;
|
|
159
|
+
detected = true;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (detected) break;
|
|
164
|
+
}
|
|
165
|
+
if (!detected) {
|
|
166
|
+
scriptCounts.unknown++;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Find the script with the highest count
|
|
171
|
+
const entries = Object.entries(scriptCounts);
|
|
172
|
+
entries.sort((a, b) => b[1] - a[1]);
|
|
173
|
+
const [topScript, topCount] = entries[0];
|
|
174
|
+
const [secondScript, secondCount] = entries[1];
|
|
175
|
+
|
|
176
|
+
// If we have significant counts in multiple scripts, consider it mixed
|
|
177
|
+
if (topCount > 0 && secondCount > topCount * 0.3) {
|
|
178
|
+
return 'mixed';
|
|
179
|
+
}
|
|
180
|
+
return topScript === 'unknown' && topCount === 0 ? 'latin' : topScript;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Get reference character for a given script
|
|
185
|
+
*/
|
|
186
|
+
function getScriptReferenceChar(script) {
|
|
187
|
+
return SCRIPT_REFERENCE_CHARS[script];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Get script-specific metric ratios
|
|
192
|
+
*/
|
|
193
|
+
function getScriptMetrics(script) {
|
|
194
|
+
return SCRIPT_METRICS[script];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Detect script for a single grapheme/character
|
|
199
|
+
*/
|
|
200
|
+
function detectGraphemeScript(grapheme) {
|
|
201
|
+
return detectScript(grapheme);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Check if text contains complex script characteristics
|
|
206
|
+
*/
|
|
207
|
+
function isComplexScript(script) {
|
|
208
|
+
return ['arabic', 'hebrew', 'devanagari', 'thai'].includes(script);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export { SCRIPT_METRICS, SCRIPT_REFERENCE_CHARS, detectGraphemeScript, detectScript, getScriptMetrics, getScriptReferenceChar, isComplexScript };
|
|
212
|
+
//# sourceMappingURL=scriptUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptUtils.mjs","sources":["../../../src/text/scriptUtils.ts"],"sourcesContent":["/**\n * Script Detection and Font Metrics Utilities\n * \n * Provides script-aware text measurement for improved bounding box calculations\n * across different writing systems like Arabic, Latin, CJK, etc.\n */\n\nexport type ScriptType = 'latin' | 'arabic' | 'hebrew' | 'cjk' | 'devanagari' | 'thai' | 'mixed' | 'unknown';\n\n/**\n * Unicode ranges for different scripts\n */\nconst SCRIPT_RANGES = {\n latin: [\n [0x0000, 0x007F], // Basic Latin\n [0x0080, 0x00FF], // Latin-1 Supplement\n [0x0100, 0x017F], // Latin Extended-A\n [0x0180, 0x024F], // Latin Extended-B\n [0x1E00, 0x1EFF], // Latin Extended Additional\n ],\n arabic: [\n [0x0600, 0x06FF], // Arabic\n [0x0750, 0x077F], // Arabic Supplement\n [0x08A0, 0x08FF], // Arabic Extended-A\n [0xFB50, 0xFDFF], // Arabic Presentation Forms-A\n [0xFE70, 0xFEFF], // Arabic Presentation Forms-B\n ],\n hebrew: [\n [0x0590, 0x05FF], // Hebrew\n [0xFB1D, 0xFB4F], // Hebrew Presentation Forms\n ],\n cjk: [\n [0x2E80, 0x2EFF], // CJK Radicals Supplement\n [0x3000, 0x303F], // CJK Symbols and Punctuation\n [0x3400, 0x4DBF], // CJK Extension A\n [0x4E00, 0x9FFF], // CJK Unified Ideographs\n [0xF900, 0xFAFF], // CJK Compatibility Ideographs\n [0x20000, 0x2A6DF], // CJK Extension B\n ],\n devanagari: [\n [0x0900, 0x097F], // Devanagari\n [0xA8E0, 0xA8FF], // Devanagari Extended\n ],\n thai: [\n [0x0E00, 0x0E7F], // Thai\n ],\n};\n\n/**\n * Reference characters for font metrics by script\n */\nexport const SCRIPT_REFERENCE_CHARS = {\n latin: 'M',\n arabic: 'ا', // Arabic Letter Alef\n hebrew: 'ם', // Hebrew Letter Final Mem\n cjk: '中', // Chinese character for \"middle\"\n devanagari: 'म', // Devanagari Letter Ma\n thai: 'ก', // Thai Letter Ko Kai\n mixed: 'M', // Fallback to Latin\n unknown: 'M', // Fallback to Latin\n} as const;\n\n/**\n * Script-specific fallback proportions for font metrics\n */\nexport const SCRIPT_METRICS = {\n latin: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n arabic: {\n ascentRatio: 0.85, // Arabic fonts typically have lower ascenders\n descentRatio: 0.30, // But deeper descenders for diacritics\n actualAscentRatio: 0.65,\n actualDescentRatio: 0.25,\n },\n hebrew: {\n ascentRatio: 0.88,\n descentRatio: 0.25,\n actualAscentRatio: 0.70,\n actualDescentRatio: 0.15,\n },\n cjk: {\n ascentRatio: 0.88, // CJK fonts are more square\n descentRatio: 0.12,\n actualAscentRatio: 0.80,\n actualDescentRatio: 0.10,\n },\n devanagari: {\n ascentRatio: 1.0, // Devanagari has tall ascenders\n descentRatio: 0.25,\n actualAscentRatio: 0.85,\n actualDescentRatio: 0.15,\n },\n thai: {\n ascentRatio: 0.95, // Thai has tall ascenders\n descentRatio: 0.30, // And some descenders\n actualAscentRatio: 0.75,\n actualDescentRatio: 0.20,\n },\n mixed: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n unknown: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n} as const;\n\n/**\n * Detect the primary script of a text string\n */\nexport function detectScript(text: string): ScriptType {\n if (!text || text.length === 0) return 'unknown';\n\n const scriptCounts: Record<ScriptType, number> = {\n latin: 0,\n arabic: 0,\n hebrew: 0,\n cjk: 0,\n devanagari: 0,\n thai: 0,\n mixed: 0,\n unknown: 0,\n };\n\n for (const char of text) {\n const codePoint = char.codePointAt(0);\n if (codePoint === undefined) continue;\n\n let detected = false;\n \n for (const [script, ranges] of Object.entries(SCRIPT_RANGES)) {\n for (const [start, end] of ranges) {\n if (codePoint >= start && codePoint <= end) {\n scriptCounts[script as ScriptType]++;\n detected = true;\n break;\n }\n }\n if (detected) break;\n }\n\n if (!detected) {\n scriptCounts.unknown++;\n }\n }\n\n // Find the script with the highest count\n const entries = Object.entries(scriptCounts) as [ScriptType, number][];\n entries.sort((a, b) => b[1] - a[1]);\n\n const [topScript, topCount] = entries[0];\n const [secondScript, secondCount] = entries[1];\n\n // If we have significant counts in multiple scripts, consider it mixed\n if (topCount > 0 && secondCount > topCount * 0.3) {\n return 'mixed';\n }\n\n return topScript === 'unknown' && topCount === 0 ? 'latin' : topScript;\n}\n\n/**\n * Get reference character for a given script\n */\nexport function getScriptReferenceChar(script: ScriptType): string {\n return SCRIPT_REFERENCE_CHARS[script];\n}\n\n/**\n * Get script-specific metric ratios\n */\nexport function getScriptMetrics(script: ScriptType) {\n return SCRIPT_METRICS[script];\n}\n\n/**\n * Detect script for a single grapheme/character\n */\nexport function detectGraphemeScript(grapheme: string): ScriptType {\n return detectScript(grapheme);\n}\n\n/**\n * Check if text contains complex script characteristics\n */\nexport function isComplexScript(script: ScriptType): boolean {\n return ['arabic', 'hebrew', 'devanagari', 'thai'].includes(script);\n}\n\n/**\n * Check if script requires special glyph shaping\n */\nexport function requiresGlyphShaping(script: ScriptType): boolean {\n return ['arabic', 'devanagari', 'thai'].includes(script);\n}\n\n/**\n * Get optimal sample text for measuring font metrics\n */\nexport function getSampleTextForScript(script: ScriptType): string {\n const samples = {\n latin: 'AaBbCcMmWwXxYyZz',\n arabic: 'أابتجحدرسعفقلمنهويء',\n hebrew: 'אבגדהוחטיכלמנעפקרשת',\n cjk: '中文字体测试样本',\n devanagari: 'अआइईउऊएऐओऔकगचजट',\n thai: 'กขคงจชดตนบปพมยรลวสหอฮ',\n mixed: 'AaBbCcMmWwXxYyZz',\n unknown: 'AaBbCcMmWwXxYyZz',\n };\n \n return samples[script];\n}"],"names":["SCRIPT_RANGES","latin","arabic","hebrew","cjk","devanagari","thai","SCRIPT_REFERENCE_CHARS","mixed","unknown","SCRIPT_METRICS","ascentRatio","descentRatio","actualAscentRatio","actualDescentRatio","detectScript","text","length","scriptCounts","char","codePoint","codePointAt","undefined","detected","script","ranges","Object","entries","start","end","sort","a","b","topScript","topCount","secondScript","secondCount","getScriptReferenceChar","getScriptMetrics","detectGraphemeScript","grapheme","isComplexScript","includes"],"mappings":"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"}
|
|
@@ -713,6 +713,11 @@ export declare class FabricText<Props extends TOptions<TextProps> = Partial<Text
|
|
|
713
713
|
* @returns Lines in the text
|
|
714
714
|
*/
|
|
715
715
|
_splitTextIntoLines(text: string): TextLinesInfo;
|
|
716
|
+
/**
|
|
717
|
+
* Check if text contains Arabic characters
|
|
718
|
+
* @private
|
|
719
|
+
*/
|
|
720
|
+
_containsArabicText(text: string): boolean;
|
|
716
721
|
/**
|
|
717
722
|
* Returns object representation of an instance
|
|
718
723
|
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
@@ -750,6 +755,20 @@ export declare class FabricText<Props extends TOptions<TextProps> = Partial<Text
|
|
|
750
755
|
strokeWidth: number;
|
|
751
756
|
fontSize: number;
|
|
752
757
|
}, SerializedTextProps, ObjectEvents>>;
|
|
758
|
+
/**
|
|
759
|
+
* Check if the font is ready for accurate measurements
|
|
760
|
+
* @private
|
|
761
|
+
*/
|
|
762
|
+
_isFontReady(): boolean;
|
|
763
|
+
/**
|
|
764
|
+
* Schedule re-initialization after font loads
|
|
765
|
+
* @private
|
|
766
|
+
*/
|
|
767
|
+
_scheduleInitAfterFontLoad(): void;
|
|
768
|
+
/**
|
|
769
|
+
* Force complete text re-initialization (useful after JSON loading)
|
|
770
|
+
*/
|
|
771
|
+
forceTextReinitialization(): void;
|
|
753
772
|
/**
|
|
754
773
|
* Returns FabricText instance from an object representation
|
|
755
774
|
* @param {Object} object plain js Object to create an instance from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Text/Text.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Text/Text.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,11 @@ export declare class Textbox<Props extends TOptions<TextboxProps> = Partial<Text
|
|
|
81
81
|
* @override
|
|
82
82
|
*/
|
|
83
83
|
initDimensions(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Schedule justify calculation after font loads (Textbox-specific)
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
_scheduleJustifyAfterFontLoad(): void;
|
|
84
89
|
/**
|
|
85
90
|
* Advanced dimensions calculation using new layout engine
|
|
86
91
|
* @private
|
|
@@ -219,7 +224,34 @@ export declare class Textbox<Props extends TOptions<TextboxProps> = Partial<Text
|
|
|
219
224
|
* @returns {Array} Array of lines in the Textbox.
|
|
220
225
|
* @override
|
|
221
226
|
*/
|
|
222
|
-
_splitTextIntoLines(text: string):
|
|
227
|
+
_splitTextIntoLines(text: string): any;
|
|
228
|
+
/**
|
|
229
|
+
* Use browser's native text wrapping for accurate handling of fonts without English glyphs
|
|
230
|
+
* @private
|
|
231
|
+
*/
|
|
232
|
+
_splitTextIntoLinesWithBrowser(text: string): TextLinesInfo | {
|
|
233
|
+
_unwrappedLines: string[][];
|
|
234
|
+
lines: string[];
|
|
235
|
+
graphemeText: string[];
|
|
236
|
+
graphemeLines: string[][];
|
|
237
|
+
justifySpaceMeasurements: number[][] | null;
|
|
238
|
+
actualBrowserHeight: number;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Extract justify space measurements from browser
|
|
242
|
+
* @private
|
|
243
|
+
*/
|
|
244
|
+
_extractJustifySpaceMeasurements(element: HTMLElement, lines: string[]): number[][];
|
|
245
|
+
/**
|
|
246
|
+
* Apply browser-calculated justify space measurements
|
|
247
|
+
* @private
|
|
248
|
+
*/
|
|
249
|
+
_applyBrowserJustifySpaces(): void;
|
|
250
|
+
/**
|
|
251
|
+
* Fallback to default Fabric wrapping
|
|
252
|
+
* @private
|
|
253
|
+
*/
|
|
254
|
+
_splitTextIntoLinesDefault(text: string): TextLinesInfo;
|
|
223
255
|
getMinWidth(): number;
|
|
224
256
|
_removeExtraneousStyles(): void;
|
|
225
257
|
/**
|
|
@@ -235,6 +267,11 @@ export declare class Textbox<Props extends TOptions<TextboxProps> = Partial<Text
|
|
|
235
267
|
* @param resizeOrigin - Which side was used for resizing ('left' or 'right')
|
|
236
268
|
*/
|
|
237
269
|
private safetySnapWidth;
|
|
270
|
+
/**
|
|
271
|
+
* Force complete textbox re-initialization (useful after JSON loading)
|
|
272
|
+
* Overrides Text version with Textbox-specific logic
|
|
273
|
+
*/
|
|
274
|
+
forceTextReinitialization(): void;
|
|
238
275
|
/**
|
|
239
276
|
* Returns object representation of an instance
|
|
240
277
|
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textbox.d.ts","sourceRoot":"","sources":["../../../src/shapes/Textbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Textbox.d.ts","sourceRoot":"","sources":["../../../src/shapes/Textbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,5 +127,14 @@ export declare function estimateTextWidth(text: string, options: MeasurementOpti
|
|
|
127
127
|
* Check if font is loaded and ready for measurement
|
|
128
128
|
*/
|
|
129
129
|
export declare function isFontReady(fontFamily: string): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Detect if a font lacks English glyph support
|
|
132
|
+
* These fonts should use browser-native measurement instead of Fabric's character-by-character measurement
|
|
133
|
+
*/
|
|
134
|
+
export declare function fontLacksEnglishGlyphs(fontFamily: string): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Cached version of font glyph detection
|
|
137
|
+
*/
|
|
138
|
+
export declare function fontLacksEnglishGlyphsCached(fontFamily: string): boolean;
|
|
130
139
|
export {};
|
|
131
140
|
//# sourceMappingURL=measure.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../src/text/measure.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAmBD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,wBAAwB,GAC7B,mBAAmB,CA8BrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,wBAAwB,GAC7B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../src/text/measure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlayEditor.d.ts","sourceRoot":"","sources":["../../../src/text/overlayEditor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAG9B,OAAO,CAAC,aAAa,CAUnB;gBAEU,OAAO,EAAE,oBAAoB;IAoBzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0DxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"overlayEditor.d.ts","sourceRoot":"","sources":["../../../src/text/overlayEditor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAG9B,OAAO,CAAC,aAAa,CAUnB;gBAEU,OAAO,EAAE,oBAAoB;IAoBzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0DxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IA6OzB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiGlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2GzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACI,OAAO,IAAI,IAAI;IAMtB;;OAEG;IACI,OAAO,CAAC,MAAM,GAAE,OAAc,GAAG,IAAI;IAoE5C,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA8BpC;;OAEG;IACH,OAAO,CAAC,8BAA8B;CAavC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,EACpC,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GACA,aAAa,CAsBf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAE7E"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script Detection and Font Metrics Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides script-aware text measurement for improved bounding box calculations
|
|
5
|
+
* across different writing systems like Arabic, Latin, CJK, etc.
|
|
6
|
+
*/
|
|
7
|
+
export type ScriptType = 'latin' | 'arabic' | 'hebrew' | 'cjk' | 'devanagari' | 'thai' | 'mixed' | 'unknown';
|
|
8
|
+
/**
|
|
9
|
+
* Reference characters for font metrics by script
|
|
10
|
+
*/
|
|
11
|
+
export declare const SCRIPT_REFERENCE_CHARS: {
|
|
12
|
+
readonly latin: "M";
|
|
13
|
+
readonly arabic: "ا";
|
|
14
|
+
readonly hebrew: "ם";
|
|
15
|
+
readonly cjk: "中";
|
|
16
|
+
readonly devanagari: "म";
|
|
17
|
+
readonly thai: "ก";
|
|
18
|
+
readonly mixed: "M";
|
|
19
|
+
readonly unknown: "M";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Script-specific fallback proportions for font metrics
|
|
23
|
+
*/
|
|
24
|
+
export declare const SCRIPT_METRICS: {
|
|
25
|
+
readonly latin: {
|
|
26
|
+
readonly ascentRatio: 0.91;
|
|
27
|
+
readonly descentRatio: 0.21;
|
|
28
|
+
readonly actualAscentRatio: 0.716;
|
|
29
|
+
readonly actualDescentRatio: 0;
|
|
30
|
+
};
|
|
31
|
+
readonly arabic: {
|
|
32
|
+
readonly ascentRatio: 0.85;
|
|
33
|
+
readonly descentRatio: 0.3;
|
|
34
|
+
readonly actualAscentRatio: 0.65;
|
|
35
|
+
readonly actualDescentRatio: 0.25;
|
|
36
|
+
};
|
|
37
|
+
readonly hebrew: {
|
|
38
|
+
readonly ascentRatio: 0.88;
|
|
39
|
+
readonly descentRatio: 0.25;
|
|
40
|
+
readonly actualAscentRatio: 0.7;
|
|
41
|
+
readonly actualDescentRatio: 0.15;
|
|
42
|
+
};
|
|
43
|
+
readonly cjk: {
|
|
44
|
+
readonly ascentRatio: 0.88;
|
|
45
|
+
readonly descentRatio: 0.12;
|
|
46
|
+
readonly actualAscentRatio: 0.8;
|
|
47
|
+
readonly actualDescentRatio: 0.1;
|
|
48
|
+
};
|
|
49
|
+
readonly devanagari: {
|
|
50
|
+
readonly ascentRatio: 1;
|
|
51
|
+
readonly descentRatio: 0.25;
|
|
52
|
+
readonly actualAscentRatio: 0.85;
|
|
53
|
+
readonly actualDescentRatio: 0.15;
|
|
54
|
+
};
|
|
55
|
+
readonly thai: {
|
|
56
|
+
readonly ascentRatio: 0.95;
|
|
57
|
+
readonly descentRatio: 0.3;
|
|
58
|
+
readonly actualAscentRatio: 0.75;
|
|
59
|
+
readonly actualDescentRatio: 0.2;
|
|
60
|
+
};
|
|
61
|
+
readonly mixed: {
|
|
62
|
+
readonly ascentRatio: 0.91;
|
|
63
|
+
readonly descentRatio: 0.21;
|
|
64
|
+
readonly actualAscentRatio: 0.716;
|
|
65
|
+
readonly actualDescentRatio: 0;
|
|
66
|
+
};
|
|
67
|
+
readonly unknown: {
|
|
68
|
+
readonly ascentRatio: 0.91;
|
|
69
|
+
readonly descentRatio: 0.21;
|
|
70
|
+
readonly actualAscentRatio: 0.716;
|
|
71
|
+
readonly actualDescentRatio: 0;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Detect the primary script of a text string
|
|
76
|
+
*/
|
|
77
|
+
export declare function detectScript(text: string): ScriptType;
|
|
78
|
+
/**
|
|
79
|
+
* Get reference character for a given script
|
|
80
|
+
*/
|
|
81
|
+
export declare function getScriptReferenceChar(script: ScriptType): string;
|
|
82
|
+
/**
|
|
83
|
+
* Get script-specific metric ratios
|
|
84
|
+
*/
|
|
85
|
+
export declare function getScriptMetrics(script: ScriptType): {
|
|
86
|
+
readonly ascentRatio: 0.91;
|
|
87
|
+
readonly descentRatio: 0.21;
|
|
88
|
+
readonly actualAscentRatio: 0.716;
|
|
89
|
+
readonly actualDescentRatio: 0;
|
|
90
|
+
} | {
|
|
91
|
+
readonly ascentRatio: 0.85;
|
|
92
|
+
readonly descentRatio: 0.3;
|
|
93
|
+
readonly actualAscentRatio: 0.65;
|
|
94
|
+
readonly actualDescentRatio: 0.25;
|
|
95
|
+
} | {
|
|
96
|
+
readonly ascentRatio: 0.88;
|
|
97
|
+
readonly descentRatio: 0.25;
|
|
98
|
+
readonly actualAscentRatio: 0.7;
|
|
99
|
+
readonly actualDescentRatio: 0.15;
|
|
100
|
+
} | {
|
|
101
|
+
readonly ascentRatio: 0.88;
|
|
102
|
+
readonly descentRatio: 0.12;
|
|
103
|
+
readonly actualAscentRatio: 0.8;
|
|
104
|
+
readonly actualDescentRatio: 0.1;
|
|
105
|
+
} | {
|
|
106
|
+
readonly ascentRatio: 1;
|
|
107
|
+
readonly descentRatio: 0.25;
|
|
108
|
+
readonly actualAscentRatio: 0.85;
|
|
109
|
+
readonly actualDescentRatio: 0.15;
|
|
110
|
+
} | {
|
|
111
|
+
readonly ascentRatio: 0.95;
|
|
112
|
+
readonly descentRatio: 0.3;
|
|
113
|
+
readonly actualAscentRatio: 0.75;
|
|
114
|
+
readonly actualDescentRatio: 0.2;
|
|
115
|
+
} | {
|
|
116
|
+
readonly ascentRatio: 0.91;
|
|
117
|
+
readonly descentRatio: 0.21;
|
|
118
|
+
readonly actualAscentRatio: 0.716;
|
|
119
|
+
readonly actualDescentRatio: 0;
|
|
120
|
+
} | {
|
|
121
|
+
readonly ascentRatio: 0.91;
|
|
122
|
+
readonly descentRatio: 0.21;
|
|
123
|
+
readonly actualAscentRatio: 0.716;
|
|
124
|
+
readonly actualDescentRatio: 0;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Detect script for a single grapheme/character
|
|
128
|
+
*/
|
|
129
|
+
export declare function detectGraphemeScript(grapheme: string): ScriptType;
|
|
130
|
+
/**
|
|
131
|
+
* Check if text contains complex script characteristics
|
|
132
|
+
*/
|
|
133
|
+
export declare function isComplexScript(script: ScriptType): boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Check if script requires special glyph shaping
|
|
136
|
+
*/
|
|
137
|
+
export declare function requiresGlyphShaping(script: ScriptType): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Get optimal sample text for measuring font metrics
|
|
140
|
+
*/
|
|
141
|
+
export declare function getSampleTextForScript(script: ScriptType): string;
|
|
142
|
+
//# sourceMappingURL=scriptUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptUtils.d.ts","sourceRoot":"","sources":["../../../src/text/scriptUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAyC7G;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;CASzB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAiDrD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAEjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAajE"}
|