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 2020/05/26 14:37:11 UTC

[incubator-echarts] branch next updated (9db5c3e -> 4d8fbea)

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

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


    from 9db5c3e  fix: fix interval split area in polor: should go back to the start angle.
     new 1b7f2f4  fix let declare order in ES6 build target.
     new 4d8fbea  chore: try esbuild to improve rebuild speed in dev mode.

The 2 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.


Summary of changes:
 build/dev-fast.js               |  52 ++++++++++++++++++
 package-lock.json               | 113 ++++++++++++++++++++++++++++++++++++++++
 package.json                    |   3 ++
 src/data/List.ts                |  43 ++++++++-------
 src/data/helper/dataProvider.ts |   6 +--
 src/echarts.ts                  |  85 +++++++++++++++---------------
 src/model/Global.ts             |  17 +++---
 7 files changed, 241 insertions(+), 78 deletions(-)
 create mode 100644 build/dev-fast.js


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


[incubator-echarts] 02/02: chore: try esbuild to improve rebuild speed in dev mode.

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

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

commit 4d8fbea69eafc807c3aa935314f0f962177ea53f
Author: pissang <bm...@gmail.com>
AuthorDate: Tue May 26 22:36:39 2020 +0800

    chore: try esbuild to improve rebuild speed in dev mode.
    
    Rebuild cost reduced to 100ms on macbook 15. Build target is always ES6 in dev.
---
 build/dev-fast.js |  52 +++++++++++++++++++++++++
 package-lock.json | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 package.json      |   3 ++
 3 files changed, 168 insertions(+)

diff --git a/build/dev-fast.js b/build/dev-fast.js
new file mode 100644
index 0000000..d609f16
--- /dev/null
+++ b/build/dev-fast.js
@@ -0,0 +1,52 @@
+const chokidar = require('chokidar');
+const path = require('path');
+const {build} = require('esbuild');
+const fs = require('fs');
+
+const outFilePath = path.resolve(__dirname, '../dist/echarts.js');
+
+const umdWrapperHead = `
+(function (root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Register as an anonymous module.
+        define(['exports'], factory);
+    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
+        // CommonJS
+        factory(exports);
+    } else {
+        // Browser globals
+        factory((root.echarts = {}));
+    }
+}(typeof self !== 'undefined' ? self : this, function (exports, b) {
+`;
+
+const umdWrapperTail = `
+}));`;
+
+// attach properties to the exports object to define
+// the exported module properties.
+exports.action = function () {};
+
+function rebuild() {
+    build({
+        stdio: 'inherit',
+        entryPoints: [path.resolve(__dirname, '../echarts.all.ts')],
+        outfile: outFilePath,
+        format: 'cjs',
+        bundle: true,
+    }).catch(e => {
+        console.error(e.toString());
+    }).then(() => {
+        const mainCode = fs.readFileSync(outFilePath, 'utf-8');
+        fs.writeFileSync(outFilePath, umdWrapperHead + mainCode + umdWrapperTail)
+    })
+}
+
+chokidar.watch([
+    path.resolve(__dirname, '../src/**/*.ts'),
+    path.resolve(__dirname, '../node_modules/zrender/src/**/*.ts'),
+], {
+    persistent: true
+}).on('change', rebuild).on('ready', function () {
+    rebuild();
+})
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index ebb71d9..5514063 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1610,6 +1610,12 @@
         "callsite": "1.0.0"
       }
     },
+    "binary-extensions": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
+      "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
+      "dev": true
+    },
     "blob": {
       "version": "0.0.5",
       "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
@@ -1809,6 +1815,89 @@
       "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
       "dev": true
     },
+    "chokidar": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
+      "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
+      "dev": true,
+      "requires": {
+        "anymatch": "~3.1.1",
+        "braces": "~3.0.2",
+        "fsevents": "~2.1.2",
+        "glob-parent": "~5.1.0",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.4.0"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+          "dev": true,
+          "requires": {
+            "normalize-path": "^3.0.0",
+            "picomatch": "^2.0.4"
+          }
+        },
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "dev": true,
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "dev": true,
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "fsevents": {
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+          "dev": true,
+          "optional": true
+        },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+          "dev": true
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "dev": true,
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        }
+      }
+    },
     "chownr": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
@@ -2482,6 +2571,12 @@
         "is-symbol": "^1.0.2"
       }
     },
