segments.d.ts 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { Dom } from '@antv/x6-common';
  2. import { Point } from '@antv/x6-geometry';
  3. import { View } from '../../view/view';
  4. import { ToolsView } from '../../view/tool';
  5. import { Attr } from '../attr';
  6. import { CellView } from '../../view/cell';
  7. import { EdgeView } from '../../view/edge';
  8. import { Edge } from '../../model/edge';
  9. import { Graph } from '../../graph';
  10. export declare class Segments extends ToolsView.ToolItem<EdgeView, Segments.Options> {
  11. protected handles: Segments.Handle[];
  12. protected get vertices(): any[];
  13. update(): this;
  14. protected onRender(): this;
  15. protected renderHandle(vertex: Point.PointLike, nextVertex: Point.PointLike, index: number): Segments.Handle;
  16. protected startHandleListening(handle: Segments.Handle): void;
  17. protected stopHandleListening(handle: Segments.Handle): void;
  18. protected resetHandles(): void;
  19. protected shiftHandleIndexes(delta: number): void;
  20. protected resetAnchor(type: Edge.TerminalType, anchor: Edge.TerminalCellData['anchor']): void;
  21. protected snapHandle(handle: Segments.Handle, position: Point.PointLike, data: Segments.EventData): Point.PointLike;
  22. protected onHandleChanging({ handle, e, }: Segments.Handle.EventArgs['changing']): void;
  23. protected onHandleChange({ handle, e }: Segments.Handle.EventArgs['change']): void;
  24. protected onHandleChanged({ e }: Segments.Handle.EventArgs['changed']): void;
  25. protected updateHandle(handle: Segments.Handle, vertex: Point.PointLike, nextVertex: Point.PointLike, offset?: number): void;
  26. protected onRemove(): void;
  27. }
  28. export declare namespace Segments {
  29. interface Options extends ToolsView.ToolItem.Options {
  30. threshold: number;
  31. precision?: number;
  32. snapRadius: number;
  33. stopPropagation: boolean;
  34. removeRedundancies: boolean;
  35. attrs: Attr.SimpleAttrs | ((handle: Handle) => Attr.SimpleAttrs);
  36. anchor?: (this: EdgeView, pos: Point, terminalView: CellView, terminalMagnet: Element | null, terminalType: Edge.TerminalType, edgeView: EdgeView, toolView: Segments) => Edge.TerminalCellData['anchor'];
  37. createHandle?: (options: Handle.Options) => Handle;
  38. processHandle?: (handle: Handle) => void;
  39. onChanged?: (options: {
  40. edge: Edge;
  41. edgeView: EdgeView;
  42. }) => void;
  43. }
  44. interface EventData {
  45. sourceAnchor: Point;
  46. targetAnchor: Point;
  47. sourceAnchorDef: Edge.TerminalCellData['anchor'];
  48. targetAnchorDef: Edge.TerminalCellData['anchor'];
  49. }
  50. }
  51. export declare namespace Segments {
  52. class Handle extends View<Handle.EventArgs> {
  53. options: Handle.Options;
  54. container: SVGRectElement;
  55. constructor(options: Handle.Options);
  56. render(): void;
  57. updatePosition(x: number, y: number, angle: number, view: EdgeView): void;
  58. protected onMouseDown(evt: Dom.MouseDownEvent): void;
  59. protected onMouseMove(evt: Dom.MouseMoveEvent): void;
  60. protected onMouseUp(evt: Dom.MouseUpEvent): void;
  61. show(): void;
  62. hide(): void;
  63. }
  64. namespace Handle {
  65. interface Options {
  66. graph: Graph;
  67. guard: (evt: Dom.EventObject) => boolean;
  68. attrs: Attr.SimpleAttrs | ((handle: Handle) => Attr.SimpleAttrs);
  69. index?: number;
  70. axis?: 'x' | 'y';
  71. }
  72. interface EventArgs {
  73. change: {
  74. e: Dom.MouseDownEvent;
  75. handle: Handle;
  76. };
  77. changing: {
  78. e: Dom.MouseMoveEvent;
  79. handle: Handle;
  80. };
  81. changed: {
  82. e: Dom.MouseUpEvent;
  83. handle: Handle;
  84. };
  85. }
  86. }
  87. }
  88. export declare namespace Segments {
  89. }