/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/vue3-sketch-ruler@2.3.3/lib/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{ref as X,computed as z,defineComponent as se,onMounted as we,watch as $,withDirectives as J,createElementBlock as V,openBlock as H,withModifiers as ie,normalizeStyle as I,unref as O,createElementVNode as _,createCommentVNode as ve,toDisplayString as ke,vShow as ee,reactive as Oe,onUnmounted as Le,normalizeClass as pe,createVNode as ge,mergeProps as ye,Fragment as Pe,renderList as Ne,createBlock as Ye,useCssVars as We,renderSlot as be}from"vue";const ze=e=>e<=.25?40:e<=.5?20:e<=1?10:e<=2?5:e<=4?2:1;function Ue(e,t,a,n,o,r){r?o.moveTo(e,0):o.moveTo(0,e),o.save(),r?o.translate(e+5,.2*n):o.translate(.1*a,e+32),r||o.rotate(-Math.PI/2),o.fillText(Math.round(t).toString(),4,7),o.restore(),r?o.lineTo(e,n):o.lineTo(a,e),o.stroke(),o.closePath(),o.setTransform(1,0,0,1,0,0)}function ae(e,t,a,n,o,r){n.fillStyle=o.fontShadowColor,n.strokeStyle=o.longfgColor,n.save(),n.translate(e,t),r||n.rotate(-Math.PI/2),n.font="bold 12px  Aria",n.fillText(String(a),0,0),n.restore()}const De=(e,t,a,n,o,r)=>{const{scale:l,width:i,height:s,ratio:c,palette:h,gridRatio:d,showShadowText:u}=o,{bgColor:p,fontColor:v,shadowColor:f,longfgColor:g}=h,m=r?o.canvasWidth:o.canvasHeight;e.setTransform(1,0,0,1,0,0),e.scale(c,c),e.clearRect(0,0,i,s),e.fillStyle=p,e.fillRect(0,0,i,s);const w=ze(l)*d*10,y=w*l,b=Math.floor(t/w)*w,x=(b-t)/w*y,A=t+Math.ceil((r?i:s)/l);if(n){const o=(a-t)*l,c=n*l;if(e.fillStyle=f,r?e.fillRect(o,0,c,s):e.fillRect(0,o,i,c),u)if(r){ae(o,.4*s,Math.round(a),e,h,r);ae((a+n-t)*l,.4*s,Math.round(a+n),e,h,r)}else{ae(.4*i,o,Math.round(a),e,h,r);ae(.4*i,(a+n-t)*l,Math.round(a+n),e,h,r)}}e.beginPath(),e.fillStyle=v,e.strokeStyle=g;for(let t=b,o=0;t<A;t+=w,o++){const c=x+o*y+.5;if(t-w<m&&t>m||t==m){return void Ue(x+o*y+.5+(m-t)*l,m,i,s,e,r)}t>=0&&t<=m&&(0==t?r?(e.moveTo(c,0),e.lineTo(c,s)):(e.moveTo(0,c),e.lineTo(i,c)):r?(e.moveTo(c,20),e.lineTo(c,s/1.3)):(e.moveTo(20,c),e.lineTo(i/1.3,c)),e.save(),0==t?r?e.translate(c-15,.01*s):e.translate(.3*i,c-5):r?e.translate(c-12,.05*s):e.translate(.05*i,c+12),r||e.rotate(-Math.PI/2),m-t>w/2&&(!u||0==n||Math.abs(t-a)>w/2&&Math.abs(t-(a+n))>w/2)&&e.fillText(t.toString(),4,9),e.restore())}e.stroke(),e.closePath()};function me(e,t=100){let a=null;const n=function(...n){null!==a&&clearTimeout(a),a=setTimeout((()=>{e(...n)}),t)};return n.cancel=function(){null!==a&&(clearTimeout(a),a=null)},n}function Re(e,t){const a=X(0),n=X(0),o=X(!1),r=z((()=>({backgroundColor:e.palette.hoverBg,color:e.palette.hoverColor,[t?"top":"left"]:"-8px",[t?"left":"top"]:`${a.value+10}px`}))),l=({offsetX:e,offsetY:n})=>{a.value=t?e:n},i=(a,n)=>{const o=t?e.lines?.h:e.lines?.v,r=s(a);if(o)if(r){if("number"!=typeof n)return;o.splice(n,1)}else"number"!=typeof n?o.push(a):o[n]=a},s=a=>{const n=t?e.canvasHeight:e.canvasWidth;return a<0||a>n},c=z((()=>s(n.value)?"放开删除":`${t?"Y":"X"}：${n.value*e.rate}`)),h=me((()=>{o.value=!1}),200),d=me((()=>{o.value=!0}),200);return{showLabel:o,startValue:n,actionStyle:r,labelContent:c,handleMouseDown:(a,o)=>new Promise((r=>{if(e.lockLine)return;const s=t?a.clientY:a.clientX;l(a);const c=o||n.value;let h=c;const d=a=>{let o=((t?a.clientY:a.clientX)-s)/e.scale+c,r=o;const l=(t?e.snapsObj.h:e.snapsObj.v).slice().sort(((e,t)=>Math.abs(r-e)-Math.abs(r-t)));l.length&&Math.abs(l[0]-o)<e.snapThreshold/e.scale&&(r=l[0],o=r),h=Math.round(o),n.value=h};document.addEventListener("mousemove",d),document.addEventListener("mouseup",(()=>{document.removeEventListener("mousemove",d),i(h,e.index),r()}),{once:!0})})),handleMouseenter:t=>{e.lockLine||(l(t),d(),h.cancel())},handleMouseLeave:()=>{h()}}}const He={key:0,class:"value"},Ie=se({__name:"ruler-line",props:{scale:{},palette:{},index:{},start:{},vertical:{type:Boolean},value:{},canvasWidth:{},canvasHeight:{},lines:{},isShowReferLine:{type:Boolean},rate:{},snapThreshold:{},snapsObj:{},lockLine:{type:Boolean}},setup(e){const t=e,a=X(!1),{actionStyle:n,handleMouseDown:o,labelContent:r,startValue:l,showLabel:i,handleMouseenter:s,handleMouseLeave:c}=Re(t,t.vertical),h=z((()=>l.value>=t.start)),d=z((()=>{const{lineType:e,lockLineColor:n,lineColor:o}=t.palette,r=t.lockLine?n:o??"black",i=t.lockLine||a.value?"none":"auto",s=t.isShowReferLine&&!t.lockLine?t.vertical?"ns-resize":"ew-resize":"default",c=t.vertical?"borderTop":"borderLeft",h=(l.value-t.start)*t.scale;return{[c]:`1px ${e} ${r}`,pointerEvents:i,cursor:s,[t.vertical?"top":"left"]:`${h}px`}}));we((()=>{l.value=t.value??0}));const u=me((()=>{a.value=!1}),1e3);return $([()=>t.scale],(()=>{a.value=!0,u()})),(e,t)=>J((H(),V("div",{class:"line",style:I(d.value),onMouseenter:t[0]||(t[0]=ie(((...e)=>O(s)&&O(s)(...e)),["stop"])),onMouseleave:t[1]||(t[1]=ie(((...e)=>O(c)&&O(c)(...e)),["stop"])),onMousedown:t[2]||(t[2]=ie(((...e)=>O(o)&&O(o)(...e)),["stop"]))},[_("div",{class:"action",style:I(O(n))},[O(i)?(H(),V("span",He,ke(O(r)),1)):ve("",!0)],4)],36)),[[ee,h.value]])}}),Ve=se({__name:"index",props:{scale:{},palette:{},vertical:{type:Boolean},showShadowText:{type:Boolean},start:{},width:{},height:{},selectStart:{},selectLength:{},canvasWidth:{},canvasHeight:{},rate:{},gridRatio:{}},emits:["handleDragStart"],setup(e,{emit:t}){const a=e,n=t,o=Oe({isDragging:!1,canvasContext:null});let r=window.devicePixelRatio;const l=X(null);we((()=>{window.addEventListener("resize",i),s(),h(r),d(r)}));const i=()=>{r=window.devicePixelRatio,h(r),d(r)},s=()=>{o.canvasContext=l.value?.getContext("2d")||null},c=z((()=>({width:a.width+"px",height:a.height+"px",cursor:a.vertical?"ew-resize":"ns-resize",[a.vertical?"borderRight":"borderBottom"]:`1px solid ${a.palette.borderColor||"#eeeeef"} `})));Le((()=>{window.removeEventListener("resize",i)}));const h=e=>{if(l.value){l.value.width=Math.round(a.width*e),l.value.height=Math.round(a.height*e);const t=o.canvasContext;t&&(t.font='11px -apple-system,\n                "Helvetica Neue", ".SFNSText-Regular",\n                "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB",\n                "Microsoft YaHei", "WenQuanYi Zen Hei", sans-serif',t.lineWidth=1,t.textBaseline="middle")}},d=e=>{const t={scale:a.scale,width:a.width,height:a.height,palette:a.palette,canvasWidth:a.canvasWidth,canvasHeight:a.canvasHeight,ratio:e,rate:a.rate,gridRatio:a.gridRatio,showShadowText:a.showShadowText};t.scale=a.scale/a.rate,t.canvasWidth=a.canvasWidth*a.rate,t.canvasHeight=a.canvasHeight*a.rate,o.canvasContext&&De(o.canvasContext,a.start*a.rate,a.selectStart,a.selectLength,t,!a.vertical)};$([()=>a.width,()=>a.height,()=>a.start,()=>a.palette,()=>a.selectStart,()=>a.selectLength],(()=>{d(r)})),$([()=>a.width,()=>a.height],(()=>{h(r)}));const u=e=>{n("handleDragStart",e)};return(e,t)=>(H(),V("canvas",{ref_key:"canvas",ref:l,class:"ruler",style:I(c.value),onMousedown:ie(u,["stop"])},null,36))}}),Ke={class:"lines"},Fe={key:0,class:"value"},Ae=se({__name:"ruler-wrapper",props:{scale:{},thick:{},canvasWidth:{},canvasHeight:{},palette:{},vertical:{type:Boolean},width:{},height:{},start:{},startOther:{},lines:{},selectStart:{},selectLength:{},isShowReferLine:{type:Boolean},rate:{},snapThreshold:{},snapsObj:{},gridRatio:{},lockLine:{type:Boolean},showShadowText:{type:Boolean}},emits:["changeLineState"],setup(e,{emit:t}){const a=e,{showLabel:n,actionStyle:o,handleMouseenter:r,handleMouseLeave:l,handleMouseDown:i,labelContent:s,startValue:c}=Re(a,!a.vertical),h=X(!1),d=X(!1),u=z((()=>a.vertical?"v-container":"h-container")),p=t,v=z((()=>a.vertical?a.lines?.h:a.lines?.v)),f=z((()=>{const e=a.palette.lineType;let t=a.vertical?"left":"top",n=a.vertical?"top":"left",o=a.vertical?"borderLeft":"borderBottom";const r=(c.value-a.startOther)*a.scale+a.thick;return{[t]:r+"px",[n]:-a.thick+"px",cursor:a.vertical?"ew-resize":"ns-resize",[o]:`1px ${e} ${a.palette.lineColor}`}})),g=async e=>{const{offsetX:t,offsetY:n}=e,{scale:o,vertical:r,thick:l,startOther:s}=a;if(!h.value){d.value=!0,p("changeLineState",!1);let a=Math.round(s-l/o+(r?t:n)/o);c.value=a,await i(e,a),d.value=!1}};return $([()=>a.lockLine],(()=>{h.value=a.lockLine})),(t,a)=>(H(),V("div",{class:pe(u.value)},[ge(Ve,ye(t.$props,{onHandleDragStart:g}),null,16),J(_("div",Ke,[(H(!0),V(Pe,null,Ne(v.value,((e,a)=>(H(),Ye(Ie,ye({key:e+a,index:a,value:e|0},{ref_for:!0},t.$props),null,16,["index","value"])))),128))],512),[[ee,e.isShowReferLine]]),e.isShowReferLine?J((H(),V("div",{key:0,class:"indicator",style:I(f.value),onMouseenter:a[0]||(a[0]=(...e)=>O(r)&&O(r)(...e)),onMouseleave:a[1]||(a[1]=(...e)=>O(l)&&O(l)(...e))},[_("div",{class:"action",style:I(O(o))},[O(n)?(H(),V("span",Fe,ke(O(s)),1)):ve("",!0)],4)],36)),[[ee,d.value]]):ve("",!0)],2))}}),Qe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAopJREFUOE/FlE9IVEEcx7+/N9ouds1Mu0QUSFZYdIgoUqQoKPBQHsKozpXE7jbTO/U8xLJvn6usBHWQ6hBFXupSkQeVbh0KJEPp0sH+eLGTsKs77xcj78m0ax0E8cHjzZv5zef3/c33xxA24KENYGJzoEEQbNNaN4Zh2OQ4znwYhr9c1/39vwrXVDo0NNS0tLR0GYB5D64BmAMwzMyvlFKz1es10Hw+f4mZ7wHYBeA9gNdENFepVOaEEM3M3OI4Thczn41gt6WUgQ3+C+r7/h0AWQD3mXnYqPA8L9nQ0HCemduIaFpKOWoAhUJhT6VSuQXgOjP3K6W8GLwKzeVyp4jonR0QBEErM48w8zFLyayUsjX+z+VyHhHdZebTSqkxM78CHRgYOKS1/ghgVErZY214RkQ7ADyRUj72ff8qgCtmXUrZGcf5vv8CwEUhxOF0Ov1pBRpla5dSdseBhUJhpznH6tIsZb1KqacW+BGArUaUXX63UuplHJTNZjuEEONSyhozfd/n6mQ1RkXZL2itz7mu+80EDA4ONi8vL/8AcM2UbikyR2BU9cSmmTU70YqKIAj2hWFo2uenlHK/BRg3Y2aeNO5GyU8S0ZbFxcUuz/NKEXAGQKPjOCcymcyX1dIi8DSAiWQyeaavr68cbSgCuBknYubnQoj+TCYzUywWE6VS6S2ADsdx2gxw1X3L7SNENMbMnwE8qK+vf5NKpRaMaeVyeW8ikfiaSqW+R7BuZr5BRMe11p2u607U9Gk8kc/ntzPzQwCmExYATDLzVBiGE0KIowAOADDf3QA+aK2VDaxRajto3K+rq+tl5nYAzQBamHmeiOYBTGmtR6ph/1Rqg9c73pz7dD1qN0TpHyNQRCUDJXrAAAAAAElFTkSuQmCC",$e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAjtJREFUOE/NlD9oFEEUxn9v9ghC0hpRUogIAUmniGAT/5Q2FrETPSNRJILg7RwimI0ox85eQFCEBGIUO1PYpFM0jSConQoBEZGgGPsgl+w+2eM2bC57SopAFqYZ3v7m+977ZoQt+GQLmGxPaBiGgYiMWWvXBHZUGoZhH3BERPYC+4F+4Keq/urt7b1RLpf/ZEBVHa9Wq0HWyg3QKIoGVPU8cA7wgK/pUtXPQJ8xZk+pVBpuNBqXUoUiEvi+P56fzTpo6+SbwHNg1lo7WzTITGEKXFlZeeB53tVCpa3CK8AFa+1cBgvD8LKIXAQOJkkyICJDeYVBEJS6u7s/qeoLa+1o+l9TqXNuBLhmjDlbqVQ+5ICjInIfOBPH8W9jzGCR5YmJiRNxHM+papgqzqDvgSlr7VTernPuO3An3c9bBt74vv+yrdaKyLDv+/1Sq9UGPc97nY9EVuycU2AQOA7cAm4Dr4D5TvVxHB9rKo2iaEFVp621Ln96FEUngaOqGmSxabVqsh3a2h+x1h5qQjNrae/yE4+iaCwDJkky73neTuBZe129Xk+H+BS4l7ZqLVIZ2BhzuFKpvMsDVXXWGPMxFdAedOfcKeCRqj7MYrUhpz09PfXl5eXrectFWXXODQHpOq2qd/95o/JXr6ura3J1dXU6SZIfwKKIHAD2tVYMPBGRx77vN10UXtO85fTkmZmZHUtLSzUR2QXsBhaAL6r6DXhbrVYXi1yss59GqOgub/bN3Z7v6X/tb9Zmp/q/kN8s+lJb8oEAAAAASUVORK5CYII=";function Me(e,t){let a=e.length;for(;a--;)if(e[a].pointerId===t.pointerId)return a;return-1}function Se(e,t){const a=Me(e,t);a>-1&&e.splice(a,1),e.push(t)}function qe(e,t){const a=Me(e,t);a>-1&&e.splice(a,1)}function Ce(e){const t=e.slice(0);let a,n=t.pop();for(;a=t.pop();)n={clientX:(a.clientX-n.clientX)/2+n.clientX,clientY:(a.clientY-n.clientY)/2+n.clientY};return n}var Te={down:"pointerdown",move:"pointermove",up:"pointerup pointerleave pointercancel"};function he(e,t,a,n){Te[e].split(" ").forEach((e=>{t.addEventListener(e,a,n)}))}function fe(e,t,a){Te[e].split(" ").forEach((e=>{t.removeEventListener(e,a)}))}var Ee=["webkit","moz","ms"],oe={};function Ze(){return document.createElement("div").style}function Be(e){if(oe[e])return oe[e];const t=Ze();if(e in t)return oe[e]=e;const a=e[0].toUpperCase()+e.slice(1);for(let n=Ee.length-1;n>=0;n--){const o=`${Ee[n]}${a}`;if(o in t)return oe[e]=o}return e}function j(e,t,a){e.style[Be(t)]=a}function Ge(e,t){j(e,"transition",`${Be("transform")} ${t.duration}ms ${t.easing}`)}function je(e,{x:t,y:a,scale:n},o){j(e,"transform",`scale(${n}) translate(${t}px, ${a}px)`)}function re(e,t,a=window.getComputedStyle(e)){const n="border"===t?"Width":"";return{left:parseFloat(a[`${t}Left${n}`])||0,right:parseFloat(a[`${t}Right${n}`])||0,top:parseFloat(a[`${t}Top${n}`])||0,bottom:parseFloat(a[`${t}Bottom${n}`])||0}}function Je(e){const t=e.parentNode,a=e.getBoundingClientRect(),n=t.getBoundingClientRect();return{elem:{width:a.width,height:a.height,left:a.left,top:a.top},parent:{width:n.width,height:n.height,left:n.left,top:n.top}}}function G(e){const t=e.parentNode,a=window.getComputedStyle(e),n=window.getComputedStyle(t),o=e.getBoundingClientRect(),r=t.getBoundingClientRect();return{elem:{width:o.width,height:o.height,left:o.left,top:o.top,margin:re(e,"margin",a),border:re(e,"border",a)},parent:{width:r.width,height:r.height,left:r.left,top:r.top,padding:re(t,"padding",n),border:re(t,"border",n)}}}function _e(e){let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1}function et(e){const t={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t}var xe={animate:!1,canvas:!1,cursor:"move",disablePan:!1,disableZoom:!1,duration:200,easing:"ease-in-out",handleStartEvent:e=>{e.preventDefault(),e.stopPropagation()},maxScale:4,minScale:.125,overflow:"hidden",setTransform:je,startX:0,startY:0,startScale:1,step:.3,touchAction:"none",origin:"50% 50%"};function Xe(e,t){if(!e||1!==e.nodeType)throw new Error("Panzoom requires an element");if(!_e(e))throw new Error("Panzoom should be called on attached elements");t={...xe,...t};const a=e.parentNode;a.style.overflow=t.overflow,a.style.userSelect="none",a.style.touchAction=t.touchAction,(t.canvas?a:e).style.cursor=t.cursor,e.style.userSelect="none",e.style.touchAction=t.touchAction,j(e,"transformOrigin","string"==typeof t.origin?t.origin:"50% 50%");let n,o,r,l,i=0,s=0,c=1,h=!1;function d(t,a){const n={x:i,y:s,scale:c};"boolean"==typeof t.animate&&(t.animate?Ge(e,t):j(e,"transition","none")),t.setTransform(e,n,t);const o=()=>{const n=t.contain&&"none"!==t.contain?G(e):Je(e);!function(t,a){if(a.silent)return;const n=new CustomEvent("panzoomchange",{detail:t});e.dispatchEvent(n)}({x:i,y:s,scale:c,dimsOut:n,originalEvent:a},t)};return t.animate?setTimeout(o,t.duration+50):requestAnimationFrame(o),n}function u(a,n,o,r){const l={...t,...r},h={x:i,y:s,opts:l};if(!l.force&&!0===l.disablePan)return h;if(a=parseFloat(a),n=parseFloat(n),h.x=a,h.y=n,l.contain&&"none"!==l.contain){const t=G(e),a=t.elem.width/c,n=t.elem.height/c,r=a*o,i=n*o,s=(r-a)/2,d=(i-n)/2;if("inside"===l.contain){const e=(-t.elem.margin.left-t.parent.padding.left+s)/o,a=(t.parent.width-r-t.parent.padding.left-t.elem.margin.left-t.parent.border.left-t.parent.border.right+s)/o;h.x=Math.max(Math.min(h.x,a),e);const n=(-t.elem.margin.top-t.parent.padding.top+d)/o,l=(t.parent.height-i-t.parent.padding.top-t.elem.margin.top-t.parent.border.top-t.parent.border.bottom+d)/o;h.y=Math.max(Math.min(h.y,l),n)}else if("outside"===l.contain){const e=(-(r-t.parent.width)-t.parent.padding.left-t.parent.border.left-t.parent.border.right+s)/o,a=(s-t.parent.padding.left)/o;h.x=Math.max(Math.min(h.x,a),e);const n=(-(i-t.parent.height)-t.parent.padding.top-t.parent.border.top-t.parent.border.bottom+d)/o,l=(d-t.parent.padding.top)/o;h.y=Math.max(Math.min(h.y,l),n)}}return h}function p(a,n){const o={...t,...n},r={scale:c,opts:o};if(!o.force&&o.disableZoom)return r;let l=t.minScale,i=t.maxScale;if(o.contain&&"none"!==o.contain){const a=G(e),n=a.elem.width/c,o=a.elem.height/c;if(n>1&&o>1){const e=(a.parent.width-a.parent.border.left-a.parent.border.right)/n,r=(a.parent.height-a.parent.border.top-a.parent.border.bottom)/o;"inside"===t.contain?i=Math.min(i,e,r):"outside"===t.contain&&(l=Math.max(l,e,r))}}return r.scale=Math.min(Math.max(a,l),i),r}function v(e,t,a,n){const o=u(e,t,c,a);return i!==o.x||s!==o.y?(i=o.x,s=o.y,d(o.opts,n)):{x:i,y:s,scale:c}}function f(e,t,a){const n=p(e,t),o=n.opts;if(!o.force&&o.disableZoom)return{x:i,y:s,scale:c};e=n.scale;let r=i,l=s;if(o.focal){const t=o.focal;r=(t.x/e-t.x/c+i*e)/e,l=(t.y/e-t.y/c+s*e)/e}const h=u(r,l,e,{relative:!1,force:!0});return i=h.x,s=h.y,c=e,d(o,a)}function g(e,a){const n={...t,animate:!0,...a};return f(c*Math.exp((e?1:-1)*n.step),n)}function m(a,n,o,r){const l=G(e),i=l.parent.width-l.parent.padding.left-l.parent.padding.right-l.parent.border.left-l.parent.border.right,s=l.parent.height-l.parent.padding.top-l.parent.padding.bottom-l.parent.border.top-l.parent.border.bottom;let h=n.clientX-l.parent.left-l.parent.padding.left-l.parent.border.left-l.elem.margin.left,d=n.clientY-l.parent.top-l.parent.padding.top-l.parent.border.top-l.elem.margin.top;"0 0"!==t.origin&&(h-=l.elem.width/c/2,d-=l.elem.height/c/2);return f(a,{...o,animate:!1,focal:{x:h/i*(i*a),y:d/s*(s*a)}},r)}f(t.startScale,{animate:!1,force:!0}),setTimeout((()=>{v(t.startX,t.startY,{animate:!1,force:!0})}));const w=[];function y(e){Se(w,e),h=!0,t.handleStartEvent(e),n=i,o=s;const a=Ce(w);r=a.clientX,l=a.clientY}function b(e){if(!h||void 0===n||void 0===o||void 0===r||void 0===l)return;Se(w,e);const t=Ce(w),a=c;v(n+(t.clientX-r)/a,o+(t.clientY-l)/a,{animate:!1},e)}function x(e){qe(w,e),h&&(h=!1,n=o=r=l=void 0)}let A=!1;function S(){A||(A=!0,he("down",t.canvas?a:e,y),he("move",document,b,{passive:!0}),he("up",document,x,{passive:!0}))}return t.noBind||S(),{bind:S,destroy:function(){A=!1,fe("down",t.canvas?a:e,y),fe("move",document,b),fe("up",document,x)},getPan:()=>({x:i,y:s}),getScale:()=>c,getOptions:()=>et(t),handleDown:y,handleMove:b,handleUp:x,pan:v,reset:function(e){const a={...t,animate:!0,force:!0,...e};c=p(a.startScale,a).scale;const n=u(a.startX,a.startY,c,a);return i=n.x,s=n.y,d(a)},resetStyle:function(){a.style.overflow="",a.style.userSelect="",a.style.touchAction="",a.style.cursor="",e.style.cursor="",e.style.userSelect="",e.style.touchAction="",j(e,"transformOrigin","")},setOptions:function(n={}){for(const e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e]);(n.hasOwnProperty("cursor")||n.hasOwnProperty("canvas"))&&(a.style.cursor=e.style.cursor="",(t.canvas?a:e).style.cursor=t.cursor),n.hasOwnProperty("overflow")&&(a.style.overflow=n.overflow),n.hasOwnProperty("touchAction")&&(a.style.touchAction=n.touchAction,e.style.touchAction=n.touchAction)},setStyle:(t,a)=>j(e,t,a),zoom:f,zoomIn:function(a){const n={...t,animate:!0,...a};if(!n.focal){const t=G(e),a=t.parent.width-t.parent.border.left-t.parent.border.right,o=t.parent.height-t.parent.border.top-t.parent.border.bottom,r=t.parent.left+t.parent.border.left+t.parent.padding.left+a/2,l=t.parent.top+t.parent.border.top+t.parent.padding.top+o/2;return m(c*Math.exp(n.step),{clientX:r,clientY:l},n)}return g(!0,a)},zoomOut:function(a){const n={...t,animate:!0,...a};if(!n.focal){const t=G(e),a=t.parent.width-t.parent.border.left-t.parent.border.right,o=t.parent.height-t.parent.border.top-t.parent.border.bottom,r=t.parent.left+t.parent.border.left+t.parent.padding.left+a/2,l=t.parent.top+t.parent.border.top+t.parent.padding.top+o/2;return m(c*Math.exp(-n.step),{clientX:r,clientY:l},n)}return g(!1,a)},zoomToPoint:m,zoomWithWheel:function(e,a){e.preventDefault();const n={...t,...a,animate:!1},o=(0===e.deltaY&&e.deltaX?e.deltaX:e.deltaY)<0?1:-1;return m(p(c*Math.exp(o*n.step/3),n).scale,e,n,e)}}}Xe.defaultOptions=xe;var tt=Xe;const nt={class:"sketch-ruler"},ot=se({__name:"index",props:{showRuler:{type:Boolean,default:!0},eyeIcon:{},closeEyeIcon:{},scale:{default:1},rate:{default:1},thick:{default:16},palette:{},width:{default:1400},height:{default:800},paddingRatio:{default:.2},autoCenter:{type:Boolean,default:!0},shadow:{default:()=>({x:0,y:0,width:0,height:0})},lines:{default:()=>({h:[],v:[]})},isShowReferLine:{type:Boolean,default:!0},canvasWidth:{default:700},canvasHeight:{default:700},snapsObj:{default:()=>({h:[],v:[]})},snapThreshold:{default:5},gridRatio:{default:1},lockLine:{type:Boolean,default:!1},selfHandle:{type:Boolean,default:!1},showShadowText:{type:Boolean,default:!0},panzoomOption:{}},emits:["onCornerClick","update:scale","zoomchange","update:lockLine"],setup(e,{expose:t,emit:a}){We((e=>({v966d287c:n.canvasWidth+"px",v2eec692b:n.canvasHeight+"px",ba416de2:N.value})));const n=e,o=a,r=X(null),l=X(null),i=X(null),s=X(0),c=X(0);let h=0,d=0;const u=X(1),p=X(n.isShowReferLine),v=X(null),f=X("defaultCursor"),g=z((()=>({bgColor:"#f6f7f9",longfgColor:"#BABBBC",fontColor:"#7D8694",fontShadowColor:"#106ebe",shadowColor:"#e9f7fe",lineColor:"#51d6a9",lineType:"solid",lockLineColor:"#d4d7dc",hoverBg:"#000",hoverColor:"#fff",borderColor:"#eeeeef",...n.palette}))),m=z((()=>({backgroundImage:p.value?`url(${n.eyeIcon??Qe})`:`url(${n.closeEyeIcon??$e})`,width:n.thick+"px",height:n.thick+"px",borderRight:`1px solid ${g.value.borderColor}`,borderBottom:`1px solid ${g.value.borderColor}`}))),w=z((()=>({background:g.value.bgColor,width:y.value+"px",height:b.value+"px"}))),y=z((()=>n.width-n.thick)),b=z((()=>n.height-n.thick)),x=e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),v.value?.zoomWithWheel(e))},A=e=>{const t=document.activeElement;t?.closest(".monaco-editor")||"INPUT"===t?.tagName||"TEXTAREA"===t?.tagName||"true"===t?.getAttribute("contenteditable")||" "===e.key&&(f.value="grabCursor",v.value?.bind(),e.preventDefault())},S=e=>{const t=document.activeElement;t?.closest(".monaco-editor")||"INPUT"===t?.tagName||"TEXTAREA"===t?.tagName||"true"===t?.getAttribute("contenteditable")||" "===e.key&&(v.value?.destroy(),f.value="defaultCursor")};function C(e){e.preventDefault(),e.stopPropagation(),v.value?.bind()}we((()=>{if(L(),!n.selfHandle&&r.value){const e=r.value.parentElement;if(!e)return;l.value=e,e.addEventListener("wheel",x,{passive:!1}),document.addEventListener("keydown",A),document.addEventListener("keyup",S),e.addEventListener("touchstart",C,{passive:!1})}})),Le((()=>{l.value&&(l.value.removeEventListener("wheel",x),l.value.removeEventListener("touchstart",C)),document.removeEventListener("keydown",A),document.removeEventListener("keyup",S),i.value&&i.value.removeEventListener("panzoomchange",k),v.value?.destroy()}));const E=e=>({noBind:!0,startScale:e,startX:h,startY:d,smoothScroll:!0,canvas:!0,...n.panzoomOption}),k=e=>{const{scale:t,dimsOut:a}=e.detail;if(a){o("update:scale",t),u.value=t;const n=(a.parent.left-a.elem.left)/t,r=(a.parent.top-a.elem.top)/t;s.value=n,o("zoomchange",e.detail),c.value=r}},L=()=>{if(i.value&&i.value.removeEventListener("panzoomchange",k),v.value?.destroy(),r.value=document.querySelector(".canvasedit"),r.value){let e=n.scale;n.autoCenter&&(e=O()),v.value=tt(r.value,E(e)),r.value.addEventListener("panzoomchange",k),i.value=r.value}},O=()=>{const e=y.value*(1-n.paddingRatio)/n.canvasWidth,t=b.value*(1-n.paddingRatio)/n.canvasHeight,a=Math.min(e,t);return h=(y.value-n.canvasWidth)/2/a,d=(b.value-n.canvasHeight)/2/a,a},B=()=>v.value?.reset(),T=()=>v.value?.zoomIn(),M=()=>v.value?.zoomOut(),R=()=>{p.value=!p.value,o("onCornerClick",p.value)},U=e=>{o("update:lockLine",e)},N=z((()=>n.thick+"px"));return $([()=>n.isShowReferLine],(()=>{p.value=n.isShowReferLine})),$([()=>n.canvasWidth,()=>n.canvasHeight,()=>n.width,()=>n.height],(()=>{L()})),$((()=>n.panzoomOption),(()=>{v.value?.setOptions(E(n.scale))}),{deep:!0}),t({initPanzoom:L,panzoomInstance:v,reset:B,zoomIn:T,zoomOut:M,cursorClass:f}),(t,a)=>(H(),V("div",nt,[be(t.$slots,"btn",{reset:B,zoomIn:T,zoomOut:M}),_("div",{class:pe(["canvasedit-parent",f.value]),style:I(w.value)},[_("div",{class:pe(["canvasedit",f.value])},[be(t.$slots,"default")],2)],6),J(ge(Ae,{style:I({marginLeft:e.thick+"px",width:y.value+"px"}),vertical:!1,width:e.width,height:e.thick,"is-show-refer-line":p.value,thick:e.thick,start:s.value,"start-other":c.value,lines:e.lines,"select-start":e.shadow.x,"snap-threshold":e.snapThreshold,"snaps-obj":e.snapsObj,"select-length":e.shadow.width,scale:u.value,palette:g.value,"canvas-width":e.canvasWidth,"show-shadow-text":e.showShadowText,"canvas-height":e.canvasHeight,rate:e.rate,"grid-ratio":e.gridRatio,"lock-line":e.lockLine,onChangeLineState:U},null,8,["style","width","height","is-show-refer-line","thick","start","start-other","lines","select-start","snap-threshold","snaps-obj","select-length","scale","palette","canvas-width","show-shadow-text","canvas-height","rate","grid-ratio","lock-line"]),[[ee,e.showRuler]]),J(ge(Ae,{style:I({marginTop:e.thick+"px",top:0,height:b.value+"px"}),vertical:!0,width:e.thick,height:e.height,"is-show-refer-line":p.value,thick:e.thick,start:c.value,"start-other":s.value,lines:e.lines,"select-start":e.shadow.y,"select-length":e.shadow.height,"snap-threshold":e.snapThreshold,"snaps-obj":e.snapsObj,scale:u.value,palette:g.value,"canvas-width":e.canvasWidth,"canvas-height":e.canvasHeight,"show-shadow-text":e.showShadowText,rate:e.rate,"grid-ratio":e.gridRatio,"lock-line":e.lockLine,onChangeLineState:U},null,8,["style","width","height","is-show-refer-line","thick","start","start-other","lines","select-start","select-length","snap-threshold","snaps-obj","scale","palette","canvas-width","canvas-height","show-shadow-text","rate","grid-ratio","lock-line"]),[[ee,e.showRuler]]),J(_("a",{class:"corner",style:I(m.value),onClick:R},null,4),[[ee,e.showRuler]])]))}});export{ot as default};
//# sourceMappingURL=/sm/edcbdda239ec6505b05611e0c45d6bcb2ea8bea664f41d738bd9d5db9edffcd0.map