+    "esbuild": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.4.1.tgz",
+      "integrity": "sha512-84KjyYa1hgrHe01Qrsbf+anzcWWf6EA51TtRzZwLtphNd/Zf+V/fBT0jd3I+F+p+gB7+MFAS9pw4pxXOWPhHkA==",
+      "dev": true
+    },
     "escape-string-regexp": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -4229,6 +4324,15 @@
       "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
       "dev": true
     },
+    "is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dev": true,
+      "requires": {
+        "binary-extensions": "^2.0.0"
+      }
+    },
     "is-buffer": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -6714,6 +6818,15 @@
         }
       }
     },
+    "readdirp": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+      "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+      "dev": true,
+      "requires": {
+        "picomatch": "^2.2.1"
+      }
+    },
     "realpath-native": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
diff --git a/package.json b/package.json
index 10ed5d1..113298f 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
     "build": "node build/build.js",
     "build:full": "node build/build.js --clean",
     "watch": "node build/build.js --watch",
+    "dev:fast": "node build/dev-fast.js",
     "release": "node build/build.js --release",
     "help": "node build/build.js --help",
     "test:visual": "node test/runTest/server.js",
@@ -41,8 +42,10 @@
     "@typescript-eslint/parser": "^2.18.0",
     "canvas": "^2.6.0",
     "chalk": "^3.0.0",
+    "chokidar": "^3.4.0",
     "commander": "2.11.0",
     "coordtransform": "2.0.2",
+    "esbuild": "^0.4.1",
     "escodegen": "1.8.0",
     "eslint": "6.3.0",
     "esprima": "2.7.2",


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


[incubator-echarts] 01/02: fix let declare order in ES6 build target.

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

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

commit 1b7f2f494e6d65ed1ffa540dcb2b4a7f8b251002
Author: pissang <bm...@gmail.com>
AuthorDate: Tue May 26 22:33:22 2020 +0800

    fix let declare order in ES6 build target.
---
 src/data/List.ts                | 43 ++++++++++-----------
 src/data/helper/dataProvider.ts |  6 +--
 src/echarts.ts                  | 85 ++++++++++++++++++++---------------------
 src/model/Global.ts             | 17 ++++-----
 4 files changed, 73 insertions(+), 78 deletions(-)

diff --git a/src/data/List.ts b/src/data/List.ts
index 34e621f..7c578b9 100644
--- a/src/data/List.ts
+++ b/src/data/List.ts
@@ -144,6 +144,27 @@ export interface DefaultDataVisual {
     colorFromPalette?: boolean
 }
 
+// -----------------------------
+// Internal method declarations:
+// -----------------------------
+let defaultDimValueGetters: {[sourceFormat: string]: DimValueGetter};
+let prepareInvertedIndex: (list: List) => void;
+let getRawValueFromStore: (list: List, dimIndex: number, rawIndex: number) => any;
+let getIndicesCtor: (list: List) => DataArrayLikeConstructor;
+let prepareChunks: (
+    storage: DataStorage, dimInfo: DataDimensionInfo, chunkSize: number, chunkCount: number, end: number
+) => void;
+let getRawIndexWithoutIndices: (this: List, idx: number) => number;
+let getRawIndexWithIndices: (this: List, idx: number) => number;
+let getId: (list: List, rawIndex: number) => string;
+let normalizeDimensions: (dimensions: ItrParamDims) => Array<DimensionLoose>;
+let validateDimensions: (list: List, dims: DimensionName[]) => void;
+let cloneListForMapAndSample: (original: List, excludeDimensions: DimensionName[]) => List;
+let cloneDimStore: (originalDimStore: DataValueChunk[]) => DataValueChunk[];
+let getInitialExtent: () => [number, number];
+let setItemDataAndSeriesIndex: (this: Element, child: Element) => void;
+let transferProperties: (target: List, source: List) => void;
+
 class List<
     HostModel extends Model = Model,
     Visual extends DefaultDataVisual = DefaultDataVisual
@@ -2154,26 +2175,4 @@ class List<
 
 }
 
