UNPKG

echarts

Version:

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

150 lines (149 loc) 6.03 kB
import SeriesData from '../../data/SeriesData.js'; import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, ComponentOnCalendarOptionMixin, ComponentOnMatrixOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, OptionDataValue, RoamOptionMixin, SeriesLabelOption, ItemStyleOption, LineStyleOption, SymbolOptionMixin, BoxLayoutOptionMixin, Dictionary, SeriesLineLabelOption, StatesOptionMixin, GraphEdgeItemObject, OptionDataValueNumeric, CallbackDataParams, DefaultEmphasisFocus, PreserveAspectMixin, RoamHostModel } 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, ComponentOnCalendarOptionMixin, ComponentOnMatrixOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>, RoamOptionMixin, BoxLayoutOptionMixin, PreserveAspectMixin { 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; 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[]; } export declare const SERIES_TYPE_GRAPH = "graph"; declare class GraphSeriesModel extends SeriesModel<GraphSeriesOption> implements RoamHostModel { static readonly type: string; readonly type: string; 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; isAnimationEnabled(): boolean; __ownRoamView(): import("../../coord/View").default; static defaultOption: GraphSeriesOption; } export default GraphSeriesModel;