123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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, 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;
|