-// -----------------------------
-// Internal method declarations:
-// -----------------------------
-let defaultDimValueGetters: {[sourceFormat: string]: DimValueGetter};
-let prepareInvertedIndex: (list: List) => void;
-let getRawValueFromStore: (list: List, dimIndex: number, rawIndex: number) => any;
-let getIndicesCtor: (list: List) => DataArrayLikeConstructor;
-let prepareChunks: (
-    storage: DataStorage, dimInfo: DataDimensionInfo, chunkSize: number, chunkCount: number, end: number
-) => void;
-let getRawIndexWithoutIndices: (this: List, idx: number) => number;
-let getRawIndexWithIndices: (this: List, idx: number) => number;
-let getId: (list: List, rawIndex: number) => string;
-let normalizeDimensions: (dimensions: ItrParamDims) => Array<DimensionLoose>;
-let validateDimensions: (list: List, dims: DimensionName[]) => void;
-let cloneListForMapAndSample: (original: List, excludeDimensions: DimensionName[]) => List;
-let cloneDimStore: (originalDimStore: DataValueChunk[]) => DataValueChunk[];
-let getInitialExtent: () => [number, number];
-let setItemDataAndSeriesIndex: (this: Element, child: Element) => void;
-let transferProperties: (target: List, source: List) => void;
-
-
 export default List;
diff --git a/src/data/helper/dataProvider.ts b/src/data/helper/dataProvider.ts
index 3ba7daa..c499f06 100644
--- a/src/data/helper/dataProvider.ts
+++ b/src/data/helper/dataProvider.ts
@@ -53,6 +53,9 @@ export interface DataProvider {
     clean(): void;
 }
 
