You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2020/03/17 00:39:59 UTC

[incubator-echarts] branch typescript updated (cd55149 -> a869e33)

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

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


    from cd55149  ts: add types for treemap series
     new 765ded9  fix: tweak compile fail.
     new cb8cade  ts: enable Event check for Eventful
     new b996076  ts: typo
     new a869e33  ts: add and unify defaultOption inheritance.

The 4 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:
 src/chart/bar/BarSeries.ts                    |  5 +++--
 src/chart/bar/PictorialBarSeries.ts           |  5 +++--
 src/chart/radar/RadarView.ts                  |  5 +++--
 src/component/axisPointer/globalListener.ts   |  2 +-
 src/component/dataZoom/InsideZoomModel.ts     |  5 +++--
 src/component/dataZoom/SliderZoomModel.ts     |  5 +++--
 src/component/dataZoom/roams.ts               |  7 +++----
 src/component/helper/RoamController.ts        |  4 ++--
 src/component/legend/ScrollableLegendModel.ts |  5 ++---
 src/component/visualMap/ContinuousModel.ts    |  5 ++---
 src/component/visualMap/PiecewiseModel.ts     |  5 ++---
 src/coord/axisHelper.ts                       |  6 ++++--
 src/echarts.ts                                | 17 ++++++-----------
 src/model/Component.ts                        |  6 +++---
 src/util/component.ts                         |  5 +++++
 src/util/model.ts                             |  6 ------
 16 files changed, 45 insertions(+), 48 deletions(-)


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


[incubator-echarts] 04/04: ts: add and unify defaultOption inheritance.

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

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

commit a869e3385738e0e70586562dda25dad54e1f0103
Author: 100pah <su...@gmail.com>
AuthorDate: Tue Mar 17 08:38:52 2020 +0800

    ts: add and unify defaultOption inheritance.
---
 src/chart/bar/BarSeries.ts                    | 5 +++--
 src/chart/bar/PictorialBarSeries.ts           | 5 +++--
 src/component/dataZoom/InsideZoomModel.ts     | 5 +++--
 src/component/dataZoom/SliderZoomModel.ts     | 5 +++--
 src/component/legend/ScrollableLegendModel.ts | 5 ++---
 src/component/visualMap/ContinuousModel.ts    | 5 ++---
 src/component/visualMap/PiecewiseModel.ts     | 5 ++---
 src/model/Component.ts                        | 6 +++---
 src/util/component.ts                         | 5 +++++
 src/util/model.ts                             | 6 ------
 10 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/src/chart/bar/BarSeries.ts b/src/chart/bar/BarSeries.ts
index 7f756c9..50c8653 100644
--- a/src/chart/bar/BarSeries.ts
+++ b/src/chart/bar/BarSeries.ts
@@ -22,6 +22,7 @@ import SeriesModel from '../../model/Series';
 import { ItemStyleOption, OptionDataValue, LabelOption, SeriesStackOptionMixin } from '../../util/types';
 import type Cartesian2D from '../../coord/cartesian/Cartesian2D';
 import type Polar from '../../coord/polar/Polar';
+import { inheritDefaultOption } from '../../util/component';
 
 type BarDataValue = OptionDataValue | OptionDataValue[]
 
@@ -112,7 +113,7 @@ class BarSeriesModel extends BaseBarSeriesModel<BarSeriesOption> {
         return progressiveThreshold;
     }
 
-    static defaultOption: BarSeriesOption = {
+    static defaultOption: BarSeriesOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {
         // If clipped
         // Only available on cartesian2d
         clip: true,
@@ -132,7 +133,7 @@ class BarSeriesModel extends BaseBarSeriesModel<BarSeriesOption> {
             shadowOffsetY: 0,
             opacity: 1
         }
-    }
+    });
 
 }
 
diff --git a/src/chart/bar/PictorialBarSeries.ts b/src/chart/bar/PictorialBarSeries.ts
index b09dfb4..92eae94 100644
--- a/src/chart/bar/PictorialBarSeries.ts
+++ b/src/chart/bar/PictorialBarSeries.ts
@@ -27,6 +27,7 @@ import {
     SeriesStackOptionMixin
 } from '../../util/types';
 import type Cartesian2D from '../../coord/cartesian/Cartesian2D';
