50e0c9aa968442ed93128790474ca4b24bcafcea1f2cf2047f6928d8ff4141f62f605e85b5e95cd1727b23825980e417c89294e3a00226bb65064b54a90277 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { HashMap } from 'zrender/lib/core/util.js';
  2. import { Task, TaskContext } from './task.js';
  3. import GlobalModel from '../model/Global.js';
  4. import ExtensionAPI from './ExtensionAPI.js';
  5. import { StageHandlerInternal, StageHandlerOverallReset, StageHandler, Payload, StageHandlerReset, StageHandlerPlan, StageHandlerProgressExecutor, SeriesLargeOptionMixin, SeriesOption } from '../util/types.js';
  6. import { EChartsType } from './echarts.js';
  7. import SeriesModel from '../model/Series.js';
  8. import ChartView from '../view/Chart.js';
  9. import SeriesData from '../data/SeriesData.js';
  10. export declare type GeneralTask = Task<TaskContext>;
  11. export declare type SeriesTask = Task<SeriesTaskContext>;
  12. export declare type OverallTask = Task<OverallTaskContext> & {
  13. agentStubMap?: HashMap<StubTask>;
  14. };
  15. export declare type StubTask = Task<StubTaskContext> & {
  16. agent?: OverallTask;
  17. };
  18. export declare type Pipeline = {
  19. id: string;
  20. head: GeneralTask;
  21. tail: GeneralTask;
  22. threshold: number;
  23. progressiveEnabled: boolean;
  24. blockIndex: number;
  25. step: number;
  26. count: number;
  27. currentTask?: GeneralTask;
  28. context?: PipelineContext;
  29. };
  30. export declare type PipelineContext = {
  31. progressiveRender: boolean;
  32. modDataCount: number;
  33. large: boolean;
  34. };
  35. declare type PerformStageTaskOpt = {
  36. block?: boolean;
  37. setDirty?: boolean;
  38. visualType?: StageHandlerInternal['visualType'];
  39. dirtyMap?: HashMap<any>;
  40. };
  41. export interface SeriesTaskContext extends TaskContext {
  42. model?: SeriesModel;
  43. data?: SeriesData;
  44. view?: ChartView;
  45. ecModel?: GlobalModel;
  46. api?: ExtensionAPI;
  47. useClearVisual?: boolean;
  48. plan?: StageHandlerPlan;
  49. reset?: StageHandlerReset;
  50. scheduler?: Scheduler;
  51. payload?: Payload;
  52. resetDefines?: StageHandlerProgressExecutor[];
  53. }
  54. interface OverallTaskContext extends TaskContext {
  55. ecModel: GlobalModel;
  56. api: ExtensionAPI;
  57. overallReset: StageHandlerOverallReset;
  58. scheduler: Scheduler;
  59. payload?: Payload;
  60. }
  61. interface StubTaskContext extends TaskContext {
  62. model: SeriesModel;
  63. overallProgress: boolean;
  64. }
  65. declare class Scheduler {
  66. readonly ecInstance: EChartsType;
  67. readonly api: ExtensionAPI;
  68. unfinished: boolean;
  69. private _dataProcessorHandlers;
  70. private _visualHandlers;
  71. private _allHandlers;
  72. private _stageTaskMap;
  73. private _pipelineMap;
  74. constructor(ecInstance: EChartsType, api: ExtensionAPI, dataProcessorHandlers: StageHandlerInternal[], visualHandlers: StageHandlerInternal[]);
  75. restoreData(ecModel: GlobalModel, payload: Payload): void;
  76. getPerformArgs(task: GeneralTask, isBlock?: boolean): {
  77. step: number;
  78. modBy: number;
  79. modDataCount: number;
  80. };
  81. getPipeline(pipelineId: string): Pipeline;
  82. /**
  83. * Current, progressive rendering starts from visual and layout.
  84. * Always detect render mode in the same stage, avoiding that incorrect
  85. * detection caused by data filtering.
  86. * Caution:
  87. * `updateStreamModes` use `seriesModel.getData()`.
  88. */
  89. updateStreamModes(seriesModel: SeriesModel<SeriesOption & SeriesLargeOptionMixin>, view: ChartView): void;
  90. restorePipelines(ecModel: GlobalModel): void;
  91. prepareStageTasks(): void;
  92. prepareView(view: ChartView, model: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI): void;
  93. performDataProcessorTasks(ecModel: GlobalModel, payload?: Payload): void;
  94. performVisualTasks(ecModel: GlobalModel, payload?: Payload, opt?: PerformStageTaskOpt): void;
  95. private _performStageTasks;
  96. performSeriesTasks(ecModel: GlobalModel): void;
  97. plan(): void;
  98. updatePayload(task: Task<SeriesTaskContext | OverallTaskContext>, payload: Payload | 'remain'): void;
  99. private _createSeriesStageTask;
  100. private _createOverallStageTask;
  101. private _pipe;
  102. static wrapStageHandler(stageHandler: StageHandler | StageHandlerOverallReset, visualType: StageHandlerInternal['visualType']): StageHandlerInternal;
  103. }
  104. export default Scheduler;