652225797ecc1b245d4a9673bf7f9c1d38d8b29c977c72637263bdf9b9e9abc3693307317444cae3b82f1ef6c19db50f57ba6e81584eeb0ef6e618a6d85bb0 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import SeriesModel from '../../model/Series.js';
  2. import Model from '../../model/Model.js';
  3. import { SeriesOption, BoxLayoutOptionMixin, OptionDataValue, SeriesLabelOption, ItemStyleOption, LineStyleOption, LayoutOrient, ColorString, StatesOptionMixin, OptionDataItemObject, GraphEdgeItemObject, OptionDataValueNumeric, DefaultEmphasisFocus, CallbackDataParams } from '../../util/types.js';
  4. import GlobalModel from '../../model/Global.js';
  5. import SeriesData from '../../data/SeriesData.js';
  6. import { LayoutRect } from '../../util/layout.js';
  7. declare type FocusNodeAdjacency = boolean | 'inEdges' | 'outEdges' | 'allEdges';
  8. export interface SankeyNodeStateOption<TCbParams = never> {
  9. label?: SeriesLabelOption;
  10. itemStyle?: ItemStyleOption<TCbParams>;
  11. }
  12. export interface SankeyEdgeStateOption {
  13. lineStyle?: SankeyEdgeStyleOption;
  14. }
  15. interface SankeyBothStateOption<TCbParams> extends SankeyNodeStateOption<TCbParams>, SankeyEdgeStateOption {
  16. }
  17. interface SankeyEdgeStyleOption extends LineStyleOption {
  18. curveness?: number;
  19. }
  20. interface ExtraStateOption {
  21. emphasis?: {
  22. focus?: DefaultEmphasisFocus | 'adjacency';
  23. };
  24. }
  25. export interface SankeyNodeItemOption extends SankeyNodeStateOption, StatesOptionMixin<SankeyNodeStateOption, ExtraStateOption>, OptionDataItemObject<OptionDataValue> {
  26. id?: string;
  27. localX?: number;
  28. localY?: number;
  29. depth?: number;
  30. draggable?: boolean;
  31. focusNodeAdjacency?: FocusNodeAdjacency;
  32. }
  33. export interface SankeyEdgeItemOption extends SankeyEdgeStateOption, StatesOptionMixin<SankeyEdgeStateOption, ExtraStateOption>, GraphEdgeItemObject<OptionDataValueNumeric> {
  34. focusNodeAdjacency?: FocusNodeAdjacency;
  35. }
  36. export interface SankeyLevelOption extends SankeyNodeStateOption, SankeyEdgeStateOption {
  37. depth: number;
  38. }
  39. export interface SankeySeriesOption extends SeriesOption<SankeyBothStateOption<CallbackDataParams>, ExtraStateOption>, SankeyBothStateOption<CallbackDataParams>, BoxLayoutOptionMixin {
  40. type?: 'sankey';
  41. /**
  42. * color will be linear mapped.
  43. */
  44. color?: ColorString[];
  45. coordinateSystem?: 'view';
  46. orient?: LayoutOrient;
  47. /**
  48. * The width of the node
  49. */
  50. nodeWidth?: number;
  51. /**
  52. * The vertical distance between two nodes
  53. */
  54. nodeGap?: number;
  55. /**
  56. * Control if the node can move or not
  57. */
  58. draggable?: boolean;
  59. /**
  60. * Will be allEdges if true.
  61. * @deprecated
  62. */
  63. focusNodeAdjacency?: FocusNodeAdjacency;
  64. /**
  65. * The number of iterations to change the position of the node
  66. */
  67. layoutIterations?: number;
  68. nodeAlign?: 'justify' | 'left' | 'right';
  69. data?: SankeyNodeItemOption[];
  70. nodes?: SankeyNodeItemOption[];
  71. edges?: SankeyEdgeItemOption[];
  72. links?: SankeyEdgeItemOption[];
  73. levels?: SankeyLevelOption[];
  74. }
  75. declare class SankeySeriesModel extends SeriesModel<SankeySeriesOption> {
  76. static readonly type = "series.sankey";
  77. readonly type = "series.sankey";
  78. levelModels: Model<SankeyLevelOption>[];
  79. layoutInfo: LayoutRect;
  80. /**
  81. * Init a graph data structure from data in option series
  82. */
  83. getInitialData(option: SankeySeriesOption, ecModel: GlobalModel): SeriesData<Model<any>, import("../../data/SeriesData").DefaultDataVisual>;
  84. setNodePosition(dataIndex: number, localPosition: number[]): void;
  85. /**
  86. * Return the graphic data structure
  87. *
  88. * @return graphic data structure
  89. */
  90. getGraph(): import("../../data/Graph").default;
  91. /**
  92. * Get edge data of graphic data structure
  93. *
  94. * @return data structure of list
  95. */
  96. getEdgeData(): SeriesData<Model<any>, import("../../data/SeriesData").DefaultDataVisual>;
  97. formatTooltip(dataIndex: number, multipleSeries: boolean, dataType: 'node' | 'edge'): import("../../component/tooltip/tooltipMarkup").TooltipMarkupNameValueBlock;
  98. optionUpdated(): void;
  99. getDataParams(dataIndex: number, dataType: 'node' | 'edge'): CallbackDataParams;
  100. static defaultOption: SankeySeriesOption;
  101. }
  102. export default SankeySeriesModel;