+
+let providerMethods: Dictionary<any>;
+
 /**
  * If normal array used, mutable chunk size is supported.
  * If typed array used, chunk size must be fixed.
@@ -260,9 +263,6 @@ export class DefaultDataProvider implements DataProvider {
 
     })();
 }
-
-let providerMethods: Dictionary<any>;
-
 // TODO
 // merge it to dataProvider?
 type RawValueGetter = (
diff --git a/src/echarts.ts b/src/echarts.ts
index bb85b18..5be348b 100644
--- a/src/echarts.ts
+++ b/src/echarts.ts
@@ -174,6 +174,48 @@ messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');
 messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');
 // messageCenterProto.one = createRegisterEventWithLowercaseMessageCenter('one');
 
+// ---------------------------------------
+// Internal method names for class ECharts
+// ---------------------------------------
+let prepare: (ecIns: ECharts) => void;
+let prepareView: (ecIns: ECharts, isComponent: boolean) => void;
+let updateDirectly: (
+    ecIns: ECharts, method: string, payload: Payload, mainType: ComponentMainType, subType?: ComponentSubType
+) => void;
+type UpdateMethod = (this: ECharts, payload?: Payload) => void;
+let updateMethods: {
+    prepareAndUpdate: UpdateMethod,
+    update: UpdateMethod,
+    updateTransform: UpdateMethod,
+    updateView: UpdateMethod,
+    updateVisual: UpdateMethod,
+    updateLayout: UpdateMethod
+};
+let doConvertPixel: (ecIns: ECharts, methodName: string, finder: ModelFinder, value: any) => any;
+let updateStreamModes: (ecIns: ECharts, ecModel: GlobalModel) => void;
+let doDispatchAction: (this: ECharts, payload: Payload, silent: boolean) => void;
+let flushPendingActions: (this: ECharts, silent: boolean) => void;
+let triggerUpdatedEvent: (this: ECharts, silent: boolean) => void;
+let bindRenderedEvent: (zr: zrender.ZRenderType, ecIns: ECharts) => void;
+let clearColorPalette: (ecModel: GlobalModel) => void;
+let render: (ecIns: ECharts, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload) => void;
+let renderComponents: (
+    ecIns: ECharts, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload, dirtyList?: ComponentView[]
+) => void;
+let renderSeries: (
+    ecIns: ECharts,
+    ecModel: GlobalModel,
+    api: ExtensionAPI,
+    payload: Payload | 'remain',
+    dirtyMap?: {[uid: string]: any}
+) => void;
+let performPostUpdateFuncs: (ecModel: GlobalModel, api: ExtensionAPI) => void;
+let updateHoverLayerStatus: (ecIns: ECharts, ecModel: GlobalModel) => void;
+let updateBlend: (seriesModel: SeriesModel, chartView: ChartView) => void;
+let updateZ: (model: ComponentModel, view: ComponentView | ChartView) => void;
+let updateHoverEmphasisHandler: (view: ComponentView | ChartView) => void;
+let createExtensionAPI: (ecIns: ECharts) => ExtensionAPI;
+let enableConnect: (chart: ECharts) => void;
 
 class ECharts extends Eventful {
 
@@ -1832,49 +1874,6 @@ class ECharts extends Eventful {
 }
 
 
-// ---------------------------------------
-// Internal method names for class ECharts
-// ---------------------------------------
-let prepare: (ecIns: ECharts) => void;
-let prepareView: (ecIns: ECharts, isComponent: boolean) => void;
-let updateDirectly: (
-    ecIns: ECharts, method: string, payload: Payload, mainType: ComponentMainType, subType?: ComponentSubType
-) => void;
-type UpdateMethod = (this: ECharts, payload?: Payload) => void;
-let updateMethods: {
-    prepareAndUpdate: UpdateMethod,
-    update: UpdateMethod,
-    updateTransform: UpdateMethod,
-    updateView: UpdateMethod,
-    updateVisual: UpdateMethod,
-    updateLayout: UpdateMethod
-};
-let doConvertPixel: (ecIns: ECharts, methodName: string, finder: ModelFinder, value: any) => any;
-let updateStreamModes: (ecIns: ECharts, ecModel: GlobalModel) => void;
-let doDispatchAction: (this: ECharts, payload: Payload, silent: boolean) => void;
-let flushPendingActions: (this: ECharts, silent: boolean) => void;
-let triggerUpdatedEvent: (this: ECharts, silent: boolean) => void;
-let bindRenderedEvent: (zr: zrender.ZRenderType, ecIns: ECharts) => void;
-let clearColorPalette: (ecModel: GlobalModel) => void;
-let render: (ecIns: ECharts, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload) => void;
-let renderComponents: (
-    ecIns: ECharts, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload, dirtyList?: ComponentView[]
-) => void;
-let renderSeries: (
-    ecIns: ECharts,
-    ecModel: GlobalModel,
-    api: ExtensionAPI,
-    payload: Payload | 'remain',
-    dirtyMap?: {[uid: string]: any}
-) => void;
-let performPostUpdateFuncs: (ecModel: GlobalModel, api: ExtensionAPI) => void;
-let updateHoverLayerStatus: (ecIns: ECharts, ecModel: GlobalModel) => void;
-let updateBlend: (seriesModel: SeriesModel, chartView: ChartView) => void;
-let updateZ: (model: ComponentModel, view: ComponentView | ChartView) => void;
-let updateHoverEmphasisHandler: (view: ComponentView | ChartView) => void;
-let createExtensionAPI: (ecIns: ECharts) => ExtensionAPI;
-let enableConnect: (chart: ECharts) => void;
-
 
 const echartsProto = ECharts.prototype;
 echartsProto.on = createRegisterEventWithLowercaseECharts('on');
diff --git a/src/model/Global.ts b/src/model/Global.ts
index 03de95d..0e6da65 100644
--- a/src/model/Global.ts
+++ b/src/model/Global.ts
@@ -57,11 +57,15 @@ import OptionManager from './OptionManager';
 import Scheduler from '../stream/Scheduler';
 import { Dictionary } from 'zrender/src/core/types';
 
-const OPTION_INNER_KEY = '\0_ec_inner';
-
+// -----------------------
+// Internal method names:
+// -----------------------
+let createSeriesIndices: (ecModel: GlobalModel, seriesModels: ComponentModel[]) => void;
+let assertSeriesInitialized: (ecModel: GlobalModel) => void;
+let initBase: (ecModel: GlobalModel, baseOption: ECUnitOption) => void;
 
+const OPTION_INNER_KEY = '\0_ec_inner';
 class GlobalModel extends Model<ECUnitOption> {
-
     // @readonly
     option: ECUnitOption;
 
@@ -657,13 +661,6 @@ class GlobalModel extends Model<ECUnitOption> {
     })();
 }
 
-// -----------------------
-// Internal method names:
-// -----------------------
-let createSeriesIndices: (ecModel: GlobalModel, seriesModels: ComponentModel[]) => void;
-let assertSeriesInitialized: (ecModel: GlobalModel) => void;
-let initBase: (ecModel: GlobalModel, baseOption: ECUnitOption) => void;
-
 
 /**
  * @param condition.mainType Mandatory.


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