UNPKG

echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

154 lines (153 loc) 6.1 kB
import SeriesData from '../../data/SeriesData.js'; import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, OptionDataValue, RoamOptionMixin, SeriesLabelOption, ItemStyleOption, LineStyleOption, SymbolOptionMixin, BoxLayoutOptionMixin, Dictionary, SeriesLineLabelOption, StatesOptionMixin, GraphEdgeItemObject, OptionDataValueNumeric, CallbackDataParams, DefaultEmphasisFocus } from '../../util/types.js'; import SeriesModel from '../../model/Series.js'; import Graph from '../../data/Graph.js'; import GlobalModel from '../../model/Global.js'; import { VectorArray } from 'zrender/lib/core/vector.js'; import { ForceLayoutInstance } from './forceLayout.js'; import { LineDataVisual } from '../../visual/commonVisualTypes.js'; declare type GraphDataValue = OptionDataValue | OptionDataValue[]; interface GraphEdgeLineStyleOption extends LineStyleOption { curveness?: number; } export interface GraphNodeStateOption<TCbParams = never> { itemStyle?: ItemStyleOption<TCbParams>; label?: SeriesLabelOption; } interface ExtraEmphasisState { focus?: DefaultEmphasisFocus | 'adjacency'; } interface GraphNodeStatesMixin { emphasis?: ExtraEmphasisState; } interface GraphEdgeStatesMixin { emphasis?: ExtraEmphasisState; } export interface GraphNodeItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { id?: string; name?: string; value?: GraphDataValue; /** * Fixed x position */ x?: number; /** * Fixed y position */ y?: number; /** * If this node is fixed during force layout. */ fixed?: boolean; /** * Index or name of category */ category?: number | string; draggable?: boolean; cursor?: string; } export interface GraphEdgeStateOption { lineStyle?: GraphEdgeLineStyleOption; label?: SeriesLineLabelOption; } export interface GraphEdgeItemOption extends GraphEdgeStateOption, StatesOptionMixin<GraphEdgeStateOption, GraphEdgeStatesMixin>, GraphEdgeItemObject<OptionDataValueNumeric> { value?: number; /** * Symbol of both line ends */ symbol?: string | string[]; symbolSize?: number | number[]; ignoreForceLayout?: boolean; } export interface GraphCategoryItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { name?: string; value?: OptionDataValue; } export interface GraphSeriesOption extends SeriesOption<GraphNodeStateOption<CallbackDataParams>, GraphNodeStatesMixin>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>, RoamOptionMixin, BoxLayoutOptionMixin { type?: 'graph'; coordinateSystem?: string; legendHoverLink?: boolean; layout?: 'none' | 'force' | 'circular'; data?: (GraphNodeItemOption | GraphDataValue)[]; nodes?: (GraphNodeItemOption | GraphDataValue)[]; edges?: GraphEdgeItemOption[]; links?: GraphEdgeItemOption[]; categories?: GraphCategoryItemOption[]; /** * @deprecated */ focusNodeAdjacency?: boolean; /** * Symbol size scale ratio in roam */ nodeScaleRatio?: 0.6; draggable?: boolean; edgeSymbol?: string | string[]; edgeSymbolSize?: number | number[]; edgeLabel?: SeriesLineLabelOption; label?: SeriesLabelOption; itemStyle?: ItemStyleOption<CallbackDataParams>; lineStyle?: GraphEdgeLineStyleOption; emphasis?: { focus?: Exclude<GraphNodeItemOption['emphasis'], undefined>['focus']; scale?: boolean | number; label?: SeriesLabelOption; edgeLabel?: SeriesLabelOption; itemStyle?: ItemStyleOption; lineStyle?: LineStyleOption; }; blur?: { label?: SeriesLabelOption; edgeLabel?: SeriesLabelOption; itemStyle?: ItemStyleOption; lineStyle?: LineStyleOption; }; select?: { label?: SeriesLabelOption; edgeLabel?: SeriesLabelOption; itemStyle?: ItemStyleOption; lineStyle?: LineStyleOption; }; circular?: { rotateLabel?: boolean; }; force?: { initLayout?: 'circular' | 'none'; repulsion?: number | number[]; gravity?: number; friction?: number; edgeLength?: number | number[]; layoutAnimation?: boolean; }; /** * auto curveness for multiple edge, invalid when `lineStyle.curveness` is set */ autoCurveness?: boolean | number | number[]; } declare class GraphSeriesModel extends SeriesModel<GraphSeriesOption> { static readonly type = "series.graph"; readonly type = "series.graph"; static readonly dependencies: string[]; private _categoriesData; private _categoriesModels; /** * Preserved points during layouting */ preservedPoints?: Dictionary<VectorArray>; forceLayout?: ForceLayoutInstance; hasSymbolVisual: boolean; init(option: GraphSeriesOption): void; mergeOption(option: GraphSeriesOption): void; mergeDefaultAndTheme(option: GraphSeriesOption): void; getInitialData(option: GraphSeriesOption, ecModel: GlobalModel): SeriesData; getGraph(): Graph; getEdgeData(): SeriesData<GraphSeriesModel, LineDataVisual>; getCategoriesData(): SeriesData; formatTooltip(dataIndex: number, multipleSeries: boolean, dataType: string): import("../../component/tooltip/tooltipMarkup").TooltipMarkupSection | import("../../component/tooltip/tooltipMarkup").TooltipMarkupNameValueBlock; _updateCategoriesData(): void; setZoom(zoom: number): void; setCenter(center: number[]): void; isAnimationEnabled(): boolean; static defaultOption: GraphSeriesOption; } export default GraphSeriesModel;