@mapples/dnd 1.0.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.
Files changed (70) hide show
  1. package/README.md +390 -0
  2. package/dist/components/DnDRootView.d.ts +13 -0
  3. package/dist/components/DnDRootView.d.ts.map +1 -0
  4. package/dist/components/DnDRootView.js +98 -0
  5. package/dist/components/DnDRootView.js.map +1 -0
  6. package/dist/components/DropArea.d.ts +13 -0
  7. package/dist/components/DropArea.d.ts.map +1 -0
  8. package/dist/components/DropArea.js +16 -0
  9. package/dist/components/DropArea.js.map +1 -0
  10. package/dist/components/index.d.ts +3 -0
  11. package/dist/components/index.d.ts.map +1 -0
  12. package/dist/components/index.js +3 -0
  13. package/dist/components/index.js.map +1 -0
  14. package/dist/constants/index.d.ts +15 -0
  15. package/dist/constants/index.d.ts.map +1 -0
  16. package/dist/constants/index.js +16 -0
  17. package/dist/constants/index.js.map +1 -0
  18. package/dist/context/DnDContext.d.ts +14 -0
  19. package/dist/context/DnDContext.d.ts.map +1 -0
  20. package/dist/context/DnDContext.js +22 -0
  21. package/dist/context/DnDContext.js.map +1 -0
  22. package/dist/context/DropContext.d.ts +17 -0
  23. package/dist/context/DropContext.d.ts.map +1 -0
  24. package/dist/context/DropContext.js +16 -0
  25. package/dist/context/DropContext.js.map +1 -0
  26. package/dist/context/index.d.ts +5 -0
  27. package/dist/context/index.d.ts.map +1 -0
  28. package/dist/context/index.js +5 -0
  29. package/dist/context/index.js.map +1 -0
  30. package/dist/hooks/index.d.ts +5 -0
  31. package/dist/hooks/index.d.ts.map +1 -0
  32. package/dist/hooks/index.js +5 -0
  33. package/dist/hooks/index.js.map +1 -0
  34. package/dist/hooks/useDnD.d.ts +13 -0
  35. package/dist/hooks/useDnD.d.ts.map +1 -0
  36. package/dist/hooks/useDnD.js +16 -0
  37. package/dist/hooks/useDnD.js.map +1 -0
  38. package/dist/hooks/useDrag.d.ts +24 -0
  39. package/dist/hooks/useDrag.d.ts.map +1 -0
  40. package/dist/hooks/useDrag.js +74 -0
  41. package/dist/hooks/useDrag.js.map +1 -0
  42. package/dist/hooks/useDrop.d.ts +31 -0
  43. package/dist/hooks/useDrop.d.ts.map +1 -0
  44. package/dist/hooks/useDrop.js +108 -0
  45. package/dist/hooks/useDrop.js.map +1 -0
  46. package/dist/hooks/useDropContext.d.ts +12 -0
  47. package/dist/hooks/useDropContext.d.ts.map +1 -0
  48. package/dist/hooks/useDropContext.js +14 -0
  49. package/dist/hooks/useDropContext.js.map +1 -0
  50. package/dist/index.d.ts +5 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +5 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/monitor/Monitor.d.ts +223 -0
  55. package/dist/monitor/Monitor.d.ts.map +1 -0
  56. package/dist/monitor/Monitor.js +573 -0
  57. package/dist/monitor/Monitor.js.map +1 -0
  58. package/dist/monitor/index.d.ts +3 -0
  59. package/dist/monitor/index.d.ts.map +1 -0
  60. package/dist/monitor/index.js +3 -0
  61. package/dist/monitor/index.js.map +1 -0
  62. package/dist/types/index.d.ts +208 -0
  63. package/dist/types/index.d.ts.map +1 -0
  64. package/dist/types/index.js +33 -0
  65. package/dist/types/index.js.map +1 -0
  66. package/dist/utils/index.d.ts +11 -0
  67. package/dist/utils/index.d.ts.map +1 -0
  68. package/dist/utils/index.js +13 -0
  69. package/dist/utils/index.js.map +1 -0
  70. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,573 @@
