UNPKG

@jecloud/ui

Version:

JECloud UI库,基于ant-design-vue封装

1 lines 3.01 kB
import{toNumber as e,getDomNode as t,getEventTargetNode as o,toggleClass as n}from"@jecloud/utils";import s from"../../../utils/keycode";export function useEvents(i){var l=i.props,c=i.reactData,a=i.zoom,u=i.close,r=i.fireEvent,m=i.getRef,p=i.updateZindex,f=function(e){u("close",e)};return{keydownEvent:function(e){l.escClosable&&e.keyCode===s.ESC&&(f(event),e.stopPropagation())},dragEvent:function(s){var i=c.zoomLocat,a=e(l.marginSize),u=m("box",!0),r=m("el",!0),p="is--draggable";if(!i&&0===s.button&&!o(s,u,"tool--btn").flag){s.preventDefault();var f=document.onmousemove,d=document.onmouseup,h=s.clientX-u.offsetLeft,v=s.clientY-u.offsetTop,y=t(),x=y.height,g=y.width,b=setTimeout((function(){n(r,p,!0)}),150);document.onmousemove=function(e){e.preventDefault();var t=u.offsetWidth,o=a-t,n=g-a,s=x-a,i=e.clientX-h,l=e.clientY-v;i>n&&(i=n),i<o&&(i=o),l>s&&(l=s),l<0&&(l=0),u.style.left=i+"px",u.style.top=l+"px"},document.onmouseup=function(){clearTimeout(b),n(r,p,!1),document.onmousemove=f,document.onmouseup=d}}},resizeEvent:function(o){o.preventDefault();var n=t(),s=n.height,i=n.width,a=o.target.getAttribute("type"),u=e(l.minWidth),p=e(l.minHeight),f=i,d=s,h=m("box",!0),v=document.onmousemove,y=document.onmouseup,x=h.clientWidth,g=h.clientHeight,b=o.clientX,w=o.clientY,k=h.offsetTop,z=h.offsetLeft;document.onmousemove=function(e){var t,o,n,l;switch(e.preventDefault(),a){case"wl":n=(t=b-e.clientX)+x,z-t>0&&n>u&&(h.style.width=(n<f?n:f)+"px",h.style.left=z-t+"px");break;case"swst":t=b-e.clientX,o=w-e.clientY,n=t+x,l=o+g,z-t>0&&n>u&&(h.style.width=(n<f?n:f)+"px",h.style.left=z-t+"px"),k-o>0&&l>p&&(h.style.height=(l<d?l:d)+"px",h.style.top=k-o+"px");break;case"swlb":t=b-e.clientX,o=e.clientY-w,n=t+x,l=o+g,z-t>0&&n>u&&(h.style.width=(n<f?n:f)+"px",h.style.left=z-t+"px"),k+l+0<s&&l>p&&(h.style.height=(l<d?l:d)+"px");break;case"st":o=w-e.clientY,l=g+o,k-o>0&&l>p&&(h.style.height=(l<d?l:d)+"px",h.style.top=k-o+"px");break;case"wr":t=e.clientX-b,z+(n=t+x)+0<i&&n>u&&(h.style.width=(n<f?n:f)+"px");break;case"sest":t=e.clientX-b,l=(o=w-e.clientY)+g,z+(n=t+x)+0<i&&n>u&&(h.style.width=(n<f?n:f)+"px"),k-o>0&&l>p&&(h.style.height=(l<d?l:d)+"px",h.style.top=k-o+"px");break;case"selb":t=e.clientX-b,l=(o=e.clientY-w)+g,z+(n=t+x)+0<i&&n>u&&(h.style.width=(n<f?n:f)+"px"),k+l+0<s&&l>p&&(h.style.height=(l<d?l:d)+"px");break;case"sb":o=e.clientY-w,k+(l=o+g)+0<s&&l>p&&(h.style.height=(l<d?l:d)+"px")}h.className=h.className.replace(/\s?is--drag/,"")+" is--drag",r("resize",{type:"resize"},e)},document.onmouseup=function(){c.zoomLocat=null,document.onmousemove=v,document.onmouseup=y,setTimeout((function(){h.className=h.className.replace(/\s?is--drag/,"")}),50)}},resizeDirection:["wl","wr","swst","sest","st","swlb","selb","sb"],toggleZoomEvent:function(e){var t={type:c.zoomLocat?"revert":"max"};return a().then((function(){r("resize",{type:t.type},e)}))},clickMaskCloseEvent:function(e){var t=m("el",!0);l.mask&&l.maskClosable&&e.target===t&&f(e)},closeEvent:f,boxMousedownEvent:function(){p()}}}