提交 a7f2c16c 编写于 作者: P pissang

fix(state): not blur others when highlighting with axisPointer

上级 a7c0d8c2
......@@ -22,7 +22,7 @@ import * as modelHelper from './modelHelper';
import findPointFromSeries from './findPointFromSeries';
import GlobalModel from '../../model/Global';
import ExtensionAPI from '../../ExtensionAPI';
import { Dictionary, Payload, CommonAxisPointerOption } from '../../util/types';
import { Dictionary, Payload, CommonAxisPointerOption, HighlightPayload, DownplayPayload } from '../../util/types';
import AxisPointerModel, { AxisPointerOption } from './AxisPointerModel';
import { each, curry, bind, extend, Curry1 } from 'zrender/src/core/util';
import { ZRenderType } from 'zrender/src/zrender';
......@@ -479,11 +479,19 @@ function dispatchHighDownActually(
});
toDownplay.length && api.dispatchAction({
type: 'downplay', escapeConnect: true, batch: toDownplay
});
type: 'downplay',
escapeConnect: true,
// Not blur others when highlight in axisPointer.
notBlur: true,
batch: toDownplay
} as DownplayPayload);
toHighlight.length && api.dispatchAction({
type: 'highlight', escapeConnect: true, batch: toHighlight
});
type: 'highlight',
escapeConnect: true,
// Not blur others when highlight in axisPointer.
notBlur: true,
batch: toHighlight
} as HighlightPayload);
}
function findInputAxisInfo(
......
......@@ -1360,7 +1360,7 @@ class ECharts extends Eventful {
// If dispatchAction before setOption, do nothing.
ecModel && ecModel.eachComponent(condition, function (model) {
if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {
if (isHighDownPayload(payload)) {
if (isHighDownPayload(payload) && !payload.notBlur) {
if (model instanceof SeriesModel) {
toggleSeriesBlurStateFromPayload(model, payload, ecIns);
}
......
......@@ -5,7 +5,7 @@ import { PatternObject } from 'zrender/src/graphic/Pattern';
import { GradientObject } from 'zrender/src/graphic/Gradient';
import Element, { ElementEvent } from 'zrender/src/Element';
import Model from '../model/Model';
import { DisplayState, ECElement, ColorString, BlurScope, InnerFocus, Payload, ZRColor } from './types';
import { DisplayState, ECElement, ColorString, BlurScope, InnerFocus, Payload, ZRColor, HighlightPayload, DownplayPayload } from './types';
import { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/src/core/util';
import { getECData } from './graphic';
import * as colorTool from 'zrender/src/tool/color';
......@@ -669,7 +669,7 @@ export function isSelectChangePayload(payload: Payload) {
|| payloadType === TOGGLE_SELECT_ACTION_TYPE;
}
export function isHighDownPayload(payload: Payload) {
export function isHighDownPayload(payload: Payload): payload is HighlightPayload | DownplayPayload {
const payloadType = payload.type;
return payloadType === HIGHLIGHT_ACTION_TYPE
|| payloadType === DOWNPLAY_ACTION_TYPE;
......
......@@ -146,6 +146,16 @@ export interface Payload extends PayloadItem {
batch?: PayloadItem[];
}
export interface HighlightPayload extends Payload {
type: 'highlight';
notBlur?: boolean
}
export interface DownplayPayload extends Payload {
type: 'downplay';
notBlur?: boolean
}
// Payload includes override anmation info
export interface PayloadAnimationPart {
duration?: number
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册