123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- import VisualMapping, { VisualMappingOption } from '../../visual/VisualMapping.js';
- import { ComponentOption, BoxLayoutOptionMixin, LabelOption, ColorString, ZRColor, BorderOptionMixin, OptionDataValue, BuiltinVisualProperty, DimensionIndex } from '../../util/types.js';
- import ComponentModel from '../../model/Component.js';
- import Model from '../../model/Model.js';
- import GlobalModel from '../../model/Global.js';
- import SeriesModel from '../../model/Series.js';
- import SeriesData from '../../data/SeriesData.js';
- declare type VisualOptionBase = {
- [key in BuiltinVisualProperty]?: any;
- };
- declare type LabelFormatter = (min: OptionDataValue, max?: OptionDataValue) => string;
- declare type VisualState = VisualMapModel['stateList'][number];
- export interface VisualMapOption<T extends VisualOptionBase = VisualOptionBase> extends ComponentOption, BoxLayoutOptionMixin, BorderOptionMixin {
- mainType?: 'visualMap';
- show?: boolean;
- align?: string;
- realtime?: boolean;
- /**
- * 'all' or null/undefined: all series.
- * A number or an array of number: the specified series.
- * set min: 0, max: 200, only for campatible with ec2.
- * In fact min max should not have default value.
- */
- seriesIndex?: 'all' | number[] | number;
- /**
- * min value, must specified if pieces is not specified.
- */
- min?: number;
- /**
- * max value, must specified if pieces is not specified.
- */
- max?: number;
- /**
- * Dimension to be encoded
- */
- dimension?: number;
- /**
- * Visual configuration for the data in selection
- */
- inRange?: T;
- /**
- * Visual configuration for the out of selection
- */
- outOfRange?: T;
- controller?: {
- inRange?: T;
- outOfRange?: T;
- };
- target?: {
- inRange?: T;
- outOfRange?: T;
- };
- /**
- * Width of the display item
- */
- itemWidth?: number;
- /**
- * Height of the display item
- */
- itemHeight?: number;
- inverse?: boolean;
- orient?: 'horizontal' | 'vertical';
- backgroundColor?: ZRColor;
- contentColor?: ZRColor;
- inactiveColor?: ZRColor;
- /**
- * Padding of the component. Can be an array similar to CSS
- */
- padding?: number[] | number;
- /**
- * Gap between text and item
- */
- textGap?: number;
- precision?: number;
- /**
- * @deprecated
- * Option from version 2
- */
- color?: ColorString[];
- formatter?: string | LabelFormatter;
- /**
- * Text on the both end. Such as ['High', 'Low']
- */
- text?: string[];
- textStyle?: LabelOption;
- categories?: unknown;
- }
- export interface VisualMeta {
- stops: {
- value: number;
- color: ColorString;
- }[];
- outerColors: ColorString[];
- dimension?: DimensionIndex;
- }
- declare class VisualMapModel<Opts extends VisualMapOption = VisualMapOption> extends ComponentModel<Opts> {
- static type: string;
- type: string;
- static readonly dependencies: string[];
- readonly stateList: readonly ["inRange", "outOfRange"];
- readonly replacableOptionKeys: readonly ["inRange", "outOfRange", "target", "controller", "color"];
- readonly layoutMode: {
- readonly type: "box";
- readonly ignoreSize: true;
- };
- /**
- * [lowerBound, upperBound]
- */
- dataBound: number[];
- protected _dataExtent: [number, number];
- targetVisuals: {
- [x: string]: {
- symbol?: VisualMapping;
- color?: VisualMapping;
- opacity?: VisualMapping;
- decal?: VisualMapping;
- symbolSize?: VisualMapping;
- liftZ?: VisualMapping;
- colorAlpha?: VisualMapping;
- colorLightness?: VisualMapping;
- colorSaturation?: VisualMapping;
- colorHue?: VisualMapping;
- } & {
- __alphaForOpacity?: VisualMapping;
- };
- };
- controllerVisuals: {
- [x: string]: {
- symbol?: VisualMapping;
- color?: VisualMapping;
- opacity?: VisualMapping;
- decal?: VisualMapping;
- symbolSize?: VisualMapping;
- liftZ?: VisualMapping;
- colorAlpha?: VisualMapping;
- colorLightness?: VisualMapping;
- colorSaturation?: VisualMapping;
- colorHue?: VisualMapping;
- } & {
- __alphaForOpacity?: VisualMapping;
- };
- };
- textStyleModel: Model<LabelOption>;
- itemSize: number[];
- init(option: Opts, parentModel: Model, ecModel: GlobalModel): void;
- /**
- * @protected
- */
- optionUpdated(newOption: Opts, isInit?: boolean): void;
- /**
- * @protected
- */
- resetVisual(supplementVisualOption: (this: this, mappingOption: VisualMappingOption, state: string) => void): void;
- /**
- * @public
- */
- getItemSymbol(): string;
- /**
- * @protected
- * @return {Array.<number>} An array of series indices.
- */
- getTargetSeriesIndices(): number[];
- /**
- * @public
- */
- eachTargetSeries<Ctx>(callback: (this: Ctx, series: SeriesModel) => void, context?: Ctx): void;
- /**
- * @pubilc
- */
- isTargetSeries(seriesModel: SeriesModel): boolean;
- /**
- * @example
- * this.formatValueText(someVal); // format single numeric value to text.
- * this.formatValueText(someVal, true); // format single category value to text.
- * this.formatValueText([min, max]); // format numeric min-max to text.
- * this.formatValueText([this.dataBound[0], max]); // using data lower bound.
- * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.
- *
- * @param value Real value, or this.dataBound[0 or 1].
- * @param isCategory Only available when value is number.
- * @param edgeSymbols Open-close symbol when value is interval.
- * @protected
- */
- formatValueText(value: number | string | number[], isCategory?: boolean, edgeSymbols?: string[]): string;
- /**
- * @protected
- */
- resetExtent(): void;
- /**
- * PENDING:
- * delete this method if no outer usage.
- *
- * Return Concrete dimention. If return null/undefined, no dimension used.
- */
- getDataDimensionIndex(data: SeriesData): DimensionIndex;
- getExtent(): [number, number];
- completeVisualOption(): void;
- resetItemSize(): void;
- isCategory(): boolean;
- /**
- * @public
- * @abstract
- */
- setSelected(selected?: any): void;
- getSelected(): any;
- /**
- * @public
- * @abstract
- */
- getValueState(value: any): VisualMapModel['stateList'][number];
- /**
- * FIXME
- * Do not publish to thirt-part-dev temporarily
- * util the interface is stable. (Should it return
- * a function but not visual meta?)
- *
- * @pubilc
- * @abstract
- * @param getColorVisual
- * params: value, valueState
- * return: color
- * @return {Object} visualMeta
- * should includes {stops, outerColors}
- * outerColor means [colorBeyondMinValue, colorBeyondMaxValue]
- */
- getVisualMeta(getColorVisual: (value: number, valueState: VisualState) => string): VisualMeta;
- static defaultOption: VisualMapOption;
- }
- export default VisualMapModel;
|