@netless/appliance-plugin 1.0.0-beta.4 → 1.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- "use strict";var Ho=Object.defineProperty;var Zo=(o,t,e)=>t in o?Ho(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var p=(o,t,e)=>(Zo(o,typeof t!="symbol"?t+"":t,e),e);const J=require("white-web-sdk");require("spritejs");const io=require("lz-string");require("lineclip");const oo=require("eventemitter2"),K=require("lodash"),Gt=require("react-dom"),u=require("react"),rt=require("react-draggable"),Vo=require("re-resizable"),Go="/fullWorker.js",Jo="/subWorker.js";var H=(o=>(o.selector="selector",o.clicker="clicker",o.laserPointer="laserPointer",o.pencil="pencil",o.rectangle="rectangle",o.ellipse="ellipse",o.shape="shape",o.eraser="eraser",o.pencilEraser="pencilEraser",o.text="text",o.straight="straight",o.arrow="arrow",o.hand="hand",o.laserPen="laserPen",o))(H||{}),Jt=(o=>(o[o.pedding=0]="pedding",o[o.mounted=1]="mounted",o[o.update=2]="update",o[o.unmounted=3]="unmounted",o))(Jt||{}),pt=(o=>(o.Normal="Normal",o.Stroke="Stroke",o.Dotted="Dotted",o.LongDotted="LongDotted",o))(pt||{}),Ce=(o=>(o.Triangle="triangle",o.Rhombus="rhombus",o.Pentagram="pentagram",o.SpeechBalloon="speechBalloon",o.Star="star",o.Polygon="polygon",o))(Ce||{}),x=(o=>(o.None="None",o.ShowFloatBar="ShowFloatBar",o.ZIndexFloatBar="ZIndexFloatBar",o.DeleteNode="DeleteNode",o.CopyNode="CopyNode",o.ZIndexActive="ZIndexActive",o.ZIndexNode="ZIndexNode",o.RotateNode="RotateNode",o.SetColorNode="SetColorNode",o.TranslateNode="TranslateNode",o.ScaleNode="ScaleNode",o.OriginalEvent="OriginalEvent",o.CreateScene="CreateScene",o.ActiveCursor="ActiveCursor",o.MoveCursor="MoveCursor",o.CommandEditor="CommandEditor",o.SetEditorData="SetEditorData",o.SetFontStyle="SetFontStyle",o.SetPoint="SetPoint",o.SetLock="SetLock",o.SetShapeOpt="SetShapeOpt",o))(x||{}),W=(o=>(o.DisplayState="DisplayState",o.FloatBar="FloatBar",o.CanvasSelector="CanvasSelector",o.MainEngine="MainEngine",o.DisplayContainer="DisplayContainer",o.Cursor="Cursor",o.TextEditor="TextEditor",o.BindMainView="BindMainView",o.MountMainView="MountMainView",o.MountAppView="MountAppView",o))(W||{}),no=(o=>(o[o.MainView=0]="MainView",o[o.Plugin=1]="Plugin",o[o.Both=2]="Both",o))(no||{}),N=(o=>(o[o.Pencil=1]="Pencil",o[o.Eraser=2]="Eraser",o[o.Selector=3]="Selector",o[o.Clicker=4]="Clicker",o[o.Arrow=5]="Arrow",o[o.Hand=6]="Hand",o[o.LaserPen=7]="LaserPen",o[o.Text=8]="Text",o[o.Straight=9]="Straight",o[o.Rectangle=10]="Rectangle",o[o.Ellipse=11]="Ellipse",o[o.Star=12]="Star",o[o.Triangle=13]="Triangle",o[o.Rhombus=14]="Rhombus",o[o.Polygon=15]="Polygon",o[o.SpeechBalloon=16]="SpeechBalloon",o[o.Image=17]="Image",o))(N||{}),V=(o=>(o[o.Local=1]="Local",o[o.Service=2]="Service",o[o.Worker=3]="Worker",o))(V||{}),j=(o=>(o[o.Pending=0]="Pending",o[o.Start=1]="Start",o[o.Doing=2]="Doing",o[o.Done=3]="Done",o[o.Freeze=4]="Freeze",o[o.Unwritable=5]="Unwritable",o))(j||{}),D=(o=>(o[o.None=0]="None",o[o.Init=1]="Init",o[o.UpdateCamera=2]="UpdateCamera",o[o.UpdateTools=3]="UpdateTools",o[o.CreateWork=4]="CreateWork",o[o.DrawWork=5]="DrawWork",o[o.FullWork=6]="FullWork",o[o.UpdateNode=7]="UpdateNode",o[o.RemoveNode=8]="RemoveNode",o[o.Clear=9]="Clear",o[o.Select=10]="Select",o[o.Destroy=11]="Destroy",o[o.Snapshot=12]="Snapshot",o[o.BoundingBox=13]="BoundingBox",o[o.Cursor=14]="Cursor",o[o.TextUpdate=15]="TextUpdate",o[o.GetTextActive=16]="GetTextActive",o[o.TasksQueue=17]="TasksQueue",o[o.CursorHover=18]="CursorHover",o))(D||{}),mt=(o=>(o.Webgl2="webgl2",o.Webgl="webgl",o.Canvas2d="2d",o))(mt||{}),Le=(o=>(o[o.None=0]="None",o[o.Bg=1]="Bg",o[o.ServiceFloat=2]="ServiceFloat",o[o.Float=3]="Float",o[o.TopFloat=4]="TopFloat",o))(Le||{}),He=(o=>(o[o.Cursor=1]="Cursor",o[o.TextCreate=2]="TextCreate",o))(He||{}),Qe=(o=>(o[o.Top=1]="Top",o[o.Bottom=2]="Bottom",o))(Qe||{}),ge=(o=>(o[o.none=1]="none",o[o.all=2]="all",o[o.both=3]="both",o[o.proportional=4]="proportional",o))(ge||{});const Ko={linear:o=>o,easeInQuad:o=>o*o,easeOutQuad:o=>o*(2-o),easeInOutQuad:o=>o<.5?2*o*o:-1+(4-2*o)*o,easeInCubic:o=>o*o*o,easeOutCubic:o=>--o*o*o+1,easeInOutCubic:o=>o<.5?4*o*o*o:(o-1)*(2*o-2)*(2*o-2)+1,easeInQuart:o=>o*o*o*o,easeOutQuart:o=>1- --o*o*o*o,easeInOutQuart:o=>o<.5?8*o*o*o*o:1-8*--o*o*o*o,easeInQuint:o=>o*o*o*o*o,easeOutQuint:o=>1+--o*o*o*o*o,easeInOutQuint:o=>o<.5?16*o*o*o*o*o:1+16*--o*o*o*o*o,easeInSine:o=>1-Math.cos(o*Math.PI/2),easeOutSine:o=>Math.sin(o*Math.PI/2),easeInOutSine:o=>-(Math.cos(Math.PI*o)-1)/2,easeInExpo:o=>o<=0?0:Math.pow(2,10*o-10),easeOutExpo:o=>o>=1?1:1-Math.pow(2,-10*o),easeInOutExpo:o=>o<=0?0:o>=1?1:o<.5?Math.pow(2,20*o-10)/2:(2-Math.pow(2,-20*o+10))/2};class S{constructor(t=0,e=0,i=1){this.x=t,this.y=e,this.z=i}get XY(){return[this.x,this.y]}setz(t){return this.z=t,this}setXY(t=this.x,e=this.y){return this.x=t,this.y=e,this}set(t=this.x,e=this.y,i=this.z){return this.x=t,this.y=e,this.z=i,this}setTo({x:t=0,y:e=0,z:i=1}){return this.x=t,this.y=e,this.z=i,this}rot(t){if(t===0)return this;const{x:e,y:i}=this,n=Math.sin(t),s=Math.cos(t);return this.x=e*s-i*n,this.y=e*n+i*s,this}rotWith(t,e){if(e===0)return this;const i=this.x-t.x,n=this.y-t.y,s=Math.sin(e),r=Math.cos(e);return this.x=t.x+(i*r-n*s),this.y=t.y+(i*s+n*r),this}clone(){const{x:t,y:e,z:i}=this;return new S(t,e,i)}sub(t){return this.x-=t.x,this.y-=t.y,this}subXY(t,e){return this.x-=t,this.y-=e,this}subScalar(t){return this.x-=t,this.y-=t,this}add(t){return this.x+=t.x,this.y+=t.y,this}addXY(t,e){return this.x+=t,this.y+=e,this}addScalar(t){return this.x+=t,this.y+=t,this}clamp(t,e){return this.x=Math.max(this.x,t),this.y=Math.max(this.y,t),e!==void 0&&(this.x=Math.min(this.x,e),this.y=Math.min(this.y,e)),this}div(t){return this.x/=t,this.y/=t,this}divV(t){return this.x/=t.x,this.y/=t.y,this}mul(t){return this.x*=t,this.y*=t,this}mulV(t){return this.x*=t.x,this.y*=t.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(t,e){const i=S.Tan(t,this);return this.add(i.mul(e))}neg(){return this.x*=-1,this.y*=-1,this}cross(t){return this.x=this.y*t.z-this.z*t.y,this.y=this.z*t.x-this.x*t.z,this}dpr(t){return S.Dpr(this,t)}cpr(t){return S.Cpr(this,t)}len2(){return S.Len2(this)}len(){return S.Len(this)}pry(t){return S.Pry(this,t)}per(){const{x:t,y:e}=this;return this.x=e,this.y=-t,this}uni(){return S.Uni(this)}tan(t){return S.Tan(this,t)}dist(t){return S.Dist(this,t)}distanceToLineSegment(t,e){return S.DistanceToLineSegment(t,e,this)}slope(t){return S.Slope(this,t)}snapToGrid(t){return this.x=Math.round(this.x/t)*t,this.y=Math.round(this.y/t)*t,this}angle(t){return S.Angle(this,t)}toAngle(){return S.ToAngle(this)}lrp(t,e){return this.x=this.x+(t.x-this.x)*e,this.y=this.y+(t.y-this.y)*e,this}equals(t,e){return S.Equals(this,t,e)}equalsXY(t,e){return S.EqualsXY(this,t,e)}norm(){const t=this.len();return this.x=t===0?0:this.x/t,this.y=t===0?0:this.y/t,this}toFixed(){return S.ToFixed(this)}toString(){return S.ToString(S.ToFixed(this))}toJson(){return S.ToJson(this)}toArray(){return S.ToArray(this)}static Add(t,e){return new S(t.x+e.x,t.y+e.y)}static AddXY(t,e,i){return new S(t.x+e,t.y+i)}static Sub(t,e){return new S(t.x-e.x,t.y-e.y)}static SubXY(t,e,i){return new S(t.x-e,t.y-i)}static AddScalar(t,e){return new S(t.x+e,t.y+e)}static SubScalar(t,e){return new S(t.x-e,t.y-e)}static Div(t,e){return new S(t.x/e,t.y/e)}static Mul(t,e){return new S(t.x*e,t.y*e)}static DivV(t,e){return new S(t.x/e.x,t.y/e.y)}static MulV(t,e){return new S(t.x*e.x,t.y*e.y)}static Neg(t){return new S(-t.x,-t.y)}static Per(t){return new S(t.y,-t.x)}static Dist2(t,e){return S.Sub(t,e).len2()}static Abs(t){return new S(Math.abs(t.x),Math.abs(t.y))}static Dist(t,e){return Math.hypot(t.y-e.y,t.x-e.x)}static Dpr(t,e){return t.x*e.x+t.y*e.y}static Cross(t,e){return new S(t.y*e.z-t.z*e.y,t.z*e.x-t.x*e.z)}static Cpr(t,e){return t.x*e.y-e.x*t.y}static Len2(t){return t.x*t.x+t.y*t.y}static Len(t){return Math.hypot(t.x,t.y)}static Pry(t,e){return S.Dpr(t,e)/S.Len(e)}static Uni(t){return S.Div(t,S.Len(t))}static Tan(t,e){return S.Uni(S.Sub(t,e))}static Min(t,e){return new S(Math.min(t.x,e.x),Math.min(t.y,e.y))}static Max(t,e){return new S(Math.max(t.x,e.x),Math.max(t.y,e.y))}static From(t){return new S().add(t)}static FromArray(t){return new S(t[0],t[1])}static Rot(t,e=0){const i=Math.sin(e),n=Math.cos(e);return new S(t.x*n-t.y*i,t.x*i+t.y*n)}static RotWith(t,e,i){const n=t.x-e.x,s=t.y-e.y,r=Math.sin(i),a=Math.cos(i);return new S(e.x+(n*a-s*r),e.y+(n*r+s*a))}static NearestPointOnLineThroughPoint(t,e,i){return S.Mul(e,S.Sub(i,t).pry(e)).add(t)}static NearestPointOnLineSegment(t,e,i,n=!0){const s=S.Tan(e,t),r=S.Add(t,S.Mul(s,S.Sub(i,t).pry(s)));if(n){if(r.x<Math.min(t.x,e.x))return S.Cast(t.x<e.x?t:e);if(r.x>Math.max(t.x,e.x))return S.Cast(t.x>e.x?t:e);if(r.y<Math.min(t.y,e.y))return S.Cast(t.y<e.y?t:e);if(r.y>Math.max(t.y,e.y))return S.Cast(t.y>e.y?t:e)}return r}static DistanceToLineThroughPoint(t,e,i){return S.Dist(i,S.NearestPointOnLineThroughPoint(t,e,i))}static DistanceToLineSegment(t,e,i,n=!0){return S.Dist(i,S.NearestPointOnLineSegment(t,e,i,n))}static Snap(t,e=1){return new S(Math.round(t.x/e)*e,Math.round(t.y/e)*e)}static Cast(t){return t instanceof S?t:S.From(t)}static Slope(t,e){return t.x===e.y?NaN:(t.y-e.y)/(t.x-e.x)}static Angle(t,e){return Math.atan2(e.y-t.y,e.x-t.x)}static Lrp(t,e,i){return S.Sub(e,t).mul(i).add(t)}static Med(t,e){return new S((t.x+e.x)/2,(t.y+e.y)/2)}static Equals(t,e,i=1e-4){return Math.abs(t.x-e.x)<i&&Math.abs(t.y-e.y)<i}static EqualsXY(t,e,i){return t.x===e&&t.y===i}static EqualsXYZ(t,e,i=1e-4){return S.Equals(t,e,i)&&Math.abs((t.z||0)-(e.z||0))<i}static Clockwise(t,e,i){return(i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y)<0}static Rescale(t,e){const i=S.Len(t);return new S(e*t.x/i,e*t.y/i)}static ScaleWithOrigin(t,e,i){return S.Sub(t,i).mul(e).add(i)}static ScaleWOrigin(t,e,i){return S.Sub(t,i).mulV(e).add(i)}static ToFixed(t,e=2){return new S(+t.x.toFixed(e),+t.y.toFixed(e),+t.z.toFixed(e))}static Nudge(t,e,i){return S.Add(t,S.Tan(e,t).mul(i))}static ToString(t){return`${t.x}, ${t.y}`}static ToAngle(t){let e=Math.atan2(t.y,t.x);return e<0&&(e+=Math.PI*2),e}static FromAngle(t,e=1){return new S(Math.cos(t)*e,Math.sin(t)*e)}static ToArray(t){return[t.x,t.y,t.z]}static ToJson(t){const{x:e,y:i,z:n}=t;return{x:e,y:i,z:n}}static Average(t){const e=t.length,i=new S(0,0);for(let n=0;n<e;n++)i.add(t[n]);return i.div(e)}static Clamp(t,e,i){return i===void 0?new S(Math.min(Math.max(t.x,e)),Math.min(Math.max(t.y,e))):new S(Math.min(Math.max(t.x,e),i),Math.min(Math.max(t.y,e),i))}static PointsBetween(t,e,i=6){const n=[];for(let s=0;s<i;s++){const r=Ko.easeInQuad(s/(i-1)),a=S.Lrp(t,e,r);a.z=Math.min(1,.5+Math.abs(.5-qo(r))*.65),n.push(a)}return n}static SnapToGrid(t,e=8){return new S(Math.round(t.x/e)*e,Math.round(t.y/e)*e)}}const qo=o=>o<.5?2*o*o:-1+(4-2*o)*o;class oe extends S{constructor(t=0,e=0,i=0,n={x:0,y:0},s=0,r=0){super(t,e,i),this.x=t,this.y=e,this.z=i,this.v=n,this.t=s,this.a=r}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(t){this.a=t}setT(t){this.t=t}setv(t){return this.v={x:t.x,y:t.y},this}set(t=this.x,e=this.y,i=this.z,n=this.v,s=this.t,r=this.a){return this.x=t,this.y=e,this.z=i,this.v=n,this.t=s,this.a=r,this}clone(){const{x:t,y:e,z:i,v:n,t:s,a:r}=this,a={x:n.x,y:n.y};return new oe(t,e,i,a,s,r)}distance(t){return oe.GetDistance(this,t)}isNear(t,e){return oe.IsNear(this,t,e)}getAngleByPoints(t,e){return oe.GetAngleByPoints(t,this,e)}static Sub(t,e){return new oe(t.x-e.x,t.y-e.y)}static Add(t,e){return new oe(t.x+e.x,t.y+e.y)}static GetDistance(t,e){return oe.Len(t.clone().sub(e))}static GetAngleByPoints(t,e,i){const n=e.x-t.x,s=i.x-e.x,r=e.y-t.y,a=i.y-e.y;let c=0;const l=Math.sqrt(n*n+r*r),d=Math.sqrt(s*s+a*a);if(l&&d){const g=n*s+r*a;c=Math.acos(g/(l*d)),c=c/Math.PI*180;let h=n*a-r*s;h=h>0?1:-1,c=180+h*c}return c}static IsNear(t,e,i){return oe.Len(t.clone().sub(e))<i}static RotWith(t,e,i,n=2){const s=t.x-e.x,r=t.y-e.y,a=Math.sin(i),c=Math.cos(i),l=Math.pow(10,n),d=Math.floor((e.x+(s*c-r*a))*l)/l,g=Math.floor((e.y+(s*a+r*c))*l)/l;return new oe(d,g)}static GetDotStroke(t,e,i=16){const n=new S(1,1),s=Math.PI+.001,r=oe.Add(t,oe.Sub(t,n).uni().per().mul(-e)),a=[];for(let c=1/i,l=c;l<=1;l+=c)a.push(oe.RotWith(r,t,s*2*l));return a}static GetSemicircleStroke(t,e,i=-1,n=8){const s=i*(Math.PI+.001),r=[];for(let a=1/n,c=a;c<=1;c+=a)r.push(oe.RotWith(e,t,s*c));return r}}var ct=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ze(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var _o=typeof ct=="object"&&ct&&ct.Object===Object&&ct,so=_o,Xo=so,en=typeof self=="object"&&self&&self.Object===Object&&self,tn=Xo||en||Function("return this")(),De=tn,on=De,nn=on.Symbol,Tt=nn,di=Tt,ro=Object.prototype,sn=ro.hasOwnProperty,rn=ro.toString,st=di?di.toStringTag:void 0;function an(o){var t=sn.call(o,st),e=o[st];try{o[st]=void 0;var i=!0}catch{}var n=rn.call(o);return i&&(t?o[st]=e:delete o[st]),n}var cn=an,ln=Object.prototype,un=ln.toString;function hn(o){return un.call(o)}var dn=hn,gi=Tt,gn=cn,Mn=dn,pn="[object Null]",fn="[object Undefined]",Mi=gi?gi.toStringTag:void 0;function yn(o){return o==null?o===void 0?fn:pn:Mi&&Mi in Object(o)?gn(o):Mn(o)}var Ve=yn;function In(o){return o!=null&&typeof o=="object"}var Pe=In,vn=Ve,wn=Pe,Nn="[object Number]";function mn(o){return typeof o=="number"||wn(o)&&vn(o)==Nn}var Tn=mn;const ae=Ze(Tn);function zn(){this.__data__=[],this.size=0}var Cn=zn;function jn(o,t){return o===t||o!==o&&t!==t}var Kt=jn,Sn=Kt;function xn(o,t){for(var e=o.length;e--;)if(Sn(o[e][0],t))return e;return-1}var zt=xn,Dn=zt,Ln=Array.prototype,kn=Ln.splice;function An(o){var t=this.__data__,e=Dn(t,o);if(e<0)return!1;var i=t.length-1;return e==i?t.pop():kn.call(t,e,1),--this.size,!0}var bn=An,En=zt;function On(o){var t=this.__data__,e=En(t,o);return e<0?void 0:t[e][1]}var Yn=On,Pn=zt;function Rn(o){return Pn(this.__data__,o)>-1}var Wn=Rn,Un=zt;function $n(o,t){var e=this.__data__,i=Un(e,o);return i<0?(++this.size,e.push([o,t])):e[i][1]=t,this}var Bn=$n,Fn=Cn,Qn=bn,Hn=Yn,Zn=Wn,Vn=Bn;function et(o){var t=-1,e=o==null?0:o.length;for(this.clear();++t<e;){var i=o[t];this.set(i[0],i[1])}}et.prototype.clear=Fn;et.prototype.delete=Qn;et.prototype.get=Hn;et.prototype.has=Zn;et.prototype.set=Vn;var Ct=et,Gn=Ct;function Jn(){this.__data__=new Gn,this.size=0}var Kn=Jn;function qn(o){var t=this.__data__,e=t.delete(o);return this.size=t.size,e}var _n=qn;function Xn(o){return this.__data__.get(o)}var es=Xn;function ts(o){return this.__data__.has(o)}var is=ts;function os(o){var t=typeof o;return o!=null&&(t=="object"||t=="function")}var Ue=os,ns=Ve,ss=Ue,rs="[object AsyncFunction]",as="[object Function]",cs="[object GeneratorFunction]",ls="[object Proxy]";function us(o){if(!ss(o))return!1;var t=ns(o);return t==as||t==cs||t==rs||t==ls}var ao=us,hs=De,ds=hs["__core-js_shared__"],gs=ds,At=gs,pi=function(){var o=/[^.]+$/.exec(At&&At.keys&&At.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function Ms(o){return!!pi&&pi in o}var ps=Ms,fs=Function.prototype,ys=fs.toString;function Is(o){if(o!=null){try{return ys.call(o)}catch{}try{return o+""}catch{}}return""}var co=Is,vs=ao,ws=ps,Ns=Ue,ms=co,Ts=/[\\^$.*+?()[\]{}|]/g,zs=/^\[object .+?Constructor\]$/,Cs=Function.prototype,js=Object.prototype,Ss=Cs.toString,xs=js.hasOwnProperty,Ds=RegExp("^"+Ss.call(xs).replace(Ts,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ls(o){if(!Ns(o)||ws(o))return!1;var t=vs(o)?Ds:zs;return t.test(ms(o))}var ks=Ls;function As(o,t){return o==null?void 0:o[t]}var bs=As,Es=ks,Os=bs;function Ys(o,t){var e=Os(o,t);return Es(e)?e:void 0}var Ge=Ys,Ps=Ge,Rs=De,Ws=Ps(Rs,"Map"),qt=Ws,Us=Ge,$s=Us(Object,"create"),jt=$s,fi=jt;function Bs(){this.__data__=fi?fi(null):{},this.size=0}var Fs=Bs;function Qs(o){var t=this.has(o)&&delete this.__data__[o];return this.size-=t?1:0,t}var Hs=Qs,Zs=jt,Vs="__lodash_hash_undefined__",Gs=Object.prototype,Js=Gs.hasOwnProperty;function Ks(o){var t=this.__data__;if(Zs){var e=t[o];return e===Vs?void 0:e}return Js.call(t,o)?t[o]:void 0}var qs=Ks,_s=jt,Xs=Object.prototype,er=Xs.hasOwnProperty;function tr(o){var t=this.__data__;return _s?t[o]!==void 0:er.call(t,o)}var ir=tr,or=jt,nr="__lodash_hash_undefined__";function sr(o,t){var e=this.__data__;return this.size+=this.has(o)?0:1,e[o]=or&&t===void 0?nr:t,this}var rr=sr,ar=Fs,cr=Hs,lr=qs,ur=ir,hr=rr;function tt(o){var t=-1,e=o==null?0:o.length;for(this.clear();++t<e;){var i=o[t];this.set(i[0],i[1])}}tt.prototype.clear=ar;tt.prototype.delete=cr;tt.prototype.get=lr;tt.prototype.has=ur;tt.prototype.set=hr;var dr=tt,yi=dr,gr=Ct,Mr=qt;function pr(){this.size=0,this.__data__={hash:new yi,map:new(Mr||gr),string:new yi}}var fr=pr;function yr(o){var t=typeof o;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?o!=="__proto__":o===null}var Ir=yr,vr=Ir;function wr(o,t){var e=o.__data__;return vr(t)?e[typeof t=="string"?"string":"hash"]:e.map}var St=wr,Nr=St;function mr(o){var t=Nr(this,o).delete(o);return this.size-=t?1:0,t}var Tr=mr,zr=St;function Cr(o){return zr(this,o).get(o)}var jr=Cr,Sr=St;function xr(o){return Sr(this,o).has(o)}var Dr=xr,Lr=St;function kr(o,t){var e=Lr(this,o),i=e.size;return e.set(o,t),this.size+=e.size==i?0:1,this}var Ar=kr,br=fr,Er=Tr,Or=jr,Yr=Dr,Pr=Ar;function it(o){var t=-1,e=o==null?0:o.length;for(this.clear();++t<e;){var i=o[t];this.set(i[0],i[1])}}it.prototype.clear=br;it.prototype.delete=Er;it.prototype.get=Or;it.prototype.has=Yr;it.prototype.set=Pr;var lo=it,Rr=Ct,Wr=qt,Ur=lo,$r=200;function Br(o,t){var e=this.__data__;if(e instanceof Rr){var i=e.__data__;if(!Wr||i.length<$r-1)return i.push([o,t]),this.size=++e.size,this;e=this.__data__=new Ur(i)}return e.set(o,t),this.size=e.size,this}var Fr=Br,Qr=Ct,Hr=Kn,Zr=_n,Vr=es,Gr=is,Jr=Fr;function ot(o){var t=this.__data__=new Qr(o);this.size=t.size}ot.prototype.clear=Hr;ot.prototype.delete=Zr;ot.prototype.get=Vr;ot.prototype.has=Gr;ot.prototype.set=Jr;var uo=ot;function Kr(o,t){for(var e=-1,i=o==null?0:o.length;++e<i&&t(o[e],e,o)!==!1;);return o}var qr=Kr,_r=Ge,Xr=function(){try{var o=_r(Object,"defineProperty");return o({},"",{}),o}catch{}}(),ea=Xr,Ii=ea;function ta(o,t,e){t=="__proto__"&&Ii?Ii(o,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):o[t]=e}var ho=ta,ia=ho,oa=Kt,na=Object.prototype,sa=na.hasOwnProperty;function ra(o,t,e){var i=o[t];(!(sa.call(o,t)&&oa(i,e))||e===void 0&&!(t in o))&&ia(o,t,e)}var go=ra,aa=go,ca=ho;function la(o,t,e,i){var n=!e;e||(e={});for(var s=-1,r=t.length;++s<r;){var a=t[s],c=i?i(e[a],o[a],a,e,o):void 0;c===void 0&&(c=o[a]),n?ca(e,a,c):aa(e,a,c)}return e}var xt=la;function ua(o,t){for(var e=-1,i=Array(o);++e<o;)i[e]=t(e);return i}var ha=ua,da=Ve,ga=Pe,Ma="[object Arguments]";function pa(o){return ga(o)&&da(o)==Ma}var fa=pa,vi=fa,ya=Pe,Mo=Object.prototype,Ia=Mo.hasOwnProperty,va=Mo.propertyIsEnumerable,wa=vi(function(){return arguments}())?vi:function(o){return ya(o)&&Ia.call(o,"callee")&&!va.call(o,"callee")},Na=wa,ma=Array.isArray,Dt=ma,ft={exports:{}};function Ta(){return!1}var za=Ta;ft.exports;(function(o,t){var e=De,i=za,n=t&&!t.nodeType&&t,s=n&&!0&&o&&!o.nodeType&&o,r=s&&s.exports===n,a=r?e.Buffer:void 0,c=a?a.isBuffer:void 0,l=c||i;o.exports=l})(ft,ft.exports);var _t=ft.exports,Ca=9007199254740991,ja=/^(?:0|[1-9]\d*)$/;function Sa(o,t){var e=typeof o;return t=t??Ca,!!t&&(e=="number"||e!="symbol"&&ja.test(o))&&o>-1&&o%1==0&&o<t}var xa=Sa,Da=9007199254740991;function La(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=Da}var po=La,ka=Ve,Aa=po,ba=Pe,Ea="[object Arguments]",Oa="[object Array]",Ya="[object Boolean]",Pa="[object Date]",Ra="[object Error]",Wa="[object Function]",Ua="[object Map]",$a="[object Number]",Ba="[object Object]",Fa="[object RegExp]",Qa="[object Set]",Ha="[object String]",Za="[object WeakMap]",Va="[object ArrayBuffer]",Ga="[object DataView]",Ja="[object Float32Array]",Ka="[object Float64Array]",qa="[object Int8Array]",_a="[object Int16Array]",Xa="[object Int32Array]",ec="[object Uint8Array]",tc="[object Uint8ClampedArray]",ic="[object Uint16Array]",oc="[object Uint32Array]",ie={};ie[Ja]=ie[Ka]=ie[qa]=ie[_a]=ie[Xa]=ie[ec]=ie[tc]=ie[ic]=ie[oc]=!0;ie[Ea]=ie[Oa]=ie[Va]=ie[Ya]=ie[Ga]=ie[Pa]=ie[Ra]=ie[Wa]=ie[Ua]=ie[$a]=ie[Ba]=ie[Fa]=ie[Qa]=ie[Ha]=ie[Za]=!1;function nc(o){return ba(o)&&Aa(o.length)&&!!ie[ka(o)]}var sc=nc;function rc(o){return function(t){return o(t)}}var Xt=rc,yt={exports:{}};yt.exports;(function(o,t){var e=so,i=t&&!t.nodeType&&t,n=i&&!0&&o&&!o.nodeType&&o,s=n&&n.exports===i,r=s&&e.process,a=function(){try{var c=n&&n.require&&n.require("util").types;return c||r&&r.binding&&r.binding("util")}catch{}}();o.exports=a})(yt,yt.exports);var ei=yt.exports,ac=sc,cc=Xt,wi=ei,Ni=wi&&wi.isTypedArray,lc=Ni?cc(Ni):ac,fo=lc,uc=ha,hc=Na,dc=Dt,gc=_t,Mc=xa,pc=fo,fc=Object.prototype,yc=fc.hasOwnProperty;function Ic(o,t){var e=dc(o),i=!e&&hc(o),n=!e&&!i&&gc(o),s=!e&&!i&&!n&&pc(o),r=e||i||n||s,a=r?uc(o.length,String):[],c=a.length;for(var l in o)(t||yc.call(o,l))&&!(r&&(l=="length"||n&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Mc(l,c)))&&a.push(l);return a}var yo=Ic,vc=Object.prototype;function wc(o){var t=o&&o.constructor,e=typeof t=="function"&&t.prototype||vc;return o===e}var ti=wc;function Nc(o,t){return function(e){return o(t(e))}}var Io=Nc,mc=Io,Tc=mc(Object.keys,Object),zc=Tc,Cc=ti,jc=zc,Sc=Object.prototype,xc=Sc.hasOwnProperty;function Dc(o){if(!Cc(o))return jc(o);var t=[];for(var e in Object(o))xc.call(o,e)&&e!="constructor"&&t.push(e);return t}var Lc=Dc,kc=ao,Ac=po;function bc(o){return o!=null&&Ac(o.length)&&!kc(o)}var vo=bc,Ec=yo,Oc=Lc,Yc=vo;function Pc(o){return Yc(o)?Ec(o):Oc(o)}var ii=Pc,Rc=xt,Wc=ii;function Uc(o,t){return o&&Rc(t,Wc(t),o)}var $c=Uc;function Bc(o){var t=[];if(o!=null)for(var e in Object(o))t.push(e);return t}var Fc=Bc,Qc=Ue,Hc=ti,Zc=Fc,Vc=Object.prototype,Gc=Vc.hasOwnProperty;function Jc(o){if(!Qc(o))return Zc(o);var t=Hc(o),e=[];for(var i in o)i=="constructor"&&(t||!Gc.call(o,i))||e.push(i);return e}var Kc=Jc,qc=yo,_c=Kc,Xc=vo;function el(o){return Xc(o)?qc(o,!0):_c(o)}var oi=el,tl=xt,il=oi;function ol(o,t){return o&&tl(t,il(t),o)}var nl=ol,It={exports:{}};It.exports;(function(o,t){var e=De,i=t&&!t.nodeType&&t,n=i&&!0&&o&&!o.nodeType&&o,s=n&&n.exports===i,r=s?e.Buffer:void 0,a=r?r.allocUnsafe:void 0;function c(l,d){if(d)return l.slice();var g=l.length,h=a?a(g):new l.constructor(g);return l.copy(h),h}o.exports=c})(It,It.exports);var sl=It.exports;function rl(o,t){var e=-1,i=o.length;for(t||(t=Array(i));++e<i;)t[e]=o[e];return t}var al=rl;function cl(o,t){for(var e=-1,i=o==null?0:o.length,n=0,s=[];++e<i;){var r=o[e];t(r,e,o)&&(s[n++]=r)}return s}var ll=cl;function ul(){return[]}var wo=ul,hl=ll,dl=wo,gl=Object.prototype,Ml=gl.propertyIsEnumerable,mi=Object.getOwnPropertySymbols,pl=mi?function(o){return o==null?[]:(o=Object(o),hl(mi(o),function(t){return Ml.call(o,t)}))}:dl,ni=pl,fl=xt,yl=ni;function Il(o,t){return fl(o,yl(o),t)}var vl=Il;function wl(o,t){for(var e=-1,i=t.length,n=o.length;++e<i;)o[n+e]=t[e];return o}var No=wl,Nl=Io,ml=Nl(Object.getPrototypeOf,Object),mo=ml,Tl=No,zl=mo,Cl=ni,jl=wo,Sl=Object.getOwnPropertySymbols,xl=Sl?function(o){for(var t=[];o;)Tl(t,Cl(o)),o=zl(o);return t}:jl,To=xl,Dl=xt,Ll=To;function kl(o,t){return Dl(o,Ll(o),t)}var Al=kl,bl=No,El=Dt;function Ol(o,t,e){var i=t(o);return El(o)?i:bl(i,e(o))}var zo=Ol,Yl=zo,Pl=ni,Rl=ii;function Wl(o){return Yl(o,Rl,Pl)}var Co=Wl,Ul=zo,$l=To,Bl=oi;function Fl(o){return Ul(o,Bl,$l)}var Ql=Fl,Hl=Ge,Zl=De,Vl=Hl(Zl,"DataView"),Gl=Vl,Jl=Ge,Kl=De,ql=Jl(Kl,"Promise"),_l=ql,Xl=Ge,eu=De,tu=Xl(eu,"Set"),iu=tu,ou=Ge,nu=De,su=ou(nu,"WeakMap"),ru=su,Pt=Gl,Rt=qt,Wt=_l,Ut=iu,$t=ru,jo=Ve,nt=co,Ti="[object Map]",au="[object Object]",zi="[object Promise]",Ci="[object Set]",ji="[object WeakMap]",Si="[object DataView]",cu=nt(Pt),lu=nt(Rt),uu=nt(Wt),hu=nt(Ut),du=nt($t),$e=jo;(Pt&&$e(new Pt(new ArrayBuffer(1)))!=Si||Rt&&$e(new Rt)!=Ti||Wt&&$e(Wt.resolve())!=zi||Ut&&$e(new Ut)!=Ci||$t&&$e(new $t)!=ji)&&($e=function(o){var t=jo(o),e=t==au?o.constructor:void 0,i=e?nt(e):"";if(i)switch(i){case cu:return Si;case lu:return Ti;case uu:return zi;case hu:return Ci;case du:return ji}return t});var Lt=$e,gu=Object.prototype,Mu=gu.hasOwnProperty;function pu(o){var t=o.length,e=new o.constructor(t);return t&&typeof o[0]=="string"&&Mu.call(o,"index")&&(e.index=o.index,e.input=o.input),e}var fu=pu,yu=De,Iu=yu.Uint8Array,So=Iu,xi=So;function vu(o){var t=new o.constructor(o.byteLength);return new xi(t).set(new xi(o)),t}var si=vu,wu=si;function Nu(o,t){var e=t?wu(o.buffer):o.buffer;return new o.constructor(e,o.byteOffset,o.byteLength)}var mu=Nu,Tu=/\w*$/;function zu(o){var t=new o.constructor(o.source,Tu.exec(o));return t.lastIndex=o.lastIndex,t}var Cu=zu,Di=Tt,Li=Di?Di.prototype:void 0,ki=Li?Li.valueOf:void 0;function ju(o){return ki?Object(ki.call(o)):{}}var Su=ju,xu=si;function Du(o,t){var e=t?xu(o.buffer):o.buffer;return new o.constructor(e,o.byteOffset,o.length)}var Lu=Du,ku=si,Au=mu,bu=Cu,Eu=Su,Ou=Lu,Yu="[object Boolean]",Pu="[object Date]",Ru="[object Map]",Wu="[object Number]",Uu="[object RegExp]",$u="[object Set]",Bu="[object String]",Fu="[object Symbol]",Qu="[object ArrayBuffer]",Hu="[object DataView]",Zu="[object Float32Array]",Vu="[object Float64Array]",Gu="[object Int8Array]",Ju="[object Int16Array]",Ku="[object Int32Array]",qu="[object Uint8Array]",_u="[object Uint8ClampedArray]",Xu="[object Uint16Array]",eh="[object Uint32Array]";function th(o,t,e){var i=o.constructor;switch(t){case Qu:return ku(o);case Yu:case Pu:return new i(+o);case Hu:return Au(o,e);case Zu:case Vu:case Gu:case Ju:case Ku:case qu:case _u:case Xu:case eh:return Ou(o,e);case Ru:return new i;case Wu:case Bu:return new i(o);case Uu:return bu(o);case $u:return new i;case Fu:return Eu(o)}}var ih=th,oh=Ue,Ai=Object.create,nh=function(){function o(){}return function(t){if(!oh(t))return{};if(Ai)return Ai(t);o.prototype=t;var e=new o;return o.prototype=void 0,e}}(),sh=nh,rh=sh,ah=mo,ch=ti;function lh(o){return typeof o.constructor=="function"&&!ch(o)?rh(ah(o)):{}}var uh=lh,hh=Lt,dh=Pe,gh="[object Map]";function Mh(o){return dh(o)&&hh(o)==gh}var ph=Mh,fh=ph,yh=Xt,bi=ei,Ei=bi&&bi.isMap,Ih=Ei?yh(Ei):fh,vh=Ih,wh=Lt,Nh=Pe,mh="[object Set]";function Th(o){return Nh(o)&&wh(o)==mh}var zh=Th,Ch=zh,jh=Xt,Oi=ei,Yi=Oi&&Oi.isSet,Sh=Yi?jh(Yi):Ch,xh=Sh,Dh=uo,Lh=qr,kh=go,Ah=$c,bh=nl,Eh=sl,Oh=al,Yh=vl,Ph=Al,Rh=Co,Wh=Ql,Uh=Lt,$h=fu,Bh=ih,Fh=uh,Qh=Dt,Hh=_t,Zh=vh,Vh=Ue,Gh=xh,Jh=ii,Kh=oi,qh=1,_h=2,Xh=4,xo="[object Arguments]",ed="[object Array]",td="[object Boolean]",id="[object Date]",od="[object Error]",Do="[object Function]",nd="[object GeneratorFunction]",sd="[object Map]",rd="[object Number]",Lo="[object Object]",ad="[object RegExp]",cd="[object Set]",ld="[object String]",ud="[object Symbol]",hd="[object WeakMap]",dd="[object ArrayBuffer]",gd="[object DataView]",Md="[object Float32Array]",pd="[object Float64Array]",fd="[object Int8Array]",yd="[object Int16Array]",Id="[object Int32Array]",vd="[object Uint8Array]",wd="[object Uint8ClampedArray]",Nd="[object Uint16Array]",md="[object Uint32Array]",ee={};ee[xo]=ee[ed]=ee[dd]=ee[gd]=ee[td]=ee[id]=ee[Md]=ee[pd]=ee[fd]=ee[yd]=ee[Id]=ee[sd]=ee[rd]=ee[Lo]=ee[ad]=ee[cd]=ee[ld]=ee[ud]=ee[vd]=ee[wd]=ee[Nd]=ee[md]=!0;ee[od]=ee[Do]=ee[hd]=!1;function Mt(o,t,e,i,n,s){var r,a=t&qh,c=t&_h,l=t&Xh;if(e&&(r=n?e(o,i,n,s):e(o)),r!==void 0)return r;if(!Vh(o))return o;var d=Qh(o);if(d){if(r=$h(o),!a)return Oh(o,r)}else{var g=Uh(o),h=g==Do||g==nd;if(Hh(o))return Eh(o,a);if(g==Lo||g==xo||h&&!n){if(r=c||h?{}:Fh(o),!a)return c?Ph(o,bh(r,o)):Yh(o,Ah(r,o))}else{if(!ee[g])return n?o:{};r=Bh(o,g,a)}}s||(s=new Dh);var M=s.get(o);if(M)return M;s.set(o,r),Gh(o)?o.forEach(function(f){r.add(Mt(f,t,e,f,o,s))}):Zh(o)&&o.forEach(function(f,I){r.set(I,Mt(f,t,e,I,o,s))});var y=l?c?Wh:Rh:c?Kh:Jh,v=d?void 0:y(o);return Lh(v||o,function(f,I){v&&(I=f,f=o[I]),kh(r,I,Mt(f,t,e,I,o,s))}),r}var ko=Mt,Td=ko,zd=1,Cd=4;function jd(o){return Td(o,zd|Cd)}var Sd=jd;const ne=Ze(Sd);function Ao(o){return JSON.parse(io.decompress(o))}function bo(o){return io.compress(JSON.stringify(o))}const Ie=Object.keys,Se="++",E="selector",Eo="all";var xd="__lodash_hash_undefined__";function Dd(o){return this.__data__.set(o,xd),this}var Ld=Dd;function kd(o){return this.__data__.has(o)}var Ad=kd,bd=lo,Ed=Ld,Od=Ad;function vt(o){var t=-1,e=o==null?0:o.length;for(this.__data__=new bd;++t<e;)this.add(o[t])}vt.prototype.add=vt.prototype.push=Ed;vt.prototype.has=Od;var Yd=vt;function Pd(o,t){for(var e=-1,i=o==null?0:o.length;++e<i;)if(t(o[e],e,o))return!0;return!1}var Rd=Pd;function Wd(o,t){return o.has(t)}var Ud=Wd,$d=Yd,Bd=Rd,Fd=Ud,Qd=1,Hd=2;function Zd(o,t,e,i,n,s){var r=e&Qd,a=o.length,c=t.length;if(a!=c&&!(r&&c>a))return!1;var l=s.get(o),d=s.get(t);if(l&&d)return l==t&&d==o;var g=-1,h=!0,M=e&Hd?new $d:void 0;for(s.set(o,t),s.set(t,o);++g<a;){var y=o[g],v=t[g];if(i)var f=r?i(v,y,g,t,o,s):i(y,v,g,o,t,s);if(f!==void 0){if(f)continue;h=!1;break}if(M){if(!Bd(t,function(I,m){if(!Fd(M,m)&&(y===I||n(y,I,e,i,s)))return M.push(m)})){h=!1;break}}else if(!(y===v||n(y,v,e,i,s))){h=!1;break}}return s.delete(o),s.delete(t),h}var Oo=Zd;function Vd(o){var t=-1,e=Array(o.size);return o.forEach(function(i,n){e[++t]=[n,i]}),e}var Gd=Vd;function Jd(o){var t=-1,e=Array(o.size);return o.forEach(function(i){e[++t]=i}),e}var Kd=Jd,Pi=Tt,Ri=So,qd=Kt,_d=Oo,Xd=Gd,eg=Kd,tg=1,ig=2,og="[object Boolean]",ng="[object Date]",sg="[object Error]",rg="[object Map]",ag="[object Number]",cg="[object RegExp]",lg="[object Set]",ug="[object String]",hg="[object Symbol]",dg="[object ArrayBuffer]",gg="[object DataView]",Wi=Pi?Pi.prototype:void 0,bt=Wi?Wi.valueOf:void 0;function Mg(o,t,e,i,n,s,r){switch(e){case gg:if(o.byteLength!=t.byteLength||o.byteOffset!=t.byteOffset)return!1;o=o.buffer,t=t.buffer;case dg:return!(o.byteLength!=t.byteLength||!s(new Ri(o),new Ri(t)));case og:case ng:case ag:return qd(+o,+t);case sg:return o.name==t.name&&o.message==t.message;case cg:case ug:return o==t+"";case rg:var a=Xd;case lg:var c=i&tg;if(a||(a=eg),o.size!=t.size&&!c)return!1;var l=r.get(o);if(l)return l==t;i|=ig,r.set(o,t);var d=_d(a(o),a(t),i,n,s,r);return r.delete(o),d;case hg:if(bt)return bt.call(o)==bt.call(t)}return!1}var pg=Mg,Ui=Co,fg=1,yg=Object.prototype,Ig=yg.hasOwnProperty;function vg(o,t,e,i,n,s){var r=e&fg,a=Ui(o),c=a.length,l=Ui(t),d=l.length;if(c!=d&&!r)return!1;for(var g=c;g--;){var h=a[g];if(!(r?h in t:Ig.call(t,h)))return!1}var M=s.get(o),y=s.get(t);if(M&&y)return M==t&&y==o;var v=!0;s.set(o,t),s.set(t,o);for(var f=r;++g<c;){h=a[g];var I=o[h],m=t[h];if(i)var w=r?i(m,I,h,t,o,s):i(I,m,h,o,t,s);if(!(w===void 0?I===m||n(I,m,e,i,s):w)){v=!1;break}f||(f=h=="constructor")}if(v&&!f){var T=o.constructor,z=t.constructor;T!=z&&"constructor"in o&&"constructor"in t&&!(typeof T=="function"&&T instanceof T&&typeof z=="function"&&z instanceof z)&&(v=!1)}return s.delete(o),s.delete(t),v}var wg=vg,Et=uo,Ng=Oo,mg=pg,Tg=wg,$i=Lt,Bi=Dt,Fi=_t,zg=fo,Cg=1,Qi="[object Arguments]",Hi="[object Array]",lt="[object Object]",jg=Object.prototype,Zi=jg.hasOwnProperty;function Sg(o,t,e,i,n,s){var r=Bi(o),a=Bi(t),c=r?Hi:$i(o),l=a?Hi:$i(t);c=c==Qi?lt:c,l=l==Qi?lt:l;var d=c==lt,g=l==lt,h=c==l;if(h&&Fi(o)){if(!Fi(t))return!1;r=!0,d=!1}if(h&&!d)return s||(s=new Et),r||zg(o)?Ng(o,t,e,i,n,s):mg(o,t,c,e,i,n,s);if(!(e&Cg)){var M=d&&Zi.call(o,"__wrapped__"),y=g&&Zi.call(t,"__wrapped__");if(M||y){var v=M?o.value():o,f=y?t.value():t;return s||(s=new Et),n(v,f,e,i,s)}}return h?(s||(s=new Et),Tg(o,t,e,i,n,s)):!1}var xg=Sg,Dg=xg,Vi=Pe;function Yo(o,t,e,i,n){return o===t?!0:o==null||t==null||!Vi(o)&&!Vi(t)?o!==o&&t!==t:Dg(o,t,e,i,Yo,n)}var Lg=Yo,kg=Lg;function Ag(o,t){return kg(o,t)}var bg=Ag;const ce=Ze(bg);var Eg=Ve,Og=Pe,Yg="[object Boolean]";function Pg(o){return o===!0||o===!1||Og(o)&&Eg(o)==Yg}var Rg=Pg;const Ne=Ze(Rg);function Wg(o,t){if(o&&t){const e=Math.min(o.x,t.x),i=Math.min(o.y,t.y),n=Math.max(o.x+o.w,t.x+t.w),s=Math.max(o.y+o.h,t.y+t.h),r=n-e,a=s-i;return{x:e,y:i,w:r,h:a}}return t||o}function Po(o,t){if(o&&t){const e=Math.min(o.originX,t.originX),i=Math.min(o.originY,t.originY),n=Math.max(o.originX+o.width,t.originX+t.width),s=Math.max(o.originY+o.height,t.originY+t.height),r=n-e,a=s-i;return{originX:e,originY:i,width:r,height:a}}return t||o}function ri(o,t=0){const e={x:0,y:0,w:0,h:0};let i=1/0,n=1/0,s=-1/0,r=-1/0;return o.forEach(a=>{const[c,l]=a.XY;i=Math.min(i,c-t),n=Math.min(n,l-t),s=Math.max(s,c+t),r=Math.max(r,l+t)}),e.x=i,e.y=n,e.w=s-i,e.h=r-n,e}function Ug(o,t){return!(o.x+o.w<t.x||o.x>t.x+t.w||o.y+o.h<t.y||o.y>t.y+t.h)}function $g(o,t){return{x:o.x+t[0],y:o.y+t[1],w:o.w,h:o.h}}function Bg(o,t){const e=new S(o.x,o.y),i=new S(o.x+o.w,o.y),n=new S(o.x+o.w,o.y+o.h),s=new S(o.x,o.y+o.h),r=new S(o.x+o.w/2,o.y+o.h/2),a=Math.PI*t/180,c=S.RotWith(e,r,a),l=S.RotWith(i,r,a),d=S.RotWith(n,r,a),g=S.RotWith(s,r,a);return ri([c,l,d,g])}function Fg(o,t){const e=new S(o.x,o.y),i=new S(o.x+o.w,o.y),n=new S(o.x+o.w,o.y+o.h),s=new S(o.x,o.y+o.h),r=new S(o.x+o.w/2,o.y+o.h/2),a=new S(t[0],t[1]),c=S.ScaleWOrigin(e,a,r),l=S.ScaleWOrigin(i,a,r),d=S.ScaleWOrigin(n,a,r),g=S.ScaleWOrigin(s,a,r);return ri([c,l,d,g])}function Qg(o,t,e){const i=new S(t[0],t[1]);for(let n=0;n<o.length;n+=3){const s=new S(o[n],o[n+1]),r=Math.PI*e/180,a=S.RotWith(s,i,r);o[n]=a.x,o[n+1]=a.y}}function Hg(o,t,e){const i=new S(t[0],t[1]);for(let n=0;n<o.length;n+=3){const s=new S(o[n],o[n+1]),r=new S(e[0],e[1]);if(n<o.length-3){const c=new S(o[n+3],o[n+4]),l=S.Tan(c,s).per().mul(o[n+2]).mulV(r).len();o[n+2]=l}else if(n===o.length-3){const c=new S(o[n-3],o[n-2]),l=S.Tan(s,c).per().mul(o[n+2]).mulV(r).len();o[n+2]=l}const a=S.ScaleWOrigin(s,r,i);o[n]=a.x,o[n+1]=a.y}}function Ro(o,t){return o[0]>=t.x&&o[0]<=t.x+t.w&&o[1]>=t.y&&o[1]<=t.y+t.h}function Zg(o,t){const e=o<=t?1:o/t,i=t<=o?1:t/o;return[e,i]}function Vg(o){return`${wt(o.x)},${wt(o.y)} `}function Gg(o,t){return`${wt((o.x+t.x)/2)},${wt((o.y+t.y)/2)} `}function wt(o){return+o.toFixed(4)}const Xe=(o,t)=>new Promise(function(e){window.requestIdleCallback?requestIdleCallback(()=>{e(1)},{timeout:t}):setTimeout(()=>{e(2)},t)}).then(function(){o()},()=>{o()}),We=o=>{const t=(o==null?void 0:o.webkitBackingStorePixelRatio)||(o==null?void 0:o.mozBackingStorePixelRatio)||(o==null?void 0:o.msBackingStorePixelRatio)||(o==null?void 0:o.oBackingStorePixelRatio)||(o==null?void 0:o.backingStorePixelRatio)||1;return Math.max(1,(window.devicePixelRatio||1)/t)};class Wo{constructor(t){p(this,"plugin");p(this,"uid");this.plugin=t,this.uid=t.displayer.uid}getNamespaceData(){var t;return J.toJS((t=this.plugin)==null?void 0:t.attributes[this.namespace])||{}}getUidFromKey(t){return t.split(Se).length===2&&t.split(Se)[0]||this.uid}isLocalId(t){return t.split(Se).length===1}getLocalId(t){return t.split(Se)[1]}isSelector(t){return this.getLocalId(t)===E}}const Ee=class Ee extends Wo{constructor(e,i){super(e);p(this,"namespace");p(this,"serviceStorage",{});p(this,"storage",{});p(this,"stateDisposer");p(this,"asyncClockState",!1);Ee.syncInterval=(i||Ee.syncInterval)*.5,this.namespace=Ee.namespace,this.serviceStorage=this.getNamespaceData(),this.storage=ne(this.serviceStorage)}getViewIdBySecenPath(e){const i=this.getNamespaceData();for(const[n,s]of Object.entries(i))for(const r of Object.keys(s))if(r===e)return n}getScenePathData(e){const i=this.getNamespaceData();for(const n of Object.values(i))for(const s of Object.keys(n))if(s===e)return ne(n[s])}getStorageData(e,i){const n=this.getNamespaceData();return n[e]&&ne(n[e][i])||void 0}hasSelector(e,i){const n=this.storage&&this.storage[e]&&this.storage[e][i];return!!(n&&Object.keys(n).find(s=>this.isOwn(s)&&this.getLocalId(s)===E))}addStorageStateListener(e){this.stateDisposer=J.autorun(async()=>{const i=this.getNamespaceData(),n=this.diffFun(this.serviceStorage,i);this.serviceStorage=i;for(const[s,r]of Object.entries(n))if(r&&r.newValue===void 0){const{viewId:a,scenePath:c}=r;a&&c&&this.storage[a]&&delete this.storage[a][c][s]}else if(r&&r.newValue){const{viewId:a,scenePath:c}=r;this.storage[a]||(this.storage[a]={}),this.storage[a][c]||(this.storage[a][c]={}),this.storage[a][c][s]=ne(r.newValue)}Object.keys(n).length>0&&e(n)})}removeStorageStateListener(){this.stateDisposer&&this.stateDisposer()}diffFun(e,i){const n=Ie(e),s=Ie(i),r={};for(const a of n){if(ce(e[a],i[a]))continue;const c=this.diffFunByscenePath(e[a]||{},i[a]||{},a);Object.assign(r,c)}for(const a of s)if(!n.includes(a)){const c=this.diffFunByscenePath(e[a]||{},i[a]||{},a);Object.assign(r,c)}return r}diffFunByscenePath(e,i,n){const s=Ie(e),r=Ie(i),a={};for(const c of s){if(ce(e[c],i[c]))continue;const l=this.diffFunByKeys(e[c]||{},i[c]||{},c,n);Object.assign(a,l)}for(const c of r)if(!s.includes(c)){const l=this.diffFunByKeys(e[c]||{},i[c]||{},c,n);Object.assign(a,l)}return a}diffFunByKeys(e,i,n,s){const r=Ie(e),a=Ie(i),c={};for(const l of r){if(a.includes(l)){if(ce(e[l],i[l]))continue;c[l]={oldValue:e[l],newValue:i[l],viewId:s,scenePath:n};continue}c[l]={oldValue:e[l],newValue:void 0,viewId:s,scenePath:n}}for(const l of a)r.includes(l)||(c[l]={oldValue:void 0,newValue:i[l],viewId:s,scenePath:n});return c}transformKey(e){return this.uid+Se+e}isOwn(e){return e.split(Se)[0]===this.uid}dispatch(e){const{type:i,workId:n,ops:s,index:r,opt:a,toolsType:c,removeIds:l,updateNodeOpt:d,op:g,selectIds:h,isSync:M,scenePath:y,viewId:v}=e;if(v)switch(i){case D.Clear:const f={};y&&this.storage[v]&&this.storage[v][y]?(delete this.storage[v][y],this.setState(f,{isSync:M,viewId:v,scenePath:y})):this.storage[v]&&(delete this.storage[v],this.setState(f,{isSync:M,viewId:v,scenePath:""}));break;case D.CreateWork:if(y&&n&&c&&a){const z=this.isLocalId(n.toString())?this.transformKey(n):n;this.updateValue(z.toString(),{type:D.CreateWork,workId:n,toolsType:c,opt:a},{isSync:M,viewId:v,scenePath:y})}break;case D.DrawWork:if(y&&n&&typeof r=="number"&&(g!=null&&g.length)){const z=this.isLocalId(n.toString())?this.transformKey(n):n,C=this.storage[v]&&this.storage[v][y]&&this.storage[v][y][z]||void 0,L=r?((C==null?void 0:C.op)||[]).slice(0,r).concat(g):g||(C==null?void 0:C.op);C&&L&&this.updateValue(z.toString(),{...C,type:D.DrawWork,op:L,index:r},{isSync:M,viewId:v,scenePath:y})}break;case D.FullWork:if(y&&n){const z=this.isLocalId(n.toString())?this.transformKey(n):n,C=this.storage[v]&&this.storage[v][y]&&this.storage[v][y][z]||void 0,L=d||(C==null?void 0:C.updateNodeOpt),b=c||(C==null?void 0:C.toolsType),R=a||(C==null?void 0:C.opt),U=s||(C==null?void 0:C.ops);b&&R&&this.updateValue(z.toString(),{type:D.FullWork,updateNodeOpt:L,workId:z,toolsType:b,opt:R,ops:U},{isSync:M,viewId:v,scenePath:y})}break;case D.RemoveNode:if(y&&(l!=null&&l.length)){const z=l.map(C=>this.isLocalId(C+"")?this.transformKey(C):C);this.storage[v]&&this.storage[v][y]&&Object.keys(this.storage[v][y]).map(C=>{z!=null&&z.includes(C)&&this.updateValue(C,void 0,{isSync:M,viewId:v,scenePath:y})})}break;case D.UpdateNode:if(y&&n&&(d||s||a)){const z=this.isLocalId(n.toString())?this.transformKey(n):n,C=this.storage[v]&&this.storage[v][y]&&this.storage[v][y][z]||void 0;C&&(C.updateNodeOpt=d,(s||g)&&(C.ops=s,C.op=g),a&&(C.opt=a),C.type=D.FullWork,this.updateValue(z.toString(),C,{isSync:M,viewId:v,scenePath:y}))}break;case D.Select:if(!y)return;let I;h!=null&&h.length&&(I=h.map(z=>this.isLocalId(z+"")?this.transformKey(z):z));const m=this.transformKey(E),w=this.storage[v]&&this.storage[v][y]&&this.storage[v][y][m]||void 0,T=a||(w==null?void 0:w.opt);I&&this.checkOtherSelector(m,I,{isSync:M,viewId:v,scenePath:y}),this.updateValue(m,I&&{type:D.Select,toolsType:N.Selector,opt:T,selectIds:I},{isSync:M,viewId:v,scenePath:y});break}}checkOtherSelector(e,i,n){const{viewId:s,scenePath:r}=n;for(const a of Object.keys(this.storage[s][r]))if(a!==e&&this.getLocalId(a)===E){const c=this.storage[s][r][a];if(c&&c.selectIds){const l=c.selectIds.filter(d=>!i.includes(d));l.length>0&&(c.selectIds=l),this.updateValue(a,l.length&&c||void 0,n)}}}setState(e,i){const{viewId:n,scenePath:s}=i,r=Ie(e);for(let a=0;a<r.length;a++){const c=r[a],l=e[c];typeof l<"u"?(this.storage[n]||(this.storage[n]={}),this.storage[n][s]||(this.storage[n][s]={}),this.storage[n][s][c]=l):delete this.storage[n][s][c]}this.runSyncService(i)}updateValue(e,i,n){const{viewId:s,scenePath:r}=n;i===void 0?delete this.storage[s][r][e]:(this.storage[s]||(this.storage[s]={}),this.storage[s][r]||(this.storage[s][r]={}),this.storage[s][r][e]=i),this.runSyncService(n)}runSyncService(e){this.asyncClockState||(this.asyncClockState=!0,setTimeout(()=>{e.isSync?(this.asyncClockState=!1,this.syncSerivice(e.isAfterUpdate)):Xe(()=>{this.asyncClockState=!1,this.syncSerivice(e.isAfterUpdate)},Ee.syncInterval)},e!=null&&e.isSync?0:Ee.syncInterval))}syncSerivice(e=!1){const i=Ie(this.serviceStorage),n=Ie(this.storage),s=new Map;for(const r of i){if(!n.includes(r)){s.set(r,void 0);continue}ce(this.serviceStorage[r],this.storage[r])||this.syncViewData(r,e)}for(const r of n)i.includes(r)||s.set(r,this.storage[r]);if(s.size>5)this.syncStorageView(this.storage,e);else for(const[r,a]of s.entries())this.syncUpdataView(r,a,e)}syncViewData(e,i=!1){const n=Ie(this.serviceStorage[e]),s=Ie(this.storage[e]),r=new Map;for(const a of n){if(!s.includes(a)){r.set(a,void 0);continue}ce(this.serviceStorage[e][a],this.storage[e][a])||this.syncScenePathData(e,a,i)}for(const a of s)n.includes(a)||r.set(a,this.storage[e][a]);if(r.size>5)this.syncStorageScenePath(e,this.storage[e],i);else for(const[a,c]of r.entries())this.syncUpdataScenePath(e,a,c,i)}syncScenePathData(e,i,n=!1){const s=Ie(this.serviceStorage[e][i]),r=Ie(this.storage[e][i]),a=new Map;for(const c of s){if(!r.includes(c)){a.set(c,void 0);continue}ce(this.serviceStorage[e][i][c],this.storage[e][i][c])||a.set(c,this.storage[e][i][c])}for(const c of r)s.includes(c)||a.set(c,this.storage[e][i][c]);if(a.size>5)this.syncStorageKey(e,i,this.storage[e][i],n);else for(const[c,l]of a.entries())this.syncUpdataKey(e,i,c,l,n)}syncUpdataView(e,i,n=!1){var r;Object.keys(this.serviceStorage).length?(n||(i===void 0?delete this.serviceStorage[e]:this.serviceStorage[e]=ne(i)),(r=this.plugin)==null||r.updateAttributes([this.namespace,e],i)):this.syncStorageView(this.storage,n)}syncStorageView(e,i=!1){var n;i||e&&(this.serviceStorage=ne(e)),(n=this.plugin)==null||n.updateAttributes([this.namespace],e)}syncUpdataScenePath(e,i,n,s=!1){var a;Object.keys(this.serviceStorage[e]).length?(s||(n===void 0?delete this.serviceStorage[e][i]:this.serviceStorage[e][i]=n),(a=this.plugin)==null||a.updateAttributes([this.namespace,e,i],n)):this.syncStorageScenePath(e,this.storage[e],s)}syncStorageScenePath(e,i,n=!1){var s;n||i&&(this.serviceStorage[e]=i),(s=this.plugin)==null||s.updateAttributes([this.namespace,e],i)}syncUpdataKey(e,i,n,s,r=!1){var c;Object.keys(this.serviceStorage[e][i]).length?(r||(s===void 0?delete this.serviceStorage[e][i][n]:this.serviceStorage[e][i][n]=s),(c=this.plugin)==null||c.updateAttributes([this.namespace,e,i,n],s)):this.syncStorageKey(e,i,this.storage[e][i],r)}syncStorageKey(e,i,n,s=!1){var r;s||(this.serviceStorage[e][i]=n),(r=this.plugin)==null||r.updateAttributes([this.namespace,e,i],n)}keyTransformWorkId(e){const i=e.split(Se);return i.length===2?i[1]:e}destroy(){this.removeStorageStateListener(),this.serviceStorage={},this.storage={}}};p(Ee,"namespace","PluginState"),p(Ee,"syncInterval",500);let Bt=Ee;class Jg{constructor(){p(this,"roomMembers",[]);p(this,"onChangeHooks",new Set)}setRoomMembers(t){this.executChangeUidHook(this.roomMembers,t),this.roomMembers=t}executChangeUidHook(t,e){const i={online:e.map(n=>{var s;return((s=n.payload)==null?void 0:s.uid)||n.session}),offline:t.map(n=>{var s;return((s=n.payload)==null?void 0:s.uid)||n.session})};this.onChangeHooks.forEach(n=>n(i))}getRoomMember(t){return this.roomMembers.find(e=>{var i;return((i=e.payload)==null?void 0:i.uid)===t})}isOnLine(t){return!this.getRoomMember(t)}onUidChangeHook(t){this.onChangeHooks.add(t)}destroy(){this.onChangeHooks.clear()}}var xe=(o=>(o[o.Text=1]="Text",o[o.Shape=2]="Shape",o))(xe||{});const fe=class fe{createProxy(t){const e=new Proxy(t,{get(i,n,s){const r=fe.interceptors.hasOwnProperty(n)?fe.interceptors:i;return Reflect.get(r,n,s)}});return fe.proxyToRaw.set(e,t),e}};p(fe,"proxyToRaw",new WeakMap),p(fe,"interceptors",{entries(...t){return fe.proxyToRaw.get(this).entries(...t)},forEach(...t){return fe.proxyToRaw.get(this).forEach(...t)},size(){return fe.proxyToRaw.get(this).size},get(t){return fe.proxyToRaw.get(this).get(t)},set(t,e){return fe.proxyToRaw.get(this).set(t,e)},delete(t,e){return fe.proxyToRaw.get(this).delete(t)},clear(){return fe.proxyToRaw.get(this).clear()}});let Be=fe;class Kg{constructor(t){p(this,"internalMsgEmitter");p(this,"control");p(this,"editors");p(this,"activeId");p(this,"undoTickerId");p(this,"proxyMap");p(this,"taskqueue",new Map);const{control:e,internalMsgEmitter:i}=t;this.control=e,this.internalMsgEmitter=i;const n=new Map;this.proxyMap=new Be;const s=this,r=Be.interceptors.set;Be.interceptors.set=function(c,l){return s.interceptors.set(c,l),r.call(this,c,l)};const a=Be.interceptors.delete;Be.interceptors.delete=function(c,l){return s.interceptors.delete(c,l),a.call(this,c)},this.editors=this.proxyMap.createProxy(n)}get collector(){return this.control.collector}filterEditor(t){const e=new Map;return this.editors.forEach((i,n)=>{i.viewId===t&&e.set(n,i)}),e}get interceptors(){return{set:(t,e)=>{var M,y,v,f,I,m,w,T;if(!this.collector)return!0;const{viewId:i,scenePath:n,canSync:s,canWorker:r,type:a,opt:c,dataType:l}=e;if(!r&&!s)return!0;const g=((M=this.collector)==null?void 0:M.isLocalId(t))?(y=this.collector)==null?void 0:y.transformKey(t):t,h=((v=this.collector)==null?void 0:v.storage[i])&&this.collector.storage[i][n]&&this.collector.storage[i][n][g]||void 0;h?h.toolsType===N.Text&&(r&&(this.control.worker.queryTaskBatchData({workId:t,msgType:D.UpdateNode}).forEach(z=>{var C;(C=this.control.worker)==null||C.taskBatchData.delete(z)}),(w=this.control.worker)==null||w.taskBatchData.add({workId:t,msgType:D.UpdateNode,dataType:l||V.Local,toolsType:N.Text,opt:c,viewId:i,scenePath:n}),(T=this.control.worker)==null||T.runAnimation()),s&&Xe(()=>{var z;(z=this.collector)==null||z.dispatch({type:D.UpdateNode,workId:t,toolsType:N.Text,opt:c,viewId:i,scenePath:n})},this.control.worker.maxLastSyncTime)):a===xe.Text&&(s&&((f=this.collector)==null||f.dispatch({type:c.text&&D.FullWork||D.CreateWork,workId:t,toolsType:N.Text,opt:c,isSync:!0,viewId:i,scenePath:n})),r&&((I=this.control.worker)==null||I.taskBatchData.add({workId:t,msgType:c.text&&D.FullWork||D.CreateWork,dataType:l||V.Local,toolsType:N.Text,opt:c,viewId:i,scenePath:n}),(m=this.control.worker)==null||m.runAnimation()))},delete:t=>{var a,c;if(!this.collector)return!0;const e=this.editors.get(t);if(!e)return!0;const{viewId:i,scenePath:n,canSync:s,canWorker:r}=e;if(!r&&!s)return!0;r&&((a=this.control.worker)==null||a.taskBatchData.add({workId:t,toolsType:N.Text,msgType:D.RemoveNode,dataType:V.Local,viewId:i,scenePath:n}),(c=this.control.worker)==null||c.runAnimation()),s&&Xe(()=>{var l;(l=this.collector)==null||l.dispatch({type:D.RemoveNode,removeIds:[t],toolsType:N.Text,viewId:i,scenePath:n})},this.control.worker.maxLastSyncTime)},clear(){return!0}}}computeTextActive(t,e){var s,r,a,c;const i=(s=this.control.viewContainerManager)==null?void 0:s.transformToScenePoint(t,e),n=(r=this.control.viewContainerManager)==null?void 0:r.getCurScenePath(e);e&&n&&((a=this.control.worker)==null||a.taskBatchData.add({msgType:D.GetTextActive,dataType:V.Local,op:i,viewId:e,scenePath:n}),(c=this.control.worker)==null||c.runAnimation())}checkEmptyTextBlur(){if(this.activeId){const t=this.editors.get(this.activeId),e=(t==null?void 0:t.opt.text)&&(t==null?void 0:t.opt.text.replace(/\s*,/g,"")),i=t==null?void 0:t.viewId;e?this.unActive():this.delete(this.activeId,!0,!0),this.undoTickerId&&i&&(this.internalMsgEmitter.emit("undoTickerEnd",this.undoTickerId,i,!0),this.undoTickerId=void 0)}}onCameraChange(t,e){var i,n;for(const[s,r]of this.editors.entries())if(r.viewId===e){const{boxPoint:a,boxSize:c}=r.opt,l=a&&((i=this.control.viewContainerManager)==null?void 0:i.transformToOriginPoint(a,r.viewId)),d=(n=this.control.viewContainerManager)==null?void 0:n.getCurScenePath(e);if(d&&e){const g={x:l&&l[0]||0,y:l&&l[1]||0,w:c&&c[0]||0,h:c&&c[1]||0,opt:r.opt,scale:t.scale,type:xe.Text,viewId:e,scenePath:d,canWorker:!1,canSync:!1};this.editors.set(s,g),this.control.viewContainerManager.setActiveTextEditor(e,this.activeId)}}}onServiceDerive(t){var y,v;const{workId:e,opt:i,msgType:n,viewId:s,scenePath:r,dataType:a}=t;if(!e||!s||!r)return;const c=e.toString();if(n===D.RemoveNode){console.log("onServiceDerive-d",c),this.delete(c,!0,!0);return}const{boxPoint:l,boxSize:d}=i,g=l&&((y=this.control.viewContainerManager)==null?void 0:y.transformToOriginPoint(l,s)),h=this.control.viewContainerManager.getView(s),M={x:g&&g[0]||0,y:g&&g[1]||0,w:d&&d[0]||0,h:d&&d[1]||0,opt:i,type:xe.Text,canWorker:!0,canSync:!1,dataType:a,scale:((v=h==null?void 0:h.cameraOpt)==null?void 0:v.scale)||1,viewId:s,scenePath:r};this.editors.set(c,M),a===V.Service&&i.workState===j.Done&&this.activeId===c&&(this.activeId=void 0),console.log("onServiceDerive---1",c,M.opt.text,M.opt.uid,this.activeId,a),this.control.viewContainerManager.setActiveTextEditor(s,this.activeId)}updateForViewEdited(t,e){var n;this.editors.set(t,e);const i=(n=this.taskqueue.get(t))==null?void 0:n.resolve;i&&i(e)}active(t){var i;const e=this.editors.get(t);e&&e.viewId&&(e.opt.workState=j.Start,e.opt.uid=(i=this.collector)==null?void 0:i.uid,this.activeId=t,e.canWorker=!0,e.canSync=!0,this.editors.set(t,e),this.control.viewContainerManager.setActiveTextEditor(e.viewId,this.activeId))}unActive(){const t=this.activeId&&this.editors.get(this.activeId);t&&t.viewId&&this.activeId&&(t.opt.workState=j.Done,t.opt.uid=void 0,t.canWorker=!0,t.canSync=!0,this.editors.set(this.activeId,t),this.activeId=void 0,this.control.viewContainerManager.setActiveTextEditor(t.viewId,this.activeId))}createTextForMasterController(t,e){var r;const{workId:i,isActive:n,...s}=t;s.opt.zIndex=this.getMaxZIndex()+1,s.opt.uid=(r=this.collector)==null?void 0:r.uid,e&&(this.undoTickerId=e,this.internalMsgEmitter.emit("undoTickerStart",this.undoTickerId,s.viewId)),n&&(this.activeId=i),s.dataType=V.Local,s.canWorker=!0,s.canSync=!0,this.editors.set(i,s),this.control.viewContainerManager.setActiveTextEditor(s.viewId,this.activeId)}updateTextForMasterController(t,e){var r;const{workId:i,...n}=t;e&&(this.undoTickerId=e,this.internalMsgEmitter.emit("undoTickerStart",this.undoTickerId,n.viewId));const s=this.editors.get(i)||{};n.opt&&(n.opt.uid=(r=this.collector)==null?void 0:r.uid),n.dataType=V.Local,this.editors.set(i,{...s,...n}),this.control.viewContainerManager.setActiveTextEditor(n.viewId,this.activeId)}async updateTextControllerWithEffectAsync(t,e){var l;const{workId:i,...n}=t;e&&(this.undoTickerId=e,this.internalMsgEmitter.emit("undoTickerStart",this.undoTickerId,n.viewId));const s=this.editors.get(i)||{};if(n.opt&&(n.opt.uid=(l=this.collector)==null?void 0:l.uid),n.dataType=V.Local,this.editors.set(i,{...s,...n}),this.control.viewContainerManager.setActiveTextEditor(n.viewId,this.activeId),this.taskqueue.has(i))return;const r=setTimeout(()=>{var g;const d=(g=this.taskqueue.get(i))==null?void 0:g.resolve;d&&d(void 0)},20),a=await new Promise(d=>{this.taskqueue.set(i,{resolve:d,clocker:r})}),c=this.taskqueue.get(i);return c&&(c.clocker&&clearTimeout(c.clocker),this.taskqueue.delete(i)),this.taskqueue.delete(i),a}updateTextForWorker(t,e){const{workId:i,isActive:n,...s}=t;e&&(this.undoTickerId=e,this.internalMsgEmitter.emit("undoTickerStart",this.undoTickerId,s.viewId));const a={...this.editors.get(i)||{},...s};if(a.waitWorker&&delete a.waitWorker,n){a.canWorker=!1,a.canSync=!1,this.editors.set(i,a),this.active(i);return}this.editors.set(i,a),this.control.viewContainerManager.setActiveTextEditor(s.viewId,this.activeId)}get(t){return this.editors.get(t)}delete(t,e,i){const n=this.editors.get(t);if(n){const s=n.viewId;n.canSync=e,n.canWorker=i,this.editors.delete(t),this.activeId===t&&(this.activeId=void 0),this.control.viewContainerManager.setActiveTextEditor(s,this.activeId)}}deleteBatch(t,e,i){const n=new Set;for(const s of t){const r=this.editors.get(s);if(r){const a=r.viewId;r.canSync=e,r.canWorker=i,this.editors.delete(s),this.activeId===s&&(this.activeId=void 0),n.add(a)}}for(const s of n)this.control.viewContainerManager.setActiveTextEditor(s,this.activeId)}clear(t,e){this.editors.forEach((i,n)=>{i.viewId===t&&(e&&(i.canSync=!1),i.canWorker=!1,this.editors.delete(n))}),this.activeId=void 0,this.control.viewContainerManager.setActiveTextEditor(t,this.activeId)}destory(){this.editors.clear(),this.activeId=void 0}getMaxZIndex(){let t=0;return this.editors.forEach(e=>{e.opt.zIndex&&e.opt.zIndex>t&&(t=e.opt.zIndex)}),t}}const Oe=class Oe extends Wo{constructor(e,i){super(e);p(this,"serviceStorage",{});p(this,"storage",{});p(this,"stateDisposer");p(this,"asyncClockTimer");p(this,"namespace");this.namespace=Oe.namespace,Oe.syncInterval=(i||Oe.syncInterval)*.5,this.serviceStorage=this.getNamespaceData(),this.storage=ne(this.serviceStorage)}addStorageStateListener(e){this.stateDisposer=J.autorun(async()=>{const i=this.getNamespaceData(),n=this.getDiffMap(this.serviceStorage,i);this.serviceStorage=i,n.size&&e(n)})}getDiffMap(e,i){const n=new Map;for(const[s,r]of Object.entries(i))s!==this.uid&&(r&&ce(e[s],r)||r&&n.set(s,r));return n}removeStorageStateListener(){this.stateDisposer&&this.stateDisposer()}transformKey(e){return this.uid+Se+e}isOwn(e){return e===this.uid}dispatch(e){const{type:i,op:n,isSync:s,viewId:r}=e;switch(i){case He.Cursor:n&&this.pushValue(this.uid,{type:He.Cursor,op:n,viewId:r},{isSync:s});break}}pushValue(e,i,n){var s;this.storage[e]||(this.storage[e]=[]),(s=this.storage[e])==null||s.push(i),this.runSyncService(n)}clearValue(e){var n;this.storage[e]=void 0,Object.keys(this.serviceStorage).length&&((n=this.plugin)==null||n.updateAttributes([this.namespace,e],void 0))}runSyncService(e){this.asyncClockTimer||(this.asyncClockTimer=setTimeout(()=>{e!=null&&e.isSync?(this.asyncClockTimer=void 0,this.syncSerivice()):Xe(()=>{this.asyncClockTimer=void 0,this.syncSerivice()},Oe.syncInterval)},e!=null&&e.isSync?0:Oe.syncInterval))}syncSerivice(){var i;Object.keys(this.serviceStorage).length?Object.keys(this.storage).forEach(n=>{var s;(s=this.plugin)==null||s.updateAttributes([this.namespace,n],this.storage[n])}):(i=this.plugin)==null||i.updateAttributes(this.namespace,this.storage),this.storage={}}destroy(){this.removeStorageStateListener(),this.storage={},this.serviceStorage={}}};p(Oe,"syncInterval",100),p(Oe,"namespace","PluginEvent");let Ft=Oe;class qg{constructor(t){p(this,"expirationTime",5e3);p(this,"internalMsgEmitter");p(this,"control");p(this,"eventCollector");p(this,"roomMember");p(this,"animationId");p(this,"removeTimerId");p(this,"asyncEndInfo");p(this,"animationPointWorkers",new Map);p(this,"animationDrawWorkers",new Map);p(this,"cursorInfoMap",new Map);const{control:e,internalMsgEmitter:i}=t;this.internalMsgEmitter=i,this.control=e,this.roomMember=e.roomMember}activeCollector(){var t,e;this.control.plugin&&(this.eventCollector=new Ft(this.control.plugin,Math.min(((e=(t=this.control.pluginOptions)==null?void 0:t.syncOpt)==null?void 0:e.interval)||100,100)),this.eventCollector.addStorageStateListener(i=>{i.forEach((n,s)=>{var r;if(((r=this.eventCollector)==null?void 0:r.uid)!==s){const a=new Map;n==null||n.forEach(c=>{if(c&&c.type===He.Cursor&&c.op&&c.viewId){const l=[];for(let d=0;d<c.op.length;d+=2){const g=c.op[d],h=c.op[d+1];if(ae(g)&&ae(h)){const M=this.control.viewContainerManager.transformToOriginPoint([g,h],c.viewId);l.push(M[0],M[1])}else l.push(g,h)}a.set(c.viewId,l)}}),a.size&&(this.activePointWorkShape(s,a),this.runAnimation())}})}))}onFocusViewChange(){const t=this.control.viewContainerManager.focuedViewId;for(const i of this.animationDrawWorkers.keys()){const n=this.getUidAndviewId(i).uid,s=this.getUidAndviewId(i).viewId;s!==t&&this.activeDrawWorkShape(n,[void 0,void 0],j.Done,s)}const e=new Map;for(const i of this.animationPointWorkers.keys()){const n=this.getUidAndviewId(i).uid,s=this.getUidAndviewId(i).viewId;if(s!==t){const r=e.get(n)||new Map;r.set(s,[void 0,void 0]),e.set(n,r)}}if(e.size)for(const[i,n]of e.entries())this.activePointWorkShape(i,n);this.runAnimation()}activePointWorkShape(t,e){var n;if(this.roomMember.getRoomMember(t))for(const[s,r]of e.entries()){const a=this.getKey(t,s);let c=!1;const l=this.control.viewContainerManager.getAllViews().map(g=>g==null?void 0:g.id);for(const g of l)if(g&&g!==s){const h=this.getKey(t,g),M=this.animationDrawWorkers.get(h);if((M==null?void 0:M.workState)===j.Start||(M==null?void 0:M.workState)===j.Doing||!1){c=!0;break}else if(this.removeTimerId&&(clearTimeout(this.removeTimerId),this.removeTimerId=void 0),M)this.activeDrawWorkShape(t,[void 0,void 0],j.Done,g),this.runAnimation();else{const v=this.animationPointWorkers.get(h);if(v)v.animationWorkData=[void 0,void 0],v.animationIndex=0,v.freeze=!1;else{const f={animationIndex:0,animationWorkData:[void 0,void 0],freeze:!1};this.animationPointWorkers.set(h,f)}}}const d=this.animationPointWorkers.get(a);if(r){if(!d){const g={animationIndex:0,animationWorkData:r,freeze:c};(n=this.animationPointWorkers)==null||n.set(a,g);return}d.animationWorkData=r,d.animationIndex=0,d.freeze=c}}}getKey(t,e){return`${t}${Se}${e}`}getUidAndviewId(t){const[e,i]=t.split(Se);return{uid:e,viewId:i}}animationCursor(){this.animationId=void 0;const t=Date.now();this.animationPointWorkers.forEach((e,i)=>{const{uid:n,viewId:s}=this.getUidAndviewId(i);if(e.freeze)return;const a=e.animationIndex,c=this.roomMember.getRoomMember(n);if(c){e.animationWorkData.length-1>a&&(e.animationIndex=a+2);const l=e.animationWorkData[a],d=e.animationWorkData[a+1],g=this.cursorInfoMap.get(s)||new Map;ae(l)&&ae(d)?g.set(c.memberId,{x:l,y:d,roomMember:c,timestamp:t}):g.has(c.memberId)&&g.delete(c.memberId),g.size?this.cursorInfoMap.set(s,g):this.cursorInfoMap.has(s)&&(this.cursorInfoMap.delete(s),this.internalMsgEmitter.emit([W.Cursor,s],[])),e.animationWorkData.length-1<=e.animationIndex&&this.animationPointWorkers.delete(i)}}),this.animationDrawWorkers.forEach((e,i)=>{const{uid:n,viewId:s}=this.getUidAndviewId(i),r=e.animationIndex,a=this.roomMember.getRoomMember(n);if(a){e.animationWorkData.length-1>r&&(e.animationIndex=r+2);const c=e.animationWorkData[r],l=e.animationWorkData[r+1],d=this.cursorInfoMap.get(s)||new Map;ae(c)&&ae(l)?d.set(a.memberId,{x:c,y:l,roomMember:a,timestamp:t}):d.has(a.memberId)&&d.delete(a.memberId),d.size?this.cursorInfoMap.set(s,d):this.cursorInfoMap.has(s)&&(this.cursorInfoMap.delete(s),this.internalMsgEmitter.emit([W.Cursor,s],[])),e.animationWorkData.length-1<=e.animationIndex&&this.animationDrawWorkers.delete(i)}});for(const[e,i]of this.cursorInfoMap)if(i){const n=[],s=[];for(const[r,a]of i.entries()){const{timestamp:c,...l}=a;c+this.expirationTime<t?s.push(r):n.push(l)}if(s.length)for(const r of s)i.delete(r);i.size?this.cursorInfoMap.set(e,i):this.cursorInfoMap.delete(e),this.internalMsgEmitter.emit([W.Cursor,e],n)}(this.animationPointWorkers.size||this.animationDrawWorkers.size||this.cursorInfoMap.size)&&this.runAnimation()}activeDrawWorkShape(t,e,i,n){var c,l;if(!this.roomMember.getRoomMember(t))return;const r=this.getKey(t,n);if(i===j.Start){const d=this.animationPointWorkers.get(r);if(d)d.animationWorkData=[],d.animationIndex=0,d.freeze=!0;else{const g={animationIndex:0,animationWorkData:[],freeze:!0};(c=this.animationDrawWorkers)==null||c.set(r,g)}}else if(i===j.Done){const d=this.animationPointWorkers.get(r);d&&(d.freeze=!1)}const a=this.animationDrawWorkers.get(r);if(e){if(!a){const d={animationIndex:0,animationWorkData:e,workState:i};(l=this.animationDrawWorkers)==null||l.set(r,d);return}a.animationWorkData=e,a.animationIndex=0,a.workState=i}}runAnimation(){this.animationId||(this.animationId=requestAnimationFrame(this.animationCursor.bind(this)))}sendEvent(t,e){var i;(i=this.eventCollector)==null||i.dispatch({type:He.Cursor,op:ae(t[0])&&ae(t[1])&&this.control.viewContainerManager.transformToScenePoint(t,e)||[void 0,void 0],viewId:e})}collectServiceCursor(t){const{op:e,uid:i,workState:n,viewId:s}=t;if(i&&e&&n&&s){const r=this.control.viewContainerManager.focuedViewId;if(n===j.Done){if(s!==r){this.activeDrawWorkShape(i,[void 0,void 0],n,s),this.runAnimation();return}this.removeTimerId&&(clearTimeout(this.removeTimerId),this.removeTimerId=void 0,this.asyncEndInfo&&this.asyncEndInfo.viewId!==s&&this.asyncEndInfo.uid===i&&this.activeDrawWorkShape(i,[void 0,void 0],j.Done,this.asyncEndInfo.viewId)),this.asyncEndInfo={uid:i,viewId:s},this.removeTimerId=setTimeout(()=>{this.removeTimerId=void 0,this.activeDrawWorkShape(i,[void 0,void 0],j.Done,s),this.runAnimation()},this.expirationTime)}if(ae(e[0])&&ae(e[1])){const a=this.control.viewContainerManager.transformToOriginPoint(e,s);this.activeDrawWorkShape(i,a,n,s)}this.runAnimation()}}unabled(){var t;(t=this.eventCollector)==null||t.dispatch({type:He.Cursor,op:[void 0,void 0],viewId:this.control.viewContainerManager.focuedViewId})}destroy(){var t;(t=this.eventCollector)==null||t.destroy()}}class Te{constructor(){p(this,"emtType");p(this,"control");p(this,"mainEngine")}static dispatch(t,e,i){var n;(n=me.InternalMsgEmitter)==null||n.emit([t,e],i)}get serviceColloctor(){return this.control.collector}registerForMainEngine(t,e){return this.emtType=t,this.control=e,this.mainEngine=e.worker,this.mainEngine.internalMsgEmitter.on([this.emtType,this.emitEventType],this.collect.bind(this)),this}destroy(){this.emtType&&this.mainEngine&&this.mainEngine.internalMsgEmitter.off([this.emtType,this.emitEventType],this.collect.bind(this))}collectForLocalWorker(t){var e,i,n;for(const[s,r]of t)(e=this.mainEngine)==null||e.queryTaskBatchData(r).forEach(a=>{var c;(c=this.mainEngine)==null||c.taskBatchData.delete(a)}),(i=this.mainEngine)==null||i.taskBatchData.add(s);(n=this.mainEngine)==null||n.runAnimation()}collectForServiceWorker(t){Xe(()=>{t.forEach(e=>{var s,r,a;(s=this.serviceColloctor)==null||s.dispatch(e);const{viewId:i,undoTickerId:n}=e;n&&i&&((a=(r=this.mainEngine)==null?void 0:r.internalMsgEmitter)==null||a.emit("undoTickerEnd",n,i))})},this.mainEngine.maxLastSyncTime)}}class _g extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.CopyNode)}collect(e){var a;if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,viewId:n}=e,s=this.control.viewContainerManager.getView(n);if(!(s!=null&&s.displayer))return;const r=s.focusScenePath;for(const c of i){const l=c.toString(),g=this.serviceColloctor.isLocalId(l)?this.serviceColloctor.transformKey(c):l,h=(a=this.serviceColloctor.getStorageData(n,r))==null?void 0:a[g];if(h){if(c===E){const M=h&&this.copySelector({viewId:n,store:h});M&&this.pasteSelector({...M,viewId:n,scenePath:r});break}if(h.toolsType===N.Text&&h.opt&&h.opt.workState&&h.opt.workState!==j.Done){const M=h&&this.copyText({viewId:n,store:h});M&&this.pasteText({...M,viewId:n,scenePath:r,key:g,store:h});break}}}}copyText(e){const{viewId:i,store:n}=e,s=this.control.viewContainerManager.getView(i);if(!this.serviceColloctor||!s)return;const r=s==null?void 0:s.cameraOpt,a=r&&[r.centerX,r.centerY],c=n.opt,l=c.boxPoint&&c.boxSize&&[c.boxPoint[0]+c.boxSize[0]/2,c.boxPoint[1]+c.boxSize[1]/2];return{bgCenter:a,textCenter:l}}pasteText(e){var f,I;const{bgCenter:i,textCenter:n,store:s,key:r,viewId:a,scenePath:c}=e,l=this.control.viewContainerManager.getView(a);if(!this.serviceColloctor||!l)return;const d=Math.floor(Math.random()*30+1),g=Date.now(),h=((f=l.cameraOpt)==null?void 0:f.scale)||1,M=i&&n&&[i[0]-n[0]+d,i[1]-n[1]+d]||[d/h,d/h],v=(this.serviceColloctor.isLocalId(r)?r:this.serviceColloctor.getLocalId(r.toString()))+"-"+g;if(this.mainEngine.internalMsgEmitter.emit("undoTickerStart",g,a),s.toolsType===N.Text&&s.opt){const m=s.opt;if(m&&m.boxPoint&&m.text){m.workState=j.Done;const w=m.boxPoint;m.boxPoint=[w[0]+M[0],w[1]+M[1]],m.workState=j.Done;const T=this.control.viewContainerManager.transformToOriginPoint(m.boxPoint,a);this.control.textEditorManager.createTextForMasterController({workId:v,x:T[0],y:T[1],opt:m,scale:((I=l.cameraOpt)==null?void 0:I.scale)||1,type:xe.Text,isActive:!1,viewId:a,scenePath:c}),this.collectForServiceWorker([{...s,opt:m,type:D.FullWork,workId:v,viewId:a,scenePath:c,undoTickerId:g}])}}}copySelector(e){var v,f,I,m,w,T,z,C,L;const{viewId:i,store:n}=e,s=this.control.viewContainerManager.getView(i),r=n.selectIds;if(!this.serviceColloctor||!(r!=null&&r.length)||!s)return;const a=new Map,c={offset:{x:0,y:0},cameraOpt:{centerX:((v=s.cameraOpt)==null?void 0:v.centerX)||0,centerY:((f=s.cameraOpt)==null?void 0:f.centerY)||0,scale:((I=s.cameraOpt)==null?void 0:I.scale)||1}},l=this.control.hasOffscreenCanvas()&&((m=s.displayer.canvasBgRef.current)==null?void 0:m.getBoundingClientRect())||((w=s.displayer.canvasContainerRef.current)==null?void 0:w.getBoundingClientRect()),d=(z=(T=s.displayer)==null?void 0:T.floatBarRef.current)==null?void 0:z.getBoundingClientRect(),g=l&&[l.x+l.width/2,l.y+l.height/2],h=d&&[d.x+d.width/2,d.y+d.height/2],M=g&&s.viewData&&s.viewData.convertToPointInWorld({x:g[0],y:g[1]}),y=h&&s.viewData&&s.viewData.convertToPointInWorld({x:h[0],y:h[1]});M&&y&&(c.offset={x:M.x-y.x,y:M.y-y.y});for(const b of r){const R=(L=(C=this.serviceColloctor)==null?void 0:C.getStorageData(s.id,s.focusScenePath))==null?void 0:L[b];R&&a.set(b,R)}return{copyStores:a,copyCoordInfo:c}}pasteSelector(e){var v;const{copyStores:i,copyCoordInfo:n,viewId:s,scenePath:r}=e,a=this.control.viewContainerManager.getView(s);if(!i.size||!this.serviceColloctor||!a)return;const{offset:c,cameraOpt:l}=n,d=Math.floor(Math.random()*30+1),g=[c.x+d,c.y+d],h=Date.now(),M=[],y=[];this.mainEngine.internalMsgEmitter.emit("undoTickerStart",h,s);for(const[f,I]of i.entries()){const w=(this.serviceColloctor.isLocalId(f)?f:this.serviceColloctor.getLocalId(f.toString()))+"-"+h,T={useAnimation:!1};if(I.toolsType===N.Text&&I.opt){const z=I.opt;if(z&&z.boxPoint&&z.text){z.workState=j.Done;const C=z.boxPoint;z.boxPoint=[C[0]+g[0],C[1]+g[1]],z.workState=j.Done;const L=this.control.viewContainerManager.transformToOriginPoint(z.boxPoint,s);this.control.textEditorManager.createTextForMasterController({workId:w,x:L[0],y:L[1],opt:z,scale:((v=a.cameraOpt)==null?void 0:v.scale)||1,type:xe.Text,isActive:!1,viewId:s,scenePath:r})}y.push({...I,opt:z,type:D.FullWork,workId:w,viewId:s,scenePath:r,undoTickerId:h});continue}if(I.toolsType===N.Image&&(I.opt.uuid=w,I.opt.centerX=I.opt.centerX+g[0],I.opt.centerY=I.opt.centerY+g[1]),I.ops){const z=Ao(I.ops).map((L,b)=>{const R=b%3;return R===0?L+g[0]:R===1?L+g[1]:L}),C=bo(z);I.ops=C}y.push({...I,updateNodeOpt:T,type:D.FullWork,workId:w,viewId:s,scenePath:r,undoTickerId:h}),M.push([{...I,updateNodeOpt:T,workId:w,msgType:D.FullWork,dataType:V.Local,emitEventType:x.CopyNode,willSyncService:!1,willRefresh:!0,viewId:s,undoTickerId:h},{workId:w,msgType:D.FullWork,emitEventType:x.CopyNode}])}M.length&&this.collectForLocalWorker(M),y.length&&this.collectForServiceWorker(y)}}function kt(o,t,e){return"#"+((o<<16)+(t<<8)+e).toString(16).padStart(6,"0")}function ue(o,t=1){return"rgba("+parseInt("0x"+o.slice(1,3))+","+parseInt("0x"+o.slice(3,5))+","+parseInt("0x"+o.slice(5,7))+","+t+")"}function ut(o,t,e,i=1){return`rgba(${o},${t},${e},${i})`}function ai(o){const t=o.split(","),e=parseInt(t[0].split("(")[1]),i=parseInt(t[1]),n=parseInt(t[2]),s=Number(t[3].split(")")[0]);return[kt(e,i,n),s]}function ht(o){const t=o.split(","),e=parseInt(t[0].split("(")[1]),i=parseInt(t[1]),n=parseInt(t[2]),s=Number(t[3].split(")")[0]);return[e,i,n,s]}function Gi(o){return o==="transparent"}class Xg extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.SetColorNode)}setTextColor(e,i,n,s){const{fontColor:r,fontBgColor:a}=n;i.opt&&(r&&(i.opt.fontColor=r),a&&(i.opt.fontColor=a),this.control.textEditorManager.updateTextForMasterController({workId:e,opt:i.opt,viewId:s,canSync:!0,canWorker:!0}))}collect(e){if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,strokeColor:n,fillColor:s,fontColor:r,fontBgColor:a,viewId:c}=e,l=this.control.viewContainerManager.getView(c);if(!(l!=null&&l.displayer))return;const d=l.focusScenePath,g=[...i],h=this.serviceColloctor.storage,M=[],y={};for(;g.length;){const v=g.pop();if(!v)continue;const f=v.toString(),I=this.serviceColloctor.isLocalId(f),m=I?this.serviceColloctor.transformKey(v):f;let w=f;!I&&this.serviceColloctor.isOwn(w)&&(w=this.serviceColloctor.getLocalId(w));const T=h[c][d][m]||void 0;if(T){const z=T.updateNodeOpt||{};if(r||a){if(r){z.fontColor=r;const[L,b,R,U]=ht(r);y.textColor=[L,b,R],y.textOpacity=U}if(a){z.fontBgColor=a;const[L,b,R,U]=ht(a);y.textBgColor=[L,b,R],y.textBgOpacity=U}if(T.toolsType===N.Text&&T.opt){this.setTextColor(w,ne(T),z,c);continue}}if(n){z.strokeColor=n;const[L,b,R,U]=ht(n);y.strokeColor=[L,b,R],y.strokeOpacity=U}if(s)if(z.fillColor=Gi(s)?"transparent":s,Gi(s))y.fillColor=void 0,y.fillOpacity=void 0;else{const[L,b,R,U]=ht(s);y.fillColor=[L,b,R],y.fillOpacity=U}const C={workId:w,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:z,emitEventType:this.emitEventType,willRefresh:!0,willRefreshSelector:!0,willSyncService:!0,textUpdateForWoker:!0,viewId:c};M.push([C,{workId:w,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}}M.length&&this.collectForLocalWorker(M),Object.keys(y).length&&setTimeout(()=>{var v;(v=this.control.room)==null||v.setMemberState(y)},0)}}class eM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.ZIndexNode);p(this,"zIndexMap",new Map)}clearZIndex(e){this.zIndexMap.delete(e)}getMinZIndex(e){var i;return((i=this.zIndexMap.get(e))==null?void 0:i.min)||0}getMaxZIndex(e){var i;return((i=this.zIndexMap.get(e))==null?void 0:i.max)||0}setMaxZIndex(e,i){const n=this.getMinZIndex(i);this.zIndexMap.set(i,{min:n,max:e})}setMinZIndex(e,i){const n=this.getMaxZIndex(i);this.zIndexMap.set(i,{min:e,max:n})}addMaxLayer(e){const i=this.getMaxZIndex(e)+1;this.setMaxZIndex(i,e)}addMinLayer(e){const i=this.getMinZIndex(e)-1;this.setMinZIndex(i,e)}correct(e){const i=e.sort((n,s)=>n[1]-s[1]);for(let n=1;n<i.length;n++){const s=i[n][1],r=i[n-1][1];s<=r&&(i[n][1]=r+1)}return i}collect(e){if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,layer:n,viewId:s}=e,r=this.control.viewContainerManager.getView(s);if(!(r!=null&&r.displayer))return;const a=r.focusScenePath,c=[...i],l=this.serviceColloctor.storage,d=[],g=[];for(;c.length;){const M=c.pop();if(!M)continue;const y=M.toString(),v=this.serviceColloctor.isLocalId(y),f=v?this.serviceColloctor.transformKey(M):y;let I=y;!v&&this.serviceColloctor.isOwn(I)&&(I=this.serviceColloctor.getLocalId(I));const m=ne(l[s][a][f]);let w;if(m&&I===E){if(m.selectIds){g.push(...m.selectIds),g.sort((L,b)=>{var $,Z,P,X;const R=((Z=($=l[h(L,this.serviceColloctor)])==null?void 0:$.opt)==null?void 0:Z.zIndex)||0,U=((X=(P=l[h(L,this.serviceColloctor)])==null?void 0:P.opt)==null?void 0:X.zIndex)||0;return R>U?1:L<b?-1:0});const T=m.updateNodeOpt||{};T.zIndexLayer=n;const z={workId:M,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:T,emitEventType:this.emitEventType,willRefreshSelector:!0,willSyncService:!0,viewId:s},C=new Map;n===Qe.Top?(this.addMaxLayer(s),w=this.getMaxZIndex(s)):(this.addMinLayer(s),w=this.getMinZIndex(s)),g.forEach(L=>{var $,Z,P;const b=($=this.serviceColloctor)==null?void 0:$.isLocalId(L);let R=b&&((Z=this.serviceColloctor)==null?void 0:Z.transformKey(L))||L;const U=l[s][a][R];!b&&((P=this.serviceColloctor)!=null&&P.isOwn(R))&&(R=this.serviceColloctor.getLocalId(R)),T.zIndex=w,U!=null&&U.opt&&(U.opt.zIndex=w),U!=null&&U.opt&&C.set(R,{updateNodeOpt:U.updateNodeOpt,opt:U.opt})}),z.selectStore=C,z.willSerializeData=!0,d.push([z,{workId:M,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}continue}}d.length&&this.collectForLocalWorker(d);function h(M,y){return y.isLocalId(M)&&y.transformKey(M)||M}}}class tM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.TranslateNode);p(this,"undoTickerId");p(this,"cachePosition")}collect(e){var M;if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,position:n,workState:s,viewId:r}=e,a=this.control.viewContainerManager.getView(r);if(!(a!=null&&a.displayer))return;const c=a.focusScenePath,l=[...i],d=(M=this.serviceColloctor)==null?void 0:M.storage,g=[],h=s===j.Start&&Date.now()||void 0;for(h&&(this.undoTickerId=h,this.mainEngine.internalMsgEmitter.emit("undoTickerStart",h,r));l.length;){const y=l.pop();if(!y)continue;const v=y.toString(),f=this.serviceColloctor.isLocalId(v),I=f&&this.serviceColloctor.transformKey(y)||v;let m=v;!f&&this.serviceColloctor.isOwn(m)&&(m=this.serviceColloctor.getLocalId(m));const w=d[r][c][I];if(w&&m===E){if(w.selectIds&&(s===j.Start&&(this.cachePosition=n),this.cachePosition)){const T=w.updateNodeOpt||{};T.translate=[n.x-this.cachePosition.x,n.y-this.cachePosition.y],T.workState=s;const z={workId:y,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:T,emitEventType:this.emitEventType,willSyncService:!0,textUpdateForWoker:!0,viewId:r};s===j.Done&&(z.textUpdateForWoker=!0,z.willSerializeData=!0,z.undoTickerId=this.undoTickerId,this.cachePosition=void 0),g.push([z,{workId:y,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}continue}}s===j.Start?this.mainEngine.unWritable():s===j.Done&&this.mainEngine.abled(),g.length&&this.collectForLocalWorker(g)}}class iM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.DeleteNode)}collect(e){if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,viewId:n}=e,s=this.control.viewContainerManager.getView(n);if(!(s!=null&&s.displayer))return;const r=s.focusScenePath,a=this.serviceColloctor.storage,c=[...i],l=[],d=[],g=Date.now();for(;c.length;){const h=c.pop();if(!h)continue;const M=h.toString(),y=this.serviceColloctor.isLocalId(M),v=y?this.serviceColloctor.transformKey(h):M,f=a[n][r][v];if(f){let I=M;if(!y&&this.serviceColloctor.isOwn(I)&&(I=this.serviceColloctor.getLocalId(I)),f.toolsType===N.Text){this.control.textEditorManager.delete(I,!0,!0);continue}d.push(I)}}d.length&&(l.push([{msgType:D.RemoveNode,emitEventType:x.DeleteNode,removeIds:d,dataType:V.Local,willSyncService:!0,willRefresh:!0,undoTickerId:g,viewId:n},void 0]),this.mainEngine.internalMsgEmitter.emit("undoTickerStart",g,n),this.collectForLocalWorker(l))}}class oM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.ScaleNode);p(this,"undoTickerId");p(this,"targetBox",new Map);p(this,"targetText",new Map);p(this,"cacheTextInfo",new Map)}async collect(e){var y,v,f,I,m,w;if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,box:n,workState:s,viewId:r,dir:a}=e,c=this.control.viewContainerManager.getView(r);if(!(c!=null&&c.displayer))return;const l=c.focusScenePath,d=[...i],g=(y=this.serviceColloctor)==null?void 0:y.storage,h=[],M=s===j.Start&&Date.now()||void 0;for(M&&(this.undoTickerId=M,this.mainEngine.internalMsgEmitter.emit("undoTickerStart",M,r));d.length;){const T=d.pop();if(!T)continue;const z=T.toString(),C=this.serviceColloctor.isLocalId(z),L=C&&this.serviceColloctor.transformKey(T)||z;let b=z;!C&&this.serviceColloctor.isOwn(b)&&(b=this.serviceColloctor.getLocalId(b));const R=g[r][l][L];if(R&&b===E&&R.selectIds){const U=R.updateNodeOpt||{};if(U.dir=a,U.box=n,U.workState=s,s===j.Start&&n){this.cacheTextInfo.clear();for(const Z of R.selectIds){const P=(v=this.serviceColloctor)==null?void 0:v.isLocalId(Z),X=P&&((f=this.serviceColloctor)==null?void 0:f.transformKey(Z))||Z;let se=X;!P&&((I=this.serviceColloctor)!=null&&I.isOwn(X))&&(se=this.serviceColloctor.getLocalId(X));const _=this.control.textEditorManager.get(se);_&&s===j.Start&&this.targetText.set(se,ne(_))}this.targetText.size&&this.targetBox.set(b,n)}if(this.targetText.size&&s!==j.Start){const Z=this.targetBox.get(b);if(Z){const P=[n.w/Z.w,n.h/Z.h];for(const[X,se]of this.targetText.entries()){const{opt:_}=se,F=Math.floor(_.fontSize*P[0]),G=this.cacheTextInfo.get(X),q=!G&&_.fontSize!==F||G&&G.fontSize!==F||!1;if((m=this.control.textEditorManager.get(X))==null?void 0:m.waitWorker){console.log("showFloatBar--1");return}const Y=(w=this.control.textEditorManager.get(X))==null?void 0:w.opt;if(q&&Y&&_.boxSize&&_.boxPoint){const B=await this.control.textEditorManager.updateTextControllerWithEffectAsync({workId:X,opt:{...Y,fontSize:F},viewId:r,canSync:!1,canWorker:!1,waitWorker:!0});B&&this.cacheTextInfo.set(X,{fontSize:B.opt.fontSize,boxSize:B.opt.boxSize,boxPoint:B.opt.boxPoint})}}U.textInfos=this.cacheTextInfo}}const $={workId:T,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:U,emitEventType:this.emitEventType,willRefreshSelector:!0,willSyncService:!0,viewId:r};s===j.Done&&($.willSerializeData=!0,$.undoTickerId=this.undoTickerId,this.targetBox.delete(b),this.targetText.clear()),h.push([$,{workId:T,msgType:D.UpdateNode,emitEventType:this.emitEventType}]);continue}}s===j.Start?this.mainEngine.unWritable():s===j.Done&&this.mainEngine.abled(),h.length&&this.collectForLocalWorker(h)}}class nM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.RotateNode);p(this,"undoTickerId");p(this,"cacheOriginRotate",0)}collect(e){var M,y,v,f,I;if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,angle:n,workState:s,viewId:r}=e,a=this.control.viewContainerManager.getView(r);if(!(a!=null&&a.displayer))return;const c=a.focusScenePath,l=[...i],d=(M=this.serviceColloctor)==null?void 0:M.storage,g=[],h=s===j.Start&&Date.now()||void 0;for(h&&(this.undoTickerId=h,this.mainEngine.internalMsgEmitter.emit("undoTickerStart",h,r));l.length;){const m=l.pop();if(!m)continue;const w=m.toString(),T=this.serviceColloctor.isLocalId(w),z=T&&this.serviceColloctor.transformKey(m)||w;let C=w;!T&&this.serviceColloctor.isOwn(C)&&(C=this.serviceColloctor.getLocalId(C));const L=d[r][c][z];if(L&&C===E){if(((y=L.selectIds)==null?void 0:y.length)===1){const b=L.selectIds[0];if(s===j.Start){const Z=((v=this.serviceColloctor)==null?void 0:v.isLocalId(b))&&((f=this.serviceColloctor)==null?void 0:f.transformKey(b))||b,P=d[r][c][Z];this.cacheOriginRotate=((I=P==null?void 0:P.opt)==null?void 0:I.rotate)||0}const R=L.updateNodeOpt||{};R.angle=(n+this.cacheOriginRotate)%360,R.workState=s;const U={workId:m,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:R,emitEventType:this.emitEventType,willRefreshSelector:!1,willSyncService:!0,viewId:r};s===j.Done&&(U.willRefreshSelector=!0,U.willSerializeData=!0,U.undoTickerId=this.undoTickerId,this.cacheOriginRotate=0),g.push([U,{workId:m,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}continue}}s===j.Start?this.mainEngine.unWritable():s===j.Done&&this.mainEngine.abled(),g.length&&this.collectForLocalWorker(g)}}function sM(o){switch(o){case N.Text:return xe.Text;case N.SpeechBalloon:case N.Star:case N.Ellipse:case N.Rectangle:case N.Triangle:case N.Rhombus:case N.Polygon:return xe.Shape}}class rM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.SetFontStyle)}setTextStyle(e,i,n,s,r){const{bold:a,underline:c,lineThrough:l,italic:d,fontSize:g}=n;if(i.toolsType){const h=sM(i.toolsType);h===xe.Text&&(i.opt&&(a&&(i.opt.bold=a),Ne(c)&&(i.opt.underline=c),Ne(l)&&(i.opt.lineThrough=l),d&&(i.opt.italic=d),g&&(i.opt.fontSize=g)),this.control.textEditorManager.updateTextForMasterController({workId:e,opt:i.opt,viewId:s,canSync:!0,canWorker:!0},r)),xe.Shape}}collect(e){var v,f,I,m;if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,bold:n,italic:s,lineThrough:r,underline:a,viewId:c,fontSize:l}=e,d=this.control.viewContainerManager.getView(c);if(!(d!=null&&d.displayer))return;const g=d.focusScenePath,h=[...i],M=this.serviceColloctor.storage,y={};for(;h.length;){const w=h.pop();if(!w)continue;const T=w.toString(),z=this.serviceColloctor.isLocalId(T),C=z?this.serviceColloctor.transformKey(w):T;let L=T;!z&&this.serviceColloctor.isOwn(L)&&(L=this.serviceColloctor.getLocalId(L));const b=M[c][g][C]||void 0;if(b){const R=b.updateNodeOpt||{};if(n&&(R.bold=n,y.bold=n==="bold"),s&&(R.italic=s,y.italic=s==="italic"),Ne(r)&&(R.lineThrough=r,y.lineThrough=r),Ne(a)&&(R.underline=a,y.underline=a),l&&(R.fontSize=l,y.textSize=l),b.toolsType===N.Text&&b.opt){this.setTextStyle(L,ne(b),R,c);continue}if(b&&L===E&&((v=b.selectIds)!=null&&v.length))for(const U of b.selectIds){const $=(f=this.serviceColloctor)==null?void 0:f.isLocalId(U);let Z=$&&((I=this.serviceColloctor)==null?void 0:I.transformKey(U))||U;const P=M[c][g][Z]||void 0;if(!$&&((m=this.serviceColloctor)!=null&&m.isOwn(Z))&&(Z=this.serviceColloctor.getLocalId(Z)),P&&P.toolsType===N.Text&&b.opt){this.setTextStyle(Z,ne(P),R,c);continue}}}}Object.keys(y).length&&setTimeout(()=>{var w;(w=this.control.room)==null||w.setMemberState(y)},0)}}class aM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.SetPoint);p(this,"undoTickerId")}collect(e){var m;if(!this.serviceColloctor||!this.mainEngine)return;const{workId:i,pointMap:n,workState:s,viewId:r}=e,a=this.control.viewContainerManager.getView(r);if(!(a!=null&&a.displayer))return;const c=a.focusScenePath,l=(m=this.serviceColloctor)==null?void 0:m.storage,d=[],g=s===j.Start&&Date.now()||void 0;g&&(this.undoTickerId=g,this.mainEngine.internalMsgEmitter.emit("undoTickerStart",g,r));const h=i;if(!h)return;const M=h.toString(),y=this.serviceColloctor.isLocalId(M),v=y&&this.serviceColloctor.transformKey(h)||M;let f=M;!y&&this.serviceColloctor.isOwn(f)&&(f=this.serviceColloctor.getLocalId(f));const I=l[r][c][v];if(I&&f===E&&I.selectIds){const w=I.updateNodeOpt||{};w.pointMap=n,w.workState=s;const T={workId:h,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:w,emitEventType:this.emitEventType,willRefreshSelector:!0,willSyncService:!0,viewId:r};s===j.Done&&(T.undoTickerId=this.undoTickerId),d.push([T,{workId:h,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}s===j.Start?this.mainEngine.unWritable():s===j.Done&&this.mainEngine.abled(),d.length&&this.collectForLocalWorker(d)}}class cM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.SetLock)}collect(e){if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,isLocked:n,viewId:s}=e,r=this.control.viewContainerManager.getView(s);if(!(r!=null&&r.displayer))return;const a=r.focusScenePath,c=[...i],l=this.serviceColloctor.storage,d=[],g=Date.now();for(;c.length;){const h=c.pop();if(!h)continue;const M=h.toString(),y=this.serviceColloctor.isLocalId(M),v=y?this.serviceColloctor.transformKey(h):M;let f=M;!y&&this.serviceColloctor.isOwn(f)&&(f=this.serviceColloctor.getLocalId(f));const I=l[s][a][v]||void 0;if(I){const m=I.updateNodeOpt||{};m.isLocked=n;const w={workId:f,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:m,emitEventType:this.emitEventType,willRefresh:!0,willRefreshSelector:!0,willSyncService:!0,viewId:s};d.push([w,{workId:f,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}}this.mainEngine.internalMsgEmitter.emit("undoTickerStart",g,s),d.length&&this.collectForLocalWorker(d)}}class lM extends Te{constructor(){super(...arguments);p(this,"emitEventType",x.SetShapeOpt)}collect(e){if(!this.serviceColloctor||!this.mainEngine)return;const{workIds:i,viewId:n,...s}=e,r=this.control.viewContainerManager.getView(n);if(!(r!=null&&r.displayer))return;const a=r.focusScenePath,c=[...i],l=this.serviceColloctor.storage,d=[];for(;c.length;){const g=c.pop();if(!g)continue;const h=g.toString(),M=this.serviceColloctor.isLocalId(h),y=M?this.serviceColloctor.transformKey(g):h;let v=h;!M&&this.serviceColloctor.isOwn(v)&&(v=this.serviceColloctor.getLocalId(v));const f=l[n][a][y]||void 0;if(f){const I={...f.updateNodeOpt,...s,willRefresh:!0};if(f&&v===E){const m={workId:v,msgType:D.UpdateNode,dataType:V.Local,updateNodeOpt:I,emitEventType:this.emitEventType,willRefresh:!0,willRefreshSelector:!0,willSyncService:!0,viewId:n};d.push([m,{workId:v,msgType:D.UpdateNode,emitEventType:this.emitEventType}])}}}d.length&&this.collectForLocalWorker(d)}}class Q{constructor(t){p(this,"builders",new Map);this.builders=new Map(t.map(e=>[e,this.build(e)]))}build(t){switch(t){case x.TranslateNode:return new tM;case x.ZIndexNode:return new eM;case x.CopyNode:return new _g;case x.SetColorNode:return new Xg;case x.DeleteNode:return new iM;case x.ScaleNode:return new oM;case x.RotateNode:return new nM;case x.SetFontStyle:return new rM;case x.SetPoint:return new aM;case x.SetLock:return new cM;case x.SetShapeOpt:return new lM}}getBuilder(t){return this.builders.get(t)}registerForMainEngine(t,e){return this.builders.forEach(i=>{i&&i.registerForMainEngine(t,e)}),this}destroy(){this.builders.forEach(t=>{t&&t.destroy()})}static emitMethod(t,e,i){Te.dispatch(t,e,i)}}class uM{constructor(){p(this,"maxLastSyncTime",500)}setCurrentToolsData(t){this.currentToolsData=t}getCurrentToolsData(){return this.currentToolsData}setCurrentLocalWorkData(t){this.currentLocalWorkData=t}getWorkId(){return this.currentLocalWorkData.workId}getWorkState(){return this.currentLocalWorkData.workState}}class hM extends uM{constructor(e){var s,r;super();p(this,"isActive",!1);p(this,"currentToolsData");p(this,"currentLocalWorkData");p(this,"control");p(this,"internalMsgEmitter");p(this,"taskBatchData",new Set);p(this,"fullWorker");p(this,"subWorker");p(this,"fullWorkerUrl");p(this,"subWorkerUrl");p(this,"methodBuilder");p(this,"zIndexNodeMethod");p(this,"subWorkerDrawCount",0);p(this,"wokerDrawCount",0);p(this,"maxDrawCount",0);p(this,"cacheDrawCount",0);p(this,"reRenders",[]);p(this,"localWorkViewId");p(this,"localPointsBatchData",[]);p(this,"tasksqueue",new Map);p(this,"useTasksqueue",!1);p(this,"useTasksClockId");p(this,"mianTasksqueueCount");p(this,"workerTasksqueueCount");p(this,"snapshotMap",new Map);p(this,"boundingRectMap",new Map);p(this,"clearAllResolve");p(this,"delayWorkStateToDone");p(this,"delayWorkStateToDoneResolve");p(this,"animationId");p(this,"tmpImageConfigMap",new Map);p(this,"mainThread");const{control:i,internalMsgEmitter:n}=e;this.control=i,this.maxLastSyncTime=(((r=(s=this.control.pluginOptions)==null?void 0:s.syncOpt)==null?void 0:r.interval)||this.maxLastSyncTime)*.5,this.fullWorkerUrl=this.control.pluginOptions.cdn.fullWorkerUrl,this.subWorkerUrl=this.control.pluginOptions.cdn.subWorkerUrl,this.internalMsgEmitter=n,this.currentLocalWorkData={workState:j.Pending}}get viewContainerManager(){return this.control.viewContainerManager}get collector(){return this.control.collector}get isRunSubWork(){var i;const e=(i=this.currentToolsData)==null?void 0:i.toolsType;return e===N.Pencil||e===N.LaserPen||e===N.Arrow||e===N.Straight||e===N.Ellipse||e===N.Rectangle||e===N.Star||e===N.Polygon||e===N.SpeechBalloon}get isCanDrawWork(){var i;const e=(i=this.currentToolsData)==null?void 0:i.toolsType;return e===N.Pencil||e===N.LaserPen||e===N.Arrow||e===N.Straight||e===N.Ellipse||e===N.Rectangle||e===N.Star||e===N.Polygon||e===N.SpeechBalloon||e===N.Triangle||e===N.Rhombus}get isUseZIndex(){var i;const e=(i=this.currentToolsData)==null?void 0:i.toolsType;return e===N.Pencil||e===N.Arrow||e===N.Straight||e===N.Ellipse||e===N.Rectangle||e===N.Star||e===N.Polygon||e===N.SpeechBalloon||e===N.Text||e===N.Image}get isCanRecordUndoRedo(){var i;const e=(i=this.currentToolsData)==null?void 0:i.toolsType;return e===N.Pencil||e===N.Eraser||e===N.Arrow||e===N.Straight||e===N.Ellipse||e===N.Rectangle||e===N.Star||e===N.Polygon||e===N.SpeechBalloon||e===N.Text||e===N.Image}get isCanSentCursor(){var i;const e=(i=this.currentToolsData)==null?void 0:i.toolsType;return e===N.Pencil||e===N.Text||e===N.LaserPen||e===N.Arrow||e===N.Straight||e===N.Ellipse||e===N.Rectangle||e===N.Star||e===N.Polygon||e===N.SpeechBalloon||e===N.Triangle||e===N.Rhombus}async init(){await this.on(),this.internalMsgEmitterListener(),this.isActive=!0}async on(){if(!this.control.hasOffscreenCanvas()){console.info("no OffscreenCanvas");const{MainThreadManagerImpl:e}=await Promise.resolve().then(()=>require("./index-h_PU7sdS.js"));this.mainThread=new e(this);return}if(!this.fullWorkerUrl||!this.subWorkerUrl){console.error("no worker url config");return}this.fullWorker=new Worker(this.fullWorkerUrl,{type:"classic"}),this.subWorker=new Worker(this.subWorkerUrl,{type:"classic"}),this.fullWorker.onmessage=e=>{if(e.data){const{render:i,sp:n,drawCount:s,workerTasksqueueCount:r}=e.data;if(r&&(this.workerTasksqueueCount=r),n!=null&&n.length&&this.collectorSyncData(n),!s&&(i!=null&&i.length)){this.viewContainerManager.render(i);return}s&&(this.wokerDrawCount=s,this.wokerDrawCount<1/0?this.maxDrawCount=Math.max(this.maxDrawCount,this.wokerDrawCount):this.maxDrawCount=0,i!=null&&i.length&&(this.viewContainerManager.render(i),this.wokerDrawCount<this.subWorkerDrawCount&&(this.reRenders.forEach(a=>{a.isUnClose=!1}),this.viewContainerManager.render(this.reRenders),this.reRenders.length=0)))}},this.subWorker.onmessage=e=>{if(e.data){const{render:i,drawCount:n,sp:s}=e.data;if(s!=null&&s.length&&this.collectorSyncData(s),!n&&(i!=null&&i.length)){this.viewContainerManager.render(i);return}n&&(this.subWorkerDrawCount=n,this.wokerDrawCount<1/0&&(this.maxDrawCount=Math.max(this.maxDrawCount,this.subWorkerDrawCount)),i!=null&&i.length&&(this.subWorkerDrawCount>this.wokerDrawCount&&(i.forEach(r=>r.isUnClose=!0),this.reRenders.push(...i)),this.wokerDrawCount<1/0&&this.viewContainerManager.render(i)))}}}setMaxDrawCount(e){this.maxDrawCount=e}setWorkerTasksqueueCount(e){this.workerTasksqueueCount=e}collectorSyncData(e){var n,s;let i=!1;for(const r of e){const{type:a,selectIds:c,opt:l,selectRect:d,strokeColor:g,fillColor:h,willSyncService:M,isSync:y,undoTickerId:v,imageBitmap:f,canvasHeight:I,canvasWidth:m,rect:w,op:T,canTextEdit:z,points:C,selectorColor:L,canRotate:b,scaleType:R,textOpt:U,toolsType:$,workId:Z,viewId:P,dataType:X,canLock:se,isLocked:_,shapeOpt:F,toolsTypes:G}=r;if(!P){console.error("collectorSyncData",r);return}const q=r.scenePath||this.viewContainerManager.getCurScenePath(P);switch(a){case D.Select:{const A=c!=null&&c.length?{...d,selectIds:c,canvasHeight:I,canvasWidth:m,points:C}:void 0;A&&(l!=null&&l.strokeColor)&&(A.selectorColor=l.strokeColor),A&&L&&(A.selectorColor=L),A&&g&&(A.strokeColor=g),A&&(l!=null&&l.fillColor)&&(A.fillColor=l.fillColor),A&&h&&(A.fillColor=h),A&&Ne(b)&&(A.canRotate=b),A&&R&&(A.scaleType=R),A&&z&&(A.canTextEdit=z),A&&U&&(A.textOpt=U),A&&Ne(se)&&(A.canLock=se),A&&Ne(_)&&(A.isLocked=_),A&&F&&(A.shapeOpt=F),A&&G&&(A.toolsTypes=G),P&&this.viewContainerManager.showFloatBar(P,!!A,A),M&&((n=this.collector)==null||n.dispatch({type:a,selectIds:c,opt:l,isSync:y,viewId:P,scenePath:q}));break}case D.Snapshot:if(f&&q){const A=this.snapshotMap.get(q);A&&A(f)}break;case D.BoundingBox:if(w&&q){const A=this.boundingRectMap.get(q);A&&A(w)}break;case D.Cursor:T&&this.control.cursor.collectServiceCursor({...r});break;case D.Clear:P&&this.viewContainerManager.showFloatBar(P,!1),P&&this.clearAllResolve&&this.clearAllResolve(P);break;case D.TextUpdate:if($===N.Text&&Z&&P){const A=this.viewContainerManager.transformToOriginPoint((l==null?void 0:l.boxPoint)||[0,0],P),Y=(l==null?void 0:l.boxSize)||[0,0],B=(s=this.viewContainerManager.getView(P))==null?void 0:s.cameraOpt;l?this.control.textEditorManager.updateTextForWorker({x:A[0],y:A[1],w:Y[0],h:Y[1],scale:(B==null?void 0:B.scale)||1,workId:Z,opt:l,dataType:X,viewId:P,canSync:M||!1,canWorker:!1}):this.control.textEditorManager.delete(Z,M||!1,!1)}break;case D.GetTextActive:$===N.Text&&Z&&P&&this.control.textEditorManager.updateTextForWorker({workId:Z,isActive:!0,viewId:P,dataType:V.Local,canWorker:!1,canSync:!0},Date.now());break;default:i=!0;break}!i&&v&&this.internalMsgEmitter.emit("undoTickerEnd",v,P)}i&&Xe(()=>{this.collectorAsyncData(e)},this.maxLastSyncTime)}collectorAsyncData(e){var i,n,s,r;for(const a of e){const{type:c,op:l,workId:d,index:g,removeIds:h,ops:M,opt:y,updateNodeOpt:v,toolsType:f,isSync:I,undoTickerId:m,viewId:w}=a;if(!w){console.error("collectorAsyncData",a);return}const T=a.scenePath||this.viewContainerManager.getCurScenePath(w);switch(c){case D.DrawWork:{(i=this.collector)==null||i.dispatch({type:c,op:l,workId:d,index:g,isSync:I,viewId:w,scenePath:T});break}case D.FullWork:{(n=this.collector)==null||n.dispatch({type:c,ops:M,workId:d,updateNodeOpt:v,opt:y,toolsType:f,isSync:I,viewId:w,scenePath:T});break}case D.UpdateNode:{(s=this.collector)==null||s.dispatch({type:c,updateNodeOpt:v,workId:d,opt:y,ops:M,op:l,isSync:I,viewId:w,scenePath:T});break}case D.RemoveNode:{h&&this.control.textEditorManager.deleteBatch(h,!1,!1),(r=this.collector)==null||r.dispatch({type:c,removeIds:h,isSync:I,viewId:w,scenePath:T});break}}m&&this.internalMsgEmitter.emit("undoTickerEnd",m,w)}}async onLocalEventEnd(e,i){var c;const n=this.currentLocalWorkData.workState,s=this.viewContainerManager.getView(i);if(!s)return;const{focusScenePath:r,cameraOpt:a}=s;if(n===j.Start||n===j.Doing){const l=this.viewContainerManager.transformToScenePoint(e,i);this.pushPoint(l),this.setCurrentLocalWorkData({...this.currentLocalWorkData,workState:j.Done}),await new Promise(d=>{this.delayWorkStateToDone=setTimeout(()=>{var h,M;this.delayWorkStateToDone=void 0,this.runAnimation();const g=(h=this.currentLocalWorkData.workId)==null?void 0:h.toString();g&&r&&this.control.runEffectWork(()=>{var y;this.setShapeSelectorByWorkId(g,i),((y=this.currentToolsData)==null?void 0:y.toolsType)===N.Selector&&this.viewContainerManager.activeFloatBar(i)}),this.delayWorkStateToDoneResolve=d,((M=this.currentToolsData)==null?void 0:M.toolsType)===N.Selector&&this.viewContainerManager.activeFloatBar(i)},0)}).then(()=>{this.delayWorkStateToDoneResolve=void 0})}else if(((c=this.currentToolsData)==null?void 0:c.toolsType)===N.Text){const l=this.viewContainerManager.transformToScenePoint(e,i);if(this.localPointsBatchData[0]===l[0]&&this.localPointsBatchData[1]===l[1]){const d=this.currentToolsData.toolsOpt;d.workState=j.Doing,d.boxPoint=l,d.boxSize=[d.fontSize,d.fontSize],this.control.textEditorManager.checkEmptyTextBlur(),this.control.textEditorManager.createTextForMasterController({workId:Date.now().toString(),x:e[0],y:e[1],scale:(a==null?void 0:a.scale)||1,opt:d,type:xe.Text,isActive:!0,viewId:i,scenePath:r},Date.now())}this.clearLocalPointsBatchData()}}onLocalEventDoing(e,i){const n=this.currentLocalWorkData.workState;if(n===j.Start&&this.setCurrentLocalWorkData({...this.currentLocalWorkData,workState:j.Doing}),this.delayWorkStateToDone,n===j.Doing||this.delayWorkStateToDone){const s=this.viewContainerManager.transformToScenePoint(e,i);this.pushPoint(s),this.delayWorkStateToDone,!this.delayWorkStateToDone&&this.runAnimation();return}this.hoverCursor(e,i)}onLocalEventStart(e,i){var a,c,l,d,g,h,M,y;this.viewContainerManager.focuedViewId!==i&&this.viewContainerManager.setFocuedViewId(i),this.clearLocalPointsBatchData();const n=this.viewContainerManager.transformToScenePoint(e,i);if(this.pushPoint(n),((a=this.currentToolsData)==null?void 0:a.toolsType)===N.Text)return;this.control.textEditorManager.checkEmptyTextBlur();const s=((c=this.currentToolsData)==null?void 0:c.toolsType)===N.Selector?E:Date.now(),r=this.setZIndex(i);if(this.setCurrentLocalWorkData({workId:s,workState:j.Start,toolsOpt:r,viewId:i,undoTickerId:this.isCanRecordUndoRedo&&s||void 0}),this.isCanRecordUndoRedo&&this.internalMsgEmitter.emit("undoTickerStart",s,i),this.maxDrawCount=0,this.cacheDrawCount=0,this.wokerDrawCount=0,this.subWorkerDrawCount=0,this.reRenders.length=0,s&&r&&((l=this.currentToolsData)!=null&&l.toolsType)&&this.prepareOnceWork({workId:s,toolsOpt:r,viewId:i},(d=this.currentToolsData)==null?void 0:d.toolsType),this.isCanDrawWork){const v=this.viewContainerManager.getCurScenePath(i);(h=this.collector)==null||h.dispatch({type:D.CreateWork,workId:s,toolsType:(g=this.currentToolsData)==null?void 0:g.toolsType,opt:r,viewId:i,scenePath:v}),v&&((M=this.collector)!=null&&M.hasSelector(i,v))&&this.blurSelector(i,v)}else((y=this.currentToolsData)==null?void 0:y.toolsType)===N.Selector&&this.viewContainerManager.unActiveFloatBar(i);this.consume()}pushPoint(e){this.localPointsBatchData.push(e[0],e[1])}correctStorage(e,i,n){var c;const s=new Map,r=[];Object.keys(e).forEach(l=>{var g,h;const d=(h=(g=e[l])==null?void 0:g.opt)==null?void 0:h.zIndex;ae(d)&&r.push([l,d])});const a=r.length&&((c=this.zIndexNodeMethod)==null?void 0:c.correct(r))||[];this.zIndexNodeMethod&&a.length&&(this.zIndexNodeMethod.setMinZIndex(a[0][1]||0,i),this.zIndexNodeMethod.setMaxZIndex(a[a.length-1][1]||0,i));for(const[l,d]of a){if(!e[l])continue;const g=e[l];g.opt&&ae(g.opt.zIndex)&&g.opt.zIndex!==d&&(g.opt.zIndex=d,s.set(l,g))}return s.size&&s.forEach((l,d)=>{var g;console.log("key",l),(g=this.collector)==null||g.updateValue(d,l,{viewId:i,scenePath:n,isSync:!0}),e[d]=l}),e}async originalEventLintener(e,i,n){if(this.isAbled())switch(e){case j.Start:this.setLocalWorkViewId(n),n&&this.onLocalEventStart(i,n);break;case j.Doing:n&&n===this.getLocalWorkViewId()&&this.onLocalEventDoing(i,n);break;case j.Done:n&&n===this.getLocalWorkViewId()&&await this.onLocalEventEnd(i,n);break}}getLocalWorkViewId(){return this.localWorkViewId}setLocalWorkViewId(e){this.localWorkViewId=e}setCurrentToolsData(e){var s,r,a;const i=e.toolsType,n=((s=this.currentToolsData)==null?void 0:s.toolsType)!==e.toolsType;if(!this.isActive&&n){setTimeout(()=>{this.setCurrentToolsData(e)},50);return}if(super.setCurrentToolsData(e),n){const c=(r=this.viewContainerManager)==null?void 0:r.getAllViews();for(const l of c)if(l){const{id:d,focusScenePath:g}=l;n&&d&&g&&((a=this.collector)!=null&&a.hasSelector(d,g)&&this.blurSelector(d,g),this.control.textEditorManager.checkEmptyTextBlur())}this.taskBatchData.add({msgType:D.UpdateTools,dataType:V.Local,toolsType:i,opt:{...e.toolsOpt,syncUnitTime:this.maxLastSyncTime},isRunSubWork:this.isRunSubWork,viewId:Eo}),this.runAnimation()}}setCurrentLocalWorkData(e){super.setCurrentLocalWorkData(e);const{workId:i}=e;(!this.isAbled()||!i)&&this.clearLocalPointsBatchData()}prepareOnceWork(e,i){const{workId:n,toolsOpt:s,viewId:r}=e;this.taskBatchData.add({msgType:D.CreateWork,workId:n,toolsType:i,opt:{...s,syncUnitTime:this.maxLastSyncTime},dataType:V.Local,isRunSubWork:this.isRunSubWork,viewId:r}),this.runAnimation()}createViewWorker(e,i){const{offscreenCanvasOpt:n,layerOpt:s,dpr:r,cameraOpt:a}=i;this.taskBatchData.add({msgType:D.Init,dataType:V.Local,viewId:e,offscreenCanvasOpt:n,layerOpt:s,dpr:r,cameraOpt:a,isRunSubWork:!0,isSafari:navigator.userAgent.indexOf("Safari")!==-1&&navigator.userAgent.indexOf("Chrome")===-1}),this.runAnimation()}destroyViewWorker(e,i=!1){var n;this.getLocalWorkViewId()===e&&this.setLocalWorkViewId(void 0),this.zIndexNodeMethod&&this.zIndexNodeMethod.clearZIndex(e),this.taskBatchData.add({msgType:D.Destroy,dataType:V.Local,viewId:e,isRunSubWork:!0}),this.runAnimation(),i||(n=this.collector)==null||n.dispatch({type:D.Clear,viewId:e})}onServiceDerive(e,i){var M,y,v,f;const{newValue:n,oldValue:s,viewId:r,scenePath:a}=i,c=ne(n)||{},l=e;let d=c.type;if(!n&&s&&(d=D.RemoveNode,s.toolsType===N.LaserPen))return;const g=(M=this.viewContainerManager.getView(r))==null?void 0:M.focusScenePath;if(g&&g!==a)return;if(d&&l){const I=c;if(I.workId=(y=this.collector)!=null&&y.isOwn(l)?(v=this.collector)==null?void 0:v.getLocalId(l):l,I.msgType=d,I.toolsType===N.LaserPen&&(I.isRunSubWork=!0),I.dataType=V.Service,I.viewId=r,I.scenePath=a,I.selectIds&&(I.selectIds=I.selectIds.map(m=>{var w,T;return(w=this.collector)!=null&&w.isOwn(m)?(T=this.collector)==null?void 0:T.getLocalId(m):m})),I&&I.toolsType===N.Text||(s==null?void 0:s.toolsType)===N.Text){this.control.textEditorManager.onServiceDerive(I);return}this.taskBatchData.add(I)}this.runAnimation();const h=i.newValue&&((f=i.newValue.opt)==null?void 0:f.zIndex);if(this.zIndexNodeMethod&&ae(h)){const I=this.zIndexNodeMethod.getMinZIndex(r);this.zIndexNodeMethod.getMaxZIndex(r)<h&&this.zIndexNodeMethod.setMaxZIndex(h,r),I>h&&this.zIndexNodeMethod.setMinZIndex(h,r)}}pullServiceData(e,i){var s,r,a,c;let n=(s=this.collector)==null?void 0:s.getStorageData(e,i);if(n){n=this.correctStorage(n,e,i);const l=Object.keys(n);for(const d of l){const g=(r=n[d])==null?void 0:r.type;if(g&&d){const h=n[d];if(h.workId=(a=this.collector)!=null&&a.isOwn(d)?(c=this.collector)==null?void 0:c.getLocalId(d):d,h.msgType=g,h.dataType=V.Service,h.viewId=e,h.scenePath=i,h.useAnimation=!1,h.selectIds&&(h.selectIds=h.selectIds.map(M=>{var y,v;return(y=this.collector)!=null&&y.isOwn(M)?(v=this.collector)==null?void 0:v.getLocalId(M):M})),h.toolsType===N.Text){this.control.textEditorManager.onServiceDerive(h);continue}this.taskBatchData.add(h)}this.internalMsgEmitter.emit("excludeIds",l,e)}this.runAnimation()}}runAnimation(){this.animationId||(this.animationId=requestAnimationFrame(this.consume.bind(this)))}consume(){this.animationId=void 0;const{workState:e,viewId:i,workId:n,undoTickerId:s}=this.currentLocalWorkData;if(!this.isAbled()&&this.clearLocalPointsBatchData(),this.tasksqueue.size){const r=this.consumeQueue();r.size&&(this.post(r),this.tasksqueue.clear())}else if(!this.delayWorkStateToDone){if(e!==j.Pending&&this.localPointsBatchData.length&&i){let r=!1;this.wokerDrawCount!==1/0&&this.wokerDrawCount<=this.subWorkerDrawCount&&this.cacheDrawCount<this.maxDrawCount&&(r=!0),this.maxDrawCount||(r=!0),r&&(this.taskBatchData.add({op:this.localPointsBatchData.map(a=>a),workState:e,workId:n,dataType:V.Local,msgType:D.DrawWork,isRunSubWork:this.isRunSubWork,undoTickerId:e===j.Done&&s||void 0,viewId:i,scenePath:i&&this.viewContainerManager.getCurScenePath(i)}),this.delayWorkStateToDoneResolve&&e===j.Done&&this.delayWorkStateToDoneResolve(!0),this.clearLocalPointsBatchData(),this.cacheDrawCount=this.maxDrawCount)}this.taskBatchData.size&&(this.post(this.taskBatchData),this.taskBatchData.clear(),s&&e===j.Done&&this.setCurrentLocalWorkData({...this.currentLocalWorkData,undoTickerId:void 0}))}(this.tasksqueue.size||this.taskBatchData.size||this.localPointsBatchData.length)&&(this.animationId=requestAnimationFrame(this.consume.bind(this)))}unWritable(){this.setCurrentLocalWorkData({workState:j.Unwritable,workId:void 0})}abled(){this.setCurrentLocalWorkData({workState:j.Pending,workId:void 0})}isAbled(){return this.currentLocalWorkData.workState!==j.Unwritable}post(e){if(!this.control.hasOffscreenCanvas()&&this.mainThread){this.mainThread.consume(e);return}this.fullWorker.postMessage(e);const i=new Set;for(const n of e.values()){const s=n.msgType;(s===D.Init||s===D.Clear||s===D.Destroy||s===D.UpdateCamera||n.isRunSubWork)&&i.add(n)}i.size&&this.subWorker.postMessage(i)}destroy(){this.unWritable(),this.taskBatchData.clear(),this.tmpImageConfigMap.clear(),this.clearLocalPointsBatchData(),this.fullWorker.terminate(),this.subWorker.terminate(),this.isActive=!1}updateNode(e,i,n,s){this.taskBatchData.add({msgType:D.UpdateNode,workId:e,updateNodeOpt:i,viewId:n,scenePath:s,dataType:V.Local}),this.runAnimation()}updateCamera(e,i){this.useTasksqueue||(this.useTasksqueue=!0,this.mianTasksqueueCount=1,this.workerTasksqueueCount=1),this.useTasksqueue&&(this.tasksqueue.set(e,{msgType:D.UpdateCamera,dataType:V.Local,cameraOpt:{...i,width:Math.floor(i.width),height:Math.floor(i.height)},isRunSubWork:!0,viewId:e}),this.control.textEditorManager.onCameraChange(i,e),this.runAnimation(),this.useTasksClockId&&clearTimeout(this.useTasksClockId),this.useTasksClockId=setTimeout(()=>{this.useTasksClockId=void 0,this.tasksqueue.clear(),this.useTasksqueue=!1,this.mianTasksqueueCount=void 0,this.workerTasksqueueCount=void 0},this.maxLastSyncTime))}consumeQueue(){const e=new Set;return this.mianTasksqueueCount&&this.workerTasksqueueCount&&this.mianTasksqueueCount===this.workerTasksqueueCount&&(this.mianTasksqueueCount++,e.add({msgType:D.TasksQueue,dataType:V.Local,isRunSubWork:!0,mainTasksqueueCount:this.mianTasksqueueCount,tasksqueue:this.tasksqueue,viewId:""})),e}async clearViewScenePath(e,i){var n;if(this.control.textEditorManager.clear(e,i),this.queryTaskBatchData({msgType:D.Clear,dataType:V.Local,viewId:e}).forEach(s=>{this.taskBatchData.delete(s)}),this.taskBatchData.add({dataType:V.Local,msgType:D.Clear,viewId:e}),this.runAnimation(),!i){const s=this.viewContainerManager.getCurScenePath(e);(n=this.collector)==null||n.dispatch({type:D.Clear,viewId:e,scenePath:s})}this.zIndexNodeMethod&&this.zIndexNodeMethod.clearZIndex(e),this.clearLocalPointsBatchData(),await new Promise(s=>{this.clearAllResolve=s}).then(()=>{this.clearAllResolve=void 0})}internalMsgEmitterListener(){var e;this.methodBuilder=new Q([x.CopyNode,x.SetColorNode,x.DeleteNode,x.RotateNode,x.ScaleNode,x.TranslateNode,x.ZIndexNode,x.RotateNode,x.SetFontStyle,x.SetPoint,x.SetLock,x.SetShapeOpt]).registerForMainEngine(W.MainEngine,this.control),this.zIndexNodeMethod=(e=this.methodBuilder)==null?void 0:e.getBuilder(x.ZIndexNode)}setZIndex(e){const i=this.currentToolsData&&ne(this.currentToolsData.toolsOpt);return i&&this.zIndexNodeMethod&&this.isUseZIndex&&(this.zIndexNodeMethod.addMaxLayer(e),i.zIndex=this.zIndexNodeMethod.getMaxZIndex(e)),i}clearLocalPointsBatchData(){this.localPointsBatchData.length=0}hoverCursor(e,i){var n;if(((n=this.currentToolsData)==null?void 0:n.toolsType)===N.Selector){const s=this.viewContainerManager.getView(i);if(s&&s.displayer&&s.displayer.vDom){const c=s.displayer.vDom.state.floatBarData;if(c){const{x:l,y:d,w:g,h}=c;if(Ro(e,{x:l,y:d,w:g,h}))return}}const r=this.viewContainerManager.transformToScenePoint(e,i),a={msgType:D.CursorHover,dataType:V.Local,point:r,toolsType:this.currentToolsData.toolsType,opt:this.currentToolsData.toolsOpt,isRunSubWork:!1,viewId:i};this.queryTaskBatchData({msgType:D.CursorHover,dataType:V.Local,toolsType:this.currentToolsData.toolsType,viewId:i}).forEach(c=>{this.taskBatchData.delete(c)}),this.taskBatchData.add(a),this.runAnimation()}}sendCursorEvent(e,i){if(!this.currentLocalWorkData||this.currentLocalWorkData.workState===j.Unwritable||!this.currentToolsData||!this.isCanSentCursor)return;let n=[void 0,void 0];this.currentToolsData&&(this.isCanDrawWork||this.currentToolsData.toolsType===N.Text)&&this.currentLocalWorkData.workState!==j.Start&&this.currentLocalWorkData.workState!==j.Doing&&(n=e,this.control.cursor.sendEvent(n,i))}getBoundingRect(e){var n,s;if(!((n=this.boundingRectMap)==null?void 0:n.get(e))){const r=(s=this.collector)==null?void 0:s.getScenePathData(e);if(!r)return;if(Object.keys(r).forEach(a=>{var c;((c=this.collector)==null?void 0:c.getLocalId(a))===E&&delete r[a]}),Object.keys(r).length&&this.viewContainerManager.mainView&&this.viewContainerManager.mainView.cameraOpt){const a={msgType:D.BoundingBox,dataType:V.Local,scenePath:e,scenes:r,cameraOpt:{...this.viewContainerManager.mainView.cameraOpt},isRunSubWork:!0,viewId:this.viewContainerManager.mainView.id};return this.taskBatchData.add(a),this.runAnimation(),new Promise(c=>{this.boundingRectMap.set(e,c)}).then(c=>(this.boundingRectMap.delete(e),c))}}}getSnapshot(e,i,n,s){var a,c,l,d,g,h;if(!((a=this.snapshotMap)==null?void 0:a.get(e))){const M=(c=this.collector)==null?void 0:c.getViewIdBySecenPath(e);if(!M)return;const y=(l=this.collector)==null?void 0:l.getStorageData(M,e);if(!y)return;if(Object.keys(y).forEach(v=>{var f;((f=this.collector)==null?void 0:f.getLocalId(v))===E&&delete y[v]}),Object.keys(y).length){const v=this.viewContainerManager.mainView;if(!v)return;const f=i||((d=v.cameraOpt)==null?void 0:d.width),I=n||((g=v.cameraOpt)==null?void 0:g.height),m={msgType:D.Snapshot,dataType:V.Local,scenePath:e,scenes:y,w:f,h:I,cameraOpt:s&&{...s,width:f,height:I}||v.cameraOpt,isRunSubWork:!0,viewId:v.id,maxZIndex:(h=this.zIndexNodeMethod)==null?void 0:h.getMaxZIndex(M)};return this.taskBatchData.add(m),this.runAnimation(),new Promise(w=>{this.snapshotMap.set(e,w)}).then(w=>(this.snapshotMap.delete(e),w))}}}queryTaskBatchData(e){const i=[];if(e)for(const n of this.taskBatchData.values()){let s=!0;for(const[r,a]of Object.entries(e))if(n[r]!==a){s=!1;break}s&&i.push(n)}return i}insertImage(e){const i=this.viewContainerManager.mainView,n=i==null?void 0:i.id,s=i==null?void 0:i.focusScenePath;if(n&&s){const{src:r,uuid:a}=e;if(a&&!r){this.tmpImageConfigMap.set(a,e);return}const c=Date.now();this.setCurrentLocalWorkData({...this.currentLocalWorkData,undoTickerId:c}),me.InternalMsgEmitter.emit("undoTickerStart",c,n);const l={...e};this.zIndexNodeMethod&&(this.zIndexNodeMethod.addMaxLayer(n),l.zIndex=this.zIndexNodeMethod.getMaxZIndex(n)),this.taskBatchData.add({msgType:D.FullWork,dataType:V.Local,toolsType:N.Image,workId:e.uuid,opt:l,viewId:n,undoTickerId:c,willRefresh:!0,willSyncService:!0}),this.runAnimation()}}lockImage(e,i){var a,c;const n=this.viewContainerManager.mainView,s=n==null?void 0:n.id,r=n==null?void 0:n.focusScenePath;if(s&&r&&this.collector){const l=this.collector.getStorageData(s,r);if(!l)return;for(const[d,g]of Object.entries(l))if(g&&g.toolsType===N.Image&&g.opt.uuid===e){const h=Date.now();me.InternalMsgEmitter.emit("undoTickerStart",h,s);const M=(a=this.collector)!=null&&a.isOwn(d)?(c=this.collector)==null?void 0:c.getLocalId(d):d,y={...g.opt,locked:i};this.taskBatchData.add({msgType:D.FullWork,dataType:V.Local,toolsType:N.Image,workId:M,opt:y,viewId:s,undoTickerId:h,willRefresh:!0,willSyncService:!0}),this.runAnimation();return}}}completeImageUpload(e,i){const n=this.viewContainerManager.mainView,s=n==null?void 0:n.id,r=n==null?void 0:n.focusScenePath;if(s&&r){const a=this.tmpImageConfigMap.get(e);a&&(a.src=i,this.insertImage(a),this.tmpImageConfigMap.delete(e));return}}getImagesInformation(e){const i=[];if(this.collector){const n=this.collector.getScenePathData(e);if(!n)return i;for(const s of Object.values(n))if(s&&s.toolsType===N.Image){const r=s.opt;i.push({uuid:r.uuid,centerX:r.centerX,centerY:r.centerY,width:r.width,height:r.height,locked:r.locked,uniformScale:r.uniformScale,crossOrigin:r.crossOrigin})}}return i}setShapeSelectorByWorkId(e,i,n){this.taskBatchData.add({workId:E,selectIds:[e],msgType:D.Select,dataType:V.Service,viewId:i,willSyncService:!0,undoTickerId:n}),this.runAnimation()}blurSelector(e,i,n){this.taskBatchData.add({workId:E,selectIds:[],msgType:D.Select,dataType:V.Service,viewId:e,scenePath:i,undoTickerId:n}),this.runAnimation()}}var dM=De,gM=function(){return dM.Date.now()},MM=gM,pM=/\s/;function fM(o){for(var t=o.length;t--&&pM.test(o.charAt(t)););return t}var yM=fM,IM=yM,vM=/^\s+/;function wM(o){return o&&o.slice(0,IM(o)+1).replace(vM,"")}var NM=wM,mM=Ve,TM=Pe,zM="[object Symbol]";function CM(o){return typeof o=="symbol"||TM(o)&&mM(o)==zM}var jM=CM,SM=NM,Ji=Ue,xM=jM,Ki=NaN,DM=/^[-+]0x[0-9a-f]+$/i,LM=/^0b[01]+$/i,kM=/^0o[0-7]+$/i,AM=parseInt;function bM(o){if(typeof o=="number")return o;if(xM(o))return Ki;if(Ji(o)){var t=typeof o.valueOf=="function"?o.valueOf():o;o=Ji(t)?t+"":t}if(typeof o!="string")return o===0?o:+o;o=SM(o);var e=LM.test(o);return e||kM.test(o)?AM(o.slice(2),e?2:8):DM.test(o)?Ki:+o}var EM=bM,OM=Ue,Ot=MM,qi=EM,YM="Expected a function",PM=Math.max,RM=Math.min;function WM(o,t,e){var i,n,s,r,a,c,l=0,d=!1,g=!1,h=!0;if(typeof o!="function")throw new TypeError(YM);t=qi(t)||0,OM(e)&&(d=!!e.leading,g="maxWait"in e,s=g?PM(qi(e.maxWait)||0,t):s,h="trailing"in e?!!e.trailing:h);function M(C){var L=i,b=n;return i=n=void 0,l=C,r=o.apply(b,L),r}function y(C){return l=C,a=setTimeout(I,t),d?M(C):r}function v(C){var L=C-c,b=C-l,R=t-L;return g?RM(R,s-b):R}function f(C){var L=C-c,b=C-l;return c===void 0||L>=t||L<0||g&&b>=s}function I(){var C=Ot();if(f(C))return m(C);a=setTimeout(I,v(C))}function m(C){return a=void 0,h&&i?M(C):(i=n=void 0,r)}function w(){a!==void 0&&clearTimeout(a),l=0,i=c=n=a=void 0}function T(){return a===void 0?r:m(Ot())}function z(){var C=Ot(),L=f(C);if(i=arguments,n=this,c=C,L){if(a===void 0)return y(c);if(g)return clearTimeout(a),a=setTimeout(I,t),M(c)}return a===void 0&&(a=setTimeout(I,t)),r}return z.cancel=w,z.flush=T,z}var Uo=WM;const _i=Ze(Uo);var UM=Uo,$M=Ue,BM="Expected a function";function FM(o,t,e){var i=!0,n=!0;if(typeof o!="function")throw new TypeError(BM);return $M(e)&&(i="leading"in e?!!e.leading:i,n="trailing"in e?!!e.trailing:n),UM(o,t,{leading:i,maxWait:t,trailing:n})}var QM=FM;const ve=Ze(QM);class HM{constructor(t){p(this,"internalMsgEmitter");p(this,"control");p(this,"roomHotkeyCheckers");p(this,"tmpCopyStore",new Map);p(this,"tmpCopyCoordInfo");var n;const{control:e,internalMsgEmitter:i}=t;this.control=e,this.internalMsgEmitter=i,this.roomHotkeyCheckers=((n=this.control.room)==null?void 0:n.viewsParams.hotKeys.nodes)||[]}get isUseSelf(){var t;return((t=this.control.room)==null?void 0:t.disableDeviceInputs)||!1}get isSelector(){var t;return((t=this.control.worker.currentToolsData)==null?void 0:t.toolsType)===N.Selector}get collector(){return this.control.collector}get mainEngine(){return this.control.worker}get keyboardKind(){return/^Mac/i.test(navigator.platform)?"mac":"windows"}getEventKey(t){switch(t.type){case"keydown":return"KeyDown"}return"KeyUp"}onActiveHotkey(t){var n,s,r;console.log("onActiveHotkey---sdk",t);const e=this.control.viewContainerManager.focuedViewId,i=(n=this.control.viewContainerManager.focuedView)==null?void 0:n.focusScenePath;if(e&&i)switch(t){case"delete":this.isSelector&&((s=this.collector)!=null&&s.hasSelector(e,i))&&Q.emitMethod(W.MainEngine,x.DeleteNode,{workIds:[E],viewId:e});break;case"copy":this.isSelector&&((r=this.collector)!=null&&r.hasSelector(e,i))&&this.copySelectorToTemp(e,i);break;case"paste":this.tmpCopyStore.size&&this.pasteTempToFocusView(e,i);break}(t==="changeToPencil"||t==="redo"||t==="undo")&&this.onSelfActiveHotkey(t)}colloctHotkey(t){if(this.isUseSelf){const e=this.checkHotkey(t);e&&this.onSelfActiveHotkey(e)}}onSelfActiveHotkey(t){switch(console.log("onActiveHotkey---self",t),t){case"changeToPencil":this.setMemberState({currentApplianceName:H.pencil,useNewPencil:!0});break;case"changeToArrow":this.setMemberState({currentApplianceName:H.arrow});break;case"changeToClick":this.setMemberState({currentApplianceName:H.clicker});break;case"changeToEllipse":this.setMemberState({currentApplianceName:H.ellipse});break;case"changeToEraser":this.setMemberState({currentApplianceName:H.eraser,isLine:!0});break;case"changeToHand":this.setMemberState({currentApplianceName:H.hand});break;case"changeToLaserPointer":this.setMemberState({currentApplianceName:H.laserPointer});break;case"changeToSelector":this.setMemberState({currentApplianceName:H.selector});break;case"changeToRectangle":this.setMemberState({currentApplianceName:H.rectangle});break;case"changeToStraight":this.setMemberState({currentApplianceName:H.straight});break;case"redo":this.control.room&&!this.control.room.disableSerialization&&this.control.viewContainerManager.redo();break;case"undo":this.control.room&&!this.control.room.disableSerialization&&this.control.viewContainerManager.undo();break;case"changeToText":this.setMemberState({currentApplianceName:H.text});break}}checkHotkey(t){for(const e of this.roomHotkeyCheckers){const{kind:i,checker:n}=e;if(n({nativeEvent:t,kind:this.getEventKey(t),key:t.key,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey},this.keyboardKind))return i}}copySelectorToTemp(t,e){var l,d;const i=this.control.viewContainerManager.getView(t),n=(d=(l=this.mainEngine)==null?void 0:l.methodBuilder)==null?void 0:d.getBuilder(x.CopyNode);if(!i||!this.collector||!n)return;const s=this.collector.transformKey(E),r=this.collector.getStorageData(t,e);if(!r)return;const a=r[s],c=a&&n.copySelector({viewId:t,store:a});c&&(this.tmpCopyCoordInfo=c==null?void 0:c.copyCoordInfo,this.tmpCopyStore=c==null?void 0:c.copyStores)}pasteTempToFocusView(t,e){var s,r;const i=this.control.viewContainerManager.getView(t),n=(r=(s=this.mainEngine)==null?void 0:s.methodBuilder)==null?void 0:r.getBuilder(x.CopyNode);if(!(!i||!this.tmpCopyCoordInfo||!this.tmpCopyStore.size||!this.collector||!n)&&i.viewData&&this.tmpCopyCoordInfo){const a=K.cloneDeep(this.tmpCopyCoordInfo.offset),c=this.tmpCopyCoordInfo.cameraOpt,l=i.viewData.camera;a.x=a.x+l.centerX-c.centerX,a.y=a.y+l.centerY-c.centerY,n.pasteSelector({viewId:t,scenePath:e,copyStores:K.cloneDeep(this.tmpCopyStore),copyCoordInfo:{offset:a,cameraOpt:l}})}}setMemberState(t){var e;(e=this.control.room)==null||e.setMemberState(t)}}const Ke=class Ke{constructor(t){p(this,"plugin");p(this,"room");p(this,"play");p(this,"collector");p(this,"hasSwitchToSelectorEffect");p(this,"snapshootStateMap");p(this,"effectResolve");p(this,"hotkeyManager");p(this,"pluginOptions");p(this,"roomMember");p(this,"cursor");p(this,"textEditorManager");p(this,"worker");p(this,"onSceneChange",async(t,e)=>{var r;const i=this.viewContainerManager.getView(e);i!=null&&i.focusScenePath&&(r=this.collector)!=null&&r.hasSelector(e,i.focusScenePath)&&this.worker.blurSelector(e,i.focusScenePath),this.textEditorManager.checkEmptyTextBlur();const n=i==null?void 0:i.displayer;n&&(n.setActive(!1),await n.stopEventHandler());const s=t;s&&this.viewContainerManager.setViewScenePath(e,s),n==null||n.setActive(!0)});p(this,"onRoomMembersChange",t=>{this.roomMember.setRoomMembers(J.toJS(t))});p(this,"onMemberChange",ve(t=>{if(!this.room||!this.worker)return;const e=this.getToolsKey(t),i=this.getToolsOpt(e,t);this.worker.setCurrentToolsData(i),this.effectViewContainer(e),this.effectResolve&&this.effectResolve(!0)},100,{leading:!1}));p(this,"internalSceneChange",(t,e)=>{var i;(i=this.worker)==null||i.clearViewScenePath(t,!0).then(()=>{var n;(n=this.worker)==null||n.pullServiceData(t,e)})});p(this,"internalCameraChange",(t,e)=>{var i;(i=this.worker)==null||i.updateCamera(t,e)});const{displayer:e,plugin:i,options:n}=t;this.plugin=i,this.room=J.isRoom(e)?e:void 0,this.play=J.isPlayer(e)?e:void 0,this.pluginOptions=n,this.roomMember=new Jg;const s={control:this,internalMsgEmitter:Ke.InternalMsgEmitter};this.cursor=new qg(s),this.textEditorManager=new Kg(s),this.worker=new hM(s),this.hotkeyManager=new HM(s)}hasOffscreenCanvas(){return!!OffscreenCanvas}bindPlugin(t){var e,i;this.plugin=t,this.collector&&this.collector.removeStorageStateListener(),this.collector=new Bt(t,(i=(e=this.pluginOptions)==null?void 0:e.syncOpt)==null?void 0:i.interval),this.cursor.activeCollector(),this.activePlugin()}destroy(){var t,e,i,n,s;this.roomMember.destroy(),(t=this.collector)==null||t.destroy(),(e=this.worker)==null||e.destroy(),(i=this.viewContainerManager)==null||i.destroy(),(n=this.cursor)==null||n.destroy(),(s=this.textEditorManager)==null||s.destory()}cleanCurrentScene(){const t=Date.now(),e=this.worker.getLocalWorkViewId()||this.viewContainerManager.focuedViewId;e&&(Ke.InternalMsgEmitter.emit("undoTickerStart",t,e),this.worker.clearViewScenePath(e).then(()=>{Ke.InternalMsgEmitter.emit("undoTickerEnd",t,e)}))}onWritableChange(t){var e,i;t?(i=this.worker)==null||i.abled():(e=this.worker)==null||e.unWritable()}getToolsKey(t){const e=t.currentApplianceName;switch(this.hasSwitchToSelectorEffect=!1,e){case H.text:return t.textCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),N.Text;case H.pencil:return t.useLaserPen?N.LaserPen:N.Pencil;case H.eraser:case H.pencilEraser:return N.Eraser;case H.selector:return N.Selector;case H.arrow:return t.arrowCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),N.Arrow;case H.straight:return t.straightCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),N.Straight;case H.ellipse:return t.ellipseCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),N.Ellipse;case H.rectangle:return t.rectangleCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),N.Rectangle;case H.shape:if(t.shapeCompleteToSelector&&(this.hasSwitchToSelectorEffect=!0),t.shapeType===Ce.Pentagram||t.shapeType===Ce.Star)return N.Star;if(t.shapeType===Ce.Polygon||t.shapeType===Ce.Triangle||t.shapeType===Ce.Rhombus)return N.Polygon;if(t.shapeType===Ce.SpeechBalloon)return N.SpeechBalloon;break}return N.Clicker}getToolsOpt(t,e){const i=e.currentApplianceName,n={strokeColor:ut(e.strokeColor[0],e.strokeColor[1],e.strokeColor[2],e.strokeOpacity||1),thickness:e.strokeWidth,isOpacity:(e==null?void 0:e.strokeOpacity)&&e.strokeOpacity<1||(e==null?void 0:e.fillOpacity)&&e.fillOpacity<1||(e==null?void 0:e.textOpacity)&&e.textOpacity<1||(e==null?void 0:e.textBgOpacity)&&e.textBgOpacity<1||!1};switch(t){case N.Text:n.fontFamily=window.getComputedStyle(document.documentElement).getPropertyValue("font-family"),n.fontSize=(e==null?void 0:e.textSizeOverride)||(e==null?void 0:e.textSize)||Number(window.getComputedStyle(document.body).fontSize),n.textAlign=(e==null?void 0:e.textAlign)||"left",n.verticalAlign=(e==null?void 0:e.verticalAlign)||"middle",n.fontColor=(e==null?void 0:e.textColor)&&ut(e.textColor[0],e.textColor[1],e.textColor[2],e.textOpacity||1)||n.strokeColor||"rgba(0,0,0,1)",n.fontBgColor=Array.isArray(e==null?void 0:e.textBgColor)&&ut(e.textBgColor[0],e.textBgColor[1],e.textBgColor[2],e.textBgOpacity||1)||"transparent",n.bold=(e==null?void 0:e.bold)&&"bold"||void 0,n.italic=(e==null?void 0:e.italic)&&"italic"||void 0,n.underline=(e==null?void 0:e.underline)||void 0,n.lineThrough=(e==null?void 0:e.lineThrough)||void 0,n.text="",n.strokeColor=void 0;break;case N.Pencil:n.strokeType=(e==null?void 0:e.strokeType)||pt.Normal;break;case N.Eraser:n.thickness=Math.min(3,Math.max(1,Math.floor(e.pencilEraserSize||1)))-1,n.isLine=i===H.eraser&&!0;break;case N.LaserPen:n.duration=(e==null?void 0:e.duration)||1,n.strokeType=(e==null?void 0:e.strokeType)||pt.Normal;break;case N.Ellipse:case N.Rectangle:case N.Star:case N.Polygon:case N.SpeechBalloon:t===N.Star&&(e.shapeType===Ce.Pentagram?(n.vertices=10,n.innerVerticeStep=2,n.innerRatio=.4):e!=null&&e.vertices&&(e!=null&&e.innerVerticeStep)&&(e!=null&&e.innerRatio)&&(n.vertices=e.vertices,n.innerVerticeStep=e.innerVerticeStep,n.innerRatio=e.innerRatio)),t===N.Polygon&&(e.shapeType===Ce.Triangle?n.vertices=3:e.shapeType===Ce.Rhombus?n.vertices=4:e.vertices&&(n.vertices=e.vertices)),n.fillColor=(e==null?void 0:e.fillColor)&&ut(e.fillColor[0],e.fillColor[1],e.fillColor[2],e==null?void 0:e.fillOpacity)||"transparent",t===N.SpeechBalloon&&(n.placement=e.placement||"bottomLeft");break}return{toolsType:t,toolsOpt:n}}effectViewContainer(t){var e,i,n,s,r;switch(t){case N.Text:case N.Pencil:case N.LaserPen:case N.Arrow:case N.Straight:case N.Rectangle:case N.Ellipse:case N.Star:case N.Polygon:case N.SpeechBalloon:case N.Triangle:case N.Rhombus:this.room.disableDeviceInputs=!0,(e=this.worker)==null||e.abled();break;case N.Eraser:case N.Selector:this.room.disableDeviceInputs=!1,(i=this.cursor)==null||i.unabled(),(n=this.worker)==null||n.abled();break;default:this.room.disableDeviceInputs=!1,(s=this.worker)==null||s.unWritable(),(r=this.cursor)==null||r.unabled();break}setTimeout(()=>{this.viewContainerManager.getAllViews().forEach(c=>{c!=null&&c.displayer&&c.displayer.bindToolsClass()})},0)}async getBoundingRect(t){var i,n,s,r,a;const e=await((i=this.worker)==null?void 0:i.getBoundingRect(t));if(e){const c=((s=(n=this.viewContainerManager.mainView)==null?void 0:n.viewData)==null?void 0:s.convertToPointInWorld({x:e.x,y:e.y}))||{x:e.x,y:e.y},l=((a=(r=this.viewContainerManager.mainView)==null?void 0:r.viewData)==null?void 0:a.camera.scale)||1;return{width:Math.floor(e.w/l)+1,height:Math.floor(e.h/l)+1,originX:c.x,originY:c.y}}}async screenshotToCanvas(t,e,i,n,s,r,a){const c=await this.worker.getSnapshot(e,i,n,s);c&&(t.drawImage(c,r||0,a||0),c.close())}async scenePreview(t,e){var r,a,c,l;const i=(r=this.collector)==null?void 0:r.getViewIdBySecenPath(t);if(!i)return;const n=this.viewContainerManager.getView(i);if(!n||!((a=n.cameraOpt)!=null&&a.width)||!((c=n.cameraOpt)!=null&&c.height))return;const s=await((l=this.worker)==null?void 0:l.getSnapshot(t));if(s&&this.worker){const d=document.createElement("canvas"),g=d.getContext("2d"),{width:h,height:M}=n.cameraOpt;d.width=h,d.height=M,g&&(g.drawImage(s,0,0),e.src=d.toDataURL(),e.onload=()=>{d.remove()},e.onerror=()=>{d.remove(),e.remove()}),s.close()}}switchToSelector(){var t;(t=this.room)==null||t.setMemberState({currentApplianceName:H.selector})}async runEffectWork(t){if(this.hasSwitchToSelectorEffect){const e=await new Promise(i=>{this.switchToSelector(),this.effectResolve=i});this.effectResolve=void 0,e&&t&&t()}}setSnapshootData(){var t;this.room&&(this.snapshootStateMap=new Map,this.snapshootStateMap.set("memberState",(t=this.room)==null?void 0:t.state.memberState))}getSnapshootData(t){var e;return(e=this.snapshootStateMap)==null?void 0:e.get(t)}clearSnapshootData(){var t;(t=this.snapshootStateMap)==null||t.clear(),this.snapshootStateMap=void 0}};p(Ke,"InternalMsgEmitter",new oo);let me=Ke;var ZM=ko,VM=4;function GM(o){return ZM(o,VM)}var JM=GM;const Xi=Ze(JM),Ye=class Ye{constructor(t){p(this,"emitter",new oo);p(this,"undoStack");p(this,"redoStack");p(this,"worker");p(this,"control");p(this,"room");p(this,"isTicking");p(this,"undoTickerId");p(this,"viewId");p(this,"scenePath");p(this,"tickStartStorerCache");p(this,"excludeIds",new Set);p(this,"undoTickerEnd",_i((t,e,i)=>{var n,s;if(t===this.undoTickerId&&i===this.scenePath&&e===this.viewId&&this.tickStartStorerCache){const r=((n=this.collector)==null?void 0:n.storage[e])&&((s=this.collector)==null?void 0:s.storage[e][i])||{},a=this.diffFun(this.tickStartStorerCache,new Map(Object.entries(r)));a.size&&(this.undoStack.push({id:t,type:2,data:ne(a),scenePath:i}),this.undoStack.length>Ye.MaxStackLength&&this.undoStack.shift(),this.emitter.emit("onCanUndoStepsUpdate",this.undoStack.length)),this.redoStack.length&&(this.redoStack.length=0,this.emitter.emit("onCanRedoStepsUpdate",this.redoStack.length)),this.isTicking=!1,this.scenePath=void 0,this.tickStartStorerCache=void 0,this.undoTickerId=void 0,this.excludeIds.clear()}},Ye.waitTime));p(this,"onChangeScene",_i(()=>{const t=this.control.viewContainerManager.getCurScenePath(this.viewId);if(t){const e=this.undoStack.filter(n=>n.scenePath===t).length,i=this.redoStack.filter(n=>n.scenePath===t).length;this.emitter.emit("onCanUndoStepsUpdate",e),this.emitter.emit("onCanRedoStepsUpdate",i)}},Ye.waitTime));const{control:e,internalMsgEmitter:i,viewId:n}=t;this.control=e,this.emitter=i,this.undoStack=[],this.redoStack=[],this.room=e.room,this.worker=e.worker,this.isTicking=!1,this.viewId=n}get collector(){return this.control.collector}addExcludeIds(t){if(this.isTicking)for(const e of t)this.excludeIds.add(e)}undoTickerStart(t,e){if(this.collector&&(this.undoTickerId!==t||this.scenePath!==e)){this.isTicking=!0,this.excludeIds.clear();const i=this.collector.transformKey(E);this.excludeIds.add(i),this.undoTickerId=t,this.scenePath=e;const n=this.collector.getStorageData(this.viewId,e)||{};this.tickStartStorerCache=new Map(Object.entries(ne(n)))}}undoTickerEndSync(t,e,i,n){var s,r;if(t===this.undoTickerId&&i===this.scenePath&&e===this.viewId&&this.tickStartStorerCache){const a=((s=this.collector)==null?void 0:s.storage[e])&&((r=this.collector)==null?void 0:r.storage[e][i])||{},c=this.diffFun(this.tickStartStorerCache,new Map(Object.entries(a)));c.size&&(this.undoStack.push({id:t,type:2,data:ne(c),scenePath:i,tickStartStorerCache:n&&ne(this.tickStartStorerCache)||void 0}),this.undoStack.length>Ye.MaxStackLength&&this.undoStack.shift(),this.emitter.emit("onCanUndoStepsUpdate",this.undoStack.length)),this.redoStack.length&&(this.redoStack.length=0,this.emitter.emit("onCanRedoStepsUpdate",this.redoStack.length)),this.isTicking=!1,this.scenePath=void 0,this.tickStartStorerCache=void 0,this.undoTickerId=void 0,this.excludeIds.clear()}}undo(t){this.undoTickerId&&this.tickStartStorerCache&&this.scenePath&&this.undoTickerEndSync(this.undoTickerId,this.viewId,this.scenePath,!0);let e=this.undoStack.length-1;for(;e>=0;){if(this.undoStack[e].scenePath===t){const r=this.undoStack[e];r&&(this.redoStack.push(r),r.type===2&&r.data&&this.refreshPlugin(r)),this.undoStack.splice(e,1);break}e--}const i=this.undoStack.filter(s=>s.scenePath===t).length,n=this.redoStack.filter(s=>s.scenePath===t).length;return this.emitter.emit("onCanUndoStepsUpdate",i),this.emitter.emit("onCanRedoStepsUpdate",n),i}redo(t){let e=this.redoStack.length-1;for(;e>=0;){if(this.redoStack[e].scenePath===t){const r=this.redoStack[e];r&&(!this.undoTickerId&&r.tickStartStorerCache?(this.undoTickerId=r.id,this.tickStartStorerCache=r.tickStartStorerCache,this.scenePath=r.scenePath):this.undoStack.push(r),r.type===2&&r.data&&this.refreshPlugin(r,!0)),this.redoStack.splice(e,1);break}e--}const i=this.undoStack.filter(s=>s.scenePath===t).length,n=this.redoStack.filter(s=>s.scenePath===t).length;return this.emitter.emit("onCanUndoStepsUpdate",i),this.emitter.emit("onCanRedoStepsUpdate",n),n}clear(){this.clearUndo(),this.clearRedo()}clearUndo(){this.undoStack.length=0,this.emitter.emit("onCanUndoStepsUpdate",this.undoStack.length)}clearRedo(){this.redoStack.length=0,this.emitter.emit("onCanRedoStepsUpdate",this.redoStack.length)}canUndo(){return!!this.undoStack.length}canRedo(){return!!this.redoStack.length}onFocusView(){const t=this.control.viewContainerManager.getCurScenePath(this.viewId);if(t){const e=this.undoStack.filter(n=>n.scenePath===t).length,i=this.redoStack.filter(n=>n.scenePath===t).length;this.emitter.emit("onCanUndoStepsUpdate",e),this.emitter.emit("onCanRedoStepsUpdate",i)}}diffFun(t,e){const i=new Set,n=t.keys(),s=e.keys();for(const r of n){if(this.excludeIds.has(r))continue;const a=t.get(r),c=e.get(r);if(a&&c){if(ce(c,a))continue;i.add({dataType:3,key:r,data:[a,c]});continue}a&&i.add({dataType:2,key:r,data:a})}for(const r of s){if(this.excludeIds.has(r))continue;const a=e.get(r);a&&!t.has(r)&&i.add({dataType:1,key:r,data:a})}return i}isDrawEffectiveScene(t,e){const{key:i}=t;return!e.includes(i)}isDeleteEffectiveScene(t,e,i){var r;const{key:n}=t;if(!e.includes(n))return!1;const s=e.filter(a=>{var c,l;return((c=this.collector)==null?void 0:c.getLocalId(a))===E&&!((l=this.collector)!=null&&l.isOwn(a))}).map(a=>{var c;return(c=this.collector)==null?void 0:c.storage[this.viewId][i][a]});for(const a of s)if((r=a==null?void 0:a.selectIds)!=null&&r.includes(n))return!1;return!0}isOldEffectiveScene(t,e,i){var r;const{key:n}=t;if(!e.includes(n))return!1;const s=e.filter(a=>{var c,l;return((c=this.collector)==null?void 0:c.getLocalId(a))===E&&!((l=this.collector)!=null&&l.isOwn(a))}).map(a=>{var c;return(c=this.collector)==null?void 0:c.storage[this.viewId][i][a]});for(const a of s)if((r=a==null?void 0:a.selectIds)!=null&&r.includes(n))return!1;return!0}isNewEffectiveScene(t,e){const{key:i}=t;return!!e.includes(i)}refreshPlugin(t,e=!1){var r,a,c,l,d,g,h,M,y,v,f,I,m,w,T,z,C,L,b,R,U;let i;const{scenePath:n}=t,s=t.data;if(!(!s||!this.collector))for(const $ of s.values()){const{dataType:Z,data:P,key:X}=$,se=this.collector.storage[this.viewId]&&this.collector.storage[this.viewId][n],_=se&&Object.keys(se)||[];switch(Z){case 1:if(i=e?this.isDrawEffectiveScene($,_):this.isDeleteEffectiveScene($,_,n),i)if(e&&!Array.isArray(P)){if((r=P.updateNodeOpt)!=null&&r.useAnimation&&(P.updateNodeOpt.useAnimation=!1),((a=this.collector)==null?void 0:a.getLocalId(X))===E&&((c=this.collector)!=null&&c.isOwn($.key))){const F=P.selectIds;if(F){const G=_.filter(A=>{var Y,B;return((Y=this.collector)==null?void 0:Y.getLocalId(A))===E&&!((B=this.collector)!=null&&B.isOwn(A))}).map(A=>{var Y;return(Y=this.collector)==null?void 0:Y.storage[this.viewId][n][A]});let q=!1;for(const A of G)for(let Y=0;Y<F.length;Y++)(l=A==null?void 0:A.selectIds)!=null&&l.includes(F[Y])&&(delete F[Y],q=!0);q&&(P.selectIds=F.filter(A=>!!A))}}(d=this.collector)==null||d.updateValue($.key,P,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0})}else!e&&!Array.isArray($.data)&&((g=this.collector)==null||g.updateValue($.key,void 0,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0}));break;case 2:if(i=e?this.isDeleteEffectiveScene($,_,n):this.isDrawEffectiveScene($,_),i){if(e&&!Array.isArray(P))(h=this.collector)==null||h.updateValue(X,void 0,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0});else if(!e&&!Array.isArray(P)){if((M=P.updateNodeOpt)!=null&&M.useAnimation&&(P.updateNodeOpt.useAnimation=!1),((y=this.collector)==null?void 0:y.getLocalId($.key))===E&&((v=this.collector)!=null&&v.isOwn($.key))){const F=P.selectIds;if(F){const G=_.filter(A=>{var Y,B;return((Y=this.collector)==null?void 0:Y.getLocalId(A))===E&&!((B=this.collector)!=null&&B.isOwn(A))}).map(A=>{var Y;return(Y=this.collector)==null?void 0:Y.storage[this.viewId][n][A]});let q=!1;for(const A of G)for(let Y=0;Y<F.length;Y++)(f=A==null?void 0:A.selectIds)!=null&&f.includes(F[Y])&&(delete F[Y],q=!0);q&&(P.selectIds=F.filter(A=>!!A))}}(I=this.collector)==null||I.updateValue($.key,$.data,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0})}}break;case 3:if(i=e?this.isNewEffectiveScene($,_):this.isOldEffectiveScene($,_,n),i){if(e&&Array.isArray(P)&&P.length===2){const F=P[1];if((m=F.updateNodeOpt)!=null&&m.useAnimation&&(F.updateNodeOpt.useAnimation=!1),((w=this.collector)==null?void 0:w.getLocalId($.key))===E&&((T=this.collector)!=null&&T.isOwn($.key))){const G=F.selectIds;if(G){const q=_.filter(Y=>{var B,te;return((B=this.collector)==null?void 0:B.getLocalId(Y))===E&&!((te=this.collector)!=null&&te.isOwn(Y))}).map(Y=>{var B;return(B=this.collector)==null?void 0:B.storage[this.viewId][n][Y]});let A=!1;for(const Y of q)for(let B=0;B<G.length;B++)Y!=null&&Y.selectIds&&((z=Y.selectIds)!=null&&z.includes(G[B]))&&(delete G[B],A=!0);A&&(F.selectIds=G.filter(Y=>!!Y))}}(C=this.collector)==null||C.updateValue(X,F,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0})}else if(!e&&Array.isArray(P)&&P.length===2){const F=P[0];if((L=F.updateNodeOpt)!=null&&L.useAnimation&&(F.updateNodeOpt.useAnimation=!1),((b=this.collector)==null?void 0:b.getLocalId($.key))===E&&((R=this.collector)!=null&&R.isOwn($.key))){const G=F.selectIds;if(G){const q=_.filter(Y=>{var B,te;return((B=this.collector)==null?void 0:B.getLocalId(Y))===E&&!((te=this.collector)!=null&&te.isOwn(Y))}).map(Y=>{var B;return(B=this.collector)==null?void 0:B.storage[this.viewId][n][Y]});let A=!1;for(const Y of q)for(let B=0;B<G.length;B++)Y!=null&&Y.selectIds&&Y.selectIds.includes(G[B])&&(delete G[B],A=!0);A&&(F.selectIds=G.filter(Y=>!!Y))}}(U=this.collector)==null||U.updateValue($.key,F,{isAfterUpdate:!0,viewId:this.viewId,scenePath:n,isSync:!0})}}break}}}};p(Ye,"sdkCallBack"),p(Ye,"MaxStackLength",20),p(Ye,"waitTime",100);let Nt=Ye;function KM(o){return o instanceof TouchEvent||o instanceof window.TouchEvent||(o==null?void 0:o.touches)&&(o==null?void 0:o.touches.length)||(o==null?void 0:o.changedTouches)&&(o==null?void 0:o.changedTouches.length)}function qe(o){return KM(o)&&(o.touches&&o.touches.length===1||o.changedTouches&&o.changedTouches.length===1)}function $o(o){return o.touches&&o.touches.length?{x:o.touches[0].pageX,y:o.touches[0].pageY}:o.changedTouches&&o.changedTouches.length?{x:o.changedTouches[0].pageX,y:o.changedTouches[0].pageY}:{x:o.pageX,y:o.pageY}}class _e{constructor(t){p(this,"internalMsgEmitter");p(this,"control");p(this,"mainView");p(this,"appViews",new Map);const{control:e,internalMsgEmitter:i}=t;this.control=e,this.internalMsgEmitter=i,this.internalMsgEmitter.on("undoTickerStart",this.undoTickerStart.bind(this)),this.internalMsgEmitter.on("undoTickerEnd",this.undoTickerEnd.bind(this)),this.internalMsgEmitter.on("excludeIds",this.addExcludeIds.bind(this))}undoTickerStart(t,e){const i=this.getView(e);i&&i.displayer&&i.focusScenePath&&i.displayer.commiter.undoTickerStart(t,i.focusScenePath)}undoTickerEnd(t,e,i){const n=this.getView(e);if(n&&n.displayer&&n.focusScenePath){if(i){n.displayer.commiter.undoTickerEndSync(t,e,n.focusScenePath);return}n.displayer.commiter.undoTickerEnd(t,e,n.focusScenePath)}}addExcludeIds(t,e){const i=this.getView(e);i&&i.displayer&&i.focusScenePath&&i.displayer.commiter.addExcludeIds(t)}undo(){const t=this.focuedView;let e=0;if(t){const i=t.focusScenePath;e=t.displayer.commiter.undo(i)||0}return e}redo(){const t=this.focuedView;let e=0;if(t){const i=t.focusScenePath;e=t.displayer.commiter.redo(i)||0}return e}validator(t,e,i){var r;const n=Xi(t[e]),s=Xi(i);if(e==="focusScenePath"&&i&&!ce(n,s)&&(this.control.internalSceneChange(t.id,s),(r=this.focuedView)==null||r.displayer.commiter.onChangeScene()),e==="cameraOpt"&&!ce(n,s)){if(s.width!==(n==null?void 0:n.width)||s.height!==(n==null?void 0:n.height)){const a=this.getView(e);a==null||a.displayer.updateSize()}this.control.internalCameraChange(t.id,s)}}destroyAppView(t,e=!1){const i=this.appViews.get(t);i&&(this.control.textEditorManager.clear(t,e),i.displayer.destroy(),this.appViews.delete(t))}createMianView(t){this.mainView=new Proxy(t,{set:(e,i,n)=>(this.control.worker.isActive&&this.validator(e,i,n),e[i]=n,!0)})}createAppView(t){const e=t.id,i=new Proxy(t,{set:(n,s,r)=>(this.control.worker.isActive&&this.validator(n,s,r),n[s]=r,!0)});this.appViews.set(e,i)}isAppView(t){return t!==we.viewId&&this.appViews.has(t)}getView(t){var e;return t===we.viewId?this.mainView:(e=this.appViews)==null?void 0:e.get(t)}getCurScenePath(t){const e=this.getView(t);if(e)return e.focusScenePath}getAllViews(){return[this.mainView,...this.appViews.values()]}setViewScenePath(t,e){var i;if(t===we.viewId&&this.mainView)this.mainView.focusScenePath=e;else{const n=t&&((i=this.appViews)==null?void 0:i.get(t))||void 0;n&&(n.focusScenePath=e)}}setViewData(t,e){var i;if(t===we.viewId&&this.mainView)this.mainView.viewData=e;else{const n=t&&((i=this.appViews)==null?void 0:i.get(t))||void 0;n&&(n.viewData=e)}}setFocuedViewId(t){var e;this.focuedViewId=t,t===we.viewId?this.focuedView=this.mainView:this.focuedView=t&&((e=this.appViews)==null?void 0:e.get(t))||void 0,this.control.cursor.onFocusViewChange(),this.focuedView&&this.focuedView.displayer.commiter.onFocusView()}setViewFocusScenePath(t,e){var n;let i;t===we.viewId?i=this.mainView:i=(n=this.appViews)==null?void 0:n.get(t),i&&(i.focusScenePath=e)}destroy(){var t;this.internalMsgEmitter.removeAllListeners("undoTickerStart"),this.internalMsgEmitter.removeAllListeners("undoTickerEnd"),this.internalMsgEmitter.removeAllListeners("excludeIds"),(t=this.mainView)==null||t.displayer.destroy(),this.appViews.forEach(e=>{this.destroyAppView(e.id,!0),this.control.worker.destroyViewWorker(e.id)})}setFocuedViewCameraOpt(t){this.focuedView&&(this.focuedView.cameraOpt=t)}transformToOriginPoint(t,e){const i=this.getView(e);if(i!=null&&i.viewData){const n=i.viewData.convertToPointOnScreen(t[0],t[1]);return[n.x,n.y]}return t}transformToScenePoint(t,e){const i=this.getView(e);if(i!=null&&i.viewData){const n=i.viewData.convertToPointInWorld({x:t[0],y:t[1]});return[n.x,n.y]}return t}render(t){var e,i,n,s,r,a,c,l,d,g,h,M,y,v,f,I,m;for(const w of t){const{rect:T,imageBitmap:z,isClear:C,isUnClose:L,drawCanvas:b,clearCanvas:R,viewId:U}=w,$=(e=this.getView(U))==null?void 0:e.displayer;if($&&T){const{dpr:Z,canvasBgRef:P,canvasFloatRef:X,canvasServiceFloatRef:se,canvasTopRef:_}=$,F=T.w*Z,G=T.h*Z,q=T.x*Z,A=T.y*Z;if(C)switch(R){case Le.TopFloat:(n=(i=_.current)==null?void 0:i.getContext("2d"))==null||n.clearRect(q,A,F,G);break;case Le.Float:(r=(s=X.current)==null?void 0:s.getContext("2d"))==null||r.clearRect(q,A,F,G);break;case Le.ServiceFloat:(c=(a=se.current)==null?void 0:a.getContext("2d"))==null||c.clearRect(q,A,F,G);break;case Le.Bg:(d=(l=P.current)==null?void 0:l.getContext("2d"))==null||d.clearRect(q,A,F,G);break}if(b&&z)switch(b){case Le.TopFloat:(h=(g=_.current)==null?void 0:g.getContext("2d"))==null||h.drawImage(z,0,0,F,G,q,A,F,G);break;case Le.Float:{(y=(M=X.current)==null?void 0:M.getContext("2d"))==null||y.drawImage(z,0,0,F,G,q,A,F,G);break}case Le.ServiceFloat:{(f=(v=se.current)==null?void 0:v.getContext("2d"))==null||f.drawImage(z,0,0,F,G,q,A,F,G);break}case Le.Bg:{(m=(I=P.current)==null?void 0:I.getContext("2d"))==null||m.drawImage(z,0,0,F,G,q,A,F,G);break}}if(L)return;z==null||z.close()}}}showFloatBar(t,e,i){const n=this.getView(t),s=n==null?void 0:n.displayer.vDom;s&&s.showFloatBar(e,i)}activeFloatBar(t){var i;const e=(i=this.getView(t))==null?void 0:i.displayer;e!=null&&e.vDom&&e.vDom.setFloatZIndex(2)}unActiveFloatBar(t){const e=this.getView(t),i=e==null?void 0:e.displayer.vDom;i&&i.setFloatZIndex(-1)}setActiveTextEditor(t,e){const i=this.getView(t),n=i==null?void 0:i.displayer.vDom;n&&n.setActiveTextEditor(e)}}p(_e,"defaultCameraOpt",{centerX:0,centerY:0,scale:1}),p(_e,"defaultScreenCanvasOpt",{autoRender:!1,contextType:mt.Canvas2d}),p(_e,"defaultLayerOpt",{offscreen:!0,handleEvent:!1,depth:!1});class qM{constructor(t,e,i){p(this,"viewId");p(this,"control");p(this,"internalMsgEmitter");p(this,"commiter");p(this,"cachePoint");p(this,"cacheCursorPoint");p(this,"active",!0);p(this,"mousedown",t=>{if(this.active&&t.button===0&&this.viewId){this.reflashContainerOffset();const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Start,e,this.viewId)}});p(this,"mousemove",t=>{if(this.active&&this.viewId){const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Doing,e,this.viewId)}});p(this,"mouseup",t=>{if(this.active&&t.button===0&&this.viewId){const e=this.getPoint(t)||this.cachePoint;e&&this.control.worker.originalEventLintener(j.Done,e,this.viewId),this.cachePoint=void 0}});p(this,"touchstart",t=>{var e;if(this.active&&qe(t)&&this.viewId){if(!this.control.worker.isAbled()){const n=(e=this.control.worker.getCurrentToolsData())==null?void 0:e.toolsType;n&&this.control.effectViewContainer(n)}this.reflashContainerOffset();const i=this.getPoint(t);this.cachePoint=i,i&&this.control.worker.originalEventLintener(j.Start,i,this.viewId)}});p(this,"touchmove",t=>{if(this.active){if(!qe(t)){this.control.worker.unWritable(),this.control.worker.clearLocalPointsBatchData();return}if(this.viewId){const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Doing,e,this.viewId)}}});p(this,"touchend",t=>{if(this.active){if(!qe(t)||!this.control.worker.isAbled()){this.control.worker.clearLocalPointsBatchData();return}if(this.viewId){const e=this.getPoint(t)||this.cachePoint;e&&this.control.worker.originalEventLintener(j.Done,e,this.viewId),this.cachePoint=void 0}}});p(this,"cursorMouseMove",ve(t=>{const e=this.getPoint(t);this.cacheCursorPoint&&ce(e,this.cacheCursorPoint)||!this.viewId||(this.cacheCursorPoint=e,e&&this.control.worker.sendCursorEvent(e,this.viewId))},30,{leading:!1}));p(this,"cursorMouseLeave",ve(()=>{this.viewId&&(this.cacheCursorPoint=[void 0,void 0],this.control.worker.sendCursorEvent(this.cacheCursorPoint,this.viewId))},30,{leading:!1}));p(this,"keydown",t=>{this.control.hotkeyManager.colloctHotkey(t)});this.viewId=t,this.control=e,this.internalMsgEmitter=i;const n={control:this.control,internalMsgEmitter:this.internalMsgEmitter,viewId:this.viewId};this.commiter=new Nt(n)}bindToolsClass(){var e,i;const t=(i=(e=this.control.worker)==null?void 0:e.currentToolsData)==null?void 0:i.toolsType;switch(t){case N.Text:case N.Pencil:case N.LaserPen:case N.Arrow:case N.Straight:case N.Rectangle:case N.Ellipse:case N.Star:case N.Polygon:case N.SpeechBalloon:this.eventTragetElement&&(this.eventTragetElement.className=`netless-whiteboard ${t===N.Text?"cursor-text":t===N.Pencil||t===N.LaserPen?"cursor-pencil":"cursor-arrow"}`);break}}mountView(){this.setCanvassStyle(),this.control.viewContainerManager.mountView(this.viewId)}reflashContainerOffset(){this.eventTragetElement&&(this.containerOffset=this.getContainerOffset(this.eventTragetElement,{x:0,y:0}))}updateSize(){this.setCanvassStyle(),this.reflashContainerOffset()}setViewId(t){this.viewId=t}destroy(){this.eventTragetElement&&this.removeDisplayerEvent(this.eventTragetElement),this.vDom=void 0,this.internalMsgEmitter.removeAllListeners([W.Cursor,this.viewId])}getPoint(t){const e=$o(t);if(e&&ae(e.x)&&ae(e.y))return[e.x-this.containerOffset.x,e.y-this.containerOffset.y]}setActive(t){this.active=t}async stopEventHandler(){this.cachePoint&&(await this.control.worker.originalEventLintener(j.Done,this.cachePoint,this.viewId),this.cachePoint=void 0)}getTranslate(t){const i=(t.style.WebkitTransform||getComputedStyle(t,"").getPropertyValue("-webkit-transform")||t.style.transform||getComputedStyle(t,"").getPropertyValue("transform")).match(/-?[0-9]+\.?[0-9]*/g),n=i&&parseInt(i[0])||0,s=i&&parseInt(i[1])||0;return[n,s]}getContainerOffset(t,e){var s;const i=this.getTranslate(t);let n={x:e.x+t.offsetLeft+i[0],y:e.y+t.offsetTop+i[1]};return(s=t.offsetParent)!=null&&s.nodeName&&t.offsetParent.nodeName!=="BODY"&&(n=this.getContainerOffset(t.offsetParent,n)),n}bindDisplayerEvent(t){t.addEventListener("mousedown",this.mousedown,!1),t.addEventListener("touchstart",this.touchstart,!1),window.addEventListener("mouseleave",this.mouseup,!1),window.addEventListener("mousemove",this.mousemove,!1),window.addEventListener("mouseup",this.mouseup,!1),window.addEventListener("touchmove",this.touchmove,!1),window.addEventListener("touchend",this.touchend,!1),t.addEventListener("mousemove",this.cursorMouseMove,!1),t.addEventListener("mouseleave",this.cursorMouseLeave,!1),t.addEventListener("keydown",this.keydown,!0)}removeDisplayerEvent(t){t.removeEventListener("mousedown",this.mousedown),t.removeEventListener("touchstart",this.touchstart),window.removeEventListener("mouseleave",this.mouseup),window.removeEventListener("mousemove",this.mousemove),window.removeEventListener("mouseup",this.mouseup),window.removeEventListener("touchmove",this.touchmove),window.removeEventListener("touchend",this.touchend),t.removeEventListener("mousemove",this.cursorMouseMove),t.removeEventListener("mouseleave",this.cursorMouseLeave),t.removeEventListener("keydown",this.keydown)}}class we{constructor(t,e){p(this,"viewId","mainView");p(this,"control");p(this,"internalMsgEmitter");p(this,"commiter");p(this,"cachePoint");p(this,"cacheCursorPoint");p(this,"active",!0);p(this,"mousedown",t=>{if(this.active&&t.button===0){this.reflashContainerOffset();const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Start,e,this.viewId)}});p(this,"mousemove",t=>{if(!this.active)return;const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Doing,e,this.viewId)});p(this,"mouseup",t=>{if(this.active&&t.button===0){const e=this.getPoint(t)||this.cachePoint;e&&this.control.worker.originalEventLintener(j.Done,e,this.viewId),this.cachePoint=void 0}});p(this,"touchstart",t=>{var i;if(!this.active||!qe(t))return;if(!this.control.worker.isAbled()){const n=(i=this.control.worker.getCurrentToolsData())==null?void 0:i.toolsType;n&&this.control.effectViewContainer(n)}this.reflashContainerOffset();const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Start,e,this.viewId)});p(this,"touchmove",t=>{if(!this.active)return;if(!qe(t)){this.control.worker.clearLocalPointsBatchData(),this.control.worker.unWritable();return}const e=this.getPoint(t);this.cachePoint=e,e&&this.control.worker.originalEventLintener(j.Doing,e,this.viewId)});p(this,"touchend",t=>{if(!this.active)return;if(!qe(t)||!this.control.worker.isAbled()){this.control.worker.clearLocalPointsBatchData();return}const e=this.getPoint(t)||this.cachePoint;e&&this.control.worker.originalEventLintener(j.Done,e,this.viewId),this.cachePoint=void 0});p(this,"cursorMouseMove",ve(t=>{const e=this.getPoint(t);this.cacheCursorPoint&&ce(e,this.cacheCursorPoint)||(this.cacheCursorPoint=e,e&&this.control.worker.sendCursorEvent(e,this.viewId))},30,{leading:!1}));p(this,"cursorMouseLeave",ve(()=>{this.cacheCursorPoint=[void 0,void 0],this.control.worker.sendCursorEvent(this.cacheCursorPoint,this.viewId)},30,{leading:!1}));p(this,"keydown",t=>{this.control.hotkeyManager.colloctHotkey(t)});this.control=t,this.internalMsgEmitter=e;const i={control:this.control,internalMsgEmitter:this.internalMsgEmitter,viewId:this.viewId};this.commiter=new Nt(i)}bindToolsClass(){var e,i;const t=(i=(e=this.control.worker)==null?void 0:e.currentToolsData)==null?void 0:i.toolsType;switch(t){case N.Text:case N.Pencil:case N.LaserPen:case N.Arrow:case N.Straight:case N.Rectangle:case N.Ellipse:case N.Star:case N.Polygon:case N.SpeechBalloon:this.eventTragetElement&&(this.eventTragetElement.className=`netless-whiteboard ${t===N.Text?"cursor-text":t===N.Pencil||t===N.LaserPen?"cursor-pencil":"cursor-arrow"}`);break}}mountView(){this.setCanvassStyle(),this.control.viewContainerManager.mountView(this.viewId)}updateSize(){this.setCanvassStyle()}reflashContainerOffset(){this.eventTragetElement&&(this.containerOffset=this.getContainerOffset(this.eventTragetElement,{x:0,y:0}))}destroy(){this.eventTragetElement&&this.removeDisplayerEvent(this.eventTragetElement),this.vDom=void 0,this.internalMsgEmitter.removeAllListeners([W.Cursor,this.viewId])}getPoint(t){const e=$o(t);if(e&&ae(e.x)&&ae(e.y))return[e.x-this.containerOffset.x,e.y-this.containerOffset.y]}setActive(t){this.active=t}async stopEventHandler(){this.cachePoint&&(await this.control.worker.originalEventLintener(j.Done,this.cachePoint,this.viewId),this.cachePoint=void 0)}getTranslate(t){const i=(t.style.WebkitTransform||getComputedStyle(t,"").getPropertyValue("-webkit-transform")||t.style.transform||getComputedStyle(t,"").getPropertyValue("transform")).match(/-?[0-9]+\.?[0-9]*/g),n=i&&parseInt(i[0])||0,s=i&&parseInt(i[1])||0;return[n,s]}getContainerOffset(t,e){var s;const i=this.getTranslate(t);let n={x:e.x+t.offsetLeft+i[0],y:e.y+t.offsetTop+i[1]};return(s=t.offsetParent)!=null&&s.nodeName&&t.offsetParent.nodeName!=="BODY"&&(n=this.getContainerOffset(t.offsetParent,n)),n}bindDisplayerEvent(t){t.addEventListener("mousedown",this.mousedown,!1),t.addEventListener("touchstart",this.touchstart,!1),window.addEventListener("mouseleave",this.mouseup,!1),window.addEventListener("mousemove",this.mousemove,!1),window.addEventListener("mouseup",this.mouseup,!1),window.addEventListener("touchmove",this.touchmove,!1),window.addEventListener("touchend",this.touchend,!1),t.addEventListener("mousemove",this.cursorMouseMove,!1),t.addEventListener("mouseleave",this.cursorMouseLeave,!1),t.addEventListener("keydown",this.keydown,!0)}removeDisplayerEvent(t){t.removeEventListener("mousedown",this.mousedown),t.removeEventListener("touchstart",this.touchstart),window.removeEventListener("mouseleave",this.mouseup),window.removeEventListener("mousemove",this.mousemove),window.removeEventListener("mouseup",this.mouseup),window.removeEventListener("touchmove",this.touchmove),window.removeEventListener("touchend",this.touchend),t.removeEventListener("mousemove",this.cursorMouseMove),t.removeEventListener("mouseleave",this.cursorMouseLeave),t.removeEventListener("keydown",this.keydown)}}p(we,"viewId","mainView");const _M="index-module__Container__nLsM3",XM="index-module__CanvasBox__j2Xe-",ep="index-module__FloatCanvas__d1YR7",tp="index-module__TopFloatCanvas__7IaCw",ip="index-module__SnapshotBox__--eeE",op="index-module__FloatBar__cm-EL",np="index-module__RotateBtn__HSSkf",sp="index-module__ResizeBtn__yjvda",rp="index-module__CursorBox__2UHvI",ap="index-module__TextEditorContainer__Qm8KC",cp="index-module__ResizeTowBox__HOllX",lp="index-module__FloatBarBtn__FJrOG",ye={Container:_M,CanvasBox:XM,FloatCanvas:ep,TopFloatCanvas:tp,SnapshotBox:ip,FloatBar:op,RotateBtn:np,ResizeBtn:sp,CursorBox:rp,TextEditorContainer:ap,ResizeTowBox:cp,FloatBarBtn:lp},up={delete:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDZ2NmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2aDBtMS0yYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAyaDBNMyA0aDEwIiBzdHJva2U9IiM0NDRFNjAiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==",duplicate:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjNDQ0RTYwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMSAySDZhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjRoMGwtMi0yeiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTExIDJ2MWExIDEgMCAwIDAgMSAxaDFsLTItMnoiLz48cGF0aCBkPSJNOSAxNEg0YTEgMSAwIDAgMS0xLTFWNWgwIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L2c+PC9zdmc+","layer-pressed":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2IDEwLTYgNCA2IDQgNi00em0tNiA4IDYgNCA2LTQiIHN0cm9rZT0iIzMzODFGRiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",layer:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2IDEwLTYgNCA2IDQgNi00em0tNiA4IDYgNCA2LTQiIHN0cm9rZT0iIzQ0NEU2MCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",rotate:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjNDQ0RTYwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEzIDZhNiA2IDAgMSAxLTMuNzA5IDEuMjgzIi8+PHBhdGggZD0ibTEzIDYgMS40MTQgMi40NUwxMyA2bDIuNDUtMS40MTQiLz48L2c+PC9zdmc+","rotation-button":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBvcGFjaXR5PSIuMDEiIGQ9Ik0wIDI0VjBoMjR2MjR6Ii8+PHBhdGggZD0iTTUuNzI0IDUuNzI0QTguODQ3IDguODQ3IDAgMCAxIDEyIDMuMTI1YzIuMjcxIDAgNC41NDMuODY2IDYuMjc2IDIuNmE4Ljg0NiA4Ljg0NiAwIDAgMSAyLjU5OCA2LjE0IDguODQ5IDguODQ5IDAgMCAxLTIuNTU5IDYuMzdsLTEuNS0uOTgzQTcuMTA1IDcuMTA1IDAgMCAwIDE5LjEyNSAxMmE3LjEwMyA3LjEwMyAwIDAgMC0yLjA4Ny01LjAzOEE3LjEwMyA3LjEwMyAwIDAgMCAxMiA0Ljg3NWE3LjEwMyA3LjEwMyAwIDAgMC01LjAzOCAyLjA4NyA3LjEwMSA3LjEwMSAwIDAgMC0yLjA4NiA0LjkyIDcuMTAzIDcuMTAzIDAgMCAwIDEuNzY2IDQuODE1bDEuOTQ1LTEuNTg0IDIuMzk0IDcuMTgyLTcuMjIyLTIuNDA4IDEuNzkxLTEuNzlBOC44NDYgOC44NDYgMCAwIDEgMy4xMjUgMTJjMC0yLjI3MS44NjYtNC41NDMgMi42LTYuMjc2eiIgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9Ii41IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+",rotation:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjRkZGIiBvcGFjaXR5PSIuMDEiIGQ9Ik0wIDI0VjBoMjR2MjR6Ii8+PHBhdGggZD0iTTUuNzI0IDUuNzI0QTguODQ3IDguODQ3IDAgMCAxIDEyIDMuMTI1YzIuMjcxIDAgNC41NDMuODY2IDYuMjc2IDIuNmE4Ljg0NiA4Ljg0NiAwIDAgMSAyLjU5OCA2LjE0IDguODQ5IDguODQ5IDAgMCAxLTIuNTU5IDYuMzdsLTEuNS0uOTgzQTcuMTA1IDcuMTA1IDAgMCAwIDE5LjEyNSAxMmE3LjEwMyA3LjEwMyAwIDAgMC0yLjA4Ny01LjAzOEE3LjEwMyA3LjEwMyAwIDAgMCAxMiA0Ljg3NWE3LjEwMyA3LjEwMyAwIDAgMC01LjAzOCAyLjA4NyA3LjEwMSA3LjEwMSAwIDAgMC0yLjA4NiA0LjkyIDcuMTAzIDcuMTAzIDAgMCAwIDEuNzY2IDQuODE1bDEuOTQ1LTEuNTg0IDIuMzk0IDcuMTgyLTcuMjIyLTIuNDA4IDEuNzkxLTEuNzlBOC44NDYgOC44NDYgMCAwIDEgMy4xMjUgMTJjMC0yLjI3MS44NjYtNC41NDMgMi42LTYuMjc2eiIgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9Ii41IiBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+","font-colors-active":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQgMTEgNC05IDQgOU02IDdoNCIgc3Ryb2tlPSIjMzM4MUZGIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=","font-colors":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQgMTEgNC05IDQgOU02IDdoNCIgc3Ryb2tlPSIjNDQ0RTYwIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=","to-bottom":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDEwdjhtMCAwLTItMm0yIDIgMi0ybS00IDZoMTJtLTYtNGg2bS02LTRoNm0tNi00aDYiIHN0cm9rZT0iIzQ0NEU2MCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+","to-top":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIydi04bTAgMC0yIDJtMi0yIDIgMm0tNC02aDEybS02IDRoNm0tNiA0aDZtLTYgNGg2IiBzdHJva2U9IiM0NDRFNjAiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==","bold-active":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAySDhhMi41IDIuNSAwIDAgMSAwIDVINS41aDBtLTEgMGg0YTMgMyAwIDAgMSAwIDZoLTQgMG0wIDFWMiIgc3Ryb2tlPSIjMzM4MUZGIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=",bold:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAySDhhMi41IDIuNSAwIDAgMSAwIDVINS41aDBtLTEgMGg0YTMgMyAwIDAgMSAwIDZoLTQgMG0wIDFWMiIgc3Ryb2tlPSIjNDQ0RTYwIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=","underline-active":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDJ2NWE0IDQgMCAxIDEtOCAwVjJoME0zIDE0aDEwIiBzdHJva2U9IiMzMzgxRkYiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==",underline:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDJ2NWE0IDQgMCAxIDEtOCAwVjJoME0zIDE0aDEwIiBzdHJva2U9IiM0NDRFNjAiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==","line-through-active":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgOGg4bS0xLTNhMyAzIDAgMCAwLTMtM2gtLjkzOEEyLjY0IDIuNjQgMCAwIDAgNC41IDRhMi41NyAyLjU3IDAgMCAwIDEuMzQ0IDIuOTIybDQuMzEyIDIuMTU2QTIuNTcgMi41NyAwIDAgMSAxMS41IDEyYTIuNjQgMi42NCAwIDAgMS0yLjU2MiAySDdhMyAzIDAgMCAxLTMtM2gwIiBzdHJva2U9IiMzMzgxRkYiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==","line-through":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgOGg4bS0xLTNhMyAzIDAgMCAwLTMtM2gtLjkzOEEyLjY0IDIuNjQgMCAwIDAgNC41IDRhMi41NyAyLjU3IDAgMCAwIDEuMzQ0IDIuOTIybDQuMzEyIDIuMTU2QTIuNTcgMi41NyAwIDAgMSAxMS41IDEyYTIuNjQgMi42NCAwIDAgMS0yLjU2MiAySDdhMyAzIDAgMCAxLTMtM2gwIiBzdHJva2U9IiM0NDRFNjAiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==","italic-active":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgMTQgOSAyTTUgMTRoNE03IDJoNCIgc3Ryb2tlPSIjMzM4MUZGIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=",italic:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgMTQgOSAyTTUgMTRoNE03IDJoNCIgc3Ryb2tlPSIjNDQ0RTYwIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=","unlock-new":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIGZpbGw9IiMzMzgxRkYiIGN4PSIxNiIgY3k9IjE3IiByPSIxIi8+PHJlY3Qgc3Ryb2tlPSIjMzM4MUZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHg9IjExIiB5PSIxNCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PHBhdGggZD0iTTEzIDE0di0xYTMgMyAwIDAgMSA2IDB2MWgwbS0zIDN2MyIgc3Ryb2tlPSIjMzM4MUZGIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L2c+PC9zdmc+","lock-new":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIGZpbGw9IiM0NDRFNjAiIGN4PSIxNiIgY3k9IjE3IiByPSIxIi8+PHJlY3Qgc3Ryb2tlPSIjNDQ0RTYwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHg9IjExIiB5PSIxNCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PHBhdGggZD0iTTEzIDE0di0zYTMgMyAwIDAgMSA2IDB2MWgwbS0zIDV2MyIgc3Ryb2tlPSIjNDQ0RTYwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L2c+PC9zdmc+",shapes:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTY4Mi42NjY2NjcgMTAyNEM2ODIuNjY2NjY3IDEwMjQgNjgyLjY2NjY2NyAxMDI0IDY4Mi42NjY2NjcgMTAyNEwxNzAuNjY2NjY3IDEwMjRjLTE3LjA2NjY2NyAwLTI5Ljg2NjY2Ny04LjUzMzMzMy0zOC40LTIxLjMzMzMzMy04LjUzMzMzMy0xMi44LTguNTMzMzMzLTI5Ljg2NjY2NyAwLTQyLjY2NjY2N2wyNTYtMzg0YzE3LjA2NjY2Ny0yNS42IDU1LjQ2NjY2Ny0yNS42IDcyLjUzMzMzMyAwbDI1MS43MzMzMzMgMzc5LjczMzMzM2M4LjUzMzMzMyA4LjUzMzMzMyAxMi44IDE3LjA2NjY2NyAxMi44IDI5Ljg2NjY2N0M3MjUuMzMzMzMzIDEwMDYuOTMzMzMzIDcwOC4yNjY2NjcgMTAyNCA2ODIuNjY2NjY3IDEwMjR6TTI1MS43MzMzMzMgOTM4LjY2NjY2N2wzNTQuMTMzMzMzIDBMNDI2LjY2NjY2NyA2NzQuMTMzMzMzIDI1MS43MzMzMzMgOTM4LjY2NjY2N3oiIGZpbGw9IiM0NDRFNjAiPjwvcGF0aD48cGF0aCBkPSJNOTgxLjMzMzMzMyA3MjUuMzMzMzMzbC0zNDEuMzMzMzMzIDBjLTI1LjYgMC00Mi42NjY2NjctMTcuMDY2NjY3LTQyLjY2NjY2Ny00Mi42NjY2NjdMNTk3LjMzMzMzMyAzNDEuMzMzMzMzYzAtMjUuNiAxNy4wNjY2NjctNDIuNjY2NjY3IDQyLjY2NjY2Ny00Mi42NjY2NjdsMzQxLjMzMzMzMyAwYzI1LjYgMCA0Mi42NjY2NjcgMTcuMDY2NjY3IDQyLjY2NjY2NyA0Mi42NjY2NjdsMCAzNDEuMzMzMzMzQzEwMjQgNzA4LjI2NjY2NyAxMDA2LjkzMzMzMyA3MjUuMzMzMzMzIDk4MS4zMzMzMzMgNzI1LjMzMzMzM3pNNjgyLjY2NjY2NyA2NDBsMjU2IDBMOTM4LjY2NjY2NyAzODRsLTI1NiAwTDY4Mi42NjY2NjcgNjQweiIgZmlsbD0iIzQ0NEU2MCI+PC9wYXRoPjxwYXRoIGQ9Ik0yNzcuMzMzMzMzIDU1NC42NjY2NjdDMTIzLjczMzMzMyA1NTQuNjY2NjY3IDAgNDMwLjkzMzMzMyAwIDI3Ny4zMzMzMzNTMTIzLjczMzMzMyAwIDI3Ny4zMzMzMzMgMCA1NTQuNjY2NjY3IDEyMy43MzMzMzMgNTU0LjY2NjY2NyAyNzcuMzMzMzMzIDQzMC45MzMzMzMgNTU0LjY2NjY2NyAyNzcuMzMzMzMzIDU1NC42NjY2Njd6TTI3Ny4zMzMzMzMgODUuMzMzMzMzQzE3MC42NjY2NjcgODUuMzMzMzMzIDg1LjMzMzMzMyAxNzAuNjY2NjY3IDg1LjMzMzMzMyAyNzcuMzMzMzMzUzE3MC42NjY2NjcgNDY5LjMzMzMzMyAyNzcuMzMzMzMzIDQ2OS4zMzMzMzMgNDY5LjMzMzMzMyAzODQgNDY5LjMzMzMzMyAyNzcuMzMzMzMzIDM4NCA4NS4zMzMzMzMgMjc3LjMzMzMzMyA4NS4zMzMzMzN6IiBmaWxsPSIjNDQ0RTYwIj48L3BhdGg+PC9zdmc+","shapes-active":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTY4Mi42NjY2NjcgMTAyNEM2ODIuNjY2NjY3IDEwMjQgNjgyLjY2NjY2NyAxMDI0IDY4Mi42NjY2NjcgMTAyNEwxNzAuNjY2NjY3IDEwMjRjLTE3LjA2NjY2NyAwLTI5Ljg2NjY2Ny04LjUzMzMzMy0zOC40LTIxLjMzMzMzMy04LjUzMzMzMy0xMi44LTguNTMzMzMzLTI5Ljg2NjY2NyAwLTQyLjY2NjY2N2wyNTYtMzg0YzE3LjA2NjY2Ny0yNS42IDU1LjQ2NjY2Ny0yNS42IDcyLjUzMzMzMyAwbDI1MS43MzMzMzMgMzc5LjczMzMzM2M4LjUzMzMzMyA4LjUzMzMzMyAxMi44IDE3LjA2NjY2NyAxMi44IDI5Ljg2NjY2N0M3MjUuMzMzMzMzIDEwMDYuOTMzMzMzIDcwOC4yNjY2NjcgMTAyNCA2ODIuNjY2NjY3IDEwMjR6TTI1MS43MzMzMzMgOTM4LjY2NjY2N2wzNTQuMTMzMzMzIDBMNDI2LjY2NjY2NyA2NzQuMTMzMzMzIDI1MS43MzMzMzMgOTM4LjY2NjY2N3oiIGZpbGw9IiMzMzgxRkYiPjwvcGF0aD48cGF0aCBkPSJNOTgxLjMzMzMzMyA3MjUuMzMzMzMzbC0zNDEuMzMzMzMzIDBjLTI1LjYgMC00Mi42NjY2NjctMTcuMDY2NjY3LTQyLjY2NjY2Ny00Mi42NjY2NjdMNTk3LjMzMzMzMyAzNDEuMzMzMzMzYzAtMjUuNiAxNy4wNjY2NjctNDIuNjY2NjY3IDQyLjY2NjY2Ny00Mi42NjY2NjdsMzQxLjMzMzMzMyAwYzI1LjYgMCA0Mi42NjY2NjcgMTcuMDY2NjY3IDQyLjY2NjY2NyA0Mi42NjY2NjdsMCAzNDEuMzMzMzMzQzEwMjQgNzA4LjI2NjY2NyAxMDA2LjkzMzMzMyA3MjUuMzMzMzMzIDk4MS4zMzMzMzMgNzI1LjMzMzMzM3pNNjgyLjY2NjY2NyA2NDBsMjU2IDBMOTM4LjY2NjY2NyAzODRsLTI1NiAwTDY4Mi42NjY2NjcgNjQweiIgZmlsbD0iIzMzODFGRiI+PC9wYXRoPjxwYXRoIGQ9Ik0yNzcuMzMzMzMzIDU1NC42NjY2NjdDMTIzLjczMzMzMyA1NTQuNjY2NjY3IDAgNDMwLjkzMzMzMyAwIDI3Ny4zMzMzMzNTMTIzLjczMzMzMyAwIDI3Ny4zMzMzMzMgMCA1NTQuNjY2NjY3IDEyMy43MzMzMzMgNTU0LjY2NjY2NyAyNzcuMzMzMzMzIDQzMC45MzMzMzMgNTU0LjY2NjY2NyAyNzcuMzMzMzMzIDU1NC42NjY2Njd6TTI3Ny4zMzMzMzMgODUuMzMzMzMzQzE3MC42NjY2NjcgODUuMzMzMzMzIDg1LjMzMzMzMyAxNzAuNjY2NjY3IDg1LjMzMzMzMyAyNzcuMzMzMzMzUzE3MC42NjY2NjcgNDY5LjMzMzMzMyAyNzcuMzMzMzMzIDQ2OS4zMzMzMzMgNDY5LjMzMzMzMyAzODQgNDY5LjMzMzMzMyAyNzcuMzMzMzMzIDM4NCA4NS4zMzMzMzMgMjc3LjMzMzMzMyA4NS4zMzMzMzN6IiBmaWxsPSIjMzM4MUZGIj48L3BhdGg+PC9zdmc+","font-style-active":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTM2MC4yMzQ2NjcgMjEzLjMzMzMzM0w1NTQuNjY2NjY3IDc3Ni4yNzczMzNoLTc2LjU0NGwtNTQuNjEzMzM0LTE3Mi4wMzJIMjE0LjE4NjY2N2wtNTUuNDY2NjY3IDE3Mi4wMzJIODUuMzMzMzMzTDI3OS43NjUzMzMgMjEzLjMzMzMzM2g4MC40NjkzMzR6IG00MTAuMDI2NjY2IDE3My44MjRjOTAuMTEyIDAgMTI4LjM0MTMzMyA2MC43NTczMzMgMTI4LjM0MTMzNCAxNTIuMjM0NjY3djIyOC4wMTA2NjdoLTUxLjJsLTUuNDYxMzM0LTQ0LjM3MzMzNGgtMi4wNDhjLTM1LjQ5ODY2NyAyOS4zNTQ2NjctNzcuMTQxMzMzIDUzLjI0OC0xMjIuODggNTMuMjQ4LTYyLjEyMjY2NyAwLTEwOC41NDQtMzguMjI5MzMzLTEwOC41NDQtMTA1LjEzMDY2NiAwLTgwLjU1NDY2NyA3MC4zMTQ2NjctMTIwLjgzMiAyMjguMDEwNjY3LTEzOC41ODEzMzQgMC00Ny43ODY2NjctMTUuNzAxMzMzLTkzLjUyNTMzMy03Ni40NTg2NjctOTMuNTI1MzMzLTQzLjAwOCAwLTgxLjkyIDE5Ljc5NzMzMy0xMTEuMjc0NjY2IDM5LjU5NDY2N2wtMjQuNTc2LTQzLjAwOGMzNC4xMzMzMzMtMjEuODQ1MzMzIDg2LjY5ODY2Ny00OC40NjkzMzMgMTQ2LjA5MDY2Ni00OC40NjkzMzR6IG02Ni4yMTg2NjcgMTg2LjM2OGMtMTI0LjkyOCAxNS4wMTg2NjctMTY3LjI1MzMzMyA0NS43Mzg2NjctMTY3LjI1MzMzMyA5My41MjUzMzQgMCA0Mi4zMjUzMzMgMjguNjcyIDU5LjM5MiA2NS41MzYgNTkuMzkyIDM2LjE4MTMzMyAwIDY1LjUzNi0xNy4wNjY2NjcgMTAxLjcxNzMzMy00OS4xNTJ6TTMyMC4zODQgMjcwLjkzMzMzM2gtMy4xMTQ2NjdjLTE3Ljk2MjY2NyA2Ni4wNDgtMzYuNjkzMzMzIDEyNi43Mi01Ny4wMDI2NjYgMTkwLjQ2NGwtMjguMTYgODYuMDE2aDE3My4zOTczMzNsLTI3LjMwNjY2Ny04Ni4wMTZBNDkxMy40OTMzMzMgNDkxMy40OTMzMzMgMCAwIDEgMzIwLjM4NCAyNzAuOTMzMzMzeiIgZmlsbD0iIzMzODFGRiI+PC9wYXRoPjwvc3ZnPg==","font-style":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTM2MC4yMzQ2NjcgMjEzLjMzMzMzM0w1NTQuNjY2NjY3IDc3Ni4yNzczMzNoLTc2LjU0NGwtNTQuNjEzMzM0LTE3Mi4wMzJIMjE0LjE4NjY2N2wtNTUuNDY2NjY3IDE3Mi4wMzJIODUuMzMzMzMzTDI3OS43NjUzMzMgMjEzLjMzMzMzM2g4MC40NjkzMzR6IG00MTAuMDI2NjY2IDE3My44MjRjOTAuMTEyIDAgMTI4LjM0MTMzMyA2MC43NTczMzMgMTI4LjM0MTMzNCAxNTIuMjM0NjY3djIyOC4wMTA2NjdoLTUxLjJsLTUuNDYxMzM0LTQ0LjM3MzMzNGgtMi4wNDhjLTM1LjQ5ODY2NyAyOS4zNTQ2NjctNzcuMTQxMzMzIDUzLjI0OC0xMjIuODggNTMuMjQ4LTYyLjEyMjY2NyAwLTEwOC41NDQtMzguMjI5MzMzLTEwOC41NDQtMTA1LjEzMDY2NiAwLTgwLjU1NDY2NyA3MC4zMTQ2NjctMTIwLjgzMiAyMjguMDEwNjY3LTEzOC41ODEzMzQgMC00Ny43ODY2NjctMTUuNzAxMzMzLTkzLjUyNTMzMy03Ni40NTg2NjctOTMuNTI1MzMzLTQzLjAwOCAwLTgxLjkyIDE5Ljc5NzMzMy0xMTEuMjc0NjY2IDM5LjU5NDY2N2wtMjQuNTc2LTQzLjAwOGMzNC4xMzMzMzMtMjEuODQ1MzMzIDg2LjY5ODY2Ny00OC40NjkzMzMgMTQ2LjA5MDY2Ni00OC40NjkzMzR6IG02Ni4yMTg2NjcgMTg2LjM2OGMtMTI0LjkyOCAxNS4wMTg2NjctMTY3LjI1MzMzMyA0NS43Mzg2NjctMTY3LjI1MzMzMyA5My41MjUzMzQgMCA0Mi4zMjUzMzMgMjguNjcyIDU5LjM5MiA2NS41MzYgNTkuMzkyIDM2LjE4MTMzMyAwIDY1LjUzNi0xNy4wNjY2NjcgMTAxLjcxNzMzMy00OS4xNTJ6TTMyMC4zODQgMjcwLjkzMzMzM2gtMy4xMTQ2NjdjLTE3Ljk2MjY2NyA2Ni4wNDgtMzYuNjkzMzMzIDEyNi43Mi01Ny4wMDI2NjYgMTkwLjQ2NGwtMjguMTYgODYuMDE2aDE3My4zOTczMzNsLTI3LjMwNjY2Ny04Ni4wMTZBNDkxMy40OTMzMzMgNDkxMy40OTMzMzMgMCAwIDEgMzIwLjM4NCAyNzAuOTMzMzMzeiIgZmlsbD0iIzQ0NEU2MCI+PC9wYXRoPjwvc3ZnPg==",polygon:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkzMy4xMiA0OTAuNjY2NjY3bC0xOTItMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwLTM3LjEyLTIxLjMzMzMzM2gtMzg0YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAtMzcuMTIgMjEuMzMzMzMzbC0xOTIgMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAgNDIuNjY2NjY2bDE5MiAzMzIuMzczMzM0YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAgMzcuMTIgMjEuMzMzMzMzaDM4NGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDM3LjEyLTIxLjMzMzMzM2wxOTItMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAtNDIuNjY2NjY2eiBtLTI1NiAzMTEuMDRIMzQ0Ljc0NjY2N0wxNzcuMDY2NjY3IDUxMmwxNjcuNjgtMjg5LjcwNjY2N2gzMzQuNTA2NjY2TDg0Ni45MzMzMzMgNTEyeiIgZmlsbD0iIzQ0NEU2MCI+PC9wYXRoPjwvc3ZnPg==","polygon-active":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkzMy4xMiA0OTAuNjY2NjY3bC0xOTItMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwLTM3LjEyLTIxLjMzMzMzM2gtMzg0YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAtMzcuMTIgMjEuMzMzMzMzbC0xOTIgMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAgNDIuNjY2NjY2bDE5MiAzMzIuMzczMzM0YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAgMzcuMTIgMjEuMzMzMzMzaDM4NGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDM3LjEyLTIxLjMzMzMzM2wxOTItMzMyLjM3MzMzNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAtNDIuNjY2NjY2eiBtLTI1NiAzMTEuMDRIMzQ0Ljc0NjY2N0wxNzcuMDY2NjY3IDUxMmwxNjcuNjgtMjg5LjcwNjY2N2gzMzQuNTA2NjY2TDg0Ni45MzMzMzMgNTEyeiIgZmlsbD0iIzMzODFGRiI+PC9wYXRoPjwvc3ZnPg==","polygon-vertex":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTA3NyAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTU0My40NzQ1MjYgNDIuMzA3MzY4YTExOS4zNzY4NDIgMTE5LjM3Njg0MiAwIDAgMSAxMTAuODA3NTc5IDE2My44NGwxOTAuNTcxNzkgMTM4LjYxNzI2NGExMTkuMzc2ODQyIDExOS4zNzY4NDIgMCAxIDEgODMuMzc1MTU4IDIxOC43MDQ4NDJsLTc0LjMyMDg0MiAyMjguODM3MDUyYTExOS4zMjI5NDcgMTE5LjMyMjk0NyAwIDAgMS02MS4yNzgzMTYgMjIxLjg4NDYzMmMtNDYuNzgwNjMyIDAtODcuMzA5NDc0LTI2Ljk0NzM2OC0xMDYuODczMjYzLTY2LjEyODg0MmgtMjg5LjQxNDczN2ExMTkuMzc2ODQyIDExOS4zNzY4NDIgMCAxIDEtMTc5LjczODk0OC0xNDcuODMzMjYzbC03Mi4yNzI4NDItMjIyLjY5MzA1My0zLjM5NTM2OCAwLjEwNzc4OUExMTkuMzc2ODQyIDExOS4zNzY4NDIgMCAwIDEgMjEuODI3MzY4IDQ2Ni43Mjg0MjFMMjEuNTU3ODk1IDQ1OC4yMTMwNTNhMTE5LjM3Njg0MiAxMTkuMzc2ODQyIDAgMCAxIDE4My44MzQ5NDctMTAwLjUxMzY4NWwyMjMuNTAxNDc0LTE2Mi4zODQ4NDJhMTE5LjQzMDczNyAxMTkuNDMwNzM3IDAgMCAxIDExNC41ODAyMS0xNTMuMDYxMDUyek0yODkuNDE0NzM3IDg0MC4wNTcyNjNhNTQuNzAzMTU4IDU0LjcwMzE1OCAwIDEgMCAwIDEwOS40MDYzMTYgNTQuNzAzMTU4IDU0LjcwMzE1OCAwIDAgMCAwLTEwOS40MDYzMTZ6IG01MDMuMTYxMjYzIDBhNTQuNzAzMTU4IDU0LjcwMzE1OCAwIDEgMCAwIDEwOS40MDYzMTYgNTQuNzAzMTU4IDU0LjcwMzE1OCAwIDAgMCAwLTEwOS40MDYzMTZ6TTQ2Mi42ODYzMTYgMjQ5LjU4NjUyNkwyNDguMTMxMzY4IDQwNS41NTc4OTVhMTE5LjMyMjk0NyAxMTkuMzIyOTQ3IDAgMCAxLTQyLjg0NjMxNSAxNTMuMjIyNzM3bDcwLjcwOTg5NCAyMTcuMzU3NDczYTExOS40MzA3MzcgMTE5LjQzMDczNyAwIDAgMSAxMzIuNDE5MzY5IDEwOC4yMjA2MzJINjczLjY4NDIxMWExMTkuNDMwNzM3IDExOS40MzA3MzcgMCAwIDEgMTE5LjE2MTI2My0xMDguOTc1MTU4bDcxLjE0MTA1Mi0yMTguOTc0MzE2YTExOS40MzA3MzcgMTE5LjQzMDczNyAwIDAgMS02Mi4wODY3MzctMTY0LjIxNzI2M2wtMTg2LjM2OC0xMzUuMjc1Nzg5Yy0xOS45OTQ5NDcgMTUuMDkwNTI2LTQ1LjAwMjEwNSAyNC4xNDQ4NDItNzIuMDU3MjYzIDI0LjE0NDg0MmExMTguOTQ1Njg0IDExOC45NDU2ODQgMCAwIDEtODAuNzg4MjEtMzEuNDc0NTI3eiBtLTMyMS43NTE1NzkgMTUzLjkyMzM2OWE1NC43MDMxNTggNTQuNzAzMTU4IDAgMSAwIDAgMTA5LjQwNjMxNiA1NC43MDMxNTggNTQuNzAzMTU4IDAgMCAwIDAtMTA5LjQwNjMxNnogbTc2Ny43MzA1MjYtMTIuNTU3NDc0YTU0LjcwMzE1OCA1NC43MDMxNTggMCAxIDAgMCAxMDkuNDA2MzE2IDU0LjcwMzE1OCA1NC43MDMxNTggMCAwIDAgMC0xMDkuNDA2MzE2eiBtLTM2NS4xOTA3MzctMjg0LjAyNTI2M2E1NC43MDMxNTggNTQuNzAzMTU4IDAgMSAwIDAgMTA5LjQ2MDIxIDU0LjcwMzE1OCA1NC43MDMxNTggMCAwIDAgMC0xMDkuNDA2MzE1eiIgZmlsbD0iIzQ0NEU2MCI+PC9wYXRoPjwvc3ZnPg==",star:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuMy0xMi4zIDEyLjctMTIuMSAzMi45IDAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjljLTEuMiA2LjktMC4xIDE0LjEgMy4yIDIwLjMgOC4yIDE1LjYgMjcuNiAyMS43IDQzLjIgMTMuNEw1MTIgNzU0bDIyNy4xIDExOS40YzYuMiAzLjMgMTMuNCA0LjQgMjAuMyAzLjIgMTcuNC0zIDI5LjEtMTkuNSAyNi4xLTM2LjlsLTQzLjQtMjUyLjkgMTgzLjctMTc5LjFjNS00LjkgOC4zLTExLjMgOS4zLTE4LjMgMi43LTE3LjUtOS41LTMzLjctMjctMzYuM3pNNjY0LjggNTYxLjZsMzYuMSAyMTAuM0w1MTIgNjcyLjcgMzIzLjEgNzcybDM2LjEtMjEwLjMtMTUyLjgtMTQ5TDQxNy42IDM4MiA1MTIgMTkwLjcgNjA2LjQgMzgybDIxMS4yIDMwLjctMTUyLjggMTQ4Ljl6IiBmaWxsPSIjNDQ0RTYwIj48L3BhdGg+PC9zdmc+","star-active":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuMy0xMi4zIDEyLjctMTIuMSAzMi45IDAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjljLTEuMiA2LjktMC4xIDE0LjEgMy4yIDIwLjMgOC4yIDE1LjYgMjcuNiAyMS43IDQzLjIgMTMuNEw1MTIgNzU0bDIyNy4xIDExOS40YzYuMiAzLjMgMTMuNCA0LjQgMjAuMyAzLjIgMTcuNC0zIDI5LjEtMTkuNSAyNi4xLTM2LjlsLTQzLjQtMjUyLjkgMTgzLjctMTc5LjFjNS00LjkgOC4zLTExLjMgOS4zLTE4LjMgMi43LTE3LjUtOS41LTMzLjctMjctMzYuM3pNNjY0LjggNTYxLjZsMzYuMSAyMTAuM0w1MTIgNjcyLjcgMzIzLjEgNzcybDM2LjEtMjEwLjMtMTUyLjgtMTQ5TDQxNy42IDM4MiA1MTIgMTkwLjcgNjA2LjQgMzgybDIxMS4yIDMwLjctMTUyLjggMTQ4Ljl6IiBmaWxsPSIjMzM4MUZGIj48L3BhdGg+PC9zdmc+","star-innerVertex":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTg1LjMzMzMzMyAwYTg1LjMzMzMzMyA4NS4zMzMzMzMgMCAwIDEgODEuNDA4IDU5LjczMzMzM2g0OC4yMTMzMzR2ODUuMzMzMzM0TDE3MC42NjY2NjcgMTQ0Ljk4MTMzM1Y4NTMuMzMzMzMzaDY5My4zMzMzMzNsLTI2LjQ1MzMzMy02My40ODggNzguNzYyNjY2LTMyLjc2OCAzMi44NTMzMzQgNzguNzYyNjY3LTQyLjI0IDE3LjQ5MzMzM0g5MzguNjY2NjY3YTg1LjMzMzMzMyA4NS4zMzMzMzMgMCAwIDEgODQuNzM2IDc1LjM0OTMzNEwxMDI0IDkzOC42NjY2NjdhODUuMzMzMzMzIDg1LjMzMzMzMyAwIDAgMS0xNzAuNjY2NjY3IDBIMTcwLjY2NjY2N2E4NS4zMzMzMzMgODUuMzMzMzMzIDAgMSAxLTg1LjMzMzMzNC04NS4zMzMzMzRWMTcwLjY2NjY2N2E4NS4zMzMzMzMgODUuMzMzMzMzIDAgMSAxIDAtMTcwLjY2NjY2N3ogbTc2NS4zNTQ2NjcgNTk5LjQ2NjY2N2wzMi44NTMzMzMgNzguNzYyNjY2LTc4Ljg0OCAzMi44NTMzMzQtMzIuNzY4LTc4Ljc2MjY2NyA3OC43NjI2NjctMzIuODUzMzMzeiBtLTY1LjcwNjY2Ny0xNTcuNTI1MzM0bDMyLjg1MzMzNCA3OC43NjI2NjctNzguNzYyNjY3IDMyLjg1MzMzMy0zMi43NjgtNzguNzYyNjY2IDc4Ljc2MjY2Ny0zMi44NTMzMzR6TTcxOS4zNiAyODQuNDE2bDMyLjg1MzMzMyA3OC43NjI2NjctNzguNzYyNjY2IDMyLjg1MzMzMy0zMi44NTMzMzQtNzguNzYyNjY3IDc4Ljc2MjY2Ny0zMi44NTMzMzN6IG0tNjUuNjIxMzMzLTE1Ny41MjUzMzNsMzIuODUzMzMzIDc4Ljc2MjY2Ni03OC43NjI2NjcgMzIuODUzMzM0LTMyLjg1MzMzMy03OC43NjI2NjcgNzguNzYyNjY3LTMyLjg1MzMzM3pNMzg1LjcwNjY2NyA1OS43MzMzMzN2ODUuMzMzMzM0aC04NS4zMzMzMzR2LTg1LjMzMzMzNGg4NS4zMzMzMzR6IG0xNzAuNjY2NjY2IDB2ODUuMzMzMzM0aC04NS4zMzMzMzN2LTg1LjMzMzMzNGg4NS4zMzMzMzN6IiBmaWxsPSIjNDQ0RTYwIiA+PC9wYXRoPjwvc3ZnPg==","star-innerRatio":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTU2OS4zNDQgNDQ5LjUzNmwxNDYuOTQ0IDI4LjY3MiAxLjAyNC00LjYwOHY0LjYwOGgxLjAyNGM5LjcyOCAwIDE2Ljg5Ni03LjY4IDIwLjQ4LTE0Ljg0OGwxLjAyNC0yLjA0OHYtMi41NmMwLTUuNjMyIDAtMTEuMjY0LTUuMTItMTYuMzg0LTMuMDcyLTMuMDcyLTcuMTY4LTcuMTY4LTEyLjgtNy42OGwtMTI0LjkyOC0yNC4wNjRMNTQxLjY5NiAyODYuNzJjLTIuMDQ4LTQuNjA4LTYuNjU2LTguMTkyLTExLjc3Ni05LjcyOC01LjEyLTEuNTM2LTEwLjc1Mi0xLjUzNi0xNS4zNiAxLjAyNGwtMS41MzYgMC41MTItMS4wMjQgMS4wMjRjLTguMTkyIDguMTkyLTEwLjc1MiAxOS40NTYtNi42NTYgMjcuMTM2bDY0IDE0Mi44NDh6IiBmaWxsPSIjMzM4MUZGIj48L3BhdGg+PHBhdGggZD0iTTkzMS4zMjggNDAzLjQ1NmMtMTAuMjQtMzUuMzI4LTM4LjQtNjEuNDQtNzEuNjgtNjYuNTZsLTE4NC44MzItMzUuODQtODIuNDMyLTE4Mi43ODRjLTEyLjgtMzMuMjgtNDYuMDgtNTYuMzItODAuMzg0LTU2LjMyLTMzLjc5MiAwLTY0LjUxMiAyMC40OC03OS44NzIgNTMuNzZMMzQ5LjE4NCAyOTkuMDA4bC0xODQuMzIgMzUuMzI4Yy0zMy43OTIgNS4xMi02MS45NTIgMzEuMjMyLTcyLjE5MiA2Ni41Ni05LjcyOCAzNC4zMDQtMS4wMjQgNzIuMTkyIDIzLjA0IDk4LjgxNmwxMzEuNTg0IDEzMy42MzItMzUuODQgMTk2LjYwOGMtNS42MzIgMzQuODE2IDguNzA0IDcxLjY4IDM1Ljg0IDk0LjIwOCAxMy44MjQgMTEuMjY0IDM0LjMwNCAxOC40MzIgNTIuMjI0IDE4LjQzMiAxNi44OTYgMCAyOS42OTYtMy4wNzIgNDEuNDcyLTEwLjI0bDE2OC45Ni05MS4xMzYgMTY2LjkxMiA5MS4xMzYgMS4wMjQgMC41MTJjMTYuODk2IDYuNjU2IDI5LjY5NiA5LjcyOCA0MC40NDggOS43MjggMTQuMzM2IDAgMjcuNjQ4LTQuMDk2IDQwLjQ0OC03LjY4IDQuNjA4LTEuNTM2IDkuNzI4LTMuMDcyIDE0Ljg0OC00LjA5NmwyLjU2LTAuNTEyIDIuMDQ4LTEuNTM2YzI1LjA4OC0yMy4wNCAzNy44ODgtNTguODggMzIuNzY4LTkzLjY5NmwtMzMuMjgtMTk2LjYwOCAxMzEuNTg0LTEzNi4xOTJjMjQuMDY0LTI3LjY0OCAzMi4yNTYtNjIuOTc2IDIyLjAxNi05OC44MTZ6TTI3Ni45OTIgODM2LjA5Nmw0MS45ODQtMjMxLjkzNi0xNTcuMTg0LTE1OS4yMzJjLTUuNjMyLTUuNjMyLTguMTkyLTE3LjQwOC02LjY1Ni0yOS4xODQgMy41ODQtMTAuMjQgMTAuMjQtMTYuMzg0IDE5LjQ1Ni0xNy45MmwyMTguMTEyLTQxLjk4NCA5Ni4yNTYtMjE1LjU1MmMzLjA3Mi03LjE2OCAxMi44LTE0LjMzNiAyMC40OC0xNC4zMzZzMTcuNDA4IDcuMTY4IDIwLjQ4IDE0Ljg0OGw5OC4zMDQgMjE1LjA0IDIxOC4xMTIgNDEuOTg0YzcuMTY4IDEuNTM2IDE1LjM2IDcuMTY4IDE2Ljg5NiAxNi4zODR2My4wNzJjMi4wNDggMTEuNzc2LTAuNTEyIDIyLjUyOC02LjY1NiAzMC43Mkw2OTkuOTA0IDYwOS4yOGwzOS45MzYgMjMxLjQyNGMxLjUzNiAxMC43NTItMi4wNDggMjAuNDgtMTAuMjQgMjcuMTM2bC0xLjAyNCAwLjUxMmMtMi41NiAyLjU2LTYuNjU2IDQuMDk2LTExLjI2NCA0LjA5Ni0yLjA0OCAwLTcuMTY4LTEuNTM2LTExLjI2NC0zLjU4NGwtMTk3LjEyLTEwOC4wMzItMTk5LjE2OCAxMDIuOTEyYy00LjA5NiAyLjA0OC05LjIxNiAzLjU4NC0xMS43NzYgMy41ODQtNC42MDggMC04LjcwNC0xLjUzNi0xMS4yNjQtNC4wOTZsLTEuMDI0LTAuNTEyYy02LjY1Ni02LjE0NC0xMC43NTItMTYuMzg0LTguNzA0LTI2LjYyNHoiIGZpbGw9IiM0NDRFNjAiPjwvcGF0aD48L3N2Zz4=",speechBallon:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTgzMiA4MzJINDQ4bC0xMjggMTkyLTEyOC0xOTJjLTEwNi4wNDggMC0xOTItODYuMDE2LTE5Mi0xOTJWMTkyYTE5MiAxOTIgMCAwIDEgMTkyLTE5Mmg2NDBjMTA1Ljk4NCAwIDE5MiA4NS45NTIgMTkyIDE5MnY0NDhjMCAxMDUuOTg0LTg2LjAxNiAxOTItMTkyIDE5MnogbTY0LTY0MGE2NCA2NCAwIDAgMC02NC02NEgxOTJDMTU2LjY3MiAxMjggMTI4IDE1Ni42NzIgMTI4IDE5MnY0NDhhNjQgNjQgMCAwIDAgNjQgNjRoNDIuNjg4TDMyMCA4MzJsODUuMzEyLTEyOEg4MzJjMzUuMzkyIDAgNjQtMjguNjA4IDY0LTY0VjE5MnoiIGZpbGw9IiM0NDRFNjAiPjwvcGF0aD48L3N2Zz4=","speechBallon-active":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTgzMiA4MzJINDQ4bC0xMjggMTkyLTEyOC0xOTJjLTEwNi4wNDggMC0xOTItODYuMDE2LTE5Mi0xOTJWMTkyYTE5MiAxOTIgMCAwIDEgMTkyLTE5Mmg2NDBjMTA1Ljk4NCAwIDE5MiA4NS45NTIgMTkyIDE5MnY0NDhjMCAxMDUuOTg0LTg2LjAxNiAxOTItMTkyIDE5MnogbTY0LTY0MGE2NCA2NCAwIDAgMC02NC02NEgxOTJDMTU2LjY3MiAxMjggMTI4IDE1Ni42NzIgMTI4IDE5MnY0NDhhNjQgNjQgMCAwIDAgNjQgNjRoNDIuNjg4TDMyMCA4MzJsODUuMzEyLTEyOEg4MzJjMzUuMzkyIDAgNjQtMjguNjA4IDY0LTY0VjE5MnoiIGZpbGw9IiMzMzgxRkYiPjwvcGF0aD48L3N2Zz4=","speechBallon-placement":"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTU3NiAyMTMuMzMzMzMzbDIyLjYxMzMzMyAyMi42MTMzMzRhMzIgMzIgMCAwIDAgMC00NS4yMjY2NjdMNTc2IDIxMy4zMzMzMzN6IG0tNjIuNzItMTA3Ljk0NjY2NmEzMiAzMiAwIDEgMC00NS4yMjY2NjcgNDUuMjI2NjY2bDQ1LjIyNjY2Ny00NS4yMjY2NjZ6IG0tNDUuMjI2NjY3IDE3MC42NjY2NjZhMzIgMzIgMCAwIDAgNDUuMjI2NjY3IDQ1LjIyNjY2N2wtNDUuMjI2NjY3LTQ1LjIyNjY2N3pNNDQ4IDgxMC42NjY2NjdsLTIyLjYxMzMzMy0yMi42MTMzMzRhMzIgMzIgMCAwIDAgMCA0NS4yMjY2NjdsMjIuNjEzMzMzLTIyLjYxMzMzM3ogbTEwNy45NDY2NjctNjIuNzJhMzIgMzIgMCAxIDAtNDUuMjI2NjY3LTQ1LjIyNjY2N2w0NS4yMjY2NjcgNDUuMjI2NjY3eiBtLTQ1LjIyNjY2NyAxNzAuNjY2NjY2YTMyIDMyIDAgMSAwIDQ1LjIyNjY2Ny00NS4yMjY2NjZsLTQ1LjIyNjY2NyA0NS4yMjY2NjZ6TTgxMC42NjY2NjcgNTc2bC0yMi42MTMzMzQgMjIuNjEzMzMzYTMyIDMyIDAgMCAwIDQ1LjIyNjY2NyAwTDgxMC42NjY2NjcgNTc2eiBtMTA3Ljk0NjY2Ni02Mi43MmEzMiAzMiAwIDEgMC00NS4yMjY2NjYtNDUuMjI2NjY3bDQ1LjIyNjY2NiA0NS4yMjY2Njd6IG0tMTcwLjY2NjY2Ni00NS4yMjY2NjdhMzIgMzIgMCAxIDAtNDUuMjI2NjY3IDQ1LjIyNjY2N2w0NS4yMjY2NjctNDUuMjI2NjY3ek0yMTMuMzMzMzMzIDQ0OGwyMi42MTMzMzQtMjIuNjEzMzMzYTMyIDMyIDAgMCAwLTQ1LjIyNjY2NyAwbDIyLjYxMzMzMyAyMi42MTMzMzN6IG02Mi43MiAxMDcuOTQ2NjY3YTMyIDMyIDAgMCAwIDQ1LjIyNjY2Ny00NS4yMjY2NjdsLTQ1LjIyNjY2NyA0NS4yMjY2Njd6IG0tMTcwLjY2NjY2Ni00NS4yMjY2NjdhMzIgMzIgMCAxIDAgNDUuMjI2NjY2IDQ1LjIyNjY2N2wtNDUuMjI2NjY2LTQ1LjIyNjY2N3pNMzA5LjMzMzMzMyAyMTMuMzMzMzMzQTc0LjY2NjY2NyA3NC42NjY2NjcgMCAwIDEgMjM0LjY2NjY2NyAyODh2NjRBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDM3My4zMzMzMzMgMjEzLjMzMzMzM2gtNjR6TTIzNC42NjY2NjcgMjg4QTc0LjY2NjY2NyA3NC42NjY2NjcgMCAwIDEgMTYwIDIxMy4zMzMzMzNoLTY0QTEzOC42NjY2NjcgMTM4LjY2NjY2NyAwIDAgMCAyMzQuNjY2NjY3IDM1MnYtNjR6TTE2MCAyMTMuMzMzMzMzYzAtNDEuMjE2IDMzLjQ1MDY2Ny03NC42NjY2NjcgNzQuNjY2NjY3LTc0LjY2NjY2NnYtNjRBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDk2IDIxMy4zMzMzMzNoNjR6TTIzNC42NjY2NjcgMTM4LjY2NjY2N2M0MS4yMTYgMCA3NC42NjY2NjcgMzMuNDUwNjY3IDc0LjY2NjY2NiA3NC42NjY2NjZoNjRBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDIzNC42NjY2NjcgNzQuNjY2NjY3djY0ek0zNDEuMzMzMzMzIDI0NS4zMzMzMzNoMjM0LjY2NjY2N3YtNjRIMzQxLjMzMzMzM3Y2NHogbTI1Ny4yOC01NC42MTMzMzNsLTg1LjMzMzMzMy04NS4zMzMzMzMtNDUuMjI2NjY3IDQ1LjIyNjY2NiA4NS4zMzMzMzQgODUuMzMzMzM0IDQ1LjIyNjY2Ni00NS4yMjY2Njd6IG0tNDUuMjI2NjY2IDBsLTg1LjMzMzMzNCA4NS4zMzMzMzMgNDUuMjI2NjY3IDQ1LjIyNjY2NyA4NS4zMzMzMzMtODUuMzMzMzMzLTQ1LjIyNjY2Ni00NS4yMjY2Njd6TTY1MC42NjY2NjcgODEwLjY2NjY2N2ExMzguNjY2NjY3IDEzOC42NjY2NjcgMCAwIDAgMTM4LjY2NjY2NiAxMzguNjY2NjY2di02NEE3NC42NjY2NjcgNzQuNjY2NjY3IDAgMCAxIDcxNC42NjY2NjcgODEwLjY2NjY2N2gtNjR6IG0xMzguNjY2NjY2IDEzOC42NjY2NjZBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDkyOCA4MTAuNjY2NjY3aC02NGE3NC42NjY2NjcgNzQuNjY2NjY3IDAgMCAxLTc0LjY2NjY2NyA3NC42NjY2NjZ2NjR6TTkyOCA4MTAuNjY2NjY3YTEzOC42NjY2NjcgMTM4LjY2NjY2NyAwIDAgMC0xMzguNjY2NjY3LTEzOC42NjY2Njd2NjRjNDEuMjE2IDAgNzQuNjY2NjY3IDMzLjQ1MDY2NyA3NC42NjY2NjcgNzQuNjY2NjY3aDY0eiBtLTEzOC42NjY2NjctMTM4LjY2NjY2N0ExMzguNjY2NjY3IDEzOC42NjY2NjcgMCAwIDAgNjUwLjY2NjY2NyA4MTAuNjY2NjY3aDY0YzAtNDEuMjE2IDMzLjQ1MDY2Ny03NC42NjY2NjcgNzQuNjY2NjY2LTc0LjY2NjY2N3YtNjR6IG0tMTA2LjY2NjY2NiAxMDYuNjY2NjY3aC0yMzQuNjY2NjY3djY0SDY4Mi42NjY2Njd2LTY0eiBtLTIxMi4wNTMzMzQgNTQuNjEzMzMzbDg1LjMzMzMzNC04NS4zMzMzMzMtNDUuMjI2NjY3LTQ1LjIyNjY2Ny04NS4zMzMzMzMgODUuMzMzMzMzIDQ1LjIyNjY2NiA0NS4yMjY2Njd6IG0tNDUuMjI2NjY2IDBsODUuMzMzMzMzIDg1LjMzMzMzMyA0NS4yMjY2NjctNDUuMjI2NjY2LTg1LjMzMzMzNC04NS4zMzMzMzQtNDUuMjI2NjY2IDQ1LjIyNjY2N3pNNjcyIDIzNC42NjY2NjdBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDgxMC42NjY2NjcgMzczLjMzMzMzM3YtNjRhNzQuNjY2NjY3IDc0LjY2NjY2NyAwIDAgMS03NC42NjY2NjctNzQuNjY2NjY2aC02NHpNODEwLjY2NjY2NyAzNzMuMzMzMzMzYTEzOC42NjY2NjcgMTM4LjY2NjY2NyAwIDAgMCAxMzguNjY2NjY2LTEzOC42NjY2NjZoLTY0QTc0LjY2NjY2NyA3NC42NjY2NjcgMCAwIDEgODEwLjY2NjY2NyAzMDkuMzMzMzMzdjY0eiBtMTM4LjY2NjY2Ni0xMzguNjY2NjY2QTEzOC42NjY2NjcgMTM4LjY2NjY2NyAwIDAgMCA4MTAuNjY2NjY3IDk2djY0YzQxLjIxNiAwIDc0LjY2NjY2NyAzMy40NTA2NjcgNzQuNjY2NjY2IDc0LjY2NjY2N2g2NHpNODEwLjY2NjY2NyA5NmExMzguNjY2NjY3IDEzOC42NjY2NjcgMCAwIDAtMTM4LjY2NjY2NyAxMzguNjY2NjY3aDY0YzAtNDEuMjE2IDMzLjQ1MDY2Ny03NC42NjY2NjcgNzQuNjY2NjY3LTc0LjY2NjY2N3YtNjR6TTc3OC42NjY2NjcgMzQxLjMzMzMzM3YyMzQuNjY2NjY3aDY0VjM0MS4zMzMzMzNoLTY0eiBtNTQuNjEzMzMzIDI1Ny4yOGw4NS4zMzMzMzMtODUuMzMzMzMzLTQ1LjIyNjY2Ni00NS4yMjY2NjctODUuMzMzMzM0IDg1LjMzMzMzNCA0NS4yMjY2NjcgNDUuMjI2NjY2eiBtMC00NS4yMjY2NjZsLTg1LjMzMzMzMy04NS4zMzMzMzQtNDUuMjI2NjY3IDQ1LjIyNjY2NyA4NS4zMzMzMzMgODUuMzMzMzMzIDQ1LjIyNjY2Ny00NS4yMjY2NjZ6TTEzOC42NjY2NjcgNzg5LjMzMzMzM2MwLTQxLjIxNiAzMy40NTA2NjctNzQuNjY2NjY3IDc0LjY2NjY2Ni03NC42NjY2NjZ2LTY0YTEzOC42NjY2NjcgMTM4LjY2NjY2NyAwIDAgMC0xMzguNjY2NjY2IDEzOC42NjY2NjZoNjR6TTIxMy4zMzMzMzMgNzE0LjY2NjY2N2M0MS4yMTYgMCA3NC42NjY2NjcgMzMuNDUwNjY3IDc0LjY2NjY2NyA3NC42NjY2NjZoNjRBMTM4LjY2NjY2NyAxMzguNjY2NjY3IDAgMCAwIDIxMy4zMzMzMzMgNjUwLjY2NjY2N3Y2NHogbTc0LjY2NjY2NyA3NC42NjY2NjZBNzQuNjY2NjY3IDc0LjY2NjY2NyAwIDAgMSAyMTMuMzMzMzMzIDg2NHY2NGExMzguNjY2NjY3IDEzOC42NjY2NjcgMCAwIDAgMTM4LjY2NjY2Ny0xMzguNjY2NjY3aC02NHpNMjEzLjMzMzMzMyA4NjRhNzQuNjY2NjY3IDc0LjY2NjY2NyAwIDAgMS03NC42NjY2NjYtNzQuNjY2NjY3aC02NEExMzguNjY2NjY3IDEzOC42NjY2NjcgMCAwIDAgMjEzLjMzMzMzMyA5Mjh2LTY0ek0yNDUuMzMzMzMzIDY4Mi42NjY2Njd2LTIzNC42NjY2NjdoLTY0VjY4Mi42NjY2NjdoNjR6IG0tNTQuNjEzMzMzLTIxMi4wNTMzMzRsODUuMzMzMzMzIDg1LjMzMzMzNCA0NS4yMjY2NjctNDUuMjI2NjY3LTg1LjMzMzMzMy04NS4zMzMzMzMtNDUuMjI2NjY3IDQ1LjIyNjY2NnogbTAtNDUuMjI2NjY2bC04NS4zMzMzMzMgODUuMzMzMzMzIDQ1LjIyNjY2NiA0NS4yMjY2NjcgODUuMzMzMzM0LTg1LjMzMzMzNC00NS4yMjY2NjctNDUuMjI2NjY2eiIgIGZpbGw9IiM0NDRFNjAiPjwvcGF0aD48L3N2Zz4="};function le(o){return up[o]}const hp=o=>{const{workIds:t,maranger:e}=o;return u.createElement("div",{className:"button normal-button",onClick:i=>{i.preventDefault(),i.stopPropagation(),Q.emitMethod(W.MainEngine,x.DeleteNode,{workIds:t||[E],viewId:e.viewId})},onTouchEnd:i=>{i.stopPropagation(),Q.emitMethod(W.MainEngine,x.DeleteNode,{workIds:t||[E],viewId:e.viewId})}},u.createElement("img",{alt:"icon",src:le("delete")}))},dp=o=>{const{workIds:t,viewId:e}=o;return u.createElement("div",{className:"button normal-button",onClick:i=>{i.preventDefault(),i.stopPropagation(),Q.emitMethod(W.MainEngine,x.CopyNode,{workIds:t||[E],viewId:e})},onTouchEnd:i=>{i.stopPropagation(),Q.emitMethod(W.MainEngine,x.CopyNode,{workIds:t||[E],viewId:e})}},u.createElement("img",{alt:"icon",src:le("duplicate")}))},eo=o=>{const{icon:t,onClickHandler:e,onTouchEndHandler:i}=o;return u.createElement("div",{className:"button normal-button",onClick:e,onTouchEnd:i},u.createElement("img",{src:le(t)}))},gp=o=>{const{open:t,setOpen:e,style:i}=o,{floatBarData:n,maranger:s}=u.useContext(re),[r,a]=u.useState([]),c=u.useMemo(()=>{if(i&&i.bottom){const h={};return h.top="inherit",h.bottom=50,h}},[i]),l=u.useMemo(()=>t?u.createElement("div",{className:"image-layer-menu",style:c},u.createElement(eo,{icon:"to-top",onClickHandler:h=>{h.preventDefault(),h.stopPropagation(),Q.emitMethod(W.MainEngine,x.ZIndexNode,{workIds:[E],layer:Qe.Top,viewId:s==null?void 0:s.viewId})},onTouchEndHandler:h=>{h.stopPropagation(),Q.emitMethod(W.MainEngine,x.ZIndexNode,{workIds:[E],layer:Qe.Top,viewId:s==null?void 0:s.viewId})}}),u.createElement(eo,{icon:"to-bottom",onClickHandler:h=>{h.preventDefault(),h.stopPropagation(),Q.emitMethod(W.MainEngine,x.ZIndexNode,{workIds:[E],layer:Qe.Bottom,viewId:s==null?void 0:s.viewId})},onTouchEndHandler:h=>{h.stopPropagation(),Q.emitMethod(W.MainEngine,x.ZIndexNode,{workIds:[E],layer:Qe.Bottom,viewId:s==null?void 0:s.viewId})}})):null,[t,c]),d=h=>{h.preventDefault(),h.stopPropagation(),h.nativeEvent.stopImmediatePropagation(),e(!t)},g=h=>{h.stopPropagation(),h.nativeEvent.stopImmediatePropagation(),e(!t)};return u.useEffect(()=>{ce(n==null?void 0:n.selectIds,r)||n!=null&&n.selectIds&&!ce(n==null?void 0:n.selectIds,r)&&(a(n==null?void 0:n.selectIds),e(!1))},[t,n,r,e]),u.createElement("div",{className:`button normal-button ${t&&"active"}`,onClick:d,onTouchEnd:g},l,u.createElement("img",{alt:"icon",src:le(t?"layer-pressed":"layer")}))},Mp=o=>{const{activeColor:t,onClickHandler:e,onTouchEndHandler:i}=o;return u.createElement("div",{className:`font-color-button ${t==="transparent"?"active":""}`,onClick:e,onTouchEnd:i},u.createElement("div",{className:"circle none"}))},ci=o=>{const{color:t,activeColor:e,onClickHandler:i,onTouchEndHandler:n}=o;return u.createElement("div",{className:`font-color-button ${t===e?"active":""}`,onClick:i,onTouchEnd:n},u.createElement("div",{className:"circle",style:{backgroundColor:ue(t,1)}}))},li=o=>{const{opacity:t,activeColor:e,setCurOpacity:i}=o,[n,s]=u.useState({x:108,y:0});if(u.useEffect(()=>{s({x:t*100+8,y:0})},[]),!e)return null;const r=K.throttle((l,d)=>{l.preventDefault(),l.stopPropagation(),d.x!==(n==null?void 0:n.x)&&s({x:d.x,y:0});const g=Math.min(Math.max(d.x-8,0),100)/100;t!==g&&i(g,e,j.Doing)},100,{leading:!1}),a=l=>{l.preventDefault(),l.stopPropagation(),i(t,e,j.Start)},c=K.throttle((l,d)=>{l.preventDefault(),l.stopPropagation(),d.x!==(n==null?void 0:n.x)&&s({x:d.x,y:0});const g=Math.min(Math.max(d.x-8,0),100)/100;i(g,e,j.Done)},100,{leading:!1});return u.createElement("div",{className:"font-color-opacity",style:{marginLeft:"10px"},onClick:l=>{const d=l.nativeEvent.offsetX,g=Math.min(Math.max(d-12,0),100)/100;s({x:g*100+8,y:0}),i(g,e,j.Done)}},u.createElement("div",{className:"range-color",style:{background:`linear-gradient(to right, ${ue(e,0)}, ${ue(e,1)})`}}),u.createElement("div",{className:"range-opacity"},u.createElement(rt,{bounds:"parent",axis:"x",position:n,onDrag:r,onStart:a,onStop:c},u.createElement("div",{className:"circle",style:{backgroundColor:ue(e,t)},onClick:l=>{l==null||l.preventDefault(),l==null||l.stopPropagation()}}))))},pp=o=>{const{open:t,setOpen:e,floatBarRef:i}=o,{floatBarData:n,floatBarColors:s,maranger:r,setFloatBarData:a}=u.useContext(re),[c,l]=u.useState(),[d,g]=u.useState(1);u.useEffect(()=>{if(n!=null&&n.strokeColor){const[f,I]=ai(n.strokeColor);l(f),g(I)}},[n]);const h=u.useMemo(()=>{if(i!=null&&i.current&&K.isNumber(n==null?void 0:n.y)&&(r!=null&&r.height)){if(i.current.offsetTop&&i.current.offsetTop+n.y>180){const f={};return f.top="inherit",f.bottom=50,f}else if(!i.current.offsetTop&&(r==null?void 0:r.height)-i.current.offsetTop-n.y<120){const f={};return f.top="inherit",f.bottom=50,f}}},[i,n==null?void 0:n.y,r]),M=u.useMemo(()=>u.createElement(li,{key:"strokeColors",opacity:d,activeColor:c,setCurOpacity:(f,I,m)=>{m===j.Start&&(r!=null&&r.control.room)&&(r.control.room.disableDeviceInputs=!0),m===j.Done&&(r!=null&&r.control.room)&&(r.control.room.disableDeviceInputs=!1),g(f);const w=ue(I,f);n!=null&&n.strokeColor&&(n.strokeColor=w,a({strokeColor:w})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],strokeColor:w,workState:m,viewId:r==null?void 0:r.viewId})}}),[d,c,r==null?void 0:r.control.room,r==null?void 0:r.viewId,n]),y=u.useMemo(()=>t?u.createElement("div",{className:"font-colors-menu",style:h,onTouchEnd:f=>{f.stopPropagation(),f.nativeEvent.stopImmediatePropagation()},onClick:f=>{f.preventDefault(),f.stopPropagation(),f.nativeEvent.stopImmediatePropagation()}},s.concat().map((f,I)=>{const m=kt(...f);return u.createElement(ci,{key:I,color:m,activeColor:c,onTouchEndHandler:w=>{w.stopPropagation(),l(m);const T=ue(m,d);n!=null&&n.strokeColor&&(n.strokeColor=T,a({strokeColor:T})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],strokeColor:T,viewId:r==null?void 0:r.viewId})},onClickHandler:w=>{w.preventDefault(),w.stopPropagation(),l(m);const T=ue(m,d);n!=null&&n.strokeColor&&(n.strokeColor=T,a({strokeColor:T})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],strokeColor:T,viewId:r==null?void 0:r.viewId})}})}),M):null,[t,s,M,c,d,n,r==null?void 0:r.viewId,h]),v=u.useMemo(()=>c?u.createElement("div",{className:"color-bar-ring",style:{backgroundColor:ue(c,d)}},u.createElement("div",{className:"circle"})):null,[c,d]);return u.createElement("div",{className:`button normal-button font-colors-icon ${t&&"active"}`,onTouchEnd:f=>{f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)},onClick:f=>{f.preventDefault(),f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)}},v,y)},fp=o=>{const{open:t,setOpen:e,floatBarRef:i}=o,{floatBarData:n,floatBarColors:s,maranger:r,setFloatBarData:a}=u.useContext(re),[c,l]=u.useState(),[d,g]=u.useState(1);u.useEffect(()=>{if(n!=null&&n.fillColor){const[f,I]=(n==null?void 0:n.fillColor)==="transparent"&&["transparent",1]||ai(n.fillColor);l(f),g(I)}},[n]);const h=u.useMemo(()=>{if(i!=null&&i.current&&K.isNumber(n==null?void 0:n.y)&&(r!=null&&r.height)){if(i.current.offsetTop&&i.current.offsetTop+n.y>200){const f={};return f.top="inherit",f.bottom=50,f}else if(!i.current.offsetTop&&(r==null?void 0:r.height)-i.current.offsetTop-n.y<140){const f={};return f.top="inherit",f.bottom=50,f}}},[i,n==null?void 0:n.y,r]),M=u.useMemo(()=>c&&c!=="transparent"?u.createElement(li,{key:"fillColors",opacity:d||0,activeColor:c,setCurOpacity:(f,I,m)=>{m===j.Start&&(r!=null&&r.control.room)&&(r.control.room.disableDeviceInputs=!0),m===j.Done&&(r!=null&&r.control.room)&&(r.control.room.disableDeviceInputs=!1),g(f);const w=ue(I,f);n!=null&&n.fillColor&&(n.fillColor=w,a({fillColor:w})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],fillColor:c&&ue(I,f),workState:m,viewId:r==null?void 0:r.viewId})}}):null,[c,d,r==null?void 0:r.control.room,r==null?void 0:r.viewId,n]),y=u.useMemo(()=>t?u.createElement("div",{className:"font-colors-menu",style:h,onTouchEnd:f=>{f.stopPropagation(),f.nativeEvent.stopImmediatePropagation()},onClick:f=>{f.preventDefault(),f.stopPropagation(),f.nativeEvent.stopImmediatePropagation()}},u.createElement(Mp,{activeColor:c,onTouchEndHandler:f=>{f.stopPropagation(),l("transparent");const I="transparent";n!=null&&n.fillColor&&(n.fillColor=I,a({fillColor:I})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],fillColor:I,viewId:r==null?void 0:r.viewId})},onClickHandler:f=>{f.preventDefault(),f.stopPropagation(),l("transparent");const I="transparent";n!=null&&n.fillColor&&(n.fillColor=I,a({fillColor:I})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],fillColor:I,viewId:r==null?void 0:r.viewId})}}),s.map((f,I)=>{const m=kt(...f);return u.createElement(ci,{key:I,color:m,activeColor:c,onTouchEndHandler:w=>{w.stopPropagation(),l(m);const T=ue(m,d);n!=null&&n.fillColor&&(n.fillColor=T,a({fillColor:T})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],fillColor:T,viewId:r==null?void 0:r.viewId})},onClickHandler:w=>{w.preventDefault(),w.stopPropagation(),l(m);const T=ue(m,d);n!=null&&n.fillColor&&(n.fillColor=T,a({fillColor:T})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:[E],fillColor:T,viewId:r==null?void 0:r.viewId})}})}),M):null,[t,c,s,M,n,r==null?void 0:r.viewId,d,h]),v=u.useMemo(()=>{const f=c&&c!=="transparent"&&ue(c,d)||"transparent";return u.createElement("div",{className:"color-bar-fill"},u.createElement("div",{className:"circle",style:{backgroundColor:f}}))},[c,d]);return u.createElement("div",{className:`button normal-button font-colors-icon ${t&&"active"}`,onTouchEnd:f=>{f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)},onClick:f=>{f.preventDefault(),f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)}},v,y)},yp=o=>{const{open:t,setOpen:e,textOpt:i,workIds:n,floatBarRef:s}=o,{floatBarColors:r,maranger:a,setFloatBarData:c,floatBarData:l}=u.useContext(re),[d,g]=u.useState(),[h,M]=u.useState(1);u.useEffect(()=>{if(i!=null&&i.fontColor){const[m,w]=(i==null?void 0:i.fontColor)==="transparent"&&["transparent",0]||ai(i.fontColor);g(m),M(w)}},[i==null?void 0:i.fontColor]);const y=u.useMemo(()=>{if(s!=null&&s.current&&K.isNumber(l==null?void 0:l.y)&&(a!=null&&a.height)){if(s.current.offsetTop&&s.current.offsetTop+l.y>180){const m={};return m.top="inherit",m.bottom=50,m}else if(!s.current.offsetTop&&(a==null?void 0:a.height)-s.current.offsetTop-l.y<120){const m={};return m.top="inherit",m.bottom=50,m}}},[s,l==null?void 0:l.y,a]),v=u.useMemo(()=>d&&d!=="transparent"?u.createElement(li,{key:"fontColors",opacity:h,activeColor:d,setCurOpacity:(m,w,T)=>{T===j.Start&&(a!=null&&a.control.room)&&(a.control.room.disableDeviceInputs=!0),T===j.Done&&(a!=null&&a.control.room)&&(a.control.room.disableDeviceInputs=!1),M(m);const z=ue(w,m);l!=null&&l.textOpt&&(l.textOpt.fontColor=z,c({textOpt:l.textOpt})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:n||[E],fontColor:d&&z,workState:T,viewId:a==null?void 0:a.viewId})}}):null,[d,h,a==null?void 0:a.control.room,a==null?void 0:a.viewId,l==null?void 0:l.textOpt,n]),f=u.useMemo(()=>t?u.createElement("div",{className:"font-colors-menu",style:y,onTouchEnd:m=>{m.stopPropagation(),m.nativeEvent.stopImmediatePropagation()},onClick:m=>{m.preventDefault(),m.stopPropagation(),m.nativeEvent.stopImmediatePropagation()}},r.map((m,w)=>{const T=kt(...m);return u.createElement(ci,{key:w,color:T,activeColor:d,onTouchEndHandler:z=>{z.stopPropagation(),g(T);const C=ue(T,h);l!=null&&l.textOpt&&(l.textOpt.fontColor=C,c({textOpt:l.textOpt})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:n||[E],fontColor:C,viewId:a==null?void 0:a.viewId})},onClickHandler:z=>{z.preventDefault(),z.stopPropagation(),g(T);const C=ue(T,h);l!=null&&l.textOpt&&(l.textOpt.fontColor=C,c({textOpt:l.textOpt})),Q.emitMethod(W.MainEngine,x.SetColorNode,{workIds:n||[E],fontColor:C,viewId:a==null?void 0:a.viewId})}})}),v):null,[t,r,v,d,h,l==null?void 0:l.textOpt,n,a==null?void 0:a.viewId,y]),I=u.useMemo(()=>{const m=d&&d!=="transparent"&&ue(d,h)||"transparent";return u.createElement("div",{className:"color-bar"},u.createElement("div",{className:"color-bar-color",style:{backgroundColor:m}}))},[d,h]);return u.createElement("div",{className:`button normal-button font-colors-icon ${t&&"active"}`,onTouchEnd:m=>{m.stopPropagation(),m.nativeEvent.stopImmediatePropagation(),e(!t)},onClick:m=>{m.preventDefault(),m.stopPropagation(),m.nativeEvent.stopImmediatePropagation(),e(!t)}},u.createElement("img",{alt:"icon",src:le("font-colors")}),I,f)},Ip=o=>{const{bold:t,setBold:e,workIds:i,viewId:n}=o,s=r=>{const a=t==="bold"?"normal":"bold";r==null||r.preventDefault(),r==null||r.stopPropagation(),e(a),Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:i,viewId:n,bold:a})};return u.createElement("div",{className:"font-style-button",onClick:s,onTouchEnd:s},u.createElement("img",{alt:"icon",src:le(t==="bold"?"bold-active":"bold")}))},vp=o=>{const{underline:t,setUnderline:e,workIds:i,viewId:n}=o,s=r=>{const a=!t;r==null||r.preventDefault(),r==null||r.stopPropagation(),e(a),Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:i,viewId:n,underline:a})};return u.createElement("div",{className:"font-style-button",onClick:s,onTouchEnd:s},u.createElement("img",{alt:"icon",src:le(t?"underline-active":"underline")}))},wp=o=>{const{lineThrough:t,setLineThrough:e,workIds:i,viewId:n}=o,s=r=>{const a=!t;r==null||r.preventDefault(),r==null||r.stopPropagation(),e(a),Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:i,viewId:n,lineThrough:a})};return u.createElement("div",{className:"font-style-button",onClick:s,onTouchEnd:s},u.createElement("img",{alt:"icon",src:le(t?"line-through-active":"line-through")}))},Np=o=>{const{italic:t,setItalic:e,workIds:i,viewId:n}=o,s=r=>{const a=t==="italic"?"normal":"italic";r==null||r.preventDefault(),r==null||r.stopPropagation(),e(a),Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:i,viewId:n,italic:a})};return u.createElement("div",{className:"font-style-button",onClick:s,onTouchEnd:s},u.createElement("img",{alt:"icon",src:le(t==="italic"?"italic-active":"italic")}))},mp=o=>{const{open:t,setOpen:e,textOpt:i,workIds:n,style:s}=o,{maranger:r}=u.useContext(re),[a,c]=u.useState("normal"),[l,d]=u.useState("normal"),[g,h]=u.useState(!1),[M,y]=u.useState(!1);u.useEffect(()=>{i!=null&&i.bold&&c(i.bold),Ne(i==null?void 0:i.underline)&&h(i.underline||!1),Ne(i==null?void 0:i.lineThrough)&&y(i.lineThrough||!1),i!=null&&i.italic&&d(i.italic)},[i]);const v=u.useMemo(()=>{if(s&&s.bottom){const I={};return I.top="inherit",I.bottom=50,I}},[s]),f=u.useMemo(()=>t?u.createElement("div",{className:"font-style-menu",style:v,onTouchEnd:I=>{I.stopPropagation(),I.nativeEvent.stopImmediatePropagation()},onClick:I=>{I.preventDefault(),I.stopPropagation(),I.nativeEvent.stopImmediatePropagation()}},u.createElement(Ip,{workIds:n||[E],bold:a,setBold:c,viewId:r==null?void 0:r.viewId}),u.createElement(vp,{workIds:n||[E],underline:g,setUnderline:h,viewId:r==null?void 0:r.viewId}),u.createElement(wp,{workIds:n||[E],lineThrough:M,setLineThrough:y,viewId:r==null?void 0:r.viewId}),u.createElement(Np,{workIds:n||[E],italic:l,setItalic:d,viewId:r==null?void 0:r.viewId})):null,[t,n,a,r==null?void 0:r.viewId,g,M,l,v]);return u.createElement("div",{className:`button normal-button ${t&&"active"}`,onTouchEnd:I=>{I.stopPropagation(),I.nativeEvent.stopImmediatePropagation(),e(!t)},onClick:I=>{I.preventDefault(),I.stopPropagation(),I.nativeEvent.stopImmediatePropagation(),e(!t)}},u.createElement("img",{alt:"icon",src:le(t?"font-style-active":"font-style")}),f)},pe=Object.freeze([12,14,18,24,36,48,64,80,144,288]),Je=["top","topLeft","topRight","bottom","bottomLeft","bottomRight","left","leftTop","leftBottom","right","rightTop","rightBottom"],Tp=o=>{const{style:t,onClickHandler:e}=o;return u.createElement("div",{className:"font-size-menu",style:t,onTouchEnd:i=>{i.stopPropagation(),i.nativeEvent.stopImmediatePropagation()},onClick:i=>{i.preventDefault(),i.stopPropagation(),i.nativeEvent.stopImmediatePropagation()}},pe.map(i=>u.createElement("div",{className:"font-size-btn",key:i,onClick:()=>{e(i)},onTouchEnd:()=>{e(i)}},i)))},zp=o=>{const t=u.useRef(null),{open:e,setOpen:i,textOpt:n,workIds:s,floatBarRef:r}=o,{maranger:a,floatBarData:c}=u.useContext(re),[l,d]=u.useState(0),[g,h]=u.useState(),M=pe.length-1;u.useEffect(()=>{n!=null&&n.fontSize&&(d(n.fontSize),t.current&&(t.current.value=n.fontSize.toString()))},[n==null?void 0:n.fontSize]);const y=u.useMemo(()=>{if(r!=null&&r.current&&K.isNumber(c==null?void 0:c.y)&&(a!=null&&a.height)){if(r.current.offsetTop&&r.current.offsetTop+c.y>250){const w={};return w.top="inherit",w.bottom=35,w}else if(!r.current.offsetTop&&(a==null?void 0:a.height)-r.current.offsetTop-c.y<180){const w={};return w.top="inherit",w.bottom=35,w}}},[r,c==null?void 0:c.y,a]);function v(w){d(w),w&&w>=pe[0]&&w<=pe[M]&&Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:s||[E],fontSize:w,viewId:a==null?void 0:a.viewId})}const f=w=>{var T;d(w),i(!1),(T=t.current)==null||T.blur(),w&&w>=pe[0]&&w<=pe[M]&&Q.emitMethod(W.MainEngine,x.SetFontStyle,{workIds:s||[E],fontSize:w,viewId:a==null?void 0:a.viewId})},I=u.useMemo(()=>e?u.createElement(Tp,{onClickHandler:f,style:y}):null,[e,f,y]),m=w=>{w>pe[M]&&(w=pe[M]),w<pe[0]&&(w=pe[0]),v(w)};return u.useEffect(()=>()=>{a!=null&&a.control.room&&K.isBoolean(g)&&(a.control.room.disableDeviceInputs=g)},[a,g]),u.createElement("div",{className:"button normal-button font-size-barBtn",style:{width:50},onTouchEnd:w=>{w.stopPropagation(),w.nativeEvent.stopImmediatePropagation()},onClick:w=>{w.preventDefault(),w.stopPropagation(),w.nativeEvent.stopImmediatePropagation()}},u.createElement("input",{className:"font-size-input",ref:t,onTouchEnd:()=>{t.current&&t.current.focus()},onClick:()=>{i(!e),t.current&&t.current.focus()},onKeyDown:w=>{if(w.key==="Backspace"){const T=window.getSelection(),z=T==null?void 0:T.getRangeAt(0);if(z!=null&&z.collapsed)return w.preventDefault(),document.execCommand("delete",!1),!1}},onKeyUp:()=>{if(t.current){const w=t.current.value,T=parseInt(w);isNaN(T)?t.current.value="0":t.current.value=T.toString()}},onChange:w=>{const T=w.target.value,z=parseInt(T);z&&v(z)},onFocus:()=>{a!=null&&a.control.room&&!a.control.room.disableDeviceInputs&&(h(a.control.room.disableDeviceInputs),a.control.room.disableDeviceInputs=!0)},onBlur:()=>{a!=null&&a.control.room&&K.isBoolean(g)&&(a.control.room.disableDeviceInputs=g)}}),u.createElement("div",{className:"font-size-btns"},u.createElement("div",{className:"font-size-add",onClick:()=>{m(l+pe[0])},onTouchEnd:()=>{m(l+pe[0])}}),u.createElement("div",{className:"font-size-cut",onClick:()=>{m(l-pe[0])},onTouchEnd:()=>{m(l-pe[0])}})),I)},Cp=o=>{const{workIds:t,maranger:e,islocked:i}=o;return u.createElement("div",{className:"button normal-button",onClick:n=>{n.preventDefault(),n.stopPropagation(),Q.emitMethod(W.MainEngine,x.SetLock,{workIds:t||[E],isLocked:!i,viewId:e==null?void 0:e.viewId})},onTouchEnd:n=>{n.stopPropagation(),Q.emitMethod(W.MainEngine,x.SetLock,{workIds:t||[E],isLocked:!i,viewId:e==null?void 0:e.viewId})}},u.createElement("img",{alt:"icon",src:le(i?"unlock-new":"lock-new")}))},Qt=o=>{const{icon:t,min:e,max:i,step:n,value:s,onInputHandler:r}=o,[a,c]=u.useState(0),l=u.useRef(null),d=g=>{g>i&&(g=i),g<e&&(g=e),c(g),r(g),l.current&&(l.current.value=g.toString())};return u.useEffect(()=>{s&&(c(s),l.current&&(l.current.value=s.toString()))},[s]),u.createElement("div",{className:"button input-button",onTouchEnd:g=>{g.stopPropagation(),g.nativeEvent.stopImmediatePropagation()},onClick:g=>{g.preventDefault(),g.stopPropagation(),g.nativeEvent.stopImmediatePropagation()}},u.createElement("img",{src:le(t)}),u.createElement("input",{className:"input-number",type:"text",ref:l,onTouchEnd:()=>{l.current&&l.current.focus()},onClick:()=>{l.current&&l.current.focus()},onKeyDown:g=>{if(g.key==="Backspace"){const h=window.getSelection(),M=h==null?void 0:h.getRangeAt(0);if(M!=null&&M.collapsed)return g.preventDefault(),document.execCommand("delete",!1),!1}},onKeyUp:()=>{if(l.current){const g=l.current.value,h=parseInt(g);isNaN(h)?l.current.value="0":l.current.value=h.toString()}},onChange:g=>{const h=g.target.value,M=parseInt(h);M&&M&&M>=e&&M<=i&&d(M)}}),u.createElement("div",{className:"input-number-btns"},u.createElement("div",{className:"input-number-add",onClick:()=>{d(a+n)},onTouchEnd:()=>{d(a+n)}}),u.createElement("div",{className:"input-number-cut",onClick:()=>{d(a-n)},onTouchEnd:()=>{d(a-n)}})))},jp=o=>{const{icon:t,min:e,max:i,step:n,value:s,onInputHandler:r}=o;return u.createElement("div",{className:"button input-button"},u.createElement("img",{src:le(t)}),u.createElement(Sp,{min:e,max:i,step:n,value:s,onInputHandler:r}))},Sp=o=>{const{value:t,min:e,max:i,onInputHandler:n}=o,[s,r]=u.useState({x:0,y:0});u.useEffect(()=>{r({x:t*100,y:0})},[]);const a=K.throttle((d,g)=>{d.preventDefault(),d.stopPropagation();let h=Math.floor(Math.max(g.x,e*100));h=Math.floor(Math.min(h,i*100)),g.x!==(s==null?void 0:s.x)&&r({x:h,y:0});const M=h/100;console.log("first1--doing",g,g.x,h,M),t!==M&&n(M)},100,{leading:!1}),c=d=>{d.preventDefault(),d.stopPropagation()},l=K.throttle((d,g)=>{d.preventDefault(),d.stopPropagation();let h=Math.floor(Math.max(g.x,e*100));h=Math.floor(Math.min(h,i*100)),g.x!==(s==null?void 0:s.x)&&r({x:h,y:0});const M=h/100;console.log("first1--end",g,g.x,h,M),t!==M&&n(M)},100,{leading:!1});return u.createElement("div",{className:"range-number-container",onClick:d=>{const g=d.nativeEvent.offsetX-6;let h=Math.floor(Math.max(g,e*100));h=Math.floor(Math.min(h,i*100)),r({x:h,y:0});const M=h/100;console.log("first1",d.nativeEvent.offsetX,h,M),t!==M&&n(M)}},u.createElement("div",{className:"range-number-color"}),u.createElement("div",{className:"range-number"},u.createElement(rt,{bounds:"parent",axis:"x",position:s,onDrag:a,onStart:c,onStop:l},u.createElement("div",{className:"circle",onClick:c}))))},xp=o=>{const{icon:t,value:e,onChangeHandler:i,style:n}=o,[s,r]=u.useState(0),[a,c]=u.useState(),l=u.useRef(null),d=u.useCallback(M=>{M>=Je.length&&(M=0),M<0&&(M=Je.length-1),r(M),i(Je[M]),c(!1),l.current&&(l.current.value=Je[M])},[i]),g=u.useMemo(()=>{if(n&&n.bottom){const M={};return M.top="inherit",M.bottom=50,M}},[n]);u.useEffect(()=>{e&&(r(Je.indexOf(e)),l.current&&(l.current.value=e))},[e]);const h=u.useMemo(()=>a?u.createElement(Dp,{options:Je,onClickHandler:d,style:g}):null,[a,d,g]);return u.createElement("div",{className:"button input-button"},u.createElement("img",{src:le(t)}),u.createElement("input",{readOnly:!0,className:"input-number",type:"text",ref:l,onTouchEnd:()=>{l.current&&l.current.focus()},onClick:()=>{l.current&&(l.current.focus(),c(!a))}}),u.createElement("div",{className:"input-number-btns"},u.createElement("div",{className:"input-number-add",onClick:()=>{d(s+1)},onTouchEnd:()=>{d(s+1)}}),u.createElement("div",{className:"input-number-cut",onClick:()=>{d(s-1)},onTouchEnd:()=>{d(s-1)}})),h)},Dp=o=>{const{options:t,style:e,onClickHandler:i}=o;return u.createElement("div",{className:"select-option-menu",style:e,onTouchEnd:n=>{n.stopPropagation(),n.nativeEvent.stopImmediatePropagation()},onClick:n=>{n.preventDefault(),n.stopPropagation(),n.nativeEvent.stopImmediatePropagation()}},t.map((n,s)=>u.createElement("div",{className:"select-option-btn",key:n,onClick:()=>{i(s)},onTouchEnd:()=>{i(s)}},n)))},Lp=o=>{const{maranger:t,innerRatio:e,innerVerticeStep:i,vertices:n}=o,s=c=>{console.log("onInputHandler",c),Q.emitMethod(W.MainEngine,x.SetShapeOpt,{workIds:[E],toolsType:N.Star,viewId:t.viewId,vertices:c})},r=c=>{console.log("onInputHandler",c),Q.emitMethod(W.MainEngine,x.SetShapeOpt,{workIds:[E],toolsType:N.Star,viewId:t.viewId,innerVerticeStep:c})},a=c=>{console.log("onInputHandler",c),Q.emitMethod(W.MainEngine,x.SetShapeOpt,{workIds:[E],toolsType:N.Star,viewId:t.viewId,innerRatio:c})};return u.createElement(u.Fragment,null,u.createElement(Qt,{value:n,icon:"polygon-vertex",min:3,max:100,step:1,onInputHandler:s}),u.createElement(Qt,{value:i,icon:"star-innerVertex",min:1,max:100,step:1,onInputHandler:r}),u.createElement(jp,{value:e,icon:"star-innerRatio",min:.1,max:1,step:.1,onInputHandler:a}))},kp=o=>{const{maranger:t,vertices:e}=o,i=n=>{Q.emitMethod(W.MainEngine,x.SetShapeOpt,{workIds:[E],toolsType:N.Polygon,viewId:t.viewId,vertices:n})};return u.createElement(Qt,{value:e,icon:"polygon-vertex",min:3,max:100,step:1,onInputHandler:i})},Ap=o=>{const{maranger:t,placement:e}=o,i=n=>{console.log("onChangeHandler-SpeechBalloonFormView",n),Q.emitMethod(W.MainEngine,x.SetShapeOpt,{workIds:[E],toolsType:N.SpeechBalloon,viewId:t.viewId,placement:n})};return u.createElement(xp,{value:e,icon:"speechBallon-placement",onChangeHandler:i})},Yt=o=>{const{icon:t,isActive:e,onClickHandler:i,onTouchEndHandler:n}=o;return u.createElement("div",{className:`button tab-button ${e?"active":""}`,onClick:i,onTouchEnd:n},u.createElement("img",{src:le(t)}))},bp=o=>{const{toolsTypes:t,style:e,maranger:i,shapeOpt:n}=o,[s,r]=u.useState();u.useEffect(()=>{t.includes(N.Polygon)?r(N.Polygon):t.includes(N.Star)?r(N.Star):r(N.SpeechBalloon)},[t]);const a=(g,h)=>{h==null||h.preventDefault(),h==null||h.stopPropagation(),r(g)},c=u.useMemo(()=>s===N.Polygon&&i&&n.vertices?u.createElement(kp,{vertices:n.vertices,maranger:i}):null,[i,s,n]),l=u.useMemo(()=>s===N.Star&&i&&n.vertices&&n.innerVerticeStep&&n.innerRatio?u.createElement(Lp,{maranger:i,vertices:n.vertices,innerVerticeStep:n.innerVerticeStep,innerRatio:n.innerRatio}):null,[i,s,n]),d=u.useMemo(()=>s===N.SpeechBalloon&&i&&n.placement?u.createElement(Ap,{maranger:i,placement:n.placement}):null,[i,s,n]);return u.createElement("div",{className:"shapeOpt-sub-menu",style:e,onClick:g=>{g.stopPropagation(),g.nativeEvent.stopImmediatePropagation(),g==null||g.preventDefault()}},u.createElement("div",{className:"shapeOpt-sub-menu-tabs"},t.includes(N.Polygon)&&u.createElement(Yt,{isActive:s===N.Polygon,icon:s===N.Polygon?"polygon-active":"polygon",onClickHandler:a.bind(void 0,N.Polygon),onTouchEndHandler:a.bind(void 0,N.Polygon)})||null,t.includes(N.Star)&&u.createElement(Yt,{isActive:s===N.Star,icon:s===N.Star?"star-active":"star",onClickHandler:a.bind(void 0,N.Star),onTouchEndHandler:a.bind(void 0,N.Star)})||null,t.includes(N.SpeechBalloon)&&u.createElement(Yt,{isActive:s===N.SpeechBalloon,icon:s===N.SpeechBalloon?"speechBallon-active":"speechBallon",onClickHandler:a.bind(void 0,N.SpeechBalloon),onTouchEndHandler:a.bind(void 0,N.SpeechBalloon)})||null),u.createElement("div",{className:"shapeOpt-sub-menu-content"},c,l,d))},Ep=o=>{const{open:t,setOpen:e,floatBarRef:i,toolsTypes:n,shapeOpt:s}=o,{floatBarData:r,maranger:a}=u.useContext(re),[c,l]=u.useState([]),[d,g]=u.useState(),h=u.useMemo(()=>{if(i!=null&&i.current&&K.isNumber(r==null?void 0:r.x)&&K.isNumber(r==null?void 0:r.y)&&(a!=null&&a.height)){if(i.current.offsetTop&&i.current.offsetTop+r.y>200){const f={};return f.top="inherit",f.bottom=50,f}else if(!i.current.offsetTop&&(a==null?void 0:a.height)-i.current.offsetTop-r.y<140){const f={};return f.top="inherit",f.bottom=50,f}}},[i,r==null?void 0:r.x,r==null?void 0:r.y,a==null?void 0:a.height]),M=u.useMemo(()=>t&&n&&a&&s?(a.control.room&&!a.control.room.disableDeviceInputs&&(g(a.control.room.disableDeviceInputs),a.control.room.disableDeviceInputs=!0),u.createElement(bp,{shapeOpt:s,style:h,toolsTypes:n,maranger:a})):(a!=null&&a.control.room&&Ne(d)&&(a.control.room.disableDeviceInputs=d),null),[t,h,n,a,s]),y=f=>{f.preventDefault(),f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)},v=f=>{f.stopPropagation(),f.nativeEvent.stopImmediatePropagation(),e(!t)};return u.useEffect(()=>{ce(r==null?void 0:r.selectIds,c)||r!=null&&r.selectIds&&!ce(r==null?void 0:r.selectIds,c)&&(l(r==null?void 0:r.selectIds),e(!1))},[t,r,c,e]),u.useEffect(()=>()=>{t&&a!=null&&a.control.room&&Ne(d)&&(a.control.room.disableDeviceInputs=d)},[t,a,d]),u.createElement("div",{className:`button normal-button ${t&&"active"}`,onClick:y,onTouchEnd:v},M,u.createElement("img",{alt:"icon",src:le(t?"shapes-active":"shapes")}))},Bo=u.memo(o=>{const{textOpt:t,workIds:e,noLayer:i,position:n}=o,{floatBarData:s,maranger:r}=u.useContext(re),[a,c]=u.useState(0),[l,d]=u.useState(),g=u.useRef(null);u.useEffect(()=>{var L,b,R;const T={},z=(s==null?void 0:s.w)||((L=t==null?void 0:t.boxSize)==null?void 0:L[0])||0,C=(s==null?void 0:s.h)||((b=t==null?void 0:t.boxSize)==null?void 0:b[1])||0;if(n&&z&&C&&(r!=null&&r.width)&&(r!=null&&r.height)){if(n.y<60?n.y+C<r.height-60?T.bottom=-120:n.y+C<r.height?T.bottom=-58:n.y>0?T.top=62:T.top=-n.y+62:T.top=0,n.x<0)T.left=-n.x+3;else if(n.x+(((R=g.current)==null?void 0:R.offsetWidth)||z)>r.width){const U=z+n.x-r.width;T.left="initial",T.right=U}d(T);return}d(void 0)},[g,n,s==null?void 0:s.w,s==null?void 0:s.h,r==null?void 0:r.width,r==null?void 0:r.height,t==null?void 0:t.boxSize]);const h=u.useMemo(()=>s!=null&&s.fillColor?u.createElement(fp,{floatBarRef:g,open:a===3,setOpen:T=>{c(T===!0?3:0)}}):null,[s==null?void 0:s.fillColor,a,g]),M=u.useMemo(()=>s!=null&&s.strokeColor?u.createElement(pp,{floatBarRef:g,open:a===2,setOpen:T=>{c(T===!0?2:0)}}):null,[s==null?void 0:s.strokeColor,a,g]),y=u.useMemo(()=>t!=null&&t.fontColor&&(r!=null&&r.viewId)?u.createElement(yp,{floatBarRef:g,open:a===4,setOpen:T=>{c(T===!0?4:0)},textOpt:t,workIds:e}):null,[t,a,e,r,g]),v=u.useMemo(()=>t&&(r!=null&&r.viewId)?u.createElement(mp,{open:a===6,setOpen:T=>{c(T===!0?6:0)},textOpt:t,workIds:e,style:l}):null,[t,a,e,r,l]),f=u.useMemo(()=>t&&(r!=null&&r.viewId)?u.createElement(zp,{open:a===7,setOpen:T=>{c(T===!0?7:0)},textOpt:t,workIds:e,floatBarRef:g}):null,[t,a,e,r,g]),I=u.useMemo(()=>i?null:u.createElement(gp,{open:a===1,setOpen:T=>{c(T===!0?1:0)},floatBarRef:g}),[i,a,g]),m=u.useMemo(()=>s!=null&&s.canLock&&r?u.createElement(Cp,{workIds:e,maranger:r,islocked:s.isLocked}):null,[s,r,e]),w=u.useMemo(()=>r&&(r!=null&&r.viewId)&&l&&(s!=null&&s.shapeOpt)&&(s!=null&&s.toolsTypes)?u.createElement(Ep,{open:a===8,setOpen:T=>{c(T===!0?8:0)},floatBarRef:g,workIds:e,toolsTypes:s.toolsTypes,shapeOpt:s.shapeOpt}):null,[s,r,a,l,e,g]);return u.createElement("div",{className:"bezier-pencil-plugin-floatbtns",style:l,ref:g},r&&u.createElement(hp,{workIds:e,maranger:r}),I,m,!!(r!=null&&r.viewId)&&u.createElement(dp,{workIds:e,viewId:r.viewId}),w,f,v,y,M,h)}),Op=o=>{const{data:t,isActive:e,manager:i,workId:n}=o,{opt:s,scale:r,translate:a,x:c,y:l}=t,d=`scale(${r||1}) ${a&&"translate("+a[0]+"px,"+a[1]+"px)"||""}`,{fontSize:g,fontFamily:h,underline:M,fontColor:y,lineThrough:v,textAlign:f,strokeColor:I,lineHeight:m,bold:w,italic:T,uid:z}=s,C=g,L=m||C*1.2,b={fontSize:`${C}px`,lineHeight:`${L}px`,color:y,borderColor:I,minHeight:`${L}px`};h&&(b.fontFamily=`${h}`),(v||M)&&(b.textDecoration=`${v&&"line-through"||""}${M&&" underline"||""}`),w&&(b.fontWeight=`${w}`),T&&(b.fontStyle=`${T}`),f&&(b.textAlign=`${f}`);let R="";s!=null&&s.text&&(R=s.text.split(",").reduce((Z,P,X)=>{const se=P===""?"<br/>":P;return X===0?se:`${Z}<div>${se}</div>`},""));function U(){var $;e&&(z&&z===(($=i.control.collector)==null?void 0:$.uid)||!z)&&i.control.textEditorManager.active(n)}return u.createElement("div",{className:"editor-box",style:{left:`${c}px`,top:`${l}px`,transform:d,transformOrigin:"left top",pointerEvents:"none"}},u.createElement("div",{className:`editor ${e?"":"readOnly"}`,style:b,dangerouslySetInnerHTML:{__html:R},onClick:U}))},Yp=u.memo(o=>{const{data:t,left:e,top:i,workId:n,updateOptInfo:s}=o,{opt:r,scale:a,translate:c}=t,l=u.useRef(null);u.useEffect(()=>{var R,U;if((R=l.current)!=null&&R.offsetWidth&&((U=l.current)!=null&&U.offsetHeight)){const $=r.boxSize;if(($==null?void 0:$[0])!==l.current.offsetWidth||$[1]!==l.current.offsetHeight||!$){const Z=[l.current.offsetWidth,l.current.offsetHeight];s({activeTextId:n,update:{boxSize:Z,workState:j.Done}})}}},[r.fontSize]);const d=`scale(${a||1}) ${c&&"translate("+c[0]+"px,"+c[1]+"px)"||""}`,{fontSize:g,fontFamily:h,underline:M,fontColor:y,lineThrough:v,textAlign:f,strokeColor:I,lineHeight:m,bold:w,italic:T}=r,z=g,C=m||z*1.2,L={fontSize:`${z}px`,lineHeight:`${C}px`,color:y,borderColor:I,minHeight:`${C}px`,pointerEvents:"none"};h&&(L.fontFamily=`${h}`),(v||M)&&(L.textDecoration=`${v&&"line-through"||""}${M&&" underline"||""}`),f&&(L.textAlign=`${f}`),w&&(L.fontWeight=`${w}`),T&&(L.fontStyle=`${T}`);let b="";return r!=null&&r.text&&(b=r.text.split(",").reduce((U,$,Z)=>{const P=$===""?"<br/>":$;return Z===0?P:`${U}<div>${P}</div>`},"")),u.createElement("div",{className:"editor-box",style:{left:`${e}`,top:`${i}`,transform:d,transformOrigin:"left top",zIndex:1,pointerEvents:"none"}},u.createElement("div",{className:"editor readOnly",ref:l,style:L,dangerouslySetInnerHTML:{__html:b}}))},(o,t)=>!(o.workId!==t.workId||o.left!==t.left||o.top!==t.top||!K.isEqual(o.data,t.data))),Pp=o=>{const{data:t,workId:e,isSelect:i,handleKeyUp:n,handleFocus:s,updateOptInfo:r,showFloatBtns:a,manager:c,handleBlur:l}=o,[d,g]=u.useState(),{opt:h,scale:M,translate:y,x:v,y:f}=t,[I,m]=u.useState(""),w=u.useRef(null);u.useEffect(()=>{let Y="";h!=null&&h.text&&(Y=h.text.split(",").reduce((te,Me,he)=>{const ze=Me===""?"<br/>":Me;return he===0?ze:`${te}<div>${ze}</div>`},"")),m(Y),Promise.resolve().then(()=>{w.current&&w.current.click()})},[]),u.useEffect(()=>{var Y,B,te,Me;((Y=w.current)!=null&&Y.offsetWidth&&((B=w.current)!=null&&B.offsetHeight)||(te=w.current)!=null&&te.offsetLeft||(Me=w.current)!=null&&Me.offsetTop)&&r({activeTextId:e,update:{boxSize:[w.current.offsetWidth,w.current.offsetHeight],workState:j.Doing}})});const T=`scale(${M||1}) ${y&&"translate("+y[0]+"px,"+y[1]+"px)"||""}`,{fontSize:z,fontFamily:C,underline:L,fontColor:b,lineThrough:R,textAlign:U,strokeColor:$,lineHeight:Z,bold:P,italic:X}=h,se=z,_=Z||se*1.2,F={transform:T,transformOrigin:"left top",fontSize:`${se}px`,lineHeight:`${_}px`,color:b,borderColor:$,minHeight:`${_}px`};C&&(F.fontFamily=`${C}`),(R||L)&&(F.textDecoration=`${R&&"line-through"||""} ${L&&" underline"||""}`),U&&(F.textAlign=`${U}`),P&&(F.fontWeight=`${P}`),X&&(F.fontStyle=`${X}`);function G(){var Y;if(w.current){w.current.focus();const B=window==null?void 0:window.getSelection(),te=w.current.lastChild;if(B&&te){const Me=document.createRange(),he=((Y=te.textContent)==null?void 0:Y.length)||0;(te==null?void 0:te.nodeName)==="#text"?Me.setStart(te,he):Me.setStart(te,he&&1||0),Me.collapse(!0),B.removeAllRanges(),B.addRange(Me)}}}function q(Y){if(Y.key==="Backspace"){const B=window.getSelection(),te=B==null?void 0:B.getRangeAt(0);if(te!=null&&te.collapsed)return Y.preventDefault(),document.execCommand("delete",!1),!1}return!1}function A(Y){var B,te;if(Y.preventDefault(),w.current){let Me=(Y.clipboardData||window.clipboardData).getData("text");Me=Me.toUpperCase();const he=window==null?void 0:window.getSelection();if(!(he!=null&&he.rangeCount))return;const ze=Me.split(/\n/);if(he&&ze.length){he.deleteFromDocument();const Ae=document.createRange();let de=w.current.lastChild;if(!de){const be=document.createTextNode(ze[0]);if(w.current.appendChild(be),ze.length===1){const at=((B=be.textContent)==null?void 0:B.length)||0;Ae.setStart(be,at),Ae.collapse(!0),he.removeAllRanges(),he.addRange(Ae);return}}if((de==null?void 0:de.nodeName)==="#text"&&(de.textContent=de.textContent+ze[0],ze.length===1)){const be=((te=de.textContent)==null?void 0:te.length)||0;Ae.setStart(de,be),Ae.collapse(!0),he.removeAllRanges(),he.addRange(Ae);return}(de==null?void 0:de.nodeName)==="DIV"&&(de.innerText=de.innerText+ze[0]);for(let be=1;be<ze.length;be++){const at=ze[be];if(at){const hi=document.createElement("div");hi.innerText=at,w.current.appendChild(hi)}}de=w.current.lastChild,de&&Ae.setStart(de,1),Ae.collapse(!0),he.removeAllRanges(),he.addRange(Ae)}}}return u.createElement("div",{className:"editor-box",style:{left:`${v}px`,top:`${f}px`,zIndex:2,pointerEvents:"none"},onFocus:()=>{c.control.room&&!c.control.room.disableDeviceInputs&&(g(c.control.room.disableDeviceInputs),c.control.room.disableDeviceInputs=!0)},onBlur:()=>{c!=null&&c.control.room&&K.isBoolean(d)&&(c.control.room.disableDeviceInputs=d)},onKeyDown:Y=>(Y.stopPropagation(),!0),onMouseMove:Y=>(Y.stopPropagation(),Y.preventDefault(),!0)},!i&&a&&u.createElement(Bo,{textOpt:h,workIds:[e],noLayer:!0,position:{x:v,y:f}}),u.createElement("div",{id:e,contentEditable:!0,className:"editor",ref:w,style:F,dangerouslySetInnerHTML:{__html:I},onKeyDown:q,onKeyUp:n,onClick:G,onTouchEnd:G,onFocus:s,onPaste:A,onBlur:l}))};class Fo extends u.Component{constructor(t){super(t)}getInnerText(t){const e=[];for(let i=0;i<t.childNodes.length;i++){const n=t.childNodes[i];if(n.nodeName==="#text"&&i===0){const s=n.textContent.split(/\n/),r=s.pop();e.push(...s),r&&e.push(r)}else if(n.nodeName==="DIV"){const s=n.innerText.split(/\n/);if(s.length===2&&s[0]===""&&s[1]==="")e.push("");else{const r=s.shift();r&&e.push(r);const a=s.pop();e.push(...s),a&&e.push(a)}}}return e}updateOptInfo(t){var r,a;const{activeTextId:e,update:i,syncData:n}=t,s=e&&ne(((r=this.props.manager.control.textEditorManager)==null?void 0:r.get(e))||((a=this.props.editors)==null?void 0:a.get(e)));s&&s.opt&&(s.opt={...s.opt,...i},n&&(s.canSync=Object.keys(n).includes("canSync")&&n.canSync||s.canSync,s.canWorker=Object.keys(n).includes("canWorker")&&n.canWorker||s.canWorker),this.props.manager.control.textEditorManager.updateForViewEdited(e,s))}get editorUI(){var t;if((t=this.props.editors)!=null&&t.size){const e=[];return this.props.editors.forEach((i,n)=>{if(this.props.selectIds.includes(n)&&!(this.props.activeTextId==n)&&this.props.box){const{x:r,y:a}=this.props.box,{x:c,y:l}=i,d=`${c-r}px`,g=`${l-a}px`,h=u.createElement(Yp,{left:d,top:g,key:n,data:i,workId:n,isSelect:!0,updateOptInfo:this.updateOptInfo.bind(this),manager:this.props.manager});e.push(h)}}),e}return null}render(){return u.createElement(u.Fragment,null,this.editorUI)}}class Rp extends Fo{constructor(e){super(e);p(this,"ref");this.ref=u.createRef()}handleKeyUp(e){const i=this.getInnerText(e.nativeEvent.target),n=this.props.activeTextId;n&&this.updateOptInfo({activeTextId:n,update:{text:i.toString(),boxSize:[e.nativeEvent.target.offsetWidth,e.nativeEvent.target.offsetHeight],workState:j.Doing},syncData:{canSync:!0,canWorker:!0}})}handleFocus(e){const i=this.props.activeTextId;i&&this.updateOptInfo({activeTextId:i,update:{boxSize:[e.nativeEvent.target.offsetWidth,e.nativeEvent.target.offsetHeight],workState:j.Doing},syncData:{canSync:!0,canWorker:!0}})}get editorUI(){var e;if((e=this.props.editors)!=null&&e.size){const i=[];return this.props.editors.forEach((n,s)=>{if(!(this.props.selectIds.includes(s)&&this.props.activeTextId!==s)){const c=this.props.activeTextId==s?u.createElement(Pp,{key:s,data:n,workId:s,showFloatBtns:this.props.showFloatBtns||!1,handleFocus:this.handleFocus.bind(this),handleKeyUp:this.handleKeyUp.bind(this),updateOptInfo:this.updateOptInfo.bind(this),handleBlur:()=>{var l,d;(l=this.ref)!=null&&l.current&&((d=this.ref)==null||d.current.scrollTo({left:0,behavior:"smooth"}))},manager:this.props.manager}):u.createElement(Op,{manager:this.props.manager,isActive:n.opt.workState===j.Doing||n.opt.workState===j.Start||!1,key:s,data:n,workId:s});i.push(c)}}),i}return null}render(){return u.createElement("div",{className:`${this.props.className}`,ref:this.ref},this.editorUI)}}const Wp=()=>{const{floatBarData:o}=u.useContext(re);return u.createElement("div",{className:"bezier-pencil-plugin-hightlight-box",style:{borderColor:o==null?void 0:o.selectorColor}},u.createElement("div",{className:"point LT nwse-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point LC ew-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point LB nesw-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point TC ns-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point RT nesw-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point RC ew-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point RB nwse-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point BC ns-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}))},Up=()=>{const{floatBarData:o}=u.useContext(re);return u.createElement("div",{className:"bezier-pencil-plugin-hightlight-box",style:{borderColor:o==null?void 0:o.selectorColor}})},$p=()=>{const{floatBarData:o}=u.useContext(re);return u.createElement("div",{className:"bezier-pencil-plugin-hightlight-box",style:{borderColor:o==null?void 0:o.selectorColor}},u.createElement("div",{className:"point LT nwse-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point LB nesw-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point RT nesw-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}),u.createElement("div",{className:"point RB nwse-resize",style:{backgroundColor:o==null?void 0:o.selectorColor}}))},Bp=()=>{const{floatBarData:o}=u.useContext(re);return u.createElement("div",{className:"bezier-pencil-plugin-hightlight-box",style:{borderColor:o==null?void 0:o.selectorColor}},u.createElement("img",{className:"lock",alt:"lock",src:"https://sdk.netless.link/resource/icons/lock.svg"}))},Fp=o=>{const{className:t}=o,{floatBarData:e,angle:i,setAngle:n,setOperationType:s,maranger:r}=u.useContext(re),[a,c]=u.useState(!1),[l,d]=u.useState(new oe),[g,h]=u.useState(new oe);u.useEffect(()=>{if(e){const f=Math.floor(e.w/2),I=Math.floor(-e.h/2);h(new oe(f,I)),d(new oe)}},[e]);const M=(f,I)=>{f.preventDefault(),f.stopPropagation(),c(!0);const m=Math.round(oe.GetAngleByPoints(l,g,new oe(I.x,I.y)))||0;n(m),s(x.RotateNode),r!=null&&r.control.room&&(r.control.room.disableDeviceInputs=!0),Q.emitMethod(W.MainEngine,x.RotateNode,{workIds:[E],angle:m,workState:j.Start,viewId:r==null?void 0:r.viewId})},y=ve((f,I)=>{f.preventDefault(),f.stopPropagation(),c(!1);const m=Math.round(oe.GetAngleByPoints(l,g,new oe(I.x,I.y)))||0;n(m),s(x.None),r!=null&&r.control.room&&(r.control.room.disableDeviceInputs=!1),Q.emitMethod(W.MainEngine,x.RotateNode,{workIds:[E],angle:m,workState:j.Done,viewId:r==null?void 0:r.viewId})},100,{leading:!1}),v=ve((f,I)=>{f.preventDefault(),f.stopPropagation(),c(!0);const m=Math.round(oe.GetAngleByPoints(l,g,new oe(I.x,I.y)))||0;n(m),s(x.RotateNode),Q.emitMethod(W.MainEngine,x.RotateNode,{workIds:[E],angle:m,workState:j.Doing,viewId:r==null?void 0:r.viewId})},100,{leading:!1});return u.createElement(rt,{handle:".bezier-pencil-plugin-rotate-mouse-pointer",onStart:M,onDrag:v,onStop:y},u.createElement("div",{className:`${t}`,style:e?{left:e.x-30,top:e.y+e.h+20}:void 0},!a&&u.createElement("div",{className:"bezier-pencil-plugin-rotate-btn",style:{backgroundColor:e==null?void 0:e.selectorColor}},u.createElement("img",{alt:"icon",src:le("rotation-button")})),u.createElement("div",{className:`bezier-pencil-plugin-rotate-mouse-pointer ${a?"active":""}`},u.createElement("img",{alt:"icon",src:le("rotation")}),u.createElement("div",{className:"angle-icon"},i,"°"))))},Qp=o=>{const{floatBarData:t,setOperationType:e,maranger:i}=u.useContext(re),{onClickHandle:n}=o,[s,r]=u.useState(j.Pending),[a,c]=u.useState(),[l,d]=u.useState();u.useEffect(()=>{K.isNumber(t==null?void 0:t.x)&&K.isNumber(t==null?void 0:t.y)&&(s===j.Pending||s===j.Done)&&d({x:t.x,y:t.y})},[s,t==null?void 0:t.x,t==null?void 0:t.y]);const g=v=>{v.preventDefault(),v.stopPropagation(),K.isNumber(t==null?void 0:t.x)&&K.isNumber(t==null?void 0:t.y)&&(e(x.TranslateNode),r(j.Start),c({x:t.x,y:t.y}),i!=null&&i.control.room&&(i.control.room.disableDeviceInputs=!0),Q.emitMethod(W.MainEngine,x.TranslateNode,{workIds:[E],position:{x:t.x,y:t.y},workState:j.Start,viewId:i==null?void 0:i.viewId}))},h=K.throttle((v,f)=>{v.preventDefault(),v.stopPropagation();const I={x:f.x,y:f.y};e(x.None),r(j.Done),i!=null&&i.control.room&&(i.control.room.disableDeviceInputs=!1),console.log("onDragEndHandler"),Q.emitMethod(W.MainEngine,x.TranslateNode,{workIds:[E],position:I,workState:j.Done,viewId:i==null?void 0:i.viewId})},100,{leading:!1}),M=K.throttle((v,f)=>{v.preventDefault(),v.stopPropagation();const I={x:f.x,y:f.y};(f.x!==(t==null?void 0:t.x)||f.y!==(t==null?void 0:t.y))&&(r(j.Doing),Q.emitMethod(W.MainEngine,x.TranslateNode,{workIds:[E],position:I,workState:j.Doing,viewId:i==null?void 0:i.viewId}))},100,{leading:!1}),y=u.useMemo(()=>!!((t==null?void 0:t.scaleType)===ge.none&&(t!=null&&t.canLock)),[t]);return u.createElement(rt,{disabled:!!(t!=null&&t.isLocked),position:l,onStart:g,onDrag:M,onStop:h},u.createElement("div",{style:t?{position:"absolute",left:0,top:0,width:t.w,height:t.h,zIndex:2,pointerEvents:y?"none":"auto"}:void 0,onClick:K.throttle(v=>(v.stopPropagation(),v.preventDefault(),(a==null?void 0:a.x)===(t==null?void 0:t.x)&&(a==null?void 0:a.y)===(t==null?void 0:t.y)&&(console.log("computeTextActive"),n(v)),!1),100,{leading:!1}),onTouchEndCapture:K.throttle(v=>(v.stopPropagation(),v.preventDefault(),i&&s!==j.Doing&&(console.log("computeTextActive--1"),n(v)),!1),100,{leading:!1})}))},Hp=o=>{const{className:t}=o,[e,i]=u.useState({x:0,y:0,h:0,w:0}),{floatBarData:n,maranger:s}=u.useContext(re);u.useEffect(()=>{n&&i({x:n.x,y:n.y,w:n.w,h:n.h})},[]);const r=l=>{if(l.preventDefault(),l.stopPropagation(),n!=null&&n.w&&(n!=null&&n.h)){const d={x:(n==null?void 0:n.x)||0,y:(n==null?void 0:n.y)||0,w:n.w,h:n.h};i(d),s!=null&&s.control.room&&(s.control.room.disableDeviceInputs=!0),Q.emitMethod(W.MainEngine,x.ScaleNode,{workIds:[E],box:d,workState:j.Start,viewId:s==null?void 0:s.viewId})}},a=ve((l,d,g,h)=>{l.preventDefault(),l.stopPropagation();const M={x:e.x,y:e.y,w:e.w,h:e.h};switch(M.w+=h.width,M.h+=h.height,d){case"bottomLeft":case"left":M.x-=h.width;break;case"topLeft":M.x-=h.width,M.y-=h.height;break;case"top":case"topRight":M.y-=h.height;break}(h.width!==0||h.height!==0)&&Q.emitMethod(W.MainEngine,x.ScaleNode,{workIds:[E],box:M,dir:d,workState:j.Doing,viewId:s==null?void 0:s.viewId})},100,{leading:!1}),c=ve((l,d,g,h)=>{l.preventDefault(),l.stopPropagation();const M={x:e.x,y:e.y,w:e.w,h:e.h};switch(M.w+=h.width,M.h+=h.height,d){case"bottomLeft":case"left":M.x-=h.width;break;case"topLeft":M.x-=h.width,M.y-=h.height;break;case"top":case"topRight":M.y-=h.height;break}s!=null&&s.control.room&&(s.control.room.disableDeviceInputs=!1),Q.emitMethod(W.MainEngine,x.ScaleNode,{workIds:[E],box:M,dir:d,workState:j.Done,viewId:s==null?void 0:s.viewId})},100,{leading:!1});return u.createElement(Vo.Resizable,{className:`${t}`,boundsByDirection:!0,size:{width:(n==null?void 0:n.w)||0,height:(n==null?void 0:n.h)||0},style:{position:"absolute",pointerEvents:"auto",left:n==null?void 0:n.x,top:n==null?void 0:n.y},enable:{top:(n==null?void 0:n.scaleType)===ge.all&&!0||!1,right:(n==null?void 0:n.scaleType)===ge.all&&!0||!1,bottom:(n==null?void 0:n.scaleType)===ge.all&&!0||!1,left:(n==null?void 0:n.scaleType)===ge.all&&!0||!1,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},lockAspectRatio:(n==null?void 0:n.scaleType)===ge.proportional,onResizeStart:r,onResize:a,onResizeStop:c})},to=o=>{const{id:t,pos:e,pointMap:i,type:n}=o,{setOperationType:s,maranger:r,floatBarData:a}=u.useContext(re),[c,l]=u.useState({x:0,y:0}),[d,g]=u.useState(j.Pending);u.useEffect(()=>{(d===j.Pending||d===j.Done)&&l(e)},[e,d]);const h=v=>{v.preventDefault(),v.stopPropagation(),s(x.SetPoint),g(j.Start),r!=null&&r.control.room&&(r.control.room.disableDeviceInputs=!0),Q.emitMethod(W.MainEngine,x.SetPoint,{workId:E,pointMap:i,workState:j.Start,viewId:r==null?void 0:r.viewId})},M=ve((v,f)=>{if(v.preventDefault(),v.stopPropagation(),s(x.SetPoint),g(j.Doing),f.x!==(c==null?void 0:c.x)||f.y!==(c==null?void 0:c.y)){const I=i.get(t);I&&n==="start"&&(r!=null&&r.control.viewContainerManager)?I[0]=r.control.viewContainerManager.transformToScenePoint([f.x,f.y],r.viewId):I&&n==="end"&&(r!=null&&r.control.viewContainerManager)&&(I[1]=r.control.viewContainerManager.transformToScenePoint([f.x,f.y],r.viewId)),Q.emitMethod(W.MainEngine,x.SetPoint,{workId:E,pointMap:i,workState:j.Doing,viewId:r==null?void 0:r.viewId})}},100,{leading:!1}),y=ve((v,f)=>{if(v.preventDefault(),v.stopPropagation(),s(x.None),g(j.Done),f.x!==(c==null?void 0:c.x)||f.y!==(c==null?void 0:c.y)){l(f);const I=i.get(t);I&&n==="start"&&(r!=null&&r.control.viewContainerManager)?I[0]=r.control.viewContainerManager.transformToScenePoint([f.x,f.y],r.viewId):I&&n==="end"&&(r!=null&&r.control.viewContainerManager)&&(I[1]=r.control.viewContainerManager.transformToScenePoint([f.x,f.y],r.viewId)),Q.emitMethod(W.MainEngine,x.SetPoint,{workId:E,pointMap:i,workState:j.Done,viewId:r==null?void 0:r.viewId})}},100,{leading:!1});return u.createElement(rt,{position:c,onStart:h,onDrag:M,onStop:y},u.createElement("div",{className:"bezier-pencil-plugin-point-draggable-btn"},u.createElement("div",{className:"bezier-pencil-plugin-point-draggable-btn-inner",style:{borderColor:a==null?void 0:a.selectorColor}})))},Zp=o=>{const{className:t}=o,{floatBarData:e,maranger:i}=u.useContext(re),[n,s]=u.useState(),[r,a]=u.useState(),[c,l]=u.useState(new Map);u.useEffect(()=>{const h=[];if(i&&(e!=null&&e.points)){const M=i.viewId;if(i.control.viewContainerManager.getView(M))for(const v of e.points){const f=i.control.viewContainerManager.transformToOriginPoint(v,M);h.push(f)}e!=null&&e.selectIds&&e.selectIds.length===1&&(c.set(e.selectIds[0],e.points),l(c))}h[0]&&s({x:h[0][0],y:h[0][1]}),h[1]&&a({x:h[1][0],y:h[1][1]})},[i,e==null?void 0:e.points,e==null?void 0:e.selectIds,c]);const d=u.useMemo(()=>n&&(e!=null&&e.selectIds)?u.createElement(to,{pos:n,type:"start",id:e.selectIds[0],pointMap:c}):null,[n,e==null?void 0:e.selectIds,c]),g=u.useMemo(()=>r&&(e!=null&&e.selectIds)?u.createElement(to,{pos:r,type:"end",id:e.selectIds[0],pointMap:c}):null,[r,e==null?void 0:e.selectIds,c]);return u.createElement("div",{className:`${t}`},d,g)},Vp=u.forwardRef((o,t)=>{const{floatBarData:e,operationType:i}=u.useContext(re),n=u.useMemo(()=>(e==null?void 0:e.scaleType)!==ge.all||i===x.RotateNode?null:u.createElement(Wp,null),[e,i]),s=u.useMemo(()=>(e==null?void 0:e.scaleType)!==ge.both||i===x.RotateNode?null:u.createElement(Up,null),[e,i]),r=u.useMemo(()=>(e==null?void 0:e.scaleType)!==ge.proportional||i===x.RotateNode?null:u.createElement($p,null),[e,i]),a=u.useMemo(()=>(e==null?void 0:e.scaleType)===ge.none&&(e!=null&&e.canLock)?u.createElement(Bp,null):null,[e]);return u.createElement("div",{ref:t,style:e?{transform:`translate(${e.x}px,${e.y}px)`,width:e.w,height:e.h,pointerEvents:"none"}:void 0},a,n,s,r,o.children)}),Gp=u.forwardRef((o,t)=>{var h;const{floatBarData:e,operationType:i,maranger:n}=u.useContext(re),{editors:s,activeTextId:r}=o,a=u.useMemo(()=>{var M;return e!=null&&e.canRotate&&((M=e==null?void 0:e.selectIds)==null?void 0:M.length)===1&&(i===x.None||i===x.RotateNode)?u.createElement(Fp,{className:ye.RotateBtn}):null},[e==null?void 0:e.canRotate,(h=e==null?void 0:e.selectIds)==null?void 0:h.length,i]),c=u.useMemo(()=>((e==null?void 0:e.scaleType)===ge.all||(e==null?void 0:e.scaleType)===ge.proportional)&&(i===x.None||i===x.ScaleNode)?u.createElement(Hp,{className:ye.ResizeBtn}):null,[e==null?void 0:e.scaleType,i]),l=u.useMemo(()=>(e==null?void 0:e.scaleType)===ge.both&&(i===x.None||i===x.SetPoint)?u.createElement(Zp,{className:ye.ResizeTowBox}):null,[e==null?void 0:e.scaleType,i]),d=u.useMemo(()=>{const M=(e==null?void 0:e.selectIds)||[];return s&&n&&M&&K.isNumber(e==null?void 0:e.x)&&K.isNumber(e==null?void 0:e.y)&&K.isNumber(e==null?void 0:e.w)&&K.isNumber(e==null?void 0:e.h)?u.createElement(Fo,{box:{x:e==null?void 0:e.x,y:e==null?void 0:e.y,w:e==null?void 0:e.w,h:e==null?void 0:e.h},manager:n,selectIds:M,activeTextId:r,editors:s}):null},[e==null?void 0:e.selectIds,e==null?void 0:e.x,e==null?void 0:e.y,e==null?void 0:e.w,e==null?void 0:e.h,s,n,r]),g=u.useMemo(()=>i===x.None&&K.isNumber(e==null?void 0:e.x)&&K.isNumber(e==null?void 0:e.y)&&K.isNumber(e==null?void 0:e.w)&&K.isNumber(e==null?void 0:e.h)?u.createElement("div",{className:ye.FloatBarBtn,style:{left:e==null?void 0:e.x,top:e==null?void 0:e.y,width:e.w,height:e.h}},u.createElement(Bo,{position:{x:e.x,y:e.y},textOpt:e==null?void 0:e.textOpt,noLayer:e==null?void 0:e.isLocked})):null,[e==null?void 0:e.x,e==null?void 0:e.y,e==null?void 0:e.w,e==null?void 0:e.h,e==null?void 0:e.textOpt,e==null?void 0:e.isLocked,i]);return u.createElement("div",{className:ye.FloatBar},u.createElement(Vp,{ref:t},u.createElement(u.Fragment,null,d)),u.createElement(Qp,{onClickHandle:M=>{if(n&&(s!=null&&s.size)){const y=n.getPoint(M.nativeEvent);y&&n.control.textEditorManager.computeTextActive(y,n.viewId)}}}),a,c,l,g)}),Jp=u.memo(Gp,(o,t)=>!!ce(o,t)),Kp="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAYISURBVHgB7ZpNSCtXFIBPEuvz+dMGpYUKD/sWFX+Qti6kK7Hqpm6e9q0rIoIUFUShPLV10VZx4+JZqa9v20LBhdq9fyBUCtKNPH8qYl2IOw3G38Rkek4y15y5uTOZJDOWggcOSSYzN/ebc+45554JwIM8iBCPyTEP+86T4vyMfsRN4b+nQTKIJp0vzuGvlpID7os8EQNEIBD4oKio6Bm9DwaDv/v9/n/076JgbtWUYPchwrW8qD7UnOvr6wFNkpubm+/wu7f0c7y6mrnlvQufxB0Iau7V1dX3BDA/P6/V1dVpzc3N2uLiIofK1c8VYHys/wRKBUN3/hGHqaysNOjc3FwMis6hc0FtLTHuvYLxCCZgci8uLn4wg5Gh6Fy8Jk+/NkcCAlAAuUkoW4g0B+d5tLS05O/r67O8eGxsDNra2uDy8nKsoKCAwCIQDxQa0yTxgrvCYXyTk5Ml+Orf2dlJeeHIyAigFSE/P38ELfUNqNdSkjgF5FF89jL1TU1NlQwODl5gZPujp6cHWltbUw7Koc7Pz8mkZpHPFeFrJuZeqLnoMoPoZqe0JjDP/IZgnyLUG/o8NDRkuo5Ua2pjY6MC4oFCFf1cA0oKzRSOp6enRfTaGh0d/QxBt+1CUVgnOTs7+xrHfQzGyOcKkK3QTJMnQffZ6e/v/xwttmsHqqmpKXbdycnJCxy7ABLh3FEgVZ6hZJhnFZoFFMF0d3c/w7v+dyookXBnZ2c/xvHfhriVcvXfdBRItsxjnOhYqjwjoAimq6vrCysoGofk+Ph4Esd/F/UdiFtJAGUd2DygTpp5dmBUUJ2dnc9VUALm8PDwJY7/BPU9VD8k3M4RC6kskxZMKigKIMLN9vf3p3H8DyWgfEhEOwOQD9IXOTz7EObbwsLC4YWFBRgeHrY9ECXYo6MjaGlpKWlsbPxkYGDgRW1tbSEWquVlZWXBzc3Nl1VVVa8hXiXc6ioqBqGaPDk7AACJTRZ3NS9lcUp86cJwoSQ7Pj4Op6enfxUXF3/V0NCQv7q6GsCvwrqGUG/01xAD4+VQTOxaSF43d5bBOisrGBJRCtXX17+/trb268rKSgASFgmz97KFkmo6OztWuVyPweiWGc4WRkhFRQVEIpHg8vJyQAIQVlLBROVxvBYQHsXnO8tk62ZcyN0wecLBwcEvYHSzEPscBqOLCRhLC4n9uqaA8UAWAcAKhtbQ3t7eTHl5+Y9gtAp3twhT056CDMQ7MRzIFTeTYKb1yYYVQFH9VdzsqNmYKpfTJBDX3Ixgdnd3XyHMT2AMALJlBBSPaMpNngrIsTyTCgaj288YDGakictrxizvKFNOjgSSBLS+vv6UYHDb7DgMVgsChjTEgCIKGG4ZU+EWkgNBzN1qamq+pAMTExPgFMzW1tZrhHkFyWE5KxgSszx0527RaDRmOSpRshEOU11dPQPG8CwHARHJlMnTSrwSRFIlfXt7m3V5ngJGuJtqzaQtZkFBVNJezN5ZAdmwjKo2k9tVtrcI3OXk4tPgcg7ChCDZ1URgMOu72Xa5VFHOkymQhWVU60YVmjN6wiC7k6p+S1syCACOwJBYFaexV+yhBekNPsMBO6KAEeE4BMaCU67RsoYhSbXgaT//ht709vZCaWmp6YkEbLFmVJWzas04+iBL7EKpm0J7duqu0B7+CTUpNJuyvb1NCfMj1CqI9wLKUOlOUMeG+gGFkHii4HizUF4z/KFUrPsJ8WbEIyx7nnZ0dDynME6BAuce09iFHo+GrnmGltltb2//E4wVAN82y7vOjKOZXSBhJdHNiT3TYWD8OY2PTUJkdd7MkJMnT5wZVQF2RFX6yBMUdzPMvvfqxz3sXHF+GNT9ANXit/10O1sgHkZvdQAOKvs9B5L7ARELGAAXLSTvM8QExTE+YbHe+HURhZp1aRyF4CJXClbbWwGketgkW9VsY+YaiBCVhfgE+XvxRwgZSM4jUVCDZFQ9pytmXR8hUTB2gnidx4XffVWydN0yQjwmx/jkAZJBrIBI5J7ZvQGZWUgVSuU/EqmOAzicKNMVu816DdRWUV1/7xAP8n+SfwF3Du3NF2sYhwAAAABJRU5ErkJggg==",qp="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='40px'%20height='40px'%20viewBox='0%200%2040%2040'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3c!--%20Generator:%20Sketch%2060.1%20(88133)%20-%20https://sketch.com%20--%3e%3ctitle%3eshape-cursor%3c/title%3e%3cdesc%3eCreated%20with%20Sketch.%3c/desc%3e%3cdefs%3e%3cpath%20d='M20,21.5%20C20.2454599,21.5%2020.4496084,21.6768752%2020.4919443,21.9101244%20L20.5,22%20L20.5,27%20C20.5,27.2761424%2020.2761424,27.5%2020,27.5%20C19.7545401,27.5%2019.5503916,27.3231248%2019.5080557,27.0898756%20L19.5,27%20L19.5,22%20C19.5,21.7238576%2019.7238576,21.5%2020,21.5%20Z%20M27,19.5%20C27.2761424,19.5%2027.5,19.7238576%2027.5,20%20C27.5,20.2454599%2027.3231248,20.4496084%2027.0898756,20.4919443%20L27,20.5%20L22,20.5%20C21.7238576,20.5%2021.5,20.2761424%2021.5,20%20C21.5,19.7545401%2021.6768752,19.5503916%2021.9101244,19.5080557%20L22,19.5%20L27,19.5%20Z%20M18,19.5%20C18.2761424,19.5%2018.5,19.7238576%2018.5,20%20C18.5,20.2454599%2018.3231248,20.4496084%2018.0898756,20.4919443%20L18,20.5%20L13,20.5%20C12.7238576,20.5%2012.5,20.2761424%2012.5,20%20C12.5,19.7545401%2012.6768752,19.5503916%2012.9101244,19.5080557%20L13,19.5%20L18,19.5%20Z%20M20,12.5%20C20.2454599,12.5%2020.4496084,12.6768752%2020.4919443,12.9101244%20L20.5,13%20L20.5,18%20C20.5,18.2761424%2020.2761424,18.5%2020,18.5%20C19.7545401,18.5%2019.5503916,18.3231248%2019.5080557,18.0898756%20L19.5,18%20L19.5,13%20C19.5,12.7238576%2019.7238576,12.5%2020,12.5%20Z'%20id='path-1'%3e%3c/path%3e%3cfilter%20x='-64.6%25'%20y='-59.5%25'%20width='229.3%25'%20height='246.1%25'%20filterUnits='objectBoundingBox'%20id='filter-2'%3e%3cfeMorphology%20radius='1'%20operator='dilate'%20in='SourceAlpha'%20result='shadowSpreadOuter1'%3e%3c/feMorphology%3e%3cfeOffset%20dx='0'%20dy='2'%20in='shadowSpreadOuter1'%20result='shadowOffsetOuter1'%3e%3c/feOffset%3e%3cfeGaussianBlur%20stdDeviation='3'%20in='shadowOffsetOuter1'%20result='shadowBlurOuter1'%3e%3c/feGaussianBlur%3e%3cfeComposite%20in='shadowBlurOuter1'%20in2='SourceAlpha'%20operator='out'%20result='shadowBlurOuter1'%3e%3c/feComposite%3e%3cfeColorMatrix%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.16%200'%20type='matrix'%20in='shadowBlurOuter1'%3e%3c/feColorMatrix%3e%3c/filter%3e%3c/defs%3e%3cg%20id='页面-4'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='Whiteboard-Guidelines'%20transform='translate(-344.000000,%20-751.000000)'%3e%3cg%20id='shape-cursor'%20transform='translate(344.000000,%20751.000000)'%3e%3crect%20id='矩形备份-44'%20fill='%23FFFFFF'%20opacity='0.01'%20x='0'%20y='0'%20width='40'%20height='40'%20rx='2'%3e%3c/rect%3e%3cg%20id='形状结合'%20fill-rule='nonzero'%3e%3cuse%20fill='black'%20fill-opacity='1'%20filter='url(%23filter-2)'%20xlink:href='%23path-1'%3e%3c/use%3e%3cpath%20stroke='%23FFFFFF'%20stroke-width='1'%20d='M20,21%20C20.4854103,21%2020.898085,21.3479993%2020.9899479,21.8654877%20L21,22%20L21,27%20C21,27.5522847%2020.5522847,28%2020,28%20C19.5145897,28%2019.101915,27.6520007%2019.0100521,27.1345123%20L19,27%20L19,22%20C19,21.4477153%2019.4477153,21%2020,21%20Z%20M27,19%20C27.5522847,19%2028,19.4477153%2028,20%20C28,20.4854103%2027.6520007,20.898085%2027.1345123,20.9899479%20L27,21%20L22,21%20C21.4477153,21%2021,20.5522847%2021,20%20C21,19.5145897%2021.3479993,19.101915%2021.8654877,19.0100521%20L22,19%20L27,19%20Z%20M18,19%20C18.5522847,19%2019,19.4477153%2019,20%20C19,20.4854103%2018.6520007,20.898085%2018.1345123,20.9899479%20L18,21%20L13,21%20C12.4477153,21%2012,20.5522847%2012,20%20C12,19.5145897%2012.3479993,19.101915%2012.8654877,19.0100521%20L13,19%20L18,19%20Z%20M20,12%20C20.4854103,12%2020.898085,12.3479993%2020.9899479,12.8654877%20L21,13%20L21,18%20C21,18.5522847%2020.5522847,19%2020,19%20C19.5145897,19%2019.101915,18.6520007%2019.0100521,18.1345123%20L19,18%20L19,13%20C19,12.4477153%2019.4477153,12%2020,12%20Z'%20fill='%23212324'%20fill-rule='evenodd'%3e%3c/path%3e%3c/g%3e%3crect%20id='矩形'%20fill='%23FFFFFF'%20x='18.5'%20y='17'%20width='3'%20height='6'%3e%3c/rect%3e%3crect%20id='矩形'%20fill='%23FFFFFF'%20x='17'%20y='18.5'%20width='6'%20height='3'%3e%3c/rect%3e%3cpath%20d='M20,21.5%20C20.2454599,21.5%2020.4496084,21.6768752%2020.4919443,21.9101244%20L20.5,22%20L20.5,27%20C20.5,27.2761424%2020.2761424,27.5%2020,27.5%20C19.7545401,27.5%2019.5503916,27.3231248%2019.5080557,27.0898756%20L19.5,27%20L19.5,22%20C19.5,21.7238576%2019.7238576,21.5%2020,21.5%20Z%20M27,19.5%20C27.2761424,19.5%2027.5,19.7238576%2027.5,20%20C27.5,20.2454599%2027.3231248,20.4496084%2027.0898756,20.4919443%20L27,20.5%20L22,20.5%20C21.7238576,20.5%2021.5,20.2761424%2021.5,20%20C21.5,19.7545401%2021.6768752,19.5503916%2021.9101244,19.5080557%20L22,19.5%20L27,19.5%20Z%20M18,19.5%20C18.2761424,19.5%2018.5,19.7238576%2018.5,20%20C18.5,20.2454599%2018.3231248,20.4496084%2018.0898756,20.4919443%20L18,20.5%20L13,20.5%20C12.7238576,20.5%2012.5,20.2761424%2012.5,20%20C12.5,19.7545401%2012.6768752,19.5503916%2012.9101244,19.5080557%20L13,19.5%20L18,19.5%20Z%20M20,12.5%20C20.2454599,12.5%2020.4496084,12.6768752%2020.4919443,12.9101244%20L20.5,13%20L20.5,18%20C20.5,18.2761424%2020.2761424,18.5%2020,18.5%20C19.7545401,18.5%2019.5503916,18.3231248%2019.5080557,18.0898756%20L19.5,18%20L19.5,13%20C19.5,12.7238576%2019.7238576,12.5%2020,12.5%20Z'%20id='形状结合'%20fill='%23212324'%20fill-rule='nonzero'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",_p="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='47px'%20height='40px'%20viewBox='0%200%2047%2040'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3c!--%20Generator:%20Sketch%2060.1%20(88133)%20-%20https://sketch.com%20--%3e%3ctitle%3etext-cursor%3c/title%3e%3cdesc%3eCreated%20with%20Sketch.%3c/desc%3e%3cdefs%3e%3cpath%20d='M16,26.5%20C15.7238576,26.5%2015.5,26.2761424%2015.5,26%20C15.5,25.7545401%2015.6768752,25.5503916%2015.9101244,25.5080557%20L16,25.5%20L19.5,25.5%20L19.5,14.5%20L16,14.5%20C15.7238576,14.5%2015.5,14.2761424%2015.5,14%20C15.5,13.7545401%2015.6768752,13.5503916%2015.9101244,13.5080557%20L16,13.5%20L24,13.5%20C24.2761424,13.5%2024.5,13.7238576%2024.5,14%20C24.5,14.2454599%2024.3231248,14.4496084%2024.0898756,14.4919443%20L24,14.5%20L20.5,14.5%20L20.5,25.5%20L24,25.5%20C24.2761424,25.5%2024.5,25.7238576%2024.5,26%20C24.5,26.2454599%2024.3231248,26.4496084%2024.0898756,26.4919443%20L24,26.5%20L16,26.5%20Z'%20id='path-1'%3e%3c/path%3e%3cfilter%20x='-284.0%25'%20y='-81.5%25'%20width='668.1%25'%20height='293.9%25'%20filterUnits='objectBoundingBox'%20id='filter-2'%3e%3cfeMorphology%20radius='1'%20operator='dilate'%20in='SourceAlpha'%20result='shadowSpreadOuter1'%3e%3c/feMorphology%3e%3cfeOffset%20dx='0'%20dy='2'%20in='shadowSpreadOuter1'%20result='shadowOffsetOuter1'%3e%3c/feOffset%3e%3cfeGaussianBlur%20stdDeviation='3'%20in='shadowOffsetOuter1'%20result='shadowBlurOuter1'%3e%3c/feGaussianBlur%3e%3cfeComposite%20in='shadowBlurOuter1'%20in2='SourceAlpha'%20operator='out'%20result='shadowBlurOuter1'%3e%3c/feComposite%3e%3cfeColorMatrix%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.16%200'%20type='matrix'%20in='shadowBlurOuter1'%3e%3c/feColorMatrix%3e%3c/filter%3e%3c/defs%3e%3cg%20id='页面-4'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='Whiteboard-Guidelines'%20transform='translate(-388.000000,%20-672.000000)'%3e%3cg%20id='text-cursor'%20transform='translate(392.000000,%20672.000000)'%3e%3crect%20id='矩形备份-40'%20fill='%23FFFFFF'%20opacity='0.01'%20x='0'%20y='0'%20width='40'%20height='40'%20rx='2'%3e%3c/rect%3e%3cg%20id='形状结合'%20fill-rule='nonzero'%3e%3cuse%20fill='black'%20fill-opacity='1'%20filter='url(%23filter-2)'%20xlink:href='%23path-1'%3e%3c/use%3e%3cpath%20stroke='%23FFFFFF'%20stroke-width='1'%20d='M19,25%20L19,15%20L16,15%20C15.4477153,15%2015,14.5522847%2015,14%20C15,13.5145897%2015.3479993,13.101915%2015.8654877,13.0100521%20L16,13%20L24,13%20C24.5522847,13%2025,13.4477153%2025,14%20C25,14.4854103%2024.6520007,14.898085%2024.1345123,14.9899479%20L24,15%20L21,15%20L21,25%20L24,25%20C24.5522847,25%2025,25.4477153%2025,26%20C25,26.4854103%2024.6520007,26.898085%2024.1345123,26.9899479%20L24,27%20L16,27%20C15.4477153,27%2015,26.5522847%2015,26%20C15,25.5145897%2015.3479993,25.101915%2015.8654877,25.0100521%20L16,25%20L19,25%20Z'%20fill='%23212324'%20fill-rule='evenodd'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e";class Xp extends u.Component{constructor(e){super(e);p(this,"renderAvatar",e=>{var n;const i=`rgb(${e.memberState.strokeColor[0]}, ${e.memberState.strokeColor[1]}, ${e.memberState.strokeColor[2]})`;if(this.detectAvatar(e)){const s=this.detectCursorName(e);return u.createElement("img",{className:"cursor-selector-avatar",style:{width:s?19:28,height:s?19:28,position:s?"initial":"absolute",borderColor:s?"white":i,marginRight:s?4:0},src:(n=e.payload)==null?void 0:n.avatar,alt:"avatar"})}else return null});p(this,"getOpacity",e=>{const i=this.getCursorName(e),n=this.detectAvatar(e);return i===void 0&&n===void 0?0:1});p(this,"getCursorName",e=>{if(e.payload&&e.payload.cursorName)return e.payload.cursorName});p(this,"getThemeClass",e=>e.payload&&e.payload.theme?"cursor-inner-mellow":"cursor-inner");p(this,"getCursorBackgroundColor",e=>{const i=this.detectCursorName(e);return e.payload&&e.payload.cursorBackgroundColor?e.payload.cursorBackgroundColor:i?`rgb(${e.memberState.strokeColor[0]}, ${e.memberState.strokeColor[1]}, ${e.memberState.strokeColor[2]})`:void 0});p(this,"getCursorTextColor",e=>e.payload&&e.payload.cursorTextColor?e.payload.cursorTextColor:"#FFFFFF");p(this,"getCursorTagBackgroundColor",e=>e.payload&&e.payload.cursorTagBackgroundColor?e.payload.cursorTagBackgroundColor:this.getCursorBackgroundColor(e));p(this,"detectCursorName",e=>!!(e.payload&&e.payload.cursorName));p(this,"detectAvatar",e=>!!(e.payload&&e.payload.avatar));p(this,"renderTag",e=>{if(e.payload&&e.payload.cursorTagName)return u.createElement("span",{className:"cursor-tag-name",style:{backgroundColor:this.getCursorTagBackgroundColor(e)}},e.payload.cursorTagName)})}render(){const{roomMember:e}=this.props,i=this.getCursorName(e);switch(e.memberState.currentApplianceName){case H.pencil:return u.createElement("div",{className:"cursor-box"},u.createElement("div",{className:"cursor-mid cursor-pencil-offset",style:{transform:"translate(-50%, -90%)",marginLeft:"10px"}},u.createElement("div",{className:"cursor-name"},u.createElement("div",{style:{opacity:this.getOpacity(e),backgroundColor:this.getCursorBackgroundColor(e),color:this.getCursorTextColor(e)},className:this.getThemeClass(e)},this.renderAvatar(e),i,this.renderTag(e))),u.createElement("div",null,u.createElement("img",{className:"cursor-pencil-image",src:Kp,alt:"pencilCursor"}))));case H.text:return u.createElement("div",{className:"cursor-box"},u.createElement("div",{className:"cursor-mid cursor-pencil-offset",style:{transform:"translate(-50%, -65%)",marginLeft:"0px"}},u.createElement("div",{className:"cursor-name"},u.createElement("div",{style:{opacity:this.getOpacity(e),backgroundColor:this.getCursorBackgroundColor(e),color:this.getCursorTextColor(e)},className:this.getThemeClass(e)},this.renderAvatar(e),i,this.renderTag(e))),u.createElement("div",null,u.createElement("img",{className:"cursor-arrow-image",src:_p,alt:"textCursor"}))));case H.rectangle:case H.arrow:case H.straight:case H.shape:case H.ellipse:return u.createElement("div",{className:"cursor-box"},u.createElement("div",{className:"cursor-mid cursor-pencil-offset",style:{transform:"translate(-50%, -65%)",marginLeft:"0px"}},u.createElement("div",{className:"cursor-name"},u.createElement("div",{style:{opacity:this.getOpacity(e),backgroundColor:this.getCursorBackgroundColor(e),color:this.getCursorTextColor(e)},className:this.getThemeClass(e)},this.renderAvatar(e),i,this.renderTag(e))),u.createElement("div",null,u.createElement("img",{className:"cursor-arrow-image",src:qp,alt:"shapeCursor"}))));default:return null}}}const ef=o=>{const{className:t,info:e}=o,{roomMember:i,...n}=e||{};return u.createElement("div",{className:`${t}`,style:n?{transform:`translate(${n.x}px, ${n.y}px)`}:{display:"none"}},i&&u.createElement(Xp,{roomMember:i}))},tf=o=>{const{className:t,manager:e}=o,[i,n]=u.useState();u.useEffect(()=>(e.internalMsgEmitter.on([W.Cursor,e.viewId],s),()=>{e.internalMsgEmitter.off([W.Cursor,e.viewId],s)}),[e]);function s(a){n(a)}return u.useMemo(()=>{if(i!=null&&i.length){const a=i.map(c=>{var l;return c.roomMember?u.createElement(ef,{key:(l=c.roomMember)==null?void 0:l.memberId,className:t,info:c}):null});return u.createElement(u.Fragment,null,a)}return null},[i])},re=u.createContext({maranger:void 0,floatBarColors:[],floatBarData:void 0,zIndex:-1,dpr:1,angle:0,operationType:x.None,scale:[1,1],setAngle:()=>{},setOperationType:()=>{},setFloatBarData:()=>{}});class ui extends u.Component{constructor(e){var i;super(e);p(this,"setAngle",e=>{this.setState({angle:e})});p(this,"setOperationType",e=>{this.setState({operationType:e})});this.state={floatBarData:void 0,showFloatBar:!1,zIndex:-1,dpr:1,angle:0,operationType:x.None,scale:[1,1],editors:this.editors,activeTextId:(i=this.props.maranger.control.textEditorManager)==null?void 0:i.activeId}}get editors(){return ne(this.props.maranger.control.textEditorManager.filterEditor(this.props.maranger.viewId))}componentDidMount(){this.props.maranger.vDom=this,this.props.maranger.mountView(),this.setState({dpr:this.props.maranger.dpr})}componentWillUnmount(){}showFloatBar(e,i){const n=e&&i&&{...this.state.floatBarData,...i}||void 0;this.setState({showFloatBar:e,floatBarData:n,angle:0})}setActiveTextEditor(e){this.setState({activeTextId:e,editors:this.editors})}setFloatZIndex(e){this.setState({zIndex:e})}setFloatBarData(e){this.state.floatBarData&&this.setState({floatBarData:{...this.state.floatBarData,...e}})}render(){var i,n,s,r,a,c,l;const e=!!((n=(i=this.props.maranger.control)==null?void 0:i.room)!=null&&n.floatBarOptions);return u.createElement(u.Fragment,null,u.createElement("div",{className:ye.Container,onMouseDown:d=>{d.preventDefault(),d.stopPropagation()},onTouchStart:d=>{d.stopPropagation()},onMouseMove:d=>{this.props.maranger.cursorMouseMove(d)}},!this.props.maranger.control.hasOffscreenCanvas()&&u.createElement("div",{className:ye.CanvasBox,ref:this.props.refs.canvasContainerRef})||u.createElement("div",{className:ye.CanvasBox},u.createElement("canvas",{id:"bgCanvas",ref:this.props.refs.canvasBgRef}),u.createElement("canvas",{id:"serviceCanvas",className:ye.FloatCanvas,ref:this.props.refs.canvasServiceFloatRef}),u.createElement("canvas",{id:"localCanvas",className:ye.FloatCanvas,ref:this.props.refs.canvasFloatRef}),u.createElement("canvas",{id:"topCanvas",className:ye.TopFloatCanvas,ref:this.props.refs.canvasTopRef})),!this.props.maranger.control.hasOffscreenCanvas()&&this.props.refs.snapshotContainerRef&&u.createElement("div",{className:ye.SnapshotBox,ref:this.props.refs.snapshotContainerRef})||null,u.createElement(re.Provider,{value:{maranger:this.props.maranger,floatBarColors:e&&((a=(r=(s=this.props.maranger.control)==null?void 0:s.room)==null?void 0:r.floatBarOptions)==null?void 0:a.colors)||[],floatBarData:this.state.floatBarData,zIndex:this.state.zIndex,dpr:this.state.dpr,angle:this.state.angle,operationType:this.state.operationType,scale:this.state.scale,setAngle:this.setAngle.bind(this),setOperationType:this.setOperationType.bind(this),setFloatBarData:this.setFloatBarData.bind(this)}},this.state.showFloatBar&&u.createElement(Jp,{ref:this.props.refs.floatBarRef,editors:this.state.editors,activeTextId:this.state.activeTextId})||null,((c=this.state.editors)==null?void 0:c.size)&&u.createElement(Rp,{className:ye.TextEditorContainer,showFloatBtns:e,manager:this.props.maranger,selectIds:((l=this.state.floatBarData)==null?void 0:l.selectIds)||[],editors:this.state.editors,activeTextId:this.state.activeTextId})||null),u.createElement(tf,{className:ye.CursorBox,manager:this.props.maranger})))}}class dt extends we{constructor(e,i){super(e,i);p(this,"width",1e3);p(this,"height",1e3);p(this,"dpr",1);p(this,"vDom");p(this,"eventTragetElement");p(this,"snapshotContainerRef");p(this,"canvasContainerRef",u.createRef());p(this,"canvasTopRef",u.createRef());p(this,"canvasServiceFloatRef",u.createRef());p(this,"canvasFloatRef",u.createRef());p(this,"canvasBgRef",u.createRef());p(this,"floatBarRef",u.createRef());p(this,"containerOffset",{x:0,y:0});this.control.hasOffscreenCanvas()||(this.snapshotContainerRef=u.createRef())}setCanvassStyle(){if(this.eventTragetElement){const e=this.eventTragetElement.offsetWidth||this.width,i=this.eventTragetElement.offsetHeight||this.height;e&&i&&this.canvasContainerRef.current&&(this.dpr=We(),this.width=e,this.height=i,this.canvasContainerRef.current.style.width=`${e}px`,this.canvasContainerRef.current.style.height=`${i}px`),e&&i&&this.snapshotContainerRef&&this.snapshotContainerRef.current&&(this.dpr=We(),this.width=e,this.height=i),e&&i&&this.canvasBgRef.current&&(this.dpr=We(this.canvasBgRef.current.getContext("2d")),this.width=e,this.height=i,this.canvasBgRef.current.style.width=`${e}px`,this.canvasBgRef.current.style.height=`${i}px`,this.canvasBgRef.current.width=e*this.dpr,this.canvasBgRef.current.height=i*this.dpr,this.canvasFloatRef.current&&(this.canvasFloatRef.current.style.width=`${e}px`,this.canvasFloatRef.current.style.height=`${i}px`,this.canvasFloatRef.current.width=e*this.dpr,this.canvasFloatRef.current.height=i*this.dpr),this.canvasServiceFloatRef.current&&(this.canvasServiceFloatRef.current.style.width=`${e}px`,this.canvasServiceFloatRef.current.style.height=`${i}px`,this.canvasServiceFloatRef.current.width=e*this.dpr,this.canvasServiceFloatRef.current.height=i*this.dpr),this.canvasTopRef.current&&(this.canvasTopRef.current.style.width=`${e}px`,this.canvasTopRef.current.style.height=`${i}px`,this.canvasTopRef.current.width=e*this.dpr,this.canvasTopRef.current.height=i*this.dpr))}}destroy(){if(super.destroy(),this.eventTragetElement){const e=this.eventTragetElement.parentElement;if(e){const i=e.querySelectorAll(".teaching-aids-plugin-main-view-displayer");for(const n of i)n.remove()}}}createMainViewDisplayer(e){const i=document.createElement("div");return i.className="teaching-aids-plugin-main-view-displayer",e.appendChild(i),this.eventTragetElement=e.children[0],this.containerOffset=this.getContainerOffset(this.eventTragetElement,this.containerOffset),this.bindToolsClass(),Gt.render(u.createElement(ui,{viewId:this.viewId,maranger:this,refs:{canvasServiceFloatRef:this.canvasServiceFloatRef,canvasFloatRef:this.canvasFloatRef,canvasBgRef:this.canvasBgRef,floatBarRef:this.floatBarRef,canvasTopRef:this.canvasTopRef,canvasContainerRef:this.canvasContainerRef,snapshotContainerRef:this.snapshotContainerRef}}),i),this.control.room&&this.bindDisplayerEvent(this.eventTragetElement),this}}class of extends qM{constructor(e,i,n){super(e,i,n);p(this,"dpr",1);p(this,"width",1e3);p(this,"height",1e3);p(this,"vDom");p(this,"eventTragetElement");p(this,"canvasContainerRef",u.createRef());p(this,"canvasTopRef",u.createRef());p(this,"canvasServiceFloatRef",u.createRef());p(this,"canvasFloatRef",u.createRef());p(this,"canvasBgRef",u.createRef());p(this,"floatBarRef",u.createRef());p(this,"containerOffset",{x:0,y:0})}setCanvassStyle(){if(this.eventTragetElement){if(this.canvasContainerRef.current){const e=this.eventTragetElement.offsetWidth||this.width,i=this.eventTragetElement.offsetHeight||this.height;e&&i&&(this.width=e,this.height=i,this.dpr=We(),this.canvasContainerRef.current.style.width=`${e}px`,this.canvasContainerRef.current.style.height=`${i}px`)}if(this.canvasBgRef.current){this.dpr=We(this.canvasBgRef.current.getContext("2d"));const e=this.eventTragetElement.offsetWidth||this.width,i=this.eventTragetElement.offsetHeight||this.height;e&&i&&(this.width=e,this.height=i,this.canvasBgRef.current.style.width=`${e}px`,this.canvasBgRef.current.style.height=`${i}px`,this.canvasBgRef.current.width=e*this.dpr,this.canvasBgRef.current.height=i*this.dpr,this.canvasFloatRef.current&&(this.canvasFloatRef.current.style.width=`${e}px`,this.canvasFloatRef.current.style.height=`${i}px`,this.canvasFloatRef.current.width=e*this.dpr,this.canvasFloatRef.current.height=i*this.dpr),this.canvasServiceFloatRef.current&&(this.canvasServiceFloatRef.current.style.width=`${e}px`,this.canvasServiceFloatRef.current.style.height=`${i}px`,this.canvasServiceFloatRef.current.width=e*this.dpr,this.canvasServiceFloatRef.current.height=i*this.dpr),this.canvasTopRef.current&&(this.canvasTopRef.current.style.width=`${e}px`,this.canvasTopRef.current.style.height=`${i}px`,this.canvasTopRef.current.width=e*this.dpr,this.canvasTopRef.current.height=i*this.dpr))}}}createAppViewDisplayer(e,i){const n=document.createElement("div");return n.className="teaching-aids-plugin-app-view-displayer",i.appendChild(n),this.eventTragetElement=i.children[0],this.containerOffset=this.getContainerOffset(this.eventTragetElement,this.containerOffset),this.bindToolsClass(),Gt.render(u.createElement(ui,{viewId:e,maranger:this,refs:{canvasServiceFloatRef:this.canvasServiceFloatRef,canvasFloatRef:this.canvasFloatRef,canvasBgRef:this.canvasBgRef,floatBarRef:this.floatBarRef,canvasTopRef:this.canvasTopRef,canvasContainerRef:this.canvasContainerRef}}),n),this.control.room&&this.bindDisplayerEvent(this.eventTragetElement),this}}class je extends _e{constructor(e){super(e);p(this,"focuedViewId");p(this,"focuedView");p(this,"control");p(this,"tmpFocusedViewId");p(this,"checkScaleTimer");p(this,"onMainViewRelease",e=>{this.control.textEditorManager.clear(dt.viewId,!0),console.log("onMainViewRelease",e),this.onMainViewMounted(e);const i=this.control.getSnapshootData("memberState");this.control.room&&this.control.onMemberChange(i),this.control.clearSnapshootData()});p(this,"onMainViewMounted",e=>{var h;const i=e.divElement;if(!i||!e.focusScenePath||!(e.focusScenePath||e.scenePath))return;if(this.mainView&&this.mainView.displayer){this.mainView.displayer.destroy();const M=i.getElementsByClassName("teaching-aids-plugin-main-view-displayer");for(const y of M)y.remove();(h=this.control.worker)==null||h.destroyViewWorker(this.mainView.id,!0),this.mainView=void 0}const s=new dt(this.control,me.InternalMsgEmitter),r=e.size.width||s.width,a=e.size.height||s.height,l={dpr:s.dpr,originalPoint:[r/2,a/2],offscreenCanvasOpt:{...je.defaultScreenCanvasOpt,width:r,height:a},layerOpt:{...je.defaultLayerOpt,width:r,height:a},cameraOpt:{...je.defaultCameraOpt,width:r,height:a}},{scale:d,...g}=e.camera;l.cameraOpt={...l.cameraOpt,...g,scale:d===1/0?1:d},this.focuedViewId=dt.viewId,this.createMianView({id:dt.viewId,container:i,displayer:s,focusScenePath:e.focusScenePath,cameraOpt:l.cameraOpt,viewData:e}),this.focuedView=this.mainView,s.createMainViewDisplayer(i),e.callbacks.on("onSizeUpdated",this.onMainViewSizeUpdated),e.callbacks.on("onCameraUpdated",this.onMainViewCameraUpdated),e.callbacks.on("onActiveHotkey",this.onActiveHotkeyChange.bind(this))});p(this,"onMainViewSizeUpdated",async()=>{Promise.resolve().then(()=>{if(this.mainView&&this.mainView.viewData){const e=this.mainView.viewData.size,i=this.mainView.cameraOpt;i&&(this.mainView.displayer.updateSize(),this.mainView.cameraOpt={...i,...e})}})});p(this,"onMainViewCameraUpdated",async()=>{Promise.resolve().then(()=>{if(this.mainView&&this.mainView.viewData){const e=this.mainView.viewData.camera,i=this.mainView.cameraOpt;if(i){const n=e.scale===1/0?1:e.scale,s=e.centerX||0,r=e.centerY||0;this.mainView.cameraOpt={...i,scale:n,centerX:s,centerY:r},this.checkScaleTimer&&e.scale==1/0&&(clearTimeout(this.checkScaleTimer),this.checkScaleTimer=void 0),!this.checkScaleTimer&&e.scale===1/0&&this.mainView.viewData&&this.mainView.viewData.camera.scale===1/0&&(this.checkScaleTimer=setTimeout(()=>{var a,c;(c=(a=this.mainView)==null?void 0:a.viewData)==null||c.moveCamera({scale:n,centerX:s,centerY:r,animationMode:"immediately"}),this.checkScaleTimer=void 0},500))}}})});p(this,"onAppViewMounted",e=>{var h;const{appId:i,view:n}=e,s=n.divElement;if(!s||!n.focusScenePath)return;const r=this.appViews.get(i);if(r&&r.displayer){const M=s.getElementsByClassName("teaching-aids-plugin-app-view-displayer");for(const y of M)y.remove();this.destroyAppView(e.appId,!0),(h=this.control.worker)==null||h.destroyViewWorker(i,!0)}const a=new of(i,this.control,me.InternalMsgEmitter),c=n.size.width||a.width,l=n.size.height||a.height,g={dpr:a.dpr,originalPoint:[c/2,l/2],offscreenCanvasOpt:{...je.defaultScreenCanvasOpt,width:c,height:l},layerOpt:{...je.defaultLayerOpt,width:c,height:l},cameraOpt:{...je.defaultCameraOpt,...n.camera,width:c,height:l}};if(this.createAppView({id:i,container:s,displayer:a,cameraOpt:g.cameraOpt,focusScenePath:n.focusScenePath,viewData:n}),a.createAppViewDisplayer(i,s),n.callbacks.on("onSizeUpdated",this.onAppViewSizeUpdated.bind(this,i)),n.callbacks.on("onCameraUpdated",this.onAppViewCameraUpdated.bind(this,i)),n.callbacks.on("onActiveHotkey",this.onActiveHotkeyChange.bind(this)),this.tmpFocusedViewId===i){const M=this.control.worker.getLocalWorkViewId();M&&M!==i?this.setFocuedViewId(M):this.setFocuedViewId(i),this.tmpFocusedViewId=void 0}});p(this,"onAppViewSizeUpdated",async e=>{Promise.resolve().then(()=>{const i=this.appViews.get(e);if(i&&i.viewData){const n=i.viewData.size,s=i.cameraOpt;s&&(i.displayer.updateSize(),i.cameraOpt={...s,...n})}})});p(this,"onAppViewCameraUpdated",async e=>{Promise.resolve().then(()=>{const i=this.appViews.get(e);if(i&&i.viewData){const n=i.viewData.camera,s=i.cameraOpt;if(s){const r=n.scale===1/0?1:n.scale,a=n.centerX||0,c=n.centerY||0;i.cameraOpt={...s,scale:r,centerX:a,centerY:c}}}})});this.control=e.control}async mountView(e){var n,s;const i=this.getView(e);if(i){const{width:r,height:a,dpr:c}=i.displayer,l={dpr:c,originalPoint:[r/2,a/2],offscreenCanvasOpt:{...je.defaultScreenCanvasOpt,width:r,height:a},layerOpt:{...je.defaultLayerOpt,width:r,height:a},cameraOpt:{...je.defaultCameraOpt,width:r,height:a}};if(i.viewData){const{scale:d,...g}=i.viewData.camera;l.cameraOpt={...l.cameraOpt,...g,scale:d===1/0?1:d}}e===((n=this.mainView)==null?void 0:n.id)&&await this.control.activeWorker(),(s=this.control.worker)==null||s.createViewWorker(e,l),i.focusScenePath&&this.control.collector&&this.control.worker.pullServiceData(e,i.focusScenePath)}}listenerWindowManager(e){e.emitter.on("focusedChange",i=>{const n=i||we.viewId;if(this.focuedViewId!==n)if(this.getView(n)){const r=this.control.worker.getLocalWorkViewId();r&&r!==n?this.setFocuedViewId(r):this.setFocuedViewId(n)}else this.tmpFocusedViewId=n}),e.emitter.on("mainViewScenePathChange",i=>{console.log("ContainerManager mainViewScenePathChange",i),this.control.onSceneChange(i,"mainView")}),e.emitter.on("onMainViewMounted",this.onMainViewMounted),e.emitter.on("onAppViewMounted",this.onAppViewMounted),e.emitter.on("onMainViewRebind",this.onMainViewRelease),e.emitter.on("onBoxClose",i=>{this.appViews.get(i.appId)&&(this.destroyAppView(i.appId),this.control.worker.destroyViewWorker(i.appId))}),e.emitter.on("onAppScenePathChange",i=>{const{appId:n,view:s}=i;this.control.onSceneChange(s.focusScenePath,n)})}onActiveHotkeyChange(e){this.control.hotkeyManager.onActiveHotkey(e)}}class gt extends me{constructor(e){super(e);p(this,"windowManager");p(this,"viewContainerManager");const i={control:this,internalMsgEmitter:me.InternalMsgEmitter};this.viewContainerManager=new je(i)}init(){}destroy(){var e,i,n,s;this.roomMember.destroy(),(e=this.collector)==null||e.destroy(),(i=this.worker)==null||i.destroy(),(n=this.viewContainerManager)==null||n.destroy(),(s=this.cursor)==null||s.destroy()}activePlugin(){this.collector&&(this.collector.addStorageStateListener(e=>{var i,n;if((i=this.collector)!=null&&i.storage&&Object.keys(this.collector.storage).length===0){(n=this.worker)==null||n.clearViewScenePath("mainView",!0);return}if(e){const s=new Map;Object.keys(e).forEach(r=>{var c;const a=e[r];if(a){const l=a.viewId,d=s.get(l)||new Set;d.add(r),s.set(l,d),(c=this.worker)==null||c.onServiceDerive(r,a)}});for(const[r,a]of s.entries())me.InternalMsgEmitter.emit("excludeIds",[...a],r)}}),this.room&&this.roomMember.onUidChangeHook(e=>{var i,n,s,r;if((i=this.collector)!=null&&i.serviceStorage){const a=[];this.viewContainerManager.getAllViews().forEach(c=>{var l;if(c&&c.focusScenePath&&((l=this.collector)!=null&&l.serviceStorage[c.id])&&this.collector.serviceStorage[c.id][c.focusScenePath]){const d=Object.keys(this.collector.serviceStorage[c.id][c.focusScenePath]).filter(g=>{var h;return(h=this.collector)==null?void 0:h.isSelector(g)}).map(g=>({viewId:c.id,scenePath:c.focusScenePath,key:g}));d.length&&a.push(...d)}}),a.forEach(({key:c,viewId:l,scenePath:d})=>{var h,M;const g=(h=this.collector)==null?void 0:h.getUidFromKey(c);g&&!e.online.includes(g)&&((M=this.collector)==null||M.updateValue(c,void 0,{isAfterUpdate:!0,viewId:l,scenePath:d}))})}(s=(n=this.cursor)==null?void 0:n.eventCollector)!=null&&s.serviceStorage&&Object.keys((r=this.cursor)==null?void 0:r.eventCollector.serviceStorage).forEach(c=>{var l,d;e.online.includes(c)||(d=(l=this.cursor)==null?void 0:l.eventCollector)==null||d.clearValue(c)})}),this.worker.isActive&&this.viewContainerManager.getAllViews().forEach(e=>{e&&e.focusScenePath&&this.worker.pullServiceData(e.id,e.focusScenePath)}))}async activeWorker(){await this.worker.init()}setWindowManager(e){var i,n,s,r,a;this.windowManager=e,(n=(i=this.windowManager)==null?void 0:i.mainView)!=null&&n.divElement&&this.viewContainerManager.onMainViewMounted(this.windowManager.mainView),(a=(r=(s=this.windowManager.appManager)==null?void 0:s.viewManager)==null?void 0:r.views)!=null&&a.size&&this.windowManager.appManager.viewManager.views.forEach((c,l)=>{this.viewContainerManager.onAppViewMounted({appId:l,view:c})}),this.viewContainerManager.listenerWindowManager(this.windowManager)}}const Qo={syncOpt:{interval:200},canvasOpt:{contextType:mt.Canvas2d},cdn:{fullWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@1.0.0-beta.2/cdn/fullWorker-O4uzWn.js",subWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@1.0.0-beta.2/cdn/subWorker-CvBoLi.js"}},O=class O extends J.InvisiblePlugin{constructor(){super(...arguments);p(this,"onPhaseChanged",e=>{var i;e===J.RoomPhase.Reconnecting&&((i=O.currentManager)==null||i.setSnapshootData())});p(this,"updateRoomWritable",()=>{var e;(e=O.currentManager)==null||e.onWritableChange(this.displayer.isWritable)});p(this,"roomStateChangeListener",async e=>{var i,n;J.isRoom(this.displayer)&&!this.displayer.isWritable||(e.memberState&&((i=O.currentManager)==null||i.onMemberChange(e.memberState)),e!=null&&e.roomMembers&&((n=O.currentManager)==null||n.onRoomMembersChange(e.roomMembers)))})}static async getInstance(e,i){const n=e.displayer,s=n.callbacks.on,r=n.callbacks.off,a=n.callbacks.once,c=e.cleanCurrentScene,l=e.mainView.setMemberState,d={displayer:n,windowManager:e,currentManager:O.currentManager,maxScreenshotWidth:10*1024,maxScreenshotHeight:10*1024,getBoundingRectAsync:async function(M){var f;O.logger.info("[ApplianceMultiPlugin] getBoundingRectAsync");const y=(this.windowManager&&this.windowManager.mainView||this.displayer).getBoundingRect(M),v=await((f=O.currentManager)==null?void 0:f.getBoundingRect(M));return!y.width||!y.height?v:Po(y,v)},screenshotToCanvasAsync:async function(M,y,v,f,I,m){var b;O.logger.info("[ApplianceMultiPlugin] screenshotToCanvasAsync");let w=v,T=f,z=I.scale;w>this.maxScreenshotWidth&&(z=this.maxScreenshotWidth/w*z,w=this.maxScreenshotWidth),T>this.maxScreenshotHeight&&(z=Math.min(this.maxScreenshotHeight/T*z,z),T=this.maxScreenshotHeight),I.scale=z;const C=document.createElement("canvas"),L=C.getContext("2d");C.width=w*(m||1),C.height=T*(m||1),L&&((this.windowManager&&this.windowManager.mainView||this.displayer).screenshotToCanvas(L,y,w,T,I,m),M.drawImage(C,Math.floor((v-w)/2),Math.floor((f-T)/2),w*(m||1),T*(m||1),0,0,w,T),C.remove()),O.currentManager&&await((b=O.currentManager)==null?void 0:b.screenshotToCanvas(M,y,w,T,I,Math.floor((v-w)/2),Math.floor((f-T)/2)))},scenePreviewAsync:async function(M,y,v,f,I){O.logger.info("[ApplianceMultiPlugin] scenePreview"),(this.windowManager&&this.windowManager.mainView||this.displayer).scenePreview(M,y,v,f,I);const m=document.createElement("img");m.style.position="absolute",m.style.top="0px",m.style.left="0px",m.style.width="100%",m.style.height="100%",m.style.pointerEvents="none",y.append(m),getComputedStyle(y).position||(y.style.position="relative"),O.currentManager&&await O.currentManager.scenePreview(M,m)},_callbacksOn:function(M,y){O.logger.info(`[ApplianceMultiPlugin] callbacks ${M}`),(M==="onCanUndoStepsUpdate"||M==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?gt.InternalMsgEmitter.on(M,y):s.call(n.callbacks,M,y)},_callbacksOnce:function(M,y){O.logger.info(`[ApplianceMultiPlugin] callbacks ${M}`),(M==="onCanUndoStepsUpdate"||M==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?gt.InternalMsgEmitter.on(M,y):a.call(n.callbacks,M,y)},_callbacksOff:function(M,y){O.logger.info(`[ApplianceMultiPlugin] callbacks ${M}`),(M==="onCanUndoStepsUpdate"||M==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?gt.InternalMsgEmitter.off(M,y):r.call(n.callbacks,M,y)},undo:function(){return O.logger.info("[ApplianceMultiPlugin] undo"),O.currentManager&&J.isRoom(this.displayer)&&!this.displayer.disableSerialization?O.currentManager.viewContainerManager.undo():0},redo:function(){return O.logger.info("[ApplianceMultiPlugin] redo"),O.currentManager&&J.isRoom(this.displayer)&&!this.displayer.disableSerialization?O.currentManager.viewContainerManager.redo():0},cleanCurrentScene:function(){O.logger.info("[ApplianceMultiPlugin] cleanCurrentScene"),O.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&(O.currentManager.cleanCurrentScene(),c.call(e))},insertImage:function(M){O.logger.info("[ApplianceMultiPlugin] insertImage"),O.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&O.currentManager.worker.insertImage(M)},lockImage:function(M,y){O.logger.info("[ApplianceMultiPlugin] lockImage"),O.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&O.currentManager.worker.lockImage(M,y)},completeImageUpload:function(M,y){O.logger.info("[ApplianceMultiPlugin] completeImageUpload"),O.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&O.currentManager.worker.completeImageUpload(M,y)},getImagesInformation:function(M){return O.logger.info("[ApplianceMultiPlugin] completeImageUpload"),O.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable?O.currentManager.worker.getImagesInformation(M):[]},callbacks:()=>(O.logger.info("[ApplianceMultiPlugin] callbacks bind"),{...n.callbacks,on:d._callbacksOn.bind(d),once:d._callbacksOnce.bind(d),off:d._callbacksOff.bind(d)}),destroy(){O.currentManager&&(O.logger.info("[ApplianceMultiPlugin] destroy"),O.currentManager.destroy(),O.currentManager=void 0)},setMemberState(M){O.logger.info("[ApplianceMultiPlugin] setMemberState"),Object.keys(M).includes("currentApplianceName")&&(M.currentApplianceName&&M.currentApplianceName===H.laserPen?(M.currentApplianceName=H.pencil,M.useLaserPen=!0):M.currentApplianceName&&M.currentApplianceName===H.pencil&&(M.useLaserPen=!1)),l.call(e.mainView,M)}};i!=null&&i.logger&&(O.logger=i.logger),i.options&&(O.options=i.options);let g=n.getInvisiblePlugin(O.kind);n&&g&&O.createCurrentManager(e,O.options,g),!g&&J.isRoom(n)&&(g=await O.createApplianceMultiPlugin(n,O.kind)),g&&O.currentManager&&(O.currentManager.bindPlugin(g),g.init(n));const h=(M,y)=>{if(O.logger.info(`[ApplianceMultiPlugin] injectMethodToObject ${y}`),typeof M[y]=="function"||typeof M[y]>"u"){M[y]=d[y];return}y==="callbacks"&&(M.callbacks.on=d._callbacksOn.bind(d),M.callbacks.off=d._callbacksOff.bind(d),M.callbacks.once=d._callbacksOnce.bind(d))};return h(e,"undo"),h(e,"redo"),h(e,"cleanCurrentScene"),h(e,"insertImage"),h(e,"completeImageUpload"),h(e,"lockImage"),h(n,"getImagesInformation"),h(n,"callbacks"),h(n,"screenshotToCanvasAsync"),h(n,"getBoundingRectAsync"),h(n,"scenePreviewAsync"),h(e.mainView,"setMemberState"),{...d,callbacks:d.callbacks()}}static onCreate(e){e&&O.currentManager&&(O.currentManager.bindPlugin(e),e.init(e.displayer))}static async createApplianceMultiPlugin(e,i){await e.createInvisiblePlugin(O,{});let n=e.getInvisiblePlugin(i);return n||(n=await O.createApplianceMultiPlugin(e,i)),n}get isReplay(){return J.isPlayer(this.displayer)}get callbackName(){return this.isReplay?"onPlayerStateChanged":"onRoomStateChanged"}init(e){var i,n;if(J.isRoom(e)){const s=e.state;(i=O.currentManager)==null||i.onMemberChange(s.memberState),(n=O.currentManager)==null||n.onRoomMembersChange(s.roomMembers)}this.displayer.callbacks.on(this.callbackName,this.roomStateChangeListener),this.displayer.callbacks.on("onEnableWriteNowChanged",this.updateRoomWritable),this.displayer.callbacks.on("onPhaseChanged",this.onPhaseChanged)}destroy(){var e;O.logger.info("[ApplianceMultiPlugin] passive destroy"),(e=O.currentManager)==null||e.destroy(),O.currentManager=void 0}};p(O,"kind","appliance-multi-plugin"),p(O,"currentManager"),p(O,"logger",{info:console.log,warn:console.warn,error:console.error}),p(O,"options",Qo),p(O,"createCurrentManager",(e,i,n)=>{if(O.currentManager&&O.currentManager.destroy(),i&&e){const s={plugin:n,displayer:e.displayer,options:i},r=new gt(s);O.logger.info("[ApplianceMultiPlugin] refresh ApplianceMultiManager object"),r.setWindowManager(e),O.currentManager=r}});let Ht=O;class nf extends we{constructor(e,i){super(e,i);p(this,"width",1e3);p(this,"height",1e3);p(this,"dpr",1);p(this,"vDom");p(this,"viewId","mainView");p(this,"eventTragetElement");p(this,"snapshotContainerRef");p(this,"canvasContainerRef",u.createRef());p(this,"canvasTopRef",u.createRef());p(this,"canvasServiceFloatRef",u.createRef());p(this,"canvasFloatRef",u.createRef());p(this,"canvasBgRef",u.createRef());p(this,"floatBarRef",u.createRef());p(this,"containerOffset",{x:0,y:0});this.control.hasOffscreenCanvas()||(this.snapshotContainerRef=u.createRef())}setCanvassStyle(){if(this.eventTragetElement){const e=this.eventTragetElement.offsetWidth,i=this.eventTragetElement.offsetHeight;e&&i&&this.canvasContainerRef.current&&(this.dpr=We(),this.canvasContainerRef.current.style.width=`${e}px`,this.canvasContainerRef.current.style.height=`${i}px`),e&&i&&this.canvasContainerRef.current&&(this.dpr=We(),this.width=e,this.height=i,this.canvasContainerRef.current.style.width=`${e}px`,this.canvasContainerRef.current.style.height=`${i}px`),e&&i&&this.canvasBgRef.current&&(this.dpr=We(this.canvasBgRef.current.getContext("2d")),this.width=e,this.height=i,this.canvasBgRef.current.style.width=`${e}px`,this.canvasBgRef.current.style.height=`${i}px`,this.canvasBgRef.current.width=e*this.dpr,this.canvasBgRef.current.height=i*this.dpr,this.canvasFloatRef.current&&(this.canvasFloatRef.current.style.width=`${e}px`,this.canvasFloatRef.current.style.height=`${i}px`,this.canvasFloatRef.current.width=e*this.dpr,this.canvasFloatRef.current.height=i*this.dpr),this.canvasServiceFloatRef.current&&(this.canvasServiceFloatRef.current.style.width=`${e}px`,this.canvasServiceFloatRef.current.style.height=`${i}px`,this.canvasServiceFloatRef.current.width=e*this.dpr,this.canvasServiceFloatRef.current.height=i*this.dpr),this.canvasTopRef.current&&(this.canvasTopRef.current.style.width=`${e}px`,this.canvasTopRef.current.style.height=`${i}px`,this.canvasTopRef.current.width=e*this.dpr,this.canvasTopRef.current.height=i*this.dpr))}}createMainViewDisplayer(e){return this.vDom||(this.containerOffset=this.getContainerOffset(e,this.containerOffset),this.eventTragetElement=e.parentElement.children[0],e.innerHTML="",Gt.render(u.createElement(ui,{viewId:this.viewId,maranger:this,refs:{canvasServiceFloatRef:this.canvasServiceFloatRef,canvasFloatRef:this.canvasFloatRef,canvasBgRef:this.canvasBgRef,floatBarRef:this.floatBarRef,canvasTopRef:this.canvasTopRef,canvasContainerRef:this.canvasContainerRef,snapshotContainerRef:this.snapshotContainerRef}}),e),this.control.room&&this.bindDisplayerEvent(this.eventTragetElement)),this}}class Re extends _e{constructor(e){super(e);p(this,"focuedViewId");p(this,"control");p(this,"focuedView");this.control=e.control}bindMainView(){if(!this.control.divMainView)return;const e=new nf(this.control,me.InternalMsgEmitter);this.focuedViewId=we.viewId;const{width:i,height:n,dpr:s}=e,r={dpr:s,originalPoint:[i/2,n/2],offscreenCanvasOpt:{...Re.defaultScreenCanvasOpt,width:i,height:n},layerOpt:{...Re.defaultLayerOpt,width:i,height:n},cameraOpt:{...Re.defaultCameraOpt,width:i,height:n}},a=this.control.room&&this.control.room.mainView||this.control.play&&this.control.play.mainView;if(a){const{scale:c,...l}=a.camera;r.cameraOpt={...r.cameraOpt,...l,scale:c===1/0?1:c},this.createMianView({id:we.viewId,displayer:e,focusScenePath:a.focusScenePath||a.scenePath,cameraOpt:r.cameraOpt,viewData:a}),this.focuedView=this.mainView,e.createMainViewDisplayer(this.control.divMainView)}}async mountView(e){var n;const i=this.getView(e);if(i){const{width:s,height:r,dpr:a}=i.displayer,c={dpr:a,originalPoint:[s/2,r/2],offscreenCanvasOpt:{...Re.defaultScreenCanvasOpt,width:s,height:r},layerOpt:{...Re.defaultLayerOpt,width:s,height:r},cameraOpt:{...Re.defaultCameraOpt,width:s,height:r}};if(i.viewData){const{scale:l,...d}=i.viewData.camera;c.cameraOpt={...c.cameraOpt,...d,scale:l===1/0?1:l}}this.control.worker.isActive||await this.control.activeWorker(),(n=this.control.worker)==null||n.createViewWorker(e,c),i.focusScenePath&&this.control.collector&&this.control.worker.pullServiceData(e,i.focusScenePath)}}}class ke extends me{constructor(e){super(e);p(this,"viewContainerManager");p(this,"divMainView");p(this,"onCameraChange",ve(e=>{this.viewContainerManager.setFocuedViewCameraOpt(e)},20,{leading:!1}));const i={control:this,internalMsgEmitter:ke.InternalMsgEmitter};this.viewContainerManager=new Re(i)}init(){ke.InternalMsgEmitter.on(W.BindMainView,e=>{this.divMainView=e,this.plugin&&!this.viewContainerManager.mainView&&this.viewContainerManager.bindMainView()})}activePlugin(){this.plugin&&this.divMainView&&!this.viewContainerManager.mainView&&this.viewContainerManager.bindMainView(),this.collector&&(this.collector.addStorageStateListener(e=>{var i,n;if((i=this.collector)!=null&&i.storage&&Object.keys(this.collector.storage).length===0){(n=this.worker)==null||n.clearViewScenePath("mainView",!0);return}if(e){const s=new Map;Object.keys(e).forEach(r=>{var c;const a=e[r];if(a){const l=a.viewId,d=s.get(l)||new Set;d.add(r),s.set(l,d),(c=this.worker)==null||c.onServiceDerive(r,a)}});for(const[r,a]of s.entries())ke.InternalMsgEmitter.emit("excludeIds",[...a],r)}}),this.room&&(this.roomMember.onUidChangeHook(e=>{var i,n,s,r;if((i=this.collector)!=null&&i.serviceStorage){const a=[];this.viewContainerManager.getAllViews().forEach(c=>{var l,d,g;if(c&&c.focusScenePath&&((l=this.collector)!=null&&l.serviceStorage[c.id])&&((d=this.collector)!=null&&d.serviceStorage[c.id][c.focusScenePath])){const h=Object.keys((g=this.collector)==null?void 0:g.serviceStorage[c.id][c.focusScenePath]).filter(M=>{var y;return(y=this.collector)==null?void 0:y.isSelector(M)}).map(M=>({viewId:c.id,scenePath:c.focusScenePath,key:M}));h.length&&a.push(...h)}}),a.forEach(({key:c,viewId:l,scenePath:d})=>{var h,M;const g=(h=this.collector)==null?void 0:h.getUidFromKey(c);g&&!e.online.includes(g)&&((M=this.collector)==null||M.updateValue(c,void 0,{isAfterUpdate:!0,viewId:l,scenePath:d}))})}(s=(n=this.cursor)==null?void 0:n.eventCollector)!=null&&s.serviceStorage&&Object.keys((r=this.cursor)==null?void 0:r.eventCollector.serviceStorage).forEach(c=>{var l,d;e.online.includes(c)||(d=(l=this.cursor)==null?void 0:l.eventCollector)==null||d.clearValue(c)})}),this.worker.isActive&&this.viewContainerManager.getAllViews().forEach(e=>{e&&e.focusScenePath&&this.worker.pullServiceData(e.id,e.focusScenePath)})))}async activeWorker(){await this.worker.init()}}const k=class k extends J.InvisiblePlugin{constructor(){super(...arguments);p(this,"updateRoomWritable",()=>{var e;(e=k.currentManager)==null||e.onWritableChange(this.displayer.isWritable)});p(this,"roomStateChangeListener",async e=>{var i,n;k.currentManager instanceof ke&&(e.cameraState&&k.currentManager.onCameraChange(e.cameraState),e.sceneState&&k.currentManager.onSceneChange(e.sceneState.scenePath,"mainView")),!(J.isRoom(this.displayer)&&!this.displayer.isWritable)&&(e.memberState&&((i=k.currentManager)==null||i.onMemberChange(e.memberState)),e!=null&&e.roomMembers&&((n=k.currentManager)==null||n.onRoomMembersChange(e.roomMembers)))})}static async getInstance(e,i){const n=e.callbacks.on,s=e.callbacks.off,r=e.callbacks.once,a=e.cleanCurrentScene,c=e.setMemberState,l={displayer:e,currentManager:k.currentManager,maxScreenshotWidth:10*1024,maxScreenshotHeight:10*1024,_injectTargetObject:void 0,getBoundingRectAsync:async function(h){var v;k.logger.info("[ApplianceSinglePlugin] getBoundingRectAsync");const M=this.displayer.getBoundingRect(h),y=await((v=k.currentManager)==null?void 0:v.getBoundingRect(h));return!M.width||!M.height?y:Po(M,y)},screenshotToCanvasAsync:async function(h,M,y,v,f,I){var L;k.logger.info("[ApplianceSinglePlugin] screenshotToCanvasAsync");let m=y,w=v,T=f.scale;m>this.maxScreenshotWidth&&(T=this.maxScreenshotWidth/m*T,m=this.maxScreenshotWidth),w>this.maxScreenshotHeight&&(T=Math.min(this.maxScreenshotHeight/w*T,T),w=this.maxScreenshotHeight),f.scale=T;const z=document.createElement("canvas"),C=z.getContext("2d");z.width=m*(I||1),z.height=w*(I||1),C&&(this.displayer.screenshotToCanvas(C,M,m,w,f,I),h.drawImage(z,Math.floor((y-m)/2),Math.floor((v-w)/2),m*(I||1),w*(I||1),0,0,m,w),z.remove()),k.currentManager&&await((L=k.currentManager)==null?void 0:L.screenshotToCanvas(h,M,m,w,f,Math.floor((y-m)/2),Math.floor((v-w)/2)))},scenePreviewAsync:async function(h,M,y,v,f){k.logger.info("[ApplianceSinglePlugin] scenePreview"),this.displayer.scenePreview(h,M,y,v,f);const I=document.createElement("img");I.style.position="absolute",I.style.top="0px",I.style.left="0px",I.style.width="100%",I.style.height="100%",I.style.pointerEvents="none",M.append(I),getComputedStyle(M).position||(M.style.position="relative"),k.currentManager&&await k.currentManager.scenePreview(h,I)},_callbacksOn:function(h,M){k.logger.info(`[ApplianceSinglePlugin] callbacks ${h}`),(h==="onCanUndoStepsUpdate"||h==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?ke.InternalMsgEmitter.on(h,M):n.call(e.callbacks,h,M)},_callbacksOnce:function(h,M){k.logger.info(`[ApplianceSinglePlugin] callbacks ${h}`),(h==="onCanUndoStepsUpdate"||h==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?ke.InternalMsgEmitter.on(h,M):r.call(e.callbacks,h,M)},_callbacksOff:function(h,M){k.logger.info(`[ApplianceSinglePlugin] callbacks ${h}`),(h==="onCanUndoStepsUpdate"||h==="onCanRedoStepsUpdate")&&J.isRoom(this.displayer)&&this.displayer.isWritable?ke.InternalMsgEmitter.off(h,M):s.call(e.callbacks,h,M)},undo:function(){return k.logger.info("[ApplianceSinglePlugin] undo"),k.currentManager&&J.isRoom(this.displayer)&&!this.displayer.disableSerialization?k.currentManager.viewContainerManager.undo():0},redo:function(){return k.logger.info("[ApplianceSinglePlugin] redo"),k.currentManager&&J.isRoom(this.displayer)&&!this.displayer.disableSerialization?k.currentManager.viewContainerManager.redo():0},cleanCurrentScene:function(h){k.logger.info("[ApplianceSinglePlugin] cleanCurrentScene"),k.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&(k.currentManager.cleanCurrentScene(),a.call(e,h))},insertImage:function(h){k.logger.info("[ApplianceSinglePlugin] insertImage"),k.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&k.currentManager.worker.insertImage(h)},lockImage:function(h,M){k.logger.info("[ApplianceSinglePlugin] lockImage"),k.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&k.currentManager.worker.lockImage(h,M)},completeImageUpload:function(h,M){k.logger.info("[ApplianceSinglePlugin] completeImageUpload"),k.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable&&k.currentManager.worker.completeImageUpload(h,M)},getImagesInformation:function(h){return k.logger.info("[ApplianceSinglePlugin] completeImageUpload"),k.currentManager&&J.isRoom(this.displayer)&&this.displayer.isWritable?k.currentManager.worker.getImagesInformation(h):[]},callbacks:()=>({...e.callbacks,on:l._callbacksOn.bind(l),once:l._callbacksOnce.bind(l),off:l._callbacksOff.bind(l)}),destroy(){k.currentManager&&(k.logger.info("[ApplianceSinglePlugin] destroy"),k.currentManager.destroy(),k.currentManager=void 0,k.cursorAdapter=void 0)},setMemberState(h){k.logger.info("[ApplianceSinglePlugin] setMemberState"),Object.keys(h).includes("currentApplianceName")&&(h.currentApplianceName&&h.currentApplianceName===H.laserPen&&(h.currentApplianceName=H.pencil,h.useLaserPen=!0),h.currentApplianceName&&h.currentApplianceName===H.pencil&&(h.useLaserPen=!1)),c(h)}};i!=null&&i.logger&&(k.logger=i.logger),i.options&&(k.options=i.options);let d=e.getInvisiblePlugin(k.kind);e&&d&&k.createCurrentManager(e,k.options,d),!d&&J.isRoom(e)&&(d=await k.createAppliancePlugin(e,k.kind)),d&&k.currentManager&&(k.currentManager.bindPlugin(d),d.init(e)),i!=null&&i.cursorAdapter&&(k.cursorAdapter=i.cursorAdapter),k.effectInstance();const g=(h,M)=>{if(k.logger.info(`[ApplianceSinglePlugin] injectMethodToObject ${M}`),typeof h[M]=="function"||typeof h[M]>"u"){h[M]=l[M];return}M==="callbacks"&&(h.callbacks.on=l._callbacksOn.bind(l),h.callbacks.off=l._callbacksOff.bind(l),h.callbacks.once=l._callbacksOnce.bind(l))};return g(e,"undo"),g(e,"redo"),g(e,"cleanCurrentScene"),g(e,"insertImage"),g(e,"completeImageUpload"),g(e,"lockImage"),g(e,"getImagesInformation"),g(e,"callbacks"),g(e,"screenshotToCanvasAsync"),g(e,"getBoundingRectAsync"),g(e,"scenePreviewAsync"),g(e,"setMemberState"),{...l,callbacks:l.callbacks()}}static onCreate(e){e&&k.currentManager&&(k.currentManager.bindPlugin(e),e.init(e.displayer))}static async createAppliancePlugin(e,i){await e.createInvisiblePlugin(k,{});let n=e.getInvisiblePlugin(i);return n||(n=await k.createAppliancePlugin(e,i)),n}static effectInstance(){if(k.cursorAdapter){const e=k.cursorAdapter.onAddedCursor;k.cursorAdapter.onAddedCursor=function(i){i.onCursorMemberChanged=n=>{try{n.appliance===H.pencil||n.appliance===H.shape||n.appliance===H.text||n.appliance===H.arrow||n.appliance===H.straight||n.appliance===H.rectangle||n.appliance===H.ellipse?i!=null&&i.divElement&&(i.divElement.style.display="none"):i!=null&&i.divElement&&(i.divElement.style.display="block")}catch{}},e.call(k.cursorAdapter,i)}}}get isReplay(){return J.isPlayer(this.displayer)}get callbackName(){return this.isReplay?"onPlayerStateChanged":"onRoomStateChanged"}init(e){var i;if(J.isRoom(e)){const n=e.state;n!=null&&n.memberState&&((i=k.currentManager)==null||i.onMemberChange(n.memberState))}this.displayer.callbacks.on(this.callbackName,this.roomStateChangeListener),this.displayer.callbacks.on("onEnableWriteNowChanged",this.updateRoomWritable)}destroy(){var e;k.logger.info("[ApplianceSinglePlugin] passive destroy"),(e=k.currentManager)==null||e.destroy(),k.currentManager=void 0,k.cursorAdapter=void 0}};p(k,"kind","teaching-aids-single-plugin"),p(k,"cursorAdapter"),p(k,"currentManager"),p(k,"logger",{info:console.log,warn:console.warn,error:console.error}),p(k,"options",Qo),p(k,"createCurrentManager",(e,i,n)=>{k.currentManager&&k.currentManager.destroy();const s={plugin:n,displayer:e,options:i},r=new ke(s);r.init(),k.logger.info("[ApplianceSinglePlugin] refresh ApplianceSingleManager object"),k.currentManager=r});let Zt=k;const Fe=class Fe extends u.Component{constructor(){super(...arguments);p(this,"mainViewRef",null)}componentDidMount(){Fe.emiter||(Fe.emiter=ke.InternalMsgEmitter),Fe.emiter.emit(W.BindMainView,this.mainViewRef)}componentWillUnmount(){Fe.emiter.emit(W.DisplayState,Jt.unmounted)}render(){return u.createElement(u.Fragment,null,this.props.children,u.createElement("div",{className:"teaching-aids-plugin-main-view-displayer",ref:e=>this.mainViewRef=e}))}};p(Fe,"emiter");let Vt=Fe;exports.ActiveContainerType=no;exports.ApplianceMultiPlugin=Ht;exports.ApplianceNames=H;exports.ApplianceSigleWrapper=Vt;exports.ApplianceSinglePlugin=Zt;exports.DisplayStateEnum=Jt;exports.ECanvasContextType=mt;exports.ECanvasShowType=Le;exports.EDataType=V;exports.EPostMessageType=D;exports.EScaleType=ge;exports.EStrokeType=pt;exports.EToolsKey=N;exports.ElayerType=Qe;exports.EmitEventType=x;exports.EventMessageType=He;exports.EvevtWorkState=j;exports.InternalMsgEmitterType=W;exports.Point2d=oe;exports.ShapeType=Ce;exports.Storage_Selector_key=E;exports.Storage_Splitter=Se;exports.Storage_ViewId_ALL=Eo;exports.Vec2d=S;exports.ViewContainerManager=_e;exports.average=Gg;exports.cloneDeep=ne;exports.computRect=Wg;exports.fullWorker=Go;exports.getRectFromPoints=ri;exports.getRectRotated=Bg;exports.getRectScaleed=Fg;exports.getRectTranslated=$g;exports.getWHRatio=Zg;exports.isBoolean=Ne;exports.isEqual=ce;exports.isIntersect=Ug;exports.isIntersectForPoint=Ro;exports.isNumber=ae;exports.precise=Vg;exports.rotatePoints=Qg;exports.scalePoints=Hg;exports.subWorker=Jo;exports.throttle=ve;exports.transformToNormalData=Ao;exports.transformToSerializableData=bo;