@realflow/core 0.1.0 → 0.2.1

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.
package/dist/paths.js CHANGED
@@ -174,6 +174,36 @@ export const pathFns = {
174
174
  smoothstep: smoothStepPath,
175
175
  step: stepPath,
176
176
  };
177
- /** Build a path for the given edge type, falling back to bezier. */
178
- export const edgePath = (type, s) => (pathFns[type ?? 'bezier'] ?? bezierPath)(s);
177
+ /**
178
+ * Smooth cubic spline (Catmull-Rom → bezier) through the given points the
179
+ * curve passes exactly through every point. Used for editable edges whose
180
+ * control points the user has dragged.
181
+ */
182
+ export const splinePath = (points) => {
183
+ const pts = dedupe(points);
184
+ if (pts.length < 2) {
185
+ const p = pts[0] ?? { x: 0, y: 0 };
186
+ return { d: `M ${f(p.x)},${f(p.y)}`, label: { x: p.x, y: p.y } };
187
+ }
188
+ if (pts.length === 2) {
189
+ return straightPath({ source: pts[0], target: pts[1], sourceSide: 'right', targetSide: 'left' });
190
+ }
191
+ let d = `M ${f(pts[0].x)},${f(pts[0].y)}`;
192
+ for (let i = 0; i < pts.length - 1; i++) {
193
+ const p0 = pts[i - 1] ?? pts[i];
194
+ const p1 = pts[i];
195
+ const p2 = pts[i + 1];
196
+ const p3 = pts[i + 2] ?? p2;
197
+ const c1 = { x: p1.x + (p2.x - p0.x) / 6, y: p1.y + (p2.y - p0.y) / 6 };
198
+ const c2 = { x: p2.x - (p3.x - p1.x) / 6, y: p2.y - (p3.y - p1.y) / 6 };
199
+ d += ` C ${f(c1.x)},${f(c1.y)} ${f(c2.x)},${f(c2.y)} ${f(p2.x)},${f(p2.y)}`;
200
+ }
201
+ const mid = pts[Math.floor(pts.length / 2)];
202
+ return { d, label: { x: mid.x, y: mid.y } };
203
+ };
204
+ /** Build a path for the given edge type, falling back to bezier. Editable
205
+ * control points (waypoints) route a smooth spline regardless of type. */
206
+ export const edgePath = (type, s) => s.waypoints && s.waypoints.length > 0
207
+ ? splinePath([s.source, ...s.waypoints, s.target])
208
+ : (pathFns[type ?? 'bezier'] ?? bezierPath)(s);
179
209
  //# sourceMappingURL=paths.js.map
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
package/dist/routing.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Rect, Side, XY } from './types.js';
2
2
  /**
3
3
  * Orthogonal edge routing with obstacle avoidance — the feature neither
4
- * React Flow nor ReFlow shipped before. Edges route around nodes instead of
4
+ * React Flow nor RealFlow shipped before. Edges route around nodes instead of
5
5
  * cutting straight through them.
6
6
  *
7
7
  * The algorithm is an A* search over a **Hanan grid**: the lattice formed by
package/dist/store.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { ConnectionCandidate, ConnectionState, Edge, FitViewOptions, FlowSnapshot, Guide, HandleInfo, HandleKind, Node, Rect, StoreOptions, Viewport, XY } from './types.js';
1
+ import type { ConnectionCandidate, ConnectionState, Edge, FitViewOptions, FlowSnapshot, Guide, HandleInfo, HandleKind, Node, Rect, ShapeKind, StoreOptions, Tool, Viewport, XY } from './types.js';
2
2
  import { SpatialIndex } from './spatial.js';
3
3
  export declare const DEFAULT_NODE_WIDTH = 172;
4
4
  export declare const DEFAULT_NODE_HEIGHT = 44;
5
5
  type Listener = () => void;
6
6
  /**
7
- * FlowStore is ReFlow's reactive heart: a Map-backed graph store with
7
+ * FlowStore is RealFlow's reactive heart: a Map-backed graph store with
8
8
  * fine-grained topic subscriptions.
9
9
  *
10
10
  * Every mutation notifies only the topics it touches (`node:<id>`,
@@ -128,6 +128,13 @@ export declare class FlowStore {
128
128
  addEdge(edge: Edge): void;
129
129
  removeEdges(ids: string[]): void;
130
130
  updateEdge(id: string, patch: Partial<Edge>): void;
131
+ /**
132
+ * Transiently set an edge's control points and re-render it, without touching
133
+ * history — for live feedback while dragging an editable edge. On drop,
134
+ * restore the pre-drag value and call {@link updateEdge} once so a single undo
135
+ * captures the net move.
136
+ */
137
+ setEdgeControlPointsLive(id: string, points: XY[]): void;
131
138
  /**
132
139
  * Diff-sync the whole graph (used by controlled mode and loadSnapshot).
133
140
  * Unchanged elements are left untouched, so selection, measured sizes and
@@ -197,6 +204,60 @@ export declare class FlowStore {
197
204
  clearSelection(): void;
198
205
  selectAll(): void;
199
206
  deleteSelection(): void;
207
+ /**
208
+ * Wrap the selected nodes in a new container node sized to their bounding
209
+ * box. Each member is re-parented to the group with its position rebased to
210
+ * the group's local space; a member whose current parent is also selected is
211
+ * left alone so existing nesting is preserved. One undo entry. Returns the
212
+ * new group id, or `undefined` if nothing is selected.
213
+ */
214
+ groupSelection(options?: {
215
+ padding?: number;
216
+ label?: string;
217
+ id?: string;
218
+ }): string | undefined;
219
+ /**
220
+ * Dissolve a group: its direct children are re-parented back to the root at
221
+ * their absolute positions and the container node is removed. Delegates to
222
+ * {@link removeNodes}, which already reparents surviving children on delete,
223
+ * so it is a single undoable step. No-op if `groupId` is not a node.
224
+ */
225
+ ungroup(groupId: string): void;
226
+ /** Collapse a node: hide all of its edge-descendants. One undo entry. */
227
+ collapseNode(id: string): void;
228
+ /** Expand a previously collapsed node, revealing its subtree. */
229
+ expandNode(id: string): void;
230
+ /** The active canvas tool. `select` is normal pan/select; others draw. */
231
+ tool: Tool;
232
+ /** Switch the active canvas tool (freehand / shape stamps / select). */
233
+ setTool(tool: Tool): void;
234
+ /** Create a shape node filling `rect`. One undo entry; returns the new id. */
235
+ createShape(shape: ShapeKind, rect: Rect, data?: Record<string, unknown>): string;
236
+ /**
237
+ * Create a freehand node from a captured stroke (absolute flow points). The
238
+ * node is sized to the stroke's bounding box (with padding) and the points
239
+ * are stored relative to it. One undo entry; returns the new id.
240
+ */
241
+ createFreehand(points: XY[], data?: Record<string, unknown>): string;
242
+ /** Duration (ms) of the most recently requested node-position tween. */
243
+ positionAnimationMs: number;
244
+ /**
245
+ * Signal that node positions are about to change and should tween. The React
246
+ * layer subscribes to the `layout-anim` topic and arms a CSS transition on
247
+ * nodes for `ms`; headless callers can ignore it. Emitted before the
248
+ * position update so the transition is in place when the new transforms land.
249
+ */
250
+ beginPositionAnimation(ms: number): void;
251
+ /** Flip a node between collapsed and expanded. */
252
+ toggleCollapse(id: string): void;
253
+ /**
254
+ * Recompute node/edge visibility from every node's `collapsed` flag: a node
255
+ * is hidden iff it is an edge-descendant of at least one collapsed node; an
256
+ * edge is hidden iff either endpoint is hidden. Nested collapses compose —
257
+ * a collapsed node inside a collapsed subtree keeps its own subtree hidden
258
+ * when the outer one expands. Only changed flags are written.
259
+ */
260
+ private _applyCollapseVisibility;
200
261
  /**
201
262
  * Serialize a set of nodes (default: the selection) plus the edges wholly
202
263
  * between them. The result is JSON-serializable — stash it in app state or
@@ -227,6 +288,16 @@ export declare class FlowStore {
227
288
  /** Move the dragged nodes by a flow-space delta from the drag origin. */
