react-easy-sort
Advanced tools
Comparing version 1.0.0 to 1.0.1
23
index.js
@@ -309,8 +309,3 @@ 'use strict'; | ||
var lastTargetIndexRef = React__default['default'].useRef(undefined); // contains the offset point where the initial drag occured to be used when dragging the item | ||
var offsetPointRef = React__default['default'].useRef({ | ||
x: 0, | ||
y: 0 | ||
}); | ||
var lastTargetIndexRef = React__default['default'].useRef(undefined); | ||
React__default['default'].useEffect(function () { | ||
@@ -327,5 +322,4 @@ return function () { | ||
if (targetRef.current) { | ||
var offset = offsetPointRef.current; // we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate3d(" + (position.x - offset.x) + "px, " + (position.y - offset.y) + "px, 0px)"; | ||
// we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate(-50%, -50%) translate3d(" + position.x + "px, " + position.y + "px, 0px)"; | ||
} | ||
@@ -383,14 +377,9 @@ }; | ||
copyItem(sourceIndex); // hide source during the drag gesture | ||
copyItem(sourceIndex); | ||
updateTargetPosition(point); // hide source during the drag gesture | ||
var source = itemsRef.current[sourceIndex]; | ||
source.style.opacity = '0'; | ||
source.style.visibility = 'hidden'; // get the offset between the source item and the point in window | ||
source.style.visibility = 'hidden'; // Adds a nice little physical feedback | ||
offsetPointRef.current = { | ||
x: pointInWindow.x - source.offsetLeft, | ||
y: pointInWindow.y - source.offsetTop | ||
}; | ||
updateTargetPosition(point); // Adds a nice little physical feedback | ||
if (window.navigator.vibrate) { | ||
@@ -397,0 +386,0 @@ window.navigator.vibrate(100); |
@@ -300,8 +300,3 @@ import { __rest, __assign } from 'tslib'; | ||
var lastTargetIndexRef = React.useRef(undefined); // contains the offset point where the initial drag occured to be used when dragging the item | ||
var offsetPointRef = React.useRef({ | ||
x: 0, | ||
y: 0 | ||
}); | ||
var lastTargetIndexRef = React.useRef(undefined); | ||
React.useEffect(function () { | ||
@@ -318,5 +313,4 @@ return function () { | ||
if (targetRef.current) { | ||
var offset = offsetPointRef.current; // we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate3d(" + (position.x - offset.x) + "px, " + (position.y - offset.y) + "px, 0px)"; | ||
// we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate(-50%, -50%) translate3d(" + position.x + "px, " + position.y + "px, 0px)"; | ||
} | ||
@@ -374,14 +368,9 @@ }; | ||
copyItem(sourceIndex); // hide source during the drag gesture | ||
copyItem(sourceIndex); | ||
updateTargetPosition(point); // hide source during the drag gesture | ||
var source = itemsRef.current[sourceIndex]; | ||
source.style.opacity = '0'; | ||
source.style.visibility = 'hidden'; // get the offset between the source item and the point in window | ||
source.style.visibility = 'hidden'; // Adds a nice little physical feedback | ||
offsetPointRef.current = { | ||
x: pointInWindow.x - source.offsetLeft, | ||
y: pointInWindow.y - source.offsetTop | ||
}; | ||
updateTargetPosition(point); // Adds a nice little physical feedback | ||
if (window.navigator.vibrate) { | ||
@@ -388,0 +377,0 @@ window.navigator.vibrate(100); |
{ | ||
"name": "react-easy-sort", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "A React component to sort items in lists or grids", | ||
@@ -5,0 +5,0 @@ "homepage": "https://ricardo-ch.github.io/react-easy-sort/", |
@@ -307,8 +307,3 @@ (function (global, factory) { | ||
var lastTargetIndexRef = React__default['default'].useRef(undefined); // contains the offset point where the initial drag occured to be used when dragging the item | ||
var offsetPointRef = React__default['default'].useRef({ | ||
x: 0, | ||
y: 0 | ||
}); | ||
var lastTargetIndexRef = React__default['default'].useRef(undefined); | ||
React__default['default'].useEffect(function () { | ||
@@ -325,5 +320,4 @@ return function () { | ||
if (targetRef.current) { | ||
var offset = offsetPointRef.current; // we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate3d(" + (position.x - offset.x) + "px, " + (position.y - offset.y) + "px, 0px)"; | ||
// we use `translate3d` to force using the GPU if available | ||
targetRef.current.style.transform = "translate(-50%, -50%) translate3d(" + position.x + "px, " + position.y + "px, 0px)"; | ||
} | ||
@@ -381,14 +375,9 @@ }; | ||
copyItem(sourceIndex); // hide source during the drag gesture | ||
copyItem(sourceIndex); | ||
updateTargetPosition(point); // hide source during the drag gesture | ||
var source = itemsRef.current[sourceIndex]; | ||
source.style.opacity = '0'; | ||
source.style.visibility = 'hidden'; // get the offset between the source item and the point in window | ||
source.style.visibility = 'hidden'; // Adds a nice little physical feedback | ||
offsetPointRef.current = { | ||
x: pointInWindow.x - source.offsetLeft, | ||
y: pointInWindow.y - source.offsetTop | ||
}; | ||
updateTargetPosition(point); // Adds a nice little physical feedback | ||
if (window.navigator.vibrate) { | ||
@@ -395,0 +384,0 @@ window.navigator.vibrate(100); |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("tslib"),require("array-move"),require("react")):"function"==typeof define&&define.amd?define(["exports","tslib","array-move","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactEasySort={},e.tslib,e.arrayMove,e.React)}(this,(function(e,t,n,r){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(n),c=u(r),a=function(e,t,n){for(var r=e.x,u=e.y,o=(void 0===n?{}:n).fallbackToClosest,c=void 0!==o&&o,a=1e4,i=-1,d=0;d<t.length;d+=1){var f=t[d];if(r>=f.left&&r<f.right&&u>=f.top&&u<f.bottom)return d;if(c){var l=(f.left+f.right)/2,s=(f.top+f.bottom)/2,v=Math.sqrt(Math.pow(r-l,2)+Math.pow(u-s,2));v<a&&(a=v,i=d)}}return i},i=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},d=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},f=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},l=function(e){e.preventDefault()},s=function(){window.removeEventListener("contextmenu",l)},v=function(e){var t=e.onStart,n=e.onMove,r=e.onEnd,u=e.containerRef,o=c.default.useRef({x:0,y:0}),a=c.default.useRef(void 0),v=c.default.useRef(!1),m=c.default.useRef({onStart:t,onMove:n,onEnd:r}),p=c.default.useState(!1),h=p[0],y=p[1];c.default.useEffect((function(){m.current={onStart:t,onMove:n,onEnd:r}}),[t,n,r]);var E=function(){a.current&&window.clearTimeout(a.current)},b=c.default.useCallback((function(){if(u.current){var e=u.current.getBoundingClientRect();o.current={x:e.left,y:e.top}}}),[u]),x=c.default.useCallback((function(e){var t=f(e,o.current);m.current.onMove&&m.current.onMove({pointInWindow:e,point:t})}),[]),L=c.default.useCallback((function(e){if(v.current){v.current=!1;var t=i(e),n=f(t,o.current);m.current.onStart&&m.current.onStart({point:n,pointInWindow:t})}else x(i(e))}),[x]),C=c.default.useCallback((function(e){e.cancelable?(e.preventDefault(),x(d(e.touches[0]))):(document.removeEventListener("touchmove",C),m.current.onEnd&&m.current.onEnd())}),[x]),g=c.default.useCallback((function(){v.current=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",g),m.current.onEnd&&m.current.onEnd()}),[L]),w=c.default.useCallback((function(){document.removeEventListener("touchmove",C),document.removeEventListener("touchend",w),s(),m.current.onEnd&&m.current.onEnd()}),[C]),R=c.default.useCallback((function(e){0===e.button&&(document.addEventListener("mousemove",L),document.addEventListener("mouseup",g),b(),v.current=!0)}),[L,g,b]),k=c.default.useCallback((function(e,t){document.addEventListener("touchmove",C,{capture:!1,passive:!1}),document.addEventListener("touchend",w),window.addEventListener("contextmenu",l,{capture:!0,passive:!1}),m.current.onStart&&m.current.onStart({point:e,pointInWindow:t})}),[w,C]),S=c.default.useCallback((function(e){b();var t=d(e.touches[0]),n=f(t,o.current);a.current=window.setTimeout((function(){return k(n,t)}),120)}),[k,b]),I=c.default.useCallback((function(){y(!0),document.removeEventListener("touchstart",I)}),[]),M=c.default.useCallback((function(){E()}),[]);return c.default.useLayoutEffect((function(){if(h){var e=u.current;return null==e||e.addEventListener("touchstart",S,{capture:!0,passive:!1}),document.addEventListener("touchmove",M,{capture:!1,passive:!1}),document.addEventListener("touchend",M,{capture:!1,passive:!1}),function(){null==e||e.removeEventListener("touchstart",S),document.removeEventListener("touchmove",M),document.removeEventListener("touchend",M),document.removeEventListener("touchmove",C),document.removeEventListener("touchend",w),s(),E()}}return document.addEventListener("touchstart",I),function(){document.removeEventListener("touchstart",I),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",g)}}),[h,I,L,C,M,w,g,u,S]),h?{}:{onMouseDown:R}},m=c.default.createContext(void 0);e.SortableItem=function(e){var t=e.children,n=c.default.useContext(m);if(!n)throw new Error("SortableItem must be a child of SortableList");var r=n.registerItem,u=n.removeItem,o=c.default.useRef(null);return c.default.useEffect((function(){var e=o.current;return e&&r(e),function(){e&&u(e)}}),[r,u,t]),c.default.cloneElement(t,{ref:o})},e.default=function(e){var n=e.children,r=e.onSortEnd,u=e.draggedItemClassName,i=t.__rest(e,["children","onSortEnd","draggedItemClassName"]),d=c.default.useRef([]),f=c.default.useRef([]),l=c.default.useRef(null),s=c.default.useRef(null),p=c.default.useRef(void 0),h=c.default.useRef(void 0),y=c.default.useRef({x:0,y:0});c.default.useEffect((function(){return function(){s.current&&document.body.removeChild(s.current)}}),[]);var E=function(e){if(s.current){var t=y.current;s.current.style.transform="translate3d("+(e.x-t.x)+"px, "+(e.y-t.y)+"px, 0px)"}},b=c.default.useCallback((function(e){if(l.current){var t=d.current[e],n=f.current[e],r=t.cloneNode(!0);u&&u.split(" ").forEach((function(e){return r.classList.add(e)})),r.style.width=n.width+"px",r.style.height=n.height+"px";var o=l.current.getBoundingClientRect();r.style.position="fixed",r.style.top=o.top+"px",r.style.left=o.left+"px",document.body.appendChild(r),s.current=r}}),[u]),x=v({containerRef:l,onStart:function(e){var t=e.point,n=e.pointInWindow;if(l.current){f.current=d.current.map((function(e){return e.getBoundingClientRect()}));var r=a(n,f.current);if(-1!==r){p.current=r,b(r);var u=d.current[r];u.style.opacity="0",u.style.visibility="hidden",y.current={x:n.x-u.offsetLeft,y:n.y-u.offsetTop},E(t),window.navigator.vibrate&&window.navigator.vibrate(100)}}},onMove:function(e){var t=e.point,n=e.pointInWindow;E(t);var r=p.current;if(void 0!==r){var u=a(n,f.current,{fallbackToClosest:!0});if(-1!==u){h.current=u;for(var o=r<u,c=0;c<d.current.length;c+=1){var i=d.current[c],l=f.current[c];if(o&&c>=r&&c<=u||!o&&c>=u&&c<=r){var s=f.current[o?c-1:c+1];if(s){var v=s.left-l.left,m=s.top-l.top;i.style.transform="translate3d("+v+"px, "+m+"px, 0px)"}}else i.style.transform="translate3d(0,0,0)";i.style.transitionDuration="300ms"}}}},onEnd:function(){for(var e=0;e<d.current.length;e+=1){var t=d.current[e];t.style.transform="",t.style.transitionDuration=""}var n=p.current;if(void 0!==n){var u=d.current[n];u&&(u.style.opacity="1",u.style.visibility="");var c=h.current;void 0!==c&&n!==c&&(d.current=o.default(d.current,n,c),r(n,c))}p.current=void 0,h.current=void 0,s.current&&(document.body.removeChild(s.current),s.current=null)}}),L=c.default.useCallback((function(e){d.current.push(e)}),[]),C=c.default.useCallback((function(e){var t=d.current.indexOf(e);-1!==t&&d.current.splice(t,1)}),[]),g=c.default.useMemo((function(){return{registerItem:L,removeItem:C}}),[L,C]);return c.default.createElement("div",t.__assign({},x,i,{ref:l}),c.default.createElement(m.Provider,{value:g},n))},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("tslib"),require("array-move"),require("react")):"function"==typeof define&&define.amd?define(["exports","tslib","array-move","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactEasySort={},e.tslib,e.arrayMove,e.React)}(this,(function(e,t,n,r){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(n),c=u(r),a=function(e,t,n){for(var r=e.x,u=e.y,o=(void 0===n?{}:n).fallbackToClosest,c=void 0!==o&&o,a=1e4,i=-1,d=0;d<t.length;d+=1){var l=t[d];if(r>=l.left&&r<l.right&&u>=l.top&&u<l.bottom)return d;if(c){var f=(l.left+l.right)/2,s=(l.top+l.bottom)/2,v=Math.sqrt(Math.pow(r-f,2)+Math.pow(u-s,2));v<a&&(a=v,i=d)}}return i},i=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},d=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},l=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},f=function(e){e.preventDefault()},s=function(){window.removeEventListener("contextmenu",f)},v=function(e){var t=e.onStart,n=e.onMove,r=e.onEnd,u=e.containerRef,o=c.default.useRef({x:0,y:0}),a=c.default.useRef(void 0),v=c.default.useRef(!1),m=c.default.useRef({onStart:t,onMove:n,onEnd:r}),p=c.default.useState(!1),h=p[0],E=p[1];c.default.useEffect((function(){m.current={onStart:t,onMove:n,onEnd:r}}),[t,n,r]);var b=function(){a.current&&window.clearTimeout(a.current)},y=c.default.useCallback((function(){if(u.current){var e=u.current.getBoundingClientRect();o.current={x:e.left,y:e.top}}}),[u]),x=c.default.useCallback((function(e){var t=l(e,o.current);m.current.onMove&&m.current.onMove({pointInWindow:e,point:t})}),[]),L=c.default.useCallback((function(e){if(v.current){v.current=!1;var t=i(e),n=l(t,o.current);m.current.onStart&&m.current.onStart({point:n,pointInWindow:t})}else x(i(e))}),[x]),C=c.default.useCallback((function(e){e.cancelable?(e.preventDefault(),x(d(e.touches[0]))):(document.removeEventListener("touchmove",C),m.current.onEnd&&m.current.onEnd())}),[x]),g=c.default.useCallback((function(){v.current=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",g),m.current.onEnd&&m.current.onEnd()}),[L]),w=c.default.useCallback((function(){document.removeEventListener("touchmove",C),document.removeEventListener("touchend",w),s(),m.current.onEnd&&m.current.onEnd()}),[C]),R=c.default.useCallback((function(e){0===e.button&&(document.addEventListener("mousemove",L),document.addEventListener("mouseup",g),y(),v.current=!0)}),[L,g,y]),k=c.default.useCallback((function(e,t){document.addEventListener("touchmove",C,{capture:!1,passive:!1}),document.addEventListener("touchend",w),window.addEventListener("contextmenu",f,{capture:!0,passive:!1}),m.current.onStart&&m.current.onStart({point:e,pointInWindow:t})}),[w,C]),S=c.default.useCallback((function(e){y();var t=d(e.touches[0]),n=l(t,o.current);a.current=window.setTimeout((function(){return k(n,t)}),120)}),[k,y]),I=c.default.useCallback((function(){E(!0),document.removeEventListener("touchstart",I)}),[]),M=c.default.useCallback((function(){b()}),[]);return c.default.useLayoutEffect((function(){if(h){var e=u.current;return null==e||e.addEventListener("touchstart",S,{capture:!0,passive:!1}),document.addEventListener("touchmove",M,{capture:!1,passive:!1}),document.addEventListener("touchend",M,{capture:!1,passive:!1}),function(){null==e||e.removeEventListener("touchstart",S),document.removeEventListener("touchmove",M),document.removeEventListener("touchend",M),document.removeEventListener("touchmove",C),document.removeEventListener("touchend",w),s(),b()}}return document.addEventListener("touchstart",I),function(){document.removeEventListener("touchstart",I),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",g)}}),[h,I,L,C,M,w,g,u,S]),h?{}:{onMouseDown:R}},m=c.default.createContext(void 0);e.SortableItem=function(e){var t=e.children,n=c.default.useContext(m);if(!n)throw new Error("SortableItem must be a child of SortableList");var r=n.registerItem,u=n.removeItem,o=c.default.useRef(null);return c.default.useEffect((function(){var e=o.current;return e&&r(e),function(){e&&u(e)}}),[r,u,t]),c.default.cloneElement(t,{ref:o})},e.default=function(e){var n=e.children,r=e.onSortEnd,u=e.draggedItemClassName,i=t.__rest(e,["children","onSortEnd","draggedItemClassName"]),d=c.default.useRef([]),l=c.default.useRef([]),f=c.default.useRef(null),s=c.default.useRef(null),p=c.default.useRef(void 0),h=c.default.useRef(void 0);c.default.useEffect((function(){return function(){s.current&&document.body.removeChild(s.current)}}),[]);var E=function(e){s.current&&(s.current.style.transform="translate(-50%, -50%) translate3d("+e.x+"px, "+e.y+"px, 0px)")},b=c.default.useCallback((function(e){if(f.current){var t=d.current[e],n=l.current[e],r=t.cloneNode(!0);u&&u.split(" ").forEach((function(e){return r.classList.add(e)})),r.style.width=n.width+"px",r.style.height=n.height+"px";var o=f.current.getBoundingClientRect();r.style.position="fixed",r.style.top=o.top+"px",r.style.left=o.left+"px",document.body.appendChild(r),s.current=r}}),[u]),y=v({containerRef:f,onStart:function(e){var t=e.point,n=e.pointInWindow;if(f.current){l.current=d.current.map((function(e){return e.getBoundingClientRect()}));var r=a(n,l.current);if(-1!==r){p.current=r,b(r),E(t);var u=d.current[r];u.style.opacity="0",u.style.visibility="hidden",window.navigator.vibrate&&window.navigator.vibrate(100)}}},onMove:function(e){var t=e.point,n=e.pointInWindow;E(t);var r=p.current;if(void 0!==r){var u=a(n,l.current,{fallbackToClosest:!0});if(-1!==u){h.current=u;for(var o=r<u,c=0;c<d.current.length;c+=1){var i=d.current[c],f=l.current[c];if(o&&c>=r&&c<=u||!o&&c>=u&&c<=r){var s=l.current[o?c-1:c+1];if(s){var v=s.left-f.left,m=s.top-f.top;i.style.transform="translate3d("+v+"px, "+m+"px, 0px)"}}else i.style.transform="translate3d(0,0,0)";i.style.transitionDuration="300ms"}}}},onEnd:function(){for(var e=0;e<d.current.length;e+=1){var t=d.current[e];t.style.transform="",t.style.transitionDuration=""}var n=p.current;if(void 0!==n){var u=d.current[n];u&&(u.style.opacity="1",u.style.visibility="");var c=h.current;void 0!==c&&n!==c&&(d.current=o.default(d.current,n,c),r(n,c))}p.current=void 0,h.current=void 0,s.current&&(document.body.removeChild(s.current),s.current=null)}}),x=c.default.useCallback((function(e){d.current.push(e)}),[]),L=c.default.useCallback((function(e){var t=d.current.indexOf(e);-1!==t&&d.current.splice(t,1)}),[]),C=c.default.useMemo((function(){return{registerItem:x,removeItem:L}}),[x,L]);return c.default.createElement("div",t.__assign({},y,i,{ref:f}),c.default.createElement(m.Provider,{value:C},n))},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=react-easy-sort.min.js.map |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
218365
1445