svelte-dnd-action 0.9.17 → 0.9.18
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 +66 -29
- package/dist/index.mjs +66 -29
- package/package.json +1 -1
- package/src/helpers/styler.js +1 -1
- package/src/pointerAction.js +29 -5
package/dist/index.js
CHANGED
|
@@ -1235,7 +1235,7 @@
|
|
|
1235
1235
|
* @param {HTMLElement} dragTarget
|
|
1236
1236
|
*/
|
|
1237
1237
|
|
|
1238
|
-
function
|
|
1238
|
+
function hideElement(dragTarget) {
|
|
1239
1239
|
dragTarget.style.display = "none";
|
|
1240
1240
|
dragTarget.style.position = "fixed";
|
|
1241
1241
|
dragTarget.style.zIndex = "-5";
|
|
@@ -1338,7 +1338,8 @@
|
|
|
1338
1338
|
var isWorkingOnPreviousDrag = false;
|
|
1339
1339
|
var finalizingPreviousDrag = false;
|
|
1340
1340
|
var unlockOriginDzMinDimensions;
|
|
1341
|
-
var isDraggedOutsideOfAnyDz = false;
|
|
1341
|
+
var isDraggedOutsideOfAnyDz = false;
|
|
1342
|
+
var scheduledForRemovalAfterDrop = []; // a map from type to a set of drop-zones
|
|
1342
1343
|
|
|
1343
1344
|
var typeToDropZones = new Map(); // important - this is needed because otherwise the config that would be used for everyone is the config of the element that created the event listeners
|
|
1344
1345
|
|
|
@@ -1674,12 +1675,37 @@
|
|
|
1674
1675
|
draggedEl.style.transform = "translate3d(".concat(newTransform.x, "px, ").concat(newTransform.y, "px, 0)");
|
|
1675
1676
|
window.setTimeout(callback, dropAnimationDurationMs);
|
|
1676
1677
|
}
|
|
1678
|
+
|
|
1679
|
+
function scheduleDZForRemovalAfterDrop(dz, destroy) {
|
|
1680
|
+
scheduledForRemovalAfterDrop.push({
|
|
1681
|
+
dz: dz,
|
|
1682
|
+
destroy: destroy
|
|
1683
|
+
});
|
|
1684
|
+
window.requestAnimationFrame(function () {
|
|
1685
|
+
hideElement(dz);
|
|
1686
|
+
document.body.appendChild(dz);
|
|
1687
|
+
});
|
|
1688
|
+
}
|
|
1677
1689
|
/* cleanup */
|
|
1678
1690
|
|
|
1679
1691
|
|
|
1680
1692
|
function cleanupPostDrop() {
|
|
1681
1693
|
draggedEl.remove();
|
|
1682
1694
|
originalDragTarget.remove();
|
|
1695
|
+
|
|
1696
|
+
if (scheduledForRemovalAfterDrop.length) {
|
|
1697
|
+
printDebug(function () {
|
|
1698
|
+
return ["will destroy zones that were removed during drag", scheduledForRemovalAfterDrop];
|
|
1699
|
+
});
|
|
1700
|
+
scheduledForRemovalAfterDrop.forEach(function (_ref) {
|
|
1701
|
+
var dz = _ref.dz,
|
|
1702
|
+
destroy = _ref.destroy;
|
|
1703
|
+
destroy();
|
|
1704
|
+
dz.remove();
|
|
1705
|
+
});
|
|
1706
|
+
scheduledForRemovalAfterDrop = [];
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1683
1709
|
draggedEl = undefined;
|
|
1684
1710
|
originalDragTarget = undefined;
|
|
1685
1711
|
draggedElData = undefined;
|
|
@@ -1827,7 +1853,7 @@
|
|
|
1827
1853
|
|
|
1828
1854
|
draggedEl.focus();
|
|
1829
1855
|
watchDraggedElement();
|
|
1830
|
-
|
|
1856
|
+
hideElement(originalDragTarget);
|
|
1831
1857
|
originDropZoneRoot.appendChild(originalDragTarget);
|
|
1832
1858
|
} else {
|
|
1833
1859
|
window.requestAnimationFrame(keepOriginalElementInDom);
|
|
@@ -1866,27 +1892,27 @@
|
|
|
1866
1892
|
});
|
|
1867
1893
|
}
|
|
1868
1894
|
|
|
1869
|
-
function configure(
|
|
1870
|
-
var
|
|
1871
|
-
items =
|
|
1872
|
-
|
|
1873
|
-
dropAnimationDurationMs =
|
|
1874
|
-
|
|
1875
|
-
newType =
|
|
1876
|
-
|
|
1877
|
-
dragDisabled =
|
|
1878
|
-
|
|
1879
|
-
morphDisabled =
|
|
1880
|
-
|
|
1881
|
-
dropFromOthersDisabled =
|
|
1882
|
-
|
|
1883
|
-
dropTargetStyle =
|
|
1884
|
-
|
|
1885
|
-
dropTargetClasses =
|
|
1886
|
-
|
|
1887
|
-
transformDraggedElement =
|
|
1888
|
-
|
|
1889
|
-
centreDraggedOnCursor =
|
|
1895
|
+
function configure(_ref2) {
|
|
1896
|
+
var _ref2$items = _ref2.items,
|
|
1897
|
+
items = _ref2$items === void 0 ? undefined : _ref2$items,
|
|
1898
|
+
_ref2$flipDurationMs = _ref2.flipDurationMs,
|
|
1899
|
+
dropAnimationDurationMs = _ref2$flipDurationMs === void 0 ? 0 : _ref2$flipDurationMs,
|
|
1900
|
+
_ref2$type = _ref2.type,
|
|
1901
|
+
newType = _ref2$type === void 0 ? DEFAULT_DROP_ZONE_TYPE : _ref2$type,
|
|
1902
|
+
_ref2$dragDisabled = _ref2.dragDisabled,
|
|
1903
|
+
dragDisabled = _ref2$dragDisabled === void 0 ? false : _ref2$dragDisabled,
|
|
1904
|
+
_ref2$morphDisabled = _ref2.morphDisabled,
|
|
1905
|
+
morphDisabled = _ref2$morphDisabled === void 0 ? false : _ref2$morphDisabled,
|
|
1906
|
+
_ref2$dropFromOthersD = _ref2.dropFromOthersDisabled,
|
|
1907
|
+
dropFromOthersDisabled = _ref2$dropFromOthersD === void 0 ? false : _ref2$dropFromOthersD,
|
|
1908
|
+
_ref2$dropTargetStyle = _ref2.dropTargetStyle,
|
|
1909
|
+
dropTargetStyle = _ref2$dropTargetStyle === void 0 ? DEFAULT_DROP_TARGET_STYLE : _ref2$dropTargetStyle,
|
|
1910
|
+
_ref2$dropTargetClass = _ref2.dropTargetClasses,
|
|
1911
|
+
dropTargetClasses = _ref2$dropTargetClass === void 0 ? [] : _ref2$dropTargetClass,
|
|
1912
|
+
_ref2$transformDragge = _ref2.transformDraggedElement,
|
|
1913
|
+
transformDraggedElement = _ref2$transformDragge === void 0 ? function () {} : _ref2$transformDragge,
|
|
1914
|
+
_ref2$centreDraggedOn = _ref2.centreDraggedOnCursor,
|
|
1915
|
+
centreDraggedOnCursor = _ref2$centreDraggedOn === void 0 ? false : _ref2$centreDraggedOn;
|
|
1890
1916
|
config.dropAnimationDurationMs = dropAnimationDurationMs;
|
|
1891
1917
|
|
|
1892
1918
|
if (config.type && newType !== config.type) {
|
|
@@ -1989,11 +2015,22 @@
|
|
|
1989
2015
|
configure(newOptions);
|
|
1990
2016
|
},
|
|
1991
2017
|
destroy: function destroy() {
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
2018
|
+
function destroyDz() {
|
|
2019
|
+
printDebug(function () {
|
|
2020
|
+
return "pointer dndzone will destroy";
|
|
2021
|
+
});
|
|
2022
|
+
unregisterDropZone(node, dzToConfig.get(node).type);
|
|
2023
|
+
dzToConfig["delete"](node);
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
if (isWorkingOnPreviousDrag) {
|
|
2027
|
+
printDebug(function () {
|
|
2028
|
+
return "pointer dndzone will be scheduled for destruction";
|
|
2029
|
+
});
|
|
2030
|
+
scheduleDZForRemovalAfterDrop(node, destroyDz);
|
|
2031
|
+
} else {
|
|
2032
|
+
destroyDz();
|
|
2033
|
+
}
|
|
1997
2034
|
}
|
|
1998
2035
|
};
|
|
1999
2036
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1229,7 +1229,7 @@ function styleDraggable(draggableEl, dragDisabled) {
|
|
|
1229
1229
|
* @param {HTMLElement} dragTarget
|
|
1230
1230
|
*/
|
|
1231
1231
|
|
|
1232
|
-
function
|
|
1232
|
+
function hideElement(dragTarget) {
|
|
1233
1233
|
dragTarget.style.display = "none";
|
|
1234
1234
|
dragTarget.style.position = "fixed";
|
|
1235
1235
|
dragTarget.style.zIndex = "-5";
|
|
@@ -1332,7 +1332,8 @@ var currentMousePosition;
|
|
|
1332
1332
|
var isWorkingOnPreviousDrag = false;
|
|
1333
1333
|
var finalizingPreviousDrag = false;
|
|
1334
1334
|
var unlockOriginDzMinDimensions;
|
|
1335
|
-
var isDraggedOutsideOfAnyDz = false;
|
|
1335
|
+
var isDraggedOutsideOfAnyDz = false;
|
|
1336
|
+
var scheduledForRemovalAfterDrop = []; // a map from type to a set of drop-zones
|
|
1336
1337
|
|
|
1337
1338
|
var typeToDropZones = new Map(); // important - this is needed because otherwise the config that would be used for everyone is the config of the element that created the event listeners
|
|
1338
1339
|
|
|
@@ -1668,12 +1669,37 @@ function animateDraggedToFinalPosition(shadowElIdx, callback) {
|
|
|
1668
1669
|
draggedEl.style.transform = "translate3d(".concat(newTransform.x, "px, ").concat(newTransform.y, "px, 0)");
|
|
1669
1670
|
window.setTimeout(callback, dropAnimationDurationMs);
|
|
1670
1671
|
}
|
|
1672
|
+
|
|
1673
|
+
function scheduleDZForRemovalAfterDrop(dz, destroy) {
|
|
1674
|
+
scheduledForRemovalAfterDrop.push({
|
|
1675
|
+
dz: dz,
|
|
1676
|
+
destroy: destroy
|
|
1677
|
+
});
|
|
1678
|
+
window.requestAnimationFrame(function () {
|
|
1679
|
+
hideElement(dz);
|
|
1680
|
+
document.body.appendChild(dz);
|
|
1681
|
+
});
|
|
1682
|
+
}
|
|
1671
1683
|
/* cleanup */
|
|
1672
1684
|
|
|
1673
1685
|
|
|
1674
1686
|
function cleanupPostDrop() {
|
|
1675
1687
|
draggedEl.remove();
|
|
1676
1688
|
originalDragTarget.remove();
|
|
1689
|
+
|
|
1690
|
+
if (scheduledForRemovalAfterDrop.length) {
|
|
1691
|
+
printDebug(function () {
|
|
1692
|
+
return ["will destroy zones that were removed during drag", scheduledForRemovalAfterDrop];
|
|
1693
|
+
});
|
|
1694
|
+
scheduledForRemovalAfterDrop.forEach(function (_ref) {
|
|
1695
|
+
var dz = _ref.dz,
|
|
1696
|
+
destroy = _ref.destroy;
|
|
1697
|
+
destroy();
|
|
1698
|
+
dz.remove();
|
|
1699
|
+
});
|
|
1700
|
+
scheduledForRemovalAfterDrop = [];
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1677
1703
|
draggedEl = undefined;
|
|
1678
1704
|
originalDragTarget = undefined;
|
|
1679
1705
|
draggedElData = undefined;
|
|
@@ -1821,7 +1847,7 @@ function dndzone(node, options) {
|
|
|
1821
1847
|
|
|
1822
1848
|
draggedEl.focus();
|
|
1823
1849
|
watchDraggedElement();
|
|
1824
|
-
|
|
1850
|
+
hideElement(originalDragTarget);
|
|
1825
1851
|
originDropZoneRoot.appendChild(originalDragTarget);
|
|
1826
1852
|
} else {
|
|
1827
1853
|
window.requestAnimationFrame(keepOriginalElementInDom);
|
|
@@ -1860,27 +1886,27 @@ function dndzone(node, options) {
|
|
|
1860
1886
|
});
|
|
1861
1887
|
}
|
|
1862
1888
|
|
|
1863
|
-
function configure(
|
|
1864
|
-
var
|
|
1865
|
-
items =
|
|
1866
|
-
|
|
1867
|
-
dropAnimationDurationMs =
|
|
1868
|
-
|
|
1869
|
-
newType =
|
|
1870
|
-
|
|
1871
|
-
dragDisabled =
|
|
1872
|
-
|
|
1873
|
-
morphDisabled =
|
|
1874
|
-
|
|
1875
|
-
dropFromOthersDisabled =
|
|
1876
|
-
|
|
1877
|
-
dropTargetStyle =
|
|
1878
|
-
|
|
1879
|
-
dropTargetClasses =
|
|
1880
|
-
|
|
1881
|
-
transformDraggedElement =
|
|
1882
|
-
|
|
1883
|
-
centreDraggedOnCursor =
|
|
1889
|
+
function configure(_ref2) {
|
|
1890
|
+
var _ref2$items = _ref2.items,
|
|
1891
|
+
items = _ref2$items === void 0 ? undefined : _ref2$items,
|
|
1892
|
+
_ref2$flipDurationMs = _ref2.flipDurationMs,
|
|
1893
|
+
dropAnimationDurationMs = _ref2$flipDurationMs === void 0 ? 0 : _ref2$flipDurationMs,
|
|
1894
|
+
_ref2$type = _ref2.type,
|
|
1895
|
+
newType = _ref2$type === void 0 ? DEFAULT_DROP_ZONE_TYPE : _ref2$type,
|
|
1896
|
+
_ref2$dragDisabled = _ref2.dragDisabled,
|
|
1897
|
+
dragDisabled = _ref2$dragDisabled === void 0 ? false : _ref2$dragDisabled,
|
|
1898
|
+
_ref2$morphDisabled = _ref2.morphDisabled,
|
|
1899
|
+
morphDisabled = _ref2$morphDisabled === void 0 ? false : _ref2$morphDisabled,
|
|
1900
|
+
_ref2$dropFromOthersD = _ref2.dropFromOthersDisabled,
|
|
1901
|
+
dropFromOthersDisabled = _ref2$dropFromOthersD === void 0 ? false : _ref2$dropFromOthersD,
|
|
1902
|
+
_ref2$dropTargetStyle = _ref2.dropTargetStyle,
|
|
1903
|
+
dropTargetStyle = _ref2$dropTargetStyle === void 0 ? DEFAULT_DROP_TARGET_STYLE : _ref2$dropTargetStyle,
|
|
1904
|
+
_ref2$dropTargetClass = _ref2.dropTargetClasses,
|
|
1905
|
+
dropTargetClasses = _ref2$dropTargetClass === void 0 ? [] : _ref2$dropTargetClass,
|
|
1906
|
+
_ref2$transformDragge = _ref2.transformDraggedElement,
|
|
1907
|
+
transformDraggedElement = _ref2$transformDragge === void 0 ? function () {} : _ref2$transformDragge,
|
|
1908
|
+
_ref2$centreDraggedOn = _ref2.centreDraggedOnCursor,
|
|
1909
|
+
centreDraggedOnCursor = _ref2$centreDraggedOn === void 0 ? false : _ref2$centreDraggedOn;
|
|
1884
1910
|
config.dropAnimationDurationMs = dropAnimationDurationMs;
|
|
1885
1911
|
|
|
1886
1912
|
if (config.type && newType !== config.type) {
|
|
@@ -1983,11 +2009,22 @@ function dndzone(node, options) {
|
|
|
1983
2009
|
configure(newOptions);
|
|
1984
2010
|
},
|
|
1985
2011
|
destroy: function destroy() {
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
2012
|
+
function destroyDz() {
|
|
2013
|
+
printDebug(function () {
|
|
2014
|
+
return "pointer dndzone will destroy";
|
|
2015
|
+
});
|
|
2016
|
+
unregisterDropZone(node, dzToConfig.get(node).type);
|
|
2017
|
+
dzToConfig["delete"](node);
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
if (isWorkingOnPreviousDrag) {
|
|
2021
|
+
printDebug(function () {
|
|
2022
|
+
return "pointer dndzone will be scheduled for destruction";
|
|
2023
|
+
});
|
|
2024
|
+
scheduleDZForRemovalAfterDrop(node, destroyDz);
|
|
2025
|
+
} else {
|
|
2026
|
+
destroyDz();
|
|
2027
|
+
}
|
|
1991
2028
|
}
|
|
1992
2029
|
};
|
|
1993
2030
|
}
|
package/package.json
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"dist"
|
|
41
41
|
],
|
|
42
42
|
"description": "*An awesome drag and drop library for Svelte 3 (not using the browser's built-in dnd, thanks god): Rich animations, nested containers, touch support and more *",
|
|
43
|
-
"version": "0.9.
|
|
43
|
+
"version": "0.9.18",
|
|
44
44
|
"repository": {
|
|
45
45
|
"type": "git",
|
|
46
46
|
"url": "git+https://github.com/isaacHagoel/svelte-dnd-action.git"
|
package/src/helpers/styler.js
CHANGED
|
@@ -136,7 +136,7 @@ export function styleDraggable(draggableEl, dragDisabled) {
|
|
|
136
136
|
* Hides the provided element so that it can stay in the dom without interrupting
|
|
137
137
|
* @param {HTMLElement} dragTarget
|
|
138
138
|
*/
|
|
139
|
-
export function
|
|
139
|
+
export function hideElement(dragTarget) {
|
|
140
140
|
dragTarget.style.display = "none";
|
|
141
141
|
dragTarget.style.position = "fixed";
|
|
142
142
|
dragTarget.style.zIndex = "-5";
|
package/src/pointerAction.js
CHANGED
|
@@ -13,7 +13,7 @@ import {armWindowScroller, disarmWindowScroller} from "./helpers/windowScroller"
|
|
|
13
13
|
import {
|
|
14
14
|
createDraggedElementFrom,
|
|
15
15
|
decorateShadowEl,
|
|
16
|
-
|
|
16
|
+
hideElement,
|
|
17
17
|
morphDraggedElementToBeLike,
|
|
18
18
|
moveDraggedElementToWasDroppedState,
|
|
19
19
|
preventShrinking,
|
|
@@ -55,6 +55,7 @@ let isWorkingOnPreviousDrag = false;
|
|
|
55
55
|
let finalizingPreviousDrag = false;
|
|
56
56
|
let unlockOriginDzMinDimensions;
|
|
57
57
|
let isDraggedOutsideOfAnyDz = false;
|
|
58
|
+
let scheduledForRemovalAfterDrop = [];
|
|
58
59
|
|
|
59
60
|
// a map from type to a set of drop-zones
|
|
60
61
|
const typeToDropZones = new Map();
|
|
@@ -280,10 +281,25 @@ function animateDraggedToFinalPosition(shadowElIdx, callback) {
|
|
|
280
281
|
window.setTimeout(callback, dropAnimationDurationMs);
|
|
281
282
|
}
|
|
282
283
|
|
|
284
|
+
function scheduleDZForRemovalAfterDrop(dz, destroy) {
|
|
285
|
+
scheduledForRemovalAfterDrop.push({dz, destroy});
|
|
286
|
+
window.requestAnimationFrame(() => {
|
|
287
|
+
hideElement(dz);
|
|
288
|
+
document.body.appendChild(dz);
|
|
289
|
+
});
|
|
290
|
+
}
|
|
283
291
|
/* cleanup */
|
|
284
292
|
function cleanupPostDrop() {
|
|
285
293
|
draggedEl.remove();
|
|
286
294
|
originalDragTarget.remove();
|
|
295
|
+
if (scheduledForRemovalAfterDrop.length) {
|
|
296
|
+
printDebug(() => ["will destroy zones that were removed during drag", scheduledForRemovalAfterDrop]);
|
|
297
|
+
scheduledForRemovalAfterDrop.forEach(({dz, destroy}) => {
|
|
298
|
+
destroy();
|
|
299
|
+
dz.remove();
|
|
300
|
+
})
|
|
301
|
+
scheduledForRemovalAfterDrop = [];
|
|
302
|
+
}
|
|
287
303
|
draggedEl = undefined;
|
|
288
304
|
originalDragTarget = undefined;
|
|
289
305
|
draggedElData = undefined;
|
|
@@ -398,7 +414,7 @@ export function dndzone(node, options) {
|
|
|
398
414
|
// to prevent the outline from disappearing
|
|
399
415
|
draggedEl.focus();
|
|
400
416
|
watchDraggedElement();
|
|
401
|
-
|
|
417
|
+
hideElement(originalDragTarget);
|
|
402
418
|
originDropZoneRoot.appendChild(originalDragTarget);
|
|
403
419
|
} else {
|
|
404
420
|
window.requestAnimationFrame(keepOriginalElementInDom);
|
|
@@ -529,9 +545,17 @@ export function dndzone(node, options) {
|
|
|
529
545
|
configure(newOptions);
|
|
530
546
|
},
|
|
531
547
|
destroy: () => {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
548
|
+
function destroyDz() {
|
|
549
|
+
printDebug(() => "pointer dndzone will destroy");
|
|
550
|
+
unregisterDropZone(node, dzToConfig.get(node).type);
|
|
551
|
+
dzToConfig.delete(node);
|
|
552
|
+
}
|
|
553
|
+
if (isWorkingOnPreviousDrag) {
|
|
554
|
+
printDebug(() => "pointer dndzone will be scheduled for destruction");
|
|
555
|
+
scheduleDZForRemovalAfterDrop(node, destroyDz);
|
|
556
|
+
} else {
|
|
557
|
+
destroyDz();
|
|
558
|
+
}
|
|
535
559
|
}
|
|
536
560
|
};
|
|
537
561
|
}
|