You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by sh...@apache.org on 2021/09/15 09:28:14 UTC

[echarts] branch fix-line-animation created (now 4824ada)

This is an automated email from the ASF dual-hosted git repository.

shenyi pushed a change to branch fix-line-animation
in repository https://gitbox.apache.org/repos/asf/echarts.git.


      at 4824ada  fix(line): fix animation is not stopped when direct update points.

This branch includes the following new commits:

     new 4824ada  fix(line): fix animation is not stopped when direct update points.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org


[echarts] 01/01: fix(line): fix animation is not stopped when direct update points.

Posted by sh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

shenyi pushed a commit to branch fix-line-animation
in repository https://gitbox.apache.org/repos/asf/echarts.git

commit 4824ada974e035f508fa3e7eb0c926dc2db7c7bf
Author: pissang <bm...@gmail.com>
AuthorDate: Wed Sep 15 17:26:05 2021 +0800

    fix(line): fix animation is not stopped when direct update points.
---
 src/chart/line/LineView.ts                         |   5 +-
 src/i18n/langPT-br.ts                              |   3 +-
 ...-extraneous.html => line-animation-update.html} | 106 +++++++++++++++++++++
 test/line-case.html                                |   3 -
 test/runTest/actions/__meta__.json                 |   2 +-
 ...-extraneous.json => line-animation-update.json} |   2 +-
 6 files changed, 112 insertions(+), 9 deletions(-)

diff --git a/src/chart/line/LineView.ts b/src/chart/line/LineView.ts
index fa4b3a9..bb4dd76 100644
--- a/src/chart/line/LineView.ts
+++ b/src/chart/line/LineView.ts
@@ -1290,17 +1290,18 @@ class LineView extends ChartView {
             next = turnPointsIntoStep(diff.next, coordSys, step);
             stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);
         }
