svelte-dnd-action 0.9.47 → 0.9.49
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/index.js +14 -5
- package/dist/index.mjs +14 -5
- package/package.json +1 -1
- package/src/helpers/multiScroller.js +3 -2
- package/src/helpers/scroller.js +2 -2
- package/src/helpers/svelteNodeClone.js +3 -1
- package/src/pointerAction.js +4 -1
package/dist/index.js
CHANGED
|
@@ -807,11 +807,11 @@
|
|
|
807
807
|
return false;
|
|
808
808
|
}
|
|
809
809
|
var distances = calcInnerDistancesBetweenPointAndSidesOfElement(pointer, elementToScroll);
|
|
810
|
+
var isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
810
811
|
if (distances === null) {
|
|
811
|
-
resetScrolling();
|
|
812
|
+
if (isAlreadyScrolling) resetScrolling();
|
|
812
813
|
return false;
|
|
813
814
|
}
|
|
814
|
-
var isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
815
815
|
var scrollingVertically = false,
|
|
816
816
|
scrollingHorizontally = false;
|
|
817
817
|
// vertical
|
|
@@ -912,7 +912,8 @@
|
|
|
912
912
|
return getDepth(dz2) - getDepth(dz1);
|
|
913
913
|
});
|
|
914
914
|
var _makeScroller = makeScroller(),
|
|
915
|
-
scrollIfNeeded = _makeScroller.scrollIfNeeded
|
|
915
|
+
scrollIfNeeded = _makeScroller.scrollIfNeeded,
|
|
916
|
+
resetScrolling = _makeScroller.resetScrolling;
|
|
916
917
|
|
|
917
918
|
/**
|
|
918
919
|
* @return {boolean} - was any container scrolled
|
|
@@ -936,6 +937,9 @@
|
|
|
936
937
|
return {
|
|
937
938
|
multiScrollIfNeeded: scrollingContainersSet.size > 0 ? tick : function () {
|
|
938
939
|
return false;
|
|
940
|
+
},
|
|
941
|
+
destroy: function destroy() {
|
|
942
|
+
return resetScrolling();
|
|
939
943
|
}
|
|
940
944
|
};
|
|
941
945
|
}
|
|
@@ -1028,7 +1032,9 @@
|
|
|
1028
1032
|
var clonedCanvas = clonedCanvases[_i];
|
|
1029
1033
|
clonedCanvas.width = canvas.width;
|
|
1030
1034
|
clonedCanvas.height = canvas.height;
|
|
1031
|
-
|
|
1035
|
+
if (canvas.width > 0 && canvas.height > 0) {
|
|
1036
|
+
clonedCanvas.getContext("2d").drawImage(canvas, 0, 0);
|
|
1037
|
+
}
|
|
1032
1038
|
}
|
|
1033
1039
|
}
|
|
1034
1040
|
return cloned;
|
|
@@ -1294,6 +1300,7 @@
|
|
|
1294
1300
|
var unlockOriginDzMinDimensions;
|
|
1295
1301
|
var isDraggedOutsideOfAnyDz = false;
|
|
1296
1302
|
var scheduledForRemovalAfterDrop = [];
|
|
1303
|
+
var multiScroller;
|
|
1297
1304
|
|
|
1298
1305
|
// a map from type to a set of drop-zones
|
|
1299
1306
|
var typeToDropZones = new Map();
|
|
@@ -1350,7 +1357,7 @@
|
|
|
1350
1357
|
return dzToConfig.get(dz).dropAnimationDurationMs;
|
|
1351
1358
|
})));
|
|
1352
1359
|
var observationIntervalMs = setIntervalMs === 0 ? DISABLED_OBSERVATION_INTERVAL_MS : Math.max(setIntervalMs, MIN_OBSERVATION_INTERVAL_MS); // if setIntervalMs is 0 it goes to 20, otherwise it is max between it and min observation.
|
|
1353
|
-
|
|
1360
|
+
multiScroller = createMultiScroller(dropZones, function () {
|
|
1354
1361
|
return currentMousePosition;
|
|
1355
1362
|
});
|
|
1356
1363
|
observe(draggedEl, dropZones, observationIntervalMs * 1.07, multiScroller);
|
|
@@ -1375,6 +1382,8 @@
|
|
|
1375
1382
|
_iterator2.f();
|
|
1376
1383
|
}
|
|
1377
1384
|
window.removeEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop);
|
|
1385
|
+
multiScroller.destroy();
|
|
1386
|
+
multiScroller = undefined;
|
|
1378
1387
|
unobserve();
|
|
1379
1388
|
}
|
|
1380
1389
|
function findShadowElementIdx(items) {
|
package/dist/index.mjs
CHANGED
|
@@ -801,11 +801,11 @@ function makeScroller() {
|
|
|
801
801
|
return false;
|
|
802
802
|
}
|
|
803
803
|
var distances = calcInnerDistancesBetweenPointAndSidesOfElement(pointer, elementToScroll);
|
|
804
|
+
var isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
804
805
|
if (distances === null) {
|
|
805
|
-
resetScrolling();
|
|
806
|
+
if (isAlreadyScrolling) resetScrolling();
|
|
806
807
|
return false;
|
|
807
808
|
}
|
|
808
|
-
var isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
809
809
|
var scrollingVertically = false,
|
|
810
810
|
scrollingHorizontally = false;
|
|
811
811
|
// vertical
|
|
@@ -906,7 +906,8 @@ function createMultiScroller() {
|
|
|
906
906
|
return getDepth(dz2) - getDepth(dz1);
|
|
907
907
|
});
|
|
908
908
|
var _makeScroller = makeScroller(),
|
|
909
|
-
scrollIfNeeded = _makeScroller.scrollIfNeeded
|
|
909
|
+
scrollIfNeeded = _makeScroller.scrollIfNeeded,
|
|
910
|
+
resetScrolling = _makeScroller.resetScrolling;
|
|
910
911
|
|
|
911
912
|
/**
|
|
912
913
|
* @return {boolean} - was any container scrolled
|
|
@@ -930,6 +931,9 @@ function createMultiScroller() {
|
|
|
930
931
|
return {
|
|
931
932
|
multiScrollIfNeeded: scrollingContainersSet.size > 0 ? tick : function () {
|
|
932
933
|
return false;
|
|
934
|
+
},
|
|
935
|
+
destroy: function destroy() {
|
|
936
|
+
return resetScrolling();
|
|
933
937
|
}
|
|
934
938
|
};
|
|
935
939
|
}
|
|
@@ -1022,7 +1026,9 @@ function svelteNodeClone(el) {
|
|
|
1022
1026
|
var clonedCanvas = clonedCanvases[_i];
|
|
1023
1027
|
clonedCanvas.width = canvas.width;
|
|
1024
1028
|
clonedCanvas.height = canvas.height;
|
|
1025
|
-
|
|
1029
|
+
if (canvas.width > 0 && canvas.height > 0) {
|
|
1030
|
+
clonedCanvas.getContext("2d").drawImage(canvas, 0, 0);
|
|
1031
|
+
}
|
|
1026
1032
|
}
|
|
1027
1033
|
}
|
|
1028
1034
|
return cloned;
|
|
@@ -1288,6 +1294,7 @@ var finalizingPreviousDrag = false;
|
|
|
1288
1294
|
var unlockOriginDzMinDimensions;
|
|
1289
1295
|
var isDraggedOutsideOfAnyDz = false;
|
|
1290
1296
|
var scheduledForRemovalAfterDrop = [];
|
|
1297
|
+
var multiScroller;
|
|
1291
1298
|
|
|
1292
1299
|
// a map from type to a set of drop-zones
|
|
1293
1300
|
var typeToDropZones = new Map();
|
|
@@ -1344,7 +1351,7 @@ function watchDraggedElement() {
|
|
|
1344
1351
|
return dzToConfig.get(dz).dropAnimationDurationMs;
|
|
1345
1352
|
})));
|
|
1346
1353
|
var observationIntervalMs = setIntervalMs === 0 ? DISABLED_OBSERVATION_INTERVAL_MS : Math.max(setIntervalMs, MIN_OBSERVATION_INTERVAL_MS); // if setIntervalMs is 0 it goes to 20, otherwise it is max between it and min observation.
|
|
1347
|
-
|
|
1354
|
+
multiScroller = createMultiScroller(dropZones, function () {
|
|
1348
1355
|
return currentMousePosition;
|
|
1349
1356
|
});
|
|
1350
1357
|
observe(draggedEl, dropZones, observationIntervalMs * 1.07, multiScroller);
|
|
@@ -1369,6 +1376,8 @@ function unWatchDraggedElement() {
|
|
|
1369
1376
|
_iterator2.f();
|
|
1370
1377
|
}
|
|
1371
1378
|
window.removeEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop);
|
|
1379
|
+
multiScroller.destroy();
|
|
1380
|
+
multiScroller = undefined;
|
|
1372
1381
|
unobserve();
|
|
1373
1382
|
}
|
|
1374
1383
|
function findShadowElementIdx(items) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-dnd-action",
|
|
3
3
|
"description": "*An awesome drag and drop library for Svelte 3 and 4 (not using the browser's built-in dnd, thanks god): Rich animations, nested containers, touch support and more *",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.49",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/isaacHagoel/svelte-dnd-action.git"
|
|
@@ -16,7 +16,7 @@ export function createMultiScroller(baseElementsForScrolling = [], getPointerPos
|
|
|
16
16
|
printDebug(() => "creating multi-scroller");
|
|
17
17
|
const scrollingContainersSet = findRelevantScrollContainers(baseElementsForScrolling);
|
|
18
18
|
const scrollingContainersDeepToShallow = Array.from(scrollingContainersSet).sort((dz1, dz2) => getDepth(dz2) - getDepth(dz1));
|
|
19
|
-
const {scrollIfNeeded} = makeScroller();
|
|
19
|
+
const {scrollIfNeeded, resetScrolling} = makeScroller();
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @return {boolean} - was any container scrolled
|
|
@@ -38,7 +38,8 @@ export function createMultiScroller(baseElementsForScrolling = [], getPointerPos
|
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
40
|
return {
|
|
41
|
-
multiScrollIfNeeded: scrollingContainersSet.size > 0 ? tick : () => false
|
|
41
|
+
multiScrollIfNeeded: scrollingContainersSet.size > 0 ? tick : () => false,
|
|
42
|
+
destroy: () => resetScrolling()
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
|
package/src/helpers/scroller.js
CHANGED
|
@@ -35,11 +35,11 @@ export function makeScroller() {
|
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
37
|
const distances = calcInnerDistancesBetweenPointAndSidesOfElement(pointer, elementToScroll);
|
|
38
|
+
const isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
38
39
|
if (distances === null) {
|
|
39
|
-
resetScrolling();
|
|
40
|
+
if (isAlreadyScrolling) resetScrolling();
|
|
40
41
|
return false;
|
|
41
42
|
}
|
|
42
|
-
const isAlreadyScrolling = !!scrollingInfo.directionObj;
|
|
43
43
|
let [scrollingVertically, scrollingHorizontally] = [false, false];
|
|
44
44
|
// vertical
|
|
45
45
|
if (elementToScroll.scrollHeight > elementToScroll.clientHeight) {
|
|
@@ -38,7 +38,9 @@ export function svelteNodeClone(el) {
|
|
|
38
38
|
const clonedCanvas = clonedCanvases[i];
|
|
39
39
|
clonedCanvas.width = canvas.width;
|
|
40
40
|
clonedCanvas.height = canvas.height;
|
|
41
|
-
|
|
41
|
+
if (canvas.width > 0 && canvas.height > 0) {
|
|
42
|
+
clonedCanvas.getContext("2d").drawImage(canvas, 0, 0);
|
|
43
|
+
}
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
|
package/src/pointerAction.js
CHANGED
|
@@ -58,6 +58,7 @@ let finalizingPreviousDrag = false;
|
|
|
58
58
|
let unlockOriginDzMinDimensions;
|
|
59
59
|
let isDraggedOutsideOfAnyDz = false;
|
|
60
60
|
let scheduledForRemovalAfterDrop = [];
|
|
61
|
+
let multiScroller;
|
|
61
62
|
|
|
62
63
|
// a map from type to a set of drop-zones
|
|
63
64
|
const typeToDropZones = new Map();
|
|
@@ -100,7 +101,7 @@ function watchDraggedElement() {
|
|
|
100
101
|
// it is important that we don't have an interval that is faster than the flip duration because it can cause elements to jump bach and forth
|
|
101
102
|
const setIntervalMs = Math.max(...Array.from(dropZones.keys()).map(dz => dzToConfig.get(dz).dropAnimationDurationMs));
|
|
102
103
|
const observationIntervalMs = setIntervalMs === 0 ? DISABLED_OBSERVATION_INTERVAL_MS : Math.max(setIntervalMs, MIN_OBSERVATION_INTERVAL_MS); // if setIntervalMs is 0 it goes to 20, otherwise it is max between it and min observation.
|
|
103
|
-
|
|
104
|
+
multiScroller = createMultiScroller(dropZones, () => currentMousePosition);
|
|
104
105
|
observe(draggedEl, dropZones, observationIntervalMs * 1.07, multiScroller);
|
|
105
106
|
}
|
|
106
107
|
function unWatchDraggedElement() {
|
|
@@ -112,6 +113,8 @@ function unWatchDraggedElement() {
|
|
|
112
113
|
dz.removeEventListener(DRAGGED_OVER_INDEX_EVENT_NAME, handleDraggedIsOverIndex);
|
|
113
114
|
}
|
|
114
115
|
window.removeEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop);
|
|
116
|
+
multiScroller.destroy();
|
|
117
|
+
multiScroller = undefined;
|
|
115
118
|
unobserve();
|
|
116
119
|
}
|
|
117
120
|
|