zrender-nightly 5.6.1-dev.20241122 → 5.6.1-dev.20241124
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/zrender.js +38 -12
- package/dist/zrender.js.map +1 -1
- package/dist/zrender.min.js +1 -1
- package/lib/graphic/Text.d.ts +1 -0
- package/lib/graphic/Text.js +2 -0
- package/lib/graphic/helper/parseText.d.ts +2 -0
- package/lib/graphic/helper/parseText.js +39 -10
- package/lib/zrender.d.ts +1 -1
- package/lib/zrender.js +1 -1
- package/package.json +1 -1
- package/src/graphic/Text.ts +10 -0
- package/src/graphic/helper/parseText.ts +61 -11
- package/src/zrender.ts +1 -1
package/dist/zrender.js
CHANGED
@@ -7337,7 +7337,7 @@
|
|
7337
7337
|
function registerSSRDataGetter(getter) {
|
7338
7338
|
ssrDataGetter = getter;
|
7339
7339
|
}
|
7340
|
-
var version = '5.6.1-dev.
|
7340
|
+
var version = '5.6.1-dev.20241124';
|
7341
7341
|
|
7342
7342
|
var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));
|
7343
7343
|
var DEFAULT_COMMON_STYLE = {
|
@@ -12551,16 +12551,23 @@
|
|
12551
12551
|
}
|
12552
12552
|
|
12553
12553
|
var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;
|
12554
|
-
function
|
12554
|
+
function truncateText2(out, text, containerWidth, font, ellipsis, options) {
|
12555
12555
|
if (!containerWidth) {
|
12556
|
-
|
12556
|
+
out.text = '';
|
12557
|
+
out.isTruncated = false;
|
12558
|
+
return;
|
12557
12559
|
}
|
12558
12560
|
var textLines = (text + '').split('\n');
|
12559
12561
|
options = prepareTruncateOptions(containerWidth, font, ellipsis, options);
|
12562
|
+
var isTruncated = false;
|
12563
|
+
var truncateOut = {};
|
12560
12564
|
for (var i = 0, len = textLines.length; i < len; i++) {
|
12561
|
-
|
12565
|
+
truncateSingleLine(truncateOut, textLines[i], options);
|
12566
|
+
textLines[i] = truncateOut.textLine;
|
12567
|
+
isTruncated = isTruncated || truncateOut.isTruncated;
|
12562
12568
|
}
|
12563
|
-
|
12569
|
+
out.text = textLines.join('\n');
|
12570
|
+
out.isTruncated = isTruncated;
|
12564
12571
|
}
|
12565
12572
|
function prepareTruncateOptions(containerWidth, font, ellipsis, options) {
|
12566
12573
|
options = options || {};
|
@@ -12588,16 +12595,20 @@
|
|
12588
12595
|
preparedOpts.containerWidth = containerWidth;
|
12589
12596
|
return preparedOpts;
|
12590
12597
|
}
|
12591
|
-
function truncateSingleLine(textLine, options) {
|
12598
|
+
function truncateSingleLine(out, textLine, options) {
|
12592
12599
|
var containerWidth = options.containerWidth;
|
12593
12600
|
var font = options.font;
|
12594
12601
|
var contentWidth = options.contentWidth;
|
12595
12602
|
if (!containerWidth) {
|
12596
|
-
|
12603
|
+
out.textLine = '';
|
12604
|
+
out.isTruncated = false;
|
12605
|
+
return;
|
12597
12606
|
}
|
12598
12607
|
var lineWidth = getWidth(textLine, font);
|
12599
12608
|
if (lineWidth <= containerWidth) {
|
12600
|
-
|
12609
|
+
out.textLine = textLine;
|
12610
|
+
out.isTruncated = false;
|
12611
|
+
return;
|
12601
12612
|
}
|
12602
12613
|
for (var j = 0;; j++) {
|
12603
12614
|
if (lineWidth <= contentWidth || j >= options.maxIterations) {
|
@@ -12615,7 +12626,8 @@
|
|
12615
12626
|
if (textLine === '') {
|
12616
12627
|
textLine = options.placeholder;
|
12617
12628
|
}
|
12618
|
-
|
12629
|
+
out.textLine = textLine;
|
12630
|
+
out.isTruncated = true;
|
12619
12631
|
}
|
12620
12632
|
function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {
|
12621
12633
|
var width = 0;
|
@@ -12636,6 +12648,7 @@
|
|
12636
12648
|
var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);
|
12637
12649
|
var bgColorDrawn = !!(style.backgroundColor);
|
12638
12650
|
var truncateLineOverflow = style.lineOverflow === 'truncate';
|
12651
|
+
var isTruncated = false;
|
12639
12652
|
var width = style.width;
|
12640
12653
|
var lines;
|
12641
12654
|
if (width != null && (overflow === 'break' || overflow === 'breakAll')) {
|
@@ -12648,6 +12661,7 @@
|
|
12648
12661
|
var height = retrieve2(style.height, contentHeight);
|
12649
12662
|
if (contentHeight > height && truncateLineOverflow) {
|
12650
12663
|
var lineCount = Math.floor(height / lineHeight);
|
12664
|
+
isTruncated = isTruncated || (lines.length > lineCount);
|
12651
12665
|
lines = lines.slice(0, lineCount);
|
12652
12666
|
}
|
12653
12667
|
if (text && truncate && width != null) {
|
@@ -12655,8 +12669,11 @@
|
|
12655
12669
|
minChar: style.truncateMinChar,
|
12656
12670
|
placeholder: style.placeholder
|
12657
12671
|
});
|
12672
|
+
var singleOut = {};
|
12658
12673
|
for (var i = 0; i < lines.length; i++) {
|
12659
|
-
|
12674
|
+
truncateSingleLine(singleOut, lines[i], options);
|
12675
|
+
lines[i] = singleOut.textLine;
|
12676
|
+
isTruncated = isTruncated || singleOut.isTruncated;
|
12660
12677
|
}
|
12661
12678
|
}
|
12662
12679
|
var outerHeight = height;
|
@@ -12685,7 +12702,8 @@
|
|
12685
12702
|
calculatedLineHeight: calculatedLineHeight,
|
12686
12703
|
contentWidth: contentWidth,
|
12687
12704
|
contentHeight: contentHeight,
|
12688
|
-
width: width
|
12705
|
+
width: width,
|
12706
|
+
isTruncated: isTruncated
|
12689
12707
|
};
|
12690
12708
|
}
|
12691
12709
|
var RichTextToken = (function () {
|
@@ -12711,6 +12729,7 @@
|
|
12711
12729
|
this.outerWidth = 0;
|
12712
12730
|
this.outerHeight = 0;
|
12713
12731
|
this.lines = [];
|
12732
|
+
this.isTruncated = false;
|
12714
12733
|
}
|
12715
12734
|
return RichTextContentBlock;
|
12716
12735
|
}());
|
@@ -12745,6 +12764,7 @@
|
|
12745
12764
|
var stlPadding = style.padding;
|
12746
12765
|
var truncate = overflow === 'truncate';
|
12747
12766
|
var truncateLine = style.lineOverflow === 'truncate';
|
12767
|
+
var tmpTruncateOut = {};
|
12748
12768
|
function finishLine(line, lineWidth, lineHeight) {
|
12749
12769
|
line.width = lineWidth;
|
12750
12770
|
line.lineHeight = lineHeight;
|
@@ -12770,6 +12790,7 @@
|
|
12770
12790
|
token.align = tokenStyle && tokenStyle.align || style.align;
|
12771
12791
|
token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';
|
12772
12792
|
if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {
|
12793
|
+
var originalLength = contentBlock.lines.length;
|
12773
12794
|
if (j > 0) {
|
12774
12795
|
line.tokens = line.tokens.slice(0, j);
|
12775
12796
|
finishLine(line, lineWidth, lineHeight);
|
@@ -12778,6 +12799,7 @@
|
|
12778
12799
|
else {
|
12779
12800
|
contentBlock.lines = contentBlock.lines.slice(0, i);
|
12780
12801
|
}
|
12802
|
+
contentBlock.isTruncated = contentBlock.isTruncated || (contentBlock.lines.length < originalLength);
|
12781
12803
|
break outer;
|
12782
12804
|
}
|
12783
12805
|
var styleTokenWidth = tokenStyle.width;
|
@@ -12806,7 +12828,9 @@
|
|
12806
12828
|
token.width = token.contentWidth = 0;
|
12807
12829
|
}
|
12808
12830
|
else {
|
12809
|
-
|
12831
|
+
truncateText2(tmpTruncateOut, token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });
|
12832
|
+
token.text = tmpTruncateOut.text;
|
12833
|
+
contentBlock.isTruncated = contentBlock.isTruncated || tmpTruncateOut.isTruncated;
|
12810
12834
|
token.width = token.contentWidth = getWidth(token.text, font);
|
12811
12835
|
}
|
12812
12836
|
}
|
@@ -13203,6 +13227,7 @@
|
|
13203
13227
|
var textLines = contentBlock.lines;
|
13204
13228
|
var lineHeight = contentBlock.lineHeight;
|
13205
13229
|
var defaultStyle = this._defaultStyle;
|
13230
|
+
this.isTruncated = !!contentBlock.isTruncated;
|
13206
13231
|
var baseX = style.x || 0;
|
13207
13232
|
var baseY = style.y || 0;
|
13208
13233
|
var textAlign = style.align || defaultStyle.align || 'left';
|
@@ -13286,6 +13311,7 @@
|
|
13286
13311
|
var defaultStyle = this._defaultStyle;
|
13287
13312
|
var textAlign = style.align || defaultStyle.align;
|
13288
13313
|
var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;
|
13314
|
+
this.isTruncated = !!contentBlock.isTruncated;
|
13289
13315
|
var boxX = adjustTextX(baseX, outerWidth, textAlign);
|
13290
13316
|
var boxY = adjustTextY$1(baseY, outerHeight, verticalAlign);
|
13291
13317
|
var xLeft = boxX;
|