-
         // Don't apply animation if diff is large.
         // For better result and avoid memory explosion problems like
         // https://github.com/apache/incubator-echarts/issues/12229
         if (getBoundingDiff(current, next) > 3000
             || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)
         ) {
+            polyline.stopAnimation();
             polyline.setShape({
                 points: next
             });
             if (polygon) {
+                polygon.stopAnimation();
                 polygon.setShape({
                     points: next,
                     stackedOnPoints: stackedOnNext
@@ -1345,7 +1346,6 @@ class LineView extends ChartView {
             }
         }
 
-
         const updatedDataInfo: {
             el: SymbolExtended,
             ptIdx: number
@@ -1364,7 +1364,6 @@ class LineView extends ChartView {
                 }
             }
         }
-
         if (polyline.animators && polyline.animators.length) {
             polyline.animators[0].during(function () {
                 polygon && polygon.dirtyShape();
diff --git a/src/i18n/langPT-br.ts b/src/i18n/langPT-br.ts
index bd8c988..8d6eb01 100644
--- a/src/i18n/langPT-br.ts
+++ b/src/i18n/langPT-br.ts
@@ -24,7 +24,8 @@
 export default {
     time: {
         month: [
-            'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'
+            'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
+            'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'
         ],
         monthAbbr: [
             'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
diff --git a/test/line-extraneous.html b/test/line-animation-update.html
similarity index 97%
rename from test/line-extraneous.html
rename to test/line-animation-update.html
index e749696..514559e 100644
--- a/test/line-extraneous.html
+++ b/test/line-animation-update.html
@@ -42,6 +42,7 @@ under the License.
 
     <div id="main0"></div>
     <div id="main1"></div>
+    <div id="main2"></div>
 
     <script>
 
@@ -58,6 +59,10 @@ under the License.
             var chart;
             var myChart;
 
+            const obj = {};
+            const payload = JSON.parse('{"__proto__":{"polluted":"Polluted!"}}');
+
+
             const datasetSource1 = [['2019-04-14', 17], ['2019-04-16', 13], ['2019-04-17', 5]];
             const datasetSource2 = [['2019-04-13', 0], ['2019-04-18', 23]];
 
@@ -269,6 +274,107 @@ under the License.
 
     </script>
 
+    <script>
+        require([
+            'echarts'
+        ], function (echarts) {
+            var chart;
+            var myChart;
+
+            const option1 = {
+                xAxis: {
+                    type: "time",
+                    axisLabel: {},
+                },
+                yAxis: {
+                    axisLabel: {},
+                },
+                dataset: [
+                    {
+                    dimensions: ["time", "mean_load15"],
+                    source: [
+                        ["2021-09-07T07:53:00Z", 0.215],
+                        ["2021-09-07T07:54:00Z", 0.2073684210526316],
+                        ["2021-09-07T07:55:00Z", 0.20450000000000004],
+                    ],
+                    },
+                ],
+                series: [
+                    {
+                        type: "line",
+                        name: "mean_load15",
+                        encode: {
+                            x: "time",
+                            y: "mean_load15",
+                        },
+                        datasetIndex: 0,
+                        smooth: true,
+                        lineStyle: {
+                            width: 1,
+                        },
+                        itemStyle: {},
+                        showSymbol: false,
+                    },
+                ],
+                };
+
+                const option2 = {
+                    xAxis: {
+                        type: "time",
+                        axisLabel: {},
+                    },
+                    yAxis: {
+                        axisLabel: {},
+                    },
+                    dataset: [
+                        {
+                        dimensions: ["time", "mean_load15"],
+                        source: [
+                            ["2021-09-02T09:52:00Z", 0.197453237410072],
+                            ["2021-09-02T11:33:00Z", 0.10109900990098977],
+                            ["2021-09-02T13:14:00Z", 0.13159405940594063],
+                            ["2021-09-02T14:55:00Z", 0.11086633663366334],
+                            ["2021-09-02T16:36:00Z", 0.1571930693069309],
+                            ["2021-09-02T18:17:00Z", 0.14914356435643553],
+                        ],
+                    },
+                ],
+                series: [
+                    {
+                        type: "line",
+                        name: "mean_load15",
+                        encode: {
+                            x: "time",
+                            y: "mean_load15",
+                        },
+                        datasetIndex: 0,
+                        smooth: true,
+                        itemStyle: {},
+                        showSymbol: false,
+                    },
+                ],
+            };
+
+            chart = myChart = testHelper.create(echarts, 'main2', {
+                title: [
+                    'Case from https://github.com/apache/echarts/issues/15685'
+                ],
+                option: option2,
+                button: {
+                    text: 'Update twice',
+                    onClick: () => {
+                        myChart.setOption(option1, true);
+
+                        setTimeout(() => {
+                            myChart.setOption(option2, true);
+                        }, 50)
+                    }
+                }
+            });
+        });
+
+    </script>
+
 </body>
 
 </html>
diff --git a/test/line-case.html b/test/line-case.html
index 066715e..4c2bbb8 100644
--- a/test/line-case.html
+++ b/test/line-case.html
@@ -447,9 +447,6 @@ under the License.
                     'Test case from https://github.com/apache/echarts/issues/15380'
                 ],
                 option: option
-                // height: 300,
-                // buttons: [{text: 'btn-txt', onclick: function () {}}],
-                // recordCanvas: true,
             });
         });
         </script>
diff --git a/test/runTest/actions/__meta__.json b/test/runTest/actions/__meta__.json
index 01f5097..37aea6b 100644
--- a/test/runTest/actions/__meta__.json
+++ b/test/runTest/actions/__meta__.json
@@ -111,10 +111,10 @@
   "legend-visualMapColor": 2,
   "line": 1,
   "line-animation": 1,
+  "line-animation-update": 3,
   "line-boldWhenHover": 1,
   "line-crash": 1,
   "line-endLabel": 1,
-  "line-extraneous": 2,
   "line-visual2": 1,
   "lines-bus": 1,
   "map": 3,
diff --git a/test/runTest/actions/line-extraneous.json b/test/runTest/actions/line-animation-update.json
similarity index 57%
rename from test/runTest/actions/line-extraneous.json
rename to test/runTest/actions/line-animation-update.json
index 455c58f..79b547e 100644
--- a/test/runTest/actions/line-extraneous.json
+++ b/test/runTest/actions/line-animation-update.json
@@ -1 +1 @@
-[{"name":"Action 1","ops":[{"type":"mousedown","time":596,"x":28,"y":93},{"type":"mouseup","time":698,"x":28,"y":93},{"time":699,"delay":2000,"type":"screenshot-auto"}],"scrollY":0,"scrollX":0,"timestamp":1568042380534},{"name":"Action 2","ops":[{"type":"mousedown","time":736,"x":218,"y":184},{"type":"mouseup","time":827,"x":218,"y":184},{"time":828,"delay":400,"type":"screenshot-auto"}],"scrollY":416,"scrollX":0,"timestamp":1617082817083}]
\ No newline at end of file
+[{"name":"Action 1","ops":[{"type":"mousedown","time":596,"x":28,"y":93},{"type":"mouseup","time":698,"x":28,"y":93},{"time":699,"delay":2000,"type":"screenshot-auto"}],"scrollY":0,"scrollX":0,"timestamp":1568042380534},{"name":"Action 2","ops":[{"type":"mousedown","time":736,"x":218,"y":184},{"type":"mouseup","time":827,"x":218,"y":184},{"time":828,"delay":400,"type":"screenshot-auto"}],"scrollY":416,"scrollX":0,"timestamp":1617082817083},{"name":"Action 3","ops":[{"type":"mousedown","t [...]
\ No newline at end of file

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org