import t from"../../utils/extend.prod.js";import e from"../../utils/is.prod.js";import*as o from"../../utils/rect.prod.js";import{makeModifier as i}from"../base.prod.js";export function getRestrictionRect(t,i,r){return e.func(t)?o.resolveRectLike(t,i.interactable,i.element,[r.x,r.y,i]):o.resolveRectLike(t,i.interactable,i.element)}const r={start({rect:e,startOffset:o,state:i,interaction:r,pageCoords:s}){const{options:n}=i,{elementRect:l}=n,c=t({left:0,top:0,right:0,bottom:0},n.offset||{});if(e&&l){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&&(c.left+=o,c.right+=o),i<0&&(c.top+=i,c.bottom+=i)}c.left+=o.left-e.width*l.left,c.top+=o.top-e.height*l.top,c.right+=o.right-e.width*(1-l.right),c.bottom+=o.bottom-e.height*(1-l.bottom)}i.offset=c},set({coords:t,interaction:e,state:i}){const{options:r,offset:s}=i,n=getRestrictionRect(r.restriction,e,t);if(!n)return;const l=o.xywhToTlbr(n);t.x=Math.max(Math.min(l.right-s.right,t.x),l.left+s.left),t.y=Math.max(Math.min(l.bottom-s.bottom,t.y),l.top+s.top)},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}};export default i(r,"restrict");export{r as restrict}; //# sourceMappingURL=pointer.prod.js.map