s-i?(p[1]>f.top||sp[1])&&(d[1]=1),f.left>a-i?(p[0]>f.left||a
p[0])&&(d[0]=1),!d[0]&&!d[1]?!1:this._continueDrag(lt(lt({},e),{direction:d,inputEvent:t,isDrag:!0}))}},o.checkScroll=function(t){var e=this;if(this._isWait)return!1;var a=t.prevScrollPos,s=a===void 0?this._prevScrollPos:a,l=t.direction,i=t.throttleTime,u=i===void 0?0:i,f=t.inputEvent,p=t.isDrag,d=this._getScrollPosition(l||[0,0],t),A=d[0]-s[0],m=d[1]-s[1],C=l||[A?Math.abs(A)/A:0,m?Math.abs(m)/m:0];return this._prevScrollPos=d,!A&&!m?!1:(this.trigger("move",{offsetX:C[0]?A:0,offsetY:C[1]?m:0,inputEvent:f}),u&&p&&(clearTimeout(this._timer),this._timer=window.setTimeout(function(){e._continueDrag(t)},u)),!0)},o.dragEnd=function(){this._flag=!1,clearTimeout(this._timer)},o._getScrollPosition=function(t,e){var a=e.container,s=e.getScrollPosition,l=s===void 0?Bd:s;return l({container:dn(a),direction:t})},o._continueDrag=function(t){var e=this,a,s,l=t.container,i=t.direction,u=t.throttleTime,f=t.useScroll,p=t.isDrag,d=t.inputEvent;if(!(!this._flag||p&&this._isWait)){var A=gn(),m=Math.max(u+this._prevTime-A,0);if(m>0)return clearTimeout(this._timer),this._timer=window.setTimeout(function(){e._continueDrag(t)},m),!1;this._prevTime=A;var C=this._getScrollPosition(i,t);this._prevScrollPos=C,p&&(this._isWait=!0);var w={container:dn(l),direction:i,inputEvent:d};return(s=(a=t).requestScroll)===null||s===void 0||s.call(a,w),this.trigger("scroll",w),this._isWait=!1,f||this.checkScroll(lt(lt({},t),{prevScrollPos:C,direction:i,inputEvent:d}))}},n}(kd),bn=function(r,n){return bn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,t){o.__proto__=t}||function(o,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(o[e]=t[e])},bn(r,n)};function Od(r,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");bn(r,n);function o(){this.constructor=r}r.prototype=n===null?Object.create(n):(o.prototype=n.prototype,new o)}var pe=function(){return pe=Object.assign||function(n){for(var o,t=1,e=arguments.length;t=S&&p.indexOf(b)<0&&e.setState({guides:yt(yt([],p,!0),[b],!1)},function(){A({guides:e.state.guides,distX:i,distY:u,index:p.length,isAdd:!0,isRemove:!1,isChange:!1})});else{var T=parseFloat(s.target.getAttribute("data-index")),J=!1,O=!1;p=yt([],p,!0);var N=p.indexOf(b);if(l||b-1&&N!==T){if(w&&(w===!0||w.indexOf("remove")>-1))return;p.splice(T,1),J=!0}else{if(N>-1)return;if(w&&(w===!0||w.indexOf("change")>-1))return;p[T]=b,O=!0}e.setState({guides:p},function(){var X=e.state.guides;A({distX:i,distY:u,guides:X,isAdd:!1,index:T,isChange:O,isRemove:J})})}},e._onCheck=function(){e.resize()},e.state.guides=t.defaultGuides||[],e.scrollPos=t.defaultGuidesPos||0,e}var o=n.prototype;return o.render=function(){var t=this.props,e=t.className,a=t.type,s=t.zoom,l=t.guidesZoom,i=t.style,u=t.rulerStyle,f=t.displayDragPos,p=t.cspNonce,d=t.dragGuideStyle,A=t.guidePosStyle,m=A===void 0?{}:A,C=this.props,w=this.getTranslateName(),_={};return Ko.forEach(function(h){h==="style"||h==="warpSelf"||h==="useResizeObserver"||(_[h]=C[h])}),this._zoom=s,this._guidesZoom=l||s,ye(Ud,{ref:this.managerRef,cspNonce:p,className:"".concat(Ue("manager",a)," ").concat(e),style:i},ye("div",{className:Ue("guide-origin"),ref:Ge(this,"originElement")}),ye(Vc,pe({ref:Ge(this,"ruler"),style:u},_)),ye("div",{className:Md,ref:Ge(this,"guidesElement"),style:{transform:"".concat(w,"(").concat(-this.scrollPos*this._guidesZoom,"px)")}},f&&ye("div",{className:Ld,ref:Ge(this,"displayElement"),style:m||{}}),ye("div",{className:Qd,ref:Ge(this,"adderElement"),style:d}),this.renderGuides()))},o.drawRuler=function(t){this.ruler.draw(t)},o.renderGuides=function(){var t=this,e=this.props,a=e,s=a.type,l=a.showGuides,i=a.guideStyle,u=a.displayGuidePos,f=a.guidePosStyle,p=f===void 0?{}:f,d=a.guidesOffset,A=this._guidesZoom,m=this.getTranslateName(),C=this.state.guides,w=e.guidePosFormat||e.dragPosFormat||function(_){return _};if(this.guideElements=[],l)return C.map(function(_,h){var b=_+(d||0);return ye("div",{className:Ue("guide",s),ref:ec(t,"guideElements",h),key:h,"data-index":h,"data-pos":_,style:pe(pe({},i),{transform:"".concat(m,"(").concat(b*A,"px) translateZ(0px)")})},u&&ye("div",{className:Ue("guide-pos"),style:p||{}},w(_)))})},o.componentDidMount=function(){var t=this;this.gesto=new od(this.managerRef.current,{container:document.body}).on("dragStart",function(e){var a=t.props,s=a.type,l=a.lockGuides,i=t._guidesZoom;if(l===!0){e.stop();return}var u=e.inputEvent,f=u.target,p=e.datas,d=t.ruler.canvasElement,A=t.guidesElement,m=s==="horizontal",C=t.originElement.getBoundingClientRect(),w=bd(t.managerRef.current),_=vo(w,[e.clientX-C.left,e.clientY-C.top]);_[0]-=A.offsetLeft,_[1]-=A.offsetTop,_[m?1:0]+=t.scrollPos*i,p.offsetPos=_,p.matrix=w;var h=l&&l.indexOf("add")>-1,b=l&&l.indexOf("remove")>-1,S=l&&l.indexOf("change")>-1;if(f===d){if(h){e.stop();return}p.fromRuler=!0,p.target=t.adderElement}else if(_c(f,Td)){if(b&&S){e.stop();return}p.target=f}else return e.stop(),!1;t.onDragStart(e)}).on("drag",this._onDrag).on("dragEnd",this.onDragEnd),this.props.useResizeObserver?(this._observer=new ResizeObserver(this._onCheck),this._observer.observe(this.guidesElement,{box:"border-box"}),this._observer.observe(this.getRulerElement(),{box:"border-box"})):this._onCheck()},o.componentWillUnmount=function(){var t;this.gesto.unset(),(t=this._observer)===null||t===void 0||t.disconnect()},o.componentDidUpdate=function(t){var e=this.props.defaultGuides;t.defaultGuides!==e&&this.setState({guides:e||[]})},o.loadGuides=function(t){this.setState({guides:t})},o.getGuides=function(){return this.state.guides},o.scrollGuides=function(t,e){e===void 0&&(e=this._guidesZoom),this._setZoom({guidesZoom:e});var a=this.getTranslateName(),s=this.guidesElement;this.scrollPos=t,s.style.transform="".concat(a,"(").concat(-t*e,"px)");var l=this.state.guides,i=this.props.guidesOffset||0;this.guideElements.forEach(function(u,f){if(u){var p=l[f]+(i||0);u.style.transform="".concat(a,"(").concat(p*e,"px) translateZ(0px)"),u.style.display=-t+p<0?"none":"block"}})},o.zoomTo=function(t,e){e===void 0&&(e=t),this.scroll(this.getRulerScrollPos(),t),this.scrollGuides(this.getGuideScrollPos(),e)},o.getElement=function(){return this.managerRef.current},o.getRulerElement=function(){return this.ruler.canvasElement},o.getGuideScrollPos=function(){return this.scrollPos},o.getRulerScrollPos=function(){return this.ruler.getScrollPos()},o.scroll=function(t,e){e===void 0&&(e=this._zoom),this._setZoom({zoom:e}),this.ruler.scroll(t,e)},o.resize=function(t){t===void 0&&(t=this._zoom),this._setZoom({zoom:t}),this.ruler.resize(t)},o.movePos=function(t){var e=t.datas,a=t.distX,s=t.distY,l=this.props,i=l.type,u=l.snaps,f=l.snapThreshold,p=l.displayDragPos,d=l.digit,A=l.guidesOffset||0,m=this._guidesZoom,C=l.dragPosFormat||function(Y){return Y},w=i==="horizontal",_=vo(e.matrix,[a,s]),h=e.offsetPos,b=_[0]+h[0],S=_[1]+h[1],T=A*m,J=Math.round(w?S:b)-A,O=parseFloat((J/m).toFixed(d||0)),N=u.slice().sort(function(Y,M){return Math.abs(O-Y)-Math.abs(O-M)});if(N.length&&Math.abs(N[0]*m-J)=0;l--)(s=r[l])&&(a=(e<3?s(a):e>3?s(n,o,a):s(n,o))||a);return e>3&&a&&Object.defineProperty(n,o,a),a}var Xd=Rd,Fd=zd,Gd=Jd,Yd=function(r){Nn(n,r);function n(t){var e=r.call(this,t)||this;return e.state={},e.state=e.props,e}var o=n.prototype;return o.render=function(){return ye(Hd,jt({ref:Ge(this,"guides")},this.state))},n}(Un);/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var In=function(){return In=Object.assign||function(n){for(var o,t=1,e=arguments.length;t-1&&a.splice(s,1)}}return this},n.once=function(o,t){var e=this;return t&&this._addEvent(o,t,{once:!0}),new Promise(function(a){e._addEvent(o,a,{once:!0})})},n.emit=function(o,t){var e=this;t===void 0&&(t={});var a=this._events[o];if(!o||!a)return!0;var s=!1;return t.eventType=o,t.stop=function(){s=!0},t.currentTarget=this,Wd(a).forEach(function(l){l.listener(t),l.once&&e.off(o,l.listener)}),!s},n.trigger=function(o,t){return t===void 0&&(t={}),this.emit(o,t)},n._addEvent=function(o,t,e){var a=this._events;a[o]=a[o]||[];var s=a[o];s.push(In({listener:t},e))},r}(),qd=function(r){Nn(n,r);function n(t,e){e===void 0&&(e={});var a=r.call(this)||this;a.containerProvider=null,a.selfElement=null,a._warp=!1;var s={};Gd.forEach(function(i){s[vc("on ".concat(i))]=function(u){return a.trigger(i,u)}});var l;return e.warpSelf?(delete e.warpSelf,a._warp=!0,l=t):(l=document.createElement("div"),t.appendChild(l)),a.containerProvider=co(ye(Yd,jt({ref:Ge(a,"innerGuides")},s,e)),l),a}var o=n.prototype;return o.setState=function(t,e){this.innerGuides.setState(t,e)},o.forceUpdate=function(t){this.innerGuides.forceUpdate(t)},o.destroy=function(){var t,e=this.selfElement;co(null,e,this.containerProvider),this._warp||(t=e==null?void 0:e.parentElement)===null||t===void 0||t.removeChild(e),this.selfElement=null,this.innerGuides=null},o.getInnerGuides=function(){return this.innerGuides.guides},n=Nd([ro(Fd,function(t,e){t[e]||(t[e]=function(){for(var a=[],s=0;s{var d;return((d=o.data.container)==null?void 0:d.scaleRatio)||100}),a=x(!0),s=x(!0),l={textColor:"#aaa",backgroundColor:"#f5f6f7",lineColor:"#aaa"},i={textColor:"#666",backgroundColor:"#111111",lineColor:"#666"},u=j(()=>K.value?i:l),f=x(!1);function p(){if(f.value)return;f.value=!0;const d=new po(document.querySelector(".ruler.horizontal"),{...u.value,type:"horizontal",height:20,direction:"start",zoom:e.value/100,font:"8px",textOffset:[0,-8],longLineSize:8,shortLineSize:5,lineWidth:1,defaultScrollPos:-25,unit:100,defaultGuidesPos:-25,displayDragPos:!0,useResizeObserver:!0,guideStyle:{color:"#ffffff",cursor:"ns-resize"},dragGuideStyle:{color:"#ffffff",cursor:"ns-resize"},guidePosStyle:{color:"#1890ff",top:"-10px"}}),A=new po(document.querySelector(".ruler.vertical"),{...u.value,type:"vertical",width:20,zoom:e.value/100,font:"8px",direction:"start",textOffset:[-8,0],longLineSize:8,shortLineSize:5,lineWidth:1,defaultScrollPos:-25,unit:100,defaultGuidesPos:-25,displayDragPos:!0,useResizeObserver:!0,guideStyle:{color:"#ffffff",cursor:"ew-resize"},dragGuideStyle:{color:"#ffffff",cursor:"ew-resize"},guidePosStyle:{color:"#1890ff",left:"15px"}});re(K,m=>{if(m){const{textColor:C,backgroundColor:w,lineColor:_}=i;Object.assign(d,{textColor:C,backgroundColor:w,lineColor:_}),Object.assign(A,{textColor:C,backgroundColor:w,lineColor:_})}else{const{textColor:C,backgroundColor:w,lineColor:_}=l;Object.assign(d,{textColor:C,backgroundColor:w,lineColor:_}),Object.assign(A,{textColor:C,backgroundColor:w,lineColor:_})}}),re(e,m=>{const C=m/100;d.zoom=C,A.zoom=C}),re(s,m=>{d.showGuides=m,A.showGuides=m}),re([()=>t.scrollX,()=>t.scrollY],([m,C])=>{d.scroll(m),A.scroll(C),d.scrollGuides(C),A.scrollGuides(m)}),window.addEventListener("resize",()=>{d.resize(),A.resize()}),re(()=>o.data.container.guideLine,({horizontal:m,vertical:C})=>{m&&m.length>0&&d.loadGuides(m),C&&C.length>0&&A.loadGuides(C)},{immediate:!0}),d.on("changeGuides",m=>{o.data.container.guideLine.horizontal=m.guides}),A.on("changeGuides",m=>{o.data.container.guideLine.vertical=m.guides})}return n({initRuler:p}),(d,A)=>{const m=_e;return E(),P(he,null,[y("div",Zd,[Ye(c(m,{size:"18",color:g(K)?"#333":"#999"},{default:v(()=>[c(g(ja),{onClick:A[0]||(A[0]=C=>s.value=!g(s))})]),_:1},8,["color"]),[[tt,g(s)]]),Ye(c(m,{size:"18"},{default:v(()=>[c(g(Pa),{onClick:A[1]||(A[1]=C=>s.value=!g(s))})]),_:1},512),[[tt,!g(s)]])]),g(a)?(E(),P("div",Kd)):$("",!0),g(a)?(E(),P("div",$d)):$("",!0)],64)}}}),tf=ie(ef,[["__scopeId","data-v-e4a9d690"]]),nf={class:"aside-header flex items-center justify-start"},of=H({__name:"AsideHeader",props:["tools","showConfig"],emits:["layout"],setup(r,{emit:n}){const o=r,t=n,e=ut("briefInfo"),a=["撤销","重做"],s=o.tools.filter(f=>a.includes(f.label)),l=x({右侧面板:!0,工具栏:!0});function i(f){l.value[f]=!l.value[f],t("layout",f,l.value[f])}re(()=>o.showConfig,f=>{l.value.右侧面板=f});const u=j(()=>{var f;return(f=e.value)==null?void 0:f.id});return(f,p)=>{const d=_e,A=be,m=Et;return E(),P("div",nf,[c(A,{quaternary:""},{icon:v(()=>[c(d,{size:"18",color:"#999"},{default:v(()=>[c(g(Za))]),_:1})]),default:v(()=>[I(" id-"+Ae(g(u)),1)]),_:1}),(E(!0),P(he,null,Ve(g(s),C=>(E(),L(m,{key:C.label,trigger:"hover"},{trigger:v(()=>[c(A,{secondary:"",bordered:"",size:"small",focusable:!1,class:"ml-2",onClick:w=>C.handler()},{icon:v(()=>[c(d,{size:"14",color:"#1890ff"},{default:v(()=>[(E(),L(Ht(C.icon)))]),_:2},1024)]),_:2},1032,["onClick"])]),default:v(()=>[I(" "+Ae(C.label),1)]),_:2},1024))),128)),(E(!0),P(he,null,Ve(g(l),(C,w)=>(E(),L(m,{key:w,trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(A,{secondary:"",bordered:"",size:"small",focusable:!1,class:"ml-2",onClick:_=>i(w)},{icon:v(()=>[c(R,{name:w,size:"14",color:C?"#1890ff":"#ddd"},null,8,["name","color"])]),_:2},1032,["onClick"])]),default:v(()=>[I(" "+Ae(w),1)]),_:2},1024))),128))])}}}),rf=ie(of,[["__scopeId","data-v-aea4e0c2"]]),af={class:"canvas-header flex items-center justify-between bg-white dark:bg-[#111216]"},sf={class:"flex-1"},lf={class:"flex flex-1 items-center justify-center"},uf=H({__name:"CanvasHeader",emits:["save"],setup(r){const n=ut("briefInfo"),o=x(!1),t=j({get(){var a;return((a=n.value)==null?void 0:a.pageName)||"1"},set(a){n.value.pageName=a}}),e=x(null);return gr(e,()=>o.value=!1),(a,s)=>{const l=_e,i=be,u=Ft;return E(),P("div",af,[y("div",sf,[c(i,{secondary:"",bordered:"",size:"small",focusable:!1,class:"save-btn",onClick:s[0]||(s[0]=f=>a.$emit("save"))},{icon:v(()=>[c(l,{size:"14",color:"#1890ff"},{default:v(()=>[c(g(fs))]),_:1})]),default:v(()=>[s[3]||(s[3]=I(" 保存 "))]),_:1})]),y("div",lf,[c(l,{size:"18"},{default:v(()=>[c(g(Ga))]),_:1}),s[4]||(s[4]=y("div",{class:"mx-2",style:{flex:"0 0 60px"}}," 工作空间 ",-1)),g(o)?$("",!0):(E(),L(i,{key:0,tertiary:"",size:"small",onClick:s[1]||(s[1]=f=>o.value=!g(o))},{default:v(()=>[I(Ae(g(t)),1)]),_:1})),g(o)?(E(),L(u,{key:1,ref_key:"target",ref:e,value:g(t),"onUpdate:value":s[2]||(s[2]=f=>We(t)?t.value=f:null),type:"text",placeholder:"项目名称"},null,8,["value"])):$("",!0)]),s[5]||(s[5]=y("div",{class:"flex-1"},null,-1))])}}}),cf=ie(uf,[["__scopeId","data-v-a394af45"]]),df={class:"config-header"},ff={class:"flex flex-auto items-center justify-end"},gf={class:"theme-toggle"},vf=H({__name:"ConfigHeader",props:["tools"],setup(r){const n=r,o=ut("briefInfo"),t=["预览","导出","导入"],e=n.tools.filter(u=>t.includes(u.label)),a=Se();function s(){a.current={},a.data.elements.forEach(u=>{u.selected&&(u.selected=!1)})}function l(){localStorage.setItem("vueuse-color-scheme",K.value?"dark":"auto"),K.value?(a.data.container.gridColor||(a.data.container.gridColor="#555"),a.data.container.style.backgroundColor==="#f5f6f7"&&(a.data.container.style.backgroundColor="#232324FF")):(a.data.container.style.backgroundColor==="#232324FF"&&(a.data.container.style.backgroundColor="#f5f6f7"),a.data.container.gridColor||(a.data.container.gridColor="rgba(222,222,222,1)"))}const i=j(()=>({id:o.value.boardManageId,name:o.value.pageName}));return(u,f)=>{const p=be,d=_e;return E(),P("div",df,[y("div",ff,[(E(!0),P(he,null,Ve(g(e),A=>(E(),L(p,{key:A.label,size:"small",secondary:"",bordered:"",class:"mr-2",onClick:m=>A.handler(g(i))},{icon:v(()=>[c(R,{name:A.label,size:"14",color:"#1890ff"},null,8,["name"])]),default:v(()=>[I(" "+Ae(A.label),1)]),_:2},1032,["onClick"]))),128)),y("div",gf,[g(K)?(E(),L(d,{key:0,size:"20"},{default:v(()=>[c(g(is),{color:g(K)?"#cccccc":"#18181c",onClick:f[0]||(f[0]=A=>(s(),g(eo)(!1),l()))},null,8,["color"])]),_:1})):$("",!0),g(K)?$("",!0):(E(),L(d,{key:1,size:"20"},{default:v(()=>[c(g(ps),{onClick:f[1]||(f[1]=A=>(s(),g(eo)(!0),l()))})]),_:1}))])])])}}});function Af(r,n){const o=Dn();return{tools:[{label:"撤销",icon:Qo,handler:n.undo},{label:"重做",icon:Mo,handler:n.redo},{label:"导出",icon:xa,handler:()=>{ys({title:"导出",content:JSON.stringify(bo(o.pages)),style:"width: 1000px; padding: 15px 15px;",mode:"json",confirm(e){try{const a=JSON.parse(e),s=a.findIndex(l=>l.activePage);n.updateContainer(a[s])}catch(a){console.error(a)}}})}},{label:"导入",icon:Ca,handler:()=>{xo({resultType:"json",onChange(e){try{const a=JSON.parse(e);o.$patch(a),o.toggle()}catch(a){console.error(a)}}})}},{label:"预览",icon:"",handler:e=>{r.preview=!0;let a="";a=`${`${window.location.protocol}//${window.location.host}${window.serverEntry}/visual/`}index.html#/editor/preview/?id=${e.id}&name=${e.name}`;const s=window.open(a,"_blank","");s.onload=()=>{s.document.title=e.name}}},{label:"发布",icon:"",handler:()=>{}}]}}const pf={class:"layout-header flex items-center justify-between"},mf=H({__name:"Header",props:{showConfig:{type:Boolean,default:!1}},emits:["saveBoard"],setup(r){const n=Se(),{commands:o}=To(n),{tools:t}=Af(n,o);return(e,a)=>(E(),P("div",pf,[c(rf,xn(e.$attrs,{tools:g(t),"show-config":r.showConfig}),null,16,["tools","show-config"]),c(cf,{tools:g(t),onSave:a[0]||(a[0]=s=>e.$emit("saveBoard"))},null,8,["tools"]),c(vf,{tools:g(t)},null,8,["tools"])]))}}),hf=ie(mf,[["__scopeId","data-v-a8a8a8e1"]]),_f=H({setup(){const r=kr(),n=a=>()=>V(R,{name:a,size:12},{}),o=[{label:"左对齐",key:"left",icon:n("左对齐")},{label:"右对齐",key:"right",icon:n("右对齐")},{label:"顶部对齐",key:"top",icon:n("顶部对齐")},{label:"底部对齐",key:"bottom",icon:n("底部对齐")},{label:"垂直居中对齐",key:"verticalCenter",icon:n("垂直居中对齐")},{label:"水平居中对齐",key:"horizontalCenter",icon:n("水平居中对齐")}];function t(a,s){r.onClick(a,s),r.show=!1}function e(a){const{option:s}=a;return s.label==="对齐"?V(Nt,{trigger:"hover",placement:"right-start",options:o,onSelect:l=>t(s,l)},{default:()=>V("div",{class:"flex justify-between items-center px-2 contextmenu-item hover-bg-light-5 dark:hover-bg-dark-100"},[V("div",null,[V(_e,{class:"mr-1"},{default:()=>V(R,{name:s.label,size:12},{default:()=>[]})}),V(we,null,{default:()=>s.label})]),V(we,null,{default:()=>s.shortCut})])}):V("div",{class:"flex justify-between items-center px-2 contextmenu-item hover-bg-light-5 dark:hover-bg-dark-100",onClick:()=>{r.onClick(s),r.show=!1}},[V("div",null,[V(_e,{class:"mr-1"},{default:()=>V(R,{name:s.label,size:12},{default:()=>[]})}),V(we,null,{default:()=>s.label})]),V(we,null,{default:()=>s.shortCut})])}return{handleSelect(a,s){r.show=!1,r.onClick&&r.onClick(s)},onClickoutside(){r.show=!1},contextMenuStore:r,renderOption:e}}});function Cf(r,n,o,t,e,a){const s=Nt;return E(),L(s,{placement:"bottom-start",trigger:"manual",x:r.contextMenuStore.clientX,y:r.contextMenuStore.clientY,"key-field":"action",options:r.contextMenuStore.items,"render-option":r.renderOption,show:r.contextMenuStore.show,"on-clickoutside":r.onClickoutside,onSelect:r.handleSelect},null,8,["x","y","options","render-option","show","on-clickoutside","onSelect"])}const yf=ie(_f,[["render",Cf],["__scopeId","data-v-06209a87"]]),wf=H({__name:"Toolsbar",props:{canvasContainer:{type:[Object,null],default:null}},emits:["drawLine","selectWidget","editText"],setup(r,{expose:n,emit:o}){const t=r,e=o,a=Se(),s=j(()=>a.data.elements.filter(F=>F.selected));function l(F){fn(s.value,F)}function i(){t.canvasContainer&&t.canvasContainer.actions.top(s.value[0])}function u(){t.canvasContainer&&t.canvasContainer.actions.bottom(s.value[0])}function f(){t.canvasContainer&&t.canvasContainer.actions.group()}function p(){t.canvasContainer&&t.canvasContainer.actions.ungroup()}function d(){t.canvasContainer&&s.value.forEach(F=>{t.canvasContainer.actions.lock(F)})}function A(){t.canvasContainer&&s.value.forEach(F=>{t.canvasContainer.actions.unlock(F)})}const m=x(!1),C=x(null),w=x(null),_=x(42),h=x(42),b=x(!1),S=j(()=>({top:`${_.value}px`,left:`${h.value}px`,width:`${m.value?84:480}px`})),T=x(null),J=x({}),O=x(0),N=x(0);let X=0,W=0;function Y(F){F.preventDefault(),b.value=!0,X=F.clientX,W=F.clientY}function M(F){if(b.value){if(F.preventDefault(),O.value=F.clientX-X,N.value=F.clientY-W,X=F.clientX,W=F.clientY,F.clientYJ.value.bottom||F.clientX>J.value.right-420)return;_.value+=N.value,h.value+=O.value}}function U(F){F.preventDefault(),b.value=!1,X=0,W=0,O.value=0,N.value=0}wt(()=>{C.value=document.querySelector(".toolsbar"),w.value=C.value.querySelector(".cursor-move"),w.value.addEventListener("mousedown",Y,{capture:!0}),document.addEventListener("mousemove",M),document.addEventListener("mouseup",U),T.value=document.querySelector(".es-editor-container"),J.value=T.value.getBoundingClientRect()}),vr(()=>{w.value.removeEventListener("mousedown",Y),document.removeEventListener("mousemove",M),document.removeEventListener("mouseup",U)});const B=x("selectWidget"),ne=j(()=>F=>F===B.value?"#1890ff":"inherit");return Ar(()=>{t.canvasContainer&&!t.canvasContainer.editingText&&B.value==="editText"&&(B.value="selectWidget",e("selectWidget"))}),n({currAction:B}),(F,k)=>{const q=Et,Z=ia,qe=ra;return E(),P("div",null,[y("div",{ref_key:"el",ref:C,class:"toolsbar absolute z-1000",style:fe(g(S))},[c(qe,{shape:"square",style:fe({"--n-color":g(K)?"#333333":"#ffffff"})},{default:v(()=>[g(m)?(E(),L(Z,{key:0,width:32,height:32,onClick:k[0]||(k[0]=oe=>m.value=!1)},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"展开",size:"14px"})]),default:v(()=>[k[17]||(k[17]=I(" 展开 "))]),_:1})]),_:1})):$("",!0),g(m)?$("",!0):(E(),L(Z,{key:1,width:32,height:32,onClick:k[1]||(k[1]=oe=>m.value=!0)},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"收起",size:"14px"})]),default:v(()=>[k[18]||(k[18]=I(" 收起 "))]),_:1})]),_:1})),c(Z,{ref_key:"handle",ref:w,width:32,height:32,class:"cursor-move"},{default:v(()=>[c(R,{name:"拖拽",size:"16"})]),_:1},512),g(m)?$("",!0):(E(),P(he,{key:2},[c(Z,{width:32,height:32,color:g(ne)("selectWidget"),onClick:k[2]||(k[2]=oe=>(B.value="selectWidget",F.$emit("selectWidget")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"选择",size:"16px"})]),default:v(()=>[k[19]||(k[19]=I(" 选择部件 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("drawLine"),onClick:k[3]||(k[3]=oe=>(B.value="drawLine",F.$emit("drawLine")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"画线",size:"16"})]),default:v(()=>[k[20]||(k[20]=I(" 自由绘制连线 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("editText"),onClick:k[4]||(k[4]=oe=>(B.value="editText",F.$emit("editText")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"编辑文本",size:"16"})]),default:v(()=>[k[21]||(k[21]=I(" 输入文本 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("left"),onClick:k[5]||(k[5]=oe=>(B.value="left",l("left")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"左对齐"})]),default:v(()=>[k[22]||(k[22]=I(" 左侧 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("right"),onClick:k[6]||(k[6]=oe=>(B.value="right",l("right")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"右对齐"})]),default:v(()=>[k[23]||(k[23]=I(" 右侧 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("top"),onClick:k[7]||(k[7]=oe=>(B.value="top",l("top")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"顶部对齐"})]),default:v(()=>[k[24]||(k[24]=I(" 顶部 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("bottom"),onClick:k[8]||(k[8]=oe=>(B.value="bottom",l("bottom")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"底部对齐"})]),default:v(()=>[k[25]||(k[25]=I(" 底部 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("horizontalCenter"),onClick:k[9]||(k[9]=oe=>(B.value="horizontalCenter",l("horizontalCenter")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"水平居中对齐"})]),default:v(()=>[k[26]||(k[26]=I(" 居中 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("verticalCenter"),onClick:k[10]||(k[10]=oe=>(B.value="verticalCenter",l("verticalCenter")))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"垂直居中对齐"})]),default:v(()=>[k[27]||(k[27]=I(" 中部 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("setTop"),onClick:k[11]||(k[11]=oe=>(B.value="setTop",i()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"置顶"})]),default:v(()=>[k[28]||(k[28]=I(" 置顶 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("setBottom"),onClick:k[12]||(k[12]=oe=>(B.value="setBottom",u()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"置底"})]),default:v(()=>[k[29]||(k[29]=I(" 置底 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("createGroup"),onClick:k[13]||(k[13]=oe=>(B.value="createGroup",f()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"创建分组"})]),default:v(()=>[k[30]||(k[30]=I(" 创建分组 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("ungroup"),onClick:k[14]||(k[14]=oe=>(B.value="ungroup",p()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"解除分组"})]),default:v(()=>[k[31]||(k[31]=I(" 解除分组 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("lock"),onClick:k[15]||(k[15]=oe=>(B.value="lock",d()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"锁定"})]),default:v(()=>[k[32]||(k[32]=I(" 锁定 "))]),_:1})]),_:1},8,["color"]),c(Z,{width:32,height:32,color:g(ne)("unlock"),onClick:k[16]||(k[16]=oe=>(B.value="unlock",A()))},{default:v(()=>[c(q,{trigger:"hover",placement:"top-start"},{trigger:v(()=>[c(R,{name:"解锁"})]),default:v(()=>[k[33]||(k[33]=I(" 解锁 "))]),_:1})]),_:1},8,["color"])],64))]),_:1},8,["style"])],4)])}}}),bf=ie(wf,[["__scopeId","data-v-a596a328"]]),Ef={class:"es-layout h-full flex flex-col"},If={class:"es-layout-container flex-auto bg-[#eff2f5] dark:bg-[#111016]"},xf={class:"es-layout-main flex flex-col"},kf={class:"edit-screen-container"},nr=H({__name:"index",props:{data:{type:Object},theme:{type:String}},setup(r,{expose:n}){const o=r,t=Se(),e=Dn(),a=ko(),s=x(),{commands:l}=To(t,e),{updateText:i}=Sr(),u=j(()=>{var z;return((z=s.value)==null?void 0:z.getBoundingClientRect())||{}}),f=x(null);vt("currentComponent",f);function p(z){z.dataTransfer.dropEffect="move"}function d(z){var te;if(!f.value)return;let G=z.offsetX-f.value.width/2,ee=z.offsetY-f.value.height/2;if(z.target.className!=="es-canvas"){const Be=(te=document.querySelector(".es-canvas"))==null?void 0:te.getBoundingClientRect(),je=z.clientX-Be.left,He=z.clientY-Be.top,Ze=t.data.container.scaleRatio/100;G=je/Ze-f.value.width/2,ee=He/Ze-f.value.height/2}const Q=[...t.data.elements,{...f.value,left:G,top:ee}];t.data.elements=Q,t.current={...f.value,left:G,top:ee},f.value=null}function A(){const z=Math.floor(u.value.width),G=t.data.container.style.width,ee=((z-50)/G*100).toFixed(0);t.data.container.scaleRatio=+ee,t.initScale=+ee;const ue=document.querySelector(".es-canvas");if(ue){const{left:Q,top:te}=ue.getBoundingClientRect(),Be=u.value.left-Q,je=u.value.top-te;a.scrollX=Be/(+ee/100)+20/(+ee/100),a.scrollY=je/(+ee/100)+20/(+ee/100)}}function m(z){const{shiftKey:G,key:ee}=z,ue=[];G&&ue.push("shift"),ue.push(ee),ue.join("+").toLowerCase()==="shift+f"&&(A(),setTimeout(()=>{const te=document.querySelector(".edit-screens");te&&te.scrollTo({left:3840/2-te.offsetWidth/2,top:2160/2-te.offsetHeight/2})},0))}wt(()=>{window.addEventListener("keydown",m)}),_o(()=>{window.removeEventListener("keydown",m)});function C(){return{...t.data}}const w=x(!0),_=x(!0);function h(z,G){switch(z){case"右侧面板":w.value=G;break;case"工具栏":_.value=G;break}}const b=x(null);function S(){const z=b.value;z&&(z.startDrawLines=!0,z.editingText=!1),t.data.elements.forEach(G=>{G.selected=!1})}const T=x(null);function J(){const z=b.value;z&&(z.startDrawLines=!1,z.editingText=!1)}function O(){T.value.currAction="selectWidget"}function N(){const z=b.value;z&&(z.editingText=!0,z.startDrawLines=!1),t.data.elements.forEach(G=>{G.selected=!1})}const X=pr();function W(){window.onbeforeunload=function(z){if(X.path==="/editor/")return z.preventDefault(),z=z||window.event,z&&(z.returnValue="离开设计器之前,请确保已保存好更改"),"离开设计器之前,请确保已保存好更改"}}const Y=x(!1),M=Qn(),U=x([]),B=x([]),ne=x(null),F=x(null),k=x(null);vt("thingApiDTOList",U),vt("apiSetIdsList",B),vt("briefInfo",F);const{bindSocket:q,startSocket:Z,dataResolve:qe}=Br(),{intervalFn:oe}=Dr();async function ct(z){var je,He,Ze;Y.value=!0;const G=await zt.info(z);if(G.code!==0)return A(),(je=k.value)==null||je.initRuler(),b.value.showCanvas=!0,M.warning(G.msg);Y.value=!1,ne.value=G.data,U.value=G.data.iotThingApiDTOList,G.data.apiSetIds&&(B.value=G.data.apiSetIds.split(",")),U.value.forEach(Ee=>{Z(Ee.id)});const{pageName:ee,thumbnailUrl:ue,previewUrl:Q,boardManageId:te}=G.data;F.value={id:G.data.id,boardManageId:te,pageName:ee,thumbnailUrl:ue,previewUrl:Q};const Be=JSON.parse(G.data.pictureData);Be?(e.$patch(Be),A(),(He=k.value)==null||He.initRuler(),b.value.initDefaultPage(),b.value.showCanvas=!0,e.$state.forEach(Ee=>{Ee.data.elements.forEach(ce=>{var Ke;const Ie=(Ke=ce.dataSource)==null?void 0:Ke.SuperApiConfig;if(Ie&&Ie.dataSource&&Ie.type==="socket")q(Ie.dataSource,ce,qe(),!0);else{if(!ce.dataSource.api.url)return;oe(ce.dataSource,ce,!0)}}),Ee.data.svgBoard&&Ee.data.svgBoard.textNodes.forEach(ce=>{var Ke;const Ie=(Ke=ce.dataSource)==null?void 0:Ke.SuperApiConfig;if(Ie&&Ie.dataSource&&Ie.type==="socket")q(Ie.dataSource,ce,qe(),!0);else{if(!ce.dataSource.api.url)return;oe(ce.dataSource,ce,!0)}re(()=>ce.props.datasets,(ae,rt)=>{ae&&ae!==rt&&i(ce.id,ae)},{deep:!0})})})):(A(),(Ze=k.value)==null||Ze.initRuler(),b.value.initDefaultPage(),b.value.showCanvas=!0)}async function kt(){e.resetDatasets();const G=`${`${window.location.protocol}//${window.location.host}${window.serverEntry}${window.assetsEntry}`}/index.html#/editor/preview/?id=${F.value.boardManageId}&name=${F.value.pageName}`,ee={...ne.value||{},iotThingApiDTOList:U.value,apiSetIds:B.value.join(","),...F.value,pictureData:JSON.stringify(bo(e.$state)),previewUrl:G},ue=await zt.edit(ee);if(ue.code!==0)return M.warning(ue.msg);M.success("保存成功"),ct(X.query.id)}return re(()=>o.data,()=>{t.update(o.data)},{immediate:!0}),re(()=>o.theme,()=>{o.theme&&(t.theme=o.theme)},{immediate:!0}),wt(()=>{W(),X.query.id&&ct(X.query.id)}),n({getData:C}),(z,G)=>{const ee=ve;return E(),P(he,null,[y("div",Ef,[c(hf,{"show-config":w.value,onLayout:h,onSaveBoard:kt},null,8,["show-config"]),y("div",If,[c(Fu,{onSaveDataSource:kt}),y("div",xf,[Ye(c(ee,{class:"absolute left-[50%] top-[50px] z-1000"},null,512),[[tt,Y.value]]),y("div",{ref_key:"canvasMain",ref:s,class:Rt(["es-editor-container flex-auto",{"dark-editor-container":g(K)}])},[c(tf,{ref_key:"rulerRef",ref:k},null,512),y("div",{class:Rt(["edit-screens",{isDark:g(K)}])},[y("div",kf,[c(mr,{ref_key:"canvasContainer",ref:b,modelValue:g(t).data,"onUpdate:modelValue":G[0]||(G[0]=ue=>g(t).data=ue),commands:g(l),onDragenter:p,onDrop:d,onDragover:G[1]||(G[1]=Co(()=>{},["prevent"])),onSelectWidget:O},null,8,["modelValue","commands"])])],2),Ye(c(bf,{ref_key:"toolbar",ref:T,"canvas-container":b.value,onDrawLine:S,onSelectWidget:J,onEditText:N},null,8,["canvas-container"]),[[tt,_.value]])],2),c(Zu,{"init-scale":A})]),c(gl,{"show-config":w.value,onToggleConfig:G[2]||(G[2]=ue=>w.value=!w.value)},null,8,["show-config"])])]),c(yf)],64)}}});typeof oo=="function"&&oo(nr);const Sf=ie(nr,[["__scopeId","data-v-64ca7535"]]),Eg=Object.freeze(Object.defineProperty({__proto__:null,default:Sf},Symbol.toStringTag,{value:"Module"}));export{yu as $,Zl as A,Kl as B,$l as C,eu as D,ja as E,tu as F,nu as G,ou as H,ru as I,au as J,su as K,iu as L,Mn as M,lu as N,uu as O,cu as P,du as Q,fu as R,gu as S,vu as T,Au as U,pu as V,mu as W,hu as X,_u as Y,Cu as Z,Il as _,Pa as a,wu as a0,bu as a1,Eu as a2,Iu as a3,os as a4,ys as a5,Ga as a6,Lo as a7,Eg as a8,xl as b,kl as c,Sl as d,Bl as e,Dl as f,Ol as g,Ql as h,Ml as i,Tl as j,Ll as k,Pl as l,Rl as m,zl as n,Jl as o,Ul as p,jl as q,Hl as r,Nl as s,Xl as t,Fl as u,Gl as v,Yl as w,Wl as x,Vl as y,ql as z};