diff --git a/src/component/axisPointer/globalListener.ts b/src/component/axisPointer/globalListener.ts index ca665d896b7326a9e36041e67670ecb436d89fb9..e0b03a284e7d99db69a0a59e1077b7758ec536b3 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 d0a86b6ad895d5258680b0515b34cc2518202f15..d8d1948b497e50bf2bb86761f560a88cdfa89409 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 7b317edc077747594e01bc8e72a1958822e543d0..31a5294f3d51b5a1844d53254a8ad46330a94d54 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 { pointerChecker: (e: ZRElementEvent, x: number, y: number) => boolean diff --git a/src/echarts.ts b/src/echarts.ts index fb5ba3797c19113e17f01e9e4c8557ffc5068e9f..3eefe164411c0bc62a5a67d2f0f86656b44f9afa 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');