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:40:01 UTC

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

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