5 lines
1.5 KiB
JavaScript
5 lines
1.5 KiB
JavaScript
|
|
/* interact.js 1.10.27 | https://raw.github.com/taye/interact.js/main/LICENSE */
|
||
|
|
|
||
|
|
import extend from"../../utils/extend.prod.js";import is from"../../utils/is.prod.js";import*as rectUtils from"../../utils/rect.prod.js";import{makeModifier}from"../base.prod.js";import"../Modification.prod.js";import"../../utils/clone.prod.js";function start(t){let{rect:e,startOffset:o,state:i,interaction:r,pageCoords:s}=t;const{options:n}=i,{elementRect:c}=n,l=extend({left:0,top:0,right:0,bottom:0},n.offset||{});if(e&&c){const t=getRestrictionRect(n.restriction,r,s);if(t){const o=t.right-t.left-e.width,i=t.bottom-t.top-e.height;o<0&&(l.left+=o,l.right+=o),i<0&&(l.top+=i,l.bottom+=i)}l.left+=o.left-e.width*c.left,l.top+=o.top-e.height*c.top,l.right+=o.right-e.width*(1-c.right),l.bottom+=o.bottom-e.height*(1-c.bottom)}i.offset=l}function set(t){let{coords:e,interaction:o,state:i}=t;const{options:r,offset:s}=i,n=getRestrictionRect(r.restriction,o,e);if(!n)return;const c=rectUtils.xywhToTlbr(n);e.x=Math.max(Math.min(c.right-s.right,e.x),c.left+s.left),e.y=Math.max(Math.min(c.bottom-s.bottom,e.y),c.top+s.top)}function getRestrictionRect(t,e,o){return is.func(t)?rectUtils.resolveRectLike(t,e.interactable,e.element,[o.x,o.y,e]):rectUtils.resolveRectLike(t,e.interactable,e.element)}const defaults={restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1},restrict={start:start,set:set,defaults:defaults};var restrict$1=makeModifier(restrict,"restrict");export{restrict$1 as default,getRestrictionRect,restrict};
|
||
|
|
//# sourceMappingURL=pointer.prod.js.map
|