q2-tecton-elements 1.23.0-alpha.0 → 1.23.0
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/cjs/charting-d02cba1f.js +3127 -0
- package/dist/cjs/{index-3518c78c.js → index-0648c2ec.js} +5 -2
- package/dist/cjs/{installCanvasRenderer-b4d10c92.js → installCanvasRenderer-6c4fbcc9.js} +230 -1130
- package/dist/cjs/installLabelLayout-d6b548fe.js +1048 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +4569 -0
- package/dist/cjs/q2-chart-bar.cjs.entry.js +25 -3133
- package/dist/cjs/q2-chart-donut.cjs.entry.js +9 -8
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-loading-element.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list_2.cjs.entry.js +5 -3
- package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +3 -2
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/q2-card/index.js +1 -1
- package/dist/collection/components/q2-chart-area/index.js +622 -0
- package/dist/collection/components/q2-chart-area/styles.css +82 -0
- package/dist/collection/components/q2-chart-bar/index.js +4 -4
- package/dist/collection/components/q2-chart-bar/styles.css +3 -6
- package/dist/collection/components/q2-chart-donut/index.js +1 -1
- package/dist/collection/components/q2-checkbox/styles.css +1 -0
- package/dist/collection/components/q2-loading/skeleton/q2-loading-element/styles.css +4 -0
- package/dist/collection/components/q2-loading/styles.css +4 -0
- package/dist/collection/components/q2-popover/index.js +4 -2
- package/dist/collection/components/q2-select/index.js +19 -1
- package/dist/collection/utils/index.js +5 -2
- package/dist/components/charting.js +3113 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index12.js +4 -2
- package/dist/components/index13.js +5 -2
- package/dist/components/index9.js +1 -1
- package/dist/components/installCanvasRenderer.js +188 -1123
- package/dist/components/installLabelLayout.js +1042 -0
- package/dist/components/q2-card.js +1 -1
- package/dist/components/q2-chart-area.d.ts +11 -0
- package/dist/components/q2-chart-area.js +4604 -0
- package/dist/components/q2-chart-bar.js +10 -3118
- package/dist/components/q2-chart-donut.js +3 -2
- package/dist/components/q2-checkbox.js +1 -1
- package/dist/components/q2-loading-element.js +1 -1
- package/dist/components/q2-select.js +3 -1
- package/dist/esm/charting-2a73ba8e.js +3113 -0
- package/dist/esm/{index-9c591682.js → index-501fd22e.js} +5 -2
- package/dist/esm/{installCanvasRenderer-0143b52d.js → installCanvasRenderer-4a470516.js} +188 -1123
- package/dist/esm/installLabelLayout-d660eaad.js +1042 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-badge_2.entry.js +1 -1
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +2 -2
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +4565 -0
- package/dist/esm/q2-chart-bar.entry.js +11 -3119
- package/dist/esm/q2-chart-donut.entry.js +4 -3
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-loading-element.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-option-list_2.entry.js +5 -3
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +3 -2
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/q2-tecton-elements/{p-b8b00394.entry.js → p-18629cbf.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-ce015552.entry.js → p-24f4571d.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-de164483.entry.js → p-2c20fc43.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-2d2c5af2.entry.js → p-3603fcdc.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-2c9b1308.entry.js → p-3813f51d.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-f800fd1e.entry.js → p-38a33baa.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-db873db2.entry.js → p-3e9a30c4.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-fc134a5d.entry.js → p-3fd5d010.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-458b1987.js +1 -0
- package/dist/q2-tecton-elements/{p-0ba564b1.entry.js → p-45d61789.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-52063431.js +39 -0
- package/dist/q2-tecton-elements/{p-fb37e67e.entry.js → p-53be87c8.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-520c40f6.entry.js → p-5b1aba1a.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-604b22a8.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-c4640b55.entry.js → p-68ef0786.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-18cc4758.entry.js → p-6b7e1ebd.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-6be86940.entry.js +1 -0
- package/dist/q2-tecton-elements/p-70b01387.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-c444a60b.entry.js → p-78fac0fa.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-97aa8423.entry.js → p-7aa80653.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-833398d1.js +1 -0
- package/dist/q2-tecton-elements/{p-9281adaa.entry.js → p-8dea9a0c.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-9b101e22.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-c3f27fe2.entry.js → p-a2add94e.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-a510290a.js +1 -0
- package/dist/q2-tecton-elements/{p-16c11d74.entry.js → p-acc77332.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-e4dc9ac0.entry.js → p-ba73ee1f.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-0fad9c5a.entry.js → p-ba76ecfd.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-bbdae095.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-041b3a82.entry.js → p-bf41e71b.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-ffb48ccc.entry.js → p-d27b2caa.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-4625184b.entry.js → p-d68b5eb3.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-cbd1289a.entry.js → p-d7b27803.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-d88e4383.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-9ebb283a.entry.js → p-ebd7efa5.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-6e6b5b80.entry.js → p-f0ec4d2c.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-0d8dd75a.entry.js → p-f6e868c1.entry.js} +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/types/components/q2-card/index.d.ts +1 -1
- package/dist/types/components/q2-chart-area/index.d.ts +40 -0
- package/dist/types/components/q2-chart-bar/index.d.ts +2 -2
- package/dist/types/components/q2-chart-donut/index.d.ts +1 -1
- package/dist/types/components/q2-select/index.d.ts +1 -0
- package/dist/types/components.d.ts +58 -0
- package/dist/types/global.d.ts +4 -2
- package/package.json +2 -2
- package/dist/q2-tecton-elements/p-1f85cced.js +0 -39
- package/dist/q2-tecton-elements/p-5e374fbd.js +0 -1
- package/dist/q2-tecton-elements/p-6b52a262.entry.js +0 -1
- package/dist/q2-tecton-elements/p-aaf42539.entry.js +0 -1
- package/dist/q2-tecton-elements/p-cf41970f.entry.js +0 -1
- package/dist/q2-tecton-elements/p-e6d26f39.entry.js +0 -1
- package/dist/q2-tecton-elements/p-f35bf6a3.entry.js +0 -1
- /package/dist/types/workspace/workspace/{_production_release_1.22.x-alpha → Tecton_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -779,7 +779,7 @@ function distanceSquare(v1, v2) {
|
|
|
779
779
|
+ (v1[1] - v2[1]) * (v1[1] - v2[1]);
|
|
780
780
|
}
|
|
781
781
|
var distSquare = distanceSquare;
|
|
782
|
-
function lerp(out, v1, v2, t) {
|
|
782
|
+
function lerp$1(out, v1, v2, t) {
|
|
783
783
|
out[0] = v1[0] + t * (v2[0] - v1[0]);
|
|
784
784
|
out[1] = v1[1] + t * (v2[1] - v1[1]);
|
|
785
785
|
return out;
|
|
@@ -3626,6 +3626,9 @@ function cssHueToRgb(m1, m2, h) {
|
|
|
3626
3626
|
}
|
|
3627
3627
|
return m1;
|
|
3628
3628
|
}
|
|
3629
|
+
function lerpNumber(a, b, p) {
|
|
3630
|
+
return a + (b - a) * p;
|
|
3631
|
+
}
|
|
3629
3632
|
function setRgba(out, r, g, b, a) {
|
|
3630
3633
|
out[0] = r;
|
|
3631
3634
|
out[1] = g;
|
|
@@ -3769,6 +3772,32 @@ function lift(color, level) {
|
|
|
3769
3772
|
return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');
|
|
3770
3773
|
}
|
|
3771
3774
|
}
|
|
3775
|
+
function lerp(normalizedValue, colors, fullOutput) {
|
|
3776
|
+
if (!(colors && colors.length)
|
|
3777
|
+
|| !(normalizedValue >= 0 && normalizedValue <= 1)) {
|
|
3778
|
+
return;
|
|
3779
|
+
}
|
|
3780
|
+
var value = normalizedValue * (colors.length - 1);
|
|
3781
|
+
var leftIndex = Math.floor(value);
|
|
3782
|
+
var rightIndex = Math.ceil(value);
|
|
3783
|
+
var leftColor = parse(colors[leftIndex]);
|
|
3784
|
+
var rightColor = parse(colors[rightIndex]);
|
|
3785
|
+
var dv = value - leftIndex;
|
|
3786
|
+
var color = stringify([
|
|
3787
|
+
clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),
|
|
3788
|
+
clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),
|
|
3789
|
+
clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),
|
|
3790
|
+
clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))
|
|
3791
|
+
], 'rgba');
|
|
3792
|
+
return fullOutput
|
|
3793
|
+
? {
|
|
3794
|
+
color: color,
|
|
3795
|
+
leftIndex: leftIndex,
|
|
3796
|
+
rightIndex: rightIndex,
|
|
3797
|
+
value: value
|
|
3798
|
+
}
|
|
3799
|
+
: color;
|
|
3800
|
+
}
|
|
3772
3801
|
function stringify(arrColor, type) {
|
|
3773
3802
|
if (!arrColor || !arrColor.length) {
|
|
3774
3803
|
return;
|
|
@@ -9033,10 +9062,31 @@ var mathMin$3 = Math.min;
|
|
|
9033
9062
|
var mathMax$3 = Math.max;
|
|
9034
9063
|
var mathSin$3 = Math.sin;
|
|
9035
9064
|
var mathCos$3 = Math.cos;
|
|
9036
|
-
var PI2$
|
|
9065
|
+
var PI2$5 = Math.PI * 2;
|
|
9037
9066
|
var start = create$1();
|
|
9038
9067
|
var end = create$1();
|
|
9039
9068
|
var extremity = create$1();
|
|
9069
|
+
function fromPoints(points, min, max) {
|
|
9070
|
+
if (points.length === 0) {
|
|
9071
|
+
return;
|
|
9072
|
+
}
|
|
9073
|
+
var p = points[0];
|
|
9074
|
+
var left = p[0];
|
|
9075
|
+
var right = p[0];
|
|
9076
|
+
var top = p[1];
|
|
9077
|
+
var bottom = p[1];
|
|
9078
|
+
for (var i = 1; i < points.length; i++) {
|
|
9079
|
+
p = points[i];
|
|
9080
|
+
left = mathMin$3(left, p[0]);
|
|
9081
|
+
right = mathMax$3(right, p[0]);
|
|
9082
|
+
top = mathMin$3(top, p[1]);
|
|
9083
|
+
bottom = mathMax$3(bottom, p[1]);
|
|
9084
|
+
}
|
|
9085
|
+
min[0] = left;
|
|
9086
|
+
min[1] = top;
|
|
9087
|
+
max[0] = right;
|
|
9088
|
+
max[1] = bottom;
|
|
9089
|
+
}
|
|
9040
9090
|
function fromLine(x0, y0, x1, y1, min, max) {
|
|
9041
9091
|
min[0] = mathMin$3(x0, x1);
|
|
9042
9092
|
min[1] = mathMin$3(y0, y1);
|
|
@@ -9089,7 +9139,7 @@ function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {
|
|
|
9089
9139
|
var vec2Min = min$1;
|
|
9090
9140
|
var vec2Max = max$1;
|
|
9091
9141
|
var diff = Math.abs(startAngle - endAngle);
|
|
9092
|
-
if (diff % PI2$
|
|
9142
|
+
if (diff % PI2$5 < 1e-4 && diff > 1e-4) {
|
|
9093
9143
|
min[0] = x - rx;
|
|
9094
9144
|
min[1] = y - ry;
|
|
9095
9145
|
max[0] = x + rx;
|
|
@@ -9102,19 +9152,19 @@ function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {
|
|
|
9102
9152
|
end[1] = mathSin$3(endAngle) * ry + y;
|
|
9103
9153
|
vec2Min(min, start, end);
|
|
9104
9154
|
vec2Max(max, start, end);
|
|
9105
|
-
startAngle = startAngle % (PI2$
|
|
9155
|
+
startAngle = startAngle % (PI2$5);
|
|
9106
9156
|
if (startAngle < 0) {
|
|
9107
|
-
startAngle = startAngle + PI2$
|
|
9157
|
+
startAngle = startAngle + PI2$5;
|
|
9108
9158
|
}
|
|
9109
|
-
endAngle = endAngle % (PI2$
|
|
9159
|
+
endAngle = endAngle % (PI2$5);
|
|
9110
9160
|
if (endAngle < 0) {
|
|
9111
|
-
endAngle = endAngle + PI2$
|
|
9161
|
+
endAngle = endAngle + PI2$5;
|
|
9112
9162
|
}
|
|
9113
9163
|
if (startAngle > endAngle && !anticlockwise) {
|
|
9114
|
-
endAngle += PI2$
|
|
9164
|
+
endAngle += PI2$5;
|
|
9115
9165
|
}
|
|
9116
9166
|
else if (startAngle < endAngle && anticlockwise) {
|
|
9117
|
-
startAngle += PI2$
|
|
9167
|
+
startAngle += PI2$5;
|
|
9118
9168
|
}
|
|
9119
9169
|
if (anticlockwise) {
|
|
9120
9170
|
var tmp = endAngle;
|
|
@@ -9131,7 +9181,7 @@ function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {
|
|
|
9131
9181
|
}
|
|
9132
9182
|
}
|
|
9133
9183
|
|
|
9134
|
-
var CMD$
|
|
9184
|
+
var CMD$2 = {
|
|
9135
9185
|
M: 1,
|
|
9136
9186
|
L: 2,
|
|
9137
9187
|
C: 3,
|
|
@@ -9152,7 +9202,7 @@ var mathCos$2 = Math.cos;
|
|
|
9152
9202
|
var mathSin$2 = Math.sin;
|
|
9153
9203
|
var mathAbs$1 = Math.abs;
|
|
9154
9204
|
var PI$4 = Math.PI;
|
|
9155
|
-
var PI2$
|
|
9205
|
+
var PI2$4 = PI$4 * 2;
|
|
9156
9206
|
var hasTypedArray = typeof Float32Array !== 'undefined';
|
|
9157
9207
|
var tmpAngles = [];
|
|
9158
9208
|
function modPI2(radian) {
|
|
@@ -9162,22 +9212,22 @@ function modPI2(radian) {
|
|
|
9162
9212
|
function normalizeArcAngles(angles, anticlockwise) {
|
|
9163
9213
|
var newStartAngle = modPI2(angles[0]);
|
|
9164
9214
|
if (newStartAngle < 0) {
|
|
9165
|
-
newStartAngle += PI2$
|
|
9215
|
+
newStartAngle += PI2$4;
|
|
9166
9216
|
}
|
|
9167
9217
|
var delta = newStartAngle - angles[0];
|
|
9168
9218
|
var newEndAngle = angles[1];
|
|
9169
9219
|
newEndAngle += delta;
|
|
9170
|
-
if (!anticlockwise && newEndAngle - newStartAngle >= PI2$
|
|
9171
|
-
newEndAngle = newStartAngle + PI2$
|
|
9220
|
+
if (!anticlockwise && newEndAngle - newStartAngle >= PI2$4) {
|
|
9221
|
+
newEndAngle = newStartAngle + PI2$4;
|
|
9172
9222
|
}
|
|
9173
|
-
else if (anticlockwise && newStartAngle - newEndAngle >= PI2$
|
|
9174
|
-
newEndAngle = newStartAngle - PI2$
|
|
9223
|
+
else if (anticlockwise && newStartAngle - newEndAngle >= PI2$4) {
|
|
9224
|
+
newEndAngle = newStartAngle - PI2$4;
|
|
9175
9225
|
}
|
|
9176
9226
|
else if (!anticlockwise && newStartAngle > newEndAngle) {
|
|
9177
|
-
newEndAngle = newStartAngle + (PI2$
|
|
9227
|
+
newEndAngle = newStartAngle + (PI2$4 - modPI2(newStartAngle - newEndAngle));
|
|
9178
9228
|
}
|
|
9179
9229
|
else if (anticlockwise && newStartAngle < newEndAngle) {
|
|
9180
|
-
newEndAngle = newStartAngle - (PI2$
|
|
9230
|
+
newEndAngle = newStartAngle - (PI2$4 - modPI2(newEndAngle - newStartAngle));
|
|
9181
9231
|
}
|
|
9182
9232
|
angles[0] = newStartAngle;
|
|
9183
9233
|
angles[1] = newEndAngle;
|
|
@@ -9236,7 +9286,7 @@ var PathProxy = (function () {
|
|
|
9236
9286
|
};
|
|
9237
9287
|
PathProxy.prototype.moveTo = function (x, y) {
|
|
9238
9288
|
this._drawPendingPt();
|
|
9239
|
-
this.addData(CMD$
|
|
9289
|
+
this.addData(CMD$2.M, x, y);
|
|
9240
9290
|
this._ctx && this._ctx.moveTo(x, y);
|
|
9241
9291
|
this._x0 = x;
|
|
9242
9292
|
this._y0 = y;
|
|
@@ -9248,7 +9298,7 @@ var PathProxy = (function () {
|
|
|
9248
9298
|
var dx = mathAbs$1(x - this._xi);
|
|
9249
9299
|
var dy = mathAbs$1(y - this._yi);
|
|
9250
9300
|
var exceedUnit = dx > this._ux || dy > this._uy;
|
|
9251
|
-
this.addData(CMD$
|
|
9301
|
+
this.addData(CMD$2.L, x, y);
|
|
9252
9302
|
if (this._ctx && exceedUnit) {
|
|
9253
9303
|
this._ctx.lineTo(x, y);
|
|
9254
9304
|
}
|
|
@@ -9269,7 +9319,7 @@ var PathProxy = (function () {
|
|
|
9269
9319
|
};
|
|
9270
9320
|
PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {
|
|
9271
9321
|
this._drawPendingPt();
|
|
9272
|
-
this.addData(CMD$
|
|
9322
|
+
this.addData(CMD$2.C, x1, y1, x2, y2, x3, y3);
|
|
9273
9323
|
if (this._ctx) {
|
|
9274
9324
|
this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);
|
|
9275
9325
|
}
|
|
@@ -9279,7 +9329,7 @@ var PathProxy = (function () {
|
|
|
9279
9329
|
};
|
|
9280
9330
|
PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {
|
|
9281
9331
|
this._drawPendingPt();
|
|
9282
|
-
this.addData(CMD$
|
|
9332
|
+
this.addData(CMD$2.Q, x1, y1, x2, y2);
|
|
9283
9333
|
if (this._ctx) {
|
|
9284
9334
|
this._ctx.quadraticCurveTo(x1, y1, x2, y2);
|
|
9285
9335
|
}
|
|
@@ -9295,7 +9345,7 @@ var PathProxy = (function () {
|
|
|
9295
9345
|
startAngle = tmpAngles[0];
|
|
9296
9346
|
endAngle = tmpAngles[1];
|
|
9297
9347
|
var delta = endAngle - startAngle;
|
|
9298
|
-
this.addData(CMD$
|
|
9348
|
+
this.addData(CMD$2.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);
|
|
9299
9349
|
this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);
|
|
9300
9350
|
this._xi = mathCos$2(endAngle) * r + cx;
|
|
9301
9351
|
this._yi = mathSin$2(endAngle) * r + cy;
|
|
@@ -9311,12 +9361,12 @@ var PathProxy = (function () {
|
|
|
9311
9361
|
PathProxy.prototype.rect = function (x, y, w, h) {
|
|
9312
9362
|
this._drawPendingPt();
|
|
9313
9363
|
this._ctx && this._ctx.rect(x, y, w, h);
|
|
9314
|
-
this.addData(CMD$
|
|
9364
|
+
this.addData(CMD$2.R, x, y, w, h);
|
|
9315
9365
|
return this;
|
|
9316
9366
|
};
|
|
9317
9367
|
PathProxy.prototype.closePath = function () {
|
|
9318
9368
|
this._drawPendingPt();
|
|
9319
|
-
this.addData(CMD$
|
|
9369
|
+
this.addData(CMD$2.Z);
|
|
9320
9370
|
var ctx = this._ctx;
|
|
9321
9371
|
var x0 = this._x0;
|
|
9322
9372
|
var y0 = this._y0;
|
|
@@ -9429,7 +9479,7 @@ var PathProxy = (function () {
|
|
|
9429
9479
|
y0 = yi;
|
|
9430
9480
|
}
|
|
9431
9481
|
switch (cmd) {
|
|
9432
|
-
case CMD$
|
|
9482
|
+
case CMD$2.M:
|
|
9433
9483
|
xi = x0 = data[i++];
|
|
9434
9484
|
yi = y0 = data[i++];
|
|
9435
9485
|
min2[0] = x0;
|
|
@@ -9437,22 +9487,22 @@ var PathProxy = (function () {
|
|
|
9437
9487
|
max2[0] = x0;
|
|
9438
9488
|
max2[1] = y0;
|
|
9439
9489
|
break;
|
|
9440
|
-
case CMD$
|
|
9490
|
+
case CMD$2.L:
|
|
9441
9491
|
fromLine(xi, yi, data[i], data[i + 1], min2, max2);
|
|
9442
9492
|
xi = data[i++];
|
|
9443
9493
|
yi = data[i++];
|
|
9444
9494
|
break;
|
|
9445
|
-
case CMD$
|
|
9495
|
+
case CMD$2.C:
|
|
9446
9496
|
fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);
|
|
9447
9497
|
xi = data[i++];
|
|
9448
9498
|
yi = data[i++];
|
|
9449
9499
|
break;
|
|
9450
|
-
case CMD$
|
|
9500
|
+
case CMD$2.Q:
|
|
9451
9501
|
fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);
|
|
9452
9502
|
xi = data[i++];
|
|
9453
9503
|
yi = data[i++];
|
|
9454
9504
|
break;
|
|
9455
|
-
case CMD$
|
|
9505
|
+
case CMD$2.A:
|
|
9456
9506
|
var cx = data[i++];
|
|
9457
9507
|
var cy = data[i++];
|
|
9458
9508
|
var rx = data[i++];
|
|
@@ -9469,14 +9519,14 @@ var PathProxy = (function () {
|
|
|
9469
9519
|
xi = mathCos$2(endAngle) * rx + cx;
|
|
9470
9520
|
yi = mathSin$2(endAngle) * ry + cy;
|
|
9471
9521
|
break;
|
|
9472
|
-
case CMD$
|
|
9522
|
+
case CMD$2.R:
|
|
9473
9523
|
x0 = xi = data[i++];
|
|
9474
9524
|
y0 = yi = data[i++];
|
|
9475
9525
|
var width = data[i++];
|
|
9476
9526
|
var height = data[i++];
|
|
9477
9527
|
fromLine(x0, y0, x0 + width, y0 + height, min2, max2);
|
|
9478
9528
|
break;
|
|
9479
|
-
case CMD$
|
|
9529
|
+
case CMD$2.Z:
|
|
9480
9530
|
xi = x0;
|
|
9481
9531
|
yi = y0;
|
|
9482
9532
|
break;
|
|
@@ -9515,11 +9565,11 @@ var PathProxy = (function () {
|
|
|
9515
9565
|
}
|
|
9516
9566
|
var l = -1;
|
|
9517
9567
|
switch (cmd) {
|
|
9518
|
-
case CMD$
|
|
9568
|
+
case CMD$2.M:
|
|
9519
9569
|
xi = x0 = data[i++];
|
|
9520
9570
|
yi = y0 = data[i++];
|
|
9521
9571
|
break;
|
|
9522
|
-
case CMD$
|
|
9572
|
+
case CMD$2.L: {
|
|
9523
9573
|
var x2 = data[i++];
|
|
9524
9574
|
var y2 = data[i++];
|
|
9525
9575
|
var dx = x2 - xi;
|
|
@@ -9531,7 +9581,7 @@ var PathProxy = (function () {
|
|
|
9531
9581
|
}
|
|
9532
9582
|
break;
|
|
9533
9583
|
}
|
|
9534
|
-
case CMD$
|
|
9584
|
+
case CMD$2.C: {
|
|
9535
9585
|
var x1 = data[i++];
|
|
9536
9586
|
var y1 = data[i++];
|
|
9537
9587
|
var x2 = data[i++];
|
|
@@ -9543,7 +9593,7 @@ var PathProxy = (function () {
|
|
|
9543
9593
|
yi = y3;
|
|
9544
9594
|
break;
|
|
9545
9595
|
}
|
|
9546
|
-
case CMD$
|
|
9596
|
+
case CMD$2.Q: {
|
|
9547
9597
|
var x1 = data[i++];
|
|
9548
9598
|
var y1 = data[i++];
|
|
9549
9599
|
var x2 = data[i++];
|
|
@@ -9553,7 +9603,7 @@ var PathProxy = (function () {
|
|
|
9553
9603
|
yi = y2;
|
|
9554
9604
|
break;
|
|
9555
9605
|
}
|
|
9556
|
-
case CMD$
|
|
9606
|
+
case CMD$2.A:
|
|
9557
9607
|
var cx = data[i++];
|
|
9558
9608
|
var cy = data[i++];
|
|
9559
9609
|
var rx = data[i++];
|
|
@@ -9567,11 +9617,11 @@ var PathProxy = (function () {
|
|
|
9567
9617
|
x0 = mathCos$2(startAngle) * rx + cx;
|
|
9568
9618
|
y0 = mathSin$2(startAngle) * ry + cy;
|
|
9569
9619
|
}
|
|
9570
|
-
l = mathMax$2(rx, ry) * mathMin$2(PI2$
|
|
9620
|
+
l = mathMax$2(rx, ry) * mathMin$2(PI2$4, Math.abs(delta));
|
|
9571
9621
|
xi = mathCos$2(endAngle) * rx + cx;
|
|
9572
9622
|
yi = mathSin$2(endAngle) * ry + cy;
|
|
9573
9623
|
break;
|
|
9574
|
-
case CMD$
|
|
9624
|
+
case CMD$2.R: {
|
|
9575
9625
|
x0 = xi = data[i++];
|
|
9576
9626
|
y0 = yi = data[i++];
|
|
9577
9627
|
var width = data[i++];
|
|
@@ -9579,7 +9629,7 @@ var PathProxy = (function () {
|
|
|
9579
9629
|
l = width * 2 + height * 2;
|
|
9580
9630
|
break;
|
|
9581
9631
|
}
|
|
9582
|
-
case CMD$
|
|
9632
|
+
case CMD$2.Z: {
|
|
9583
9633
|
var dx = x0 - xi;
|
|
9584
9634
|
var dy = y0 - yi;
|
|
9585
9635
|
l = Math.sqrt(dx * dx + dy * dy);
|
|
@@ -9636,17 +9686,17 @@ var PathProxy = (function () {
|
|
|
9636
9686
|
x0 = xi;
|
|
9637
9687
|
y0 = yi;
|
|
9638
9688
|
}
|
|
9639
|
-
if (cmd !== CMD$
|
|
9689
|
+
if (cmd !== CMD$2.L && pendingPtDist > 0) {
|
|
9640
9690
|
ctx.lineTo(pendingPtX, pendingPtY);
|
|
9641
9691
|
pendingPtDist = 0;
|
|
9642
9692
|
}
|
|
9643
9693
|
switch (cmd) {
|
|
9644
|
-
case CMD$
|
|
9694
|
+
case CMD$2.M:
|
|
9645
9695
|
x0 = xi = d[i++];
|
|
9646
9696
|
y0 = yi = d[i++];
|
|
9647
9697
|
ctx.moveTo(xi, yi);
|
|
9648
9698
|
break;
|
|
9649
|
-
case CMD$
|
|
9699
|
+
case CMD$2.L: {
|
|
9650
9700
|
x = d[i++];
|
|
9651
9701
|
y = d[i++];
|
|
9652
9702
|
var dx = mathAbs$1(x - xi);
|
|
@@ -9676,7 +9726,7 @@ var PathProxy = (function () {
|
|
|
9676
9726
|
}
|
|
9677
9727
|
break;
|
|
9678
9728
|
}
|
|
9679
|
-
case CMD$
|
|
9729
|
+
case CMD$2.C: {
|
|
9680
9730
|
var x1 = d[i++];
|
|
9681
9731
|
var y1 = d[i++];
|
|
9682
9732
|
var x2 = d[i++];
|
|
@@ -9699,7 +9749,7 @@ var PathProxy = (function () {
|
|
|
9699
9749
|
yi = y3;
|
|
9700
9750
|
break;
|
|
9701
9751
|
}
|
|
9702
|
-
case CMD$
|
|
9752
|
+
case CMD$2.Q: {
|
|
9703
9753
|
var x1 = d[i++];
|
|
9704
9754
|
var y1 = d[i++];
|
|
9705
9755
|
var x2 = d[i++];
|
|
@@ -9720,7 +9770,7 @@ var PathProxy = (function () {
|
|
|
9720
9770
|
yi = y2;
|
|
9721
9771
|
break;
|
|
9722
9772
|
}
|
|
9723
|
-
case CMD$
|
|
9773
|
+
case CMD$2.A:
|
|
9724
9774
|
var cx = d[i++];
|
|
9725
9775
|
var cy = d[i++];
|
|
9726
9776
|
var rx = d[i++];
|
|
@@ -9757,7 +9807,7 @@ var PathProxy = (function () {
|
|
|
9757
9807
|
xi = mathCos$2(endAngle) * rx + cx;
|
|
9758
9808
|
yi = mathSin$2(endAngle) * ry + cy;
|
|
9759
9809
|
break;
|
|
9760
|
-
case CMD$
|
|
9810
|
+
case CMD$2.R:
|
|
9761
9811
|
x0 = xi = d[i];
|
|
9762
9812
|
y0 = yi = d[i + 1];
|
|
9763
9813
|
x = d[i++];
|
|
@@ -9788,7 +9838,7 @@ var PathProxy = (function () {
|
|
|
9788
9838
|
}
|
|
9789
9839
|
ctx.rect(x, y, width, height);
|
|
9790
9840
|
break;
|
|
9791
|
-
case CMD$
|
|
9841
|
+
case CMD$2.Z:
|
|
9792
9842
|
if (drawPart) {
|
|
9793
9843
|
var l = pathSegLen[segCount++];
|
|
9794
9844
|
if (accumLength + l > displayedLength) {
|
|
@@ -9812,7 +9862,7 @@ var PathProxy = (function () {
|
|
|
9812
9862
|
newProxy._len = this._len;
|
|
9813
9863
|
return newProxy;
|
|
9814
9864
|
};
|
|
9815
|
-
PathProxy.CMD = CMD$
|
|
9865
|
+
PathProxy.CMD = CMD$2;
|
|
9816
9866
|
PathProxy.initDefaultProps = (function () {
|
|
9817
9867
|
var proto = PathProxy.prototype;
|
|
9818
9868
|
proto._saveData = true;
|
|
@@ -9879,16 +9929,16 @@ function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {
|
|
|
9879
9929
|
return d <= _l / 2;
|
|
9880
9930
|
}
|
|
9881
9931
|
|
|
9882
|
-
var PI2$
|
|
9932
|
+
var PI2$3 = Math.PI * 2;
|
|
9883
9933
|
function normalizeRadian(angle) {
|
|
9884
|
-
angle %= PI2$
|
|
9934
|
+
angle %= PI2$3;
|
|
9885
9935
|
if (angle < 0) {
|
|
9886
|
-
angle += PI2$
|
|
9936
|
+
angle += PI2$3;
|
|
9887
9937
|
}
|
|
9888
9938
|
return angle;
|
|
9889
9939
|
}
|
|
9890
9940
|
|
|
9891
|
-
var PI2$
|
|
9941
|
+
var PI2$2 = Math.PI * 2;
|
|
9892
9942
|
function containStroke$1(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {
|
|
9893
9943
|
if (lineWidth === 0) {
|
|
9894
9944
|
return false;
|
|
@@ -9900,7 +9950,7 @@ function containStroke$1(cx, cy, r, startAngle, endAngle, anticlockwise, lineWid
|
|
|
9900
9950
|
if ((d - _l > r) || (d + _l < r)) {
|
|
9901
9951
|
return false;
|
|
9902
9952
|
}
|
|
9903
|
-
if (Math.abs(startAngle - endAngle) % PI2$
|
|
9953
|
+
if (Math.abs(startAngle - endAngle) % PI2$2 < 1e-4) {
|
|
9904
9954
|
return true;
|
|
9905
9955
|
}
|
|
9906
9956
|
if (anticlockwise) {
|
|
@@ -9913,14 +9963,14 @@ function containStroke$1(cx, cy, r, startAngle, endAngle, anticlockwise, lineWid
|
|
|
9913
9963
|
endAngle = normalizeRadian(endAngle);
|
|
9914
9964
|
}
|
|
9915
9965
|
if (startAngle > endAngle) {
|
|
9916
|
-
endAngle += PI2$
|
|
9966
|
+
endAngle += PI2$2;
|
|
9917
9967
|
}
|
|
9918
9968
|
var angle = Math.atan2(y, x);
|
|
9919
9969
|
if (angle < 0) {
|
|
9920
|
-
angle += PI2$
|
|
9970
|
+
angle += PI2$2;
|
|
9921
9971
|
}
|
|
9922
9972
|
return (angle >= startAngle && angle <= endAngle)
|
|
9923
|
-
|| (angle + PI2$
|
|
9973
|
+
|| (angle + PI2$2 >= startAngle && angle + PI2$2 <= endAngle);
|
|
9924
9974
|
}
|
|
9925
9975
|
|
|
9926
9976
|
function windingLine(x0, y0, x1, y1, x, y) {
|
|
@@ -9939,8 +9989,8 @@ function windingLine(x0, y0, x1, y1, x, y) {
|
|
|
9939
9989
|
return x_ === x ? Infinity : x_ > x ? dir : 0;
|
|
9940
9990
|
}
|
|
9941
9991
|
|
|
9942
|
-
var CMD$
|
|
9943
|
-
var PI2$
|
|
9992
|
+
var CMD$1 = PathProxy.CMD;
|
|
9993
|
+
var PI2$1 = Math.PI * 2;
|
|
9944
9994
|
var EPSILON = 1e-4;
|
|
9945
9995
|
function isAroundEqual(a, b) {
|
|
9946
9996
|
return Math.abs(a - b) < EPSILON;
|
|
@@ -10057,9 +10107,9 @@ function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {
|
|
|
10057
10107
|
if (dTheta < 1e-4) {
|
|
10058
10108
|
return 0;
|
|
10059
10109
|
}
|
|
10060
|
-
if (dTheta >= PI2$
|
|
10110
|
+
if (dTheta >= PI2$1 - 1e-4) {
|
|
10061
10111
|
startAngle = 0;
|
|
10062
|
-
endAngle = PI2$
|
|
10112
|
+
endAngle = PI2$1;
|
|
10063
10113
|
var dir = anticlockwise ? 1 : -1;
|
|
10064
10114
|
if (x >= roots[0] + cx && x <= roots[1] + cx) {
|
|
10065
10115
|
return dir;
|
|
@@ -10074,8 +10124,8 @@ function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {
|
|
|
10074
10124
|
endAngle = tmp_1;
|
|
10075
10125
|
}
|
|
10076
10126
|
if (startAngle < 0) {
|
|
10077
|
-
startAngle += PI2$
|
|
10078
|
-
endAngle += PI2$
|
|
10127
|
+
startAngle += PI2$1;
|
|
10128
|
+
endAngle += PI2$1;
|
|
10079
10129
|
}
|
|
10080
10130
|
var w = 0;
|
|
10081
10131
|
for (var i = 0; i < 2; i++) {
|
|
@@ -10084,10 +10134,10 @@ function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {
|
|
|
10084
10134
|
var angle = Math.atan2(y, x_);
|
|
10085
10135
|
var dir = anticlockwise ? 1 : -1;
|
|
10086
10136
|
if (angle < 0) {
|
|
10087
|
-
angle = PI2$
|
|
10137
|
+
angle = PI2$1 + angle;
|
|
10088
10138
|
}
|
|
10089
10139
|
if ((angle >= startAngle && angle <= endAngle)
|
|
10090
|
-
|| (angle + PI2$
|
|
10140
|
+
|| (angle + PI2$1 >= startAngle && angle + PI2$1 <= endAngle)) {
|
|
10091
10141
|
if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {
|
|
10092
10142
|
dir = -dir;
|
|
10093
10143
|
}
|
|
@@ -10110,7 +10160,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10110
10160
|
for (var i = 0; i < len;) {
|
|
10111
10161
|
var cmd = data[i++];
|
|
10112
10162
|
var isFirst = i === 1;
|
|
10113
|
-
if (cmd === CMD$
|
|
10163
|
+
if (cmd === CMD$1.M && i > 1) {
|
|
10114
10164
|
if (!isStroke) {
|
|
10115
10165
|
w += windingLine(xi, yi, x0, y0, x, y);
|
|
10116
10166
|
}
|
|
@@ -10122,13 +10172,13 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10122
10172
|
y0 = yi;
|
|
10123
10173
|
}
|
|
10124
10174
|
switch (cmd) {
|
|
10125
|
-
case CMD$
|
|
10175
|
+
case CMD$1.M:
|
|
10126
10176
|
x0 = data[i++];
|
|
10127
10177
|
y0 = data[i++];
|
|
10128
10178
|
xi = x0;
|
|
10129
10179
|
yi = y0;
|
|
10130
10180
|
break;
|
|
10131
|
-
case CMD$
|
|
10181
|
+
case CMD$1.L:
|
|
10132
10182
|
if (isStroke) {
|
|
10133
10183
|
if (containStroke$4(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {
|
|
10134
10184
|
return true;
|
|
@@ -10140,7 +10190,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10140
10190
|
xi = data[i++];
|
|
10141
10191
|
yi = data[i++];
|
|
10142
10192
|
break;
|
|
10143
|
-
case CMD$
|
|
10193
|
+
case CMD$1.C:
|
|
10144
10194
|
if (isStroke) {
|
|
10145
10195
|
if (containStroke$3(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {
|
|
10146
10196
|
return true;
|
|
@@ -10152,7 +10202,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10152
10202
|
xi = data[i++];
|
|
10153
10203
|
yi = data[i++];
|
|
10154
10204
|
break;
|
|
10155
|
-
case CMD$
|
|
10205
|
+
case CMD$1.Q:
|
|
10156
10206
|
if (isStroke) {
|
|
10157
10207
|
if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {
|
|
10158
10208
|
return true;
|
|
@@ -10164,7 +10214,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10164
10214
|
xi = data[i++];
|
|
10165
10215
|
yi = data[i++];
|
|
10166
10216
|
break;
|
|
10167
|
-
case CMD$
|
|
10217
|
+
case CMD$1.A:
|
|
10168
10218
|
var cx = data[i++];
|
|
10169
10219
|
var cy = data[i++];
|
|
10170
10220
|
var rx = data[i++];
|
|
@@ -10194,7 +10244,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10194
10244
|
xi = Math.cos(theta + dTheta) * rx + cx;
|
|
10195
10245
|
yi = Math.sin(theta + dTheta) * ry + cy;
|
|
10196
10246
|
break;
|
|
10197
|
-
case CMD$
|
|
10247
|
+
case CMD$1.R:
|
|
10198
10248
|
x0 = xi = data[i++];
|
|
10199
10249
|
y0 = yi = data[i++];
|
|
10200
10250
|
var width = data[i++];
|
|
@@ -10214,7 +10264,7 @@ function containPath(path, lineWidth, isStroke, x, y) {
|
|
|
10214
10264
|
w += windingLine(x0, y1, x0, y0, x, y);
|
|
10215
10265
|
}
|
|
10216
10266
|
break;
|
|
10217
|
-
case CMD$
|
|
10267
|
+
case CMD$1.Z:
|
|
10218
10268
|
if (isStroke) {
|
|
10219
10269
|
if (containStroke$4(xi, yi, x0, y0, lineWidth, x, y)) {
|
|
10220
10270
|
return true;
|
|
@@ -11597,6 +11647,25 @@ function traverseUpdateState(el, updater, commonParam) {
|
|
|
11597
11647
|
});
|
|
11598
11648
|
}
|
|
11599
11649
|
|
|
11650
|
+
function setStatesFlag(el, stateName) {
|
|
11651
|
+
switch (stateName) {
|
|
11652
|
+
case 'emphasis':
|
|
11653
|
+
el.hoverState = HOVER_STATE_EMPHASIS;
|
|
11654
|
+
break;
|
|
11655
|
+
|
|
11656
|
+
case 'normal':
|
|
11657
|
+
el.hoverState = HOVER_STATE_NORMAL;
|
|
11658
|
+
break;
|
|
11659
|
+
|
|
11660
|
+
case 'blur':
|
|
11661
|
+
el.hoverState = HOVER_STATE_BLUR;
|
|
11662
|
+
break;
|
|
11663
|
+
|
|
11664
|
+
case 'select':
|
|
11665
|
+
el.selected = true;
|
|
11666
|
+
}
|
|
11667
|
+
}
|
|
11668
|
+
|
|
11600
11669
|
function getFromStateStyle(el, props, toStateName, defaultValue) {
|
|
11601
11670
|
var style = el.style;
|
|
11602
11671
|
var fromState = {};
|
|
@@ -12206,7 +12275,7 @@ function savePathStates(el) {
|
|
|
12206
12275
|
store.selectStroke = selectState.style && selectState.style.stroke || null;
|
|
12207
12276
|
}
|
|
12208
12277
|
|
|
12209
|
-
var CMD
|
|
12278
|
+
var CMD = PathProxy.CMD;
|
|
12210
12279
|
var points = [[], [], []];
|
|
12211
12280
|
var mathSqrt$2 = Math.sqrt;
|
|
12212
12281
|
var mathAtan2 = Math.atan2;
|
|
@@ -12222,12 +12291,12 @@ function transformPath(path, m) {
|
|
|
12222
12291
|
var j;
|
|
12223
12292
|
var k;
|
|
12224
12293
|
var p;
|
|
12225
|
-
var M = CMD
|
|
12226
|
-
var C = CMD
|
|
12227
|
-
var L = CMD
|
|
12228
|
-
var R = CMD
|
|
12229
|
-
var A = CMD
|
|
12230
|
-
var Q = CMD
|
|
12294
|
+
var M = CMD.M;
|
|
12295
|
+
var C = CMD.C;
|
|
12296
|
+
var L = CMD.L;
|
|
12297
|
+
var R = CMD.R;
|
|
12298
|
+
var A = CMD.A;
|
|
12299
|
+
var Q = CMD.Q;
|
|
12231
12300
|
for (i = 0, j = 0; i < len;) {
|
|
12232
12301
|
cmd = data[i++];
|
|
12233
12302
|
j = i;
|
|
@@ -12625,6 +12694,31 @@ function mergePath$1(pathEls, opts) {
|
|
|
12625
12694
|
};
|
|
12626
12695
|
return pathBundle;
|
|
12627
12696
|
}
|
|
12697
|
+
function clonePath(sourcePath, opts) {
|
|
12698
|
+
opts = opts || {};
|
|
12699
|
+
var path = new Path();
|
|
12700
|
+
if (sourcePath.shape) {
|
|
12701
|
+
path.setShape(sourcePath.shape);
|
|
12702
|
+
}
|
|
12703
|
+
path.setStyle(sourcePath.style);
|
|
12704
|
+
if (opts.bakeTransform) {
|
|
12705
|
+
transformPath(path.path, sourcePath.getComputedTransform());
|
|
12706
|
+
}
|
|
12707
|
+
else {
|
|
12708
|
+
if (opts.toLocal) {
|
|
12709
|
+
path.setLocalTransform(sourcePath.getComputedTransform());
|
|
12710
|
+
}
|
|
12711
|
+
else {
|
|
12712
|
+
path.copyTransform(sourcePath);
|
|
12713
|
+
}
|
|
12714
|
+
}
|
|
12715
|
+
path.buildPath = sourcePath.buildPath;
|
|
12716
|
+
path.applyTransform = path.applyTransform;
|
|
12717
|
+
path.z = sourcePath.z;
|
|
12718
|
+
path.z2 = sourcePath.z2;
|
|
12719
|
+
path.zlevel = sourcePath.zlevel;
|
|
12720
|
+
return path;
|
|
12721
|
+
}
|
|
12628
12722
|
|
|
12629
12723
|
var CircleShape = (function () {
|
|
12630
12724
|
function CircleShape() {
|
|
@@ -12687,7 +12781,7 @@ var Ellipse = (function (_super) {
|
|
|
12687
12781
|
Ellipse.prototype.type = 'ellipse';
|
|
12688
12782
|
|
|
12689
12783
|
var PI$2 = Math.PI;
|
|
12690
|
-
var PI2
|
|
12784
|
+
var PI2 = PI$2 * 2;
|
|
12691
12785
|
var mathSin = Math.sin;
|
|
12692
12786
|
var mathCos = Math.cos;
|
|
12693
12787
|
var mathACos = Math.acos;
|
|
@@ -12798,12 +12892,12 @@ function buildPath$1(ctx, shape) {
|
|
|
12798
12892
|
var cx = shape.cx, cy = shape.cy;
|
|
12799
12893
|
var clockwise = !!shape.clockwise;
|
|
12800
12894
|
var arc = mathAbs(endAngle - startAngle);
|
|
12801
|
-
var mod = arc > PI2
|
|
12895
|
+
var mod = arc > PI2 && arc % PI2;
|
|
12802
12896
|
mod > e && (arc = mod);
|
|
12803
12897
|
if (!(radius > e)) {
|
|
12804
12898
|
ctx.moveTo(cx, cy);
|
|
12805
12899
|
}
|
|
12806
|
-
else if (arc > PI2
|
|
12900
|
+
else if (arc > PI2 - e) {
|
|
12807
12901
|
ctx.moveTo(cx + radius * mathCos(startAngle), cy + radius * mathSin(startAngle));
|
|
12808
12902
|
ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);
|
|
12809
12903
|
if (innerRadius > e) {
|
|
@@ -13849,6 +13943,9 @@ function removeElementWithFadeOut(el, animatableModel, dataIndex) {
|
|
|
13849
13943
|
function saveOldStyle(el) {
|
|
13850
13944
|
transitionStore(el).oldStyle = el.style;
|
|
13851
13945
|
}
|
|
13946
|
+
function getOldStyle(el) {
|
|
13947
|
+
return transitionStore(el).oldStyle;
|
|
13948
|
+
}
|
|
13852
13949
|
|
|
13853
13950
|
var mathMax = Math.max;
|
|
13854
13951
|
var mathMin = Math.min;
|
|
@@ -25302,6 +25399,13 @@ keepAspect) {
|
|
|
25302
25399
|
|
|
25303
25400
|
return symbolPath;
|
|
25304
25401
|
}
|
|
25402
|
+
function normalizeSymbolSize(symbolSize) {
|
|
25403
|
+
if (!isArray(symbolSize)) {
|
|
25404
|
+
symbolSize = [+symbolSize, +symbolSize];
|
|
25405
|
+
}
|
|
25406
|
+
|
|
25407
|
+
return [symbolSize[0] || 0, symbolSize[1] || 0];
|
|
25408
|
+
}
|
|
25305
25409
|
function normalizeSymbolOffset(symbolOffset, symbolSize) {
|
|
25306
25410
|
if (symbolOffset == null) {
|
|
25307
25411
|
return;
|
|
@@ -33407,583 +33511,6 @@ function use(ext) {
|
|
|
33407
33511
|
ext.install(extensionRegisters);
|
|
33408
33512
|
}
|
|
33409
33513
|
|
|
33410
|
-
var PI2 = Math.PI * 2;
|
|
33411
|
-
var CMD = PathProxy.CMD;
|
|
33412
|
-
var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];
|
|
33413
|
-
|
|
33414
|
-
function getCandidateAnchor(pos, distance, rect, outPt, outDir) {
|
|
33415
|
-
var width = rect.width;
|
|
33416
|
-
var height = rect.height;
|
|
33417
|
-
|
|
33418
|
-
switch (pos) {
|
|
33419
|
-
case 'top':
|
|
33420
|
-
outPt.set(rect.x + width / 2, rect.y - distance);
|
|
33421
|
-
outDir.set(0, -1);
|
|
33422
|
-
break;
|
|
33423
|
-
|
|
33424
|
-
case 'bottom':
|
|
33425
|
-
outPt.set(rect.x + width / 2, rect.y + height + distance);
|
|
33426
|
-
outDir.set(0, 1);
|
|
33427
|
-
break;
|
|
33428
|
-
|
|
33429
|
-
case 'left':
|
|
33430
|
-
outPt.set(rect.x - distance, rect.y + height / 2);
|
|
33431
|
-
outDir.set(-1, 0);
|
|
33432
|
-
break;
|
|
33433
|
-
|
|
33434
|
-
case 'right':
|
|
33435
|
-
outPt.set(rect.x + width + distance, rect.y + height / 2);
|
|
33436
|
-
outDir.set(1, 0);
|
|
33437
|
-
break;
|
|
33438
|
-
}
|
|
33439
|
-
}
|
|
33440
|
-
|
|
33441
|
-
function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {
|
|
33442
|
-
x -= cx;
|
|
33443
|
-
y -= cy;
|
|
33444
|
-
var d = Math.sqrt(x * x + y * y);
|
|
33445
|
-
x /= d;
|
|
33446
|
-
y /= d; // Intersect point.
|
|
33447
|
-
|
|
33448
|
-
var ox = x * r + cx;
|
|
33449
|
-
var oy = y * r + cy;
|
|
33450
|
-
|
|
33451
|
-
if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {
|
|
33452
|
-
// Is a circle
|
|
33453
|
-
out[0] = ox;
|
|
33454
|
-
out[1] = oy;
|
|
33455
|
-
return d - r;
|
|
33456
|
-
}
|
|
33457
|
-
|
|
33458
|
-
if (anticlockwise) {
|
|
33459
|
-
var tmp = startAngle;
|
|
33460
|
-
startAngle = normalizeRadian(endAngle);
|
|
33461
|
-
endAngle = normalizeRadian(tmp);
|
|
33462
|
-
} else {
|
|
33463
|
-
startAngle = normalizeRadian(startAngle);
|
|
33464
|
-
endAngle = normalizeRadian(endAngle);
|
|
33465
|
-
}
|
|
33466
|
-
|
|
33467
|
-
if (startAngle > endAngle) {
|
|
33468
|
-
endAngle += PI2;
|
|
33469
|
-
}
|
|
33470
|
-
|
|
33471
|
-
var angle = Math.atan2(y, x);
|
|
33472
|
-
|
|
33473
|
-
if (angle < 0) {
|
|
33474
|
-
angle += PI2;
|
|
33475
|
-
}
|
|
33476
|
-
|
|
33477
|
-
if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {
|
|
33478
|
-
// Project point is on the arc.
|
|
33479
|
-
out[0] = ox;
|
|
33480
|
-
out[1] = oy;
|
|
33481
|
-
return d - r;
|
|
33482
|
-
}
|
|
33483
|
-
|
|
33484
|
-
var x1 = r * Math.cos(startAngle) + cx;
|
|
33485
|
-
var y1 = r * Math.sin(startAngle) + cy;
|
|
33486
|
-
var x2 = r * Math.cos(endAngle) + cx;
|
|
33487
|
-
var y2 = r * Math.sin(endAngle) + cy;
|
|
33488
|
-
var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);
|
|
33489
|
-
var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);
|
|
33490
|
-
|
|
33491
|
-
if (d1 < d2) {
|
|
33492
|
-
out[0] = x1;
|
|
33493
|
-
out[1] = y1;
|
|
33494
|
-
return Math.sqrt(d1);
|
|
33495
|
-
} else {
|
|
33496
|
-
out[0] = x2;
|
|
33497
|
-
out[1] = y2;
|
|
33498
|
-
return Math.sqrt(d2);
|
|
33499
|
-
}
|
|
33500
|
-
}
|
|
33501
|
-
|
|
33502
|
-
function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {
|
|
33503
|
-
var dx = x - x1;
|
|
33504
|
-
var dy = y - y1;
|
|
33505
|
-
var dx1 = x2 - x1;
|
|
33506
|
-
var dy1 = y2 - y1;
|
|
33507
|
-
var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);
|
|
33508
|
-
dx1 /= lineLen;
|
|
33509
|
-
dy1 /= lineLen; // dot product
|
|
33510
|
-
|
|
33511
|
-
var projectedLen = dx * dx1 + dy * dy1;
|
|
33512
|
-
var t = projectedLen / lineLen;
|
|
33513
|
-
|
|
33514
|
-
if (limitToEnds) {
|
|
33515
|
-
t = Math.min(Math.max(t, 0), 1);
|
|
33516
|
-
}
|
|
33517
|
-
|
|
33518
|
-
t *= lineLen;
|
|
33519
|
-
var ox = out[0] = x1 + t * dx1;
|
|
33520
|
-
var oy = out[1] = y1 + t * dy1;
|
|
33521
|
-
return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));
|
|
33522
|
-
}
|
|
33523
|
-
|
|
33524
|
-
function projectPointToRect(x1, y1, width, height, x, y, out) {
|
|
33525
|
-
if (width < 0) {
|
|
33526
|
-
x1 = x1 + width;
|
|
33527
|
-
width = -width;
|
|
33528
|
-
}
|
|
33529
|
-
|
|
33530
|
-
if (height < 0) {
|
|
33531
|
-
y1 = y1 + height;
|
|
33532
|
-
height = -height;
|
|
33533
|
-
}
|
|
33534
|
-
|
|
33535
|
-
var x2 = x1 + width;
|
|
33536
|
-
var y2 = y1 + height;
|
|
33537
|
-
var ox = out[0] = Math.min(Math.max(x, x1), x2);
|
|
33538
|
-
var oy = out[1] = Math.min(Math.max(y, y1), y2);
|
|
33539
|
-
return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));
|
|
33540
|
-
}
|
|
33541
|
-
|
|
33542
|
-
var tmpPt = [];
|
|
33543
|
-
|
|
33544
|
-
function nearestPointOnRect(pt, rect, out) {
|
|
33545
|
-
var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);
|
|
33546
|
-
out.set(tmpPt[0], tmpPt[1]);
|
|
33547
|
-
return dist;
|
|
33548
|
-
}
|
|
33549
|
-
/**
|
|
33550
|
-
* Calculate min distance corresponding point.
|
|
33551
|
-
* This method won't evaluate if point is in the path.
|
|
33552
|
-
*/
|
|
33553
|
-
|
|
33554
|
-
|
|
33555
|
-
function nearestPointOnPath(pt, path, out) {
|
|
33556
|
-
var xi = 0;
|
|
33557
|
-
var yi = 0;
|
|
33558
|
-
var x0 = 0;
|
|
33559
|
-
var y0 = 0;
|
|
33560
|
-
var x1;
|
|
33561
|
-
var y1;
|
|
33562
|
-
var minDist = Infinity;
|
|
33563
|
-
var data = path.data;
|
|
33564
|
-
var x = pt.x;
|
|
33565
|
-
var y = pt.y;
|
|
33566
|
-
|
|
33567
|
-
for (var i = 0; i < data.length;) {
|
|
33568
|
-
var cmd = data[i++];
|
|
33569
|
-
|
|
33570
|
-
if (i === 1) {
|
|
33571
|
-
xi = data[i];
|
|
33572
|
-
yi = data[i + 1];
|
|
33573
|
-
x0 = xi;
|
|
33574
|
-
y0 = yi;
|
|
33575
|
-
}
|
|
33576
|
-
|
|
33577
|
-
var d = minDist;
|
|
33578
|
-
|
|
33579
|
-
switch (cmd) {
|
|
33580
|
-
case CMD.M:
|
|
33581
|
-
// moveTo 命令重新创建一个新的 subpath, 并且更新新的起点
|
|
33582
|
-
// 在 closePath 的时候使用
|
|
33583
|
-
x0 = data[i++];
|
|
33584
|
-
y0 = data[i++];
|
|
33585
|
-
xi = x0;
|
|
33586
|
-
yi = y0;
|
|
33587
|
-
break;
|
|
33588
|
-
|
|
33589
|
-
case CMD.L:
|
|
33590
|
-
d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);
|
|
33591
|
-
xi = data[i++];
|
|
33592
|
-
yi = data[i++];
|
|
33593
|
-
break;
|
|
33594
|
-
|
|
33595
|
-
case CMD.C:
|
|
33596
|
-
d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);
|
|
33597
|
-
xi = data[i++];
|
|
33598
|
-
yi = data[i++];
|
|
33599
|
-
break;
|
|
33600
|
-
|
|
33601
|
-
case CMD.Q:
|
|
33602
|
-
d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);
|
|
33603
|
-
xi = data[i++];
|
|
33604
|
-
yi = data[i++];
|
|
33605
|
-
break;
|
|
33606
|
-
|
|
33607
|
-
case CMD.A:
|
|
33608
|
-
// TODO Arc 判断的开销比较大
|
|
33609
|
-
var cx = data[i++];
|
|
33610
|
-
var cy = data[i++];
|
|
33611
|
-
var rx = data[i++];
|
|
33612
|
-
var ry = data[i++];
|
|
33613
|
-
var theta = data[i++];
|
|
33614
|
-
var dTheta = data[i++]; // TODO Arc 旋转
|
|
33615
|
-
|
|
33616
|
-
i += 1;
|
|
33617
|
-
var anticlockwise = !!(1 - data[i++]);
|
|
33618
|
-
x1 = Math.cos(theta) * rx + cx;
|
|
33619
|
-
y1 = Math.sin(theta) * ry + cy; // 不是直接使用 arc 命令
|
|
33620
|
-
|
|
33621
|
-
if (i <= 1) {
|
|
33622
|
-
// 第一个命令起点还未定义
|
|
33623
|
-
x0 = x1;
|
|
33624
|
-
y0 = y1;
|
|
33625
|
-
} // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放
|
|
33626
|
-
|
|
33627
|
-
|
|
33628
|
-
var _x = (x - cx) * ry / rx + cx;
|
|
33629
|
-
|
|
33630
|
-
d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);
|
|
33631
|
-
xi = Math.cos(theta + dTheta) * rx + cx;
|
|
33632
|
-
yi = Math.sin(theta + dTheta) * ry + cy;
|
|
33633
|
-
break;
|
|
33634
|
-
|
|
33635
|
-
case CMD.R:
|
|
33636
|
-
x0 = xi = data[i++];
|
|
33637
|
-
y0 = yi = data[i++];
|
|
33638
|
-
var width = data[i++];
|
|
33639
|
-
var height = data[i++];
|
|
33640
|
-
d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);
|
|
33641
|
-
break;
|
|
33642
|
-
|
|
33643
|
-
case CMD.Z:
|
|
33644
|
-
d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);
|
|
33645
|
-
xi = x0;
|
|
33646
|
-
yi = y0;
|
|
33647
|
-
break;
|
|
33648
|
-
}
|
|
33649
|
-
|
|
33650
|
-
if (d < minDist) {
|
|
33651
|
-
minDist = d;
|
|
33652
|
-
out.set(tmpPt[0], tmpPt[1]);
|
|
33653
|
-
}
|
|
33654
|
-
}
|
|
33655
|
-
|
|
33656
|
-
return minDist;
|
|
33657
|
-
} // Temporal variable for intermediate usage.
|
|
33658
|
-
|
|
33659
|
-
|
|
33660
|
-
var pt0 = new Point();
|
|
33661
|
-
var pt1 = new Point();
|
|
33662
|
-
var pt2 = new Point();
|
|
33663
|
-
var dir = new Point();
|
|
33664
|
-
var dir2 = new Point();
|
|
33665
|
-
/**
|
|
33666
|
-
* Calculate a proper guide line based on the label position and graphic element definition
|
|
33667
|
-
* @param label
|
|
33668
|
-
* @param labelRect
|
|
33669
|
-
* @param target
|
|
33670
|
-
* @param targetRect
|
|
33671
|
-
*/
|
|
33672
|
-
|
|
33673
|
-
function updateLabelLinePoints(target, labelLineModel) {
|
|
33674
|
-
if (!target) {
|
|
33675
|
-
return;
|
|
33676
|
-
}
|
|
33677
|
-
|
|
33678
|
-
var labelLine = target.getTextGuideLine();
|
|
33679
|
-
var label = target.getTextContent(); // Needs to create text guide in each charts.
|
|
33680
|
-
|
|
33681
|
-
if (!(label && labelLine)) {
|
|
33682
|
-
return;
|
|
33683
|
-
}
|
|
33684
|
-
|
|
33685
|
-
var labelGuideConfig = target.textGuideLineConfig || {};
|
|
33686
|
-
var points = [[0, 0], [0, 0], [0, 0]];
|
|
33687
|
-
var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;
|
|
33688
|
-
var labelRect = label.getBoundingRect().clone();
|
|
33689
|
-
labelRect.applyTransform(label.getComputedTransform());
|
|
33690
|
-
var minDist = Infinity;
|
|
33691
|
-
var anchorPoint = labelGuideConfig.anchor;
|
|
33692
|
-
var targetTransform = target.getComputedTransform();
|
|
33693
|
-
var targetInversedTransform = targetTransform && invert([], targetTransform);
|
|
33694
|
-
var len = labelLineModel.get('length2') || 0;
|
|
33695
|
-
|
|
33696
|
-
if (anchorPoint) {
|
|
33697
|
-
pt2.copy(anchorPoint);
|
|
33698
|
-
}
|
|
33699
|
-
|
|
33700
|
-
for (var i = 0; i < searchSpace.length; i++) {
|
|
33701
|
-
var candidate = searchSpace[i];
|
|
33702
|
-
getCandidateAnchor(candidate, 0, labelRect, pt0, dir);
|
|
33703
|
-
Point.scaleAndAdd(pt1, pt0, dir, len); // Transform to target coord space.
|
|
33704
|
-
|
|
33705
|
-
pt1.transform(targetInversedTransform); // Note: getBoundingRect will ensure the `path` being created.
|
|
33706
|
-
|
|
33707
|
-
var boundingRect = target.getBoundingRect();
|
|
33708
|
-
var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2); // TODO pt2 is in the path
|
|
33709
|
-
|
|
33710
|
-
if (dist < minDist) {
|
|
33711
|
-
minDist = dist; // Transform back to global space.
|
|
33712
|
-
|
|
33713
|
-
pt1.transform(targetTransform);
|
|
33714
|
-
pt2.transform(targetTransform);
|
|
33715
|
-
pt2.toArray(points[0]);
|
|
33716
|
-
pt1.toArray(points[1]);
|
|
33717
|
-
pt0.toArray(points[2]);
|
|
33718
|
-
}
|
|
33719
|
-
}
|
|
33720
|
-
|
|
33721
|
-
limitTurnAngle(points, labelLineModel.get('minTurnAngle'));
|
|
33722
|
-
labelLine.setShape({
|
|
33723
|
-
points: points
|
|
33724
|
-
});
|
|
33725
|
-
} // Temporal variable for the limitTurnAngle function
|
|
33726
|
-
|
|
33727
|
-
var tmpArr = [];
|
|
33728
|
-
var tmpProjPoint = new Point();
|
|
33729
|
-
/**
|
|
33730
|
-
* Reduce the line segment attached to the label to limit the turn angle between two segments.
|
|
33731
|
-
* @param linePoints
|
|
33732
|
-
* @param minTurnAngle Radian of minimum turn angle. 0 - 180
|
|
33733
|
-
*/
|
|
33734
|
-
|
|
33735
|
-
function limitTurnAngle(linePoints, minTurnAngle) {
|
|
33736
|
-
if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {
|
|
33737
|
-
return;
|
|
33738
|
-
}
|
|
33739
|
-
|
|
33740
|
-
minTurnAngle = minTurnAngle / 180 * Math.PI; // The line points can be
|
|
33741
|
-
// /pt1----pt2 (label)
|
|
33742
|
-
// /
|
|
33743
|
-
// pt0/
|
|
33744
|
-
|
|
33745
|
-
pt0.fromArray(linePoints[0]);
|
|
33746
|
-
pt1.fromArray(linePoints[1]);
|
|
33747
|
-
pt2.fromArray(linePoints[2]);
|
|
33748
|
-
Point.sub(dir, pt0, pt1);
|
|
33749
|
-
Point.sub(dir2, pt2, pt1);
|
|
33750
|
-
var len1 = dir.len();
|
|
33751
|
-
var len2 = dir2.len();
|
|
33752
|
-
|
|
33753
|
-
if (len1 < 1e-3 || len2 < 1e-3) {
|
|
33754
|
-
return;
|
|
33755
|
-
}
|
|
33756
|
-
|
|
33757
|
-
dir.scale(1 / len1);
|
|
33758
|
-
dir2.scale(1 / len2);
|
|
33759
|
-
var angleCos = dir.dot(dir2);
|
|
33760
|
-
var minTurnAngleCos = Math.cos(minTurnAngle);
|
|
33761
|
-
|
|
33762
|
-
if (minTurnAngleCos < angleCos) {
|
|
33763
|
-
// Smaller than minTurnAngle
|
|
33764
|
-
// Calculate project point of pt0 on pt1-pt2
|
|
33765
|
-
var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);
|
|
33766
|
-
tmpProjPoint.fromArray(tmpArr); // Calculate new projected length with limited minTurnAngle and get the new connect point
|
|
33767
|
-
|
|
33768
|
-
tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle)); // Limit the new calculated connect point between pt1 and pt2.
|
|
33769
|
-
|
|
33770
|
-
var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);
|
|
33771
|
-
|
|
33772
|
-
if (isNaN(t)) {
|
|
33773
|
-
return;
|
|
33774
|
-
}
|
|
33775
|
-
|
|
33776
|
-
if (t < 0) {
|
|
33777
|
-
Point.copy(tmpProjPoint, pt1);
|
|
33778
|
-
} else if (t > 1) {
|
|
33779
|
-
Point.copy(tmpProjPoint, pt2);
|
|
33780
|
-
}
|
|
33781
|
-
|
|
33782
|
-
tmpProjPoint.toArray(linePoints[1]);
|
|
33783
|
-
}
|
|
33784
|
-
}
|
|
33785
|
-
/**
|
|
33786
|
-
* Limit the angle of line and the surface
|
|
33787
|
-
* @param maxSurfaceAngle Radian of minimum turn angle. 0 - 180. 0 is same direction to normal. 180 is opposite
|
|
33788
|
-
*/
|
|
33789
|
-
|
|
33790
|
-
function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {
|
|
33791
|
-
if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {
|
|
33792
|
-
return;
|
|
33793
|
-
}
|
|
33794
|
-
|
|
33795
|
-
maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;
|
|
33796
|
-
pt0.fromArray(linePoints[0]);
|
|
33797
|
-
pt1.fromArray(linePoints[1]);
|
|
33798
|
-
pt2.fromArray(linePoints[2]);
|
|
33799
|
-
Point.sub(dir, pt1, pt0);
|
|
33800
|
-
Point.sub(dir2, pt2, pt1);
|
|
33801
|
-
var len1 = dir.len();
|
|
33802
|
-
var len2 = dir2.len();
|
|
33803
|
-
|
|
33804
|
-
if (len1 < 1e-3 || len2 < 1e-3) {
|
|
33805
|
-
return;
|
|
33806
|
-
}
|
|
33807
|
-
|
|
33808
|
-
dir.scale(1 / len1);
|
|
33809
|
-
dir2.scale(1 / len2);
|
|
33810
|
-
var angleCos = dir.dot(surfaceNormal);
|
|
33811
|
-
var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);
|
|
33812
|
-
|
|
33813
|
-
if (angleCos < maxSurfaceAngleCos) {
|
|
33814
|
-
// Calculate project point of pt0 on pt1-pt2
|
|
33815
|
-
var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);
|
|
33816
|
-
tmpProjPoint.fromArray(tmpArr);
|
|
33817
|
-
var HALF_PI = Math.PI / 2;
|
|
33818
|
-
var angle2 = Math.acos(dir2.dot(surfaceNormal));
|
|
33819
|
-
var newAngle = HALF_PI + angle2 - maxSurfaceAngle;
|
|
33820
|
-
|
|
33821
|
-
if (newAngle >= HALF_PI) {
|
|
33822
|
-
// parallel
|
|
33823
|
-
Point.copy(tmpProjPoint, pt2);
|
|
33824
|
-
} else {
|
|
33825
|
-
// Calculate new projected length with limited minTurnAngle and get the new connect point
|
|
33826
|
-
tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle)); // Limit the new calculated connect point between pt1 and pt2.
|
|
33827
|
-
|
|
33828
|
-
var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);
|
|
33829
|
-
|
|
33830
|
-
if (isNaN(t)) {
|
|
33831
|
-
return;
|
|
33832
|
-
}
|
|
33833
|
-
|
|
33834
|
-
if (t < 0) {
|
|
33835
|
-
Point.copy(tmpProjPoint, pt1);
|
|
33836
|
-
} else if (t > 1) {
|
|
33837
|
-
Point.copy(tmpProjPoint, pt2);
|
|
33838
|
-
}
|
|
33839
|
-
}
|
|
33840
|
-
|
|
33841
|
-
tmpProjPoint.toArray(linePoints[1]);
|
|
33842
|
-
}
|
|
33843
|
-
}
|
|
33844
|
-
|
|
33845
|
-
function setLabelLineState(labelLine, ignore, stateName, stateModel) {
|
|
33846
|
-
var isNormal = stateName === 'normal';
|
|
33847
|
-
var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName); // Make sure display.
|
|
33848
|
-
|
|
33849
|
-
stateObj.ignore = ignore; // Set smooth
|
|
33850
|
-
|
|
33851
|
-
var smooth = stateModel.get('smooth');
|
|
33852
|
-
|
|
33853
|
-
if (smooth && smooth === true) {
|
|
33854
|
-
smooth = 0.3;
|
|
33855
|
-
}
|
|
33856
|
-
|
|
33857
|
-
stateObj.shape = stateObj.shape || {};
|
|
33858
|
-
|
|
33859
|
-
if (smooth > 0) {
|
|
33860
|
-
stateObj.shape.smooth = smooth;
|
|
33861
|
-
}
|
|
33862
|
-
|
|
33863
|
-
var styleObj = stateModel.getModel('lineStyle').getLineStyle();
|
|
33864
|
-
isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;
|
|
33865
|
-
}
|
|
33866
|
-
|
|
33867
|
-
function buildLabelLinePath(path, shape) {
|
|
33868
|
-
var smooth = shape.smooth;
|
|
33869
|
-
var points = shape.points;
|
|
33870
|
-
|
|
33871
|
-
if (!points) {
|
|
33872
|
-
return;
|
|
33873
|
-
}
|
|
33874
|
-
|
|
33875
|
-
path.moveTo(points[0][0], points[0][1]);
|
|
33876
|
-
|
|
33877
|
-
if (smooth > 0 && points.length >= 3) {
|
|
33878
|
-
var len1 = dist$1(points[0], points[1]);
|
|
33879
|
-
var len2 = dist$1(points[1], points[2]);
|
|
33880
|
-
|
|
33881
|
-
if (!len1 || !len2) {
|
|
33882
|
-
path.lineTo(points[1][0], points[1][1]);
|
|
33883
|
-
path.lineTo(points[2][0], points[2][1]);
|
|
33884
|
-
return;
|
|
33885
|
-
}
|
|
33886
|
-
|
|
33887
|
-
var moveLen = Math.min(len1, len2) * smooth;
|
|
33888
|
-
var midPoint0 = lerp([], points[1], points[0], moveLen / len1);
|
|
33889
|
-
var midPoint2 = lerp([], points[1], points[2], moveLen / len2);
|
|
33890
|
-
var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);
|
|
33891
|
-
path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);
|
|
33892
|
-
path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);
|
|
33893
|
-
} else {
|
|
33894
|
-
for (var i = 1; i < points.length; i++) {
|
|
33895
|
-
path.lineTo(points[i][0], points[i][1]);
|
|
33896
|
-
}
|
|
33897
|
-
}
|
|
33898
|
-
}
|
|
33899
|
-
/**
|
|
33900
|
-
* Create a label line if necessary and set it's style.
|
|
33901
|
-
*/
|
|
33902
|
-
|
|
33903
|
-
|
|
33904
|
-
function setLabelLineStyle(targetEl, statesModels, defaultStyle) {
|
|
33905
|
-
var labelLine = targetEl.getTextGuideLine();
|
|
33906
|
-
var label = targetEl.getTextContent();
|
|
33907
|
-
|
|
33908
|
-
if (!label) {
|
|
33909
|
-
// Not show label line if there is no label.
|
|
33910
|
-
if (labelLine) {
|
|
33911
|
-
targetEl.removeTextGuideLine();
|
|
33912
|
-
}
|
|
33913
|
-
|
|
33914
|
-
return;
|
|
33915
|
-
}
|
|
33916
|
-
|
|
33917
|
-
var normalModel = statesModels.normal;
|
|
33918
|
-
var showNormal = normalModel.get('show');
|
|
33919
|
-
var labelIgnoreNormal = label.ignore;
|
|
33920
|
-
|
|
33921
|
-
for (var i = 0; i < DISPLAY_STATES.length; i++) {
|
|
33922
|
-
var stateName = DISPLAY_STATES[i];
|
|
33923
|
-
var stateModel = statesModels[stateName];
|
|
33924
|
-
var isNormal = stateName === 'normal';
|
|
33925
|
-
|
|
33926
|
-
if (stateModel) {
|
|
33927
|
-
var stateShow = stateModel.get('show');
|
|
33928
|
-
var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);
|
|
33929
|
-
|
|
33930
|
-
if (isLabelIgnored // Not show when label is not shown in this state.
|
|
33931
|
-
|| !retrieve2(stateShow, showNormal) // Use normal state by default if not set.
|
|
33932
|
-
) {
|
|
33933
|
-
var stateObj = isNormal ? labelLine : labelLine && labelLine.states[stateName];
|
|
33934
|
-
|
|
33935
|
-
if (stateObj) {
|
|
33936
|
-
stateObj.ignore = true;
|
|
33937
|
-
}
|
|
33938
|
-
|
|
33939
|
-
continue;
|
|
33940
|
-
} // Create labelLine if not exists
|
|
33941
|
-
|
|
33942
|
-
|
|
33943
|
-
if (!labelLine) {
|
|
33944
|
-
labelLine = new Polyline();
|
|
33945
|
-
targetEl.setTextGuideLine(labelLine); // Reset state of normal because it's new created.
|
|
33946
|
-
// NOTE: NORMAL should always been the first!
|
|
33947
|
-
|
|
33948
|
-
if (!isNormal && (labelIgnoreNormal || !showNormal)) {
|
|
33949
|
-
setLabelLineState(labelLine, true, 'normal', statesModels.normal);
|
|
33950
|
-
} // Use same state proxy.
|
|
33951
|
-
|
|
33952
|
-
|
|
33953
|
-
if (targetEl.stateProxy) {
|
|
33954
|
-
labelLine.stateProxy = targetEl.stateProxy;
|
|
33955
|
-
}
|
|
33956
|
-
}
|
|
33957
|
-
|
|
33958
|
-
setLabelLineState(labelLine, false, stateName, stateModel);
|
|
33959
|
-
}
|
|
33960
|
-
}
|
|
33961
|
-
|
|
33962
|
-
if (labelLine) {
|
|
33963
|
-
defaults(labelLine.style, defaultStyle); // Not fill.
|
|
33964
|
-
|
|
33965
|
-
labelLine.style.fill = null;
|
|
33966
|
-
var showAbove = normalModel.get('showAbove');
|
|
33967
|
-
var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};
|
|
33968
|
-
labelLineConfig.showAbove = showAbove || false; // Custom the buildPath.
|
|
33969
|
-
|
|
33970
|
-
labelLine.buildPath = buildLabelLinePath;
|
|
33971
|
-
}
|
|
33972
|
-
}
|
|
33973
|
-
function getLabelLineStatesModels(itemModel, labelLineName) {
|
|
33974
|
-
labelLineName = labelLineName || 'labelLine';
|
|
33975
|
-
var statesModels = {
|
|
33976
|
-
normal: itemModel.getModel(labelLineName)
|
|
33977
|
-
};
|
|
33978
|
-
|
|
33979
|
-
for (var i = 0; i < SPECIAL_STATES.length; i++) {
|
|
33980
|
-
var stateName = SPECIAL_STATES[i];
|
|
33981
|
-
statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);
|
|
33982
|
-
}
|
|
33983
|
-
|
|
33984
|
-
return statesModels;
|
|
33985
|
-
}
|
|
33986
|
-
|
|
33987
33514
|
function prepareLayoutList(input) {
|
|
33988
33515
|
var list = [];
|
|
33989
33516
|
|
|
@@ -34282,468 +33809,6 @@ function hideOverlap(labelList) {
|
|
|
34282
33809
|
}
|
|
34283
33810
|
}
|
|
34284
33811
|
|
|
34285
|
-
function cloneArr(points) {
|
|
34286
|
-
if (points) {
|
|
34287
|
-
var newPoints = [];
|
|
34288
|
-
|
|
34289
|
-
for (var i = 0; i < points.length; i++) {
|
|
34290
|
-
newPoints.push(points[i].slice());
|
|
34291
|
-
}
|
|
34292
|
-
|
|
34293
|
-
return newPoints;
|
|
34294
|
-
}
|
|
34295
|
-
}
|
|
34296
|
-
|
|
34297
|
-
function prepareLayoutCallbackParams(labelItem, hostEl) {
|
|
34298
|
-
var label = labelItem.label;
|
|
34299
|
-
var labelLine = hostEl && hostEl.getTextGuideLine();
|
|
34300
|
-
return {
|
|
34301
|
-
dataIndex: labelItem.dataIndex,
|
|
34302
|
-
dataType: labelItem.dataType,
|
|
34303
|
-
seriesIndex: labelItem.seriesModel.seriesIndex,
|
|
34304
|
-
text: labelItem.label.style.text,
|
|
34305
|
-
rect: labelItem.hostRect,
|
|
34306
|
-
labelRect: labelItem.rect,
|
|
34307
|
-
// x: labelAttr.x,
|
|
34308
|
-
// y: labelAttr.y,
|
|
34309
|
-
align: label.style.align,
|
|
34310
|
-
verticalAlign: label.style.verticalAlign,
|
|
34311
|
-
labelLinePoints: cloneArr(labelLine && labelLine.shape.points)
|
|
34312
|
-
};
|
|
34313
|
-
}
|
|
34314
|
-
|
|
34315
|
-
var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];
|
|
34316
|
-
var dummyTransformable = new Transformable();
|
|
34317
|
-
var labelLayoutInnerStore = makeInner();
|
|
34318
|
-
var labelLineAnimationStore = makeInner();
|
|
34319
|
-
|
|
34320
|
-
function extendWithKeys(target, source, keys) {
|
|
34321
|
-
for (var i = 0; i < keys.length; i++) {
|
|
34322
|
-
var key = keys[i];
|
|
34323
|
-
|
|
34324
|
-
if (source[key] != null) {
|
|
34325
|
-
target[key] = source[key];
|
|
34326
|
-
}
|
|
34327
|
-
}
|
|
34328
|
-
}
|
|
34329
|
-
|
|
34330
|
-
var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];
|
|
34331
|
-
|
|
34332
|
-
var LabelManager =
|
|
34333
|
-
/** @class */
|
|
34334
|
-
function () {
|
|
34335
|
-
function LabelManager() {
|
|
34336
|
-
this._labelList = [];
|
|
34337
|
-
this._chartViewList = [];
|
|
34338
|
-
}
|
|
34339
|
-
|
|
34340
|
-
LabelManager.prototype.clearLabels = function () {
|
|
34341
|
-
this._labelList = [];
|
|
34342
|
-
this._chartViewList = [];
|
|
34343
|
-
};
|
|
34344
|
-
/**
|
|
34345
|
-
* Add label to manager
|
|
34346
|
-
*/
|
|
34347
|
-
|
|
34348
|
-
|
|
34349
|
-
LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {
|
|
34350
|
-
var labelStyle = label.style;
|
|
34351
|
-
var hostEl = label.__hostTarget;
|
|
34352
|
-
var textConfig = hostEl.textConfig || {}; // TODO: If label is in other state.
|
|
34353
|
-
|
|
34354
|
-
var labelTransform = label.getComputedTransform();
|
|
34355
|
-
var labelRect = label.getBoundingRect().plain();
|
|
34356
|
-
BoundingRect.applyTransform(labelRect, labelRect, labelTransform);
|
|
34357
|
-
|
|
34358
|
-
if (labelTransform) {
|
|
34359
|
-
dummyTransformable.setLocalTransform(labelTransform);
|
|
34360
|
-
} else {
|
|
34361
|
-
// Identity transform.
|
|
34362
|
-
dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;
|
|
34363
|
-
dummyTransformable.scaleX = dummyTransformable.scaleY = 1;
|
|
34364
|
-
}
|
|
34365
|
-
|
|
34366
|
-
var host = label.__hostTarget;
|
|
34367
|
-
var hostRect;
|
|
34368
|
-
|
|
34369
|
-
if (host) {
|
|
34370
|
-
hostRect = host.getBoundingRect().plain();
|
|
34371
|
-
var transform = host.getComputedTransform();
|
|
34372
|
-
BoundingRect.applyTransform(hostRect, hostRect, transform);
|
|
34373
|
-
}
|
|
34374
|
-
|
|
34375
|
-
var labelGuide = hostRect && host.getTextGuideLine();
|
|
34376
|
-
|
|
34377
|
-
this._labelList.push({
|
|
34378
|
-
label: label,
|
|
34379
|
-
labelLine: labelGuide,
|
|
34380
|
-
seriesModel: seriesModel,
|
|
34381
|
-
dataIndex: dataIndex,
|
|
34382
|
-
dataType: dataType,
|
|
34383
|
-
layoutOption: layoutOption,
|
|
34384
|
-
computedLayoutOption: null,
|
|
34385
|
-
rect: labelRect,
|
|
34386
|
-
hostRect: hostRect,
|
|
34387
|
-
// Label with lower priority will be hidden when overlapped
|
|
34388
|
-
// Use rect size as default priority
|
|
34389
|
-
priority: hostRect ? hostRect.width * hostRect.height : 0,
|
|
34390
|
-
// Save default label attributes.
|
|
34391
|
-
// For restore if developers want get back to default value in callback.
|
|
34392
|
-
defaultAttr: {
|
|
34393
|
-
ignore: label.ignore,
|
|
34394
|
-
labelGuideIgnore: labelGuide && labelGuide.ignore,
|
|
34395
|
-
x: dummyTransformable.x,
|
|
34396
|
-
y: dummyTransformable.y,
|
|
34397
|
-
scaleX: dummyTransformable.scaleX,
|
|
34398
|
-
scaleY: dummyTransformable.scaleY,
|
|
34399
|
-
rotation: dummyTransformable.rotation,
|
|
34400
|
-
style: {
|
|
34401
|
-
x: labelStyle.x,
|
|
34402
|
-
y: labelStyle.y,
|
|
34403
|
-
align: labelStyle.align,
|
|
34404
|
-
verticalAlign: labelStyle.verticalAlign,
|
|
34405
|
-
width: labelStyle.width,
|
|
34406
|
-
height: labelStyle.height,
|
|
34407
|
-
fontSize: labelStyle.fontSize
|
|
34408
|
-
},
|
|
34409
|
-
cursor: label.cursor,
|
|
34410
|
-
attachedPos: textConfig.position,
|
|
34411
|
-
attachedRot: textConfig.rotation
|
|
34412
|
-
}
|
|
34413
|
-
});
|
|
34414
|
-
};
|
|
34415
|
-
|
|
34416
|
-
LabelManager.prototype.addLabelsOfSeries = function (chartView) {
|
|
34417
|
-
var _this = this;
|
|
34418
|
-
|
|
34419
|
-
this._chartViewList.push(chartView);
|
|
34420
|
-
|
|
34421
|
-
var seriesModel = chartView.__model;
|
|
34422
|
-
var layoutOption = seriesModel.get('labelLayout');
|
|
34423
|
-
/**
|
|
34424
|
-
* Ignore layouting if it's not specified anything.
|
|
34425
|
-
*/
|
|
34426
|
-
|
|
34427
|
-
if (!(isFunction(layoutOption) || keys(layoutOption).length)) {
|
|
34428
|
-
return;
|
|
34429
|
-
}
|
|
34430
|
-
|
|
34431
|
-
chartView.group.traverse(function (child) {
|
|
34432
|
-
if (child.ignore) {
|
|
34433
|
-
return true; // Stop traverse descendants.
|
|
34434
|
-
} // Only support label being hosted on graphic elements.
|
|
34435
|
-
|
|
34436
|
-
|
|
34437
|
-
var textEl = child.getTextContent();
|
|
34438
|
-
var ecData = getECData(child); // Can only attach the text on the element with dataIndex
|
|
34439
|
-
|
|
34440
|
-
if (textEl && !textEl.disableLabelLayout) {
|
|
34441
|
-
_this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);
|
|
34442
|
-
}
|
|
34443
|
-
});
|
|
34444
|
-
};
|
|
34445
|
-
|
|
34446
|
-
LabelManager.prototype.updateLayoutConfig = function (api) {
|
|
34447
|
-
var width = api.getWidth();
|
|
34448
|
-
var height = api.getHeight();
|
|
34449
|
-
|
|
34450
|
-
function createDragHandler(el, labelLineModel) {
|
|
34451
|
-
return function () {
|
|
34452
|
-
updateLabelLinePoints(el, labelLineModel);
|
|
34453
|
-
};
|
|
34454
|
-
}
|
|
34455
|
-
|
|
34456
|
-
for (var i = 0; i < this._labelList.length; i++) {
|
|
34457
|
-
var labelItem = this._labelList[i];
|
|
34458
|
-
var label = labelItem.label;
|
|
34459
|
-
var hostEl = label.__hostTarget;
|
|
34460
|
-
var defaultLabelAttr = labelItem.defaultAttr;
|
|
34461
|
-
var layoutOption = void 0; // TODO A global layout option?
|
|
34462
|
-
|
|
34463
|
-
if (isFunction(labelItem.layoutOption)) {
|
|
34464
|
-
layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));
|
|
34465
|
-
} else {
|
|
34466
|
-
layoutOption = labelItem.layoutOption;
|
|
34467
|
-
}
|
|
34468
|
-
|
|
34469
|
-
layoutOption = layoutOption || {};
|
|
34470
|
-
labelItem.computedLayoutOption = layoutOption;
|
|
34471
|
-
var degreeToRadian = Math.PI / 180; // TODO hostEl should always exists.
|
|
34472
|
-
// Or label should not have parent because the x, y is all in global space.
|
|
34473
|
-
|
|
34474
|
-
if (hostEl) {
|
|
34475
|
-
hostEl.setTextConfig({
|
|
34476
|
-
// Force to set local false.
|
|
34477
|
-
local: false,
|
|
34478
|
-
// Ignore position and rotation config on the host el if x or y is changed.
|
|
34479
|
-
position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,
|
|
34480
|
-
// Ignore rotation config on the host el if rotation is changed.
|
|
34481
|
-
rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,
|
|
34482
|
-
offset: [layoutOption.dx || 0, layoutOption.dy || 0]
|
|
34483
|
-
});
|
|
34484
|
-
}
|
|
34485
|
-
|
|
34486
|
-
var needsUpdateLabelLine = false;
|
|
34487
|
-
|
|
34488
|
-
if (layoutOption.x != null) {
|
|
34489
|
-
// TODO width of chart view.
|
|
34490
|
-
label.x = parsePercent(layoutOption.x, width);
|
|
34491
|
-
label.setStyle('x', 0); // Ignore movement in style. TODO: origin.
|
|
34492
|
-
|
|
34493
|
-
needsUpdateLabelLine = true;
|
|
34494
|
-
} else {
|
|
34495
|
-
label.x = defaultLabelAttr.x;
|
|
34496
|
-
label.setStyle('x', defaultLabelAttr.style.x);
|
|
34497
|
-
}
|
|
34498
|
-
|
|
34499
|
-
if (layoutOption.y != null) {
|
|
34500
|
-
// TODO height of chart view.
|
|
34501
|
-
label.y = parsePercent(layoutOption.y, height);
|
|
34502
|
-
label.setStyle('y', 0); // Ignore movement in style.
|
|
34503
|
-
|
|
34504
|
-
needsUpdateLabelLine = true;
|
|
34505
|
-
} else {
|
|
34506
|
-
label.y = defaultLabelAttr.y;
|
|
34507
|
-
label.setStyle('y', defaultLabelAttr.style.y);
|
|
34508
|
-
}
|
|
34509
|
-
|
|
34510
|
-
if (layoutOption.labelLinePoints) {
|
|
34511
|
-
var guideLine = hostEl.getTextGuideLine();
|
|
34512
|
-
|
|
34513
|
-
if (guideLine) {
|
|
34514
|
-
guideLine.setShape({
|
|
34515
|
-
points: layoutOption.labelLinePoints
|
|
34516
|
-
}); // Not update
|
|
34517
|
-
|
|
34518
|
-
needsUpdateLabelLine = false;
|
|
34519
|
-
}
|
|
34520
|
-
}
|
|
34521
|
-
|
|
34522
|
-
var labelLayoutStore = labelLayoutInnerStore(label);
|
|
34523
|
-
labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;
|
|
34524
|
-
label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;
|
|
34525
|
-
label.scaleX = defaultLabelAttr.scaleX;
|
|
34526
|
-
label.scaleY = defaultLabelAttr.scaleY;
|
|
34527
|
-
|
|
34528
|
-
for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {
|
|
34529
|
-
var key = LABEL_OPTION_TO_STYLE_KEYS[k];
|
|
34530
|
-
label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);
|
|
34531
|
-
}
|
|
34532
|
-
|
|
34533
|
-
if (layoutOption.draggable) {
|
|
34534
|
-
label.draggable = true;
|
|
34535
|
-
label.cursor = 'move';
|
|
34536
|
-
|
|
34537
|
-
if (hostEl) {
|
|
34538
|
-
var hostModel = labelItem.seriesModel;
|
|
34539
|
-
|
|
34540
|
-
if (labelItem.dataIndex != null) {
|
|
34541
|
-
var data = labelItem.seriesModel.getData(labelItem.dataType);
|
|
34542
|
-
hostModel = data.getItemModel(labelItem.dataIndex);
|
|
34543
|
-
}
|
|
34544
|
-
|
|
34545
|
-
label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));
|
|
34546
|
-
}
|
|
34547
|
-
} else {
|
|
34548
|
-
// TODO Other drag functions?
|
|
34549
|
-
label.off('drag');
|
|
34550
|
-
label.cursor = defaultLabelAttr.cursor;
|
|
34551
|
-
}
|
|
34552
|
-
}
|
|
34553
|
-
};
|
|
34554
|
-
|
|
34555
|
-
LabelManager.prototype.layout = function (api) {
|
|
34556
|
-
var width = api.getWidth();
|
|
34557
|
-
var height = api.getHeight();
|
|
34558
|
-
var labelList = prepareLayoutList(this._labelList);
|
|
34559
|
-
var labelsNeedsAdjustOnX = filter(labelList, function (item) {
|
|
34560
|
-
return item.layoutOption.moveOverlap === 'shiftX';
|
|
34561
|
-
});
|
|
34562
|
-
var labelsNeedsAdjustOnY = filter(labelList, function (item) {
|
|
34563
|
-
return item.layoutOption.moveOverlap === 'shiftY';
|
|
34564
|
-
});
|
|
34565
|
-
shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);
|
|
34566
|
-
shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);
|
|
34567
|
-
var labelsNeedsHideOverlap = filter(labelList, function (item) {
|
|
34568
|
-
return item.layoutOption.hideOverlap;
|
|
34569
|
-
});
|
|
34570
|
-
hideOverlap(labelsNeedsHideOverlap);
|
|
34571
|
-
};
|
|
34572
|
-
/**
|
|
34573
|
-
* Process all labels. Not only labels with layoutOption.
|
|
34574
|
-
*/
|
|
34575
|
-
|
|
34576
|
-
|
|
34577
|
-
LabelManager.prototype.processLabelsOverall = function () {
|
|
34578
|
-
var _this = this;
|
|
34579
|
-
|
|
34580
|
-
each$3(this._chartViewList, function (chartView) {
|
|
34581
|
-
var seriesModel = chartView.__model;
|
|
34582
|
-
var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;
|
|
34583
|
-
var animationEnabled = seriesModel.isAnimationEnabled();
|
|
34584
|
-
chartView.group.traverse(function (child) {
|
|
34585
|
-
if (child.ignore && !child.forceLabelAnimation) {
|
|
34586
|
-
return true; // Stop traverse descendants.
|
|
34587
|
-
}
|
|
34588
|
-
|
|
34589
|
-
var needsUpdateLabelLine = !ignoreLabelLineUpdate;
|
|
34590
|
-
var label = child.getTextContent();
|
|
34591
|
-
|
|
34592
|
-
if (!needsUpdateLabelLine && label) {
|
|
34593
|
-
needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;
|
|
34594
|
-
}
|
|
34595
|
-
|
|
34596
|
-
if (needsUpdateLabelLine) {
|
|
34597
|
-
_this._updateLabelLine(child, seriesModel);
|
|
34598
|
-
}
|
|
34599
|
-
|
|
34600
|
-
if (animationEnabled) {
|
|
34601
|
-
_this._animateLabels(child, seriesModel);
|
|
34602
|
-
}
|
|
34603
|
-
});
|
|
34604
|
-
});
|
|
34605
|
-
};
|
|
34606
|
-
|
|
34607
|
-
LabelManager.prototype._updateLabelLine = function (el, seriesModel) {
|
|
34608
|
-
// Only support label being hosted on graphic elements.
|
|
34609
|
-
var textEl = el.getTextContent(); // Update label line style.
|
|
34610
|
-
|
|
34611
|
-
var ecData = getECData(el);
|
|
34612
|
-
var dataIndex = ecData.dataIndex; // Only support labelLine on the labels represent data.
|
|
34613
|
-
|
|
34614
|
-
if (textEl && dataIndex != null) {
|
|
34615
|
-
var data = seriesModel.getData(ecData.dataType);
|
|
34616
|
-
var itemModel = data.getItemModel(dataIndex);
|
|
34617
|
-
var defaultStyle = {};
|
|
34618
|
-
var visualStyle = data.getItemVisual(dataIndex, 'style');
|
|
34619
|
-
var visualType = data.getVisual('drawType'); // Default to be same with main color
|
|
34620
|
-
|
|
34621
|
-
defaultStyle.stroke = visualStyle[visualType];
|
|
34622
|
-
var labelLineModel = itemModel.getModel('labelLine');
|
|
34623
|
-
setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);
|
|
34624
|
-
updateLabelLinePoints(el, labelLineModel);
|
|
34625
|
-
}
|
|
34626
|
-
};
|
|
34627
|
-
|
|
34628
|
-
LabelManager.prototype._animateLabels = function (el, seriesModel) {
|
|
34629
|
-
var textEl = el.getTextContent();
|
|
34630
|
-
var guideLine = el.getTextGuideLine(); // Animate
|
|
34631
|
-
|
|
34632
|
-
if (textEl // `forceLabelAnimation` has the highest priority
|
|
34633
|
-
&& (el.forceLabelAnimation || !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el))) {
|
|
34634
|
-
var layoutStore = labelLayoutInnerStore(textEl);
|
|
34635
|
-
var oldLayout = layoutStore.oldLayout;
|
|
34636
|
-
var ecData = getECData(el);
|
|
34637
|
-
var dataIndex = ecData.dataIndex;
|
|
34638
|
-
var newProps = {
|
|
34639
|
-
x: textEl.x,
|
|
34640
|
-
y: textEl.y,
|
|
34641
|
-
rotation: textEl.rotation
|
|
34642
|
-
};
|
|
34643
|
-
var data = seriesModel.getData(ecData.dataType);
|
|
34644
|
-
|
|
34645
|
-
if (!oldLayout) {
|
|
34646
|
-
textEl.attr(newProps); // Disable fade in animation if value animation is enabled.
|
|
34647
|
-
|
|
34648
|
-
if (!labelInner(textEl).valueAnimation) {
|
|
34649
|
-
var oldOpacity = retrieve2(textEl.style.opacity, 1); // Fade in animation
|
|
34650
|
-
|
|
34651
|
-
textEl.style.opacity = 0;
|
|
34652
|
-
initProps(textEl, {
|
|
34653
|
-
style: {
|
|
34654
|
-
opacity: oldOpacity
|
|
34655
|
-
}
|
|
34656
|
-
}, seriesModel, dataIndex);
|
|
34657
|
-
}
|
|
34658
|
-
} else {
|
|
34659
|
-
textEl.attr(oldLayout); // Make sure the animation from is in the right status.
|
|
34660
|
-
|
|
34661
|
-
var prevStates = el.prevStates;
|
|
34662
|
-
|
|
34663
|
-
if (prevStates) {
|
|
34664
|
-
if (indexOf(prevStates, 'select') >= 0) {
|
|
34665
|
-
textEl.attr(layoutStore.oldLayoutSelect);
|
|
34666
|
-
}
|
|
34667
|
-
|
|
34668
|
-
if (indexOf(prevStates, 'emphasis') >= 0) {
|
|
34669
|
-
textEl.attr(layoutStore.oldLayoutEmphasis);
|
|
34670
|
-
}
|
|
34671
|
-
}
|
|
34672
|
-
|
|
34673
|
-
updateProps$1(textEl, newProps, seriesModel, dataIndex);
|
|
34674
|
-
}
|
|
34675
|
-
|
|
34676
|
-
layoutStore.oldLayout = newProps;
|
|
34677
|
-
|
|
34678
|
-
if (textEl.states.select) {
|
|
34679
|
-
var layoutSelect = layoutStore.oldLayoutSelect = {};
|
|
34680
|
-
extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);
|
|
34681
|
-
extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);
|
|
34682
|
-
}
|
|
34683
|
-
|
|
34684
|
-
if (textEl.states.emphasis) {
|
|
34685
|
-
var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};
|
|
34686
|
-
extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);
|
|
34687
|
-
extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);
|
|
34688
|
-
}
|
|
34689
|
-
|
|
34690
|
-
animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);
|
|
34691
|
-
}
|
|
34692
|
-
|
|
34693
|
-
if (guideLine && !guideLine.ignore && !guideLine.invisible) {
|
|
34694
|
-
var layoutStore = labelLineAnimationStore(guideLine);
|
|
34695
|
-
var oldLayout = layoutStore.oldLayout;
|
|
34696
|
-
var newLayout = {
|
|
34697
|
-
points: guideLine.shape.points
|
|
34698
|
-
};
|
|
34699
|
-
|
|
34700
|
-
if (!oldLayout) {
|
|
34701
|
-
guideLine.setShape(newLayout);
|
|
34702
|
-
guideLine.style.strokePercent = 0;
|
|
34703
|
-
initProps(guideLine, {
|
|
34704
|
-
style: {
|
|
34705
|
-
strokePercent: 1
|
|
34706
|
-
}
|
|
34707
|
-
}, seriesModel);
|
|
34708
|
-
} else {
|
|
34709
|
-
guideLine.attr({
|
|
34710
|
-
shape: oldLayout
|
|
34711
|
-
});
|
|
34712
|
-
updateProps$1(guideLine, {
|
|
34713
|
-
shape: newLayout
|
|
34714
|
-
}, seriesModel);
|
|
34715
|
-
}
|
|
34716
|
-
|
|
34717
|
-
layoutStore.oldLayout = newLayout;
|
|
34718
|
-
}
|
|
34719
|
-
};
|
|
34720
|
-
|
|
34721
|
-
return LabelManager;
|
|
34722
|
-
}();
|
|
34723
|
-
|
|
34724
|
-
var getLabelManager = makeInner();
|
|
34725
|
-
function installLabelLayout(registers) {
|
|
34726
|
-
registers.registerUpdateLifecycle('series:beforeupdate', function (ecModel, api, params) {
|
|
34727
|
-
// TODO api provide an namespace that can save stuff per instance
|
|
34728
|
-
var labelManager = getLabelManager(api).labelManager;
|
|
34729
|
-
|
|
34730
|
-
if (!labelManager) {
|
|
34731
|
-
labelManager = getLabelManager(api).labelManager = new LabelManager();
|
|
34732
|
-
}
|
|
34733
|
-
|
|
34734
|
-
labelManager.clearLabels();
|
|
34735
|
-
});
|
|
34736
|
-
registers.registerUpdateLifecycle('series:layoutlabels', function (ecModel, api, params) {
|
|
34737
|
-
var labelManager = getLabelManager(api).labelManager;
|
|
34738
|
-
params.updatedSeries.forEach(function (series) {
|
|
34739
|
-
labelManager.addLabelsOfSeries(api.getViewOfSeriesModel(series));
|
|
34740
|
-
});
|
|
34741
|
-
labelManager.updateLayoutConfig(api);
|
|
34742
|
-
labelManager.layout(api);
|
|
34743
|
-
labelManager.processLabelsOverall();
|
|
34744
|
-
});
|
|
34745
|
-
}
|
|
34746
|
-
|
|
34747
33812
|
/**
|
|
34748
33813
|
* Can only be called after coordinate system creation stage.
|
|
34749
33814
|
* (Can be called before coordinate system update stage).
|
|
@@ -38279,4 +37344,4 @@ function install(registers) {
|
|
|
38279
37344
|
registers.registerPainter('canvas', CanvasPainter);
|
|
38280
37345
|
}
|
|
38281
37346
|
|
|
38282
|
-
export {
|
|
37347
|
+
export { getAnimationConfig as $, queryDataIndex as A, setStatesFlag as B, ChartView as C, isFunction as D, ZRText as E, interpolateRawValues as F, Group as G, labelInner as H, each$3 as I, SPECIAL_STATES as J, lerp as K, LinearGradient as L, createRenderPlanner as M, cubicSubdivide as N, fromPoints as O, Path as P, BoundingRect as Q, clonePath as R, SeriesModel as S, Polygon as T, Sector as U, Rect as V, Point as W, Transformable as X, lerp$1 as Y, ZRImage as Z, __extends$1 as _, extend as a, createTextStyle as a$, isArray as a0, normalizeToArray as a1, SERIES_UNIVERSAL_TRANSITION_PROP as a2, makeInner as a3, DataDiffer as a4, filter as a5, createHashMap as a6, Displayable as a7, getOldStyle as a8, use as a9, OrdinalMeta as aA, fetchLayoutMode as aB, invert as aC, applyTransform$1 as aD, getScaleExtent as aE, increaseInterval as aF, IntervalScale as aG, getLayoutRect as aH, estimateLabelUnionRect as aI, indexOf as aJ, createScaleByModel as aK, isCartesian2DSeries as aL, findAxisModels as aM, getDataDimensionsOnAxis as aN, ifAxisCrossZero as aO, keys as aP, isIntervalOrLogScale as aQ, niceScaleExtent as aR, layout as aS, AxisBuilder as aT, groupTransition as aU, AxisView as aV, Line as aW, subPixelOptimizeLine as aX, ComponentView as aY, install$2 as aZ, retrieve2 as a_, init as aa, install$1 as ab, install as ac, SINGLE_REFERRING as ad, createSourceFromSeriesDataOption as ae, curry as af, makeSeriesEncodeForAxisCoordSys as ag, prepareSeriesDataSchema as ah, enableDataStack as ai, SeriesData as aj, CoordinateSystemManager as ak, SOURCE_FORMAT_ORIGINAL as al, getDataItemValue as am, getDimensionTypeByAxis as an, getOptionCategoryInterval as ao, makeLabelFormatter as ap, getBoundingRect as aq, shouldShowAllLabels as ar, getPixelPrecision as as, linearMap as at, round$1 as au, ComponentModel as av, mixin as aw, merge as ax, getLayoutParams as ay, mergeLayoutParam as az, setLabelStyle as b, makeSeriesEncodeForNameBased as b$, windowOpen as b0, retrieveRawValue as b1, isString as b2, inheritDefaultOption as b3, calculateTextPosition as b4, removeElementWithFadeOut as b5, setLabelValueAnimation as b6, throttle as b7, createProgressiveLayout as b8, layout$1 as b9, findPointFromSeries as bA, findEventDispatcher as bB, createTooltipMarkup as bC, getValueLabel as bD, trim as bE, getAxisRawValue as bF, normalizeTooltipFormatResult as bG, buildTooltipMarkup as bH, clone$2 as bI, format as bJ, formatTpl as bK, unregister as bL, Model as bM, preParseFinder as bN, queryReferringComponents as bO, TooltipMarkupStyleCreator as bP, noop as bQ, isNameSpecified as bR, parse as bS, stringify as bT, enableHoverEmphasis as bU, setTooltipConfig as bV, box as bW, createOrUpdatePatternFromDecal as bX, createIcon as bY, parsePercent$1 as bZ, retrieve3 as b_, DISPLAY_STATES as ba, Polyline as bb, quadraticProjectPoint as bc, cubicProjectPoint as bd, dist$1 as be, normalizeRadian as bf, parsePercent as bg, prepareLayoutList as bh, shiftLayoutOnX as bi, shiftLayoutOnY as bj, hideOverlap as bk, isElementRemoved as bl, animateLabelValue as bm, normalizeCssArray as bn, toCamelCase as bo, env as bp, normalizeEvent as bq, isDom as br, bind$1 as bs, getPaddingFromTooltipModel as bt, transformLocalCoord as bu, throwError as bv, getTooltipRenderMode as bw, createOrUpdate as bx, clear as by, register as bz, createSymbol as c, getPercentSeats as c0, defaultEmphasis as c1, createLegacyDataSelectAction as c2, getECData as d, enterEmphasis as e, normalizeSymbolSize as f, getLabelStatesModels as g, traverseElements as h, initProps as i, isObject$2 as j, isDimensionStacked as k, leaveEmphasis as l, map$1 as m, normalizeSymbolOffset as n, isNumber as o, createFloat32Array as p, cubicRootAt as q, removeElement as r, saveOldStyle as s, toggleHoverEmphasis as t, updateProps$1 as u, PathProxy as v, cubicAt as w, convertToColorString as x, defaults as y, setStatesStylesFromModel as z };
|