modern-text 0.2.20 → 0.2.22
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/index.cjs +82 -64
- package/dist/index.d.cts +14 -6
- package/dist/index.d.mts +14 -6
- package/dist/index.d.ts +14 -6
- package/dist/index.js +2 -2
- package/dist/index.mjs +83 -66
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -68,7 +68,7 @@ function drawPath(options) {
|
|
|
68
68
|
shadowColor: options.shadowColor
|
|
69
69
|
};
|
|
70
70
|
if (clipRect) {
|
|
71
|
-
ctx.rect(clipRect.
|
|
71
|
+
ctx.rect(clipRect.left, clipRect.top, clipRect.width, clipRect.height);
|
|
72
72
|
ctx.clip();
|
|
73
73
|
ctx.beginPath();
|
|
74
74
|
}
|
|
@@ -188,8 +188,8 @@ class Character {
|
|
|
188
188
|
return this;
|
|
189
189
|
}
|
|
190
190
|
const { unitsPerEm, ascender, descender, os2, post } = font;
|
|
191
|
-
const { content, computedStyle, boundingBox
|
|
192
|
-
const {
|
|
191
|
+
const { content, computedStyle, boundingBox } = this;
|
|
192
|
+
const { height } = boundingBox;
|
|
193
193
|
const { fontSize } = computedStyle;
|
|
194
194
|
const rate = unitsPerEm / fontSize;
|
|
195
195
|
const glyphWidth = font.getAdvanceWidth(content, fontSize);
|
|
@@ -207,8 +207,6 @@ class Character {
|
|
|
207
207
|
this.yStrikeoutSize = yStrikeoutSize;
|
|
208
208
|
this.baseline = baseline;
|
|
209
209
|
this.centerDiviation = 0.5 * height - baseline;
|
|
210
|
-
this.glyphBox = isVertical ? new modernPath2d.BoundingBox(left, top, glyphHeight, glyphWidth) : new modernPath2d.BoundingBox(left, top, glyphWidth, glyphHeight);
|
|
211
|
-
this.centerPoint = this.glyphBox.getCenterPoint();
|
|
212
210
|
return this;
|
|
213
211
|
}
|
|
214
212
|
updatePath() {
|
|
@@ -290,6 +288,8 @@ class Character {
|
|
|
290
288
|
strokeWidth: computedStyle.textStrokeWidth ? computedStyle.textStrokeWidth * fontSize * 0.03 : 0
|
|
291
289
|
};
|
|
292
290
|
this.path = path;
|
|
291
|
+
this.glyphBox = this.getGlyphBoundingBox();
|
|
292
|
+
this.center = this.glyphBox.getCenterPoint();
|
|
293
293
|
return this;
|
|
294
294
|
}
|
|
295
295
|
update() {
|
|
@@ -378,11 +378,11 @@ class Character {
|
|
|
378
378
|
return cmd;
|
|
379
379
|
});
|
|
380
380
|
}
|
|
381
|
-
|
|
381
|
+
getGlyphMinMax(min, max) {
|
|
382
382
|
return this.path.getMinMax(min, max);
|
|
383
383
|
}
|
|
384
|
-
|
|
385
|
-
return this.path.getBoundingBox();
|
|
384
|
+
getGlyphBoundingBox(withStyle) {
|
|
385
|
+
return this.path.getBoundingBox(withStyle);
|
|
386
386
|
}
|
|
387
387
|
drawTo(ctx, config = {}) {
|
|
388
388
|
drawPath({
|
|
@@ -502,7 +502,7 @@ class Effector extends Feature {
|
|
|
502
502
|
const boxes = [];
|
|
503
503
|
characters.forEach((character) => {
|
|
504
504
|
effects?.forEach((style) => {
|
|
505
|
-
const aabb = character.
|
|
505
|
+
const aabb = character.glyphBox.clone();
|
|
506
506
|
const m = this.getTransform2D(style);
|
|
507
507
|
tempV1.set(aabb.left, aabb.top);
|
|
508
508
|
tempV1.applyMatrix3(m);
|
|
@@ -549,11 +549,27 @@ var __publicField$1 = (obj, key, value) => {
|
|
|
549
549
|
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
550
550
|
return value;
|
|
551
551
|
};
|
|
552
|
-
|
|
552
|
+
const defaultHighlightRefer = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIgdmlld0JveD0iMCAwIDcyIDcyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjQwMjkgMjhIMzUuMTU5NFYzMy4xNzcxQzM1Ljk4MjEgMzIuMzExNSAzNi45NzEgMzEuODczNyAzOC4wOTQ4IDMxLjg3MzdDMzkuNjY3NiAzMS44NzM3IDQwLjkxNjYgMzIuNDI5NSA0MS44MzkgMzMuNTQzN0w0MS44NDAzIDMzLjU0NTNDNDIuNjcxNyAzNC41NzA1IDQzLjA5MTUgMzUuODU1OSA0My4wOTE1IDM3LjM4NzdDNDMuMDkxNSAzOC45NzYxIDQyLjY3MjkgNDAuMzAyOCA0MS44MTgzIDQxLjMzMDRMNDEuODE3MSA0MS4zMzE4QzQwLjg3MzEgNDIuNDQ2MSAzOS41ODMyIDQzIDM3Ljk3MjEgNDNDMzYuNzQ3NyA0MyAzNS43NDg4IDQyLjY1OTkgMzQuOTk1OCA0MS45NjkzVjQyLjcyNDdIMzIuNDAyOVYyOFpNMzcuNTQyOCAzNC4wOTI0QzM2Ljg1NDkgMzQuMDkyNCAzNi4zMDE0IDM0LjM1NjEgMzUuODQ4NyAzNC45MDA0TDM1Ljg0NTIgMzQuOTA0NkMzNS4zMzU4IDM1LjQ4NTMgMzUuMDc3NiAzNi4yOTc2IDM1LjA3NzYgMzcuMzQ4NFYzNy41MDU3QzM1LjA3NzYgMzguNDY0IDM1LjI3NzIgMzkuMjQ0MyAzNS42OTQzIDM5LjgyNzlDMzYuMTQ0MSA0MC40NTg3IDM2Ljc3MjYgNDAuNzgxMyAzNy42MjQ1IDQwLjc4MTNDMzguNTg3NCA0MC43ODEzIDM5LjI3MDcgNDAuNDUyNyAzOS43MTUyIDM5LjgxMjdDNDAuMDcyOCAzOS4yNjg0IDQwLjI3MzcgMzguNDY3MyA0MC4yNzM3IDM3LjM4NzdDNDAuMjczNyAzNi4zMTA1IDQwLjA1MzMgMzUuNTMxMyAzOS42NzgzIDM1LjAwNzdDMzkuMjM3MSAzNC40MDcxIDM4LjUzNDIgMzQuMDkyNCAzNy41NDI4IDM0LjA5MjRaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZD0iTTQ5Ljg2MTQgMzEuODczN0M0OC4xNTM1IDMxLjg3MzcgNDYuODAxNiAzMi40MjM5IDQ1LjgzNDggMzMuNTM5MkM0NC45MzcgMzQuNTQ3MiA0NC40OTY2IDM1Ljg1NiA0NC40OTY2IDM3LjQyN0M0NC40OTY2IDM5LjAzNjggNDQuOTM2NyA0MC4zNjU5IDQ1Ljg1NTkgNDEuMzk0M0M0Ni44MDMxIDQyLjQ3MDYgNDguMTM0OCA0MyA0OS44MjA1IDQzQzUxLjIyNiA0MyA1Mi4zODI2IDQyLjY1NjMgNTMuMjQ3OSA0MS45Njk3QzU0LjEzNTkgNDEuMjYxNCA1NC43MDYxIDQwLjE4ODcgNTQuOTU3MyAzOC43NzkxTDU1IDM4LjUzOTdINTIuMjQ4NEw1Mi4yMjU5IDM4LjcyMDFDNTIuMTM3OSAzOS40MjUxIDUxLjg5MjUgMzkuOTI3OCA1MS41MTA5IDQwLjI1NThDNTEuMTI5NSA0MC41ODM1IDUwLjU4MzEgNDAuNzYxNiA0OS44NDA5IDQwLjc2MTZDNDkuMDAwMSA0MC43NjE2IDQ4LjM5NDkgNDAuNDcxNSA0Ny45OTA3IDM5LjkyMzdMNDcuOTg3NCAzOS45MTk0QzQ3LjUzNTYgMzkuMzQwMSA0Ny4zMTQ0IDM4LjUwNjIgNDcuMzE0NCAzNy40MDc0QzQ3LjMxNDQgMzYuMzMyMiA0Ny41NTQ0IDM1LjUxNzcgNDguMDA1OCAzNC45NTY4TDQ4LjAwNzggMzQuOTU0M0M0OC40NTM3IDM0LjM4MjUgNDkuMDYxOCAzNC4xMTIxIDQ5Ljg2MTQgMzQuMTEyMUM1MC41MjMgMzQuMTEyMSA1MS4wNDUxIDM0LjI2MTUgNTEuNDI3MiAzNC41NDA3QzUxLjc4ODQgMzQuODE5NCA1Mi4wNTMgMzUuMjQ0NyA1Mi4xODgxIDM1Ljg1NzFMNTIuMjIzOSAzNi4wMTk0SDU0Ljk1NDhMNTQuOTE3IDM1Ljc4MzVDNTQuNzA2MyAzNC40NjYgNTQuMTUzNiAzMy40NzAxIDUzLjI2MzQgMzIuODAxOUw1My4yNjAyIDMyLjc5OTVDNTIuMzk1MSAzMi4xNzU1IDUxLjI2MjEgMzEuODczNyA0OS44NjE0IDMxLjg3MzdaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS43NTYxIDI4LjI3NTNIMjIuNzQ0TDE3IDQyLjcyNDdIMjAuMDE0MUwyMS4zNDI5IDM5LjIwNDlIMjcuMTU3MkwyOC40ODYgNDIuNzI0N0gzMS41MDAxTDI1Ljc1NjEgMjguMjc1M1pNMjIuMjEyNSAzNi45MDc2TDI0LjI1OTYgMzEuNDUzOUwyNi4yODg1IDM2LjkwNzZIMjIuMjEyNVoiIGZpbGw9IiMyMjI1MjkiLz48L3N2Zz4=";
|
|
553
|
+
const _Highlighter = class _Highlighter extends Feature {
|
|
553
554
|
constructor() {
|
|
554
555
|
super(...arguments);
|
|
555
556
|
__publicField$1(this, "paths", []);
|
|
556
557
|
}
|
|
558
|
+
static get refer() {
|
|
559
|
+
return this._refer;
|
|
560
|
+
}
|
|
561
|
+
static set refer(refer) {
|
|
562
|
+
this._refer = refer;
|
|
563
|
+
this.parsedRefer = modernPath2d.parseSvg(refer);
|
|
564
|
+
}
|
|
565
|
+
getReferBoundingBox() {
|
|
566
|
+
const max = modernPath2d.Vector2.MIN;
|
|
567
|
+
const min = modernPath2d.Vector2.MAX;
|
|
568
|
+
_Highlighter.parsedRefer.forEach((path) => {
|
|
569
|
+
path.getMinMax(min, max);
|
|
570
|
+
});
|
|
571
|
+
return new modernPath2d.BoundingBox(min.x, min.y, max.x - min.x, max.y - min.y);
|
|
572
|
+
}
|
|
557
573
|
getBoundingBox() {
|
|
558
574
|
if (!this.paths.length) {
|
|
559
575
|
return void 0;
|
|
@@ -571,7 +587,7 @@ class Highlighter extends Feature {
|
|
|
571
587
|
characters.forEach((character) => {
|
|
572
588
|
const highlight = character.parent.highlight;
|
|
573
589
|
if (highlight?.url) {
|
|
574
|
-
if (prevHighlight?.url === highlight.url &&
|
|
590
|
+
if (prevHighlight?.url === highlight.url && prevHighlight?.strokeWidth === highlight.strokeWidth && prevHighlight?.repeatXByFontsize === highlight.repeatXByFontsize && prevHighlight?.overflowXHidden === highlight.overflowXHidden && group.length && group[0].boundingBox.top === character.boundingBox.top && group[0].fontSize === character.fontSize) {
|
|
575
591
|
group.push(character);
|
|
576
592
|
} else {
|
|
577
593
|
group = [];
|
|
@@ -583,8 +599,8 @@ class Highlighter extends Feature {
|
|
|
583
599
|
});
|
|
584
600
|
this.paths = groups.filter((characters2) => characters2.length).map((characters2) => {
|
|
585
601
|
return {
|
|
586
|
-
|
|
587
|
-
box: modernPath2d.BoundingBox.from(...characters2.map((c) => c.
|
|
602
|
+
highlight: characters2[0].parent.highlight,
|
|
603
|
+
box: modernPath2d.BoundingBox.from(...characters2.map((c) => c.glyphBox)),
|
|
588
604
|
baseline: Math.max(...characters2.map((c) => c.baseline)),
|
|
589
605
|
fontSize: characters2[0].fontSize
|
|
590
606
|
};
|
|
@@ -598,60 +614,57 @@ class Highlighter extends Feature {
|
|
|
598
614
|
paths.forEach((path) => path.getMinMax(min, max));
|
|
599
615
|
return {
|
|
600
616
|
paths,
|
|
601
|
-
box: new modernPath2d.BoundingBox(min.x, min.y, max.x - min.x, max.y - min.y)
|
|
602
|
-
viewBox: new modernPath2d.BoundingBox(...svg.getAttribute("viewBox").split(" ").map(Number))
|
|
617
|
+
box: new modernPath2d.BoundingBox(min.x, min.y, max.x - min.x, max.y - min.y)
|
|
603
618
|
};
|
|
604
619
|
}
|
|
605
620
|
_parseGroup(group) {
|
|
606
|
-
const {
|
|
607
|
-
const {
|
|
608
|
-
|
|
621
|
+
const { highlight, box: groupBox, fontSize } = group;
|
|
622
|
+
const {
|
|
623
|
+
strokeWidth = 1,
|
|
624
|
+
repeatXByFontsize = 0,
|
|
625
|
+
overflowXHidden = Boolean(repeatXByFontsize)
|
|
626
|
+
} = highlight;
|
|
627
|
+
const { box, paths } = this._parseSvg(highlight.url);
|
|
609
628
|
const result = [];
|
|
610
|
-
const
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
if (type === 0) {
|
|
626
|
-
const offset = {
|
|
627
|
-
x: groupBox.left - fontSize * 0.2,
|
|
628
|
-
y: groupBox.top
|
|
629
|
-
};
|
|
630
|
-
const scaleX = (groupBox.width + fontSize * 0.2 * 2) / box.width;
|
|
631
|
-
const scaleY = groupBox.height / box.height;
|
|
632
|
-
const m = new modernPath2d.Matrix3().translate(-box.x, -box.y).scale(scaleX, scaleY).translate(offset.x, offset.y);
|
|
629
|
+
const referBoundingBox = this.getReferBoundingBox();
|
|
630
|
+
const scale = {
|
|
631
|
+
x: repeatXByFontsize ? fontSize * repeatXByFontsize * (box.width / referBoundingBox.width) / box.width : groupBox.width * (box.width / referBoundingBox.width) / box.width,
|
|
632
|
+
y: groupBox.height * (box.height / referBoundingBox.height) / box.height
|
|
633
|
+
};
|
|
634
|
+
const styleScale = fontSize / box.width * 2;
|
|
635
|
+
const unitWidth = box.width * scale.x;
|
|
636
|
+
const total = Math.ceil(groupBox.width / unitWidth);
|
|
637
|
+
const offset = {
|
|
638
|
+
x: (box.left - referBoundingBox.left) * scale.x,
|
|
639
|
+
y: (box.top - referBoundingBox.top) * scale.y
|
|
640
|
+
};
|
|
641
|
+
const transform = new modernPath2d.Matrix3().translate(-box.left, -box.top).scale(scale.x, scale.y).translate(groupBox.left, groupBox.top).translate(offset.x, offset.y);
|
|
642
|
+
for (let i = 0; i < total; i++) {
|
|
643
|
+
const _transform = transform.clone().translate(i * unitWidth, 0);
|
|
633
644
|
paths.forEach((original) => {
|
|
634
|
-
const path = original.clone().transform(
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
645
|
+
const path = original.clone().transform(_transform);
|
|
646
|
+
if (path.style.strokeWidth) {
|
|
647
|
+
path.style.strokeWidth *= styleScale * strokeWidth;
|
|
648
|
+
}
|
|
649
|
+
if (path.style.strokeMiterlimit) {
|
|
650
|
+
path.style.strokeMiterlimit *= styleScale;
|
|
651
|
+
}
|
|
652
|
+
if (path.style.strokeDashoffset) {
|
|
653
|
+
path.style.strokeDashoffset *= styleScale;
|
|
654
|
+
}
|
|
655
|
+
if (path.style.strokeDasharray) {
|
|
656
|
+
path.style.strokeDasharray = path.style.strokeDasharray.map((v) => v * styleScale);
|
|
657
|
+
}
|
|
658
|
+
result.push({
|
|
659
|
+
clipRect: overflowXHidden ? new modernPath2d.BoundingBox(
|
|
660
|
+
groupBox.left + offset.x * 2,
|
|
661
|
+
groupBox.top - groupBox.height,
|
|
662
|
+
groupBox.width - offset.x * 2,
|
|
663
|
+
groupBox.height * 3
|
|
664
|
+
) : void 0,
|
|
665
|
+
path
|
|
653
666
|
});
|
|
654
|
-
}
|
|
667
|
+
});
|
|
655
668
|
}
|
|
656
669
|
return result;
|
|
657
670
|
}
|
|
@@ -666,7 +679,10 @@ class Highlighter extends Feature {
|
|
|
666
679
|
});
|
|
667
680
|
return this;
|
|
668
681
|
}
|
|
669
|
-
}
|
|
682
|
+
};
|
|
683
|
+
__publicField$1(_Highlighter, "_refer", defaultHighlightRefer);
|
|
684
|
+
__publicField$1(_Highlighter, "parsedRefer", modernPath2d.parseSvg(_Highlighter._refer));
|
|
685
|
+
let Highlighter = _Highlighter;
|
|
670
686
|
|
|
671
687
|
class Measurer extends Feature {
|
|
672
688
|
_styleToDomStyle(style) {
|
|
@@ -1077,13 +1093,14 @@ class Text {
|
|
|
1077
1093
|
this.boundingBox = boundingBox;
|
|
1078
1094
|
const characters = this.characters;
|
|
1079
1095
|
characters.forEach((c) => c.update());
|
|
1080
|
-
this.highlighter.highlight();
|
|
1081
1096
|
if (this.deformation) {
|
|
1082
1097
|
this.deformer.deform();
|
|
1098
|
+
} else {
|
|
1099
|
+
this.highlighter.highlight();
|
|
1083
1100
|
}
|
|
1084
1101
|
const min = modernPath2d.Vector2.MAX;
|
|
1085
1102
|
const max = modernPath2d.Vector2.MIN;
|
|
1086
|
-
characters.forEach((c) => c.
|
|
1103
|
+
characters.forEach((c) => c.getGlyphMinMax(min, max));
|
|
1087
1104
|
this.renderBoundingBox = new modernPath2d.BoundingBox(min.x, min.y, max.x - min.x, max.y - min.y);
|
|
1088
1105
|
return this;
|
|
1089
1106
|
}
|
|
@@ -1131,6 +1148,7 @@ exports.Parser = Parser;
|
|
|
1131
1148
|
exports.Reflector = Reflector;
|
|
1132
1149
|
exports.Renderer2D = Renderer2D;
|
|
1133
1150
|
exports.Text = Text;
|
|
1151
|
+
exports.defaultHighlightRefer = defaultHighlightRefer;
|
|
1134
1152
|
exports.defaultTextStyles = defaultTextStyles;
|
|
1135
1153
|
exports.drawPath = drawPath;
|
|
1136
1154
|
exports.filterEmpty = filterEmpty;
|
package/dist/index.d.cts
CHANGED
|
@@ -57,6 +57,9 @@ type TextEffect = Partial<TextDrawStyle & {
|
|
|
57
57
|
type TextDeformation = () => void;
|
|
58
58
|
interface FragmentHighlight {
|
|
59
59
|
url: string;
|
|
60
|
+
strokeWidth?: number;
|
|
61
|
+
repeatXByFontsize?: number;
|
|
62
|
+
overflowXHidden?: boolean;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
declare function parseColor(ctx: CanvasRenderingContext2D, source: string | CanvasGradient | CanvasPattern, box: BoundingBox): string | CanvasGradient | CanvasPattern;
|
|
@@ -111,7 +114,7 @@ declare class Character {
|
|
|
111
114
|
baseline: number;
|
|
112
115
|
centerDiviation: number;
|
|
113
116
|
glyphBox: BoundingBox;
|
|
114
|
-
|
|
117
|
+
center: VectorLike;
|
|
115
118
|
get computedStyle(): TextStyle;
|
|
116
119
|
get isVertical(): boolean;
|
|
117
120
|
get fontSize(): number;
|
|
@@ -124,11 +127,11 @@ declare class Character {
|
|
|
124
127
|
protected _italic(commands: GlyphPathCommand[], startPoint?: VectorLike): GlyphPathCommand[];
|
|
125
128
|
protected _rotation90(commands: GlyphPathCommand[], point: VectorLike): GlyphPathCommand[];
|
|
126
129
|
protected _transform(commands: GlyphPathCommand[], cb: (x: number, y: number) => number[]): GlyphPathCommand[];
|
|
127
|
-
|
|
130
|
+
getGlyphMinMax(min?: Vector2, max?: Vector2): {
|
|
128
131
|
min: Vector2;
|
|
129
132
|
max: Vector2;
|
|
130
133
|
};
|
|
131
|
-
|
|
134
|
+
getGlyphBoundingBox(withStyle?: boolean): BoundingBox;
|
|
132
135
|
drawTo(ctx: CanvasRenderingContext2D, config?: Partial<TextEffect>): void;
|
|
133
136
|
}
|
|
134
137
|
|
|
@@ -223,22 +226,27 @@ declare class Effector extends Feature {
|
|
|
223
226
|
}
|
|
224
227
|
|
|
225
228
|
interface HighlightGroup {
|
|
226
|
-
|
|
229
|
+
highlight: FragmentHighlight;
|
|
227
230
|
box: BoundingBox;
|
|
228
231
|
baseline: number;
|
|
229
232
|
fontSize: number;
|
|
230
233
|
}
|
|
234
|
+
declare const defaultHighlightRefer = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIgdmlld0JveD0iMCAwIDcyIDcyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjQwMjkgMjhIMzUuMTU5NFYzMy4xNzcxQzM1Ljk4MjEgMzIuMzExNSAzNi45NzEgMzEuODczNyAzOC4wOTQ4IDMxLjg3MzdDMzkuNjY3NiAzMS44NzM3IDQwLjkxNjYgMzIuNDI5NSA0MS44MzkgMzMuNTQzN0w0MS44NDAzIDMzLjU0NTNDNDIuNjcxNyAzNC41NzA1IDQzLjA5MTUgMzUuODU1OSA0My4wOTE1IDM3LjM4NzdDNDMuMDkxNSAzOC45NzYxIDQyLjY3MjkgNDAuMzAyOCA0MS44MTgzIDQxLjMzMDRMNDEuODE3MSA0MS4zMzE4QzQwLjg3MzEgNDIuNDQ2MSAzOS41ODMyIDQzIDM3Ljk3MjEgNDNDMzYuNzQ3NyA0MyAzNS43NDg4IDQyLjY1OTkgMzQuOTk1OCA0MS45NjkzVjQyLjcyNDdIMzIuNDAyOVYyOFpNMzcuNTQyOCAzNC4wOTI0QzM2Ljg1NDkgMzQuMDkyNCAzNi4zMDE0IDM0LjM1NjEgMzUuODQ4NyAzNC45MDA0TDM1Ljg0NTIgMzQuOTA0NkMzNS4zMzU4IDM1LjQ4NTMgMzUuMDc3NiAzNi4yOTc2IDM1LjA3NzYgMzcuMzQ4NFYzNy41MDU3QzM1LjA3NzYgMzguNDY0IDM1LjI3NzIgMzkuMjQ0MyAzNS42OTQzIDM5LjgyNzlDMzYuMTQ0MSA0MC40NTg3IDM2Ljc3MjYgNDAuNzgxMyAzNy42MjQ1IDQwLjc4MTNDMzguNTg3NCA0MC43ODEzIDM5LjI3MDcgNDAuNDUyNyAzOS43MTUyIDM5LjgxMjdDNDAuMDcyOCAzOS4yNjg0IDQwLjI3MzcgMzguNDY3MyA0MC4yNzM3IDM3LjM4NzdDNDAuMjczNyAzNi4zMTA1IDQwLjA1MzMgMzUuNTMxMyAzOS42NzgzIDM1LjAwNzdDMzkuMjM3MSAzNC40MDcxIDM4LjUzNDIgMzQuMDkyNCAzNy41NDI4IDM0LjA5MjRaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZD0iTTQ5Ljg2MTQgMzEuODczN0M0OC4xNTM1IDMxLjg3MzcgNDYuODAxNiAzMi40MjM5IDQ1LjgzNDggMzMuNTM5MkM0NC45MzcgMzQuNTQ3MiA0NC40OTY2IDM1Ljg1NiA0NC40OTY2IDM3LjQyN0M0NC40OTY2IDM5LjAzNjggNDQuOTM2NyA0MC4zNjU5IDQ1Ljg1NTkgNDEuMzk0M0M0Ni44MDMxIDQyLjQ3MDYgNDguMTM0OCA0MyA0OS44MjA1IDQzQzUxLjIyNiA0MyA1Mi4zODI2IDQyLjY1NjMgNTMuMjQ3OSA0MS45Njk3QzU0LjEzNTkgNDEuMjYxNCA1NC43MDYxIDQwLjE4ODcgNTQuOTU3MyAzOC43NzkxTDU1IDM4LjUzOTdINTIuMjQ4NEw1Mi4yMjU5IDM4LjcyMDFDNTIuMTM3OSAzOS40MjUxIDUxLjg5MjUgMzkuOTI3OCA1MS41MTA5IDQwLjI1NThDNTEuMTI5NSA0MC41ODM1IDUwLjU4MzEgNDAuNzYxNiA0OS44NDA5IDQwLjc2MTZDNDkuMDAwMSA0MC43NjE2IDQ4LjM5NDkgNDAuNDcxNSA0Ny45OTA3IDM5LjkyMzdMNDcuOTg3NCAzOS45MTk0QzQ3LjUzNTYgMzkuMzQwMSA0Ny4zMTQ0IDM4LjUwNjIgNDcuMzE0NCAzNy40MDc0QzQ3LjMxNDQgMzYuMzMyMiA0Ny41NTQ0IDM1LjUxNzcgNDguMDA1OCAzNC45NTY4TDQ4LjAwNzggMzQuOTU0M0M0OC40NTM3IDM0LjM4MjUgNDkuMDYxOCAzNC4xMTIxIDQ5Ljg2MTQgMzQuMTEyMUM1MC41MjMgMzQuMTEyMSA1MS4wNDUxIDM0LjI2MTUgNTEuNDI3MiAzNC41NDA3QzUxLjc4ODQgMzQuODE5NCA1Mi4wNTMgMzUuMjQ0NyA1Mi4xODgxIDM1Ljg1NzFMNTIuMjIzOSAzNi4wMTk0SDU0Ljk1NDhMNTQuOTE3IDM1Ljc4MzVDNTQuNzA2MyAzNC40NjYgNTQuMTUzNiAzMy40NzAxIDUzLjI2MzQgMzIuODAxOUw1My4yNjAyIDMyLjc5OTVDNTIuMzk1MSAzMi4xNzU1IDUxLjI2MjEgMzEuODczNyA0OS44NjE0IDMxLjg3MzdaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS43NTYxIDI4LjI3NTNIMjIuNzQ0TDE3IDQyLjcyNDdIMjAuMDE0MUwyMS4zNDI5IDM5LjIwNDlIMjcuMTU3MkwyOC40ODYgNDIuNzI0N0gzMS41MDAxTDI1Ljc1NjEgMjguMjc1M1pNMjIuMjEyNSAzNi45MDc2TDI0LjI1OTYgMzEuNDUzOUwyNi4yODg1IDM2LjkwNzZIMjIuMjEyNVoiIGZpbGw9IiMyMjI1MjkiLz48L3N2Zz4=";
|
|
231
235
|
declare class Highlighter extends Feature {
|
|
236
|
+
protected static _refer: string;
|
|
237
|
+
static parsedRefer: Path2D[];
|
|
238
|
+
static get refer(): string;
|
|
239
|
+
static set refer(refer: string);
|
|
232
240
|
paths: {
|
|
233
241
|
clipRect?: BoundingBox;
|
|
234
242
|
path: Path2D;
|
|
235
243
|
}[];
|
|
244
|
+
getReferBoundingBox(): BoundingBox;
|
|
236
245
|
getBoundingBox(): BoundingBox | undefined;
|
|
237
246
|
highlight(): void;
|
|
238
247
|
protected _parseSvg(url: string): {
|
|
239
248
|
paths: Path2D[];
|
|
240
249
|
box: BoundingBox;
|
|
241
|
-
viewBox: BoundingBox;
|
|
242
250
|
};
|
|
243
251
|
protected _parseGroup(group: HighlightGroup): {
|
|
244
252
|
clipRect?: BoundingBox;
|
|
@@ -348,4 +356,4 @@ declare function getPointPosition(point: {
|
|
|
348
356
|
y: number;
|
|
349
357
|
};
|
|
350
358
|
|
|
351
|
-
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|
|
359
|
+
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultHighlightRefer, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|
package/dist/index.d.mts
CHANGED
|
@@ -57,6 +57,9 @@ type TextEffect = Partial<TextDrawStyle & {
|
|
|
57
57
|
type TextDeformation = () => void;
|
|
58
58
|
interface FragmentHighlight {
|
|
59
59
|
url: string;
|
|
60
|
+
strokeWidth?: number;
|
|
61
|
+
repeatXByFontsize?: number;
|
|
62
|
+
overflowXHidden?: boolean;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
declare function parseColor(ctx: CanvasRenderingContext2D, source: string | CanvasGradient | CanvasPattern, box: BoundingBox): string | CanvasGradient | CanvasPattern;
|
|
@@ -111,7 +114,7 @@ declare class Character {
|
|
|
111
114
|
baseline: number;
|
|
112
115
|
centerDiviation: number;
|
|
113
116
|
glyphBox: BoundingBox;
|
|
114
|
-
|
|
117
|
+
center: VectorLike;
|
|
115
118
|
get computedStyle(): TextStyle;
|
|
116
119
|
get isVertical(): boolean;
|
|
117
120
|
get fontSize(): number;
|
|
@@ -124,11 +127,11 @@ declare class Character {
|
|
|
124
127
|
protected _italic(commands: GlyphPathCommand[], startPoint?: VectorLike): GlyphPathCommand[];
|
|
125
128
|
protected _rotation90(commands: GlyphPathCommand[], point: VectorLike): GlyphPathCommand[];
|
|
126
129
|
protected _transform(commands: GlyphPathCommand[], cb: (x: number, y: number) => number[]): GlyphPathCommand[];
|
|
127
|
-
|
|
130
|
+
getGlyphMinMax(min?: Vector2, max?: Vector2): {
|
|
128
131
|
min: Vector2;
|
|
129
132
|
max: Vector2;
|
|
130
133
|
};
|
|
131
|
-
|
|
134
|
+
getGlyphBoundingBox(withStyle?: boolean): BoundingBox;
|
|
132
135
|
drawTo(ctx: CanvasRenderingContext2D, config?: Partial<TextEffect>): void;
|
|
133
136
|
}
|
|
134
137
|
|
|
@@ -223,22 +226,27 @@ declare class Effector extends Feature {
|
|
|
223
226
|
}
|
|
224
227
|
|
|
225
228
|
interface HighlightGroup {
|
|
226
|
-
|
|
229
|
+
highlight: FragmentHighlight;
|
|
227
230
|
box: BoundingBox;
|
|
228
231
|
baseline: number;
|
|
229
232
|
fontSize: number;
|
|
230
233
|
}
|
|
234
|
+
declare const defaultHighlightRefer = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIgdmlld0JveD0iMCAwIDcyIDcyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjQwMjkgMjhIMzUuMTU5NFYzMy4xNzcxQzM1Ljk4MjEgMzIuMzExNSAzNi45NzEgMzEuODczNyAzOC4wOTQ4IDMxLjg3MzdDMzkuNjY3NiAzMS44NzM3IDQwLjkxNjYgMzIuNDI5NSA0MS44MzkgMzMuNTQzN0w0MS44NDAzIDMzLjU0NTNDNDIuNjcxNyAzNC41NzA1IDQzLjA5MTUgMzUuODU1OSA0My4wOTE1IDM3LjM4NzdDNDMuMDkxNSAzOC45NzYxIDQyLjY3MjkgNDAuMzAyOCA0MS44MTgzIDQxLjMzMDRMNDEuODE3MSA0MS4zMzE4QzQwLjg3MzEgNDIuNDQ2MSAzOS41ODMyIDQzIDM3Ljk3MjEgNDNDMzYuNzQ3NyA0MyAzNS43NDg4IDQyLjY1OTkgMzQuOTk1OCA0MS45NjkzVjQyLjcyNDdIMzIuNDAyOVYyOFpNMzcuNTQyOCAzNC4wOTI0QzM2Ljg1NDkgMzQuMDkyNCAzNi4zMDE0IDM0LjM1NjEgMzUuODQ4NyAzNC45MDA0TDM1Ljg0NTIgMzQuOTA0NkMzNS4zMzU4IDM1LjQ4NTMgMzUuMDc3NiAzNi4yOTc2IDM1LjA3NzYgMzcuMzQ4NFYzNy41MDU3QzM1LjA3NzYgMzguNDY0IDM1LjI3NzIgMzkuMjQ0MyAzNS42OTQzIDM5LjgyNzlDMzYuMTQ0MSA0MC40NTg3IDM2Ljc3MjYgNDAuNzgxMyAzNy42MjQ1IDQwLjc4MTNDMzguNTg3NCA0MC43ODEzIDM5LjI3MDcgNDAuNDUyNyAzOS43MTUyIDM5LjgxMjdDNDAuMDcyOCAzOS4yNjg0IDQwLjI3MzcgMzguNDY3MyA0MC4yNzM3IDM3LjM4NzdDNDAuMjczNyAzNi4zMTA1IDQwLjA1MzMgMzUuNTMxMyAzOS42NzgzIDM1LjAwNzdDMzkuMjM3MSAzNC40MDcxIDM4LjUzNDIgMzQuMDkyNCAzNy41NDI4IDM0LjA5MjRaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZD0iTTQ5Ljg2MTQgMzEuODczN0M0OC4xNTM1IDMxLjg3MzcgNDYuODAxNiAzMi40MjM5IDQ1LjgzNDggMzMuNTM5MkM0NC45MzcgMzQuNTQ3MiA0NC40OTY2IDM1Ljg1NiA0NC40OTY2IDM3LjQyN0M0NC40OTY2IDM5LjAzNjggNDQuOTM2NyA0MC4zNjU5IDQ1Ljg1NTkgNDEuMzk0M0M0Ni44MDMxIDQyLjQ3MDYgNDguMTM0OCA0MyA0OS44MjA1IDQzQzUxLjIyNiA0MyA1Mi4zODI2IDQyLjY1NjMgNTMuMjQ3OSA0MS45Njk3QzU0LjEzNTkgNDEuMjYxNCA1NC43MDYxIDQwLjE4ODcgNTQuOTU3MyAzOC43NzkxTDU1IDM4LjUzOTdINTIuMjQ4NEw1Mi4yMjU5IDM4LjcyMDFDNTIuMTM3OSAzOS40MjUxIDUxLjg5MjUgMzkuOTI3OCA1MS41MTA5IDQwLjI1NThDNTEuMTI5NSA0MC41ODM1IDUwLjU4MzEgNDAuNzYxNiA0OS44NDA5IDQwLjc2MTZDNDkuMDAwMSA0MC43NjE2IDQ4LjM5NDkgNDAuNDcxNSA0Ny45OTA3IDM5LjkyMzdMNDcuOTg3NCAzOS45MTk0QzQ3LjUzNTYgMzkuMzQwMSA0Ny4zMTQ0IDM4LjUwNjIgNDcuMzE0NCAzNy40MDc0QzQ3LjMxNDQgMzYuMzMyMiA0Ny41NTQ0IDM1LjUxNzcgNDguMDA1OCAzNC45NTY4TDQ4LjAwNzggMzQuOTU0M0M0OC40NTM3IDM0LjM4MjUgNDkuMDYxOCAzNC4xMTIxIDQ5Ljg2MTQgMzQuMTEyMUM1MC41MjMgMzQuMTEyMSA1MS4wNDUxIDM0LjI2MTUgNTEuNDI3MiAzNC41NDA3QzUxLjc4ODQgMzQuODE5NCA1Mi4wNTMgMzUuMjQ0NyA1Mi4xODgxIDM1Ljg1NzFMNTIuMjIzOSAzNi4wMTk0SDU0Ljk1NDhMNTQuOTE3IDM1Ljc4MzVDNTQuNzA2MyAzNC40NjYgNTQuMTUzNiAzMy40NzAxIDUzLjI2MzQgMzIuODAxOUw1My4yNjAyIDMyLjc5OTVDNTIuMzk1MSAzMi4xNzU1IDUxLjI2MjEgMzEuODczNyA0OS44NjE0IDMxLjg3MzdaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS43NTYxIDI4LjI3NTNIMjIuNzQ0TDE3IDQyLjcyNDdIMjAuMDE0MUwyMS4zNDI5IDM5LjIwNDlIMjcuMTU3MkwyOC40ODYgNDIuNzI0N0gzMS41MDAxTDI1Ljc1NjEgMjguMjc1M1pNMjIuMjEyNSAzNi45MDc2TDI0LjI1OTYgMzEuNDUzOUwyNi4yODg1IDM2LjkwNzZIMjIuMjEyNVoiIGZpbGw9IiMyMjI1MjkiLz48L3N2Zz4=";
|
|
231
235
|
declare class Highlighter extends Feature {
|
|
236
|
+
protected static _refer: string;
|
|
237
|
+
static parsedRefer: Path2D[];
|
|
238
|
+
static get refer(): string;
|
|
239
|
+
static set refer(refer: string);
|
|
232
240
|
paths: {
|
|
233
241
|
clipRect?: BoundingBox;
|
|
234
242
|
path: Path2D;
|
|
235
243
|
}[];
|
|
244
|
+
getReferBoundingBox(): BoundingBox;
|
|
236
245
|
getBoundingBox(): BoundingBox | undefined;
|
|
237
246
|
highlight(): void;
|
|
238
247
|
protected _parseSvg(url: string): {
|
|
239
248
|
paths: Path2D[];
|
|
240
249
|
box: BoundingBox;
|
|
241
|
-
viewBox: BoundingBox;
|
|
242
250
|
};
|
|
243
251
|
protected _parseGroup(group: HighlightGroup): {
|
|
244
252
|
clipRect?: BoundingBox;
|
|
@@ -348,4 +356,4 @@ declare function getPointPosition(point: {
|
|
|
348
356
|
y: number;
|
|
349
357
|
};
|
|
350
358
|
|
|
351
|
-
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|
|
359
|
+
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultHighlightRefer, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,9 @@ type TextEffect = Partial<TextDrawStyle & {
|
|
|
57
57
|
type TextDeformation = () => void;
|
|
58
58
|
interface FragmentHighlight {
|
|
59
59
|
url: string;
|
|
60
|
+
strokeWidth?: number;
|
|
61
|
+
repeatXByFontsize?: number;
|
|
62
|
+
overflowXHidden?: boolean;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
declare function parseColor(ctx: CanvasRenderingContext2D, source: string | CanvasGradient | CanvasPattern, box: BoundingBox): string | CanvasGradient | CanvasPattern;
|
|
@@ -111,7 +114,7 @@ declare class Character {
|
|
|
111
114
|
baseline: number;
|
|
112
115
|
centerDiviation: number;
|
|
113
116
|
glyphBox: BoundingBox;
|
|
114
|
-
|
|
117
|
+
center: VectorLike;
|
|
115
118
|
get computedStyle(): TextStyle;
|
|
116
119
|
get isVertical(): boolean;
|
|
117
120
|
get fontSize(): number;
|
|
@@ -124,11 +127,11 @@ declare class Character {
|
|
|
124
127
|
protected _italic(commands: GlyphPathCommand[], startPoint?: VectorLike): GlyphPathCommand[];
|
|
125
128
|
protected _rotation90(commands: GlyphPathCommand[], point: VectorLike): GlyphPathCommand[];
|
|
126
129
|
protected _transform(commands: GlyphPathCommand[], cb: (x: number, y: number) => number[]): GlyphPathCommand[];
|
|
127
|
-
|
|
130
|
+
getGlyphMinMax(min?: Vector2, max?: Vector2): {
|
|
128
131
|
min: Vector2;
|
|
129
132
|
max: Vector2;
|
|
130
133
|
};
|
|
131
|
-
|
|
134
|
+
getGlyphBoundingBox(withStyle?: boolean): BoundingBox;
|
|
132
135
|
drawTo(ctx: CanvasRenderingContext2D, config?: Partial<TextEffect>): void;
|
|
133
136
|
}
|
|
134
137
|
|
|
@@ -223,22 +226,27 @@ declare class Effector extends Feature {
|
|
|
223
226
|
}
|
|
224
227
|
|
|
225
228
|
interface HighlightGroup {
|
|
226
|
-
|
|
229
|
+
highlight: FragmentHighlight;
|
|
227
230
|
box: BoundingBox;
|
|
228
231
|
baseline: number;
|
|
229
232
|
fontSize: number;
|
|
230
233
|
}
|
|
234
|
+
declare const defaultHighlightRefer = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIgdmlld0JveD0iMCAwIDcyIDcyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjQwMjkgMjhIMzUuMTU5NFYzMy4xNzcxQzM1Ljk4MjEgMzIuMzExNSAzNi45NzEgMzEuODczNyAzOC4wOTQ4IDMxLjg3MzdDMzkuNjY3NiAzMS44NzM3IDQwLjkxNjYgMzIuNDI5NSA0MS44MzkgMzMuNTQzN0w0MS44NDAzIDMzLjU0NTNDNDIuNjcxNyAzNC41NzA1IDQzLjA5MTUgMzUuODU1OSA0My4wOTE1IDM3LjM4NzdDNDMuMDkxNSAzOC45NzYxIDQyLjY3MjkgNDAuMzAyOCA0MS44MTgzIDQxLjMzMDRMNDEuODE3MSA0MS4zMzE4QzQwLjg3MzEgNDIuNDQ2MSAzOS41ODMyIDQzIDM3Ljk3MjEgNDNDMzYuNzQ3NyA0MyAzNS43NDg4IDQyLjY1OTkgMzQuOTk1OCA0MS45NjkzVjQyLjcyNDdIMzIuNDAyOVYyOFpNMzcuNTQyOCAzNC4wOTI0QzM2Ljg1NDkgMzQuMDkyNCAzNi4zMDE0IDM0LjM1NjEgMzUuODQ4NyAzNC45MDA0TDM1Ljg0NTIgMzQuOTA0NkMzNS4zMzU4IDM1LjQ4NTMgMzUuMDc3NiAzNi4yOTc2IDM1LjA3NzYgMzcuMzQ4NFYzNy41MDU3QzM1LjA3NzYgMzguNDY0IDM1LjI3NzIgMzkuMjQ0MyAzNS42OTQzIDM5LjgyNzlDMzYuMTQ0MSA0MC40NTg3IDM2Ljc3MjYgNDAuNzgxMyAzNy42MjQ1IDQwLjc4MTNDMzguNTg3NCA0MC43ODEzIDM5LjI3MDcgNDAuNDUyNyAzOS43MTUyIDM5LjgxMjdDNDAuMDcyOCAzOS4yNjg0IDQwLjI3MzcgMzguNDY3MyA0MC4yNzM3IDM3LjM4NzdDNDAuMjczNyAzNi4zMTA1IDQwLjA1MzMgMzUuNTMxMyAzOS42NzgzIDM1LjAwNzdDMzkuMjM3MSAzNC40MDcxIDM4LjUzNDIgMzQuMDkyNCAzNy41NDI4IDM0LjA5MjRaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZD0iTTQ5Ljg2MTQgMzEuODczN0M0OC4xNTM1IDMxLjg3MzcgNDYuODAxNiAzMi40MjM5IDQ1LjgzNDggMzMuNTM5MkM0NC45MzcgMzQuNTQ3MiA0NC40OTY2IDM1Ljg1NiA0NC40OTY2IDM3LjQyN0M0NC40OTY2IDM5LjAzNjggNDQuOTM2NyA0MC4zNjU5IDQ1Ljg1NTkgNDEuMzk0M0M0Ni44MDMxIDQyLjQ3MDYgNDguMTM0OCA0MyA0OS44MjA1IDQzQzUxLjIyNiA0MyA1Mi4zODI2IDQyLjY1NjMgNTMuMjQ3OSA0MS45Njk3QzU0LjEzNTkgNDEuMjYxNCA1NC43MDYxIDQwLjE4ODcgNTQuOTU3MyAzOC43NzkxTDU1IDM4LjUzOTdINTIuMjQ4NEw1Mi4yMjU5IDM4LjcyMDFDNTIuMTM3OSAzOS40MjUxIDUxLjg5MjUgMzkuOTI3OCA1MS41MTA5IDQwLjI1NThDNTEuMTI5NSA0MC41ODM1IDUwLjU4MzEgNDAuNzYxNiA0OS44NDA5IDQwLjc2MTZDNDkuMDAwMSA0MC43NjE2IDQ4LjM5NDkgNDAuNDcxNSA0Ny45OTA3IDM5LjkyMzdMNDcuOTg3NCAzOS45MTk0QzQ3LjUzNTYgMzkuMzQwMSA0Ny4zMTQ0IDM4LjUwNjIgNDcuMzE0NCAzNy40MDc0QzQ3LjMxNDQgMzYuMzMyMiA0Ny41NTQ0IDM1LjUxNzcgNDguMDA1OCAzNC45NTY4TDQ4LjAwNzggMzQuOTU0M0M0OC40NTM3IDM0LjM4MjUgNDkuMDYxOCAzNC4xMTIxIDQ5Ljg2MTQgMzQuMTEyMUM1MC41MjMgMzQuMTEyMSA1MS4wNDUxIDM0LjI2MTUgNTEuNDI3MiAzNC41NDA3QzUxLjc4ODQgMzQuODE5NCA1Mi4wNTMgMzUuMjQ0NyA1Mi4xODgxIDM1Ljg1NzFMNTIuMjIzOSAzNi4wMTk0SDU0Ljk1NDhMNTQuOTE3IDM1Ljc4MzVDNTQuNzA2MyAzNC40NjYgNTQuMTUzNiAzMy40NzAxIDUzLjI2MzQgMzIuODAxOUw1My4yNjAyIDMyLjc5OTVDNTIuMzk1MSAzMi4xNzU1IDUxLjI2MjEgMzEuODczNyA0OS44NjE0IDMxLjg3MzdaIiBmaWxsPSIjMjIyNTI5Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS43NTYxIDI4LjI3NTNIMjIuNzQ0TDE3IDQyLjcyNDdIMjAuMDE0MUwyMS4zNDI5IDM5LjIwNDlIMjcuMTU3MkwyOC40ODYgNDIuNzI0N0gzMS41MDAxTDI1Ljc1NjEgMjguMjc1M1pNMjIuMjEyNSAzNi45MDc2TDI0LjI1OTYgMzEuNDUzOUwyNi4yODg1IDM2LjkwNzZIMjIuMjEyNVoiIGZpbGw9IiMyMjI1MjkiLz48L3N2Zz4=";
|
|
231
235
|
declare class Highlighter extends Feature {
|
|
236
|
+
protected static _refer: string;
|
|
237
|
+
static parsedRefer: Path2D[];
|
|
238
|
+
static get refer(): string;
|
|
239
|
+
static set refer(refer: string);
|
|
232
240
|
paths: {
|
|
233
241
|
clipRect?: BoundingBox;
|
|
234
242
|
path: Path2D;
|
|
235
243
|
}[];
|
|
244
|
+
getReferBoundingBox(): BoundingBox;
|
|
236
245
|
getBoundingBox(): BoundingBox | undefined;
|
|
237
246
|
highlight(): void;
|
|
238
247
|
protected _parseSvg(url: string): {
|
|
239
248
|
paths: Path2D[];
|
|
240
249
|
box: BoundingBox;
|
|
241
|
-
viewBox: BoundingBox;
|
|
242
250
|
};
|
|
243
251
|
protected _parseGroup(group: HighlightGroup): {
|
|
244
252
|
clipRect?: BoundingBox;
|
|
@@ -348,4 +356,4 @@ declare function getPointPosition(point: {
|
|
|
348
356
|
y: number;
|
|
349
357
|
};
|
|
350
358
|
|
|
351
|
-
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|
|
359
|
+
export { Character, Deformer, type DrawShapePathsOptions, type EffectOptions, Effector, type FontKerning, type FontStyle, type FontWeight, Fragment, type FragmentContent, type FragmentHighlight, Highlighter, type LinearGradient, type MeasuredCharacter, type MeasuredFragment, type MeasuredParagraph, type MeasuredResult, Measurer, Paragraph, type ParagraphContent, Parser, Reflector, type Render2dOptions, Renderer2D, Text, type TextAlign, type TextContent, type TextDecoration, type TextDeformation, type TextDrawStyle, type TextEffect, type TextLayoutStyle, type TextOptions, type TextOrientation, type TextRenderOptions, type TextStyle, type TextTransform, type TextWrap, type VerticalAlign, type WritingMode, defaultHighlightRefer, defaultTextStyles, drawPath, filterEmpty, getPointPosition, getRotationPoint, getScalePoint, getSkewPoint, parseColor, uploadColor };
|