f468b4a6d19e0772736ad2fdeff8dfacec46e547e1752956018839bb251d5da8c8b6efb1644dce9f458514bd028fb6f2af6b87bc23e49551da3721b991d1e1 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import * as clazzUtil from '../util/clazz.js';
  2. import ComponentModel from '../model/Component.js';
  3. import GlobalModel from '../model/Global.js';
  4. import ExtensionAPI from '../core/ExtensionAPI.js';
  5. import { Payload, ViewRootGroup, ECActionEvent, EventQueryItem, ECElementEvent } from '../util/types.js';
  6. import Element from 'zrender/lib/Element.js';
  7. import SeriesModel from '../model/Series.js';
  8. interface ComponentView {
  9. /**
  10. * Implement it if needed.
  11. */
  12. updateTransform?(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void | {
  13. update: true;
  14. };
  15. /**
  16. * Pass only when return `true`.
  17. * Implement it if needed.
  18. */
  19. filterForExposedEvent(eventType: string, query: EventQueryItem, targetEl: Element, packedEvent: ECActionEvent | ECElementEvent): boolean;
  20. /**
  21. * Find dispatchers for highlight/downplay by name.
  22. * If this methods provided, hover link (within the same name) is enabled in component.
  23. * That is, in component, a name can correspond to multiple dispatchers.
  24. * Those dispatchers can have no common ancestor.
  25. * The highlight/downplay state change will be applied on the
  26. * dispatchers and their descendents.
  27. *
  28. * @return Must return an array but not null/undefined.
  29. */
  30. findHighDownDispatchers?(name: string): Element[];
  31. focusBlurEnabled?: boolean;
  32. }
  33. declare class ComponentView {
  34. readonly group: ViewRootGroup;
  35. readonly uid: string;
  36. __model: ComponentModel;
  37. __alive: boolean;
  38. __id: string;
  39. constructor();
  40. init(ecModel: GlobalModel, api: ExtensionAPI): void;
  41. render(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  42. dispose(ecModel: GlobalModel, api: ExtensionAPI): void;
  43. updateView(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  44. updateLayout(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  45. updateVisual(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  46. /**
  47. * Hook for toggle blur target series.
  48. * Can be used in marker for blur or leave blur the markers
  49. */
  50. toggleBlurSeries(seriesModels: SeriesModel[], isBlur: boolean, ecModel: GlobalModel): void;
  51. /**
  52. * Traverse the new rendered elements.
  53. *
  54. * It will traverse the new added element in progressive rendering.
  55. * And traverse all in normal rendering.
  56. */
  57. eachRendered(cb: (el: Element) => boolean | void): void;
  58. static registerClass: clazzUtil.ClassManager['registerClass'];
  59. }
  60. export declare type ComponentViewConstructor = typeof ComponentView & clazzUtil.ExtendableConstructor & clazzUtil.ClassManager;
  61. export default ComponentView;