SafetyScreen-ui/node_modules/@interactjs/actions/drop/plugin.prod.js

2 lines
6.3 KiB
JavaScript

import{InteractEvent as e}from"../../core/InteractEvent.prod.js";import{Interactable as t}from"../../core/Interactable.prod.js";import o from"../../core/Interaction.prod.js";import{Scope as r}from"../../core/scope.prod.js";import*as n from"../../utils/domUtils.prod.js";import a from"../../utils/extend.prod.js";import p from"../../utils/getOriginXY.prod.js";import i from"../../utils/is.prod.js";import d from"../../utils/normalizeListeners.prod.js";import*as c from"../../utils/pointerUtils.prod.js";import l from"../drag/plugin.prod.js";import{DropEvent as s}from"./DropEvent.prod.js";function v(e,t){for(const{dropzone:o,element:r}of e.slice())t.dropzone=o,t.target=r,o.fire(t),t.propagationStopped=t.immediatePropagationStopped=!1}function m(e,t){const o=(({interactables:e},t)=>{const o=[];for(const r of e.list){if(!r.options.drop.enabled)continue;const e=r.options.drop.accept;if(i.element(e)&&e!==t||i.string(e)&&!n.matchesSelector(t,e)||i.func(e)&&!e({dropzone:r,draggableElement:t}))continue;const a=i.string(r.target)?r._context.querySelectorAll(r.target):i.array(r.target)?r.target:[r.target];for(const e of a)e!==t&&o.push({dropzone:r,element:e,rect:r.getRect(e)})}return o})(e,t);for(const e of o)e.rect=e.dropzone.getRect(e.element);return o}function u({dropState:e,interactable:t,element:o},r,a){const p=[];for(const{dropzone:n,element:i,rect:d}of e.activeDrops)p.push(n.dropCheck(r,a,t,o,i,d)?i:null);const i=n.indexOfDeepestElement(p);return e.activeDrops[i]||null}function f(e,t,o){const{dropState:r}=e,n={enter:null,leave:null,activate:null,deactivate:null,move:null,drop:null};return"dragstart"===o.type&&(n.activate=new s(r,o,"dropactivate"),n.activate.target=null,n.activate.dropzone=null),"dragend"===o.type&&(n.deactivate=new s(r,o,"dropdeactivate"),n.deactivate.target=null,n.deactivate.dropzone=null),r.rejected||(r.cur.element!==r.prev.element&&(r.prev.dropzone&&(n.leave=new s(r,o,"dragleave"),o.dragLeave=n.leave.target=r.prev.element,o.prevDropzone=n.leave.dropzone=r.prev.dropzone),r.cur.dropzone&&(n.enter=new s(r,o,"dragenter"),o.dragEnter=r.cur.element,o.dropzone=r.cur.dropzone)),"dragend"===o.type&&r.cur.dropzone&&(n.drop=new s(r,o,"drop"),o.dropzone=r.cur.dropzone,o.relatedTarget=r.cur.element),"dragmove"===o.type&&r.cur.dropzone&&(n.move=new s(r,o,"dropmove"),n.move.dragmove=o,o.dropzone=r.cur.dropzone)),n}function g(e,t){const{dropState:o}=e,{activeDrops:r,cur:n,prev:a}=o;t.leave&&a.dropzone.fire(t.leave),t.enter&&n.dropzone.fire(t.enter),t.move&&n.dropzone.fire(t.move),t.drop&&n.dropzone.fire(t.drop),t.deactivate&&v(r,t.deactivate),o.prev.dropzone=n.dropzone,o.prev.element=n.element}function z({interaction:e,iEvent:t,event:o},r){if("dragmove"!==t.type&&"dragend"!==t.type)return;const{dropState:n}=e;r.dynamicDrop&&(n.activeDrops=m(r,e.element));const a=t,p=u(e,a,o);n.rejected=n.rejected&&!!p&&p.dropzone===n.cur.dropzone&&p.element===n.cur.element,n.cur.dropzone=p&&p.dropzone,n.cur.element=p&&p.element,n.events=f(e,0,a)}const h={id:"actions/drop",install(e){const{actions:t,interactStatic:o,Interactable:r,defaults:n}=e;e.usePlugin(l),r.prototype.dropzone=function(e){return((e,t)=>{if(i.object(t)){if(e.options.drop.enabled=!1!==t.enabled,t.listeners){const o=d(t.listeners),r=Object.keys(o).reduce(((e,t)=>(e[/^(enter|leave)/.test(t)?"drag"+t:/^(activate|deactivate|move)/.test(t)?"drop"+t:t]=o[t],e)),{});e.off(e.options.drop.listeners),e.on(r),e.options.drop.listeners=r}return i.func(t.ondrop)&&e.on("drop",t.ondrop),i.func(t.ondropactivate)&&e.on("dropactivate",t.ondropactivate),i.func(t.ondropdeactivate)&&e.on("dropdeactivate",t.ondropdeactivate),i.func(t.ondragenter)&&e.on("dragenter",t.ondragenter),i.func(t.ondragleave)&&e.on("dragleave",t.ondragleave),i.func(t.ondropmove)&&e.on("dropmove",t.ondropmove),/^(pointer|center)$/.test(t.overlap)?e.options.drop.overlap=t.overlap:i.number(t.overlap)&&(e.options.drop.overlap=Math.max(Math.min(1,t.overlap),0)),"accept"in t&&(e.options.drop.accept=t.accept),"checker"in t&&(e.options.drop.checker=t.checker),e}return i.bool(t)?(e.options.drop.enabled=t,e):e.options.drop})(this,e)},r.prototype.dropCheck=function(e,t,o,r,n,a){return((e,t,o,r,n,a,d)=>{let l=!1;if(!(d=d||e.getRect(a)))return!!e.options.drop.checker&&e.options.drop.checker(t,o,l,e,a,r,n);const s=e.options.drop.overlap;if("pointer"===s){const e=p(r,n,"drag"),o=c.getPageXY(t);o.x+=e.x,o.y+=e.y;const a=o.x>d.left&&o.x<d.right,i=o.y>d.top&&o.y<d.bottom;l=a&&i}const v=r.getRect(n);if(v&&"center"===s){const e=v.left+v.width/2,t=v.top+v.height/2;l=e>=d.left&&e<=d.right&&t>=d.top&&t<=d.bottom}return v&&i.number(s)&&(l=Math.max(0,Math.min(d.right,v.right)-Math.max(d.left,v.left))*Math.max(0,Math.min(d.bottom,v.bottom)-Math.max(d.top,v.top))/(v.width*v.height)>=s),e.options.drop.checker&&(l=e.options.drop.checker(t,o,l,e,a,r,n)),l})(this,e,t,o,r,n,a)},o.dynamicDrop=t=>i.bool(t)?(e.dynamicDrop=t,o):e.dynamicDrop,a(t.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),t.methodDict.drop="dropzone",e.dynamicDrop=!1,n.actions.drop=h.defaults},listeners:{"interactions:before-action-start"({interaction:e}){"drag"===e.prepared.name&&(e.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},"interactions:after-action-start"({interaction:e,event:t,iEvent:o},r){if("drag"!==e.prepared.name)return;const{dropState:n}=e;n.activeDrops=null,n.events=null,n.activeDrops=m(r,e.element),n.events=f(e,0,o),n.events.activate&&(v(n.activeDrops,n.events.activate),r.fire("actions/drop:start",{interaction:e,dragEvent:o}))},"interactions:action-move":z,"interactions:after-action-move"({interaction:e,iEvent:t},o){"drag"===e.prepared.name&&(g(e,e.dropState.events),o.fire("actions/drop:move",{interaction:e,dragEvent:t}),e.dropState.events={})},"interactions:action-end"(e,t){if("drag"!==e.interaction.prepared.name)return;const{interaction:o,iEvent:r}=e;z(e,t),g(o,o.dropState.events),t.fire("actions/drop:end",{interaction:o,dragEvent:r})},"interactions:stop"({interaction:e}){if("drag"!==e.prepared.name)return;const{dropState:t}=e;t&&(t.activeDrops=null,t.events=null,t.cur.dropzone=null,t.cur.element=null,t.prev.dropzone=null,t.prev.element=null,t.rejected=!1)}},getActiveDrops:m,getDrop:u,getDropEvents:f,fireDropEvents:g,defaults:{enabled:!1,accept:null,overlap:"pointer"}};export default h;
//# sourceMappingURL=plugin.prod.js.map