228
289
  dragBy(delta: XY): void;
229
290
  endDrag(): void;
291
+ /** True if `candidate` is a parentId-descendant of `ancestor`. */
292
+ private _isParentDescendant;
293
+ /**
294
+ * Attach a node to the smallest visible `group` node whose bounds contain the
295
+ * node's absolute center, or detach it when dropped outside every group.
296
+ * Skips groups nested under the node (no parent cycles). Rebases position so
297
+ * the node does not visually move. Called from endDrag when reparentOnDrop is
298
+ * enabled; assumes it runs inside a transaction.
299
+ */
300
+ private _reparentByOverlap;
230
301
  get dragging(): boolean;
231
302
  private setGuides;
232
303
  startConnection(nodeId: string, handleId?: string, kind?: HandleKind): void;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { clamp, expandRect, fitRect, rectContainsRect, rectCenter, rectUnion, sideAnchor, snapToGrid, visibleRect, zoomAt, } from './geometry.js';
2
2
  import { SpatialIndex } from './spatial.js';
3
3
  import { computeGuides } from './guides.js';
4
+ import { getDescendants } from './algorithms.js';
4
5
  import { setsEqual, uid } from './utils.js';
5
6
  export const DEFAULT_NODE_WIDTH = 172;
6
7
  export const DEFAULT_NODE_HEIGHT = 44;