1
+ import { last, sortBy } from 'lodash';
2
+ import { Subject } from 'rxjs';
3
+ import { DnDEventType, FlexDirection, } from '../types';
4
+ /**
5
+ * Core monitor class that manages drag and drop operations.
6
+ * This class tracks drag elements, drop targets, handles hit detection, and emits events.
7
+ *
8
+ * @template DragData - The type of data being dragged
9
+ * @template DropData - The type of data for drop targets (defaults to DragData)
10
+ * @public
11
+ */
12
+ class Monitor {
13
+ /** Observable stream of drag and drop events */
14
+ events = new Subject();
15
+ /** Padding around drop targets for hit detection */
16
+ padding = 0;
17
+ /** Counter for generating unique drag element IDs */
18
+ dragElementIds = 0;
19
+ /** Counter for generating unique drop element IDs */
20
+ dropElementIds = 0;
21
+ /** Map of registered drag elements by ID */
22
+ dragElements = new Map();
23
+ /** Tree structure of registered drop elements */
24
+ dropElementsTree = new Map();
25
+ /** ID of the currently active drag target */
26
+ dragTargetId = null;
27
+ /** Currently active drop target */
28
+ dropTarget = null;
29
+ /** Index position within the current drop target */
30
+ dropTargetIndex = null;
31
+ /** Whether to track drag operations outside the root element */
32
+ trackOutside = false;
33
+ /**
34
+ * Creates a new Monitor instance.
35
+ * @param config - Configuration options for the monitor
36
+ */
37
+ constructor(config) {
38
+ this.padding = config?.padding;
39
+ if (config.trackOutside) {
40
+ this.trackOutside = true;
41
+ }
42
+ }
43
+ /**
44
+ * Gets the ID of the currently active drag target.
45
+ * @returns The drag target ID or null if no drag is active
46
+ */
47
+ getDragTargetId() {
48
+ return this.dragTargetId;
49
+ }
50
+ /**
51
+ * Sets the ID of the currently active drag target.
52
+ * @param id - The drag target ID or null
53
+ */
54
+ setDragTargetId(id) {
55
+ this.dragTargetId = id;
56
+ }
57
+ /**
58
+ * Triggers a force layout update event.
59
+ * This causes all registered elements to recalculate their layout information.
60
+ */
61
+ triggerForceLayoutUpdate() {
62
+ this.events.next({
63
+ type: DnDEventType.LayoutForceUpdate,
64
+ });
65
+ }
66
+ /**
67
+ * Gets the currently active drop target.
68
+ * @returns The drop target or null if no drop target is active
69
+ */
70
+ getDropTarget() {
71
+ return this.dropTarget;
72
+ }
73
+ /**
74
+ * Sets the currently active drop target.
75
+ * @param target - The drop target or null
76
+ */
77
+ setDropTarget(target) {
78
+ this.dropTarget = target;
79
+ }
80
+ /**
81
+ * Gets the drag target data for a specific ID.
82
+ * @param id - The drag target ID
83
+ * @returns The drag element target data or undefined if not found
84
+ */
85
+ getDragTargetData(id) {
86
+ return this.dragElements.get(id);
87
+ }
88
+ /**
89
+ * Sets the index position within the current drop target.
90
+ * @param index - The index position or null
91
+ */
92
+ setDropTargetIndex(index) {
93
+ this.dropTargetIndex = index;
94
+ }
95
+ /**
96
+ * Gets the index position within the current drop target.
97
+ * @returns The index position or null if no drop target is active
98
+ */
99
+ getDropTargetIndex() {
100
+ return this.dropTargetIndex;
101
+ }
102
+ /**
103
+ * Registers a new drag element with the monitor.
104
+ * @param layout - The layout rectangle of the drag element
105
+ * @param item - The drag item configuration
106
+ * @returns The unique ID assigned to the drag element
107
+ */
108
+ registerDragElement(layout, item) {
109
+ this.dragElementIds++;
110
+ this.dragElements.set(this.dragElementIds, { ...layout, item });
111
+ return this.dragElementIds;
112
+ }
113
+ /**
114
+ * Unregisters a drag element from the monitor.
115
+ * @param id - The ID of the drag element to unregister
116
+ */
117
+ unregisterDragElement(id) {
118
+ this.dragElements.delete(id);
119
+ }
120
+ /**
121
+ * Updates the layout and item data for a registered drag element.
122
+ * @param id - The ID of the drag element
123
+ * @param layout - The new layout rectangle
124
+ * @param item - The new drag item configuration
125
+ */
126
+ updateDragElement(id, layout, item) {
127
+ const element = this.dragElements.get(id);
128
+ if (!element) {
129
+ return;
130
+ }
131
+ this.dragElements.set(id, { ...layout, item });
132
+ }
133
+ /**
134
+ * Updates only the layout information for a registered drag element.
135
+ * @param id - The ID of the drag element
136
+ * @param layout - The new layout rectangle
137
+ */
138
+ updateDragElementLayout(id, layout) {
139
+ const element = this.dragElements.get(id);
140
+ if (!element) {
141
+ return;
142
+ }
143
+ this.dragElements.set(id, { ...layout, item: element.item });
144
+ }
145
+ /**
146
+ * Handles the start of a drag operation.
147
+ * @param dragCoords - The coordinates where the drag started
148
+ */
149
+ onDragStart(dragCoords) {
150
+ const dragTargetId = this.getDragTarget(dragCoords);
151
+ if (!dragTargetId)
152
+ return;
153
+ const dragTarget = this.dragElements.get(dragTargetId);
154
+ this.setDragTargetId(dragTargetId);
155
+ this.events.next({
156
+ type: DnDEventType.DragStart,
157
+ target: this.getDragTargetId(),
158
+ data: dragTarget?.item.data,
159
+ });
160
+ }
161
+ /**
162
+ * Handles drag movement during a drag operation.
163
+ * @param dragCoords - The current coordinates of the drag
164
+ */
165
+ onDrag(dragCoords) {
166
+ const dragTargetId = this.getDragTargetId();
167
+ if (!dragTargetId)
168
+ return;
169
+ const dropTargets = this.getDropTargets(dragCoords, this.dropElementsTree);
170
+ const shallowTarget = this.getShallowTarget(dropTargets, dragCoords);
171
+ if (!shallowTarget?.canDrop)
172
+ return;
173
+ this.setDropTarget(shallowTarget);
174
+ const dropTargetIndex = this.getDropTargetIndexData(dragCoords, shallowTarget);
175
+ this.setDropTargetIndex(dropTargetIndex);
176
+ this.events.next({
177
+ type: DnDEventType.Drag,
178
+ target: dragTargetId,
179
+ dropTarget: this.getDropTarget(),
180
+ dropTargetIndex: this.getDropTargetIndex(),
181
+ dragCoords: dragCoords,
182
+ });
183
+ }
184
+ /**
185
+ * Handles selection/tap events.
186
+ * @param dragCoords - The coordinates where the selection occurred
187
+ */
188
+ onSelect(dragCoords) {
189
+ if (!this.isInsideFirstRootElement(dragCoords) && !this.trackOutside)
190
+ return;
191
+ const dropTargets = this.getDropTargets(dragCoords, this.dropElementsTree);
192
+ const shallowTarget = this.getShallowTarget(dropTargets, dragCoords);
193
+ this.events.next({
194
+ type: DnDEventType.Select,
195
+ dropTarget: shallowTarget,
196
+ });
197
+ }
198
+ /**
199
+ * Checks if the given coordinates are inside the first root element.
200
+ * @param dragCoords - The coordinates to check
201
+ * @returns True if inside the first root element
202
+ * @private
203
+ */
204
+ isInsideFirstRootElement(dragCoords) {
205
+ const firstRootElement = this.dropElementsTree.entries().next().value;
206
+ if (!firstRootElement)
207
+ return false;
208
+ const [, firstRootTarget] = firstRootElement;
209
+ return (firstRootTarget.layout.x <= dragCoords.x &&
210
+ firstRootTarget.layout.y <= dragCoords.y &&
211
+ firstRootTarget.layout.x + firstRootTarget.layout.width >= dragCoords.x &&
212
+ firstRootTarget.layout.y + firstRootTarget.layout.height >= dragCoords.y);
213
+ }
214
+ /**
215
+ * Handles external selection by data query.
216
+ * @param dataQuery - Partial data to match against drop targets
217
+ */
218
+ onExternalSelect(dataQuery) {
219
+ const dropTarget = this.findDropTargetByData(dataQuery, this.dropElementsTree);
220
+ this.events.next({
221
+ type: DnDEventType.Select,
222
+ dropTarget: dropTarget,
223
+ });
224
+ }
225
+ /**
226
+ * Handles the end of a drag operation.
227
+ */
228
+ onDragEnd() {
229
+ const dropTarget = this.getDropTarget();
230
+ if (!dropTarget)
231
+ return;
232
+ this.events.next({
233
+ type: DnDEventType.DragEnd,
234
+ target: this.getDragTargetId(),
235
+ dropTarget: dropTarget,
236
+ dropTargetIndex: this.getDropTargetIndex(),
237
+ });
238
+ this.setDragTargetId(null);
239
+ this.setDropTarget(null);
240
+ this.setDropTargetIndex(null);
241
+ }
242
+ /**
243
+ * Registers a new drop element with the monitor.
244
+ * @param layout - The layout rectangle of the drop element
245
+ * @param parent - The ID of the parent drop element, or null for root level
246
+ * @param config - Optional configuration for the drop target
247
+ * @param data - Optional data associated with the drop target
248
+ * @returns The unique ID assigned to the drop element
249
+ */
250
+ registerDropElement(layout, parent, config, data) {
251
+ this.dropElementIds++;
252
+ if (!parent) {
253
+ this.dropElementsTree.set(this.dropElementIds, {
254
+ layout: {
255
+ ...layout,
256
+ index: config?.index || 0,
257
+ zIndex: config?.zIndex || 0,
258
+ flexDirection: config?.flexDirection || FlexDirection.Column,
259
+ },
260
+ canDrop: config?.canDrop,
261
+ data,
262
+ });
263
+ }
264
+ else {
265
+ const parentLayout = this.findDropTarget(parent, this.dropElementsTree);
266
+ if (!parentLayout) {
267
+ throw new Error('Parent element not found');
268
+ }
269
+ if (!parentLayout.children) {
270
+ parentLayout.children = new Map();
271
+ }
272
+ parentLayout.children.set(this.dropElementIds, {
273
+ layout: {
274
+ ...layout,
275
+ index: config?.index || 0,
276
+ zIndex: config?.zIndex || parentLayout.layout.zIndex + this.dropElementIds,
277
+ flexDirection: config?.flexDirection || FlexDirection.Column,
278
+ },
279
+ data,
280
+ });
281
+ }
282
+ return this.dropElementIds;
283
+ }
284
+ /**
285
+ * Unregisters a drop element from the monitor.
286
+ * @param id - The ID of the drop element to unregister
287
+ */
288
+ unregisterDropElement(id) {
289
+ if (this.dropElementsTree.has(id)) {
290
+ this.dropElementsTree.delete(id);
291
+ }
292
+ const parent = this.findDropTargetParent(id, this.dropElementsTree);
293
+ parent?.children?.delete(id);
294
+ }
295
+ /**
296
+ * Updates the layout and configuration for a registered drop element.
297
+ * @param id - The ID of the drop element
298
+ * @param layout - The new layout rectangle
299
+ * @param config - Optional new configuration
300
+ * @param data - Optional new data
301
+ */
302
+ updateDropElement(id, layout, config, data) {
303
+ const target = this.findDropTarget(id, this.dropElementsTree);
304
+ if (target) {
305
+ target.layout.x = layout.x;
306
+ target.layout.y = layout.y;
307
+ target.layout.width = layout.width;
308
+ target.layout.height = layout.height;
309
+ target.layout.index = config?.index || target.layout.index;
310
+ target.layout.zIndex = config?.zIndex || target.layout.zIndex;
311
+ target.layout.flexDirection =
312
+ config?.flexDirection || target.layout.flexDirection;
313
+ target.data = data || target.data;
314
+ target.canDrop = config?.canDrop || target.canDrop;
315
+ if (this.dropElementsTree.has(id)) {
316
+ this.dropElementsTree.set(id, target);
317
+ }
318
+ else {
319
+ const parent = this.findDropTargetParent(id, this.dropElementsTree);
320
+ if (parent) {
321
+ parent.children?.set(id, target);
322
+ }
323
+ }
324
+ this.events.next({
325
+ type: DnDEventType.Layout,
326
+ target: id,
327
+ dropTarget: {
328
+ id,
329
+ index: target.layout.index,
330
+ layout: target.layout,
331
+ canDrop: target.canDrop,
332
+ data: target.data,
333
+ },
334
+ });
335
+ }
336
+ }
337
+ /**
338
+ * Finds a drop target by ID in the tree structure.
339
+ * @param id - The ID to search for
340
+ * @param tree - The tree to search in
341
+ * @returns The drop item or null if not found
342
+ * @private
343
+ */
344
+ findDropTarget(id, tree) {
345
+ if (!tree) {
346
+ return null;
347
+ }
348
+ if (tree.has(id)) {
349
+ return tree.get(id) || null;
350
+ }
351
+ for (const [, value] of tree) {
352
+ if (value.children) {
353
+ const target = this.findDropTarget(id, value.children);
354
+ if (target) {
355
+ return target;
356
+ }
357
+ }
358
+ }
359
+ return null;
360
+ }
361
+ /**
362
+ * Finds a drop target by matching data properties.
363
+ * @param dataQuery - Partial data to match against
364
+ * @param tree - The tree to search in
365
+ * @returns The drop target or null if not found
366
+ * @private
367
+ */
368
+ findDropTargetByData(dataQuery, tree) {
369
+ if (!tree) {
370
+ return null;
371
+ }
372
+ let index = 0;
373
+ for (const [id, target] of tree) {
374
+ index++;
375
+ if (target.data && this.partialMatch(target.data, dataQuery)) {
376
+ return {
377
+ id,
378
+ layout: target.layout,
379
+ index,
380
+ canDrop: target.canDrop,
381
+ children: target.children,
382
+ data: target.data,
383
+ };
384
+ }
385
+ if (target.children) {
386
+ const childResult = this.findDropTargetByData(dataQuery, target.children);
387
+ if (childResult) {
388
+ return childResult;
389
+ }
390
+ }
391
+ }
392
+ return null;
393
+ }
394
+ /**
395
+ * Performs a partial match between target data and query data.
396
+ * @param targetData - The target data to match against
397
+ * @param query - The query data to match
398
+ * @returns True if the query matches the target data
399
+ * @private
400
+ */
401
+ partialMatch(targetData, query) {
402
+ if (query === targetData) {
403
+ return true;
404
+ }
405
+ if (query == null || targetData == null) {
406
+ return false;
407
+ }
408
+ if (typeof query !== 'object' || typeof targetData !== 'object') {
409
+ return false;
410
+ }
411
+ // Check if all properties in query exist and match in targetData
412
+ const queryKeys = Object.keys(query);
413
+ for (const key of queryKeys) {
414
+ if (!(key in targetData)) {
415
+ return false;
416
+ }
417
+ // Recursively check nested objects
418
+ if (typeof query[key] === 'object' && query[key] != null) {
419
+ if (!this.partialMatch(targetData[key], query[key])) {
420
+ return false;
421
+ }
422
+ }
423
+ else if (targetData[key] !== query[key]) {
424
+ return false;
425
+ }
426
+ }
427
+ return true;
428
+ }
429
+ /**
430
+ * Finds the parent of a drop target by ID.
431
+ * @param id - The ID of the child drop target
432
+ * @param tree - The tree to search in
433
+ * @returns The parent drop item or null if not found
434
+ * @private
435
+ */
436
+ findDropTargetParent(id, tree) {
437
+ if (!tree) {
438
+ return null;
439
+ }
440
+ for (const [, value] of tree) {
441
+ if (value.children && value.children.has(id)) {
442
+ return value;
443
+ }
444
+ else {
445
+ const parent = this.findDropTargetParent(id, value.children);
446
+ if (parent) {
447
+ return parent;
448
+ }
449
+ }
450
+ }
451
+ return null;
452
+ }
453
+ /**
454
+ * Gets all drop targets that contain the given coordinates.
455
+ * @param dropCoords - The coordinates to check
456
+ * @param tree - The tree to search in
457
+ * @returns Array of drop targets or null if none found
458
+ * @private
459
+ */
460
+ getDropTargets(dropCoords, tree) {
461
+ const targets = [];
462
+ if (!tree) {
463
+ return null;
464
+ }
465
+ let index = 0;
466
+ for (const [id, target] of tree) {
467
+ index++;
468
+ if (target.layout.x <= dropCoords.x &&
469
+ target.layout.y <= dropCoords.y &&
470
+ target.layout.x + target.layout.width >= dropCoords.x &&
471
+ target.layout.y + target.layout.height >= dropCoords.y) {
472
+ targets.push({
473
+ id,
474
+ layout: target.layout,
475
+ index,
476
+ canDrop: target.canDrop,
477
+ children: target.children,
478
+ data: target.data,
479
+ });
480
+ }
481
+ const childTargets = this.getDropTargets(dropCoords, target.children);
482
+ if (childTargets) {
483
+ targets.push(...childTargets);
484
+ }
485
+ }
486
+ return targets;
487
+ }
488
+ /**
489
+ * Gets the shallowest (topmost) drop target from a list of targets.
490
+ * @param targets - Array of drop targets
491
+ * @param dragCoords - The current drag coordinates
492
+ * @returns The shallowest drop target or null
493
+ * @private
494
+ */
495
+ getShallowTarget(targets, dragCoords) {
496
+ if (!targets) {
497
+ return null;
498
+ }
499
+ const sortedTargets = sortBy(targets, 'layout.zIndex');
500
+ const lastTarget = last(sortedTargets);
501
+ if (!lastTarget) {
502
+ return null;
503
+ }
504
+ if (lastTarget.layout.y + this.padding > dragCoords.y ||
505
+ lastTarget.layout.y + lastTarget.layout.height - this.padding <
506
+ dragCoords.y ||
507
+ lastTarget.layout.x + this.padding > dragCoords.x ||
508
+ lastTarget.layout.x + lastTarget.layout.width - this.padding <
509
+ dragCoords.x) {
510
+ return sortedTargets[sortedTargets.length - 2] || lastTarget;
511
+ }
512
+ return lastTarget;
513
+ }
514
+ /**
515
+ * Calculates the drop target index based on drag coordinates and target layout.
516
+ * @param dragCoords - The current drag coordinates
517
+ * @param target - The drop target to calculate index for
518
+ * @returns The calculated index or null
519
+ * @private
520
+ */
521
+ getDropTargetIndexData(dragCoords, target) {
522
+ if (!target || !target.children)
523
+ return null;
524
+ let nearestId = null;
525
+ let nearestDistance = Infinity;
526
+ for (const [id, child] of target.children) {
527
+ const centerX = child.layout.x + child.layout.width / 2;
528
+ const centerY = child.layout.y + child.layout.height / 2;
529
+ const distance = Math.sqrt(Math.pow(centerX - dragCoords.x, 2) +
530
+ Math.pow(centerY - dragCoords.y, 2));
531
+ if (distance < nearestDistance) {
532
+ nearestDistance = distance;
533
+ nearestId = id;
534
+ }
535
+ }
536
+ if (!nearestId)
537
+ return null;
538
+ const nearestLayout = target.children.get(nearestId);
539
+ if (!nearestLayout)
540
+ return null;
541
+ const nearestLayoutCenterX = nearestLayout.layout.x + nearestLayout.layout.width / 2;
542
+ const nearestLayoutCenterY = nearestLayout.layout.y + nearestLayout.layout.height / 2;
543
+ const [x, y] = [
544
+ dragCoords.x - nearestLayoutCenterX,
545
+ dragCoords.y - nearestLayoutCenterY,
546
+ ];
547
+ if ((target.layout.flexDirection === FlexDirection.Row && x > 0) ||
548
+ (target.layout.flexDirection === FlexDirection.Column && y > 0)) {
549
+ return nearestLayout.layout.index + 1;
550
+ }
551
+ return nearestLayout.layout.index;
552
+ }
553
+ /**
554
+ * Gets the drag target ID for the given coordinates.
555
+ * @param dragCoords - The coordinates to check
556
+ * @returns The drag target ID or null if none found
557
+ * @private
558
+ */
559
+ getDragTarget(dragCoords) {
560
+ for (const [id, layout] of this.dragElements) {
561
+ if (layout.x <= dragCoords.x &&
562
+ layout.y <= dragCoords.y &&
563
+ layout.x + layout.width >= dragCoords.x &&
564
+ layout.y + layout.height >= dragCoords.y) {
565
+ return id;
566
+ }
567
+ }
568
+ return null;
569
+ }
570
+ }
571
+ export { Monitor };
572
+ export default Monitor;
573
+ //# sourceMappingURL=Monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../../src/monitor/Monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Monitor } from './Monitor';
2
+ export { default } from './Monitor';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Monitor } from './Monitor';
2
+ export { default } from './Monitor';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/monitor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}