You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by wa...@apache.org on 2020/12/01 10:53:20 UTC

[incubator-echarts] branch fix-svg-export created (now b6a3891)

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

wangzx pushed a change to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git.


      at b6a3891  test: add test case ie-svg-export.html.

This branch includes the following new commits:

     new 4174861  fix(svg): fix charts cannot be exported in svg renderer in IE.
     new 5e07fa7  fix(lint): fix some format and unused var issues checked by eslint.
     new e281ee1  fix(toolbox): supprot for downloading exported svg file in IE9.
     new e51f486  Merge branch 'master' of https://github.com/apache/incubator-echarts into fix-svg-export
     new b6a3891  test: add test case ie-svg-export.html.

The 5 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


[incubator-echarts] 02/05: fix(lint): fix some format and unused var issues checked by eslint.

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

wangzx pushed a commit to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit 5e07fa7d27699f431ff1119e492898e9ccab2127
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Fri Nov 20 21:47:18 2020 +0800

    fix(lint): fix some format and unused var issues checked by eslint.
---
 src/chart/funnel/FunnelView.ts                | 3 +--
 src/chart/gauge/GaugeView.ts                  | 4 +++-
 src/component/marker/MarkLineModel.ts         | 5 ++---
 src/component/marker/MarkerView.ts            | 5 +++--
 src/component/timeline/SliderTimelineModel.ts | 6 +++---
 src/component/toolbox/feature/MagicType.ts    | 2 +-
 src/model/Series.ts                           | 2 +-
 src/model/mixin/palette.ts                    | 1 -
 8 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/chart/funnel/FunnelView.ts b/src/chart/funnel/FunnelView.ts
index 63895ad..99a6e0a 100644
--- a/src/chart/funnel/FunnelView.ts
+++ b/src/chart/funnel/FunnelView.ts
@@ -27,7 +27,6 @@ import List from '../../data/List';
 import { ColorString } from '../../util/types';
 import { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';
 import { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';
-import { retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';
 
 const opacityAccessPath = ['itemStyle', 'opacity'] as const;
 
@@ -212,4 +211,4 @@ class FunnelView extends ChartView {
 ChartView.registerClass(FunnelView);
 
 
-export default FunnelView;
\ No newline at end of file
+export default FunnelView;
diff --git a/src/chart/gauge/GaugeView.ts b/src/chart/gauge/GaugeView.ts
index 0560361..4a8584b 100644
--- a/src/chart/gauge/GaugeView.ts
+++ b/src/chart/gauge/GaugeView.ts
@@ -583,7 +583,9 @@ class GaugeView extends ChartView {
                     }, {inheritColor: autoColor})
                 });
                 setLabelValueAnimation(
-                    labelEl, {normal: itemTitleModel}, seriesModel.getRawValue(idx) as ParsedValue, () => data.getName(idx)
+                    labelEl, {normal: itemTitleModel},
+                    seriesModel.getRawValue(idx) as ParsedValue,
+                    () => data.getName(idx)
                 );
                 hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel);
 
