c667aacfc396a7c0b6c8de203c437bb9eb7cbe36c4458d1e99d54fe9840331df9c5aeb2d9b0054eea1fa01a5217b50d16c50b7f432460c39ae97ce543bf972 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import ComponentModel from '../../model/Component.js';
  2. import SeriesData from '../../data/SeriesData.js';
  3. import { ComponentOption, BoxLayoutOptionMixin, LayoutOrient, SymbolOptionMixin, LineStyleOption, ItemStyleOption, LabelOption, OptionDataValue, ZRColor, ColorString, CommonTooltipOption, CallbackDataParams, ZREasing } from '../../util/types.js';
  4. import Model from '../../model/Model.js';
  5. import GlobalModel, { GlobalModelSetOptionOpts } from '../../model/Global.js';
  6. export interface TimelineControlStyle extends ItemStyleOption {
  7. show?: boolean;
  8. showPlayBtn?: boolean;
  9. showPrevBtn?: boolean;
  10. showNextBtn?: boolean;
  11. itemSize?: number;
  12. itemGap?: number;
  13. position?: 'left' | 'right' | 'top' | 'bottom';
  14. playIcon?: string;
  15. stopIcon?: string;
  16. prevIcon?: string;
  17. nextIcon?: string;
  18. playBtnSize?: number | string;
  19. stopBtnSize?: number | string;
  20. nextBtnSize?: number | string;
  21. prevBtnSize?: number | string;
  22. }
  23. export interface TimelineCheckpointStyle extends ItemStyleOption, SymbolOptionMixin {
  24. animation?: boolean;
  25. animationDuration?: number;
  26. animationEasing?: ZREasing;
  27. }
  28. interface TimelineLineStyleOption extends LineStyleOption {
  29. show?: boolean;
  30. }
  31. interface TimelineLabelOption extends Omit<LabelOption, 'position'> {
  32. show?: boolean;
  33. position?: 'auto' | 'left' | 'right' | 'top' | 'bottom' | number;
  34. interval?: 'auto' | number;
  35. formatter?: string | ((value: string | number, index: number) => string);
  36. }
  37. export interface TimelineDataItemOption extends SymbolOptionMixin {
  38. value?: OptionDataValue;
  39. itemStyle?: ItemStyleOption;
  40. label?: TimelineLabelOption;
  41. checkpointStyle?: TimelineCheckpointStyle;
  42. emphasis?: {
  43. itemStyle?: ItemStyleOption;
  44. label?: TimelineLabelOption;
  45. checkpointStyle?: TimelineCheckpointStyle;
  46. };
  47. progress?: {
  48. lineStyle?: TimelineLineStyleOption;
  49. itemStyle?: ItemStyleOption;
  50. label?: TimelineLabelOption;
  51. };
  52. tooltip?: boolean;
  53. }
  54. export interface TimelineOption extends ComponentOption, BoxLayoutOptionMixin, SymbolOptionMixin {
  55. mainType?: 'timeline';
  56. backgroundColor?: ZRColor;
  57. borderColor?: ColorString;
  58. borderWidth?: number;
  59. tooltip?: CommonTooltipOption<CallbackDataParams> & {
  60. trigger?: 'item';
  61. };
  62. show?: boolean;
  63. axisType?: 'category' | 'time' | 'value';
  64. currentIndex?: number;
  65. autoPlay?: boolean;
  66. rewind?: boolean;
  67. loop?: boolean;
  68. playInterval?: number;
  69. realtime?: boolean;
  70. controlPosition?: 'left' | 'right' | 'top' | 'bottom';
  71. padding?: number | number[];
  72. orient?: LayoutOrient;
  73. inverse?: boolean;
  74. replaceMerge?: GlobalModelSetOptionOpts['replaceMerge'];
  75. lineStyle?: TimelineLineStyleOption;
  76. itemStyle?: ItemStyleOption;
  77. checkpointStyle?: TimelineCheckpointStyle;
  78. controlStyle?: TimelineControlStyle;
  79. label?: TimelineLabelOption;
  80. emphasis?: {
  81. lineStyle?: TimelineLineStyleOption;
  82. itemStyle?: ItemStyleOption;
  83. checkpointStyle?: TimelineCheckpointStyle;
  84. controlStyle?: TimelineControlStyle;
  85. label?: TimelineLabelOption;
  86. };
  87. progress?: {
  88. lineStyle?: TimelineLineStyleOption;
  89. itemStyle?: ItemStyleOption;
  90. label?: TimelineLabelOption;
  91. };
  92. data?: (OptionDataValue | TimelineDataItemOption)[];
  93. }
  94. declare class TimelineModel extends ComponentModel<TimelineOption> {
  95. static type: string;
  96. type: string;
  97. layoutMode: string;
  98. private _data;
  99. private _names;
  100. /**
  101. * @override
  102. */
  103. init(option: TimelineOption, parentModel: Model, ecModel: GlobalModel): void;
  104. /**
  105. * @override
  106. */
  107. mergeOption(option: TimelineOption): void;
  108. setCurrentIndex(currentIndex: number): void;
  109. /**
  110. * @return {number} currentIndex
  111. */
  112. getCurrentIndex(): number;
  113. /**
  114. * @return {boolean}
  115. */
  116. isIndexMax(): boolean;
  117. /**
  118. * @param {boolean} state true: play, false: stop
  119. */
  120. setPlayState(state: boolean): void;
  121. /**
  122. * @return {boolean} true: play, false: stop
  123. */
  124. getPlayState(): boolean;
  125. /**
  126. * @private
  127. */
  128. _initData(): void;
  129. getData(): SeriesData<TimelineModel, import("../../data/SeriesData").DefaultDataVisual>;
  130. /**
  131. * @public
  132. * @return {Array.<string>} categoreis
  133. */
  134. getCategories(): string[];
  135. /**
  136. * @protected
  137. */
  138. static defaultOption: TimelineOption;
  139. }
  140. export default TimelineModel;