transform.d.ts 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import { Dom, NumberExt } from '@antv/x6-common';
  2. import { Point, Rectangle } from '@antv/x6-geometry';
  3. import { Base } from './base';
  4. import { Cell } from '../model';
  5. export declare class TransformManager extends Base {
  6. protected viewportMatrix: DOMMatrix | null;
  7. protected viewportTransformString: string | null;
  8. protected get container(): HTMLElement;
  9. protected get viewport(): SVGGElement;
  10. protected get stage(): SVGGElement;
  11. protected init(): void;
  12. /**
  13. * Returns the current transformation matrix of the graph.
  14. */
  15. getMatrix(): DOMMatrix;
  16. /**
  17. * Sets new transformation with the given `matrix`
  18. */
  19. setMatrix(matrix: DOMMatrix | Dom.MatrixLike | null): void;
  20. resize(width?: number, height?: number): this;
  21. getComputedSize(): {
  22. width: number;
  23. height: number;
  24. };
  25. getScale(): Dom.Scale;
  26. scale(sx: number, sy?: number, ox?: number, oy?: number): this;
  27. clampScale(scale: number): number;
  28. getZoom(): number;
  29. zoom(factor: number, options?: TransformManager.ZoomOptions): this;
  30. getRotation(): Dom.Rotation;
  31. rotate(angle: number, cx?: number, cy?: number): this;
  32. getTranslation(): Dom.Translation;
  33. translate(tx: number, ty: number): this;
  34. setOrigin(ox?: number, oy?: number): this;
  35. fitToContent(gridWidth?: number | TransformManager.FitToContentFullOptions, gridHeight?: number, padding?: NumberExt.SideOptions, options?: TransformManager.FitToContentOptions): Rectangle;
  36. scaleContentToFit(options?: TransformManager.ScaleContentToFitOptions): void;
  37. scaleContentToFitImpl(options?: TransformManager.ScaleContentToFitOptions, translate?: boolean): void;
  38. getContentArea(options?: TransformManager.GetContentAreaOptions): Rectangle;
  39. getContentBBox(options?: TransformManager.GetContentAreaOptions): Rectangle;
  40. getGraphArea(): Rectangle;
  41. zoomToRect(rect: Rectangle.RectangleLike, options?: TransformManager.ScaleContentToFitOptions): this;
  42. zoomToFit(options?: TransformManager.GetContentAreaOptions & TransformManager.ScaleContentToFitOptions): this;
  43. centerPoint(x?: number, y?: number): void;
  44. centerContent(options?: TransformManager.GetContentAreaOptions): void;
  45. centerCell(cell: Cell): void | this;
  46. positionPoint(point: Point.PointLike, x: number | string, y: number | string): void;
  47. positionRect(rect: Rectangle.RectangleLike, pos: TransformManager.Direction): void | this;
  48. positionCell(cell: Cell, pos: TransformManager.Direction): void | this;
  49. positionContent(pos: TransformManager.Direction, options?: TransformManager.GetContentAreaOptions): void | this;
  50. }
  51. export declare namespace TransformManager {
  52. interface FitToContentOptions extends GetContentAreaOptions {
  53. minWidth?: number;
  54. minHeight?: number;
  55. maxWidth?: number;
  56. maxHeight?: number;
  57. contentArea?: Rectangle | Rectangle.RectangleLike;
  58. border?: number;
  59. allowNewOrigin?: 'negative' | 'positive' | 'any';
  60. }
  61. interface FitToContentFullOptions extends FitToContentOptions {
  62. gridWidth?: number;
  63. gridHeight?: number;
  64. padding?: NumberExt.SideOptions;
  65. }
  66. interface ScaleContentToFitOptions extends GetContentAreaOptions {
  67. padding?: NumberExt.SideOptions;
  68. minScale?: number;
  69. maxScale?: number;
  70. minScaleX?: number;
  71. minScaleY?: number;
  72. maxScaleX?: number;
  73. maxScaleY?: number;
  74. scaleGrid?: number;
  75. contentArea?: Rectangle.RectangleLike;
  76. viewportArea?: Rectangle.RectangleLike;
  77. preserveAspectRatio?: boolean;
  78. }
  79. interface GetContentAreaOptions {
  80. useCellGeometry?: boolean;
  81. }
  82. interface ZoomOptions {
  83. absolute?: boolean;
  84. minScale?: number;
  85. maxScale?: number;
  86. scaleGrid?: number;
  87. center?: Point.PointLike;
  88. }
  89. type Direction = 'center' | 'top' | 'top-right' | 'top-left' | 'right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'left';
  90. interface CenterOptions {
  91. padding?: NumberExt.SideOptions;
  92. }
  93. type PositionContentOptions = GetContentAreaOptions & CenterOptions;
  94. }