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/11/05 08:18:45 UTC

[incubator-echarts] branch bundle-dts created (now f9bd8da)

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

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


      at f9bd8da  fix(type): optimize types for dts bundling

This branch includes the following new commits:

     new f9bd8da  fix(type): optimize types for dts bundling

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


[incubator-echarts] 01/01: fix(type): optimize types for dts bundling

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

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

commit f9bd8da1884492fdfa234a95df86ff5605708bda
Author: pissang <bm...@gmail.com>
AuthorDate: Thu Nov 5 15:59:16 2020 +0800

    fix(type): optimize types for dts bundling
---
 src/ExtensionAPI.ts                              | 14 ++++++++---
 src/chart/boxplot/boxplotLayout.ts               |  2 +-
 src/chart/boxplot/boxplotVisual.ts               |  2 +-
 src/chart/boxplot/prepareBoxplotData.ts          |  2 +-
 src/chart/candlestick/preprocessor.ts            |  2 +-
 src/chart/custom.ts                              | 31 ++++++++++++++++--------
 src/chart/funnel/funnelLayout.ts                 |  2 +-
 src/chart/graph/adjustEdge.ts                    |  2 +-
 src/chart/graph/categoryFilter.ts                |  2 +-
 src/chart/graph/categoryVisual.ts                |  2 +-
 src/chart/graph/circularLayout.ts                |  2 +-
 src/chart/graph/createView.ts                    |  2 +-
 src/chart/graph/edgeVisual.ts                    |  2 +-
 src/chart/graph/forceLayout.ts                   |  2 +-
 src/chart/graph/simpleLayout.ts                  |  2 +-
 src/chart/helper/createGraphFromNodeEdge.ts      |  2 +-
 src/chart/helper/createListSimply.ts             |  2 +-
 src/chart/helper/createRenderPlanner.ts          |  2 +-
 src/chart/helper/enableAriaDecalForTree.ts       |  2 +-
 src/chart/line/lineAnimationDiff.ts              |  2 +-
 src/chart/map/mapDataStatistic.ts                |  2 +-
 src/chart/map/mapSymbolLayout.ts                 |  2 +-
 src/chart/pie/labelLayout.ts                     |  2 +-
 src/chart/pie/pieLayout.ts                       |  2 +-
 src/chart/radar/backwardCompat.ts                |  2 +-
 src/chart/radar/radarLayout.ts                   |  2 +-
 src/chart/sankey/sankeyLayout.ts                 |  2 +-
 src/chart/sankey/sankeyVisual.ts                 |  2 +-
 src/chart/sunburst/sunburstLayout.ts             |  2 +-
 src/chart/sunburst/sunburstVisual.ts             |  2 +-
 src/chart/themeRiver/themeRiverLayout.ts         |  8 +++---
 src/chart/tree/treeLayout.ts                     |  2 +-
 src/chart/tree/treeVisual.ts                     |  2 +-
 src/component/aria/preprocessor.ts               |  2 +-
 src/component/axisPointer/axisTrigger.ts         |  2 +-
 src/component/axisPointer/findPointFromSeries.ts |  2 +-
 src/component/brush/preprocessor.ts              |  2 +-
 src/component/helper/sliderMove.ts               |  2 +-
 src/component/legend/legendFilter.ts             |  2 +-
 src/component/timeline/TimelineModel.ts          |  2 +-
 src/component/timeline/preprocessor.ts           |  2 +-
 src/component/toolbox/featureManager.ts          |  4 +--
 src/component/visualMap/preprocessor.ts          |  2 +-
 src/coord/axisModelCreator.ts                    |  4 +--
 src/coord/calendar/prepareCustom.ts              |  2 +-
 src/coord/cartesian/prepareCustom.ts             |  2 +-
 src/coord/geo/fix/diaoyuIsland.ts                |  2 +-
 src/coord/geo/fix/geoCoord.ts                    |  2 +-
 src/coord/geo/fix/nanhai.ts                      |  2 +-
 src/coord/geo/fix/textCoord.ts                   |  2 +-
 src/coord/geo/parseGeoJson.ts                    |  2 +-
 src/coord/geo/prepareCustom.ts                   |  2 +-
 src/coord/parallel/parallelPreprocessor.ts       |  2 +-
 src/coord/polar/prepareCustom.ts                 |  2 +-
 src/coord/single/prepareCustom.ts                |  2 +-
 src/data/helper/createDimensions.ts              |  2 +-
 src/echarts.ts                                   | 28 ++++++++++++++-------
 src/layout/barGrid.ts                            | 10 +++++---
 src/layout/points.ts                             |  2 +-
 src/legacy/dataSelectAction.ts                   | 16 ++++++------
 src/loading/default.ts                           |  2 +-
 src/model/mixin/makeStyleMapper.ts               |  2 +-
 src/preprocessor/backwardCompat.ts               |  2 +-
 src/preprocessor/helper/compatStyle.ts           |  2 +-
 src/processor/dataFilter.ts                      |  2 +-
 src/processor/dataSample.ts                      |  2 +-
 src/processor/dataStack.ts                       |  2 +-
 src/stream/Scheduler.ts                          |  2 +-
 src/util/states.ts                               | 28 ++++++++++-----------
 src/visual/aria.ts                               |  2 +-
 src/visual/decal.ts                              |  2 +-
 71 files changed, 150 insertions(+), 117 deletions(-)

diff --git a/src/ExtensionAPI.ts b/src/ExtensionAPI.ts
index 40b16e7..58550b6 100644
--- a/src/ExtensionAPI.ts
+++ b/src/ExtensionAPI.ts
@@ -22,6 +22,10 @@ import {EChartsType} from './echarts';
 import {CoordinateSystemMaster} from './coord/CoordinateSystem';
 import Element from 'zrender/src/Element';
 import ComponentModel from './model/Component';
