import VisualMapModel, { VisualMapOption, VisualMeta } from './VisualMapModel.js';
|
import { VisualMappingOption } from '../../visual/VisualMapping.js';
|
import { VisualOptionPiecewise } from '../../util/types.js';
|
import { Dictionary } from 'zrender/lib/core/types.js';
|
interface VisualPiece extends VisualOptionPiecewise {
|
min?: number;
|
max?: number;
|
lt?: number;
|
gt?: number;
|
lte?: number;
|
gte?: number;
|
value?: number;
|
label?: string;
|
}
|
declare type VisualState = VisualMapModel['stateList'][number];
|
declare type InnerVisualPiece = VisualMappingOption['pieceList'][number];
|
/**
|
* Order Rule:
|
*
|
* option.categories / option.pieces / option.text / option.selected:
|
* If !option.inverse,
|
* Order when vertical: ['top', ..., 'bottom'].
|
* Order when horizontal: ['left', ..., 'right'].
|
* If option.inverse, the meaning of
|
* the order should be reversed.
|
*
|
* this._pieceList:
|
* The order is always [low, ..., high].
|
*
|
* Mapping from location to low-high:
|
* If !option.inverse
|
* When vertical, top is high.
|
* When horizontal, right is high.
|
* If option.inverse, reverse.
|
*/
|
export interface PiecewiseVisualMapOption extends VisualMapOption {
|
align?: 'auto' | 'left' | 'right';
|
minOpen?: boolean;
|
maxOpen?: boolean;
|
/**
|
* When put the controller vertically, it is the length of
|
* horizontal side of each item. Otherwise, vertical side.
|
* When put the controller vertically, it is the length of
|
* vertical side of each item. Otherwise, horizontal side.
|
*/
|
itemWidth?: number;
|
itemHeight?: number;
|
itemSymbol?: string;
|
pieces?: VisualPiece[];
|
/**
|
* category names, like: ['some1', 'some2', 'some3'].
|
* Attr min/max are ignored when categories set. See "Order Rule"
|
*/
|
categories?: string[];
|
/**
|
* If set to 5, auto split five pieces equally.
|
* If set to 0 and component type not set, component type will be
|
* determined as "continuous". (It is less reasonable but for ec2
|
* compatibility, see echarts/component/visualMap/typeDefaulter)
|
*/
|
splitNumber?: number;
|
/**
|
* Object. If not specified, means selected. When pieces and splitNumber: {'0': true, '5': true}
|
* When categories: {'cate1': false, 'cate3': true} When selected === false, means all unselected.
|
*/
|
selected?: Dictionary<boolean>;
|
selectedMode?: 'multiple' | 'single' | boolean;
|
/**
|
* By default, when text is used, label will hide (the logic
|
* is remained for compatibility reason)
|
*/
|
showLabel?: boolean;
|
itemGap?: number;
|
hoverLink?: boolean;
|
}
|
declare class PiecewiseModel extends VisualMapModel<PiecewiseVisualMapOption> {
|
static type: "visualMap.piecewise";
|
type: "visualMap.piecewise";
|
/**
|
* The order is always [low, ..., high].
|
* [{text: string, interval: Array.<number>}, ...]
|
*/
|
private _pieceList;
|
private _mode;
|
optionUpdated(newOption: PiecewiseVisualMapOption, isInit?: boolean): void;
|
/**
|
* @protected
|
* @override
|
*/
|
completeVisualOption(): void;
|
private _resetSelected;
|
/**
|
* @public
|
*/
|
getItemSymbol(): string;
|
/**
|
* @public
|
*/
|
getSelectedMapKey(piece: InnerVisualPiece): string;
|
/**
|
* @public
|
*/
|
getPieceList(): InnerVisualPiece[];
|
/**
|
* @return {string}
|
*/
|
private _determineMode;
|
/**
|
* @override
|
*/
|
setSelected(selected: this['option']['selected']): void;
|
/**
|
* @override
|
*/
|
getValueState(value: number): VisualState;
|
/**
|
* @public
|
* @param pieceIndex piece index in visualMapModel.getPieceList()
|
*/
|
findTargetDataIndices(pieceIndex: number): {
|
seriesId: string;
|
dataIndex: number[];
|
}[];
|
/**
|
* @private
|
* @param piece piece.value or piece.interval is required.
|
* @return Can be Infinity or -Infinity
|
*/
|
getRepresentValue(piece: InnerVisualPiece): string | number;
|
getVisualMeta(getColorVisual: (value: number, valueState: VisualState) => string): VisualMeta;
|
static defaultOption: PiecewiseVisualMapOption;
|
}
|
export default PiecewiseModel;
|