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
5 changes: 4 additions & 1 deletion index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@
* under the License.
*/

export * from './types/dist/echarts';
import * as echarts from './types/dist/echarts';
// Export for UMD module.
export as namespace echarts;
export = echarts;
23 changes: 16 additions & 7 deletions src/chart/bar/BarSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ import {
OptionDataItemObject,
SeriesSamplingOptionMixin,
SeriesLabelOption,
SeriesEncodeOptionMixin
SeriesEncodeOptionMixin,
DefaultStatesMixinEmpasis,
CallbackDataParams
} from '../../util/types';
import type Cartesian2D from '../../coord/cartesian/Cartesian2D';
import createSeriesData from '../helper/createSeriesData';
Expand All @@ -41,21 +43,28 @@ export type PolarBarLabelPosition = SeriesLabelOption['position']
export type BarSeriesLabelOption = Omit<SeriesLabelOption, 'position'>
& {position?: PolarBarLabelPosition | 'outside'};

export interface BarStateOption {
itemStyle?: BarItemStyleOption
export interface BarStateOption<TCbParams = never> {
itemStyle?: BarItemStyleOption<TCbParams>
label?: BarSeriesLabelOption
}

export interface BarItemStyleOption extends ItemStyleOption {
interface BarStatesMixin {
emphasis?: DefaultStatesMixinEmpasis
}

export interface BarItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> {
// Border radius is not supported for bar on polar
borderRadius?: number | number[]
}
export interface BarDataItemOption extends BarStateOption, StatesOptionMixin<BarStateOption>,
export interface BarDataItemOption extends BarStateOption,
StatesOptionMixin<BarStateOption, BarStatesMixin>,
OptionDataItemObject<OptionDataValue> {
cursor?: string
}

export interface BarSeriesOption extends BaseBarSeriesOption<BarStateOption>, BarStateOption,
export interface BarSeriesOption
extends BaseBarSeriesOption<BarStateOption<CallbackDataParams>, BarStatesMixin>,
BarStateOption<CallbackDataParams>,
SeriesStackOptionMixin, SeriesSamplingOptionMixin, SeriesEncodeOptionMixin {

type?: 'bar'
Expand Down Expand Up @@ -151,7 +160,7 @@ class BarSeriesModel extends BaseBarSeriesModel<BarSeriesOption> {
},

realtimeSort: false
});
} as BarSeriesOption);

}

Expand Down
4 changes: 2 additions & 2 deletions src/chart/bar/BaseBarSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ import {
SeriesOnCartesianOptionMixin,
SeriesOnPolarOptionMixin,
ScaleDataValue,
DefaultExtraStateOpts
DefaultStatesMixin
} from '../../util/types';
import GlobalModel from '../../model/Global';
import Cartesian2D from '../../coord/cartesian/Cartesian2D';
import SeriesData from '../../data/SeriesData';