diff --git a/src/component/marker/MarkLineModel.ts b/src/component/marker/MarkLineModel.ts
index bd81c5d..f6d1faa 100644
--- a/src/component/marker/MarkLineModel.ts
+++ b/src/component/marker/MarkLineModel.ts
@@ -25,8 +25,7 @@ import {
     SeriesLineLabelOption,
     SymbolOptionMixin,
     ItemStyleOption,
-    StatesOptionMixin,
-    CallbackDataParams
+    StatesOptionMixin
 } from '../../util/types';
 
 interface MarkLineStateOption {
@@ -140,4 +139,4 @@ class MarkLineModel extends MarkerModel<MarkLineOption> {
 
 ComponentModel.registerClass(MarkLineModel);
 
-export default MarkLineModel;
\ No newline at end of file
+export default MarkLineModel;
diff --git a/src/component/marker/MarkerView.ts b/src/component/marker/MarkerView.ts
index 56b8a04..9f07441 100644
--- a/src/component/marker/MarkerView.ts
+++ b/src/component/marker/MarkerView.ts
@@ -73,7 +73,8 @@ abstract class MarkerView extends ComponentView {
 
     blurSeries(seriesModelList: SeriesModel[]) {
         each(seriesModelList, seriesModel => {
-            const markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, this.type as 'markPoint' | 'markLine' | 'markArea');
+            const markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel,
+                this.type as 'markPoint' | 'markLine' | 'markArea');
             if (markerModel) {
                 const data = markerModel.getData();
                 data.eachItemGraphicEl(function (el) {
@@ -93,4 +94,4 @@ abstract class MarkerView extends ComponentView {
     ): void;
 }
 
-export default MarkerView;
\ No newline at end of file
+export default MarkerView;
diff --git a/src/component/timeline/SliderTimelineModel.ts b/src/component/timeline/SliderTimelineModel.ts
index a5cc4e4..a6df59b 100644
--- a/src/component/timeline/SliderTimelineModel.ts
+++ b/src/component/timeline/SliderTimelineModel.ts
@@ -100,8 +100,8 @@ class SliderTimelineModel extends TimelineModel {
 
             position: 'left',  // 'left' 'right' 'top' 'bottom'
 
-            playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z', // jshint ignore:line
-            stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z', // j [...]
+            playIcon: /* eslint-disable */'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',/* eslint-disable */ // jshint ignore:line
+            stopIcon: /* eslint-disable */'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35 [...]
             nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z', // jshint ignore:line
             prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z', // jshint ignore:line
 
@@ -155,4 +155,4 @@ mixin(SliderTimelineModel, DataFormatMixin.prototype);
 
 ComponentModel.registerClass(SliderTimelineModel);
 
-export default SliderTimelineModel;
\ No newline at end of file
+export default SliderTimelineModel;
diff --git a/src/component/toolbox/feature/MagicType.ts b/src/component/toolbox/feature/MagicType.ts
index cc2bd60..c56dc16 100644
--- a/src/component/toolbox/feature/MagicType.ts
+++ b/src/component/toolbox/feature/MagicType.ts
@@ -163,7 +163,7 @@ class MagicType extends ToolboxFeature<ToolboxMagicTypeFeatureOption> {
             newTitle = zrUtil.merge({
                 stack: model.option.title.tiled,
                 tiled: model.option.title.stack
-            }, model.option.title)
+            }, model.option.title);
         }
 
         api.dispatchAction({
diff --git a/src/model/Series.ts b/src/model/Series.ts
index 47b9782..af4ed53 100644
--- a/src/model/Series.ts
+++ b/src/model/Series.ts
@@ -24,7 +24,7 @@ import * as modelUtil from '../util/model';
 import {
     DataHost, DimensionName, StageHandlerProgressParams,
     SeriesOption, ZRColor, BoxLayoutOptionMixin,
-    ScaleDataValue, Dictionary, OptionDataItemObject, SeriesDataType, DimensionLoose, DecalObject
+    ScaleDataValue, Dictionary, OptionDataItemObject, SeriesDataType, DimensionLoose
 } from '../util/types';
 import ComponentModel, { ComponentModelConstructor } from './Component';
 import {PaletteMixin} from './mixin/palette';
diff --git a/src/model/mixin/palette.ts b/src/model/mixin/palette.ts
index 0f74d7d..5215bb7 100644
--- a/src/model/mixin/palette.ts
+++ b/src/model/mixin/palette.ts
@@ -18,7 +18,6 @@
 */
 
 import {Dictionary} from 'zrender/src/core/types';
-import {isArray} from 'zrender/src/core/util';
 import {makeInner, normalizeToArray} from '../../util/model';
 import Model from '../Model';
 import {ZRColor, PaletteOptionMixin, DecalObject} from '../../util/types';


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


[incubator-echarts] 05/05: test: add test case ie-svg-export.html.

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

wangzx pushed a commit to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit b6a389197686d384dd42f15476dc6624fcb80679
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Tue Dec 1 18:50:16 2020 +0800

    test: add test case ie-svg-export.html.
---
 test/ie-svg-export.html | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/test/ie-svg-export.html b/test/ie-svg-export.html
new file mode 100644
index 0000000..8f1de0b
--- /dev/null
+++ b/test/ie-svg-export.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1" />
+        <link rel="stylesheet" href="lib/reset.css" />
+        <style>
+            #main0 {
+                height: 100%;
+            }
+        </style>
+    </head>
+    <body>
+        <div id="main0"></div>
+
+        <!-- please run npm run build/watch -->
+        <script src="../dist/echarts.js"></script>
+        <!-- compare with rc1 -->
+        <!-- <script src="https://cdn.jsdelivr.net/npm/echarts@5.0.0-rc.1/dist/echarts.js"></script> -->
+        <script>
+            var container = document.getElementById('main0');
+            var chart = echarts.init(container, null, {
+                renderer: 'svg',
+                // locale: 'ZH'
+            });
+            var option = {
+                xAxis: {
+                    type: 'category',
+                    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+                },
+                yAxis: {
+                    type: 'value'
+                },
+                toolbox: {
+                    show: true,
+                    feature: {
+                        magicType: {
+                            type: ["line", "bar"]
+                        },
+                        saveAsImage: {}
+                    }
+                },
+                series: [{
+                    data: [820, 932, 901, 934, 1290, 1330, 1320],
+                    type: 'line',
+                    symbolSize: 50,
+                    // for https://github.com/apache/incubator-echarts/issues/13655
+                    // symbol: 'image://http://localhost:8081/dog.svg'
+                }]
+            };
+
+            chart.setOption(option);
+        </script>
+
+
+    </body>
+</html>
+


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


[incubator-echarts] 01/05: fix(svg): fix charts cannot be exported in svg renderer in IE.

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

wangzx pushed a commit to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit 4174861d4d603038fb72227056e6ad845f3383e3
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Fri Nov 20 21:45:53 2020 +0800

    fix(svg): fix charts cannot be exported in svg renderer in IE.
---
 src/component/toolbox/feature/SaveAsImage.ts | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/component/toolbox/feature/SaveAsImage.ts b/src/component/toolbox/feature/SaveAsImage.ts
index b7c335b..86389da 100644
--- a/src/component/toolbox/feature/SaveAsImage.ts
+++ b/src/component/toolbox/feature/SaveAsImage.ts
@@ -74,7 +74,19 @@ class SaveAsImage extends ToolboxFeature<ToolboxSaveAsImageFeatureOption> {
         // IE
         else {
             if (window.navigator.msSaveOrOpenBlob) {
-                const bstr = atob(url.split(',')[1]);
+                const parts = url.split(',');
+                // data:[<mime type>][;charset=<charset>][;base64],<encoded data>
+                // see https://css-tricks.com/data-uris/
+                const base64Encoded = parts[0].indexOf('base64') > -1;
+                let bstr = isSvg
+                    // should decode the svg data uri first
+                    ? decodeURIComponent(parts[1])
+                    : parts[1];
+                // only `atob` when the data uri is encoded with base64
+                // otherwise, like `svg` data uri exported by zrender,
+                // there will be an error, for it's not encoded with base64.
+                // (just a url-encoded string through `encodeURIComponent`)
+                base64Encoded && (bstr = atob(bstr));
                 let n = bstr.length;
                 const u8arr = new Uint8Array(n);
                 while (n--) {
@@ -91,6 +103,7 @@ class SaveAsImage extends ToolboxFeature<ToolboxSaveAsImageFeatureOption> {
                     + '</body>';
                 const tab = window.open();
                 tab.document.write(html);
+                tab.document.title = title as string;
             }
         }
     }


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


[incubator-echarts] 04/05: Merge branch 'master' of https://github.com/apache/incubator-echarts into fix-svg-export

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

wangzx pushed a commit to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit e51f486b5dcd3ecf6557da950b2daac67d8fe60f
Merge: e281ee1 9be328c
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Tue Dec 1 17:18:16 2020 +0800

    Merge branch 'master' of https://github.com/apache/incubator-echarts into fix-svg-export

 .asf.yaml                                    |   3 +-
 build/build.js                               |   6 +
 build/config.js                              |  27 +-
 build/pre-publish.js                         |   8 +-
 build/release.js                             |   4 +-
 dist/echarts.common.js                       |  28 +-
 dist/echarts.common.js.map                   |   2 +-
 dist/echarts.common.min.js                   |   2 +-
 dist/echarts.esm.js                          |  30 +-
 dist/echarts.esm.js.map                      |   2 +-
 dist/echarts.esm.min.js                      |   2 +-
 dist/echarts.js                              |  30 +-
 dist/echarts.js.map                          |   2 +-
 dist/echarts.min.js                          |   2 +-
 dist/echarts.simple.js                       |  10 +-
 dist/echarts.simple.js.map                   |   2 +-
 dist/echarts.simple.min.js                   |   2 +-
 extension-src/bmap/README.md                 |  12 +-
 package-lock.json                            |   6 +-
 package.json                                 |   4 +-
 src/component/geo/GeoView.ts                 |   2 +-
 src/data/helper/transform.ts                 |   2 +-
 src/echarts.ts                               |   2 +-
 test/bar-t.html                              |   2 +-
 test/custom-shape-morphing2.html             |   5 +-
 test/custom-shape-morphing3.html             |   8 +-
 test/data-transform-aggregate.html           | 292 +++++++++++++
 test/dataZoom-axes.html                      |   4 +-
 test/graphicOption.html                      |   4 +-
 test/lib/config.js                           |   1 +
 test/lib/myTransform/aggregate.js            | 174 --------
 test/lib/myTransform/dist/myTransform.js     | 476 +++++++++++++++++++++
 test/lib/myTransform/dist/myTransform.js.map |   1 +
 test/lib/myTransform/id.js                   |  88 ----
 test/lib/myTransform/src/.eslintrc.yaml      |  47 +++
 test/lib/myTransform/src/aggregate.ts        | 593 +++++++++++++++++++++++++++
 test/lib/myTransform/src/id.ts               |  90 ++++
 test/lib/myTransform/src/index.ts            |   3 +
 test/lines-ny-appendData.html                |   2 +-
 test/tooltip-touch.html                      |   4 +-
 tsconfig.json                                |   3 +-
 41 files changed, 1640 insertions(+), 347 deletions(-)


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


[incubator-echarts] 03/05: fix(toolbox): supprot for downloading exported svg file in IE9.

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

wangzx pushed a commit to branch fix-svg-export
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit e281ee1043301f15e45427e913a35e727c76f25c
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Sun Nov 22 21:10:08 2020 +0800

    fix(toolbox): supprot for downloading exported svg file in IE9.
---
 src/component/toolbox/feature/SaveAsImage.ts | 29 +++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/component/toolbox/feature/SaveAsImage.ts b/src/component/toolbox/feature/SaveAsImage.ts
index 86389da..b0a7b4b 100644
--- a/src/component/toolbox/feature/SaveAsImage.ts
+++ b/src/component/toolbox/feature/SaveAsImage.ts
@@ -73,7 +73,7 @@ class SaveAsImage extends ToolboxFeature<ToolboxSaveAsImageFeatureOption> {
         }
         // IE
         else {
-            if (window.navigator.msSaveOrOpenBlob) {
+            if (window.navigator.msSaveOrOpenBlob || isSvg) {
                 const parts = url.split(',');
                 // data:[<mime type>][;charset=<charset>][;base64],<encoded data>
                 // see https://css-tricks.com/data-uris/
@@ -87,13 +87,28 @@ class SaveAsImage extends ToolboxFeature<ToolboxSaveAsImageFeatureOption> {
                 // there will be an error, for it's not encoded with base64.
                 // (just a url-encoded string through `encodeURIComponent`)
                 base64Encoded && (bstr = atob(bstr));
-                let n = bstr.length;
-                const u8arr = new Uint8Array(n);
-                while (n--) {
-                    u8arr[n] = bstr.charCodeAt(n);
+                const filename = title + '.' + type;
+                if (window.navigator.msSaveOrOpenBlob) {
+                    let n = bstr.length;
+                    const u8arr = new Uint8Array(n);
+                    while (n--) {
+                        u8arr[n] = bstr.charCodeAt(n);
+                    }
+                    const blob = new Blob([u8arr]);
+                    window.navigator.msSaveOrOpenBlob(blob, filename);
+                }
+                else {
+                    const frame = document.createElement('iframe');
+                    document.body.appendChild(frame);
+                    const cw = frame.contentWindow;
+                    const doc = cw.document;
+                    doc.open('image/svg+xml', 'replace');
+                    doc.write(bstr);
+                    doc.close();
+                    cw.focus();
+                    doc.execCommand('SaveAs', true, filename);
+                    document.body.removeChild(frame);
                 }
-                const blob = new Blob([u8arr]);
-                window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);
             }
             else {
                 const lang = model.get('lang');


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