html2canvas-pro 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/html2canvas-pro.esm.js +524 -91
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +524 -91
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +5 -5
- package/dist/lib/css/index.js +2 -0
- package/dist/lib/css/index.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js +273 -0
- package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js.map +1 -0
- package/dist/lib/css/property-descriptors/clip-path.js +190 -0
- package/dist/lib/css/property-descriptors/clip-path.js.map +1 -0
- package/dist/lib/dom/dom-normalizer.js +57 -21
- package/dist/lib/dom/dom-normalizer.js.map +1 -1
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js +283 -36
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js.map +1 -1
- package/dist/lib/render/canvas/effects-renderer.js +11 -6
- package/dist/lib/render/canvas/effects-renderer.js.map +1 -1
- package/dist/lib/render/canvas/text-renderer.js +131 -64
- package/dist/lib/render/canvas/text-renderer.js.map +1 -1
- package/dist/lib/render/effects.js +17 -1
- package/dist/lib/render/effects.js.map +1 -1
- package/dist/lib/render/stacking-context.js +131 -0
- package/dist/lib/render/stacking-context.js.map +1 -1
- package/dist/types/css/index.d.ts +2 -0
- package/dist/types/css/property-descriptors/__tests__/clip-path.test.d.ts +1 -0
- package/dist/types/css/property-descriptors/clip-path.d.ts +62 -0
- package/dist/types/dom/dom-normalizer.d.ts +30 -11
- package/dist/types/render/canvas/effects-renderer.d.ts +2 -1
- package/dist/types/render/canvas/text-renderer.d.ts +20 -2
- package/dist/types/render/effects.d.ts +15 -1
- package/package.json +1 -1
|
@@ -12,12 +12,29 @@
|
|
|
12
12
|
* - Font styles
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.TextRenderer = void 0;
|
|
15
|
+
exports.TextRenderer = exports.hasCJKCharacters = void 0;
|
|
16
16
|
const text_1 = require("../../css/layout/text");
|
|
17
17
|
const color_utilities_1 = require("../../css/types/color-utilities");
|
|
18
18
|
const parser_1 = require("../../css/syntax/parser");
|
|
19
19
|
// iOS font fix - see https://github.com/niklasvh/html2canvas/pull/2645
|
|
20
20
|
const iOSBrokenFonts = ['-apple-system', 'system-ui'];
|
|
21
|
+
/**
|
|
22
|
+
* Detect CJK (Chinese, Japanese, Korean) characters in a string.
|
|
23
|
+
* CJK characters use the ideographic baseline in browsers, which differs
|
|
24
|
+
* from the alphabetic baseline used for Latin script.
|
|
25
|
+
*
|
|
26
|
+
* Covers:
|
|
27
|
+
* U+2E80–U+2FFF CJK Radicals Supplement, Kangxi Radicals
|
|
28
|
+
* U+3000–U+30FF CJK Symbols & Punctuation (。、「」…), Hiragana, Katakana
|
|
29
|
+
* U+3400–U+4DBF CJK Extension A
|
|
30
|
+
* U+4E00–U+9FFF CJK Unified Ideographs (most common Chinese/Japanese/Korean)
|
|
31
|
+
* U+AC00–U+D7AF Hangul Syllables
|
|
32
|
+
* U+F900–U+FAFF CJK Compatibility Ideographs
|
|
33
|
+
* U+FF01–U+FFEF Halfwidth and Fullwidth Forms (A B 1 2 ! ? etc.)
|
|
34
|
+
*/
|
|
35
|
+
const CJK_CHAR_REGEX = /[\u2E80-\u2FFF\u3000-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFFEF]/;
|
|
36
|
+
const hasCJKCharacters = (text) => CJK_CHAR_REGEX.test(text);
|
|
37
|
+
exports.hasCJKCharacters = hasCJKCharacters;
|
|
21
38
|
/**
|
|
22
39
|
* Detect iOS version from user agent
|
|
23
40
|
* Returns null if not iOS or version cannot be determined
|
|
@@ -75,21 +92,50 @@ class TextRenderer {
|
|
|
75
92
|
this.options = deps.options;
|
|
76
93
|
}
|
|
77
94
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
95
|
+
* Iterate grapheme clusters one-by-one, applying correct letter-spacing and
|
|
96
|
+
* per-script baseline for each character.
|
|
97
|
+
*
|
|
98
|
+
* Issue #73: When letter-spacing is non-zero, text must be rendered character by
|
|
99
|
+
* character. This helper centralises two fixes applied during that iteration:
|
|
100
|
+
* 1. Add `letterSpacing` to each character's advance width (was previously
|
|
101
|
+
* omitted, causing characters to render without any spacing).
|
|
102
|
+
* 2. Switch to the ideographic baseline for CJK glyphs so their vertical
|
|
103
|
+
* position matches how browsers lay them out in the DOM.
|
|
104
|
+
*
|
|
105
|
+
* The `renderFn` callback receives (letter, x, y) and performs the actual draw
|
|
106
|
+
* call (fillText or strokeText), allowing fill and stroke paths to share one
|
|
107
|
+
* implementation.
|
|
108
|
+
*/
|
|
109
|
+
iterateLettersWithLetterSpacing(text, letterSpacing, baseline, renderFn) {
|
|
110
|
+
const letters = (0, text_1.segmentGraphemes)(text.text);
|
|
111
|
+
const y = text.bounds.top + baseline;
|
|
112
|
+
let left = text.bounds.left;
|
|
113
|
+
for (const letter of letters) {
|
|
114
|
+
if ((0, exports.hasCJKCharacters)(letter)) {
|
|
115
|
+
const savedBaseline = this.ctx.textBaseline;
|
|
116
|
+
this.ctx.textBaseline = 'ideographic';
|
|
117
|
+
renderFn(letter, left, y);
|
|
118
|
+
this.ctx.textBaseline = savedBaseline;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
renderFn(letter, left, y);
|
|
122
|
+
}
|
|
123
|
+
left += this.ctx.measureText(letter).width + letterSpacing;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Render text with letter-spacing applied (fill pass).
|
|
128
|
+
* When letterSpacing is 0 the whole string is drawn in one call; otherwise each
|
|
129
|
+
* grapheme is drawn individually so spacing and CJK baseline are applied correctly.
|
|
80
130
|
*/
|
|
81
131
|
renderTextWithLetterSpacing(text, letterSpacing, baseline) {
|
|
82
132
|
if (letterSpacing === 0) {
|
|
83
|
-
// Use alphabetic baseline for consistent text positioning across browsers
|
|
84
|
-
// Issue #129: text.bounds.top + text.bounds.height causes text to render too low
|
|
85
133
|
this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + baseline);
|
|
86
134
|
}
|
|
87
135
|
else {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return left + this.ctx.measureText(letter).width;
|
|
92
|
-
}, text.bounds.left);
|
|
136
|
+
this.iterateLettersWithLetterSpacing(text, letterSpacing, baseline, (letter, x, y) => {
|
|
137
|
+
this.ctx.fillText(letter, x, y);
|
|
138
|
+
});
|
|
93
139
|
}
|
|
94
140
|
}
|
|
95
141
|
/**
|
|
@@ -107,8 +153,17 @@ class TextRenderer {
|
|
|
107
153
|
if (styles.webkitTextStrokeWidth && textBound.text.trim().length) {
|
|
108
154
|
this.ctx.strokeStyle = (0, color_utilities_1.asString)(styles.webkitTextStrokeColor);
|
|
109
155
|
this.ctx.lineWidth = styles.webkitTextStrokeWidth;
|
|
110
|
-
this.ctx.lineJoin =
|
|
111
|
-
|
|
156
|
+
this.ctx.lineJoin =
|
|
157
|
+
typeof window !== 'undefined' && !!window.chrome ? 'miter' : 'round';
|
|
158
|
+
if (styles.letterSpacing === 0) {
|
|
159
|
+
this.ctx.strokeText(textBound.text, textBound.bounds.left, textBound.bounds.top + styles.fontSize.number);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.iterateLettersWithLetterSpacing(textBound, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.strokeText(letter, x, y));
|
|
163
|
+
}
|
|
164
|
+
this.ctx.strokeStyle = '';
|
|
165
|
+
this.ctx.lineWidth = 0;
|
|
166
|
+
this.ctx.lineJoin = 'miter';
|
|
112
167
|
}
|
|
113
168
|
break;
|
|
114
169
|
}
|
|
@@ -218,26 +273,47 @@ class TextRenderer {
|
|
|
218
273
|
}
|
|
219
274
|
// Helper method to truncate text and add ellipsis if needed
|
|
220
275
|
truncateTextWithEllipsis(text, maxWidth, letterSpacing) {
|
|
221
|
-
|
|
276
|
+
// Use the Unicode ellipsis character (U+2026) whose width the browser measures
|
|
277
|
+
// as a single glyph, matching native text-overflow behaviour more closely.
|
|
278
|
+
const ellipsis = '\u2026';
|
|
222
279
|
const ellipsisWidth = this.ctx.measureText(ellipsis).width;
|
|
280
|
+
// Segment into grapheme clusters so multi-byte characters (emoji, composed
|
|
281
|
+
// sequences) are never split mid-character.
|
|
282
|
+
const graphemes = (0, text_1.segmentGraphemes)(text);
|
|
223
283
|
if (letterSpacing === 0) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
284
|
+
// Measure the whole candidate string for accuracy: the browser applies
|
|
285
|
+
// kerning and ligatures when rendering multiple glyphs together, so
|
|
286
|
+
// measuring them as one string is more precise than summing individual widths.
|
|
287
|
+
// Binary search reduces measurements from O(n) to O(log n).
|
|
288
|
+
const fits = (n) => this.ctx.measureText(graphemes.slice(0, n).join('')).width + ellipsisWidth <= maxWidth;
|
|
289
|
+
let lo = 0;
|
|
290
|
+
let hi = graphemes.length;
|
|
291
|
+
while (lo < hi) {
|
|
292
|
+
const mid = (lo + hi + 1) >> 1;
|
|
293
|
+
if (fits(mid)) {
|
|
294
|
+
lo = mid;
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
hi = mid - 1;
|
|
298
|
+
}
|
|
227
299
|
}
|
|
228
|
-
return
|
|
300
|
+
return graphemes.slice(0, lo).join('') + ellipsis;
|
|
229
301
|
}
|
|
230
302
|
else {
|
|
231
|
-
const letters = (0, text_1.segmentGraphemes)(text);
|
|
232
303
|
let width = ellipsisWidth;
|
|
233
|
-
|
|
234
|
-
for (const letter of
|
|
235
|
-
const
|
|
236
|
-
|
|
304
|
+
const result = [];
|
|
305
|
+
for (const letter of graphemes) {
|
|
306
|
+
const glyphWidth = this.ctx.measureText(letter).width;
|
|
307
|
+
// Check against glyph width only (no trailing spacing): letter-spacing
|
|
308
|
+
// is applied *between* characters, not after the final glyph. Using
|
|
309
|
+
// `glyphWidth + letterSpacing` would incorrectly discard letters that
|
|
310
|
+
// fit as the last character before the ellipsis.
|
|
311
|
+
if (width + glyphWidth > maxWidth) {
|
|
237
312
|
break;
|
|
238
313
|
}
|
|
239
314
|
result.push(letter);
|
|
240
|
-
|
|
315
|
+
// Accumulate glyph + inter-character spacing for the *next* iteration.
|
|
316
|
+
width += glyphWidth + letterSpacing;
|
|
241
317
|
}
|
|
242
318
|
return result.join('') + ellipsis;
|
|
243
319
|
}
|
|
@@ -313,6 +389,8 @@ class TextRenderer {
|
|
|
313
389
|
const firstBound = lastLine[0];
|
|
314
390
|
const availableWidth = containerBounds.width - (firstBound.bounds.left - containerBounds.left);
|
|
315
391
|
const truncatedText = this.truncateTextWithEllipsis(lastLineText, availableWidth, styles.letterSpacing);
|
|
392
|
+
// Build TextBounds once; reused for fill and stroke without re-allocating.
|
|
393
|
+
const truncatedBounds = new text_1.TextBounds(truncatedText, firstBound.bounds);
|
|
316
394
|
paintOrder.forEach((paintOrderLayer) => {
|
|
317
395
|
switch (paintOrderLayer) {
|
|
318
396
|
case 0 /* PAINT_ORDER_LAYER.FILL */:
|
|
@@ -321,28 +399,24 @@ class TextRenderer {
|
|
|
321
399
|
this.ctx.fillText(truncatedText, firstBound.bounds.left, firstBound.bounds.top + styles.fontSize.number);
|
|
322
400
|
}
|
|
323
401
|
else {
|
|
324
|
-
|
|
325
|
-
letters.reduce((left, letter) => {
|
|
326
|
-
this.ctx.fillText(letter, left, firstBound.bounds.top + styles.fontSize.number);
|
|
327
|
-
return left + this.ctx.measureText(letter).width + styles.letterSpacing;
|
|
328
|
-
}, firstBound.bounds.left);
|
|
402
|
+
this.iterateLettersWithLetterSpacing(truncatedBounds, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.fillText(letter, x, y));
|
|
329
403
|
}
|
|
330
404
|
break;
|
|
331
405
|
case 1 /* PAINT_ORDER_LAYER.STROKE */:
|
|
332
406
|
if (styles.webkitTextStrokeWidth && truncatedText.trim().length) {
|
|
333
407
|
this.ctx.strokeStyle = (0, color_utilities_1.asString)(styles.webkitTextStrokeColor);
|
|
334
408
|
this.ctx.lineWidth = styles.webkitTextStrokeWidth;
|
|
335
|
-
this.ctx.lineJoin =
|
|
409
|
+
this.ctx.lineJoin =
|
|
410
|
+
typeof window !== 'undefined' && !!window.chrome ? 'miter' : 'round';
|
|
336
411
|
if (styles.letterSpacing === 0) {
|
|
337
412
|
this.ctx.strokeText(truncatedText, firstBound.bounds.left, firstBound.bounds.top + styles.fontSize.number);
|
|
338
413
|
}
|
|
339
414
|
else {
|
|
340
|
-
|
|
341
|
-
letters.reduce((left, letter) => {
|
|
342
|
-
this.ctx.strokeText(letter, left, firstBound.bounds.top + styles.fontSize.number);
|
|
343
|
-
return left + this.ctx.measureText(letter).width + styles.letterSpacing;
|
|
344
|
-
}, firstBound.bounds.left);
|
|
415
|
+
this.iterateLettersWithLetterSpacing(truncatedBounds, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.strokeText(letter, x, y));
|
|
345
416
|
}
|
|
417
|
+
this.ctx.strokeStyle = '';
|
|
418
|
+
this.ctx.lineWidth = 0;
|
|
419
|
+
this.ctx.lineJoin = 'miter';
|
|
346
420
|
}
|
|
347
421
|
break;
|
|
348
422
|
}
|
|
@@ -386,19 +460,18 @@ class TextRenderer {
|
|
|
386
460
|
// If ellipsis is needed, render the truncated text once
|
|
387
461
|
if (needsEllipsis) {
|
|
388
462
|
const firstBound = text.textBounds[0];
|
|
463
|
+
// Build TextBounds once; reused across paint layers and every shadow pass
|
|
464
|
+
// to avoid repeated allocation inside forEach callbacks.
|
|
465
|
+
const truncatedBounds = new text_1.TextBounds(truncatedText, firstBound.bounds);
|
|
389
466
|
paintOrder.forEach((paintOrderLayer) => {
|
|
390
467
|
switch (paintOrderLayer) {
|
|
391
|
-
case 0 /* PAINT_ORDER_LAYER.FILL */:
|
|
468
|
+
case 0 /* PAINT_ORDER_LAYER.FILL */: {
|
|
392
469
|
this.ctx.fillStyle = (0, color_utilities_1.asString)(styles.color);
|
|
393
470
|
if (styles.letterSpacing === 0) {
|
|
394
471
|
this.ctx.fillText(truncatedText, firstBound.bounds.left, firstBound.bounds.top + styles.fontSize.number);
|
|
395
472
|
}
|
|
396
473
|
else {
|
|
397
|
-
|
|
398
|
-
letters.reduce((left, letter) => {
|
|
399
|
-
this.ctx.fillText(letter, left, firstBound.bounds.top + styles.fontSize.number);
|
|
400
|
-
return left + this.ctx.measureText(letter).width + styles.letterSpacing;
|
|
401
|
-
}, firstBound.bounds.left);
|
|
474
|
+
this.iterateLettersWithLetterSpacing(truncatedBounds, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.fillText(letter, x, y));
|
|
402
475
|
}
|
|
403
476
|
const textShadows = styles.textShadow;
|
|
404
477
|
if (textShadows.length && truncatedText.trim().length) {
|
|
@@ -414,11 +487,7 @@ class TextRenderer {
|
|
|
414
487
|
this.ctx.fillText(truncatedText, firstBound.bounds.left, firstBound.bounds.top + styles.fontSize.number);
|
|
415
488
|
}
|
|
416
489
|
else {
|
|
417
|
-
|
|
418
|
-
letters.reduce((left, letter) => {
|
|
419
|
-
this.ctx.fillText(letter, left, firstBound.bounds.top + styles.fontSize.number);
|
|
420
|
-
return left + this.ctx.measureText(letter).width + styles.letterSpacing;
|
|
421
|
-
}, firstBound.bounds.left);
|
|
490
|
+
this.iterateLettersWithLetterSpacing(truncatedBounds, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.fillText(letter, x, y));
|
|
422
491
|
}
|
|
423
492
|
});
|
|
424
493
|
this.ctx.shadowColor = '';
|
|
@@ -427,21 +496,22 @@ class TextRenderer {
|
|
|
427
496
|
this.ctx.shadowBlur = 0;
|
|
428
497
|
}
|
|
429
498
|
break;
|
|
499
|
+
}
|
|
430
500
|
case 1 /* PAINT_ORDER_LAYER.STROKE */:
|
|
431
501
|
if (styles.webkitTextStrokeWidth && truncatedText.trim().length) {
|
|
432
502
|
this.ctx.strokeStyle = (0, color_utilities_1.asString)(styles.webkitTextStrokeColor);
|
|
433
503
|
this.ctx.lineWidth = styles.webkitTextStrokeWidth;
|
|
434
|
-
this.ctx.lineJoin =
|
|
504
|
+
this.ctx.lineJoin =
|
|
505
|
+
typeof window !== 'undefined' && !!window.chrome ? 'miter' : 'round';
|
|
435
506
|
if (styles.letterSpacing === 0) {
|
|
436
507
|
this.ctx.strokeText(truncatedText, firstBound.bounds.left, firstBound.bounds.top + styles.fontSize.number);
|
|
437
508
|
}
|
|
438
509
|
else {
|
|
439
|
-
|
|
440
|
-
letters.reduce((left, letter) => {
|
|
441
|
-
this.ctx.strokeText(letter, left, firstBound.bounds.top + styles.fontSize.number);
|
|
442
|
-
return left + this.ctx.measureText(letter).width + styles.letterSpacing;
|
|
443
|
-
}, firstBound.bounds.left);
|
|
510
|
+
this.iterateLettersWithLetterSpacing(truncatedBounds, styles.letterSpacing, styles.fontSize.number, (letter, x, y) => this.ctx.strokeText(letter, x, y));
|
|
444
511
|
}
|
|
512
|
+
this.ctx.strokeStyle = '';
|
|
513
|
+
this.ctx.lineWidth = 0;
|
|
514
|
+
this.ctx.lineJoin = 'miter';
|
|
445
515
|
}
|
|
446
516
|
break;
|
|
447
517
|
}
|
|
@@ -452,7 +522,7 @@ class TextRenderer {
|
|
|
452
522
|
text.textBounds.forEach((text) => {
|
|
453
523
|
paintOrder.forEach((paintOrderLayer) => {
|
|
454
524
|
switch (paintOrderLayer) {
|
|
455
|
-
case 0 /* PAINT_ORDER_LAYER.FILL */:
|
|
525
|
+
case 0 /* PAINT_ORDER_LAYER.FILL */: {
|
|
456
526
|
this.ctx.fillStyle = (0, color_utilities_1.asString)(styles.color);
|
|
457
527
|
this.renderTextWithLetterSpacing(text, styles.letterSpacing, styles.fontSize.number);
|
|
458
528
|
const textShadows = styles.textShadow;
|
|
@@ -476,29 +546,26 @@ class TextRenderer {
|
|
|
476
546
|
this.renderTextDecoration(text.bounds, styles);
|
|
477
547
|
}
|
|
478
548
|
break;
|
|
479
|
-
|
|
549
|
+
}
|
|
550
|
+
case 1 /* PAINT_ORDER_LAYER.STROKE */: {
|
|
480
551
|
if (styles.webkitTextStrokeWidth && text.text.trim().length) {
|
|
481
552
|
this.ctx.strokeStyle = (0, color_utilities_1.asString)(styles.webkitTextStrokeColor);
|
|
482
553
|
this.ctx.lineWidth = styles.webkitTextStrokeWidth;
|
|
483
|
-
this.ctx.lineJoin =
|
|
484
|
-
|
|
485
|
-
// Previously used text.bounds.height which caused stroke to render too low
|
|
554
|
+
this.ctx.lineJoin =
|
|
555
|
+
typeof window !== 'undefined' && !!window.chrome ? 'miter' : 'round';
|
|
486
556
|
const baseline = styles.fontSize.number;
|
|
487
557
|
if (styles.letterSpacing === 0) {
|
|
488
558
|
this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + baseline);
|
|
489
559
|
}
|
|
490
560
|
else {
|
|
491
|
-
|
|
492
|
-
letters.reduce((left, letter) => {
|
|
493
|
-
this.ctx.strokeText(letter, left, text.bounds.top + baseline);
|
|
494
|
-
return left + this.ctx.measureText(letter).width;
|
|
495
|
-
}, text.bounds.left);
|
|
561
|
+
this.iterateLettersWithLetterSpacing(text, styles.letterSpacing, baseline, (letter, x, y) => this.ctx.strokeText(letter, x, y));
|
|
496
562
|
}
|
|
563
|
+
this.ctx.strokeStyle = '';
|
|
564
|
+
this.ctx.lineWidth = 0;
|
|
565
|
+
this.ctx.lineJoin = 'miter';
|
|
497
566
|
}
|
|
498
|
-
this.ctx.strokeStyle = '';
|
|
499
|
-
this.ctx.lineWidth = 0;
|
|
500
|
-
this.ctx.lineJoin = 'miter';
|
|
501
567
|
break;
|
|
568
|
+
}
|
|
502
569
|
}
|
|
503
570
|
});
|
|
504
571
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-renderer.js","sourceRoot":"","sources":["../../../../src/render/canvas/text-renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-renderer.js","sourceRoot":"","sources":["../../../../src/render/canvas/text-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOpacityEffect = exports.isClipEffect = exports.isTransformEffect = exports.OpacityEffect = exports.ClipEffect = exports.TransformEffect = void 0;
|
|
3
|
+
exports.isClipPathEffect = exports.isOpacityEffect = exports.isClipEffect = exports.isTransformEffect = exports.ClipPathEffect = exports.OpacityEffect = exports.ClipEffect = exports.TransformEffect = void 0;
|
|
4
4
|
class TransformEffect {
|
|
5
5
|
constructor(offsetX, offsetY, matrix) {
|
|
6
6
|
this.offsetX = offsetX;
|
|
@@ -27,10 +27,26 @@ class OpacityEffect {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.OpacityEffect = OpacityEffect;
|
|
30
|
+
/**
|
|
31
|
+
* Clips the element and all its descendants to an arbitrary canvas-drawn shape.
|
|
32
|
+
* The `applyClip` callback is responsible for calling beginPath, the shape
|
|
33
|
+
* operations, and ctx.clip() — giving each shape type full control over how
|
|
34
|
+
* the path is constructed (arc, ellipse, lineTo, Path2D, etc.).
|
|
35
|
+
*/
|
|
36
|
+
class ClipPathEffect {
|
|
37
|
+
constructor(applyClip) {
|
|
38
|
+
this.applyClip = applyClip;
|
|
39
|
+
this.type = 3 /* EffectType.CLIP_PATH */;
|
|
40
|
+
this.target = 2 /* EffectTarget.BACKGROUND_BORDERS */ | 4 /* EffectTarget.CONTENT */;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.ClipPathEffect = ClipPathEffect;
|
|
30
44
|
const isTransformEffect = (effect) => effect.type === 0 /* EffectType.TRANSFORM */;
|
|
31
45
|
exports.isTransformEffect = isTransformEffect;
|
|
32
46
|
const isClipEffect = (effect) => effect.type === 1 /* EffectType.CLIP */;
|
|
33
47
|
exports.isClipEffect = isClipEffect;
|
|
34
48
|
const isOpacityEffect = (effect) => effect.type === 2 /* EffectType.OPACITY */;
|
|
35
49
|
exports.isOpacityEffect = isOpacityEffect;
|
|
50
|
+
const isClipPathEffect = (effect) => effect.type === 3 /* EffectType.CLIP_PATH */;
|
|
51
|
+
exports.isClipPathEffect = isClipPathEffect;
|
|
36
52
|
//# sourceMappingURL=effects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/render/effects.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/render/effects.ts"],"names":[],"mappings":";;;AAoBA,MAAa,eAAe;IAIxB,YACa,OAAe,EACf,OAAe,EACf,MAAc;QAFd,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAQ;QANlB,SAAI,gCAAoC;QACxC,WAAM,GAAW,sEAAsD,CAAC;IAM9E,CAAC;CACP;AATD,0CASC;AAED,MAAa,UAAU;IAGnB,YACa,IAAY,EACZ,MAAoB;QADpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAc;QAJxB,SAAI,2BAA+B;IAKzC,CAAC;CACP;AAPD,gCAOC;AAED,MAAa,aAAa;IAItB,YAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAH3B,SAAI,8BAAkC;QACtC,WAAM,GAAW,sEAAsD,CAAC;IAE1C,CAAC;CAC3C;AALD,sCAKC;AAED;;;;;GAKG;AACH,MAAa,cAAc;IAIvB,YAAqB,SAAkD;QAAlD,cAAS,GAAT,SAAS,CAAyC;QAH9D,SAAI,gCAAoC;QACxC,WAAM,GAAW,sEAAsD,CAAC;IAEP,CAAC;CAC9E;AALD,wCAKC;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAAsB,EAA6B,EAAE,CACnF,MAAM,CAAC,IAAI,iCAAyB,CAAC;AAD5B,QAAA,iBAAiB,qBACW;AAClC,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAwB,EAAE,CAAC,MAAM,CAAC,IAAI,4BAAoB,CAAC;AAAjG,QAAA,YAAY,gBAAqF;AACvG,MAAM,eAAe,GAAG,CAAC,MAAsB,EAA2B,EAAE,CAAC,MAAM,CAAC,IAAI,+BAAuB,CAAC;AAA1G,QAAA,eAAe,mBAA2F;AAChH,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAA4B,EAAE,CACjF,MAAM,CAAC,IAAI,iCAAyB,CAAC;AAD5B,QAAA,gBAAgB,oBACY"}
|
|
@@ -61,6 +61,12 @@ class ElementPaint {
|
|
|
61
61
|
this.effects.push(new effects_1.ClipEffect(paddingBox, 4 /* EffectTarget.CONTENT */));
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
if (this.container.styles.clipPath.type !== 0 /* CLIP_PATH_TYPE.NONE */) {
|
|
65
|
+
const clipPathEffect = buildClipPathEffect(this.container.styles.clipPath, this.container.bounds);
|
|
66
|
+
if (clipPathEffect) {
|
|
67
|
+
this.effects.push(clipPathEffect);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
getEffects(target) {
|
|
66
72
|
let inFlow = [2 /* POSITION.ABSOLUTE */, 3 /* POSITION.FIXED */].indexOf(this.container.styles.position) === -1;
|
|
@@ -88,6 +94,131 @@ class ElementPaint {
|
|
|
88
94
|
}
|
|
89
95
|
}
|
|
90
96
|
exports.ElementPaint = ElementPaint;
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a `closest-side` or `farthest-side` shape-radius keyword to pixels
|
|
99
|
+
* for a single axis. Used by both `circle()` (per-axis) and `ellipse()`.
|
|
100
|
+
*
|
|
101
|
+
* @param r - The ShapeRadius (keyword or length-percentage).
|
|
102
|
+
* @param center - Absolute center coordinate on this axis (cx or cy).
|
|
103
|
+
* @param start - Absolute start of the reference box on this axis.
|
|
104
|
+
* @param end - Absolute end of the reference box on this axis.
|
|
105
|
+
* @param dimRef - Reference dimension for resolving a length-percentage value.
|
|
106
|
+
*/
|
|
107
|
+
const resolveAxisRadius = (r, center, start, end, dimRef) => {
|
|
108
|
+
if (r === 'closest-side')
|
|
109
|
+
return Math.min(center - start, end - center);
|
|
110
|
+
if (r === 'farthest-side')
|
|
111
|
+
return Math.max(center - start, end - center);
|
|
112
|
+
return (0, length_percentage_1.getAbsoluteValue)(r, dimRef);
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Convert a parsed ClipPathValue + element bounds into a ClipPathEffect whose
|
|
116
|
+
* `applyClip` callback draws the clip shape directly onto the canvas context.
|
|
117
|
+
*
|
|
118
|
+
* All coordinates are computed in page-absolute space at construction time so
|
|
119
|
+
* the callback itself is allocation-free and executes synchronously.
|
|
120
|
+
*/
|
|
121
|
+
const buildClipPathEffect = (clipPath, bounds) => {
|
|
122
|
+
const { left: bLeft, top: bTop, width: bWidth, height: bHeight } = bounds;
|
|
123
|
+
switch (clipPath.type) {
|
|
124
|
+
case 1 /* CLIP_PATH_TYPE.INSET */: {
|
|
125
|
+
const iLeft = (0, length_percentage_1.getAbsoluteValue)(clipPath.left, bWidth);
|
|
126
|
+
const iTop = (0, length_percentage_1.getAbsoluteValue)(clipPath.top, bHeight);
|
|
127
|
+
const x = bLeft + iLeft;
|
|
128
|
+
const y = bTop + iTop;
|
|
129
|
+
// Clamp to zero: per CSS spec, overlapping insets produce an empty shape.
|
|
130
|
+
const w = Math.max(0, bWidth - iLeft - (0, length_percentage_1.getAbsoluteValue)(clipPath.right, bWidth));
|
|
131
|
+
const h = Math.max(0, bHeight - iTop - (0, length_percentage_1.getAbsoluteValue)(clipPath.bottom, bHeight));
|
|
132
|
+
return new effects_1.ClipPathEffect((ctx) => {
|
|
133
|
+
ctx.beginPath();
|
|
134
|
+
ctx.rect(x, y, w, h);
|
|
135
|
+
ctx.clip();
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
case 2 /* CLIP_PATH_TYPE.CIRCLE */: {
|
|
139
|
+
const cx = bLeft + (0, length_percentage_1.getAbsoluteValue)(clipPath.cx, bWidth);
|
|
140
|
+
const cy = bTop + (0, length_percentage_1.getAbsoluteValue)(clipPath.cy, bHeight);
|
|
141
|
+
let r;
|
|
142
|
+
if (clipPath.radius === 'closest-side') {
|
|
143
|
+
r = Math.min(cx - bLeft, cy - bTop, bLeft + bWidth - cx, bTop + bHeight - cy);
|
|
144
|
+
}
|
|
145
|
+
else if (clipPath.radius === 'farthest-side') {
|
|
146
|
+
r = Math.max(cx - bLeft, cy - bTop, bLeft + bWidth - cx, bTop + bHeight - cy);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Per CSS spec, percentage is relative to sqrt(w² + h²) / sqrt(2).
|
|
150
|
+
r = (0, length_percentage_1.getAbsoluteValue)(clipPath.radius, Math.sqrt(bWidth * bWidth + bHeight * bHeight) / Math.SQRT2);
|
|
151
|
+
}
|
|
152
|
+
return new effects_1.ClipPathEffect((ctx) => {
|
|
153
|
+
ctx.beginPath();
|
|
154
|
+
ctx.arc(cx, cy, Math.max(0, r), 0, Math.PI * 2);
|
|
155
|
+
ctx.clip();
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
case 3 /* CLIP_PATH_TYPE.ELLIPSE */: {
|
|
159
|
+
const cx = bLeft + (0, length_percentage_1.getAbsoluteValue)(clipPath.cx, bWidth);
|
|
160
|
+
const cy = bTop + (0, length_percentage_1.getAbsoluteValue)(clipPath.cy, bHeight);
|
|
161
|
+
const rx = resolveAxisRadius(clipPath.rx, cx, bLeft, bLeft + bWidth, bWidth);
|
|
162
|
+
const ry = resolveAxisRadius(clipPath.ry, cy, bTop, bTop + bHeight, bHeight);
|
|
163
|
+
return new effects_1.ClipPathEffect((ctx) => {
|
|
164
|
+
ctx.beginPath();
|
|
165
|
+
ctx.ellipse(cx, cy, Math.max(0, rx), Math.max(0, ry), 0, 0, Math.PI * 2);
|
|
166
|
+
ctx.clip();
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
case 4 /* CLIP_PATH_TYPE.POLYGON */: {
|
|
170
|
+
// Pre-compute all vertices in page-absolute coordinates.
|
|
171
|
+
const absPoints = clipPath.points.map(([px, py]) => [bLeft + (0, length_percentage_1.getAbsoluteValue)(px, bWidth), bTop + (0, length_percentage_1.getAbsoluteValue)(py, bHeight)]);
|
|
172
|
+
return new effects_1.ClipPathEffect((ctx) => {
|
|
173
|
+
ctx.beginPath();
|
|
174
|
+
if (absPoints.length > 0) {
|
|
175
|
+
ctx.moveTo(absPoints[0][0], absPoints[0][1]);
|
|
176
|
+
for (let i = 1; i < absPoints.length; i++) {
|
|
177
|
+
ctx.lineTo(absPoints[i][0], absPoints[i][1]);
|
|
178
|
+
}
|
|
179
|
+
ctx.closePath();
|
|
180
|
+
}
|
|
181
|
+
// Calling clip() with an empty path (zero points) is intentional:
|
|
182
|
+
// it clips the entire region to nothing, which is the correct
|
|
183
|
+
// behaviour for a degenerate polygon() per the CSS spec.
|
|
184
|
+
ctx.clip();
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
case 5 /* CLIP_PATH_TYPE.PATH */: {
|
|
188
|
+
// path() coordinates are in the element's local space (0,0 = element top-left).
|
|
189
|
+
// We temporarily translate the canvas origin to the element's position, clip
|
|
190
|
+
// with the Path2D, then restore only the transform matrix (not the clipping
|
|
191
|
+
// region) via setTransform so the clip persists for the enclosing
|
|
192
|
+
// ctx.save() / ctx.restore() pair managed by EffectsRenderer.
|
|
193
|
+
//
|
|
194
|
+
// When the element also has a CSS transform, that transform was already applied
|
|
195
|
+
// by a preceding TransformEffect, so the path coordinates end up correctly in
|
|
196
|
+
// the element's transformed local space — matching browser behaviour.
|
|
197
|
+
const { d } = clipPath;
|
|
198
|
+
return new effects_1.ClipPathEffect((ctx) => {
|
|
199
|
+
try {
|
|
200
|
+
const savedTransform = ctx.getTransform();
|
|
201
|
+
ctx.translate(bLeft, bTop);
|
|
202
|
+
ctx.clip(new Path2D(d));
|
|
203
|
+
ctx.setTransform(savedTransform);
|
|
204
|
+
}
|
|
205
|
+
catch (_e) {
|
|
206
|
+
// Path2D or getTransform/setTransform not supported in this environment.
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
case 0 /* CLIP_PATH_TYPE.NONE */:
|
|
211
|
+
return null;
|
|
212
|
+
default: {
|
|
213
|
+
// Exhaustiveness guard: if a new CLIP_PATH_TYPE is added in the future
|
|
214
|
+
// without a corresponding case above, TypeScript will raise a compile-time
|
|
215
|
+
// error here rather than silently falling through.
|
|
216
|
+
const _exhaustive = clipPath;
|
|
217
|
+
void _exhaustive;
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
};
|
|
91
222
|
const parseStackTree = (parent, stackingContext, realStackingContext, listItems) => {
|
|
92
223
|
parent.container.elements.forEach((child) => {
|
|
93
224
|
const treatAsRealStackingContext = (0, bitwise_1.contains)(child.flags, 4 /* FLAGS.CREATES_REAL_STACKING_CONTEXT */);
|