export interface BaseBarSeriesOption<StateOption, ExtraStateOption = DefaultExtraStateOpts>
export interface BaseBarSeriesOption<StateOption, ExtraStateOption = DefaultStatesMixin>
extends SeriesOption<StateOption, ExtraStateOption>,
SeriesOnCartesianOptionMixin,
SeriesOnPolarOptionMixin {
Expand Down
12 changes: 7 additions & 5 deletions src/chart/boxplot/BoxplotSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import {
OptionDataValueNumeric,
StatesOptionMixin,
SeriesEncodeOptionMixin,
DefaultEmphasisFocus
DefaultEmphasisFocus,
CallbackDataParams
} from '../../util/types';
import type Axis2D from '../../coord/cartesian/Axis2D';
import Cartesian2D from '../../coord/cartesian/Cartesian2D';
Expand All @@ -37,9 +38,8 @@ import { mixin } from 'zrender/src/core/util';
// [min, Q1, median (or Q2), Q3, max]
type BoxplotDataValue = OptionDataValueNumeric[];


export interface BoxplotStateOption {
itemStyle?: ItemStyleOption
export interface BoxplotStateOption<TCbParams = never> {
itemStyle?: ItemStyleOption<TCbParams>
label?: SeriesLabelOption
}

Expand All @@ -55,7 +55,9 @@ interface ExtraStateOption {
}
}

export interface BoxplotSeriesOption extends SeriesOption<BoxplotStateOption, ExtraStateOption>, BoxplotStateOption,
export interface BoxplotSeriesOption
extends SeriesOption<BoxplotStateOption<CallbackDataParams>, ExtraStateOption>,
BoxplotStateOption<CallbackDataParams>,
SeriesOnCartesianOptionMixin, SeriesEncodeOptionMixin {
type?: 'boxplot'

Expand Down
6 changes: 3 additions & 3 deletions src/chart/candlestick/CandlestickSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ import {
ColorString,
SeriesLabelOption,
SeriesLargeOptionMixin,
OptionDataValueNumeric,
StatesOptionMixin,
SeriesEncodeOptionMixin,
DefaultEmphasisFocus
DefaultEmphasisFocus,
OptionDataValue
} from '../../util/types';
import SeriesData from '../../data/SeriesData';
import Cartesian2D from '../../coord/cartesian/Cartesian2D';
import { BrushCommonSelectorsForSeries } from '../../component/brush/selector';
import { mixin } from 'zrender/src/core/util';

type CandlestickDataValue = OptionDataValueNumeric[];
type CandlestickDataValue = OptionDataValue[];

interface CandlestickItemStyleOption extends ItemStyleOption {
color0?: ZRColor
Expand Down
79 changes: 52 additions & 27 deletions src/chart/custom/CustomSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,6 @@ export interface CustomBaseElementOption extends Partial<Pick<
extra?: Dictionary<unknown> & TransitionAnyOption;
// updateDuringAnimation
during?(params: CustomBaseDuringAPI): void;

focus?: 'none' | 'self' | 'series' | ArrayLike<number>
blurScope?: BlurScope
};

export interface CustomDisplayableOption extends CustomBaseElementOption, Partial<Pick<
Expand Down Expand Up @@ -192,7 +189,7 @@ export interface CustomGroupOption extends CustomBaseElementOption {
height?: number;
// @deprecated
diffChildrenByName?: boolean;
children: CustomChildElementOption[];
children: CustomElementOption[];
$mergeChildren?: false | 'byName' | 'byIndex';
}
export interface CustomBaseZRPathOption<T extends PathProps['shape'] = PathProps['shape']>
Expand All @@ -204,17 +201,17 @@ export interface CustomBaseZRPathOption<T extends PathProps['shape'] = PathProps
}

interface BuiltinShapes {
'circle': Circle['shape']
'rect': Rect['shape']
'sector': Sector['shape']
'poygon': Polygon['shape']
'polyline': Polyline['shape']
'line': Line['shape']
'arc': Arc['shape']
'bezierCurve': BezierCurve['shape']
'ring': Ring['shape']
'ellipse': Ellipse['shape'],
'compoundPath': CompoundPath['shape']
circle: Partial<Circle['shape']>
rect: Partial<Rect['shape']>
sector: Partial<Sector['shape']>
polygon: Partial<Polygon['shape']>
polyline: Partial<Polyline['shape']>
line: Partial<Line['shape']>
arc: Partial<Arc['shape']>
bezierCurve: Partial<BezierCurve['shape']>
ring: Partial<Ring['shape']>
ellipse: Partial<Ellipse['shape']>
compoundPath: Partial<CompoundPath['shape']>
}

interface CustomSVGPathShapeOption {
Expand Down Expand Up @@ -270,7 +267,10 @@ export type CustomElementOption = CustomPathOption
| CustomGroupOption;

// Can only set focus, blur on the root element.
export type CustomChildElementOption = Omit<CustomElementOption, 'focus' | 'blurScope'>;
export type CustomRootElementOption = CustomElementOption & {
focus?: 'none' | 'self' | 'series' | ArrayLike<number>
blurScope?: BlurScope
};

export type CustomElementOptionOnState = CustomDisplayableOptionOnState
| CustomImageOptionOnState;
Expand All @@ -287,7 +287,13 @@ export interface CustomSeriesRenderItemAPI extends

value(dim: DimensionLoose, dataIndexInside?: number): ParsedValue;
ordinalRawValue(dim: DimensionLoose, dataIndexInside?: number): ParsedValue | OrdinalRawValue;
/**
* @deprecated
*/
style(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps;
/**
* @deprecated
*/
styleEmphasis(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps;
visual<VT extends NonStyleVisualProps | StyleVisualProps>(
visualType: VT,
Expand All @@ -310,7 +316,7 @@ export interface CustomSeriesRenderItemCoordinateSystemAPI {
): number[];
size?(
dataSize: OptionDataValue | OptionDataValue[],
dataItem: OptionDataValue | OptionDataValue[]
dataItem?: OptionDataValue | OptionDataValue[]
): number | number[];
}

Expand All @@ -330,18 +336,16 @@ export interface CustomSeriesRenderItemParams {

actionType?: string;
}
type CustomSeriesRenderItem = (

export type CustomSeriesRenderItemReturn = CustomRootElementOption | undefined | null;

export type CustomSeriesRenderItem = (
params: CustomSeriesRenderItemParams,
api: CustomSeriesRenderItemAPI
) => CustomElementOption;

interface CustomSeriesStateOption {
itemStyle?: ItemStyleOption;
label?: LabelOption;
}
) => CustomSeriesRenderItemReturn;

export interface CustomSeriesOption extends
SeriesOption<never>, // don't support StateOption in custom series.
SeriesOption<unknown>, // don't support StateOption in custom series.
SeriesEncodeOptionMixin,
SeriesOnCartesianOptionMixin,
SeriesOnPolarOptionMixin,
Expand All @@ -356,12 +360,33 @@ export interface CustomSeriesOption extends

renderItem?: CustomSeriesRenderItem;

/**
* @deprecated
*/
itemStyle?: ItemStyleOption;
/**
* @deprecated
*/
label?: LabelOption;

/**
* @deprecated
*/
emphasis?: {
/**
* @deprecated
*/
itemStyle?: ItemStyleOption;
/**
* @deprecated
*/
label?: LabelOption;
}

// Only works on polar and cartesian2d coordinate system.
clip?: boolean;
}

export interface LegacyCustomSeriesOption extends SeriesOption<CustomSeriesStateOption>, CustomSeriesStateOption {}

export const customInnerStore = makeInner<{
info: CustomExtraElementInfo;
customPathData: string;
Expand Down
23 changes: 12 additions & 11 deletions src/chart/custom/CustomView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ import CustomSeriesModel, {
CustomDisplayableOption,
CustomSeriesRenderItemAPI,
CustomSeriesRenderItemParams,
LegacyCustomSeriesOption,
CustomGroupOption,
WrapEncodeDefRet,
NonStyleVisualProps,
Expand All @@ -92,7 +91,8 @@ import CustomSeriesModel, {
customInnerStore,
LooseElementProps,
PrepareCustomInfo,
CustomPathOption
CustomPathOption,
CustomRootElementOption
} from './CustomSeries';
import {
prepareShapeOrExtraAllPropsFinal,
Expand All @@ -102,6 +102,7 @@ import {
prepareTransformTransitionFrom
} from './prepare';
import { PatternObject } from 'zrender/src/graphic/Pattern';
import { CustomSeriesOption } from '../../export/option';

const transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');

Expand Down Expand Up @@ -879,23 +880,23 @@ function makeRenderItem(

// Do not support call `api` asynchronously without dataIndexInside input.
let currDataIndexInside: number;
let currItemModel: Model<LegacyCustomSeriesOption>;
let currItemStyleModels: Partial<Record<DisplayState, Model<LegacyCustomSeriesOption['itemStyle']>>> = {};
let currLabelModels: Partial<Record<DisplayState, Model<LegacyCustomSeriesOption['label']>>> = {};
let currItemModel: Model<CustomSeriesOption>;
let currItemStyleModels: Partial<Record<DisplayState, Model<CustomSeriesOption['itemStyle']>>> = {};
let currLabelModels: Partial<Record<DisplayState, Model<CustomSeriesOption['label']>>> = {};

const seriesItemStyleModels = {} as Record<DisplayState, Model<LegacyCustomSeriesOption['itemStyle']>>;
const seriesItemStyleModels = {} as Record<DisplayState, Model<CustomSeriesOption['itemStyle']>>;

const seriesLabelModels = {} as Record<DisplayState, Model<LegacyCustomSeriesOption['label']>>;
const seriesLabelModels = {} as Record<DisplayState, Model<CustomSeriesOption['label']>>;

for (let i = 0; i < STATES.length; i++) {
const stateName = STATES[i];
seriesItemStyleModels[stateName] = (customSeries as Model<LegacyCustomSeriesOption>)
seriesItemStyleModels[stateName] = (customSeries as Model<CustomSeriesOption>)
.getModel(PATH_ITEM_STYLE[stateName]);
seriesLabelModels[stateName] = (customSeries as Model<LegacyCustomSeriesOption>)
seriesLabelModels[stateName] = (customSeries as Model<CustomSeriesOption>)
.getModel(PATH_LABEL[stateName]);
}

function getItemModel(dataIndexInside: number): Model<LegacyCustomSeriesOption> {
function getItemModel(dataIndexInside: number): Model<CustomSeriesOption> {
return dataIndexInside === currDataIndexInside
? (currItemModel || (currItemModel = data.getItemModel(dataIndexInside)))
: data.getItemModel(dataIndexInside);
Expand Down Expand Up @@ -1148,7 +1149,7 @@ function createOrUpdateItem(
api: ExtensionAPI,
existsEl: Element,
dataIndex: number,
elOption: CustomElementOption,
elOption: CustomRootElementOption,
seriesModel: CustomSeriesModel,
group: ViewRootGroup,
data: SeriesData<CustomSeriesModel>
Expand Down
19 changes: 14 additions & 5 deletions src/chart/effectScatter/EffectScatterSeries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ import {
SeriesLabelOption,
StatesOptionMixin,
SeriesEncodeOptionMixin,
CallbackDataParams
CallbackDataParams,
DefaultEmphasisFocus
} from '../../util/types';
import GlobalModel from '../../model/Global';
import SeriesData from '../../data/SeriesData';
Expand All @@ -41,22 +42,30 @@ import { BrushCommonSelectorsForSeries } from '../../component/brush/selector';

type ScatterDataValue = OptionDataValue | OptionDataValue[];

export interface EffectScatterStateOption {
itemStyle?: ItemStyleOption
interface EffectScatterStatesOptionMixin {
emphasis?: {
focus?: DefaultEmphasisFocus
scale?: boolean
}
}
export interface EffectScatterStateOption<TCbParams = never> {
itemStyle?: ItemStyleOption<TCbParams>
label?: SeriesLabelOption
}

export interface EffectScatterDataItemOption extends SymbolOptionMixin,
EffectScatterStateOption,
StatesOptionMixin<EffectScatterStateOption> {
StatesOptionMixin<EffectScatterStateOption, EffectScatterStatesOptionMixin> {
name?: string

value?: ScatterDataValue

rippleEffect?: SymbolDrawItemModelOption['rippleEffect']
}

export interface EffectScatterSeriesOption extends SeriesOption<EffectScatterStateOption>, EffectScatterStateOption,
export interface EffectScatterSeriesOption
extends SeriesOption<EffectScatterStateOption<CallbackDataParams>, EffectScatterStatesOptionMixin>,
EffectScatterStateOption<CallbackDataParams>,
SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin,
SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>,
SeriesEncodeOptionMixin {
Expand Down
Loading