@@ -13,7 +14,7 @@ const rafSchedule = (fn) => {
13
14
  fn();
14
15
  };
15
16
  /**
16
- * FlowStore is ReFlow's reactive heart: a Map-backed graph store with
17
+ * FlowStore is RealFlow's reactive heart: a Map-backed graph store with
17
18
  * fine-grained topic subscriptions.
18
19
  *
19
20
  * Every mutation notifies only the topics it touches (`node:<id>`,
@@ -593,6 +594,18 @@ export class FlowStore {
593
594
  });
594
595
  this.commit();
595
596
  }
597
+ /**
598
+ * Transiently set an edge's control points and re-render it, without touching
599
+ * history — for live feedback while dragging an editable edge. On drop,
600
+ * restore the pre-drag value and call {@link updateEdge} once so a single undo
601
+ * captures the net move.
602
+ */
603
+ setEdgeControlPointsLive(id, points) {
604
+ const prev = this.edges.get(id);
605
+ if (!prev)
606
+ return;
607
+ this._replaceEdge({ ...prev, controlPoints: points });
608
+ }
596
609
  /**
597
610
  * Diff-sync the whole graph (used by controlled mode and loadSnapshot).
598
611
  * Unchanged elements are left untouched, so selection, measured sizes and
@@ -936,6 +949,198 @@ export class FlowStore {
936
949
  });
937
950
  this.commit();
938
951
  }
952
+ /**
953
+ * Wrap the selected nodes in a new container node sized to their bounding
954
+ * box. Each member is re-parented to the group with its position rebased to
955
+ * the group's local space; a member whose current parent is also selected is
956
+ * left alone so existing nesting is preserved. One undo entry. Returns the
957
+ * new group id, or `undefined` if nothing is selected.
958
+ */
959
+ groupSelection(options = {}) {
960
+ const ids = [...this.selectedNodes].filter((id) => this.nodes.has(id));
961
+ if (ids.length === 0)
962
+ return undefined;
963
+ const pad = options.padding ?? 32;
964
+ // Absolute bounding box over the whole selection.
965
+ let minX = Infinity;
966
+ let minY = Infinity;
967
+ let maxX = -Infinity;
968
+ let maxY = -Infinity;
969
+ for (const id of ids) {
970
+ const n = this.nodes.get(id);
971
+ const abs = this.absolutePosition(id);
972
+ minX = Math.min(minX, abs.x);
973
+ minY = Math.min(minY, abs.y);
974
+ maxX = Math.max(maxX, abs.x + (n.width ?? DEFAULT_NODE_WIDTH));
975
+ maxY = Math.max(maxY, abs.y + (n.height ?? DEFAULT_NODE_HEIGHT));
976
+ }
977
+ const groupId = options.id ?? uid('group');
978
+ const gx = minX - pad;
979
+ const gy = minY - pad;
980
+ const selectedSet = new Set(ids);
981
+ this.transact('group selection', () => {
982
+ this.addNode({
983
+ id: groupId,
984
+ type: 'group',
985
+ position: { x: gx, y: gy },
986
+ width: maxX - minX + pad * 2,
987
+ height: maxY - minY + pad * 2,
988
+ data: { label: options.label ?? 'Group' },
989
+ });
990
+ for (const id of ids) {
991
+ const n = this.nodes.get(id);
992
+ // Skip members that ride inside another selected member (keep nesting).
993
+ if (n.parentId && selectedSet.has(n.parentId))
994
+ continue;
995
+ const abs = this.absolutePosition(id);
996
+ this.updateNode(id, { parentId: groupId, position: { x: abs.x - gx, y: abs.y - gy } });
997
+ }
998
+ this.setSelection([groupId]);
999
+ });
1000
+ return groupId;
1001
+ }
1002
+ /**
1003
+ * Dissolve a group: its direct children are re-parented back to the root at
1004
+ * their absolute positions and the container node is removed. Delegates to
1005
+ * {@link removeNodes}, which already reparents surviving children on delete,
1006
+ * so it is a single undoable step. No-op if `groupId` is not a node.
1007
+ */
1008
+ ungroup(groupId) {
1009
+ if (!this.nodes.has(groupId))
1010
+ return;
1011
+ this.removeNodes([groupId]);
1012
+ }
1013
+ /** Collapse a node: hide all of its edge-descendants. One undo entry. */
1014
+ collapseNode(id) {
1015
+ const n = this.nodes.get(id);
1016
+ if (!n || n.collapsed)
1017
+ return;
1018
+ this.transact('collapse node', () => {
1019
+ this.updateNode(id, { collapsed: true });
1020
+ this._applyCollapseVisibility();
1021
+ });
1022
+ }
1023
+ /** Expand a previously collapsed node, revealing its subtree. */
1024
+ expandNode(id) {
1025
+ const n = this.nodes.get(id);
1026
+ if (!n || !n.collapsed)
1027
+ return;
1028
+ this.transact('expand node', () => {
1029
+ this.updateNode(id, { collapsed: false });
1030
+ this._applyCollapseVisibility();
1031
+ });
1032
+ }
1033
+ /** The active canvas tool. `select` is normal pan/select; others draw. */
1034
+ tool = 'select';
1035
+ /** Switch the active canvas tool (freehand / shape stamps / select). */
1036
+ setTool(tool) {
1037
+ if (this.tool === tool)
1038
+ return;
1039
+ this.tool = tool;
1040
+ this.emit('tool');
1041
+ }
1042
+ /** Create a shape node filling `rect`. One undo entry; returns the new id. */
1043
+ createShape(shape, rect, data = {}) {
1044
+ const id = uid('shape');
1045
+ this.transact('add shape', () => {
1046
+ this.addNode({
1047
+ id,
1048
+ type: 'shape',
1049
+ position: { x: rect.x, y: rect.y },
1050
+ width: Math.max(8, rect.width),
1051
+ height: Math.max(8, rect.height),
1052
+ data: { shape, ...data },
1053
+ });
1054
+ this.setSelection([id]);
1055
+ });
1056
+ return id;
1057
+ }
1058
+ /**
1059
+ * Create a freehand node from a captured stroke (absolute flow points). The
1060
+ * node is sized to the stroke's bounding box (with padding) and the points
1061
+ * are stored relative to it. One undo entry; returns the new id.
1062
+ */
1063
+ createFreehand(points, data = {}) {
1064
+ let minX = Infinity;
1065
+ let minY = Infinity;
1066
+ let maxX = -Infinity;
1067
+ let maxY = -Infinity;
1068
+ for (const p of points) {
1069
+ minX = Math.min(minX, p.x);
1070
+ minY = Math.min(minY, p.y);
1071
+ maxX = Math.max(maxX, p.x);
1072
+ maxY = Math.max(maxY, p.y);
1073
+ }
1074
+ if (!Number.isFinite(minX)) {
1075
+ minX = 0;
1076
+ minY = 0;
1077
+ maxX = 0;
1078
+ maxY = 0;
1079
+ }
1080
+ const pad = 4;
1081
+ const ox = minX - pad;
1082
+ const oy = minY - pad;
1083
+ const id = uid('draw');
1084
+ this.transact('add drawing', () => {
1085
+ this.addNode({
1086
+ id,
1087
+ type: 'freehand',
1088
+ position: { x: ox, y: oy },
1089
+ width: maxX - minX + pad * 2,
1090
+ height: maxY - minY + pad * 2,
1091
+ data: { points: points.map((p) => ({ x: p.x - ox, y: p.y - oy })), ...data },
1092
+ });
1093
+ this.setSelection([id]);
1094
+ });
1095
+ return id;
1096
+ }
1097
+ /** Duration (ms) of the most recently requested node-position tween. */
1098
+ positionAnimationMs = 0;
1099
+ /**
1100
+ * Signal that node positions are about to change and should tween. The React
1101
+ * layer subscribes to the `layout-anim` topic and arms a CSS transition on
1102
+ * nodes for `ms`; headless callers can ignore it. Emitted before the
1103
+ * position update so the transition is in place when the new transforms land.
1104
+ */
1105
+ beginPositionAnimation(ms) {
1106
+ this.positionAnimationMs = ms;
1107
+ this.emit('layout-anim');
1108
+ }
1109
+ /** Flip a node between collapsed and expanded. */
1110
+ toggleCollapse(id) {
1111
+ const n = this.nodes.get(id);
1112
+ if (!n)
1113
+ return;
1114
+ if (n.collapsed)
1115
+ this.expandNode(id);
1116
+ else
1117
+ this.collapseNode(id);
1118
+ }
1119
+ /**
1120
+ * Recompute node/edge visibility from every node's `collapsed` flag: a node
1121
+ * is hidden iff it is an edge-descendant of at least one collapsed node; an
1122
+ * edge is hidden iff either endpoint is hidden. Nested collapses compose —
1123
+ * a collapsed node inside a collapsed subtree keeps its own subtree hidden
1124
+ * when the outer one expands. Only changed flags are written.
1125
+ */
1126
+ _applyCollapseVisibility() {
1127
+ const hidden = new Set();
1128
+ for (const n of this.nodes.values()) {
1129
+ if (n.collapsed)
1130
+ for (const d of getDescendants(this, n.id))
1131
+ hidden.add(d);
1132
+ }
1133
+ for (const n of [...this.nodes.values()]) {
1134
+ const shouldHide = hidden.has(n.id);
1135
+ if (!!n.hidden !== shouldHide)
1136
+ this.updateNode(n.id, { hidden: shouldHide });
1137
+ }
1138
+ for (const e of [...this.edges.values()]) {
1139
+ const shouldHide = hidden.has(e.source) || hidden.has(e.target);
1140
+ if (!!e.hidden !== shouldHide)
1141
+ this.updateEdge(e.id, { hidden: shouldHide });
1142
+ }
1143
+ }
939
1144
  // ── clipboard: copy / paste / duplicate ───────────────────────────────
