@angflow/system 0.0.91 → 0.0.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/esm/constants.d.ts +43 -0
  2. package/dist/esm/constants.d.ts.map +1 -0
  3. package/dist/esm/index.d.ts +9 -8
  4. package/dist/esm/index.d.ts.map +1 -0
  5. package/dist/esm/index.js +10 -7
  6. package/dist/esm/index.mjs +10 -7
  7. package/dist/esm/types/changes.d.ts +64 -0
  8. package/dist/esm/types/changes.d.ts.map +1 -0
  9. package/dist/esm/types/edges.d.ts +140 -0
  10. package/dist/esm/types/edges.d.ts.map +1 -0
  11. package/dist/esm/types/general.d.ts +296 -0
  12. package/dist/esm/types/general.d.ts.map +1 -0
  13. package/dist/esm/types/handles.d.ts +65 -0
  14. package/dist/esm/types/handles.d.ts.map +1 -0
  15. package/dist/esm/types/index.d.ts +8 -0
  16. package/dist/esm/types/index.d.ts.map +1 -0
  17. package/dist/esm/types/nodes.d.ts +157 -0
  18. package/dist/esm/types/nodes.d.ts.map +1 -0
  19. package/dist/esm/types/panzoom.d.ts +55 -0
  20. package/dist/esm/types/panzoom.d.ts.map +1 -0
  21. package/dist/esm/types/utils.d.ts +61 -0
  22. package/dist/esm/types/utils.d.ts.map +1 -0
  23. package/dist/esm/utils/connections.d.ts +13 -0
  24. package/dist/esm/utils/connections.d.ts.map +1 -0
  25. package/dist/esm/utils/dom.d.ts +21 -0
  26. package/dist/esm/utils/dom.d.ts.map +1 -0
  27. package/dist/esm/utils/edge-toolbar.d.ts +2 -0
  28. package/dist/esm/utils/edge-toolbar.d.ts.map +1 -0
  29. package/dist/esm/utils/edges/bezier-edge.d.ts +77 -0
  30. package/dist/esm/utils/edges/bezier-edge.d.ts.map +1 -0
  31. package/dist/esm/utils/edges/floating.d.ts +32 -0
  32. package/dist/esm/utils/edges/floating.d.ts.map +1 -0
  33. package/dist/esm/utils/edges/general.d.ts +91 -0
  34. package/dist/esm/utils/edges/general.d.ts.map +1 -0
  35. package/dist/esm/utils/edges/index.d.ts +7 -0
  36. package/dist/esm/utils/edges/index.d.ts.map +1 -0
  37. package/dist/esm/utils/edges/positions.d.ts +17 -0
  38. package/dist/esm/utils/edges/positions.d.ts.map +1 -0
  39. package/dist/esm/utils/edges/smoothstep-edge.d.ts +66 -0
  40. package/dist/esm/utils/edges/smoothstep-edge.d.ts.map +1 -0
  41. package/dist/esm/utils/edges/straight-edge.d.ts +41 -0
  42. package/dist/esm/utils/edges/straight-edge.d.ts.map +1 -0
  43. package/dist/esm/utils/general.d.ts +86 -0
  44. package/dist/esm/utils/general.d.ts.map +1 -0
  45. package/dist/esm/utils/graph.d.ts +191 -0
  46. package/dist/esm/utils/graph.d.ts.map +1 -0
  47. package/dist/esm/utils/index.d.ts +12 -0
  48. package/dist/esm/utils/index.d.ts.map +1 -0
  49. package/dist/esm/utils/marker.d.ts +9 -0
  50. package/dist/esm/utils/marker.d.ts.map +1 -0
  51. package/dist/esm/utils/node-toolbar.d.ts +3 -0
  52. package/dist/esm/utils/node-toolbar.d.ts.map +1 -0
  53. package/dist/esm/utils/shallow-node-data.d.ts +5 -0
  54. package/dist/esm/utils/shallow-node-data.d.ts.map +1 -0
  55. package/dist/esm/utils/store.d.ts +34 -0
  56. package/dist/esm/utils/store.d.ts.map +1 -0
  57. package/dist/esm/utils/types.d.ts +8 -0
  58. package/dist/esm/utils/types.d.ts.map +1 -0
  59. package/dist/esm/xydrag/XYDrag.d.ts +55 -0
  60. package/dist/esm/xydrag/XYDrag.d.ts.map +1 -0
  61. package/dist/esm/xydrag/index.d.ts +2 -0
  62. package/dist/esm/xydrag/index.d.ts.map +1 -0
  63. package/dist/esm/xydrag/utils.d.ts +24 -0
  64. package/dist/esm/xydrag/utils.d.ts.map +1 -0
  65. package/dist/esm/xyhandle/XYHandle.d.ts +3 -0
  66. package/dist/esm/xyhandle/XYHandle.d.ts.map +1 -0
  67. package/dist/esm/xyhandle/index.d.ts +2 -0
  68. package/dist/esm/xyhandle/index.d.ts.map +1 -0
  69. package/dist/esm/xyhandle/types.d.ts +51 -0
  70. package/dist/esm/xyhandle/types.d.ts.map +1 -0
  71. package/dist/esm/xyhandle/utils.d.ts +29 -0
  72. package/dist/esm/xyhandle/utils.d.ts.map +1 -0
  73. package/dist/esm/xyminimap/index.d.ts +28 -0
  74. package/dist/esm/xyminimap/index.d.ts.map +1 -0
  75. package/dist/esm/xypanzoom/XYPanZoom.d.ts +12 -0
  76. package/dist/esm/xypanzoom/XYPanZoom.d.ts.map +1 -0
  77. package/dist/esm/xypanzoom/eventhandler.d.ts +46 -0
  78. package/dist/esm/xypanzoom/eventhandler.d.ts.map +1 -0
  79. package/dist/esm/xypanzoom/filter.d.ts +15 -0
  80. package/dist/esm/xypanzoom/filter.d.ts.map +1 -0
  81. package/dist/esm/xypanzoom/index.d.ts +2 -0
  82. package/dist/esm/xypanzoom/index.d.ts.map +1 -0
  83. package/dist/esm/xypanzoom/utils.d.ts +9 -0
  84. package/dist/esm/xypanzoom/utils.d.ts.map +1 -0
  85. package/dist/esm/xyresizer/XYResizer.d.ts +49 -0
  86. package/dist/esm/xyresizer/XYResizer.d.ts.map +1 -0
  87. package/dist/esm/xyresizer/index.d.ts +3 -0
  88. package/dist/esm/xyresizer/index.d.ts.map +1 -0
  89. package/dist/esm/xyresizer/types.d.ts +59 -0
  90. package/dist/esm/xyresizer/types.d.ts.map +1 -0
  91. package/dist/esm/xyresizer/utils.d.ts +76 -0
  92. package/dist/esm/xyresizer/utils.d.ts.map +1 -0
  93. package/dist/umd/constants.d.ts +43 -0
  94. package/dist/umd/constants.d.ts.map +1 -0
  95. package/dist/umd/index.d.ts +9 -0
  96. package/dist/umd/index.d.ts.map +1 -0
  97. package/dist/umd/index.js +1 -1
  98. package/dist/umd/types/changes.d.ts +64 -0
  99. package/dist/umd/types/changes.d.ts.map +1 -0
  100. package/dist/umd/types/edges.d.ts +140 -0
  101. package/dist/umd/types/edges.d.ts.map +1 -0
  102. package/dist/umd/types/general.d.ts +296 -0
  103. package/dist/umd/types/general.d.ts.map +1 -0
  104. package/dist/umd/types/handles.d.ts +65 -0
  105. package/dist/umd/types/handles.d.ts.map +1 -0
  106. package/dist/umd/types/index.d.ts +8 -0
  107. package/dist/umd/types/index.d.ts.map +1 -0
  108. package/dist/umd/types/nodes.d.ts +157 -0
  109. package/dist/umd/types/nodes.d.ts.map +1 -0
  110. package/dist/umd/types/panzoom.d.ts +55 -0
  111. package/dist/umd/types/panzoom.d.ts.map +1 -0
  112. package/dist/umd/types/utils.d.ts +61 -0
  113. package/dist/umd/types/utils.d.ts.map +1 -0
  114. package/dist/umd/utils/connections.d.ts +13 -0
  115. package/dist/umd/utils/connections.d.ts.map +1 -0
  116. package/dist/umd/utils/dom.d.ts +21 -0
  117. package/dist/umd/utils/dom.d.ts.map +1 -0
  118. package/dist/umd/utils/edge-toolbar.d.ts +2 -0
  119. package/dist/umd/utils/edge-toolbar.d.ts.map +1 -0
  120. package/dist/umd/utils/edges/bezier-edge.d.ts +77 -0
  121. package/dist/umd/utils/edges/bezier-edge.d.ts.map +1 -0
  122. package/dist/umd/utils/edges/floating.d.ts +32 -0
  123. package/dist/umd/utils/edges/floating.d.ts.map +1 -0
  124. package/dist/umd/utils/edges/general.d.ts +91 -0
  125. package/dist/umd/utils/edges/general.d.ts.map +1 -0
  126. package/dist/umd/utils/edges/index.d.ts +7 -0
  127. package/dist/umd/utils/edges/index.d.ts.map +1 -0
  128. package/dist/umd/utils/edges/positions.d.ts +17 -0
  129. package/dist/umd/utils/edges/positions.d.ts.map +1 -0
  130. package/dist/umd/utils/edges/smoothstep-edge.d.ts +66 -0
  131. package/dist/umd/utils/edges/smoothstep-edge.d.ts.map +1 -0
  132. package/dist/umd/utils/edges/straight-edge.d.ts +41 -0
  133. package/dist/umd/utils/edges/straight-edge.d.ts.map +1 -0
  134. package/dist/umd/utils/general.d.ts +86 -0
  135. package/dist/umd/utils/general.d.ts.map +1 -0
  136. package/dist/umd/utils/graph.d.ts +191 -0
  137. package/dist/umd/utils/graph.d.ts.map +1 -0
  138. package/dist/umd/utils/index.d.ts +12 -0
  139. package/dist/umd/utils/index.d.ts.map +1 -0
  140. package/dist/umd/utils/marker.d.ts +9 -0
  141. package/dist/umd/utils/marker.d.ts.map +1 -0
  142. package/dist/umd/utils/node-toolbar.d.ts +3 -0
  143. package/dist/umd/utils/node-toolbar.d.ts.map +1 -0
  144. package/dist/umd/utils/shallow-node-data.d.ts +5 -0
  145. package/dist/umd/utils/shallow-node-data.d.ts.map +1 -0
  146. package/dist/umd/utils/store.d.ts +34 -0
  147. package/dist/umd/utils/store.d.ts.map +1 -0
  148. package/dist/umd/utils/types.d.ts +8 -0
  149. package/dist/umd/utils/types.d.ts.map +1 -0
  150. package/dist/umd/xydrag/XYDrag.d.ts +55 -0
  151. package/dist/umd/xydrag/XYDrag.d.ts.map +1 -0
  152. package/dist/umd/xydrag/index.d.ts +2 -0
  153. package/dist/umd/xydrag/index.d.ts.map +1 -0
  154. package/dist/umd/xydrag/utils.d.ts +24 -0
  155. package/dist/umd/xydrag/utils.d.ts.map +1 -0
  156. package/dist/umd/xyhandle/XYHandle.d.ts +3 -0
  157. package/dist/umd/xyhandle/XYHandle.d.ts.map +1 -0
  158. package/dist/umd/xyhandle/index.d.ts +2 -0
  159. package/dist/umd/xyhandle/index.d.ts.map +1 -0
  160. package/dist/umd/xyhandle/types.d.ts +51 -0
  161. package/dist/umd/xyhandle/types.d.ts.map +1 -0
  162. package/dist/umd/xyhandle/utils.d.ts +29 -0
  163. package/dist/umd/xyhandle/utils.d.ts.map +1 -0
  164. package/dist/umd/xyminimap/index.d.ts +28 -0
  165. package/dist/umd/xyminimap/index.d.ts.map +1 -0
  166. package/dist/umd/xypanzoom/XYPanZoom.d.ts +12 -0
  167. package/dist/umd/xypanzoom/XYPanZoom.d.ts.map +1 -0
  168. package/dist/umd/xypanzoom/eventhandler.d.ts +46 -0
  169. package/dist/umd/xypanzoom/eventhandler.d.ts.map +1 -0
  170. package/dist/umd/xypanzoom/filter.d.ts +15 -0
  171. package/dist/umd/xypanzoom/filter.d.ts.map +1 -0
  172. package/dist/umd/xypanzoom/index.d.ts +2 -0
  173. package/dist/umd/xypanzoom/index.d.ts.map +1 -0
  174. package/dist/umd/xypanzoom/utils.d.ts +9 -0
  175. package/dist/umd/xypanzoom/utils.d.ts.map +1 -0
  176. package/dist/umd/xyresizer/XYResizer.d.ts +49 -0
  177. package/dist/umd/xyresizer/XYResizer.d.ts.map +1 -0
  178. package/dist/umd/xyresizer/index.d.ts +3 -0
  179. package/dist/umd/xyresizer/index.d.ts.map +1 -0
  180. package/dist/umd/xyresizer/types.d.ts +59 -0
  181. package/dist/umd/xyresizer/types.d.ts.map +1 -0
  182. package/dist/umd/xyresizer/utils.d.ts +76 -0
  183. package/dist/umd/xyresizer/utils.d.ts.map +1 -0
  184. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xydrag/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGhH,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAgB3G;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAU7G;AAGD,wBAAgB,YAAY,CAAC,QAAQ,SAAS,QAAQ,EACpD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EACnD,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAoC3B;AAOD,wBAAgB,qBAAqB,CAAC,QAAQ,SAAS,gBAAgB,EAAE,EACvE,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAe,GAChB,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CA+BzB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,EACR,CAAC,EACD,CAAC,GACF,EAAE;IACD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;;;SAiBA"}
