2 lines
4.0 KiB
Java
2 lines
4.0 KiB
Java
var z=Object.defineProperty,F=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var W=(n,t,e)=>t in n?z(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,L=(n,t)=>{for(var e in t||(t={}))U.call(t,e)&&W(n,e,t[e]);if(P)for(var e of P(t))V.call(t,e)&&W(n,e,t[e]);return n},k=(n,t)=>F(n,T(t));import{e as G,C as H,z as D,L as J,H as Q,c as X,F as Z,D as j,R as C,T as q,J as N,Q as A}from"./vue-vendor-DNhG1Cve.js";import{au as K}from"./index-X7Y8jykP.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const v=6;function h(n,t,e){return Math.min(e,Math.max(t,n))}function m(n,t){return!t||t<=1?n:Math.round(n/t)*t}function O(n,t,e,d,w,o){var l,s,i,u;const c=(l=o==null?void 0:o.left)!=null?l:0,x=(s=o==null?void 0:o.right)!=null?s:0,r=(i=o==null?void 0:o.top)!=null?i:0,y=(u=o==null?void 0:o.bottom)!=null?u:0,f=h(m(n.x+e,w),c,t.width-x-n.w),p=h(m(n.y+d,w),r,t.height-y-n.h);return k(L({},n),{x:f,y:p})}function S(n,t,e,d,w,o,c){var l,s,i,u;const x=(l=c==null?void 0:c.left)!=null?l:0,r=(s=c==null?void 0:c.right)!=null?s:0,y=(i=c==null?void 0:c.top)!=null?i:0,f=(u=c==null?void 0:c.bottom)!=null?u:0,p=L({},t);if(n.includes("e")&&(p.w=h(m(t.w+d,o),v,e.width-r-t.x)),n.includes("s")&&(p.h=h(m(t.h+w,o),v,e.height-f-t.y)),n.includes("w")){const a=h(m(t.x+d,o),x,t.x+t.w-v);p.w=h(m(t.w+(t.x-a),o),v,e.width-r-a),p.x=a}if(n.includes("n")){const a=h(m(t.y+w,o),y,t.y+t.h-v);p.h=h(m(t.h+(t.y-a),o),v,e.height-f-a),p.y=a}return p}const g=["onPointerdown"],B=3.7795275591,R=G({__name:"ElementWrapper",props:{element:{},active:{type:Boolean},scale:{},gridSize:{},pageWidth:{},pageHeight:{},movable:{type:Boolean},resizable:{type:Boolean},dragBounds:{},pageMargins:{}},emits:["update","select","dragging"],setup(n,{emit:t}){const e=n,d=t,w=["nw","n","ne","e","se","s","sw","w"],o=X(()=>e.pageMargins||{top:0,right:0,bottom:0,left:0}),c=X(()=>({position:"absolute",left:`${e.element.x}mm`,top:`${e.element.y}mm`,width:`${e.element.w}mm`,height:`${e.element.h}mm`,zIndex:e.element.zIndex,outline:e.active?"1px solid #1677ff":"1px dashed transparent",userSelect:"none"})),x=X(()=>e.movable!==!1),r=X(()=>e.resizable!==!1);function y(l){const s=e.dragBounds;return s?k(L({},l),{x:Math.max(s.minX,Math.min(s.maxX,l.x)),y:Math.max(s.minY,Math.min(s.maxY,l.y))}):l}function f(l){var b;if(d("select",e.element.id),(b=l.target)!=null&&b.classList.contains("resize-handle")||!x.value)return;const s={x:e.element.x,y:e.element.y,w:e.element.w,h:e.element.h},i=l.clientX,u=l.clientY,a=E=>{const Y=(E.clientX-i)/e.scale/B,$=(E.clientY-u)/e.scale/B,_=O(s,{width:e.pageWidth,height:e.pageHeight},Y,$,e.gridSize,o.value),I=y(_);d("update",{id:e.element.id,patch:I}),d("dragging",{id:e.element.id,rect:I,active:!0})},M=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",M),d("dragging",{id:e.element.id,rect:{x:e.element.x,y:e.element.y,w:e.element.w,h:e.element.h},active:!1})};window.addEventListener("pointermove",a),window.addEventListener("pointerup",M)}function p(l,s){if(d("select",e.element.id),!r.value)return;const i={x:e.element.x,y:e.element.y,w:e.element.w,h:e.element.h},u=l.clientX,a=l.clientY,M=E=>{const Y=(E.clientX-u)/e.scale/B,$=(E.clientY-a)/e.scale/B,_=S(s,i,{width:e.pageWidth,height:e.pageHeight},Y,$,e.gridSize,o.value);d("update",{id:e.element.id,patch:_})},b=()=>{window.removeEventListener("pointermove",M),window.removeEventListener("pointerup",b)};window.addEventListener("pointermove",M),window.addEventListener("pointerup",b)}return(l,s)=>(D(),H("div",{class:N(["element-wrapper",{active:n.active}]),style:q(c.value),onPointerdown:C(f,["stop"]),onClick:s[0]||(s[0]=C(i=>d("select",n.element.id),["stop"]))},[J(l.$slots,"default",{},void 0,!0),n.active&&r.value?(D(),H(Z,{key:0},j(w,i=>A("span",{key:i,class:N(["resize-handle",`handle-${i}`]),onPointerdown:C(u=>p(u,i),["stop"])},null,42,g)),64)):Q("",!0)],38))}}),le=K(R,[["__scopeId","data-v-00e200c7"]]);export{le as default};
|