940
1145
  /**
941
1146
  * Serialize a set of nodes (default: the selection) plus the edges wholly
@@ -1114,28 +1319,84 @@ export class FlowStore {
1114
1319
  if (n)
1115
1320
  after.set(id, { ...n.position });
1116
1321
  }
1117
- this.record('move', {
1118
- undo: () => this.batch(() => {
1119
- for (const [id, pos] of before) {
1120
- const n = this.nodes.get(id);
1121
- if (n) {
1122
- this.nodes.set(id, { ...n, position: pos });
1123
- this.touchNode(id);
1322
+ this.transact('move', () => {
1323
+ this.record('move', {
1324
+ undo: () => this.batch(() => {
1325
+ for (const [id, pos] of before) {
1326
+ const n = this.nodes.get(id);
1327
+ if (n) {
1328
+ this.nodes.set(id, { ...n, position: pos });
1329
+ this.touchNode(id);
1330
+ }
1124
1331
  }
1125
- }
1126
- }),
1127
- redo: () => this.batch(() => {
1128
- for (const [id, pos] of after) {
1129
- const n = this.nodes.get(id);
1130
- if (n) {
1131
- this.nodes.set(id, { ...n, position: pos });
1132
- this.touchNode(id);
1332
+ }),
1333
+ redo: () => this.batch(() => {
1334
+ for (const [id, pos] of after) {
1335
+ const n = this.nodes.get(id);
1336
+ if (n) {
1337
+ this.nodes.set(id, { ...n, position: pos });
1338
+ this.touchNode(id);
1339
+ }
1133
1340
  }
1134
- }
1135
- }),
1341
+ }),
1342
+ });
1343
+ // Dynamic grouping: attach/detach dropped nodes to the group under them.
1344
+ if (this.options.reparentOnDrop) {
1345
+ for (const id of drag.ids)
1346
+ this._reparentByOverlap(id);
1347
+ }
1136
1348
  });
1137
1349
  this.commit();
1138
1350
  }
1351
+ /** True if `candidate` is a parentId-descendant of `ancestor`. */
1352
+ _isParentDescendant(candidate, ancestor) {
1353
+ let p = this.nodes.get(candidate)?.parentId;
1354
+ const seen = new Set();
1355
+ while (p && !seen.has(p)) {
1356
+ if (p === ancestor)
1357
+ return true;
1358
+ seen.add(p);
1359
+ p = this.nodes.get(p)?.parentId;
1360
+ }
1361
+ return false;
1362
+ }
1363
+ /**
1364
+ * Attach a node to the smallest visible `group` node whose bounds contain the
1365
+ * node's absolute center, or detach it when dropped outside every group.
1366
+ * Skips groups nested under the node (no parent cycles). Rebases position so
1367
+ * the node does not visually move. Called from endDrag when reparentOnDrop is
1368
+ * enabled; assumes it runs inside a transaction.
1369
+ */
1370
+ _reparentByOverlap(id) {
1371
+ const node = this.nodes.get(id);
1372
+ if (!node)
1373
+ return;
1374
+ const abs = this.absolutePosition(id);
1375
+ const cx = abs.x + (node.width ?? DEFAULT_NODE_WIDTH) / 2;
1376
+ const cy = abs.y + (node.height ?? DEFAULT_NODE_HEIGHT) / 2;
1377
+ let target;
1378
+ let targetArea = Infinity;
1379
+ for (const g of this.nodes.values()) {
1380
+ if (g.id === id || g.type !== 'group' || g.hidden || this._isParentDescendant(g.id, id))
1381
+ continue;
1382
+ const gAbs = this.absolutePosition(g.id);
1383
+ const gw = g.width ?? DEFAULT_NODE_WIDTH;
1384
+ const gh = g.height ?? DEFAULT_NODE_HEIGHT;
1385
+ if (cx >= gAbs.x && cx <= gAbs.x + gw && cy >= gAbs.y && cy <= gAbs.y + gh && gw * gh < targetArea) {
1386
+ target = g.id;
1387
+ targetArea = gw * gh;
1388
+ }
1389
+ }
1390
+ if (target === node.parentId)
1391
+ return; // already correctly parented
1392
+ if (target) {
1393
+ const gAbs = this.absolutePosition(target);
1394
+ this.updateNode(id, { parentId: target, position: { x: abs.x - gAbs.x, y: abs.y - gAbs.y } });
1395
+ }
1396
+ else if (node.parentId) {
1397
+ this.updateNode(id, { parentId: undefined, position: abs });
1398
+ }
1399
+ }
1139
1400
  get dragging() {
1140
1401
  return this.drag !== null;
1141
1402
  }