Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion src/chart/line/LineSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,18 @@ export interface LineSeriesOption extends SeriesOption<LineStateOption<CallbackD

data?: (LineDataValue | LineDataItemOption)[]

/**
* @deprecated
* This option has been deprecated since v6.0.1.
* Use `triggerEvent: 'line'` for only line event or `triggerEvent: true` for both line and area event.
*/
triggerLineEvent?: boolean

/**
* Whether to trigger event when hovering on the line or the area
* @since v6.0.1
*/
triggerEvent?: boolean | 'line' | 'area'
}

class LineSeriesModel extends SeriesModel<LineSeriesOption> {
Expand Down Expand Up @@ -214,7 +225,12 @@ class LineSeriesModel extends SeriesModel<LineSeriesOption> {
divideShape: 'clone'
},

triggerLineEvent: false
/**
* @deprecated
*/
triggerLineEvent: false,

triggerEvent: false
};

getLegendIcon(opt: LegendIconParams): ECSymbol | Group {
Expand Down
28 changes: 19 additions & 9 deletions src/chart/line/LineView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ import { setStatesStylesFromModel, setStatesFlag, toggleHoverEmphasis, SPECIAL_S
import Model from '../../model/Model';
import { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';
import { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';

import { getECData } from '../../util/innerStore';
import { createFloat32Array } from '../../util/vendor';
import { convertToColorString } from '../../util/format';
import { warnDeprecated } from '../../util/styleCompat';
import { lerp } from 'zrender/src/tool/color';
import Element from 'zrender/src/Element';

Expand Down Expand Up @@ -621,7 +621,7 @@ class LineView extends ChartView {
_endLabel: graphic.Text;

_polyline: ECPolyline;
_polygon: ECPolygon;
_polygon?: ECPolygon;

_stackedOnPoints: ArrayLike<number>;
_points: ArrayLike<number>;
Expand Down Expand Up @@ -920,21 +920,31 @@ class LineView extends ChartView {
this._step = step;
this._valueOrigin = valueOrigin;

if (seriesModel.get('triggerLineEvent')) {
this.packEventData(seriesModel, polyline);
polygon && this.packEventData(seriesModel, polygon);
const triggerEvent = seriesModel.get('triggerEvent');
const triggerLineEvent = seriesModel.get('triggerLineEvent');

if (__DEV__) {
triggerLineEvent && warnDeprecated('triggerLineEvent', 'Use the `triggerEvent` option instead.');
}

const shouldTriggerLineEvent = triggerLineEvent === true || triggerEvent === true || triggerEvent === 'line';
const shouldTriggerAreaEvent = triggerLineEvent === true || triggerEvent === true || triggerEvent === 'area';

this.packEventData(seriesModel, polyline, shouldTriggerLineEvent);
polygon && this.packEventData(seriesModel, polygon, shouldTriggerAreaEvent);
}

private packEventData(seriesModel: LineSeriesModel, el: Element) {
getECData(el).eventData = {
private packEventData(seriesModel: LineSeriesModel, el: Element, enable: boolean) {
getECData(el).eventData = enable ? {
componentType: 'series',
componentSubType: 'line',
componentIndex: seriesModel.componentIndex,
seriesIndex: seriesModel.seriesIndex,
seriesName: seriesModel.name,
seriesType: 'line'
};
seriesType: 'line',
// for determining this event is triggered by area or line
selfType: el === this._polygon ? 'area' : 'line'
} : null;
}

highlight(
Expand Down
146 changes: 123 additions & 23 deletions test/polyline-gon-event.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/runTest/actions/__meta__.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/runTest/actions/polyline-gon-event.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.