+import ComponentView from './view/Component';
+import ChartView from './view/Chart';
+import SeriesModel from './model/Series';
+import GlobalModel from './model/Global';
 
 const availableMethods: (keyof EChartsType)[] = [
     'getDom',
@@ -35,10 +39,10 @@ const availableMethods: (keyof EChartsType)[] = [
     'off',
     'getDataURL',
     'getConnectedDataURL',
-    'getModel',
+    // 'getModel',
     'getOption',
-    'getViewOfComponentModel',
-    'getViewOfSeriesModel',
+    // 'getViewOfComponentModel',
+    // 'getViewOfSeriesModel',
     'getId',
     'updateLabelLayout'
 ];
@@ -62,6 +66,10 @@ abstract class ExtensionAPI {
     abstract leaveSelect(el: Element): void;
     abstract enterBlur(el: Element): void;
     abstract leaveBlur(el: Element): void;
+    // These methods are not planned to be exposed to outside.
+    abstract getViewOfComponentModel(componentModel: ComponentModel): ComponentView;
+    abstract getViewOfSeriesModel(seriesModel: SeriesModel): ChartView;
+    abstract getModel(): GlobalModel;
 }
 
 export default ExtensionAPI;
diff --git a/src/chart/boxplot/boxplotLayout.ts b/src/chart/boxplot/boxplotLayout.ts
index a7a3997..03d9a49 100644
--- a/src/chart/boxplot/boxplotLayout.ts
+++ b/src/chart/boxplot/boxplotLayout.ts
@@ -37,7 +37,7 @@ export interface BoxplotItemLayout {
     initBaseline: number
 }
 
-export default function (ecModel: GlobalModel) {
+export default function boxplotLayout(ecModel: GlobalModel) {
 
     const groupResult = groupSeriesByAxis(ecModel);
 
diff --git a/src/chart/boxplot/boxplotVisual.ts b/src/chart/boxplot/boxplotVisual.ts
index 4deee98..ae89251 100644
--- a/src/chart/boxplot/boxplotVisual.ts
+++ b/src/chart/boxplot/boxplotVisual.ts
@@ -21,7 +21,7 @@ import GlobalModel from '../../model/Global';
 import ExtensionAPI from '../../ExtensionAPI';
 import BoxplotSeriesModel from './BoxplotSeries';
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function boxplotVisual(ecModel: GlobalModel, api: ExtensionAPI) {
     ecModel.eachRawSeriesByType('boxplot', function (seriesModel: BoxplotSeriesModel) {
         seriesModel.getData().setVisual('legendSymbol', 'roundRect');
     });
diff --git a/src/chart/boxplot/prepareBoxplotData.ts b/src/chart/boxplot/prepareBoxplotData.ts
index c7cb47c..f9b682d 100644
--- a/src/chart/boxplot/prepareBoxplotData.ts
+++ b/src/chart/boxplot/prepareBoxplotData.ts
@@ -44,7 +44,7 @@ export interface PrepareBoxplotDataOpt {
  *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).
  *      If 'none'/0 passed, min bound will not be used.
  */
-export default function (
+export default function prepareBoxplotData(
     rawData: number[][],
     opt: PrepareBoxplotDataOpt
 ): {
diff --git a/src/chart/candlestick/preprocessor.ts b/src/chart/candlestick/preprocessor.ts
index 953d3b2..f41dbb4 100644
--- a/src/chart/candlestick/preprocessor.ts
+++ b/src/chart/candlestick/preprocessor.ts
@@ -20,7 +20,7 @@
 import * as zrUtil from 'zrender/src/core/util';
 import { ECUnitOption } from '../../util/types';
 
-export default function (option: ECUnitOption) {
+export default function candlestickPreprocessor(option: ECUnitOption) {
     if (!option || !zrUtil.isArray(option.series)) {
         return;
     }
diff --git a/src/chart/custom.ts b/src/chart/custom.ts
index 8db0f0f..7484bc5 100644
--- a/src/chart/custom.ts
+++ b/src/chart/custom.ts
@@ -26,7 +26,7 @@ import { setDefaultStateProxy, enableHoverEmphasis } from '../util/states';
 import * as labelStyleHelper from '../label/labelStyle';
 import {getDefaultLabel} from './helper/labelHelper';
 import createListFromArray from './helper/createListFromArray';
-import {getLayoutOnAxis} from '../layout/barGrid';
+import {getLayoutOnAxis, BarGridLayoutResult, BarGridLayoutOptionForCustomSeries} from '../layout/barGrid';
 import DataDiffer, { DataDiffMode } from '../data/DataDiffer';
 import SeriesModel from '../model/Series';
 import Model from '../model/Model';
@@ -55,7 +55,8 @@ import {
     OrdinalRawValue,
     PayloadAnimationPart,
     DecalObject,
-    InnerDecalObject
+    InnerDecalObject,
+    TextCommonOption
 } from '../util/types';
 import Element, { ElementProps, ElementTextConfig } from 'zrender/src/Element';
 import prepareCartesian2d from '../coord/cartesian/prepareCustom';
@@ -93,6 +94,7 @@ import { AnimationEasing } from 'zrender/src/animation/easing';
 import * as matrix from 'zrender/src/core/matrix';
 import { PatternObject } from 'zrender/src/graphic/Pattern';
 import { createOrUpdatePatternFromDecal } from '../util/decal';
+import { ZRenderType } from 'zrender/src/zrender';
 
 
 const inner = makeInner<{
@@ -229,8 +231,15 @@ type CustomElementOptionOnState = CustomDisplayableOptionOnState | CustomImageOp
 
 
 export interface CustomSeriesRenderItemAPI extends
-        CustomSeriesRenderItemCoordinateSystemAPI,
-        Pick<ExtensionAPI, 'getWidth' | 'getHeight' | 'getZr' | 'getDevicePixelRatio'> {
+        CustomSeriesRenderItemCoordinateSystemAPI {
+
+    // Methods from ExtensionAPI.
+    // NOTE: Not using Pick<ExtensionAPI> here because we don't want to bundle ExtensionAPI into the d.ts
+    getWidth(): number
+    getHeight(): number
+    getZr(): ZRenderType
+    getDevicePixelRatio(): number
+
     value(dim: DimensionLoose, dataIndexInside?: number): ParsedValue;
     ordinalRawValue(dim: DimensionLoose, dataIndexInside?: number): ParsedValue | OrdinalRawValue;
     style(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps;
@@ -241,9 +250,9 @@ export interface CustomSeriesRenderItemAPI extends
     ): VT extends NonStyleVisualProps ? DefaultDataVisual[VT]
         : VT extends StyleVisualProps ? PathStyleProps[typeof STYLE_VISUAL_TYPE[VT]]
         : void;
-    barLayout(opt: Omit<Parameters<typeof getLayoutOnAxis>[0], 'axis'>): ReturnType<typeof getLayoutOnAxis>;
-    currentSeriesIndices(): ReturnType<GlobalModel['getCurrentSeriesIndices']>;
-    font(opt: Parameters<typeof labelStyleHelper.getFont>[0]): ReturnType<typeof labelStyleHelper.getFont>;
+    barLayout(opt: BarGridLayoutOptionForCustomSeries): BarGridLayoutResult;
+    currentSeriesIndices(): number[];
+    font(opt: Pick<TextCommonOption, 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>): string;
 }
 interface CustomSeriesRenderItemParamsCoordSys {
     type: string;
@@ -266,7 +275,7 @@ export interface CustomSeriesRenderItemParams {
     seriesIndex: number;
     coordSys: CustomSeriesRenderItemParamsCoordSys;
     dataInsideLength: number;
-    encode: ReturnType<typeof wrapEncodeDef>;
+    encode: WrapEncodeDefRet;
 }
 type CustomSeriesRenderItem = (
     params: CustomSeriesRenderItemParams,
@@ -1889,8 +1898,10 @@ function makeRenderItem(
     }
 }
 
-function wrapEncodeDef(data: List<CustomSeriesModel>): Dictionary<number[]> {
-    const encodeDef = {} as Dictionary<number[]>;
+type WrapEncodeDefRet = Dictionary<number[]>;
+
+function wrapEncodeDef(data: List<CustomSeriesModel>): WrapEncodeDefRet {
+    const encodeDef = {} as WrapEncodeDefRet;
     each(data.dimensions, function (dimName, dataDimIndex) {
         const dimInfo = data.getDimensionInfo(dimName);
         if (!dimInfo.isExtraCoord) {
diff --git a/src/chart/funnel/funnelLayout.ts b/src/chart/funnel/funnelLayout.ts
index e309fb9..22d4d28 100644
--- a/src/chart/funnel/funnelLayout.ts
+++ b/src/chart/funnel/funnelLayout.ts
@@ -245,7 +245,7 @@ function labelLayout(data: List) {
     });
 }
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function funnelLayout(ecModel: GlobalModel, api: ExtensionAPI) {
     ecModel.eachSeriesByType('funnel', function (seriesModel: FunnelSeriesModel) {
         const data = seriesModel.getData();
         const valueDim = data.mapDimension('value');
diff --git a/src/chart/graph/adjustEdge.ts b/src/chart/graph/adjustEdge.ts
index 28243ab..e64a817 100644
--- a/src/chart/graph/adjustEdge.ts
+++ b/src/chart/graph/adjustEdge.ts
@@ -95,7 +95,7 @@ function intersectCurveCircle(
 }
 
 // Adjust edge to avoid
-export default function (graph: Graph, scale: number) {
+export default function adjustEdge(graph: Graph, scale: number) {
     const tmp0: number[] = [];
     const quadraticSubdivide = curveTool.quadraticSubdivide;
     const pts: number[][] = [[], [], []];
diff --git a/src/chart/graph/categoryFilter.ts b/src/chart/graph/categoryFilter.ts
index ef477df..b0aa3b1 100644
--- a/src/chart/graph/categoryFilter.ts
+++ b/src/chart/graph/categoryFilter.ts
@@ -21,7 +21,7 @@ import GlobalModel from '../../model/Global';
 import GraphSeriesModel, { GraphNodeItemOption } from './GraphSeries';
 import type LegendModel from '../../component/legend/LegendModel';
 
-export default function (ecModel: GlobalModel) {
+export default function categoryFilter(ecModel: GlobalModel) {
     const legendModels = ecModel.findComponents({
         mainType: 'legend'
     }) as LegendModel[];
diff --git a/src/chart/graph/categoryVisual.ts b/src/chart/graph/categoryVisual.ts
index fe5c36c..fb6c9ed 100644
--- a/src/chart/graph/categoryVisual.ts
+++ b/src/chart/graph/categoryVisual.ts
@@ -22,7 +22,7 @@ import GraphSeriesModel, { GraphNodeItemOption } from './GraphSeries';
 import { Dictionary, ColorString } from '../../util/types';
 import { extend } from 'zrender/src/core/util';
 
-export default function (ecModel: GlobalModel) {
+export default function categoryVisual(ecModel: GlobalModel) {
 
     const paletteScope: Dictionary<ColorString> = {};
     ecModel.eachSeriesByType('graph', function (seriesModel: GraphSeriesModel) {
diff --git a/src/chart/graph/circularLayout.ts b/src/chart/graph/circularLayout.ts
index 8f1712a..312a6a5 100644
--- a/src/chart/graph/circularLayout.ts
+++ b/src/chart/graph/circularLayout.ts
@@ -21,7 +21,7 @@ import {circularLayout} from './circularLayoutHelper';
 import GlobalModel from '../../model/Global';
 import GraphSeriesModel from './GraphSeries';
 
-export default function (ecModel: GlobalModel) {
+export default function graphCircularLayout(ecModel: GlobalModel) {
     ecModel.eachSeriesByType('graph', function (seriesModel: GraphSeriesModel) {
         if (seriesModel.get('layout') === 'circular') {
             circularLayout(seriesModel, 'symbolSize');
diff --git a/src/chart/graph/createView.ts b/src/chart/graph/createView.ts
index 213749a..79a6388 100644
--- a/src/chart/graph/createView.ts
+++ b/src/chart/graph/createView.ts
@@ -36,7 +36,7 @@ function getViewRect(seriesModel: GraphSeriesModel, api: ExtensionAPI, aspect: n
     });
 }
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function createViewCoordSys(ecModel: GlobalModel, api: ExtensionAPI) {
     const viewList: View[] = [];
     ecModel.eachSeriesByType('graph', function (seriesModel: GraphSeriesModel) {
         const coordSysType = seriesModel.get('coordinateSystem');
diff --git a/src/chart/graph/edgeVisual.ts b/src/chart/graph/edgeVisual.ts
index a134794..7107399 100644
--- a/src/chart/graph/edgeVisual.ts
+++ b/src/chart/graph/edgeVisual.ts
@@ -30,7 +30,7 @@ function normalize(a: string | number | (string | number)[]): (string | number)[
     return a;
 }
 
-export default function (ecModel: GlobalModel) {
+export default function graphEdgeVisual(ecModel: GlobalModel) {
     ecModel.eachSeriesByType('graph', function (seriesModel: GraphSeriesModel) {
         const graph = seriesModel.getGraph();
         const edgeData = seriesModel.getEdgeData();
diff --git a/src/chart/graph/forceLayout.ts b/src/chart/graph/forceLayout.ts
index 70a1d1d..eeec04b 100644
--- a/src/chart/graph/forceLayout.ts
+++ b/src/chart/graph/forceLayout.ts
@@ -35,7 +35,7 @@ export interface ForceLayoutInstance {
 }
 
 
-export default function (ecModel: GlobalModel) {
+export default function graphForceLayout(ecModel: GlobalModel) {
     ecModel.eachSeriesByType('graph', function (graphSeries: GraphSeriesModel) {
         const coordSys = graphSeries.coordinateSystem;
         if (coordSys && coordSys.type !== 'view') {
diff --git a/src/chart/graph/simpleLayout.ts b/src/chart/graph/simpleLayout.ts
index 8b6d785..a288ed5 100644
--- a/src/chart/graph/simpleLayout.ts
+++ b/src/chart/graph/simpleLayout.ts
@@ -23,7 +23,7 @@ import GlobalModel from '../../model/Global';
 import ExtensionAPI from '../../ExtensionAPI';
 import GraphSeriesModel from './GraphSeries';
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function graphSimpleLayout(ecModel: GlobalModel, api: ExtensionAPI) {
     ecModel.eachSeriesByType('graph', function (seriesModel: GraphSeriesModel) {
         const layout = seriesModel.get('layout');
         const coordSys = seriesModel.coordinateSystem;
diff --git a/src/chart/helper/createGraphFromNodeEdge.ts b/src/chart/helper/createGraphFromNodeEdge.ts
index 6e07d27..5e30dcf 100644
--- a/src/chart/helper/createGraphFromNodeEdge.ts
+++ b/src/chart/helper/createGraphFromNodeEdge.ts
@@ -32,7 +32,7 @@ import {
 import SeriesModel from '../../model/Series';
 import { convertOptionIdName } from '../../util/model';
 
-export default function (
+export default function createGraphFromNodeEdge(
     nodes: OptionSourceDataOriginal<OptionDataValue, OptionDataItemObject<OptionDataValue>>,
     edges: OptionSourceDataOriginal<OptionDataValue, GraphEdgeItemObject<OptionDataValue>>,
     seriesModel: SeriesModel,
diff --git a/src/chart/helper/createListSimply.ts b/src/chart/helper/createListSimply.ts
index fb50f95..b38d3cd 100644
--- a/src/chart/helper/createListSimply.ts
+++ b/src/chart/helper/createListSimply.ts
@@ -32,7 +32,7 @@ import SeriesModel from '../../model/Series';
  *     dimensionsCount: 5
  * });
  */
-export default function (
+export default function createListSimply(
     seriesModel: SeriesModel,
     opt: CreateDimensionsParams | CreateDimensionsParams['coordDimensions'],
     nameList?: string[]
diff --git a/src/chart/helper/createRenderPlanner.ts b/src/chart/helper/createRenderPlanner.ts
index 72daef1..f225f76 100644
--- a/src/chart/helper/createRenderPlanner.ts
+++ b/src/chart/helper/createRenderPlanner.ts
@@ -24,7 +24,7 @@ import { StageHandlerPlanReturn } from '../../util/types';
 /**
  * @return {string} If large mode changed, return string 'reset';
  */
-export default function () {
+export default function createRenderPlanner() {
     const inner = makeInner<{
         large: boolean
         progressiveRender: boolean
diff --git a/src/chart/helper/enableAriaDecalForTree.ts b/src/chart/helper/enableAriaDecalForTree.ts
index fca0cf9..520a089 100644
--- a/src/chart/helper/enableAriaDecalForTree.ts
+++ b/src/chart/helper/enableAriaDecalForTree.ts
@@ -2,7 +2,7 @@ import SeriesModel from '../../model/Series';
 import {Dictionary, DecalObject} from '../../util/types';
 import { getDecalFromPalette } from '../../model/mixin/palette';
 
-export default function (seriesModel: SeriesModel) {
+export default function enableAriaDecalForTree(seriesModel: SeriesModel) {
     const data = seriesModel.getData();
     const tree = data.tree;
     const decalPaletteScope: Dictionary<DecalObject> = {};
diff --git a/src/chart/line/lineAnimationDiff.ts b/src/chart/line/lineAnimationDiff.ts
index 84cc409..fbc2ee8 100644
--- a/src/chart/line/lineAnimationDiff.ts
+++ b/src/chart/line/lineAnimationDiff.ts
@@ -48,7 +48,7 @@ function diffData(oldData: List, newData: List) {
     return diffResult;
 }
 
-export default function (
+export default function lineAnimationDiff(
     oldData: List, newData: List,
     oldStackedOnPoints: ArrayLike<number>, newStackedOnPoints: ArrayLike<number>,
     oldCoordSys: Cartesian2D | Polar, newCoordSys: Cartesian2D | Polar,
diff --git a/src/chart/map/mapDataStatistic.ts b/src/chart/map/mapDataStatistic.ts
index d986094..0df4040 100644
--- a/src/chart/map/mapDataStatistic.ts
+++ b/src/chart/map/mapDataStatistic.ts
@@ -66,7 +66,7 @@ function dataStatistics(datas: List[], statisticType: MapValueCalculationType):
     });
 }
 
-export default function (ecModel: GlobalModel): void {
+export default function mapDataStatistic(ecModel: GlobalModel): void {
     const seriesGroups = {} as {[key: string]: MapSeries[]};
     ecModel.eachSeriesByType('map', function (seriesModel: MapSeries) {
         const hostGeoModel = seriesModel.getHostGeoModel();
diff --git a/src/chart/map/mapSymbolLayout.ts b/src/chart/map/mapSymbolLayout.ts
index 671c9fb..65e8d31 100644
--- a/src/chart/map/mapSymbolLayout.ts
+++ b/src/chart/map/mapSymbolLayout.ts
@@ -23,7 +23,7 @@ import GlobalModel from '../../model/Global';
 import MapSeries from './MapSeries';
 import { Dictionary } from '../../util/types';
 
-export default function (ecModel: GlobalModel) {
+export default function mapSymbolLayout(ecModel: GlobalModel) {
 
     const processedMapType = {} as {[mapType: string]: boolean};
 
diff --git a/src/chart/pie/labelLayout.ts b/src/chart/pie/labelLayout.ts
index 696ad0f..48dc7ce 100644
--- a/src/chart/pie/labelLayout.ts
+++ b/src/chart/pie/labelLayout.ts
@@ -233,7 +233,7 @@ function isPositionCenter(sectorShape: LabelLayout) {
     return sectorShape.position === 'center';
 }
 
-export default function (
+export default function pieLabelLayout(
     seriesModel: PieSeriesModel
 ) {
     const data = seriesModel.getData();
diff --git a/src/chart/pie/pieLayout.ts b/src/chart/pie/pieLayout.ts
index 5639b4e..d216b5b 100644
--- a/src/chart/pie/pieLayout.ts
+++ b/src/chart/pie/pieLayout.ts
@@ -36,7 +36,7 @@ function getViewRect(seriesModel: PieSeriesModel, api: ExtensionAPI) {
     );
 }
 
-export default function (
+export default function pieLayout(
     seriesType: 'pie',
     ecModel: GlobalModel,
     api: ExtensionAPI
diff --git a/src/chart/radar/backwardCompat.ts b/src/chart/radar/backwardCompat.ts
index 7898dce..2bdaf4c 100644
--- a/src/chart/radar/backwardCompat.ts
+++ b/src/chart/radar/backwardCompat.ts
@@ -22,7 +22,7 @@
 // Backward compat for radar chart in 2
 import * as zrUtil from 'zrender/src/core/util';
 
-export default function (option) {
+export default function radarBackwardCompat(option) {
     let polarOptArr = option.polar;
     if (polarOptArr) {
         if (!zrUtil.isArray(polarOptArr)) {
diff --git a/src/chart/radar/radarLayout.ts b/src/chart/radar/radarLayout.ts
index b02439a..3d36118 100644
--- a/src/chart/radar/radarLayout.ts
+++ b/src/chart/radar/radarLayout.ts
@@ -23,7 +23,7 @@ import RadarSeriesModel from './RadarSeries';
 import Radar from '../../coord/radar/Radar';
 
 type Point = number[];
-export default function (ecModel: GlobalModel) {
+export default function radarLayout(ecModel: GlobalModel) {
     ecModel.eachSeriesByType('radar', function (seriesModel: RadarSeriesModel) {
         const data = seriesModel.getData();
         const points: Point[][] = [];
diff --git a/src/chart/sankey/sankeyLayout.ts b/src/chart/sankey/sankeyLayout.ts
index fe9acaf..ba872f7 100644
--- a/src/chart/sankey/sankeyLayout.ts
+++ b/src/chart/sankey/sankeyLayout.ts
@@ -26,7 +26,7 @@ import { GraphNode, GraphEdge } from '../../data/Graph';
 import { LayoutOrient } from '../../util/types';
 import GlobalModel from '../../model/Global';
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function sankeyLayout(ecModel: GlobalModel, api: ExtensionAPI) {
 
     ecModel.eachSeriesByType('sankey', function (seriesModel: SankeySeriesModel) {
 
diff --git a/src/chart/sankey/sankeyVisual.ts b/src/chart/sankey/sankeyVisual.ts
index 19b4926..9425a61 100644
--- a/src/chart/sankey/sankeyVisual.ts
+++ b/src/chart/sankey/sankeyVisual.ts
@@ -22,7 +22,7 @@ import VisualMapping from '../../visual/VisualMapping';
 import GlobalModel from '../../model/Global';
 import SankeySeriesModel, { SankeyNodeItemOption } from './SankeySeries';
 
-export default function (ecModel: GlobalModel) {
+export default function sankeyVisual(ecModel: GlobalModel) {
     ecModel.eachSeriesByType('sankey', function (seriesModel: SankeySeriesModel) {
         const graph = seriesModel.getGraph();
         const nodes = graph.nodes;
diff --git a/src/chart/sunburst/sunburstLayout.ts b/src/chart/sunburst/sunburstLayout.ts
index f1da06c..db59ec0 100644
--- a/src/chart/sunburst/sunburstLayout.ts
+++ b/src/chart/sunburst/sunburstLayout.ts
@@ -27,7 +27,7 @@ import { TreeNode } from '../../data/Tree';
 // let PI2 = Math.PI * 2;
 const RADIAN = Math.PI / 180;
 
-export default function (
+export default function sunburstLayout(
     seriesType: 'sunburst',
     ecModel: GlobalModel,
     api: ExtensionAPI
diff --git a/src/chart/sunburst/sunburstVisual.ts b/src/chart/sunburst/sunburstVisual.ts
index d0b982e..de68e7a 100644
--- a/src/chart/sunburst/sunburstVisual.ts
+++ b/src/chart/sunburst/sunburstVisual.ts
@@ -24,7 +24,7 @@ import { Dictionary, ColorString } from '../../util/types';
 import { TreeNode } from '../../data/Tree';
 import { lift } from 'zrender/src/tool/color';
 
-export default function (ecModel: GlobalModel) {
+export default function sunburstVisual(ecModel: GlobalModel) {
 
     const paletteScope: Dictionary<ColorString> = {};
 
diff --git a/src/chart/themeRiver/themeRiverLayout.ts b/src/chart/themeRiver/themeRiverLayout.ts
index 396e704..fcd8b7d 100644
--- a/src/chart/themeRiver/themeRiverLayout.ts
+++ b/src/chart/themeRiver/themeRiverLayout.ts
@@ -30,7 +30,7 @@ export interface ThemeRiverLayoutInfo {
     boundaryGap: ThemeRiverSeriesOption['boundaryGap']
 }
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function themeRiverLayout(ecModel: GlobalModel, api: ExtensionAPI) {
 
     ecModel.eachSeriesByType('themeRiver', function (seriesModel: ThemeRiverSeriesModel) {
 
@@ -55,13 +55,13 @@ export default function (ecModel: GlobalModel, api: ExtensionAPI) {
             boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);
             boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);
             const height = rect.height - boundaryGap[0] - boundaryGap[1];
-            themeRiverLayout(data, seriesModel, height);
+            doThemeRiverLayout(data, seriesModel, height);
         }
         else {
             boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);
             boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);
             const width = rect.width - boundaryGap[0] - boundaryGap[1];
-            themeRiverLayout(data, seriesModel, width);
+            doThemeRiverLayout(data, seriesModel, width);
         }
 
         data.setLayout('layoutInfo', layoutInfo);
@@ -75,7 +75,7 @@ export default function (ecModel: GlobalModel, api: ExtensionAPI) {
  * @param seriesModel  the model object of themeRiver series
  * @param height  value used to compute every series height
  */
-function themeRiverLayout(data: List<ThemeRiverSeriesModel>, seriesModel: ThemeRiverSeriesModel, height: number) {
+function doThemeRiverLayout(data: List<ThemeRiverSeriesModel>, seriesModel: ThemeRiverSeriesModel, height: number) {
     if (!data.count()) {
         return;
     }
diff --git a/src/chart/tree/treeLayout.ts b/src/chart/tree/treeLayout.ts
index 0395b81..04425fd 100644
--- a/src/chart/tree/treeLayout.ts
+++ b/src/chart/tree/treeLayout.ts
@@ -34,7 +34,7 @@ import GlobalModel from '../../model/Global';
 import ExtensionAPI from '../../ExtensionAPI';
 import TreeSeriesModel from './TreeSeries';
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function treeLayout(ecModel: GlobalModel, api: ExtensionAPI) {
     ecModel.eachSeriesByType('tree', function (seriesModel: TreeSeriesModel) {
         commonLayout(seriesModel, api);
     });
diff --git a/src/chart/tree/treeVisual.ts b/src/chart/tree/treeVisual.ts
index b4f9332..6958dbb 100644
--- a/src/chart/tree/treeVisual.ts
+++ b/src/chart/tree/treeVisual.ts
@@ -21,7 +21,7 @@ import GlobalModel from '../../model/Global';
 import TreeSeriesModel, { TreeSeriesNodeItemOption } from './TreeSeries';
 import { extend } from 'zrender/src/core/util';
 
-export default function (ecModel: GlobalModel) {
+export default function treeVisual(ecModel: GlobalModel) {
 
     ecModel.eachSeriesByType('tree', function (seriesModel: TreeSeriesModel) {
         const data = seriesModel.getData();
diff --git a/src/component/aria/preprocessor.ts b/src/component/aria/preprocessor.ts
index 9e403de..771e142 100644
--- a/src/component/aria/preprocessor.ts
+++ b/src/component/aria/preprocessor.ts
@@ -20,7 +20,7 @@
 import * as zrUtil from 'zrender/src/core/util';
 import { ECUnitOption } from '../../util/types';
 
-export default function (option: ECUnitOption) {
+export default function ariaPreprocessor(option: ECUnitOption) {
     if (!option || !option.aria) {
         return;
     }
diff --git a/src/component/axisPointer/axisTrigger.ts b/src/component/axisPointer/axisTrigger.ts
index 27aa8c5..c8031cd 100644
--- a/src/component/axisPointer/axisTrigger.ts
+++ b/src/component/axisPointer/axisTrigger.ts
@@ -108,7 +108,7 @@ type ShowValueMap = Dictionary<{
  *
  * @return content of event obj for echarts.connect.
  */
-export default function (
+export default function axisTrigger(
     payload: AxisTriggerPayload,
     ecModel: GlobalModel,
     api: ExtensionAPI
diff --git a/src/component/axisPointer/findPointFromSeries.ts b/src/component/axisPointer/findPointFromSeries.ts
index 6ff9851..603f607 100644
--- a/src/component/axisPointer/findPointFromSeries.ts
+++ b/src/component/axisPointer/findPointFromSeries.ts
@@ -28,7 +28,7 @@ import { Payload } from '../../util/types';
  * @param ecModel
  * @return  {point: [x, y], el: ...} point Will not be null.
  */
-export default function (finder: {
+export default function findPointFromSeries(finder: {
     seriesIndex?: number
     dataIndex?: number | number[]
     dataIndexInside?: number | number[]
diff --git a/src/component/brush/preprocessor.ts b/src/component/brush/preprocessor.ts
index 2c49e2a..5bbbfc8 100644
--- a/src/component/brush/preprocessor.ts
+++ b/src/component/brush/preprocessor.ts
@@ -27,7 +27,7 @@ import { normalizeToArray } from '../../util/model';
 
 const DEFAULT_TOOLBOX_BTNS: BrushToolboxIconType[] = ['rect', 'polygon', 'keep', 'clear'];
 
-export default function (option: ECUnitOption, isNew: boolean): void {
+export default function brushPreprocessor(option: ECUnitOption, isNew: boolean): void {
     const brushComponents = normalizeToArray(option ? option.brush : []);
 
     if (!brushComponents.length) {
diff --git a/src/component/helper/sliderMove.ts b/src/component/helper/sliderMove.ts
index c1dabb6..902312d 100644
--- a/src/component/helper/sliderMove.ts
+++ b/src/component/helper/sliderMove.ts
@@ -37,7 +37,7 @@
  * @param maxSpan The range of dataZoom can not be larger than that.
  * @return The input handleEnds.
  */
-export default function (
+export default function sliderMove(
     delta: number,
     handleEnds: number[],
     extent: number[],
diff --git a/src/component/legend/legendFilter.ts b/src/component/legend/legendFilter.ts
index e8638d0..e2374f2 100644
--- a/src/component/legend/legendFilter.ts
+++ b/src/component/legend/legendFilter.ts
@@ -21,7 +21,7 @@ import LegendModel from './LegendModel';
 * under the License.
 */
 
-export default function (ecModel: GlobalModel) {
+export default function legendFilter(ecModel: GlobalModel) {
 
     const legendModels = ecModel.findComponents({
         mainType: 'legend'
diff --git a/src/component/timeline/TimelineModel.ts b/src/component/timeline/TimelineModel.ts
index 7160d14..57a8f19 100644
--- a/src/component/timeline/TimelineModel.ts
+++ b/src/component/timeline/TimelineModel.ts
@@ -36,7 +36,7 @@ import {
 } from '../../util/types';
 import Model from '../../model/Model';
 import GlobalModel, { GlobalModelSetOptionOpts } from '../../model/Global';
-import { each, isObject, clone, isString } from 'zrender/src/core/util';
+import { each, isObject, clone } from 'zrender/src/core/util';
 import { convertOptionIdName, getDataItemValue } from '../../util/model';
 
 
diff --git a/src/component/timeline/preprocessor.ts b/src/component/timeline/preprocessor.ts
index 5663cc8..6de95d4 100644
--- a/src/component/timeline/preprocessor.ts
+++ b/src/component/timeline/preprocessor.ts
@@ -21,7 +21,7 @@
 
 import * as zrUtil from 'zrender/src/core/util';
 
-export default function (option) {
+export default function timelinePreprocessor(option) {
     let timelineOpt = option && option.timeline;
 
     if (!zrUtil.isArray(timelineOpt)) {
diff --git a/src/component/toolbox/featureManager.ts b/src/component/toolbox/featureManager.ts
index 756e013..8bf7575 100644
--- a/src/component/toolbox/featureManager.ts
+++ b/src/component/toolbox/featureManager.ts
@@ -49,7 +49,7 @@ export interface ToolboxFeatureOption {
 
     iconStatus?: Dictionary<DisplayState>
 
-    onclick?: (ecModel: GlobalModel, api: ExtensionAPI, type: string, event: ZRElementEvent) => void
+    onclick?: () => void
 }
 
 export interface ToolboxFeatureModel<Opts extends ToolboxFeatureOption = ToolboxFeatureOption> extends Model<Opts> {
@@ -98,7 +98,7 @@ export interface UserDefinedToolboxFeature {
 
     featureName?: string
 
-    onclick(ecModel: GlobalModel, api: ExtensionAPI, type: string, event: ZRElementEvent): void
+    onclick(): void
 }
 
 type ToolboxFeatureCtor = {
diff --git a/src/component/visualMap/preprocessor.ts b/src/component/visualMap/preprocessor.ts
index e908c29..08ba687 100644
--- a/src/component/visualMap/preprocessor.ts
+++ b/src/component/visualMap/preprocessor.ts
@@ -22,7 +22,7 @@ import * as zrUtil from 'zrender/src/core/util';
 
 const each = zrUtil.each;
 
-export default function (option) {
+export default function visualMapPreprocessor(option) {
     let visualMap = option && option.visualMap;
 
     if (!zrUtil.isArray(visualMap)) {
diff --git a/src/coord/axisModelCreator.ts b/src/coord/axisModelCreator.ts
index 10e5978..8eff111 100644
--- a/src/coord/axisModelCreator.ts
+++ b/src/coord/axisModelCreator.ts
@@ -42,10 +42,10 @@ export interface AxisModelExtendedInCreator<Opt extends AxisBaseOption> {
  * Generate sub axis model class
  * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ...
  */
-export default function <
+export default function axisModelCreator<
     AxisOptionT extends AxisBaseOption,
     AxisModelCtor extends Constructor<ComponentModel<AxisOptionT>>
-> (
+>(
     axisName: DimensionName,
     BaseAxisModelClass: AxisModelCtor,
     extraDefaultOption?: AxisOptionT
diff --git a/src/coord/calendar/prepareCustom.ts b/src/coord/calendar/prepareCustom.ts
index 747271c..abd1436 100644
--- a/src/coord/calendar/prepareCustom.ts
+++ b/src/coord/calendar/prepareCustom.ts
@@ -20,7 +20,7 @@
 import Calendar from './Calendar';
 import { OptionDataValueDate } from '../../util/types';
 
-export default function (coordSys: Calendar) {
+export default function calendarPrepareCustom(coordSys: Calendar) {
     const rect = coordSys.getRect();
     const rangeInfo = coordSys.getRangeInfo();
 
diff --git a/src/coord/cartesian/prepareCustom.ts b/src/coord/cartesian/prepareCustom.ts
index 29cbf93..1244be9 100644
--- a/src/coord/cartesian/prepareCustom.ts
+++ b/src/coord/cartesian/prepareCustom.ts
@@ -33,7 +33,7 @@ function dataToCoordSize(this: Cartesian2D, dataSize: number[], dataItem: number
     }, this);
 }
 
-export default function (coordSys: Cartesian2D) {
+export default function cartesianPrepareCustom(coordSys: Cartesian2D) {
     const rect = coordSys.master.getRect();
     return {
         coordSys: {
diff --git a/src/coord/geo/fix/diaoyuIsland.ts b/src/coord/geo/fix/diaoyuIsland.ts
index e1d8f72..06042cc 100644
--- a/src/coord/geo/fix/diaoyuIsland.ts
+++ b/src/coord/geo/fix/diaoyuIsland.ts
@@ -36,7 +36,7 @@ const points = [
     ]
 ];
 
-export default function (mapType: string, region: Region) {
+export default function fixDiaoyuIsland(mapType: string, region: Region) {
     if (mapType === 'china' && region.name === '台湾') {
         region.geometries.push({
             type: 'polygon',
diff --git a/src/coord/geo/fix/geoCoord.ts b/src/coord/geo/fix/geoCoord.ts
index 5005c7e..bfef6e9 100644
--- a/src/coord/geo/fix/geoCoord.ts
+++ b/src/coord/geo/fix/geoCoord.ts
@@ -26,7 +26,7 @@ const geoCoordMap = {
     'United States of America': [-99, 38]
 } as Dictionary<number[]>;
 
-export default function (mapType: string, region: Region) {
+export default function fixGeoCoords(mapType: string, region: Region) {
     if (mapType === 'world') {
         const geoCoord = geoCoordMap[region.name];
         if (geoCoord) {
diff --git a/src/coord/geo/fix/nanhai.ts b/src/coord/geo/fix/nanhai.ts
index 39ac1e9..2bbc3d0 100644
--- a/src/coord/geo/fix/nanhai.ts
+++ b/src/coord/geo/fix/nanhai.ts
@@ -51,7 +51,7 @@ for (let i = 0; i < points.length; i++) {
     }
 }
 
-export default function (mapType: string, regions: Region[]) {
+export default function fixNanhai(mapType: string, regions: Region[]) {
     if (mapType === 'china') {
         regions.push(new Region(
             '南海诸岛',
diff --git a/src/coord/geo/fix/textCoord.ts b/src/coord/geo/fix/textCoord.ts
index 44c9bae..477d644 100644
--- a/src/coord/geo/fix/textCoord.ts
+++ b/src/coord/geo/fix/textCoord.ts
@@ -31,7 +31,7 @@ const coordsOffsetMap = {
     '天津': [5, 5]
 } as Dictionary<number[]>;
 
-export default function (mapType: string, region: Region) {
+export default function fixTextCoords(mapType: string, region: Region) {
     if (mapType === 'china') {
         const coordFix = coordsOffsetMap[region.name];
         if (coordFix) {
diff --git a/src/coord/geo/parseGeoJson.ts b/src/coord/geo/parseGeoJson.ts
index a223659..e37260e 100644
--- a/src/coord/geo/parseGeoJson.ts
+++ b/src/coord/geo/parseGeoJson.ts
@@ -100,7 +100,7 @@ function decodePolygon(
     return result;
 }
 
-export default function (geoJson: GeoJSON | GeoJSONCompressed, nameProperty: string): Region[] {
+export default function parseGeoJSON(geoJson: GeoJSON | GeoJSONCompressed, nameProperty: string): Region[] {
 
     geoJson = decode(geoJson);
 
diff --git a/src/coord/geo/prepareCustom.ts b/src/coord/geo/prepareCustom.ts
index 2f431c1..88ebd16 100644
--- a/src/coord/geo/prepareCustom.ts
+++ b/src/coord/geo/prepareCustom.ts
@@ -34,7 +34,7 @@ function dataToCoordSize(this: Geo, dataSize: number[], dataItem: number[]): num
     }, this);
 }
 
-export default function (coordSys: Geo) {
+export default function geoPrepareCustom(coordSys: Geo) {
     const rect = coordSys.getBoundingRect();
     return {
         coordSys: {
diff --git a/src/coord/parallel/parallelPreprocessor.ts b/src/coord/parallel/parallelPreprocessor.ts
index fda2a2f..ba42630 100644
--- a/src/coord/parallel/parallelPreprocessor.ts
+++ b/src/coord/parallel/parallelPreprocessor.ts
@@ -24,7 +24,7 @@ import { ECUnitOption, SeriesOption } from '../../util/types';
 import { ParallelAxisOption } from './AxisModel';
 import { ParallelSeriesOption } from '../../chart/parallel/ParallelSeries';
 
-export default function (option: ECUnitOption): void {
+export default function parallelPreprocessor(option: ECUnitOption): void {
     createParallelIfNeeded(option);
     mergeAxisOptionFromParallel(option);
 }
diff --git a/src/coord/polar/prepareCustom.ts b/src/coord/polar/prepareCustom.ts
index 1907f7f..ebbd997 100644
--- a/src/coord/polar/prepareCustom.ts
+++ b/src/coord/polar/prepareCustom.ts
@@ -45,7 +45,7 @@ function dataToCoordSize(this: Polar, dataSize: number[], dataItem: number[]) {
     }, this);
 }
 
-export default function (coordSys: Polar) {
+export default function polarPrepareCustom(coordSys: Polar) {
     const radiusAxis = coordSys.getRadiusAxis();
     const angleAxis = coordSys.getAngleAxis();
     const radius = radiusAxis.getExtent();
diff --git a/src/coord/single/prepareCustom.ts b/src/coord/single/prepareCustom.ts
index 0144228..45b0053 100644
--- a/src/coord/single/prepareCustom.ts
+++ b/src/coord/single/prepareCustom.ts
@@ -30,7 +30,7 @@ function dataToCoordSize(this: Single, dataSize: number | number[], dataItem: nu
         : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
 }
 
-export default function (coordSys: Single) {
+export default function singlePrepareCustom(coordSys: Single) {
     const rect = coordSys.getRect();
 
     return {
diff --git a/src/data/helper/createDimensions.ts b/src/data/helper/createDimensions.ts
index 2161770..102104c 100644
--- a/src/data/helper/createDimensions.ts
+++ b/src/data/helper/createDimensions.ts
@@ -58,7 +58,7 @@ export type CreateDimensionsParams = {
  * @param opt.encodeDefine By default `source.encodeDefine` Overwrite source define.
  * @param opt.encodeDefaulter Make default encode if user not specified.
  */
-export default function (
+export default function createDimensions(
     // TODO: TYPE completeDimensions type
     source: Source | List | OptionSourceData,
     opt?: CreateDimensionsParams
diff --git a/src/echarts.ts b/src/echarts.ts
index d120bbb..b36df31 100644
--- a/src/echarts.ts
+++ b/src/echarts.ts
@@ -595,11 +595,12 @@ class ECharts extends Eventful {
     /**
      * @DEPRECATED
      */
-    setTheme(): void {
+    private setTheme(): void {
         console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');
     }
 
-    getModel(): GlobalModel {
+    // We don't want developers to use getModel directly.
+    private getModel(): GlobalModel {
         return this._model;
     }
 
@@ -933,14 +934,14 @@ class ECharts extends Eventful {
     /**
      * Get view of corresponding component model
      */
-    getViewOfComponentModel(componentModel: ComponentModel): ComponentView {
+    private getViewOfComponentModel(componentModel: ComponentModel): ComponentView {
         return this._componentsMap[componentModel.__viewId];
     }
 
     /**
      * Get view of corresponding series model
      */
-    getViewOfSeriesModel(seriesModel: SeriesModel): ChartView {
+    private getViewOfSeriesModel(seriesModel: SeriesModel): ChartView {
         return this._chartsMap[seriesModel.__viewId];
     }
 
@@ -1051,7 +1052,7 @@ class ECharts extends Eventful {
             }
         );
 
-        handleLegacySelectEvents(this._messageCenter, this);
+        handleLegacySelectEvents(this._messageCenter, this, this._model);
     }
 
     isDisposed(): boolean {
@@ -1442,13 +1443,13 @@ class ECharts extends Eventful {
                 if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {
                     if (isHighDownPayload(payload) && !payload.notBlur) {
                         if (model instanceof SeriesModel) {
-                            toggleSeriesBlurStateFromPayload(model, payload, ecIns);
+                            toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);
                         }
                     }
                     else if (isSelectChangePayload(payload)) {
                         // TODO geo
                         if (model instanceof SeriesModel) {
-                            toggleSelectionFromPayload(model, payload, ecIns);
+                            toggleSelectionFromPayload(model, payload, ecIns._api);
                             updateSeriesElementSelection(model);
                             markStatusToUpdate(ecIns);
                         }
@@ -1868,7 +1869,7 @@ class ECharts extends Eventful {
                     // Try blur all in the related series. Then emphasis the hoverred.
                     // TODO. progressive mode.
                     toggleSeriesBlurState(
-                        ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true
+                        ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true
                     );
                     enterEmphasisWhenMouseOver(dispatcher, e);
 
@@ -1880,7 +1881,7 @@ class ECharts extends Eventful {
                 if (dispatcher) {
                     const ecData = getECData(dispatcher);
                     toggleSeriesBlurState(
-                        ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false
+                        ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false
                     );
 
                     leaveEmphasisWhenMouseOut(dispatcher, e);
@@ -2277,6 +2278,15 @@ class ECharts extends Eventful {
                     leaveSelect(el);
                     markStatusToUpdate(ecIns);
                 }
+                getModel(): GlobalModel {
+                    return ecIns.getModel();
+                }
+                getViewOfComponentModel(componentModel: ComponentModel): ComponentView {
+                    return ecIns.getViewOfComponentModel(componentModel);
+                }
+                getViewOfSeriesModel(seriesModel: SeriesModel): ChartView {
+                    return ecIns.getViewOfSeriesModel(seriesModel);
+                }
             })(ecIns);
         };
 
diff --git a/src/layout/barGrid.ts b/src/layout/barGrid.ts
index ea3efc6..06c0456 100644
--- a/src/layout/barGrid.ts
+++ b/src/layout/barGrid.ts
@@ -74,8 +74,7 @@ type BarWidthAndOffset = Dictionary<Dictionary<{
     width: number
 }>>;
 
-interface LayoutOption {
-    axis: Axis2D
+export interface BarGridLayoutOptionForCustomSeries {
     count: number
 
     barWidth?: number
@@ -84,10 +83,15 @@ interface LayoutOption {
     barGap?: number
     barCategoryGap?: number
 }
+interface LayoutOption extends BarGridLayoutOptionForCustomSeries {
+    axis: Axis2D
+}
+
+export type BarGridLayoutResult = BarWidthAndOffset[string][string][];
 /**
  * @return {Object} {width, offset, offsetCenter} If axis.type is not 'category', return undefined.
  */
-export function getLayoutOnAxis(opt: LayoutOption) {
+export function getLayoutOnAxis(opt: LayoutOption): BarGridLayoutResult {
     const params: LayoutSeriesInfo[] = [];
     const baseAxis = opt.axis;
     const axisKey = 'axis0';
diff --git a/src/layout/points.ts b/src/layout/points.ts
index 853330d..8946852 100644
--- a/src/layout/points.ts
+++ b/src/layout/points.ts
@@ -27,7 +27,7 @@ import { StageHandler, ParsedValueNumeric } from '../util/types';
 import { createFloat32Array } from '../util/vendor';
 
 
-export default function (seriesType: string, forceStoreInTypedArray?: boolean): StageHandler {
+export default function pointsLayout(seriesType: string, forceStoreInTypedArray?: boolean): StageHandler {
     return {
         seriesType: seriesType,
 
diff --git a/src/legacy/dataSelectAction.ts b/src/legacy/dataSelectAction.ts
index cae9f63..109496a 100644
--- a/src/legacy/dataSelectAction.ts
+++ b/src/legacy/dataSelectAction.ts
@@ -64,6 +64,7 @@ function handleSeriesLegacySelectEvents(
     type: 'map' | 'pie',
     eventPostfix: 'selectchanged' | 'selected' | 'unselected',
     ecIns: EChartsType,
+    ecModel: GlobalModel,
     payload: SelectChangedPayload
 ) {
     const legacyEventName = type + eventPostfix;
@@ -71,7 +72,6 @@ function handleSeriesLegacySelectEvents(
         if (__DEV__) {
             deprecateLog(`event ${legacyEventName} is deprecated.`);
         }
-        const ecModel = ecIns.getModel();
         ecModel.eachComponent({
             mainType: 'series', subType: 'pie'
         }, function (seriesModel: SeriesModel) {
@@ -93,19 +93,19 @@ function handleSeriesLegacySelectEvents(
     }
 }
 
-export function handleLegacySelectEvents(messageCenter: Eventful, ecIns: EChartsType) {
+export function handleLegacySelectEvents(messageCenter: Eventful, ecIns: EChartsType, ecModel: GlobalModel) {
     messageCenter.on('selectchanged', function (params: SelectChangedPayload) {
         if (params.isFromClick) {
-            handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);
-            handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);
+            handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);
+            handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);
         }
         else if (params.fromAction === 'select') {
-            handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);
-            handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);
+            handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);
+            handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);
         }
         else if (params.fromAction === 'unselect') {
-            handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);
-            handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);
+            handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);
+            handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);
         }
     });
 }
diff --git a/src/loading/default.ts b/src/loading/default.ts
index e1944ea..0a122af 100644
--- a/src/loading/default.ts
+++ b/src/loading/default.ts
@@ -33,7 +33,7 @@ const PI = Math.PI;
  * @param {string} [opts.textColor]
  * @return {module:zrender/Element}
  */
-export default function (
+export default function defaultLoading(
     api: ExtensionAPI,
     opts?: {
         text?: string;
diff --git a/src/model/mixin/makeStyleMapper.ts b/src/model/mixin/makeStyleMapper.ts
index c123599..05bd2df 100644
--- a/src/model/mixin/makeStyleMapper.ts
+++ b/src/model/mixin/makeStyleMapper.ts
@@ -24,7 +24,7 @@ import {Dictionary} from 'zrender/src/core/types';
 import {PathStyleProps} from 'zrender/src/graphic/Path';
 import Model from '../Model';
 
-export default function (properties: readonly string[][], ignoreParent?: boolean) {
+export default function makeStyleMapper(properties: readonly string[][], ignoreParent?: boolean) {
     // Normalize
     for (let i = 0; i < properties.length; i++) {
         if (!properties[i][1]) {
diff --git a/src/preprocessor/backwardCompat.ts b/src/preprocessor/backwardCompat.ts
index 167dafa..faa874f 100644
--- a/src/preprocessor/backwardCompat.ts
+++ b/src/preprocessor/backwardCompat.ts
@@ -141,7 +141,7 @@ function traverseTree(data: any[], cb: Function) {
     }
 }
 
-export default function (option: ECUnitOption, isTheme?: boolean) {
+export default function globalBackwardCompat(option: ECUnitOption, isTheme?: boolean) {
     compatStyle(option, isTheme);
 
     // Make sure series array for model initialization.
diff --git a/src/preprocessor/helper/compatStyle.ts b/src/preprocessor/helper/compatStyle.ts
index 87b30c2..215e0fd 100644
--- a/src/preprocessor/helper/compatStyle.ts
+++ b/src/preprocessor/helper/compatStyle.ts
@@ -256,7 +256,7 @@ function toObj(o: any) {
     return (zrUtil.isArray(o) ? o[0] : o) || {};
 }
 
-export default function (option: any, isTheme?: boolean) {
+export default function globalCompatStyle(option: any, isTheme?: boolean) {
     each(toArr(option.series), function (seriesOpt) {
         isObject(seriesOpt) && processSeries(seriesOpt);
     });
diff --git a/src/processor/dataFilter.ts b/src/processor/dataFilter.ts
index ce08b41..08393eb 100644
--- a/src/processor/dataFilter.ts
+++ b/src/processor/dataFilter.ts
@@ -19,7 +19,7 @@ import { StageHandler } from '../util/types';
 * under the License.
 */
 
-export default function (seriesType: string): StageHandler {
+export default function dataFilter(seriesType: string): StageHandler {
     return {
         seriesType: seriesType,
         reset: function (seriesModel, ecModel) {
diff --git a/src/processor/dataSample.ts b/src/processor/dataSample.ts
index b292504..d492f84 100644
--- a/src/processor/dataSample.ts
+++ b/src/processor/dataSample.ts
@@ -71,7 +71,7 @@ const indexSampler = function (frame: ArrayLike<number>) {
     return Math.round(frame.length / 2);
 };
 
-export default function (seriesType: string): StageHandler {
+export default function dataSample(seriesType: string): StageHandler {
     return {
 
         seriesType: seriesType,
diff --git a/src/processor/dataStack.ts b/src/processor/dataStack.ts
index b1516bc..be46570 100644
--- a/src/processor/dataStack.ts
+++ b/src/processor/dataStack.ts
@@ -37,7 +37,7 @@ interface StackInfo {
 //     See <module:echarts/stream/Scheduler#performDataProcessorTasks>
 // (2) Only register once when import repeatly.
 //     Should be executed after series filtered and before stack calculation.
-export default function (ecModel: GlobalModel) {
+export default function dataStack(ecModel: GlobalModel) {
     const stackInfoMap = createHashMap<StackInfo[]>();
     ecModel.eachSeries(function (seriesModel: SeriesModel<SeriesOption & SeriesStackOptionMixin>) {
         const stack = seriesModel.get('stack');
diff --git a/src/stream/Scheduler.ts b/src/stream/Scheduler.ts
index 9dbc1f7..ded74c4 100644
--- a/src/stream/Scheduler.ts
+++ b/src/stream/Scheduler.ts
@@ -257,7 +257,7 @@ class Scheduler {
 
     prepareStageTasks(): void {
         const stageTaskMap = this._stageTaskMap;
-        const ecModel = this.ecInstance.getModel();
+        const ecModel = this.api.getModel();
         const api = this.api;
 
         each(this._allHandlers, function (handler) {
diff --git a/src/util/states.ts b/src/util/states.ts
index e34d6df..5af7ee6 100644
--- a/src/util/states.ts
+++ b/src/util/states.ts
@@ -20,13 +20,13 @@ import {
 import { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/src/core/util';
 import { getECData } from './innerStore';
 import * as colorTool from 'zrender/src/tool/color';
-import { EChartsType } from '../echarts';
 import List from '../data/List';
 import SeriesModel from '../model/Series';
 import { CoordinateSystemMaster, CoordinateSystem } from '../coord/CoordinateSystem';
 import { queryDataIndex, makeInner } from './model';
 import Path, { PathStyleProps } from 'zrender/src/graphic/Path';
 import GlobalModel from '../model/Global';
+import ExtensionAPI from '../ExtensionAPI';
 
 // Reserve 0 as default.
 let _highlightNextDigit = 1;
@@ -368,12 +368,12 @@ function shouldSilent(el: Element, e: ElementEvent) {
     return (el as ExtendedElement).__highDownSilentOnTouch && e.zrByTouch;
 }
 
-function allLeaveBlur(ecIns: EChartsType) {
-    const model = ecIns.getModel();
+function allLeaveBlur(api: ExtensionAPI) {
+    const model = api.getModel();
     model.eachComponent(function (componentType, componentModel) {
         const view = componentType === 'series'
-            ? ecIns.getViewOfSeriesModel(componentModel as SeriesModel)
-            : ecIns.getViewOfComponentModel(componentModel);
+            ? api.getViewOfSeriesModel(componentModel as SeriesModel)
+            : api.getViewOfComponentModel(componentModel);
         // Leave blur anyway
         view.group.traverse(function (child) {
             singleLeaveBlur(child);
@@ -385,10 +385,10 @@ export function toggleSeriesBlurState(
     targetSeriesIndex: number,
     focus: InnerFocus,
     blurScope: BlurScope,
-    ecIns: EChartsType,
+    api: ExtensionAPI,
     isBlur: boolean
 ) {
-    const ecModel = ecIns.getModel();
+    const ecModel = api.getModel();
     blurScope = blurScope || 'coordinateSystem';
 
     function leaveBlurOfIndices(data: List, dataIndices: ArrayLike<number>) {
@@ -399,7 +399,7 @@ export function toggleSeriesBlurState(
     }
 
     if (!isBlur) {
-        allLeaveBlur(ecIns);
+        allLeaveBlur(api);
         return;
     }
 
@@ -438,7 +438,7 @@ export function toggleSeriesBlurState(
             || focus === 'series' && sameSeries
             // TODO blurScope: coordinate system
         )) {
-            const view = ecIns.getViewOfSeriesModel(seriesModel);
+            const view = api.getViewOfSeriesModel(seriesModel);
             view.group.traverse(function (child) {
                 singleEnterBlur(child);
             });
@@ -461,7 +461,7 @@ export function toggleSeriesBlurState(
         if (componentType === 'series') {
             return;
         }
-        const view = ecIns.getViewOfComponentModel(componentModel);
+        const view = api.getViewOfComponentModel(componentModel);
         if (view && view.blurSeries) {
             view.blurSeries(blurredSeries, ecModel);
         }
@@ -471,7 +471,7 @@ export function toggleSeriesBlurState(
 export function toggleSeriesBlurStateFromPayload(
     seriesModel: SeriesModel,
     payload: Payload,
-    ecIns: EChartsType
+    api: ExtensionAPI
 ) {
     if (!isHighDownPayload(payload)) {
         return;
@@ -495,7 +495,7 @@ export function toggleSeriesBlurStateFromPayload(
     if (el) {
         const ecData = getECData(el);
         toggleSeriesBlurState(
-            seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight
+            seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight
         );
     }
     else {
@@ -504,7 +504,7 @@ export function toggleSeriesBlurStateFromPayload(
         const focus = seriesModel.get(['emphasis', 'focus']);
         const blurScope = seriesModel.get(['emphasis', 'blurScope']);
         if (focus != null) {
-            toggleSeriesBlurState(seriesIndex, focus, blurScope, ecIns, isHighlight);
+            toggleSeriesBlurState(seriesIndex, focus, blurScope, api, isHighlight);
         }
     }
 }
@@ -512,7 +512,7 @@ export function toggleSeriesBlurStateFromPayload(
 export function toggleSelectionFromPayload(
     seriesModel: SeriesModel,
     payload: Payload,
-    ecIns: EChartsType
+    api: ExtensionAPI
 ) {
     if (!(isSelectChangePayload(payload))) {
         return;
diff --git a/src/visual/aria.ts b/src/visual/aria.ts
index 2a14d2f..392b59a 100644
--- a/src/visual/aria.ts
+++ b/src/visual/aria.ts
@@ -45,7 +45,7 @@ const decalPaletteScope: Dictionary<DecalObject> = {};
 
 type SeriesTypes = keyof LocaleOption['series']['typeNames'];
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function ariaVisual(ecModel: GlobalModel, api: ExtensionAPI) {
     const ariaModel: Model<AriaOption> = ecModel.getModel('aria');
 
     // See "area enabled" detection code in `GlobalModel.ts`.
diff --git a/src/visual/decal.ts b/src/visual/decal.ts
index 65f74e4..b5b2835 100644
--- a/src/visual/decal.ts
+++ b/src/visual/decal.ts
@@ -21,7 +21,7 @@ import ExtensionAPI from '../ExtensionAPI';
 import GlobalModel from '../model/Global';
 import {createOrUpdatePatternFromDecal} from '../util/decal';
 
-export default function (ecModel: GlobalModel, api: ExtensionAPI) {
+export default function decalVisual(ecModel: GlobalModel, api: ExtensionAPI) {
     ecModel.eachRawSeries(seriesModel => {
         if (ecModel.isSeriesFiltered(seriesModel)) {
             return;


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