95721c944a9ee8ec9506f0b52141a4d052aa2475b7468d8419c000b13f2749284731cb78fd80a5065e99a702785971230fa0872dd6afbe29d6703ae4e1a183 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import Eventful from 'zrender/lib/core/Eventful.js';
  2. import { ZRenderType } from 'zrender/lib/zrender.js';
  3. import { ZRElementEvent, RoamOptionMixin } from '../../util/types.js';
  4. import { Bind3 } from 'zrender/lib/core/util.js';
  5. import Group from 'zrender/lib/graphic/Group.js';
  6. export declare type RoamType = RoamOptionMixin['roam'];
  7. interface RoamOption {
  8. zoomOnMouseWheel?: boolean | 'ctrl' | 'shift' | 'alt';
  9. moveOnMouseMove?: boolean | 'ctrl' | 'shift' | 'alt';
  10. moveOnMouseWheel?: boolean | 'ctrl' | 'shift' | 'alt';
  11. /**
  12. * If fixed the page when pan
  13. */
  14. preventDefaultMouseMove?: boolean;
  15. }
  16. declare type RoamBehavior = 'zoomOnMouseWheel' | 'moveOnMouseMove' | 'moveOnMouseWheel';
  17. export interface RoamEventParams {
  18. 'zoom': {
  19. scale: number;
  20. originX: number;
  21. originY: number;
  22. isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
  23. };
  24. 'scrollMove': {
  25. scrollDelta: number;
  26. originX: number;
  27. originY: number;
  28. isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
  29. };
  30. 'pan': {
  31. dx: number;
  32. dy: number;
  33. oldX: number;
  34. oldY: number;
  35. newX: number;
  36. newY: number;
  37. isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
  38. };
  39. }
  40. export interface RoamControllerHost {
  41. target: Group;
  42. zoom: number;
  43. zoomLimit: {
  44. min?: number;
  45. max?: number;
  46. };
  47. }
  48. declare class RoamController extends Eventful<{
  49. [key in keyof RoamEventParams]: (params: RoamEventParams[key]) => void | undefined;
  50. }> {
  51. pointerChecker: (e: ZRElementEvent, x: number, y: number) => boolean;
  52. private _zr;
  53. private _opt;
  54. private _dragging;
  55. private _pinching;
  56. private _x;
  57. private _y;
  58. readonly enable: (this: this, controlType?: RoamType, opt?: RoamOption) => void;
  59. readonly disable: () => void;
  60. constructor(zr: ZRenderType);
  61. isDragging(): boolean;
  62. isPinching(): boolean;
  63. setPointerChecker(pointerChecker: RoamController['pointerChecker']): void;
  64. dispose(): void;
  65. private _mousedownHandler;
  66. private _mousemoveHandler;
  67. private _mouseupHandler;
  68. private _mousewheelHandler;
  69. private _pinchHandler;
  70. }
  71. declare function isAvailableBehavior(behaviorToCheck: RoamBehavior, e: ZRElementEvent, settings: Pick<RoamOption, RoamBehavior>): boolean;
  72. export default RoamController;