@@ -0,0 +1,3 @@
1
+ import { XYHandleInstance } from './types';
2
+ export declare const XYHandle: XYHandleInstance;
3
+ //# sourceMappingURL=XYHandle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XYHandle.d.ts","sourceRoot":"","sources":["../../src/xyhandle/XYHandle.ts"],"names":[],"mappings":"AAkBA,OAAO,EAA8C,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAuTvF,eAAO,MAAM,QAAQ,EAAE,gBAGtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './XYHandle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyhandle/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { ConnectionMode, type Connection, type OnConnect, type OnConnectStart, type HandleType, type PanBy, type Transform, type Handle, type OnConnectEnd, type UpdateConnection, type IsValidConnection, NodeLookup, FinalConnectionState } from '../types';
2
+ export type OnPointerDownParams = {
3
+ autoPanOnConnect: boolean;
4
+ connectionMode: ConnectionMode;
5
+ connectionRadius: number;
6
+ domNode: HTMLDivElement | null;
7
+ handleId: string | null;
8
+ nodeId: string;
9
+ isTarget: boolean;
10
+ nodeLookup: NodeLookup;
11
+ lib: string;
12
+ flowId: string | null;
13
+ edgeUpdaterType?: HandleType;
14
+ updateConnection: UpdateConnection;
15
+ panBy: PanBy;
16
+ cancelConnection: () => void;
17
+ onConnectStart?: OnConnectStart;
18
+ onConnect?: OnConnect;
19
+ onConnectEnd?: OnConnectEnd;
20
+ isValidConnection?: IsValidConnection;
21
+ onReconnectEnd?: (evt: MouseEvent | TouchEvent, connectionState: FinalConnectionState) => void;
22
+ onConnectionTargetChange?: (nodeId: string | null) => void;
23
+ getTransform: () => Transform;
24
+ getFromHandle: () => Handle | null;
25
+ autoPanSpeed?: number;
26
+ dragThreshold?: number;
27
+ handleDomNode: Element;
28
+ };
29
+ export type IsValidParams = {
30
+ handle: Pick<Handle, 'nodeId' | 'id' | 'type'> | null;
31
+ connectionMode: ConnectionMode;
32
+ fromNodeId: string;
33
+ fromHandleId: string | null;
34
+ fromType: HandleType;
35
+ isValidConnection?: IsValidConnection;
36
+ doc: Document | ShadowRoot;
37
+ lib: string;
38
+ flowId: string | null;
39
+ nodeLookup: NodeLookup;
40
+ };
41
+ export type XYHandleInstance = {
42
+ onPointerDown: (event: MouseEvent | TouchEvent, params: OnPointerDownParams) => void;
43
+ isValid: (event: MouseEvent | TouchEvent, params: IsValidParams) => Result;
44
+ };
45
+ export type Result = {
46
+ handleDomNode: Element | null;
47
+ isValid: boolean;
48
+ connection: Connection | null;
49
+ toHandle: Handle | null;
50
+ };
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/xyhandle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,UAAU,EACV,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,eAAe,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/F,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IACtD,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { HandleType, XYPosition, Handle, NodeLookup, ConnectionMode } from '../types';
2
+ export declare function getClosestHandle(position: XYPosition, connectionRadius: number, nodeLookup: NodeLookup, fromHandle: {
3
+ nodeId: string;
4
+ type: HandleType;
5
+ id?: string | null;
6
+ }): Handle | null;
7
+ /**
8
+ * Stage 2 drop-target resolver for connection drags.
9
+ *
10
+ * Called when Stage 1 (`getClosestHandle`) returns null. Finds a node whose bounding
11
+ * rectangle contains the pointer and has at least one compatible floating handle, then
12
+ * returns the best floating handle on that node.
13
+ *
14
+ * Disambiguation when multiple floating handles exist on the same node:
15
+ * - If a handle's declared position matches the pointer's side of the node, that handle wins.
16
+ * - Otherwise, fall back to iteration order.
17
+ *
18
+ * Does not apply per-handle `isValidConnection` validation — that is the caller's
19
+ * responsibility. If the validator rejects, the caller returns null (no cascade).
20
+ */
21
+ export declare function getFloatingDropTarget(position: XYPosition, nodeLookup: NodeLookup, fromHandle: {
22
+ nodeId: string;
23
+ type: HandleType;
24
+ id?: string | null;
25
+ }): Handle | null;
26
+ export declare function getHandle(nodeId: string, handleType: HandleType, handleId: string | null, nodeLookup: NodeLookup, connectionMode: ConnectionMode, withAbsolutePosition?: boolean): Handle | null;
27
+ export declare function getHandleType(edgeUpdaterType: HandleType | undefined, handleDomNode: Element | null): HandleType | null;
28
+ export declare function isConnectionValid(isInsideConnectionRadius: boolean, isHandleValid: boolean): boolean | null;
29
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyhandle/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAoB,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA2B7G,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,UAAU,EACpB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,MAAM,GAAG,IAAI,CA2Cf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,MAAM,GAAG,IAAI,CAmDf;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,oBAAoB,UAAQ,GAC3B,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,aAAa,EAAE,OAAO,GAAG,IAAI,GAC5B,UAAU,GAAG,IAAI,CAUnB;AAED,wBAAgB,iBAAiB,CAAC,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,kBAU1F"}
@@ -0,0 +1,28 @@
1
+ import { pointer } from 'd3-selection';
2
+ import type { CoordinateExtent, PanZoomInstance, Transform } from '../types';
3
+ export type XYMinimapInstance = {
4
+ update: (params: XYMinimapUpdate) => void;
5
+ destroy: () => void;
6
+ pointer: typeof pointer;
7
+ };
8
+ export type XYMinimapParams = {
9
+ panZoom: PanZoomInstance;
10
+ domNode: Element;
11
+ getTransform: () => Transform;
12
+ getViewScale: () => number;
13
+ };
14
+ export type XYMinimapUpdate = {
15
+ translateExtent: CoordinateExtent;
16
+ width: number;
17
+ height: number;
18
+ inversePan?: boolean;
19
+ zoomStep?: number;
20
+ pannable?: boolean;
21
+ zoomable?: boolean;
22
+ };
23
+ export declare function XYMinimap({ domNode, panZoom, getTransform, getViewScale }: XYMinimapParams): {
24
+ update: ({ translateExtent, width, height, zoomStep, pannable, zoomable, inversePan, }: XYMinimapUpdate) => void;
25
+ destroy: () => void;
26
+ pointer: typeof pointer;
27
+ };
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyminimap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe;4FAWtF,eAAe;;;EAqFnB"}
@@ -0,0 +1,12 @@
1
+ import { type Viewport, PanZoomParams, PanZoomInstance } from '../types';
2
+ export type ZoomPanValues = {
3
+ isZoomingOrPanning: boolean;
4
+ usedRightMouseButton: boolean;
5
+ prevViewport: Viewport;
6
+ mouseButton: number;
7
+ timerId: ReturnType<typeof setTimeout> | undefined;
8
+ panScrollTimeout: ReturnType<typeof setTimeout> | undefined;
9
+ isPanScrolling: boolean;
10
+ };
11
+ export declare function XYPanZoom({ domNode, minZoom, maxZoom, translateExtent, viewport, onPanZoom, onPanZoomStart, onPanZoomEnd, onDraggingChange, }: PanZoomParams): PanZoomInstance;
12
+ //# sourceMappingURL=XYPanZoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XYPanZoom.d.ts","sourceRoot":"","sources":["../../src/xypanzoom/XYPanZoom.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,QAAQ,EAGb,aAAa,EACb,eAAe,EAChB,MAAM,UAAU,CAAC;AAclB,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,EAAE,QAAQ,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IACnD,gBAAgB,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IAC5D,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAO,EACP,OAAO,EACP,eAAe,EACf,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,EAAE,aAAa,GAAG,eAAe,CA+PjC"}
@@ -0,0 +1,46 @@
1
+ import type { D3ZoomEvent } from 'd3-zoom';
2
+ import { PanOnScrollMode, type D3SelectionInstance, type D3ZoomHandler, type D3ZoomInstance, type OnPanZoom, type OnDraggingChange, type OnTransformChange } from '../types';
3
+ import { ZoomPanValues } from './XYPanZoom';
4
+ export type PanOnScrollParams = {
5
+ zoomPanValues: ZoomPanValues;
6
+ noWheelClassName: string;
7
+ d3Selection: D3SelectionInstance;
8
+ d3Zoom: D3ZoomInstance;
9
+ panOnScrollMode: PanOnScrollMode;
10
+ panOnScrollSpeed: number;
11
+ zoomOnPinch: boolean;
12
+ onPanZoomStart?: OnPanZoom;
13
+ onPanZoom?: OnPanZoom;
14
+ onPanZoomEnd?: OnPanZoom;
15
+ };
16
+ export type ZoomOnScrollParams = {
17
+ noWheelClassName: string;
18
+ preventScrolling: boolean;
19
+ d3ZoomHandler: D3ZoomHandler;
20
+ };
21
+ export type PanZoomStartParams = {
22
+ zoomPanValues: ZoomPanValues;
23
+ onDraggingChange: OnDraggingChange;
24
+ onPanZoomStart?: OnPanZoom;
25
+ };
26
+ export type PanZoomParams = {
27
+ zoomPanValues: ZoomPanValues;
28
+ panOnDrag: boolean | number[];
29
+ onPaneContextMenu: boolean;
30
+ onTransformChange: OnTransformChange;
31
+ onPanZoom?: OnPanZoom;
32
+ };
33
+ export type PanZoomEndParams = {
34
+ zoomPanValues: ZoomPanValues;
35
+ panOnDrag: boolean | number[];
36
+ panOnScroll: boolean;
37
+ onDraggingChange: (isDragging: boolean) => void;
38
+ onPanZoomEnd?: OnPanZoom;
39
+ onPaneContextMenu?: (event: any) => void;
40
+ };
41
+ export declare function createPanOnScrollHandler({ zoomPanValues, noWheelClassName, d3Selection, d3Zoom, panOnScrollMode, panOnScrollSpeed, zoomOnPinch, onPanZoomStart, onPanZoom, onPanZoomEnd, }: PanOnScrollParams): (event: any) => false | undefined;
42
+ export declare function createZoomOnScrollHandler({ noWheelClassName, preventScrolling, d3ZoomHandler }: ZoomOnScrollParams): (this: Element, event: any, d: unknown) => null;
43
+ export declare function createPanZoomStartHandler({ zoomPanValues, onDraggingChange, onPanZoomStart }: PanZoomStartParams): (event: D3ZoomEvent<HTMLDivElement, any>) => void;
44
+ export declare function createPanZoomHandler({ zoomPanValues, panOnDrag, onPaneContextMenu, onTransformChange, onPanZoom, }: PanZoomParams): (event: D3ZoomEvent<HTMLDivElement, any>) => void;
45
+ export declare function createPanZoomEndHandler({ zoomPanValues, panOnDrag, panOnScroll, onDraggingChange, onPanZoomEnd, onPaneContextMenu, }: PanZoomEndParams): (event: D3ZoomEvent<HTMLDivElement, any>) => void;
46
+ //# sourceMappingURL=eventhandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhandler.d.ts","sourceRoot":"","sources":["../../src/xypanzoom/eventhandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,GACb,EAAE,iBAAiB,IACV,OAAO,GAAG,uBAsEnB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,kBAAkB,IAChG,MAAM,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,UAqBvD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,kBAAkB,IACvG,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,UAoBhD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACV,EAAE,aAAa,IACN,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,UAahD;AAED,wBAAgB,uBAAuB,CAAC,EACtC,aAAa,EACb,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,EAAE,gBAAgB,IACT,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,UAiChD"}
@@ -0,0 +1,15 @@
1
+ export type FilterParams = {
2
+ zoomActivationKeyPressed: boolean;
3
+ zoomOnScroll: boolean;
4
+ zoomOnPinch: boolean;
5
+ panOnDrag: boolean | number[];
6
+ panOnScroll: boolean;
7
+ zoomOnDoubleClick: boolean;
8
+ userSelectionActive: boolean;
9
+ noWheelClassName: string;
10
+ noPanClassName: string;
11
+ lib: string;
12
+ connectionInProgress: boolean;
13
+ };
14
+ export declare function createFilter({ zoomActivationKeyPressed, zoomOnScroll, zoomOnPinch, panOnDrag, panOnScroll, zoomOnDoubleClick, userSelectionActive, noWheelClassName, noPanClassName, lib, connectionInProgress, }: FilterParams): (event: any) => boolean;
15
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/xypanzoom/filter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG;IACzB,wBAAwB,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,GAAG,EACH,oBAAoB,GACrB,EAAE,YAAY,IACL,OAAO,GAAG,KAAG,OAAO,CAwE7B"}
@@ -0,0 +1,2 @@
1
+ export * from './XYPanZoom';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xypanzoom/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type ZoomTransform } from 'd3-zoom';
2
+ import { type D3SelectionInstance, type Viewport } from '../types';
3
+ export declare const transformToViewport: (transform: ZoomTransform) => Viewport;
4
+ export declare const viewportToTransform: ({ x, y, zoom }: Viewport) => ZoomTransform;
5
+ export declare const isWrappedWithClass: (event: any, className: string | undefined) => any;
6
+ export declare const isRightClickPan: (panOnDrag: boolean | number[], usedButton: number) => boolean;
7
+ export declare const getD3Transition: (selection: D3SelectionInstance, duration?: number, ease?: (t: number) => number, onEnd?: () => void) => D3SelectionInstance | import("d3-transition").Transition<Element, unknown, null, undefined>;
8
+ export declare const wheelDelta: (event: any) => number;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xypanzoom/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,SAAS,CAAC;AAI3D,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGnE,eAAO,MAAM,mBAAmB,GAAI,WAAW,aAAa,KAAG,QAI7D,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,QAAQ,KAAG,aACrB,CAAC;AAE3C,eAAO,MAAM,kBAAkB,GAAI,OAAO,GAAG,EAAE,WAAW,MAAM,GAAG,SAAS,QAA0C,CAAC;AAEvH,eAAO,MAAM,eAAe,GAAI,WAAW,OAAO,GAAG,MAAM,EAAE,EAAE,YAAY,MAAM,YACV,CAAC;AAKxE,eAAO,MAAM,eAAe,GAAI,WAAW,mBAAmB,EAAE,iBAAY,EAAE,WAFtD,MAAM,WAEkE,EAAE,kBAAgB,gGAQjH,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,WAIpC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { NodeBase, NodeLookup, NodeOrigin, Transform, XYPosition } from '../types';
2
+ import type { OnResize, OnResizeEnd, OnResizeStart, ShouldResize, ControlPosition, ResizeControlDirection } from './types';
3
+ export type XYResizerChange = {
4
+ x?: number;
5
+ y?: number;
6
+ width?: number;
7
+ height?: number;
8
+ };
9
+ export type XYResizerChildChange = {
10
+ id: string;
11
+ position: XYPosition;
12
+ extent?: NodeBase['extent'];
13
+ };
14
+ type XYResizerParams = {
15
+ domNode: HTMLDivElement;
16
+ nodeId: string;
17
+ getStoreItems: () => {
18
+ nodeLookup: NodeLookup;
19
+ transform: Transform;
20
+ snapGrid?: [number, number];
21
+ snapToGrid: boolean;
22
+ nodeOrigin: NodeOrigin;
23
+ paneDomNode: HTMLDivElement | null;
24
+ };
25
+ onChange: (changes: XYResizerChange, childChanges: XYResizerChildChange[]) => void;
26
+ onEnd?: (change: Required<XYResizerChange>) => void;
27
+ };
28
+ type XYResizerUpdateParams = {
29
+ controlPosition: ControlPosition;
30
+ boundaries: {
31
+ minWidth: number;
32
+ minHeight: number;
33
+ maxWidth: number;
34
+ maxHeight: number;
35
+ };
36
+ keepAspectRatio: boolean;
37
+ resizeDirection?: ResizeControlDirection;
38
+ onResizeStart: OnResizeStart | undefined;
39
+ onResize: OnResize | undefined;
40
+ onResizeEnd: OnResizeEnd | undefined;
41
+ shouldResize: ShouldResize | undefined;
42
+ };
43
+ export type XYResizerInstance = {
44
+ update: (params: XYResizerUpdateParams) => void;
45
+ destroy: () => void;
46
+ };
47
+ export declare function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }: XYResizerParams): XYResizerInstance;
48
+ export {};
49
+ //# sourceMappingURL=XYResizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XYResizer.d.ts","sourceRoot":"","sources":["../../src/xyresizer/XYResizer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAWjB,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAC7B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM;QACnB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,SAAS,CAAC;QACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;KACpC,CAAC;IACF,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IACnF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAuBF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,GAAG,iBAAiB,CAwPjH"}
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './XYResizer';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyresizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type { D3DragEvent, SubjectPosition } from 'd3-drag';
2
+ /**
3
+ * @public
4
+ * @inline
5
+ */
6
+ export type ResizeParams = {
7
+ x: number;
8
+ y: number;
9
+ width: number;
10
+ height: number;
11
+ };
12
+ export type ResizeParamsWithDirection = ResizeParams & {
13
+ direction: number[];
14
+ };
15
+ /**
16
+ * Used to determine the control line position of the NodeResizer
17
+ *
18
+ * @public
19
+ * @inline
20
+ */
21
+ export type ControlLinePosition = 'top' | 'bottom' | 'left' | 'right';
22
+ /**
23
+ * Used to determine the control position of the NodeResizer
24
+ *
25
+ * @public
26
+ * @inline
27
+ */
28
+ export type ControlPosition = ControlLinePosition | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
29
+ /**
30
+ * Used to determine the variant of the resize control
31
+ *
32
+ * @public
33
+ */
34
+ export declare enum ResizeControlVariant {
35
+ Line = "line",
36
+ Handle = "handle"
37
+ }
38
+ /**
39
+ * The direction the user can resize the node.
40
+ * @public
41
+ * @inline
42
+ */
43
+ export type ResizeControlDirection = 'horizontal' | 'vertical';
44
+ export declare const XY_RESIZER_HANDLE_POSITIONS: ControlPosition[];
45
+ export declare const XY_RESIZER_LINE_POSITIONS: ControlLinePosition[];
46
+ type OnResizeHandler<Params = ResizeParams, Result = void> = (event: ResizeDragEvent, params: Params) => Result;
47
+ export type ResizeDragEvent = D3DragEvent<HTMLDivElement, null, SubjectPosition>;
48
+ /**
49
+ * Callback to determine if node should resize
50
+ *
51
+ * @inline
52
+ * @public
53
+ */
54
+ export type ShouldResize = OnResizeHandler<ResizeParamsWithDirection, boolean>;
55
+ export type OnResizeStart = OnResizeHandler;
56
+ export type OnResize = OnResizeHandler<ResizeParamsWithDirection>;
57
+ export type OnResizeEnd = OnResizeHandler;
58
+ export {};
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/xyresizer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAE9G;;;;GAIG;AACH,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/D,eAAO,MAAM,2BAA2B,EAAE,eAAe,EAA6D,CAAC;AACvH,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAAuC,CAAC;AAEnG,KAAK,eAAe,CAAC,MAAM,GAAG,YAAY,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAChH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;AAC/E,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { CoordinateExtent, NodeOrigin } from '../types';
2
+ import { getPointerPosition } from '../utils';
3
+ import { ControlPosition } from './types';
4
+ type GetResizeDirectionParams = {
5
+ width: number;
6
+ prevWidth: number;
7
+ height: number;
8
+ prevHeight: number;
9
+ affectsX: boolean;
10
+ affectsY: boolean;
11
+ };
12
+ /**
13
+ * Get all connecting edges for a given set of nodes
14
+ * @param width - new width of the node
15
+ * @param prevWidth - previous width of the node
16
+ * @param height - new height of the node
17
+ * @param prevHeight - previous height of the node
18
+ * @param affectsX - whether to invert the resize direction for the x axis
19
+ * @param affectsY - whether to invert the resize direction for the y axis
20
+ * @returns array of two numbers representing the direction of the resize for each axis, 0 = no change, 1 = increase, -1 = decrease
21
+ */
22
+ export declare function getResizeDirection({ width, prevWidth, height, prevHeight, affectsX, affectsY, }: GetResizeDirectionParams): number[];
23
+ /**
24
+ * Parses the control position that is being dragged to dimensions that are being resized
25
+ * @param controlPosition - position of the control that is being dragged
26
+ * @returns isHorizontal, isVertical, affectsX, affectsY,
27
+ */
28
+ export declare function getControlDirection(controlPosition: ControlPosition): {
29
+ isHorizontal: boolean;
30
+ isVertical: boolean;
31
+ affectsX: boolean;
32
+ affectsY: boolean;
33
+ };
34
+ type PrevValues = {
35
+ width: number;
36
+ height: number;
37
+ x: number;
38
+ y: number;
39
+ };
40
+ type StartValues = PrevValues & {
41
+ pointerX: number;
42
+ pointerY: number;
43
+ aspectRatio: number;
44
+ };
45
+ /**
46
+ * Calculates new width & height and x & y of node after resize based on pointer position
47
+ * @description - Buckle up, this is a chunky one... If you want to determine the new dimensions of a node after a resize,
48
+ * you have to account for all possible restrictions: min/max width/height of the node, the maximum extent the node is allowed
49
+ * to move in (in this case: resize into) determined by the parent node, the minimal extent determined by child nodes
50
+ * with expandParent or extent: 'parent' set and oh yeah, these things also have to work with keepAspectRatio!
51
+ * The way this is done is by determining how much each of these restricting actually restricts the resize and then applying the
52
+ * strongest restriction. Because the resize affects x, y and width, height and width, height of a opposing side with keepAspectRatio,
53
+ * the resize amount is always kept in distX & distY amount (the distance in mouse movement)
54
+ * Instead of clamping each value, we first calculate the biggest 'clamp' (for the lack of a better name) and then apply it to all values.
55
+ * To complicate things nodeOrigin has to be taken into account as well. This is done by offsetting the nodes as if their origin is [0, 0],
56
+ * then calculating the restrictions as usual
57
+ * @param startValues - starting values of resize
58
+ * @param controlDirection - dimensions affected by the resize
59
+ * @param pointerPosition - the current pointer position corrected for snapping
60
+ * @param boundaries - minimum and maximum dimensions of the node
61
+ * @param keepAspectRatio - prevent changes of asprect ratio
62
+ * @returns x, y, width and height of the node after resize
63
+ */
64
+ export declare function getDimensionsAfterResize(startValues: StartValues, controlDirection: ReturnType<typeof getControlDirection>, pointerPosition: ReturnType<typeof getPointerPosition>, boundaries: {
65
+ minWidth: number;
66
+ maxWidth: number;
67
+ minHeight: number;
68
+ maxHeight: number;
69
+ }, keepAspectRatio: boolean, nodeOrigin: NodeOrigin, extent?: CoordinateExtent, childExtent?: CoordinateExtent): {
70
+ width: number;
71
+ height: number;
72
+ x: number;
73
+ y: number;
74
+ };
75
+ export {};
76
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyresizer/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,EAAE,wBAAwB,YAc1B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,eAAe;;;;;EAYnE;AAED,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,WAAW,GAAG,UAAU,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAkBF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EACxD,eAAe,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,EACtD,UAAU,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACxF,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,gBAAgB;;;;;EA8J/B"}
@@ -0,0 +1,43 @@
1
+ import { CoordinateExtent, HandleType } from './types';
2
+ export declare const errorMessages: {
3
+ error001: () => string;
4
+ error002: () => string;
5
+ error003: (nodeType: string) => string;
6
+ error004: () => string;
7
+ error005: () => string;
8
+ error006: () => string;
9
+ error007: (id: string) => string;
10
+ error009: (type: string) => string;
11
+ error008: (handleType: HandleType, { id, sourceHandle, targetHandle }: {
12
+ id: string;
13
+ sourceHandle: string | null;
14
+ targetHandle: string | null;
15
+ }) => string;
16
+ error010: () => string;
17
+ error011: (edgeType: string) => string;
18
+ error012: (id: string) => string;
19
+ error013: (lib?: string) => string;
20
+ error014: () => string;
21
+ error015: () => string;
22
+ };
23
+ export declare const infiniteExtent: CoordinateExtent;
24
+ export declare const elementSelectionKeys: string[];
25
+ export declare const defaultAriaLabelConfig: {
26
+ 'node.a11yDescription.default': string;
27
+ 'node.a11yDescription.keyboardDisabled': string;
28
+ 'node.a11yDescription.ariaLiveMessage': ({ direction, x, y }: {
29
+ direction: string;
30
+ x: number;
31
+ y: number;
32
+ }) => string;
33
+ 'edge.a11yDescription.default': string;
34
+ 'controls.ariaLabel': string;
35
+ 'controls.zoomIn.ariaLabel': string;
36
+ 'controls.zoomOut.ariaLabel': string;
37
+ 'controls.fitView.ariaLabel': string;
38
+ 'controls.interactive.ariaLabel': string;
39
+ 'minimap.ariaLabel': string;
40
+ 'handle.ariaLabel': string;
41
+ };
42
+ export type AriaLabelConfig = typeof defaultAriaLabelConfig;
43
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEvD,eAAO,MAAM,aAAa;;;yBAKH,MAAM;;;;mBAIZ,MAAM;qBACJ,MAAM;2BAET,UAAU,sCACc;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;;yBAMzF,MAAM;mBACZ,MAAM;qBAEL,MAAM;;;CAMvB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,gBAG5B,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAA2B,CAAC;AAE7D,eAAO,MAAM,sBAAsB;;;kEAK6B;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;CAiB1G,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './constants';
2
+ export * from './types';
3
+ export * from './utils';
4
+ export * from './xydrag';
5
+ export * from './xyhandle';
6
+ export * from './xyminimap';
7
+ export * from './xypanzoom';
8
+ export * from './xyresizer';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}