4aa56f0e48cedeb1495f6c467eeef547a60fc72663157d55a12dc8b4c127e7518fe3de5e4f3a858f3353100a9df27c399628b7410ba1c10d4f6bbb4ed6a628 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import SeriesModel from '../../model/Series.js';
  2. import { TreeNode } from '../../data/Tree.js';
  3. import { SeriesOption, CircleLayoutOptionMixin, SeriesLabelOption, ItemStyleOption, OptionDataValue, CallbackDataParams, StatesOptionMixin, OptionDataItemObject, DefaultEmphasisFocus, SunburstColorByMixin } from '../../util/types.js';
  4. import GlobalModel from '../../model/Global.js';
  5. import SeriesData from '../../data/SeriesData.js';
  6. import Model from '../../model/Model.js';
  7. interface SunburstItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> {
  8. borderRadius?: (number | string)[] | number | string;
  9. }
  10. interface SunburstLabelOption extends Omit<SeriesLabelOption, 'rotate' | 'position'> {
  11. rotate?: 'radial' | 'tangential' | number;
  12. minAngle?: number;
  13. silent?: boolean;
  14. position?: SeriesLabelOption['position'] | 'outside';
  15. }
  16. interface SunburstDataParams extends CallbackDataParams {
  17. treePathInfo: {
  18. name: string;
  19. dataIndex: number;
  20. value: SunburstSeriesNodeItemOption['value'];
  21. }[];
  22. }
  23. interface SunburstStatesMixin {
  24. emphasis?: {
  25. focus?: DefaultEmphasisFocus | 'descendant' | 'ancestor';
  26. };
  27. }
  28. export interface SunburstStateOption<TCbParams = never> {
  29. itemStyle?: SunburstItemStyleOption<TCbParams>;
  30. label?: SunburstLabelOption;
  31. }
  32. export interface SunburstSeriesNodeItemOption extends SunburstStateOption<CallbackDataParams>, StatesOptionMixin<SunburstStateOption<CallbackDataParams>, SunburstStatesMixin>, OptionDataItemObject<OptionDataValue> {
  33. nodeClick?: 'rootToNode' | 'link' | false;
  34. link?: string;
  35. target?: string;
  36. children?: SunburstSeriesNodeItemOption[];
  37. collapsed?: boolean;
  38. cursor?: string;
  39. }
  40. export interface SunburstSeriesLevelOption extends SunburstStateOption, StatesOptionMixin<SunburstStateOption, SunburstStatesMixin> {
  41. radius?: (number | string)[];
  42. /**
  43. * @deprecated use radius instead
  44. */
  45. r?: number | string;
  46. /**
  47. * @deprecated use radius instead
  48. */
  49. r0?: number | string;
  50. highlight?: {
  51. itemStyle?: SunburstItemStyleOption;
  52. label?: SunburstLabelOption;
  53. };
  54. }
  55. interface SortParam {
  56. dataIndex: number;
  57. depth: number;
  58. height: number;
  59. getValue(): number;
  60. }
  61. export interface SunburstSeriesOption extends SeriesOption<SunburstStateOption, SunburstStatesMixin>, SunburstStateOption, SunburstColorByMixin, CircleLayoutOptionMixin {
  62. type?: 'sunburst';
  63. clockwise?: boolean;
  64. startAngle?: number;
  65. minAngle?: number;
  66. /**
  67. * If still show when all data zero.
  68. */
  69. stillShowZeroSum?: boolean;
  70. /**
  71. * Policy of highlighting pieces when hover on one
  72. * Valid values: 'none' (for not downplay others), 'descendant',
  73. * 'ancestor', 'self'
  74. */
  75. nodeClick?: 'rootToNode' | 'link' | false;
  76. renderLabelForZeroData?: boolean;
  77. levels?: SunburstSeriesLevelOption[];
  78. animationType?: 'expansion' | 'scale';
  79. sort?: 'desc' | 'asc' | ((a: SortParam, b: SortParam) => number);
  80. }
  81. interface SunburstSeriesModel {
  82. getFormattedLabel(dataIndex: number, state?: 'emphasis' | 'normal' | 'highlight' | 'blur' | 'select'): string;
  83. }
  84. declare class SunburstSeriesModel extends SeriesModel<SunburstSeriesOption> {
  85. static readonly type = "series.sunburst";
  86. readonly type = "series.sunburst";
  87. ignoreStyleOnData: boolean;
  88. private _viewRoot;
  89. private _levelModels;
  90. getInitialData(option: SunburstSeriesOption, ecModel: GlobalModel): SeriesData<Model<any>, import("../../data/SeriesData").DefaultDataVisual>;
  91. optionUpdated(): void;
  92. getDataParams(dataIndex: number): SunburstDataParams;
  93. getLevelModel(node: TreeNode): Model<SunburstSeriesLevelOption>;
  94. static defaultOption: SunburstSeriesOption;
  95. getViewRoot(): TreeNode;
  96. resetViewRoot(viewRoot?: TreeNode): void;
  97. enableAriaDecal(): void;
  98. }
  99. export default SunburstSeriesModel;