123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- import Displayable from 'zrender/lib/graphic/Displayable.js';
- import { ImageProps, ImageStyleProps } from 'zrender/lib/graphic/Image.js';
- import { PathProps, PathStyleProps } from 'zrender/lib/graphic/Path.js';
- import { ZRenderType } from 'zrender/lib/zrender.js';
- import { BarGridLayoutOptionForCustomSeries, BarGridLayoutResult } from '../../layout/barGrid.js';
- import { AnimationOption, BlurScope, CallbackDataParams, Dictionary, DimensionLoose, ItemStyleOption, LabelOption, OptionDataValue, OrdinalRawValue, ParsedValue, SeriesDataType, SeriesEncodeOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnSingleOptionMixin, SeriesOption, TextCommonOption, ZRStyleProps } from '../../util/types.js';
- import Element from 'zrender/lib/Element.js';
- import SeriesData, { DefaultDataVisual } from '../../data/SeriesData.js';
- import GlobalModel from '../../model/Global.js';
- import { CoordinateSystem } from '../../coord/CoordinateSystem.js';
- import SeriesModel from '../../model/Series.js';
- import { Arc, BezierCurve, Circle, CompoundPath, Ellipse, Line, Polygon, Polyline, Rect, Ring, Sector } from '../../util/graphic.js';
- import { TextProps, TextStyleProps } from 'zrender/lib/graphic/Text.js';
- import { GroupProps } from 'zrender/lib/graphic/Group.js';
- import { TransitionOptionMixin, TransitionBaseDuringAPI, TransitionDuringAPI } from '../../animation/customGraphicTransition.js';
- import { TransformProp } from 'zrender/lib/core/Transformable.js';
- import { ElementKeyframeAnimationOption } from '../../animation/customGraphicKeyframeAnimation.js';
- export declare type CustomExtraElementInfo = Dictionary<unknown>;
- export declare const STYLE_VISUAL_TYPE: {
- readonly color: "fill";
- readonly borderColor: "stroke";
- };
- export declare type StyleVisualProps = keyof typeof STYLE_VISUAL_TYPE;
- export declare const NON_STYLE_VISUAL_PROPS: {
- readonly symbol: 1;
- readonly symbolSize: 1;
- readonly symbolKeepAspect: 1;
- readonly legendIcon: 1;
- readonly visualMeta: 1;
- readonly liftZ: 1;
- readonly decal: 1;
- };
- export declare type NonStyleVisualProps = keyof typeof NON_STYLE_VISUAL_PROPS;
- declare type ShapeMorphingOption = {
- /**
- * If do shape morphing animation when type is changed.
- * Only available on path.
- */
- morph?: boolean;
- };
- export interface CustomBaseElementOption extends Partial<Pick<Element, TransformProp | 'silent' | 'ignore' | 'textConfig'>> {
- type: string;
- id?: string;
- name?: string;
- info?: CustomExtraElementInfo;
- textContent?: CustomTextOption | false;
- clipPath?: CustomBaseZRPathOption | false;
- extra?: Dictionary<unknown> & TransitionOptionMixin;
- during?(params: TransitionBaseDuringAPI): void;
- enterAnimation?: AnimationOption;
- updateAnimation?: AnimationOption;
- leaveAnimation?: AnimationOption;
- }
- export interface CustomDisplayableOption extends CustomBaseElementOption, Partial<Pick<Displayable, 'zlevel' | 'z' | 'z2' | 'invisible'>> {
- style?: ZRStyleProps;
- during?(params: TransitionDuringAPI): void;
- /**
- * @deprecated
- */
- styleEmphasis?: ZRStyleProps | false;
- emphasis?: CustomDisplayableOptionOnState;
- blur?: CustomDisplayableOptionOnState;
- select?: CustomDisplayableOptionOnState;
- }
- export interface CustomDisplayableOptionOnState extends Partial<Pick<Displayable, TransformProp | 'textConfig' | 'z2'>> {
- style?: ZRStyleProps | false;
- }
- export interface CustomGroupOption extends CustomBaseElementOption, TransitionOptionMixin<GroupProps> {
- type: 'group';
- width?: number;
- height?: number;
- diffChildrenByName?: boolean;
- children: CustomElementOption[];
- $mergeChildren?: false | 'byName' | 'byIndex';
- keyframeAnimation?: ElementKeyframeAnimationOption<GroupProps> | ElementKeyframeAnimationOption<GroupProps>[];
- }
- export interface CustomBaseZRPathOption<T extends PathProps['shape'] = PathProps['shape']> extends CustomDisplayableOption, ShapeMorphingOption, TransitionOptionMixin<PathProps & {
- shape: T;
- }> {
- autoBatch?: boolean;
- shape?: T & TransitionOptionMixin<T>;
- style?: PathProps['style'] & TransitionOptionMixin<PathStyleProps>;
- during?(params: TransitionDuringAPI<PathStyleProps, T>): void;
- keyframeAnimation?: ElementKeyframeAnimationOption<PathProps & {
- shape: T;
- }> | ElementKeyframeAnimationOption<PathProps & {
- shape: T;
- }>[];
- }
- interface BuiltinShapes {
- 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 {
- pathData?: string;
- d?: string;
- layout?: 'center' | 'cover';
- x?: number;
- y?: number;
- width?: number;
- height?: number;
- }
- export interface CustomSVGPathOption extends CustomBaseZRPathOption<CustomSVGPathShapeOption> {
- type: 'path';
- }
- interface CustomBuitinPathOption<T extends keyof BuiltinShapes> extends CustomBaseZRPathOption<BuiltinShapes[T]> {
- type: T;
- }
- declare type CreateCustomBuitinPathOption<T extends keyof BuiltinShapes> = T extends any ? CustomBuitinPathOption<T> : never;
- export declare type CustomPathOption = CreateCustomBuitinPathOption<keyof BuiltinShapes> | CustomSVGPathOption;
- export interface CustomImageOptionOnState extends CustomDisplayableOptionOnState {
- style?: ImageStyleProps;
- }
- export interface CustomImageOption extends CustomDisplayableOption, TransitionOptionMixin<ImageProps> {
- type: 'image';
- style?: ImageStyleProps & TransitionOptionMixin<ImageStyleProps>;
- emphasis?: CustomImageOptionOnState;
- blur?: CustomImageOptionOnState;
- select?: CustomImageOptionOnState;
- keyframeAnimation?: ElementKeyframeAnimationOption<ImageProps> | ElementKeyframeAnimationOption<ImageProps>[];
- }
- export interface CustomTextOptionOnState extends CustomDisplayableOptionOnState {
- style?: TextStyleProps;
- }
- export interface CustomTextOption extends CustomDisplayableOption, TransitionOptionMixin<TextProps> {
- type: 'text';
- style?: TextStyleProps & TransitionOptionMixin<TextStyleProps>;
- emphasis?: CustomTextOptionOnState;
- blur?: CustomTextOptionOnState;
- select?: CustomTextOptionOnState;
- keyframeAnimation?: ElementKeyframeAnimationOption<TextProps> | ElementKeyframeAnimationOption<TextProps>[];
- }
- export declare type CustomElementOption = CustomPathOption | CustomImageOption | CustomTextOption | CustomGroupOption;
- export declare type CustomRootElementOption = CustomElementOption & {
- focus?: 'none' | 'self' | 'series' | ArrayLike<number>;
- blurScope?: BlurScope;
- emphasisDisabled?: boolean;
- };
- export declare type CustomElementOptionOnState = CustomDisplayableOptionOnState | CustomImageOptionOnState;
- export interface CustomSeriesRenderItemAPI extends CustomSeriesRenderItemCoordinateSystemAPI {
- getWidth(): number;
- getHeight(): number;
- getZr(): ZRenderType;
- getDevicePixelRatio(): number;
- 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, dataIndexInside?: number): VT extends NonStyleVisualProps ? DefaultDataVisual[VT] : VT extends StyleVisualProps ? PathStyleProps[typeof STYLE_VISUAL_TYPE[VT]] : void;
- barLayout(opt: BarGridLayoutOptionForCustomSeries): BarGridLayoutResult;
- currentSeriesIndices(): number[];
- font(opt: Pick<TextCommonOption, 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>): string;
- }
- export interface CustomSeriesRenderItemParamsCoordSys {
- type: string;
- }
- export interface CustomSeriesRenderItemCoordinateSystemAPI {
- coord(data: OptionDataValue | OptionDataValue[], clamp?: boolean): number[];
- size?(dataSize: OptionDataValue | OptionDataValue[], dataItem?: OptionDataValue | OptionDataValue[]): number | number[];
- }
- export declare type WrapEncodeDefRet = Dictionary<number[]>;
- export interface CustomSeriesRenderItemParams {
- context: Dictionary<unknown>;
- dataIndex: number;
- seriesId: string;
- seriesName: string;
- seriesIndex: number;
- coordSys: CustomSeriesRenderItemParamsCoordSys;
- encode: WrapEncodeDefRet;
- dataIndexInside: number;
- dataInsideLength: number;
- actionType?: string;
- }
- export declare type CustomSeriesRenderItemReturn = CustomRootElementOption | undefined | null;
- export declare type CustomSeriesRenderItem = (params: CustomSeriesRenderItemParams, api: CustomSeriesRenderItemAPI) => CustomSeriesRenderItemReturn;
- export interface CustomSeriesOption extends SeriesOption<unknown>, // don't support StateOption in custom series.
- SeriesEncodeOptionMixin, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnSingleOptionMixin, SeriesOnGeoOptionMixin, SeriesOnCalendarOptionMixin {
- type?: 'custom';
- coordinateSystem?: string | 'none';
- renderItem?: CustomSeriesRenderItem;
- /**
- * @deprecated
- */
- itemStyle?: ItemStyleOption;
- /**
- * @deprecated
- */
- label?: LabelOption;
- /**
- * @deprecated
- */
- emphasis?: {
- /**
- * @deprecated
- */
- itemStyle?: ItemStyleOption;
- /**
- * @deprecated
- */
- label?: LabelOption;
- };
- clip?: boolean;
- }
- export declare const customInnerStore: (hostObj: Element<import("zrender/lib/Element").ElementProps>) => {
- info: CustomExtraElementInfo;
- customPathData: string;
- customGraphicType: string;
- customImagePath: CustomImageOption['style']['image'];
- txConZ2Set: number;
- option: CustomElementOption;
- };
- export default class CustomSeriesModel extends SeriesModel<CustomSeriesOption> {
- static type: string;
- readonly type: string;
- static dependencies: string[];
- currentZLevel: number;
- currentZ: number;
- static defaultOption: CustomSeriesOption;
- optionUpdated(): void;
- getInitialData(option: CustomSeriesOption, ecModel: GlobalModel): SeriesData;
- getDataParams(dataIndex: number, dataType?: SeriesDataType, el?: Element): CallbackDataParams & {
- info: CustomExtraElementInfo;
- };
- }
- export declare type PrepareCustomInfo = (coordSys: CoordinateSystem) => {
- coordSys: CustomSeriesRenderItemParamsCoordSys;
- api: CustomSeriesRenderItemCoordinateSystemAPI;
- };
- export {};
|