+import { inheritDefaultOption } from '../../util/component';
 
 interface PictorialBarSeriesSymbolOption {
     /**
@@ -123,7 +124,7 @@ class PictorialBarSeriesModel extends BaseBarSeriesModel<PictorialBarSeriesOptio
 
     coordinateSystem: Cartesian2D
 
-    static defaultOption: PictorialBarSeriesOption = {
+    static defaultOption: PictorialBarSeriesOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {
 
         symbol: 'circle',     // Customized bar shape
         symbolSize: null,     //
@@ -146,7 +147,7 @@ class PictorialBarSeriesModel extends BaseBarSeriesModel<PictorialBarSeriesOptio
         // Disable progressive
         progressive: 0,
         hoverAnimation: false // Open only when needed.
-    }
+    });
 
     getInitialData(option: PictorialBarSeriesOption) {
         // Disable stack.
diff --git a/src/component/dataZoom/InsideZoomModel.ts b/src/component/dataZoom/InsideZoomModel.ts
index 2a67dd4..c9880ac 100644
--- a/src/component/dataZoom/InsideZoomModel.ts
+++ b/src/component/dataZoom/InsideZoomModel.ts
@@ -19,6 +19,7 @@
 
 import DataZoomModel, {DataZoomOption} from './DataZoomModel';
 import ComponentModel from '../../model/Component';
+import { inheritDefaultOption } from '../../util/component';
 
 interface InsideDataZoomOption extends DataZoomOption {
 
@@ -51,14 +52,14 @@ class InsideZoomModel extends DataZoomModel<InsideDataZoomOption> {
     static readonly type = 'dataZoom.inside'
     type = InsideZoomModel.type
 
-    static defaultOption: InsideDataZoomOption = {
+    static defaultOption: InsideDataZoomOption = inheritDefaultOption(DataZoomModel.defaultOption, {
         disabled: false,
         zoomLock: false,
         zoomOnMouseWheel: true,
         moveOnMouseMove: true,
         moveOnMouseWheel: false,
         preventDefaultMouseMove: true
-    }
+    });
 }
 
 ComponentModel.registerClass(InsideZoomModel);
diff --git a/src/component/dataZoom/SliderZoomModel.ts b/src/component/dataZoom/SliderZoomModel.ts
index bed625b..67948a1 100644
--- a/src/component/dataZoom/SliderZoomModel.ts
+++ b/src/component/dataZoom/SliderZoomModel.ts
@@ -27,6 +27,7 @@ import {
     ItemStyleOption,
     LabelOption
 } from '../../util/types';
+import { inheritDefaultOption } from '../../util/component';
 
 interface SliderDataZoomOption extends DataZoomOption, BoxLayoutOptionMixin {
 
@@ -96,7 +97,7 @@ class SliderZoomModel extends DataZoomModel<SliderDataZoomOption> {
 
     static readonly layoutMode = 'box'
 
-    static defaultOption: SliderDataZoomOption = {
+    static defaultOption: SliderDataZoomOption = inheritDefaultOption(DataZoomModel.defaultOption, {
         show: true,
 
         // deault value can only be drived in view stage.
@@ -141,7 +142,7 @@ class SliderZoomModel extends DataZoomModel<SliderDataZoomOption> {
         textStyle: {
             color: '#333'
         }
-    }
+    });
 }
 
 ComponentModel.registerClass(SliderZoomModel);
diff --git a/src/component/legend/ScrollableLegendModel.ts b/src/component/legend/ScrollableLegendModel.ts
index 04bf2ed..e4c2d4e 100644
--- a/src/component/legend/ScrollableLegendModel.ts
+++ b/src/component/legend/ScrollableLegendModel.ts
@@ -27,6 +27,7 @@ import Model from '../../model/Model';
 import ComponentModel from '../../model/Component';
 import GlobalModel from '../../model/Global';
 import * as zrUtil from 'zrender/src/core/util';
+import { inheritDefaultOption } from '../../util/component';
 
 export interface ScrollableLegendOption extends LegendOption {
     scrollDataIndex?: number
@@ -86,9 +87,7 @@ class ScrollableLegendModel extends LegendModel<ScrollableLegendOption> {
         mergeAndNormalizeLayoutParams(this, this.option, option);
     }
 
-    static defaultOption: ScrollableLegendOption = zrUtil.merge(
-        zrUtil.clone(LegendModel.defaultOption),
-    {
+    static defaultOption: ScrollableLegendOption = inheritDefaultOption(LegendModel.defaultOption, {
         scrollDataIndex: 0,
         pageButtonItemGap: 5,
         pageButtonGap: null,
diff --git a/src/component/visualMap/ContinuousModel.ts b/src/component/visualMap/ContinuousModel.ts
index 85bdff1..17bc3d1 100644
--- a/src/component/visualMap/ContinuousModel.ts
+++ b/src/component/visualMap/ContinuousModel.ts
@@ -22,6 +22,7 @@ import VisualMapModel, { VisualMapOption, VisualMeta } from './VisualMapModel';
 import * as numberUtil from '../../util/number';
 import ComponentModel from '../../model/Component';
 import { VisualMappingOption } from '../../visual/VisualMapping';
+import { inheritDefaultOption } from '../../util/component';
 
 // Constant
 var DEFAULT_BAR_BOUND = [20, 140];
@@ -259,9 +260,7 @@ class ContinuousModel extends VisualMapModel<ContinousVisualMapOption> {
         };
     }
 
-    static defaultOption = zrUtil.merge(
-        zrUtil.clone(VisualMapModel.defaultOption),
-    {
+    static defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {
         align: 'auto',           // 'auto', 'left', 'right', 'top', 'bottom'
         calculable: false,
         hoverLink: true
diff --git a/src/component/visualMap/PiecewiseModel.ts b/src/component/visualMap/PiecewiseModel.ts
index a156c86..af8f21d 100644
--- a/src/component/visualMap/PiecewiseModel.ts
+++ b/src/component/visualMap/PiecewiseModel.ts
@@ -26,6 +26,7 @@ import {reformIntervals} from '../../util/number';
 import { VisualOptionPiecewise, BuiltinVisualProperty } from '../../util/types';
 import { Dictionary } from 'zrender/src/core/types';
 import ComponentModel from '../../model/Component';
+import { inheritDefaultOption } from '../../util/component';
 
 
 interface VisualPiece extends VisualOptionPiecewise {
@@ -408,9 +409,7 @@ class PiecewiseModel extends VisualMapModel<PiecewiseVisualMapOption> {
     }
 
 
-    static defaultOption = zrUtil.merge(
-        zrUtil.clone(VisualMapModel.defaultOption),
-    {
+    static defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {
         selected: null,
         minOpen: false,             // Whether include values that smaller than `min`.
         maxOpen: false,             // Whether include values that bigger than `max`.
diff --git a/src/model/Component.ts b/src/model/Component.ts
index ada5ac9..9c910f1 100644
--- a/src/model/Component.ts
+++ b/src/model/Component.ts
@@ -194,15 +194,15 @@ class ComponentModel<Opt extends ComponentOption = ComponentOption> extends Mode
      * Component.registerClass(XxxModel);
      * ```
      * ```ts
-     * import {mergeOption} from '../model/util';
+     * import {inheritDefaultOption} from '../util/component';
      * import {XxxModel, XxxOption} from './XxxModel';
      * export interface XxxSubOption extends XxxOption {
      *     bbb: number
      * }
      * class XxxSubModel extends XxxModel {
-     *     readonly defaultOption: XxxSubOption = mergeOption({
+     *     static defaultOption: XxxSubOption = inheritDefaultOption(XxxModel.defaultOption, {
      *         bbb: 456
-     *     }, XxxModel.prototype.defaultOption)
+     *     })
      *     fn() {
      *         var opt = this.getDefaultOption();
      *         // opt is {aaa: 123, bbb: 456}
diff --git a/src/util/component.ts b/src/util/component.ts
index c1b3855..8a54d4c 100644
--- a/src/util/component.ts
+++ b/src/util/component.ts
@@ -216,3 +216,8 @@ export function enableTopologicalTravel<T>(
     }
 
 }
+
+export function inheritDefaultOption<T, K>(superOption: T, subOption: K): K {
+    // See also `model/Component.ts#getDefaultOption`
+    return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);
+}
diff --git a/src/util/model.ts b/src/util/model.ts
index be9e3e9..e9f3f71 100644
--- a/src/util/model.ts
+++ b/src/util/model.ts
@@ -21,7 +21,6 @@ import {
     each,
     isObject,
     isArray,
-    merge,
     createHashMap,
     HashMap,
     map,
@@ -669,8 +668,3 @@ export function groupData<T, R extends string | number>(
         buckets: buckets
     };
 }
-
-export function mergeOption<T, K>(option1: T, option2: K): T & K {
-    // See also `model/Component.ts#getDefaultOption`
-    return merge(merge({}, option1, true), option2, true);
-}


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


[incubator-echarts] 03/04: ts: typo

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

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

commit b996076439d8c066d1c1644ddae67de23af5879c
Author: 100pah <su...@gmail.com>
AuthorDate: Tue Mar 17 08:37:46 2020 +0800

    ts: typo
---
 src/coord/axisHelper.ts | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/coord/axisHelper.ts b/src/coord/axisHelper.ts
index 1b2f341..88b5f3a 100644
--- a/src/coord/axisHelper.ts
+++ b/src/coord/axisHelper.ts
@@ -74,8 +74,10 @@ export function getScaleExtent(scale: Scale, model: AxisBaseModel) {
             boundaryGapInner = [0, 0];
         }
         else {
-            boundaryGapInner[0] = numberUtil.parsePercent(boundaryGapArr[0], 1);
-            boundaryGapInner[1] = numberUtil.parsePercent(boundaryGapArr[1], 1);
+            boundaryGapInner = [
+                numberUtil.parsePercent(boundaryGapArr[0], 1),
+                numberUtil.parsePercent(boundaryGapArr[1], 1)
+            ];
         }
         span = (originalExtent[1] - originalExtent[0])
             || Math.abs(originalExtent[0]);


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


[incubator-echarts] 02/04: ts: enable Event check for Eventful

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

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

commit cb8cadec39e49545f3583f6c61229b538ff19fb4
Author: 100pah <su...@gmail.com>
AuthorDate: Tue Mar 17 08:37:34 2020 +0800

    ts: enable Event check for Eventful
---
 src/component/axisPointer/globalListener.ts |  2 +-
 src/component/dataZoom/roams.ts             |  7 +++----
 src/component/helper/RoamController.ts      |  4 ++--
 src/echarts.ts                              | 17 ++++++-----------
 4 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/component/axisPointer/globalListener.ts b/src/component/axisPointer/globalListener.ts
index ca665d8..e0b03a2 100644
--- a/src/component/axisPointer/globalListener.ts
+++ b/src/component/axisPointer/globalListener.ts
@@ -96,7 +96,7 @@ function initGlobalListeners(zr: ZRenderType, api?: ExtensionAPI) {
         eventType: string,
         cb: (record: Record, e: ZRElementEvent, dispatchAction: DispatchActionMethod) => void
     ) {
-        zr.on(eventType, function (e) {
+        zr.on(eventType, function (e: ZRElementEvent) {
             var dis = makeDispatchAction(api);
 
             each(inner(zr).records, function (record) {
diff --git a/src/component/dataZoom/roams.ts b/src/component/dataZoom/roams.ts
index d0a86b6..d8d1948 100644
--- a/src/component/dataZoom/roams.ts
+++ b/src/component/dataZoom/roams.ts
@@ -27,7 +27,6 @@ import RoamController, { RoamType, RoamEventParams } from '../../component/helpe
 import * as throttleUtil from '../../util/throttle';
 import { makeInner } from '../../util/model';
 import { Dictionary, ZRElementEvent } from '../../util/types';
-import DataZoomModel from './DataZoomModel';
 import ExtensionAPI from '../../ExtensionAPI';
 import InsideZoomModel from './InsideZoomModel';
 import { each, indexOf, curry, Curry1 } from 'zrender/src/core/util';
@@ -44,7 +43,7 @@ interface DataZoomInfo {
         zoom: (controller: RoamController, e: RoamEventParams['zoom']) => [number, number]
         scrollMove: (controller: RoamController, e: RoamEventParams['scrollMove']) => [number, number]
     }
-    dataZoomModel: DataZoomModel
+    dataZoomModel: InsideZoomModel
 }
 interface Record {
     // key is dataZoomId
@@ -150,8 +149,8 @@ function createController(api: ExtensionAPI, newRecord: Record) {
                     return;
                 }
 
-                var method = (info.getRange || {})[eventName];
-                var range = method && method(newRecord.controller, event);
+                var method = (info.getRange || {} as DataZoomInfo['getRange'])[eventName];
+                var range = method && method(newRecord.controller, event as any);
 
                 !(info.dataZoomModel as InsideZoomModel).get('disabled', true) && range && batch.push({
                     dataZoomId: info.dataZoomId,
diff --git a/src/component/helper/RoamController.ts b/src/component/helper/RoamController.ts
index 7b317ed..31a5294 100644
--- a/src/component/helper/RoamController.ts
+++ b/src/component/helper/RoamController.ts
@@ -39,7 +39,7 @@ interface RoamOption {
     preventDefaultMouseMove?: boolean
 }
 
-type RoamEventType = 'zoom' | 'scrollMove' | 'pan'
+type RoamEventType = keyof RoamEventParams;
 
 type RoamBehavior = 'zoomOnMouseWheel' | 'moveOnMouseMove' | 'moveOnMouseWheel'
 
@@ -79,7 +79,7 @@ export interface RoamControllerHost {
     }
 }
 
-class RoamController extends Eventful {
+class RoamController extends Eventful<RoamEventParams> {
 
     pointerChecker: (e: ZRElementEvent, x: number, y: number) => boolean
 
diff --git a/src/echarts.ts b/src/echarts.ts
index fb5ba37..3eefe16 100644
--- a/src/echarts.ts
+++ b/src/echarts.ts
@@ -168,7 +168,7 @@ messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');
 // messageCenterProto.one = createRegisterEventWithLowercaseMessageCenter('one');
 
 
-class ECharts {
+class ECharts extends Eventful {
 
     /**
      * @readonly
@@ -210,7 +210,7 @@ class ECharts {
     // Can't dispatch action during rendering procedure
     private _pendingActions: Payload[] = [];
 
-    private _ecEventProcessor: ECEventProcessor;
+    protected _$eventProcessor: ECEventProcessor;
 
     private _disposed: boolean;
 
@@ -232,6 +232,8 @@ class ECharts {
             height?: number
         }
     ) {
+        super(new ECEventProcessor());
+
         opts = opts || {};
 
         // Get theme by name
@@ -276,9 +278,6 @@ class ECharts {
 
         this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs);
 
-        this._ecEventProcessor = new ECEventProcessor();
-        Eventful.call(this, this._ecEventProcessor);
-
         this._messageCenter = new MessageCenter();
 
         // Init mouse events
@@ -825,7 +824,7 @@ class ECharts {
                     params.event = e;
                     params.type = eveName;
 
-                    this._ecEventProcessor.eventInfo = {
+                    this._$eventProcessor.eventInfo = {
                         targetEl: el,
                         packedEvent: params,
                         model: model,
@@ -1741,7 +1740,7 @@ class ECharts {
             }
 
             each(eventActionMap, function (actionType, eventType) {
-                chart._messageCenter.on(eventType, function (event) {
+                chart._messageCenter.on(eventType, function (event: ECEvent) {
                     if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {
                         if (event && event.escapeConnect) {
                             return;
@@ -1815,10 +1814,6 @@ var createExtensionAPI: (ecIns: ECharts) => ExtensionAPI;
 var enableConnect: (chart: ECharts) => void;
 
 
-
-interface ECharts extends Eventful {}
-zrUtil.mixin(ECharts, Eventful);
-
 var echartsProto = ECharts.prototype;
 echartsProto.on = createRegisterEventWithLowercaseECharts('on');
 echartsProto.off = createRegisterEventWithLowercaseECharts('off');


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


[incubator-echarts] 01/04: fix: tweak compile fail.

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

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

commit 765ded9bbd9699d8e59c089726c963a43ede3b02
Author: 100pah <su...@gmail.com>
AuthorDate: Tue Mar 17 05:14:18 2020 +0800

    fix: tweak compile fail.
---
 src/chart/radar/RadarView.ts | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/chart/radar/RadarView.ts b/src/chart/radar/RadarView.ts
index d3233e3..63a8a29 100644
--- a/src/chart/radar/RadarView.ts
+++ b/src/chart/radar/RadarView.ts
@@ -26,6 +26,7 @@ import ExtensionAPI from '../../ExtensionAPI';
 import List from '../../data/List';
 import { ZRColor, DisplayState, ECElement } from '../../util/types';
 import GlobalModel from '../../model/Global';
+import { VectorArray } from 'zrender/src/core/vector';
 
 function normalizeSymbolSize(symbolSize: number | number[]) {
     if (!zrUtil.isArray(symbolSize)) {
@@ -74,8 +75,8 @@ class RadarView extends ChartView {
         }
 
         function updateSymbols(
-            oldPoints: number[][],
-            newPoints: number[][],
+            oldPoints: VectorArray[],
+            newPoints: VectorArray[],
             symbolGroup: graphic.Group,
             data: List<RadarSeriesModel>,
             idx: number,


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