Last active
August 18, 2025 19:00
-
-
Save black1277/1b85287f0b6ca70fa96adfe67f880ee7 to your computer and use it in GitHub Desktop.
ReactDnDHTML5Backend.umd.min.js 16.0.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' | |
| ? factory(exports) | |
| : typeof define === 'function' && define.amd | |
| ? define(['exports'], factory) | |
| : (global = global || self, factory(global.ReactDnDHTML5Backend = {})); | |
| }(this, (function (exports) { | |
| var V=Object.defineProperty;var q=(n,e)=>{for(var t in e)V(n,t,{get:e[t],enumerable:!0})};function b(n){let e=null;return()=>(e==null&&(e=n()),e)}function B(n,e){return n.filter(t=>t!==e)}function z(n,e){let t=new Set,s=i=>t.add(i);n.forEach(s),e.forEach(s);let r=[];return t.forEach(i=>r.push(i)),r}var w=class{enter(e){let t=this.entered.length,s=r=>this.isNodeInDocument(r)&&(!r.contains||r.contains(e));return this.entered=z(this.entered.filter(s),[e]),t===0&&this.entered.length>0}leave(e){let t=this.entered.length;return this.entered=B(this.entered.filter(this.isNodeInDocument),e),t>0&&this.entered.length===0}reset(){this.entered=[]}constructor(e){this.entered=[],this.isNodeInDocument=e}};var I=class{initializeExposedProperties(){Object.keys(this.config.exposeProperties).forEach(e=>{Object.defineProperty(this.item,e,{configurable:!0,enumerable:!0,get(){return console.warn(`Browser doesn't allow reading "${e}" until the drop event.`),null}})})}loadDataTransfer(e){if(e){let t={};Object.keys(this.config.exposeProperties).forEach(s=>{let r=this.config.exposeProperties[s];r!=null&&(t[s]={value:r(e,this.config.matchesTypes),configurable:!0,enumerable:!0})}),Object.defineProperties(this.item,t)}}canDrag(){return!0}beginDrag(){return this.item}isDragging(e,t){return t===e.getSourceId()}endDrag(){}constructor(e){this.config=e,this.item={},this.initializeExposedProperties()}};var T={};q(T,{FILE:()=>A,HTML:()=>M,TEXT:()=>H,URL:()=>_});var A="__NATIVE_FILE__",_="__NATIVE_URL__",H="__NATIVE_TEXT__",M="__NATIVE_HTML__";function O(n,e,t){let s=e.reduce((r,i)=>r||n.getData(i),"");return s??t}var y={[A]:{exposeProperties:{files:n=>Array.prototype.slice.call(n.files),items:n=>n.items,dataTransfer:n=>n},matchesTypes:["Files"]},[M]:{exposeProperties:{html:(n,e)=>O(n,e,""),dataTransfer:n=>n},matchesTypes:["Html","text/html"]},[_]:{exposeProperties:{urls:(n,e)=>O(n,e,"").split(` | |
| `),dataTransfer:n=>n},matchesTypes:["Url","text/uri-list"]},[H]:{exposeProperties:{text:(n,e)=>O(n,e,""),dataTransfer:n=>n},matchesTypes:["Text","text/plain"]}};function j(n,e){let t=y[n];if(!t)throw new Error(`native type ${n} has no configuration`);let s=new I(t);return s.loadDataTransfer(e),s}function x(n){if(!n)return null;let e=Array.prototype.slice.call(n.types||[]);return Object.keys(y).filter(t=>{let s=y[t];return s?.matchesTypes?s.matchesTypes.some(r=>e.indexOf(r)>-1):!1})[0]||null}var U=b(()=>/firefox/i.test(navigator.userAgent)),F=b(()=>!!window.safari);var E=class{interpolate(e){let{xs:t,ys:s,c1s:r,c2s:i,c3s:d}=this,o=t.length-1;if(e===t[o])return s[o];let c=0,h=d.length-1,u;for(;c<=h;){u=Math.floor(.5*(c+h));let g=t[u];if(g<e)c=u+1;else if(g>e)h=u-1;else return s[u]}o=Math.max(0,h);let l=e-t[o],f=l*l;return s[o]+r[o]*l+i[o]*f+d[o]*l*f}constructor(e,t){let{length:s}=e,r=[];for(let a=0;a<s;a++)r.push(a);r.sort((a,p)=>e[a]<e[p]?-1:1);let i=[],d=[],o=[],c,h;for(let a=0;a<s-1;a++)c=e[a+1]-e[a],h=t[a+1]-t[a],d.push(c),i.push(h),o.push(h/c);let u=[o[0]];for(let a=0;a<d.length-1;a++){let p=o[a],v=o[a+1];if(p*v<=0)u.push(0);else{c=d[a];let m=d[a+1],D=c+m;u.push(3*D/((D+m)/p+(D+c)/v))}}u.push(o[o.length-1]);let l=[],f=[],g;for(let a=0;a<u.length-1;a++){g=o[a];let p=u[a],v=1/d[a],m=p+u[a+1]-g-g;l.push((g-p-m)*v),f.push(m*v*v)}this.xs=e,this.ys=t,this.c1s=u,this.c2s=l,this.c3s=f}};var G=1;function R(n){let e=n.nodeType===G?n:n.parentElement;if(!e)return null;let{top:t,left:s}=e.getBoundingClientRect();return{x:s,y:t}}function N(n){return{x:n.clientX,y:n.clientY}}function $(n){var e;return n.nodeName==="IMG"&&(U()||!(!((e=document.documentElement)===null||e===void 0)&&e.contains(n)))}function Q(n,e,t,s){let r=n?e.width:t,i=n?e.height:s;return F()&&n&&(i/=window.devicePixelRatio,r/=window.devicePixelRatio),{dragPreviewWidth:r,dragPreviewHeight:i}}function Y(n,e,t,s,r){let i=$(e),o=R(i?n:e),c={x:t.x-o.x,y:t.y-o.y},{offsetWidth:h,offsetHeight:u}=n,{anchorX:l,anchorY:f}=s,{dragPreviewWidth:g,dragPreviewHeight:a}=Q(i,e,h,u),p=()=>{let X=new E([0,.5,1],[c.y,c.y/u*a,c.y+a-u]).interpolate(f);return F()&&i&&(X+=(window.devicePixelRatio-1)*a),X},v=()=>new E([0,.5,1],[c.x,c.x/h*g,c.x+g-h]).interpolate(l),{offsetX:m,offsetY:D}=r,S=m===0||m,W=D===0||D;return{x:S?m:v(),y:W?D:p()}}var C=class{get window(){if(this.globalContext)return this.globalContext;if(typeof window<"u")return window}get document(){var e;return!((e=this.globalContext)===null||e===void 0)&&e.document?this.globalContext.document:this.window?this.window.document:void 0}get rootElement(){var e;return((e=this.optionsArgs)===null||e===void 0?void 0:e.rootElement)||this.window}constructor(e,t){this.ownerDocument=null,this.globalContext=e,this.optionsArgs=t}};function J(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function k(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{},s=Object.keys(t);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(t).filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),s.forEach(function(r){J(n,r,t[r])})}return n}var L=class{profile(){var e,t;return{sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,sourceNodeOptions:this.sourceNodeOptions.size,sourceNodes:this.sourceNodes.size,dragStartSourceIds:((e=this.dragStartSourceIds)===null||e===void 0?void 0:e.length)||0,dropTargetIds:this.dropTargetIds.length,dragEnterTargetIds:this.dragEnterTargetIds.length,dragOverTargetIds:((t=this.dragOverTargetIds)===null||t===void 0?void 0:t.length)||0}}get window(){return this.options.window}get document(){return this.options.document}get rootElement(){return this.options.rootElement}setup(){let e=this.rootElement;if(e!==void 0){if(e.__isReactDndBackendSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");e.__isReactDndBackendSetUp=!0,this.addEventListeners(e)}}teardown(){let e=this.rootElement;if(e!==void 0&&(e.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.rootElement),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId)){var t;(t=this.window)===null||t===void 0||t.cancelAnimationFrame(this.asyncEndDragFrameId)}}connectDragPreview(e,t,s){return this.sourcePreviewNodeOptions.set(e,s),this.sourcePreviewNodes.set(e,t),()=>{this.sourcePreviewNodes.delete(e),this.sourcePreviewNodeOptions.delete(e)}}connectDragSource(e,t,s){this.sourceNodes.set(e,t),this.sourceNodeOptions.set(e,s);let r=d=>this.handleDragStart(d,e),i=d=>this.handleSelectStart(d);return t.setAttribute("draggable","true"),t.addEventListener("dragstart",r),t.addEventListener("selectstart",i),()=>{this.sourceNodes.delete(e),this.sourceNodeOptions.delete(e),t.removeEventListener("dragstart",r),t.removeEventListener("selectstart",i),t.setAttribute("draggable","false")}}connectDropTarget(e,t){let s=d=>this.handleDragEnter(d,e),r=d=>this.handleDragOver(d,e),i=d=>this.handleDrop(d,e);return t.addEventListener("dragenter",s),t.addEventListener("dragover",r),t.addEventListener("drop",i),()=>{t.removeEventListener("dragenter",s),t.removeEventListener("dragover",r),t.removeEventListener("drop",i)}}addEventListeners(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}removeEventListeners(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}getCurrentSourceNodeOptions(){let e=this.monitor.getSourceId(),t=this.sourceNodeOptions.get(e);return k({dropEffect:this.altKeyPressed?"copy":"move"},t||{})}getCurrentDropEffect(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}getCurrentSourcePreviewNodeOptions(){let e=this.monitor.getSourceId(),t=this.sourcePreviewNodeOptions.get(e);return k({anchorX:.5,anchorY:.5,captureDraggingState:!1},t||{})}isDraggingNativeItem(){let e=this.monitor.getItemType();return Object.keys(T).some(t=>T[t]===e)}beginDragNativeItem(e,t){this.clearCurrentDragSourceNode(),this.currentNativeSource=j(e,t),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}setCurrentDragSourceNode(e){this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e;let t=1e3;this.mouseMoveTimeoutTimer=setTimeout(()=>{var s;return(s=this.rootElement)===null||s===void 0?void 0:s.addEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)},t)}clearCurrentDragSourceNode(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var e;(e=this.window)===null||e===void 0||e.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}handleDragStart(e,t){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(t))}handleDragEnter(e,t){this.dragEnterTargetIds.unshift(t)}handleDragOver(e,t){this.dragOverTargetIds===null&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(t)}handleDrop(e,t){this.dropTargetIds.unshift(t)}constructor(e,t,s){this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.lastClientOffset=null,this.hoverRafId=null,this.getSourceClientOffset=r=>{let i=this.sourceNodes.get(r);return i&&R(i)||null},this.endDragNativeItem=()=>{this.isDraggingNativeItem()&&(this.actions.endDrag(),this.currentNativeHandle&&this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)},this.isNodeInDocument=r=>!!(r&&this.document&&this.document.body&&this.document.body.contains(r)),this.endDragIfSourceWasRemovedFromDOM=()=>{let r=this.currentDragSourceNode;r==null||this.isNodeInDocument(r)||(this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover())},this.scheduleHover=r=>{this.hoverRafId===null&&typeof requestAnimationFrame<"u"&&(this.hoverRafId=requestAnimationFrame(()=>{this.monitor.isDragging()&&this.actions.hover(r||[],{clientOffset:this.lastClientOffset}),this.hoverRafId=null}))},this.cancelHover=()=>{this.hoverRafId!==null&&typeof cancelAnimationFrame<"u"&&(cancelAnimationFrame(this.hoverRafId),this.hoverRafId=null)},this.handleTopDragStartCapture=()=>{this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]},this.handleTopDragStart=r=>{if(r.defaultPrevented)return;let{dragStartSourceIds:i}=this;this.dragStartSourceIds=null;let d=N(r);this.monitor.isDragging()&&(this.actions.endDrag(),this.cancelHover()),this.actions.beginDrag(i||[],{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:d});let{dataTransfer:o}=r,c=x(o);if(this.monitor.isDragging()){if(o&&typeof o.setDragImage=="function"){let u=this.monitor.getSourceId(),l=this.sourceNodes.get(u),f=this.sourcePreviewNodes.get(u)||l;if(f){let{anchorX:g,anchorY:a,offsetX:p,offsetY:v}=this.getCurrentSourcePreviewNodeOptions(),S=Y(l,f,d,{anchorX:g,anchorY:a},{offsetX:p,offsetY:v});o.setDragImage(f,S.x,S.y)}}try{o?.setData("application/json",{})}catch{}this.setCurrentDragSourceNode(r.target);let{captureDraggingState:h}=this.getCurrentSourcePreviewNodeOptions();h?this.actions.publishDragSource():setTimeout(()=>this.actions.publishDragSource(),0)}else if(c)this.beginDragNativeItem(c);else{if(o&&!o.types&&(r.target&&!r.target.hasAttribute||!r.target.hasAttribute("draggable")))return;r.preventDefault()}},this.handleTopDragEndCapture=()=>{this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleTopDragEnterCapture=r=>{if(this.dragEnterTargetIds=[],this.isDraggingNativeItem()){var i;(i=this.currentNativeSource)===null||i===void 0||i.loadDataTransfer(r.dataTransfer)}if(!this.enterLeaveCounter.enter(r.target)||this.monitor.isDragging())return;let{dataTransfer:o}=r,c=x(o);c&&this.beginDragNativeItem(c,o)},this.handleTopDragEnter=r=>{let{dragEnterTargetIds:i}=this;if(this.dragEnterTargetIds=[],!this.monitor.isDragging())return;this.altKeyPressed=r.altKey,i.length>0&&this.actions.hover(i,{clientOffset:N(r)}),i.some(o=>this.monitor.canDropOnTarget(o))&&(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect=this.getCurrentDropEffect()))},this.handleTopDragOverCapture=r=>{if(this.dragOverTargetIds=[],this.isDraggingNativeItem()){var i;(i=this.currentNativeSource)===null||i===void 0||i.loadDataTransfer(r.dataTransfer)}},this.handleTopDragOver=r=>{let{dragOverTargetIds:i}=this;if(this.dragOverTargetIds=[],!this.monitor.isDragging()){r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect="none");return}this.altKeyPressed=r.altKey,this.lastClientOffset=N(r),this.scheduleHover(i),(i||[]).some(o=>this.monitor.canDropOnTarget(o))?(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect=this.getCurrentDropEffect())):this.isDraggingNativeItem()?r.preventDefault():(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=r=>{this.isDraggingNativeItem()&&r.preventDefault(),this.enterLeaveCounter.leave(r.target)&&(this.isDraggingNativeItem()&&setTimeout(()=>this.endDragNativeItem(),0),this.cancelHover())},this.handleTopDropCapture=r=>{if(this.dropTargetIds=[],this.isDraggingNativeItem()){var i;r.preventDefault(),(i=this.currentNativeSource)===null||i===void 0||i.loadDataTransfer(r.dataTransfer)}else x(r.dataTransfer)&&r.preventDefault();this.enterLeaveCounter.reset()},this.handleTopDrop=r=>{let{dropTargetIds:i}=this;this.dropTargetIds=[],this.actions.hover(i,{clientOffset:N(r)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleSelectStart=r=>{let i=r.target;typeof i.dragDrop=="function"&&(i.tagName==="INPUT"||i.tagName==="SELECT"||i.tagName==="TEXTAREA"||i.isContentEditable||(r.preventDefault(),i.dragDrop()))},this.options=new C(t,s),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.enterLeaveCounter=new w(this.isNodeInDocument)}};var P;function Z(){return P||(P=new Image,P.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),P}var Oe=function(e,t,s){return new L(e,t,s)}; | |
| exports.HTML5Backend = Oe; | |
| exports.NativeTypes = T; | |
| exports.getEmptyImage = Z; | |
| }))); |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For use https://cdn.statically.io/gist/black1277/1b85287f0b6ca70fa96adfe67f880ee7/raw/f5bed9428c953b5bf09e094d2e21c5ddd5a9c17d/ReactDnDHTML5Backend.umd.min.js