@excalidraw/excalidraw 0.18.0-d92384b77 → 0.18.0-d92384b77-2

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,4 +1,4 @@
1
- import{a as M}from"./chunk-YCRRKGOW.js";import{d as $}from"./chunk-SRAX5OIU.js";import l6 from"png-chunks-extract";import U6 from"png-chunk-text";import G9 from"png-chunks-encode";import{deflate as V9,inflate as q9}from"pako";import f6 from"open-color";var p6=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Z9=5,W9=5,Ss=4,Uo=4,fo=1,Ut=[0,2,4,6,8];var ft=(e,t)=>t.map(n=>f6[e][n]),k={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:ft("gray",Ut),red:ft("red",Ut),pink:ft("pink",Ut),grape:ft("grape",Ut),violet:ft("violet",Ut),blue:ft("blue",Ut),cyan:ft("cyan",Ut),teal:ft("teal",Ut),green:ft("green",Ut),yellow:ft("yellow",Ut),orange:ft("orange",Ut),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},vs=p6(k,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),z9=[k.black,k.red[Uo],k.green[Uo],k.blue[Uo],k.yellow[Uo]],Q9=[k.transparent,k.red[fo],k.green[fo],k.blue[fo],k.yellow[fo]],j9=[k.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],eE={transparent:k.transparent,white:k.white,gray:k.gray,black:k.black,bronze:k.bronze,...vs},tE={transparent:k.transparent,white:k.white,gray:k.gray,black:k.black,bronze:k.bronze,...vs},$s=e=>[k.cyan[e],k.blue[e],k.violet[e],k.grape[e],k.pink[e],k.green[e],k.teal[e],k.yellow[e],k.orange[e],k.red[e]],nE=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;var po=/Mac|iPod|iPhone|iPad/.test(navigator.platform),aE=/^Win/.test(navigator.platform),Ps=/\b(android)\b/i.test(navigator.userAgent),sE="netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,u6=navigator.userAgent.indexOf("Chrome")!==-1,dE=!u6&&navigator.userAgent.indexOf("Safari")!==-1,Ns=/iPad|iPhone/.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,cE=()=>navigator.brave?.isBrave?.name==="isBrave",lE=typeof window<"u"&&"ResizeObserver"in window,UE="Excalidraw",Fs=36,Bs=10,_s=8,fE=5,pE=1,uE=30,Pt=Math.PI/12,mE="red",uo={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},bE={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},EE={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"};var gE={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},et={TEST:"test",DEVELOPMENT:"development"},xE={SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper"},Ln="Xiaolai",Mn="Segoe UI Emoji",ye={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9},Un={[Ln]:100,[Mn]:1e3},mo=e=>{switch(e){case ye.Excalifont:return[Ln,Mn];default:return[Mn]}},Ze={LIGHT:"light",DARK:"dark"},Ne={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},bo=1,pt=20,Nt=ye.Excalifont,Vn="left",Eo="top";var mr=2,br=2*mr,m6=1e-5,hE=2*br-m6,yE="#ffffff",IE="#1e1e1e",wE="#a2f1a6";var go=20,xo=5,ho={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},H={text:"text/plain",html:"text/html",json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json","excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...ho},Os=[H.text,H.html,...Object.values(ho)],RE={png:"png",svg:"svg",clipboard:"clipboard"},We={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Hi=window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,TE=500,ME=300,LE=500;var DE=100,SE=.1,As=.1,Ks=30,vE=300;var yo="invert(93%) hue-rotate(180deg)",$E={addLibrary:"addLibrary"},PE={addLibrary:"addLibrary"},NE={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},FE=730,BE=1e3,_E=500,OE=1229,qn=2,Hs=[1,2,3],Ji=10,AE=1440,KE=4*1024*1024,re="http://www.w3.org/2000/svg";var Yi={excalidraw:2,excalidrawLibrary:2},Se=5,Js=.7,Ys=11,Xt={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},Ci={LEFT:"left",CENTER:"center",RIGHT:"right"},Cs=20,Io=.25,Vs=32,rt={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Vi={architect:0,artist:1,cartoonist:2},HE={thin:1,bold:2,extraBold:4},Ie={strokeColor:k.black,backgroundColor:k.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Vi.artist,opacity:100,locked:!1},b6="library",JE="search",qs={name:"default",defaultTab:b6},YE=new Set(["iframe","embeddable","image"]),fn={selection:"selection",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},CE={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Gs="Untitled",qi={generalStats:1,elementProperties:2},VE=1,Xs={sharp:"sharp",round:"round",elbow:"elbow"},ks=.3,Er="element",Zs=Symbol.for("__test__originalId__"),E6=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(E6||{});import{nanoid as K9}from"nanoid";var g6=Hs.includes(devicePixelRatio)?devicePixelRatio:1,ut=()=>({showWelcomeScreen:!1,theme:Ze.LIGHT,collaborators:new Map,currentChartType:"bar",currentItemBackgroundColor:Ie.backgroundColor,currentItemEndArrowhead:"arrow",currentItemFillStyle:Ie.fillStyle,currentItemFontFamily:Nt,currentItemFontSize:pt,currentItemOpacity:Ie.opacity,currentItemRoughness:Ie.roughness,currentItemStartArrowhead:null,currentItemStrokeColor:Ie.strokeColor,currentItemRoundness:"round",currentItemArrowType:Xs.round,currentItemStrokeStyle:Ie.strokeStyle,currentItemStrokeWidth:Ie.strokeWidth,currentItemTextAlign:Vn,currentHoveredFontFamily:null,cursorButton:"up",activeEmbeddable:null,newElement:null,editingTextElement:null,editingGroupId:null,editingLinearElement:null,activeTool:{type:"selection",customType:null,locked:Ie.locked,lastActiveTool:null},penMode:!1,penDetected:!1,errorMessage:null,exportBackground:!0,exportScale:g6,exportEmbedScene:!1,exportWithDarkMode:!1,fileHandle:null,gridSize:go,gridStep:xo,gridModeEnabled:!1,isBindingEnabled:!0,defaultSidebarDockedPreference:!1,isLoading:!1,isResizing:!1,isRotating:!1,lastPointerDownWith:"mouse",multiElement:null,name:null,contextMenu:null,openMenu:null,openPopup:null,openSidebar:null,openDialog:null,pasteDialog:{shown:!1,data:null},previousSelectedElementIds:{},resizingElement:null,scrolledOutside:!1,scrollX:0,scrollY:0,selectedElementIds:{},hoveredElementIds:{},selectedGroupIds:{},selectedElementsAreBeingDragged:!1,selectionElement:null,shouldCacheIgnoreZoom:!1,stats:{open:!1,panels:qi.generalStats|qi.elementProperties},startBoundElement:null,suggestedBindings:[],frameRendering:{enabled:!0,clip:!0,name:!0,outline:!0},frameToHighlight:null,editingFrame:null,elementsToHighlight:null,toast:null,viewBackgroundColor:k.white,zenModeEnabled:!1,zoom:{value:1},viewModeEnabled:!1,pendingImageElementId:null,showHyperlinkPopup:!1,selectedLinearElement:null,snapLines:[],originSnapOffset:{x:0,y:0},objectsSnapModeEnabled:!1,userToFollow:null,followedBy:new Set,isCropping:!1,croppingElementId:null,searchMatches:[]}),x6=(e=>e)({showWelcomeScreen:{browser:!0,export:!1,server:!1},theme:{browser:!0,export:!1,server:!1},collaborators:{browser:!1,export:!1,server:!1},currentChartType:{browser:!0,export:!1,server:!1},currentItemBackgroundColor:{browser:!0,export:!1,server:!1},currentItemEndArrowhead:{browser:!0,export:!1,server:!1},currentItemFillStyle:{browser:!0,export:!1,server:!1},currentItemFontFamily:{browser:!0,export:!1,server:!1},currentItemFontSize:{browser:!0,export:!1,server:!1},currentItemRoundness:{browser:!0,export:!1,server:!1},currentItemArrowType:{browser:!0,export:!1,server:!1},currentItemOpacity:{browser:!0,export:!1,server:!1},currentItemRoughness:{browser:!0,export:!1,server:!1},currentItemStartArrowhead:{browser:!0,export:!1,server:!1},currentItemStrokeColor:{browser:!0,export:!1,server:!1},currentItemStrokeStyle:{browser:!0,export:!1,server:!1},currentItemStrokeWidth:{browser:!0,export:!1,server:!1},currentItemTextAlign:{browser:!0,export:!1,server:!1},currentHoveredFontFamily:{browser:!1,export:!1,server:!1},cursorButton:{browser:!0,export:!1,server:!1},activeEmbeddable:{browser:!1,export:!1,server:!1},newElement:{browser:!1,export:!1,server:!1},editingTextElement:{browser:!1,export:!1,server:!1},editingGroupId:{browser:!0,export:!1,server:!1},editingLinearElement:{browser:!1,export:!1,server:!1},activeTool:{browser:!0,export:!1,server:!1},penMode:{browser:!0,export:!1,server:!1},penDetected:{browser:!0,export:!1,server:!1},errorMessage:{browser:!1,export:!1,server:!1},exportBackground:{browser:!0,export:!1,server:!1},exportEmbedScene:{browser:!0,export:!1,server:!1},exportScale:{browser:!0,export:!1,server:!1},exportWithDarkMode:{browser:!0,export:!1,server:!1},fileHandle:{browser:!1,export:!1,server:!1},gridSize:{browser:!0,export:!0,server:!0},gridStep:{browser:!0,export:!0,server:!0},gridModeEnabled:{browser:!0,export:!0,server:!0},height:{browser:!1,export:!1,server:!1},isBindingEnabled:{browser:!1,export:!1,server:!1},defaultSidebarDockedPreference:{browser:!0,export:!1,server:!1},isLoading:{browser:!1,export:!1,server:!1},isResizing:{browser:!1,export:!1,server:!1},isRotating:{browser:!1,export:!1,server:!1},lastPointerDownWith:{browser:!0,export:!1,server:!1},multiElement:{browser:!1,export:!1,server:!1},name:{browser:!0,export:!1,server:!1},offsetLeft:{browser:!1,export:!1,server:!1},offsetTop:{browser:!1,export:!1,server:!1},contextMenu:{browser:!1,export:!1,server:!1},openMenu:{browser:!0,export:!1,server:!1},openPopup:{browser:!1,export:!1,server:!1},openSidebar:{browser:!0,export:!1,server:!1},openDialog:{browser:!1,export:!1,server:!1},pasteDialog:{browser:!1,export:!1,server:!1},previousSelectedElementIds:{browser:!0,export:!1,server:!1},resizingElement:{browser:!1,export:!1,server:!1},scrolledOutside:{browser:!0,export:!1,server:!1},scrollX:{browser:!0,export:!1,server:!1},scrollY:{browser:!0,export:!1,server:!1},selectedElementIds:{browser:!0,export:!1,server:!1},hoveredElementIds:{browser:!1,export:!1,server:!1},selectedGroupIds:{browser:!0,export:!1,server:!1},selectedElementsAreBeingDragged:{browser:!1,export:!1,server:!1},selectionElement:{browser:!1,export:!1,server:!1},shouldCacheIgnoreZoom:{browser:!0,export:!1,server:!1},stats:{browser:!0,export:!1,server:!1},startBoundElement:{browser:!1,export:!1,server:!1},suggestedBindings:{browser:!1,export:!1,server:!1},frameRendering:{browser:!1,export:!1,server:!1},frameToHighlight:{browser:!1,export:!1,server:!1},editingFrame:{browser:!1,export:!1,server:!1},elementsToHighlight:{browser:!1,export:!1,server:!1},toast:{browser:!1,export:!1,server:!1},viewBackgroundColor:{browser:!0,export:!0,server:!0},width:{browser:!1,export:!1,server:!1},zenModeEnabled:{browser:!0,export:!1,server:!1},zoom:{browser:!0,export:!1,server:!1},viewModeEnabled:{browser:!1,export:!1,server:!1},pendingImageElementId:{browser:!1,export:!1,server:!1},showHyperlinkPopup:{browser:!1,export:!1,server:!1},selectedLinearElement:{browser:!0,export:!1,server:!1},snapLines:{browser:!1,export:!1,server:!1},originSnapOffset:{browser:!1,export:!1,server:!1},objectsSnapModeEnabled:{browser:!0,export:!1,server:!1},userToFollow:{browser:!1,export:!1,server:!1},followedBy:{browser:!1,export:!1,server:!1},isCropping:{browser:!1,export:!1,server:!1},croppingElementId:{browser:!1,export:!1,server:!1},searchMatches:{browser:!1,export:!1,server:!1}}),Ws=(e,t)=>{let n={};for(let r of Object.keys(e))if(x6[r]?.[t]){let i=e[r];n[r]=i}return n};var wo=e=>Ws(e,"export"),zs=e=>Ws(e,"server"),Qs=({activeTool:e})=>e.type==="eraser",js=({activeTool:e})=>e.type==="hand";import n9 from"lodash.throttle";import L6 from"es6-promise-pool";var se=(e,t,n)=>Math.min(Math.max(e,t),n),ed=(e,t,n="round")=>{let r=Math.pow(10,t);return Math[n]((e+Number.EPSILON)*r)/r},zE=(e,t,n="round")=>{let r=1/t;return Math[n](e*r)/r},gr=(e,t)=>(e+t)/2,Ro=e=>typeof e=="number"&&Number.isFinite(e),Gi=(e,t,n=1e-4)=>Math.abs(e-t)<n;var xr=e=>e<0?e+2*Math.PI:e>=2*Math.PI?e-2*Math.PI:e;function hr(e){return e*Math.PI/180}function td(e){return e*180/Math.PI}function nd(e){return Math.abs(Math.sin(2*e))<1e-4}function ve(e,t,n=0,r=0){return[e-n,t-r]}function O(e,t=[0,0]){return ve(e[0]-t[0],e[1]-t[1])}function Me(e,t){return e[0]*t[1]-t[0]*e[1]}function h6(e,t){return e[0]*t[0]+e[1]*t[1]}function at(e,t){return[e[0]+t[0],e[1]+t[1]]}function To(e,t){return[e[0]-t[0],e[1]-t[1]]}function ue(e,t){return ve(e[0]*t,e[1]*t)}function y6(e){return e[0]*e[0]+e[1]*e[1]}function I6(e){return Math.sqrt(y6(e))}var He=e=>{let t=I6(e);return t===0?ve(0,0):ve(e[0]/t,e[1]/t)};function u(e,t){return[e,t]}function yr(e){return e.length===2?u(e[0],e[1]):void 0}function V(e,t=u(0,0)){return u(t[0]+e[0],t[1]+e[1])}function Mo(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&!isNaN(e[0])&&typeof e[1]=="number"&&!isNaN(e[1])}function Je(e,t){let n=Math.abs;return n(e[0]-t[0])<1e-4&&n(e[1]-t[1])<1e-4}function T([e,t],[n,r],o){return u((e-n)*Math.cos(o)-(t-r)*Math.sin(o)+n,(e-n)*Math.sin(o)+(t-r)*Math.cos(o)+r)}function pn(e,t=[0,0]){return u(e[0]+t[0],e[1]+t[1])}function kt(e,t){return u((e[0]+t[0])/2,(e[1]+t[1])/2)}function ie(e,t){return Math.hypot(t[0]-e[0],t[1]-e[1])}function Ir(e,t){let n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}var bt=(e,t,n)=>pn(t,ue(O(e,t),n)),Lo=(e,t,n)=>t[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1]);function wr(e,t){return[e,t]}function rd(e,t){let n=e[1][1]-e[0][1],r=e[0][0]-e[1][0],o=t[1][1]-t[0][1],i=t[0][0]-t[1][0],a=n*i-o*r;if(a!==0){let s=n*e[0][0]+r*e[0][1],d=o*t[0][0]+i*t[0][1];return u((s*i-d*r)/a,(n*d-o*s)/a)}return null}function A(e,t){return[e,t]}var Ft=(e,t,n=1e-4)=>{let r=Do(e,t);return r===0?!0:r<n},Do=(e,t)=>{let[n,r]=e,[[o,i],[a,s]]=t,d=n-o,c=r-i,l=a-o,U=s-i,p=d*l+c*U,m=l*l+U*U,b=-1;m!==0&&(b=p/m);let E,g;b<0?(E=o,g=i):b>1?(E=a,g=s):(E=o+b*l,g=i+b*U);let y=n-E,x=r-g;return Math.sqrt(y*y+x*x)};function un(e,t){let n=rd(wr(e[0],e[1]),wr(t[0],t[1]));return!n||!Ft(n,t)||!Ft(n,e)?null:n}function Rr(e,t){return[e,t]}function od(e,t){return[A(e[0],u(e[1][0],e[0][1])),A(u(e[1][0],e[0][1]),e[1]),A(e[1],u(e[0][0],e[1][1])),A(u(e[0][0],e[1][1]),e[0])].map(n=>un(t,n)).filter(n=>!!n)}function Et(e,t,n,r){return[e,t,n,r]}function id(e,t,n,r=1e-6){return[(e(t+r,n)-e(t-r,n))/(2*r),(e(t,n+r)-e(t,n-r))/(2*r)]}function w6(e,t,n,r=.001,o=10){let i=1/0,a=0;for(;i>=r;){if(a>=o)return null;let s=e(t,n),d=[id((E,g)=>e(E,g)[0],t,n),id((E,g)=>e(E,g)[1],t,n)],c=[[-s[0]],[-s[1]]],l=d[0][0]*d[1][1]-d[0][1]*d[1][0];if(l===0)return null;let U=[[d[1][1]/l,-d[0][1]/l],[-d[1][0]/l,d[0][0]/l]],p=[[U[0][0]*c[0][0]+U[0][1]*c[1][0]],[U[1][0]*c[0][0]+U[1][1]*c[1][0]]];t=t+p[0][0],n=n+p[1][0];let[m,b]=e(t,n);i=Math.max(Math.abs(m),Math.abs(b)),a+=1}return[t,n]}var Tr=(e,t)=>u((1-t)**3*e[0][0]+3*(1-t)**2*t*e[1][0]+3*(1-t)*t**2*e[2][0]+t**3*e[3][0],(1-t)**3*e[0][1]+3*(1-t)**2*t*e[1][1]+3*(1-t)*t**2*e[2][1]+t**3*e[3][1]);function Xi(e,t){let n=T6(e);if(od(Rr(u(n[0],n[1]),u(n[2],n[3])),t).length===0)return[];let r=s=>u(t[0][0]+s*(t[1][0]-t[0][0]),t[0][1]+s*(t[1][1]-t[0][1])),o=[[.5,0],[.2,0],[.8,0]],i=([s,d])=>{let c=w6((p,m)=>{let b=Tr(e,p),E=r(m);return[b[0]-E[0],b[1]-E[1]]},s,d);if(!c)return null;let[l,U]=c;return l<0||l>1||U<0||U>1?null:Tr(e,l)},a=i(o[0]);return a?[a]:(a=i(o[1]),a?[a]:(a=i(o[2]),a?[a]:[]))}function R6(e,t,n=.001){let r=(c,l,U,p=n)=>{let m=c,b=l,E;for(;b-m>p;)E=(b+m)/2,U(E-p)<U(E+p)?b=E:m=E;return E},i=0;for(let c=1/0,l=0;l<30;l++){let U=ie(t,Tr(e,l/30));U<c&&(c=U,i=l)}let a=Math.max((i-1)/30,0),s=Math.min((i+1)/30,1),d=r(a,s,c=>ie(t,Tr(e,c)));return d?Tr(e,d):null}function ki(e,t){let n=R6(e,t);return n?ie(t,n):0}function T6(e){let[t,n,r,o]=e,i=[t[0],n[0],r[0],o[0]],a=[t[1],n[1],r[1],o[1]];return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]}function Zi(...e){return sd(e)}function Gn(e){return sd(e)}var Wi=(e,t)=>{let n=e[0],r=e[1],o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){let s=t[i][0],d=t[i][1],c=t[a][0],l=t[a][1];(d>r&&l<=r||d<=r&&l>r)&&n<(c-s)*(r-d)/(l-d)+s&&(o=!o)}return o},ad=(e,t,n=1e-4)=>{let r=!1;for(let o=0,i=t.length-1;o<i;o++)if(Ft(e,A(t[o],t[o+1]),n)){r=!0;break}return r};function sd(e){return M6(e)?e:[...e,e[0]]}function M6(e){return Je(e[0],e[e.length-1])}function _e(e,t){return Ge([e,t])}var Mr=([e,t],[n,r])=>e<=n?t>=n:e>=n?r>=e:!1,Lr=([e,t],[n,r])=>{let o=Math.max(e,n),i=Math.min(t,r);return o<=i?Ge([o,i]):null},Dr=(e,[t,n])=>e>=t&&e<=n;function Dn([e,t,n],r){let o=(l,U,p)=>(l[0]-p[0])*(U[1]-p[1])-(U[0]-p[0])*(l[1]-p[1]),i=o(r,e,t),a=o(r,t,n),s=o(r,n,e),d=i<0||a<0||s<0,c=i>0||a>0||s>0;return!(d&&c)}var dd=null;var rg=()=>{if(dd)return dd;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),o=`${e.getHours()}`.padStart(2,"0"),i=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${o}${i}`},og=e=>e.charAt(0).toUpperCase()+e.slice(1),ig=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),D6=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,ag=e=>D6(e)||e instanceof Element&&!!e.closest("label, button"),sg=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"),zi=({fontFamily:e})=>{for(let[t,n]of Object.entries(ye))if(n===e)return`${t}${mo(n).map(r=>`, ${r}`).join("")}`;return Mn},be=({fontSize:e,fontFamily:t})=>`${e}px ${zi({fontFamily:t})}`,So=(e,t)=>{let n=0,r=null,o=(...i)=>{r=i,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...i)},t)};return o.flush=()=>{if(clearTimeout(n),r){let i=r;r=null,e(...i)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Ud=(e,t)=>{let n=null,r=null,o=null,i=s=>{n=window.requestAnimationFrame(()=>{n=null,e(...s),r=null,o&&(r=o,o=null,i(r))})},a=(...s)=>{if(M.MODE==="test"){e(...s);return}r=s,n===null?i(r):t?.trailing&&(o=s)};return a.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...o||r),r=o=null)},a.cancel=()=>{r=o=null,n!==null&&(cancelAnimationFrame(n),n=null)},a},fd=e=>1-Math.pow(1-e,4),cd=(e,t,n)=>(t-e)*fd(n)+e,dg=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:i,onEnd:a,onCancel:s})=>{let d=!1,c=0,l;function U(p){if(d)return;l===void 0&&(l=p,i?.());let m=Math.min(p-l,r),b=fd(m/r),E={};if(Object.keys(e).forEach(g=>{let y=g,x=(t[y]-e[y])*b+e[y];E[y]=x}),n(E),m<r){let g=m/r,y={};Object.keys(e).forEach(x=>{let h=x,w=e[h],I=t[h],v;v=o?o(w,I,g,h):cd(w,I,g),v==null&&(v=cd(w,I,g)),y[h]=v}),n(y),c=window.requestAnimationFrame(U)}else n(t),a?.()}return c=window.requestAnimationFrame(U),()=>{s?.(),d=!0,window.cancelAnimationFrame(c)}},cg=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o};var st=(e,t)=>Math.abs(e-t),vr=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked};var lg=e=>(e=e.replace(/\bAlt\b/i,"Alt").replace(/\bShift\b/i,"Shift").replace(/\b(Enter|Return)\b/i,"Enter"),po?e.replace(/\bCtrlOrCmd\b/gi,"Cmd").replace(/\bAlt\b/i,"Option"):e.replace(/\bCtrlOrCmd\b/gi,"Ctrl")),Sn=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:i,scrollY:a})=>{let s=(e-r)/n.value-i,d=(t-o)/n.value-a;return{x:s,y:d}},Qi=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:i,scrollY:a})=>{let s=(e+i)*n.value+r,d=(t+a)*n.value+o;return{x:s,y:d}},Ug=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),S6="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF",v6="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",$6=new RegExp(`^[^${S6}]*[${v6}]`),vo=e=>$6.test(e),Zt=e=>{let[t,n]=e;return{x:t,y:n}},fg=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},pg=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},ug=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},Wt=e=>{let t=e.length===5&&e.substr(4,1)==="0",n=e.length===9&&e.substr(7,2)==="00";return t||n||e===k.transparent},$o=e=>e.fillStyle!=="solid"||Wt(e.backgroundColor),mg=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n};var bg=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},Eg=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},gg=e=>{e.preventDefault(),e.returnValue=""},pd=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),zt=()=>_t()?1:Date.now(),te=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),xg=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),Bt=(e,t)=>e.reduce((n,r)=>(n[t?t(r):String(r)]=r,n),{}),hg=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let i=t[r-1];if(o.prev=i,i.next=o,r===e.length-1){let a=t[0];o.next=a,a.prev=o}}return t.push(o),t},[]),_t=()=>M.MODE==="test",yg=()=>M.MODE==="development",ud=()=>typeof process<"u"&&!0,Ig=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),wg=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<"u"){if(e[r]===o&&(typeof o!="object"||o===null))continue;n=!0}}return n?{...e,...t}:e};var Rg=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}};var Po=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Tg=e=>{let t=e?.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},ld=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,Qt=(e,t,n,r=!1)=>{let o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(let a of n)if(!(e[a]===t[a]||ld(e[a],t[a])))return r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),!1;return!0}return o.every(a=>{let s=n?.[a],d=s?s(e[a],t[a]):e[a]===t[a]||ld(e[a],t[a]);return!d&&r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),d})},Mg=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},vn=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Oe(e,t){if(!e)throw new Error(t)}var Lg=e=>{let t,n,r=function(o){let i=Object.entries(o);if(t){let s=!0;for(let[d,c]of i)if(t.get(d)!==c){s=!1;break}if(s)return n}let a=e(o);return t=new Map(i),n=a,a};return r.clear=()=>{t=void 0,n=void 0},r},md=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Dg=e=>JSON.parse(JSON.stringify(e)),Sg=(e,t)=>Qt(e,t)?e:t;function vg(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function $g(e,t=!0){let n=e.length;if(n<4)return"";let r=e[0],o=e[1],i=e[2],a=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${gr(o[0],i[0]).toFixed(2)},${gr(o[1],i[1]).toFixed(2)} T`;for(let s=2,d=n-1;s<d;s++)r=e[s],o=e[s+1],a+=`${gr(r[0],o[0]).toFixed(2)},${gr(r[1],o[1]).toFixed(2)} `;return t&&(a+="Z"),a}var bd=e=>e.replace(/\r?\n|\r/g,`
1
+ import{a as M}from"./chunk-AIZYGWGQ.js";import{d as $}from"./chunk-SRAX5OIU.js";import l6 from"png-chunks-extract";import U6 from"png-chunk-text";import G9 from"png-chunks-encode";import{deflate as V9,inflate as q9}from"pako";import f6 from"open-color";var p6=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Z9=5,W9=5,Ss=4,Uo=4,fo=1,Ut=[0,2,4,6,8];var ft=(e,t)=>t.map(n=>f6[e][n]),k={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:ft("gray",Ut),red:ft("red",Ut),pink:ft("pink",Ut),grape:ft("grape",Ut),violet:ft("violet",Ut),blue:ft("blue",Ut),cyan:ft("cyan",Ut),teal:ft("teal",Ut),green:ft("green",Ut),yellow:ft("yellow",Ut),orange:ft("orange",Ut),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},vs=p6(k,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),z9=[k.black,k.red[Uo],k.green[Uo],k.blue[Uo],k.yellow[Uo]],Q9=[k.transparent,k.red[fo],k.green[fo],k.blue[fo],k.yellow[fo]],j9=[k.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],eE={transparent:k.transparent,white:k.white,gray:k.gray,black:k.black,bronze:k.bronze,...vs},tE={transparent:k.transparent,white:k.white,gray:k.gray,black:k.black,bronze:k.bronze,...vs},$s=e=>[k.cyan[e],k.blue[e],k.violet[e],k.grape[e],k.pink[e],k.green[e],k.teal[e],k.yellow[e],k.orange[e],k.red[e]],nE=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;var po=/Mac|iPod|iPhone|iPad/.test(navigator.platform),aE=/^Win/.test(navigator.platform),Ps=/\b(android)\b/i.test(navigator.userAgent),sE="netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,u6=navigator.userAgent.indexOf("Chrome")!==-1,dE=!u6&&navigator.userAgent.indexOf("Safari")!==-1,Ns=/iPad|iPhone/.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,cE=()=>navigator.brave?.isBrave?.name==="isBrave",lE=typeof window<"u"&&"ResizeObserver"in window,UE="Excalidraw",Fs=36,Bs=10,_s=8,fE=5,pE=1,uE=30,Pt=Math.PI/12,mE="red",uo={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},bE={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},EE={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"};var gE={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},et={TEST:"test",DEVELOPMENT:"development"},xE={SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper"},Ln="Xiaolai",Mn="Segoe UI Emoji",ye={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9},Un={[Ln]:100,[Mn]:1e3},mo=e=>{switch(e){case ye.Excalifont:return[Ln,Mn];default:return[Mn]}},Ze={LIGHT:"light",DARK:"dark"},Ne={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},bo=1,pt=20,Nt=ye.Excalifont,Vn="left",Eo="top";var mr=2,br=2*mr,m6=1e-5,hE=2*br-m6,yE="#ffffff",IE="#1e1e1e",wE="#a2f1a6";var go=20,xo=5,ho={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},H={text:"text/plain",html:"text/html",json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json","excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...ho},Os=[H.text,H.html,...Object.values(ho)],RE={png:"png",svg:"svg",clipboard:"clipboard"},We={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Hi=window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,TE=500,ME=300,LE=500;var DE=100,SE=.1,As=.1,Ks=30,vE=300;var yo="invert(93%) hue-rotate(180deg)",$E={addLibrary:"addLibrary"},PE={addLibrary:"addLibrary"},NE={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},FE=730,BE=1e3,_E=500,OE=1229,qn=2,Hs=[1,2,3],Ji=10,AE=1440,KE=4*1024*1024,re="http://www.w3.org/2000/svg";var Yi={excalidraw:2,excalidrawLibrary:2},Se=5,Js=.7,Ys=11,Xt={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},Ci={LEFT:"left",CENTER:"center",RIGHT:"right"},Cs=20,Io=.25,Vs=32,rt={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Vi={architect:0,artist:1,cartoonist:2},HE={thin:1,bold:2,extraBold:4},Ie={strokeColor:k.black,backgroundColor:k.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Vi.artist,opacity:100,locked:!1},b6="library",JE="search",qs={name:"default",defaultTab:b6},YE=new Set(["iframe","embeddable","image"]),fn={selection:"selection",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},CE={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Gs="Untitled",qi={generalStats:1,elementProperties:2},VE=1,Xs={sharp:"sharp",round:"round",elbow:"elbow"},ks=.3,Er="element",Zs=Symbol.for("__test__originalId__"),E6=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(E6||{});import{nanoid as K9}from"nanoid";var g6=Hs.includes(devicePixelRatio)?devicePixelRatio:1,ut=()=>({showWelcomeScreen:!1,theme:Ze.LIGHT,collaborators:new Map,currentChartType:"bar",currentItemBackgroundColor:Ie.backgroundColor,currentItemEndArrowhead:"arrow",currentItemFillStyle:Ie.fillStyle,currentItemFontFamily:Nt,currentItemFontSize:pt,currentItemOpacity:Ie.opacity,currentItemRoughness:Ie.roughness,currentItemStartArrowhead:null,currentItemStrokeColor:Ie.strokeColor,currentItemRoundness:"round",currentItemArrowType:Xs.round,currentItemStrokeStyle:Ie.strokeStyle,currentItemStrokeWidth:Ie.strokeWidth,currentItemTextAlign:Vn,currentHoveredFontFamily:null,cursorButton:"up",activeEmbeddable:null,newElement:null,editingTextElement:null,editingGroupId:null,editingLinearElement:null,activeTool:{type:"selection",customType:null,locked:Ie.locked,lastActiveTool:null},penMode:!1,penDetected:!1,errorMessage:null,exportBackground:!0,exportScale:g6,exportEmbedScene:!1,exportWithDarkMode:!1,fileHandle:null,gridSize:go,gridStep:xo,gridModeEnabled:!1,isBindingEnabled:!0,defaultSidebarDockedPreference:!1,isLoading:!1,isResizing:!1,isRotating:!1,lastPointerDownWith:"mouse",multiElement:null,name:null,contextMenu:null,openMenu:null,openPopup:null,openSidebar:null,openDialog:null,pasteDialog:{shown:!1,data:null},previousSelectedElementIds:{},resizingElement:null,scrolledOutside:!1,scrollX:0,scrollY:0,selectedElementIds:{},hoveredElementIds:{},selectedGroupIds:{},selectedElementsAreBeingDragged:!1,selectionElement:null,shouldCacheIgnoreZoom:!1,stats:{open:!1,panels:qi.generalStats|qi.elementProperties},startBoundElement:null,suggestedBindings:[],frameRendering:{enabled:!0,clip:!0,name:!0,outline:!0},frameToHighlight:null,editingFrame:null,elementsToHighlight:null,toast:null,viewBackgroundColor:k.white,zenModeEnabled:!1,zoom:{value:1},viewModeEnabled:!1,pendingImageElementId:null,showHyperlinkPopup:!1,selectedLinearElement:null,snapLines:[],originSnapOffset:{x:0,y:0},objectsSnapModeEnabled:!1,userToFollow:null,followedBy:new Set,isCropping:!1,croppingElementId:null,searchMatches:[]}),x6=(e=>e)({showWelcomeScreen:{browser:!0,export:!1,server:!1},theme:{browser:!0,export:!1,server:!1},collaborators:{browser:!1,export:!1,server:!1},currentChartType:{browser:!0,export:!1,server:!1},currentItemBackgroundColor:{browser:!0,export:!1,server:!1},currentItemEndArrowhead:{browser:!0,export:!1,server:!1},currentItemFillStyle:{browser:!0,export:!1,server:!1},currentItemFontFamily:{browser:!0,export:!1,server:!1},currentItemFontSize:{browser:!0,export:!1,server:!1},currentItemRoundness:{browser:!0,export:!1,server:!1},currentItemArrowType:{browser:!0,export:!1,server:!1},currentItemOpacity:{browser:!0,export:!1,server:!1},currentItemRoughness:{browser:!0,export:!1,server:!1},currentItemStartArrowhead:{browser:!0,export:!1,server:!1},currentItemStrokeColor:{browser:!0,export:!1,server:!1},currentItemStrokeStyle:{browser:!0,export:!1,server:!1},currentItemStrokeWidth:{browser:!0,export:!1,server:!1},currentItemTextAlign:{browser:!0,export:!1,server:!1},currentHoveredFontFamily:{browser:!1,export:!1,server:!1},cursorButton:{browser:!0,export:!1,server:!1},activeEmbeddable:{browser:!1,export:!1,server:!1},newElement:{browser:!1,export:!1,server:!1},editingTextElement:{browser:!1,export:!1,server:!1},editingGroupId:{browser:!0,export:!1,server:!1},editingLinearElement:{browser:!1,export:!1,server:!1},activeTool:{browser:!0,export:!1,server:!1},penMode:{browser:!0,export:!1,server:!1},penDetected:{browser:!0,export:!1,server:!1},errorMessage:{browser:!1,export:!1,server:!1},exportBackground:{browser:!0,export:!1,server:!1},exportEmbedScene:{browser:!0,export:!1,server:!1},exportScale:{browser:!0,export:!1,server:!1},exportWithDarkMode:{browser:!0,export:!1,server:!1},fileHandle:{browser:!1,export:!1,server:!1},gridSize:{browser:!0,export:!0,server:!0},gridStep:{browser:!0,export:!0,server:!0},gridModeEnabled:{browser:!0,export:!0,server:!0},height:{browser:!1,export:!1,server:!1},isBindingEnabled:{browser:!1,export:!1,server:!1},defaultSidebarDockedPreference:{browser:!0,export:!1,server:!1},isLoading:{browser:!1,export:!1,server:!1},isResizing:{browser:!1,export:!1,server:!1},isRotating:{browser:!1,export:!1,server:!1},lastPointerDownWith:{browser:!0,export:!1,server:!1},multiElement:{browser:!1,export:!1,server:!1},name:{browser:!0,export:!1,server:!1},offsetLeft:{browser:!1,export:!1,server:!1},offsetTop:{browser:!1,export:!1,server:!1},contextMenu:{browser:!1,export:!1,server:!1},openMenu:{browser:!0,export:!1,server:!1},openPopup:{browser:!1,export:!1,server:!1},openSidebar:{browser:!0,export:!1,server:!1},openDialog:{browser:!1,export:!1,server:!1},pasteDialog:{browser:!1,export:!1,server:!1},previousSelectedElementIds:{browser:!0,export:!1,server:!1},resizingElement:{browser:!1,export:!1,server:!1},scrolledOutside:{browser:!0,export:!1,server:!1},scrollX:{browser:!0,export:!1,server:!1},scrollY:{browser:!0,export:!1,server:!1},selectedElementIds:{browser:!0,export:!1,server:!1},hoveredElementIds:{browser:!1,export:!1,server:!1},selectedGroupIds:{browser:!0,export:!1,server:!1},selectedElementsAreBeingDragged:{browser:!1,export:!1,server:!1},selectionElement:{browser:!1,export:!1,server:!1},shouldCacheIgnoreZoom:{browser:!0,export:!1,server:!1},stats:{browser:!0,export:!1,server:!1},startBoundElement:{browser:!1,export:!1,server:!1},suggestedBindings:{browser:!1,export:!1,server:!1},frameRendering:{browser:!1,export:!1,server:!1},frameToHighlight:{browser:!1,export:!1,server:!1},editingFrame:{browser:!1,export:!1,server:!1},elementsToHighlight:{browser:!1,export:!1,server:!1},toast:{browser:!1,export:!1,server:!1},viewBackgroundColor:{browser:!0,export:!0,server:!0},width:{browser:!1,export:!1,server:!1},zenModeEnabled:{browser:!0,export:!1,server:!1},zoom:{browser:!0,export:!1,server:!1},viewModeEnabled:{browser:!1,export:!1,server:!1},pendingImageElementId:{browser:!1,export:!1,server:!1},showHyperlinkPopup:{browser:!1,export:!1,server:!1},selectedLinearElement:{browser:!0,export:!1,server:!1},snapLines:{browser:!1,export:!1,server:!1},originSnapOffset:{browser:!1,export:!1,server:!1},objectsSnapModeEnabled:{browser:!0,export:!1,server:!1},userToFollow:{browser:!1,export:!1,server:!1},followedBy:{browser:!1,export:!1,server:!1},isCropping:{browser:!1,export:!1,server:!1},croppingElementId:{browser:!1,export:!1,server:!1},searchMatches:{browser:!1,export:!1,server:!1}}),Ws=(e,t)=>{let n={};for(let r of Object.keys(e))if(x6[r]?.[t]){let i=e[r];n[r]=i}return n};var wo=e=>Ws(e,"export"),zs=e=>Ws(e,"server"),Qs=({activeTool:e})=>e.type==="eraser",js=({activeTool:e})=>e.type==="hand";import n9 from"lodash.throttle";import L6 from"es6-promise-pool";var se=(e,t,n)=>Math.min(Math.max(e,t),n),ed=(e,t,n="round")=>{let r=Math.pow(10,t);return Math[n]((e+Number.EPSILON)*r)/r},zE=(e,t,n="round")=>{let r=1/t;return Math[n](e*r)/r},gr=(e,t)=>(e+t)/2,Ro=e=>typeof e=="number"&&Number.isFinite(e),Gi=(e,t,n=1e-4)=>Math.abs(e-t)<n;var xr=e=>e<0?e+2*Math.PI:e>=2*Math.PI?e-2*Math.PI:e;function hr(e){return e*Math.PI/180}function td(e){return e*180/Math.PI}function nd(e){return Math.abs(Math.sin(2*e))<1e-4}function ve(e,t,n=0,r=0){return[e-n,t-r]}function O(e,t=[0,0]){return ve(e[0]-t[0],e[1]-t[1])}function Me(e,t){return e[0]*t[1]-t[0]*e[1]}function h6(e,t){return e[0]*t[0]+e[1]*t[1]}function at(e,t){return[e[0]+t[0],e[1]+t[1]]}function To(e,t){return[e[0]-t[0],e[1]-t[1]]}function ue(e,t){return ve(e[0]*t,e[1]*t)}function y6(e){return e[0]*e[0]+e[1]*e[1]}function I6(e){return Math.sqrt(y6(e))}var He=e=>{let t=I6(e);return t===0?ve(0,0):ve(e[0]/t,e[1]/t)};function u(e,t){return[e,t]}function yr(e){return e.length===2?u(e[0],e[1]):void 0}function V(e,t=u(0,0)){return u(t[0]+e[0],t[1]+e[1])}function Mo(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&!isNaN(e[0])&&typeof e[1]=="number"&&!isNaN(e[1])}function Je(e,t){let n=Math.abs;return n(e[0]-t[0])<1e-4&&n(e[1]-t[1])<1e-4}function T([e,t],[n,r],o){return u((e-n)*Math.cos(o)-(t-r)*Math.sin(o)+n,(e-n)*Math.sin(o)+(t-r)*Math.cos(o)+r)}function pn(e,t=[0,0]){return u(e[0]+t[0],e[1]+t[1])}function kt(e,t){return u((e[0]+t[0])/2,(e[1]+t[1])/2)}function ie(e,t){return Math.hypot(t[0]-e[0],t[1]-e[1])}function Ir(e,t){let n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}var bt=(e,t,n)=>pn(t,ue(O(e,t),n)),Lo=(e,t,n)=>t[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1]);function wr(e,t){return[e,t]}function rd(e,t){let n=e[1][1]-e[0][1],r=e[0][0]-e[1][0],o=t[1][1]-t[0][1],i=t[0][0]-t[1][0],a=n*i-o*r;if(a!==0){let s=n*e[0][0]+r*e[0][1],d=o*t[0][0]+i*t[0][1];return u((s*i-d*r)/a,(n*d-o*s)/a)}return null}function A(e,t){return[e,t]}var Ft=(e,t,n=1e-4)=>{let r=Do(e,t);return r===0?!0:r<n},Do=(e,t)=>{let[n,r]=e,[[o,i],[a,s]]=t,d=n-o,c=r-i,l=a-o,U=s-i,p=d*l+c*U,m=l*l+U*U,b=-1;m!==0&&(b=p/m);let E,g;b<0?(E=o,g=i):b>1?(E=a,g=s):(E=o+b*l,g=i+b*U);let y=n-E,x=r-g;return Math.sqrt(y*y+x*x)};function un(e,t){let n=rd(wr(e[0],e[1]),wr(t[0],t[1]));return!n||!Ft(n,t)||!Ft(n,e)?null:n}function Rr(e,t){return[e,t]}function od(e,t){return[A(e[0],u(e[1][0],e[0][1])),A(u(e[1][0],e[0][1]),e[1]),A(e[1],u(e[0][0],e[1][1])),A(u(e[0][0],e[1][1]),e[0])].map(n=>un(t,n)).filter(n=>!!n)}function Et(e,t,n,r){return[e,t,n,r]}function id(e,t,n,r=1e-6){return[(e(t+r,n)-e(t-r,n))/(2*r),(e(t,n+r)-e(t,n-r))/(2*r)]}function w6(e,t,n,r=.001,o=10){let i=1/0,a=0;for(;i>=r;){if(a>=o)return null;let s=e(t,n),d=[id((E,g)=>e(E,g)[0],t,n),id((E,g)=>e(E,g)[1],t,n)],c=[[-s[0]],[-s[1]]],l=d[0][0]*d[1][1]-d[0][1]*d[1][0];if(l===0)return null;let U=[[d[1][1]/l,-d[0][1]/l],[-d[1][0]/l,d[0][0]/l]],p=[[U[0][0]*c[0][0]+U[0][1]*c[1][0]],[U[1][0]*c[0][0]+U[1][1]*c[1][0]]];t=t+p[0][0],n=n+p[1][0];let[m,b]=e(t,n);i=Math.max(Math.abs(m),Math.abs(b)),a+=1}return[t,n]}var Tr=(e,t)=>u((1-t)**3*e[0][0]+3*(1-t)**2*t*e[1][0]+3*(1-t)*t**2*e[2][0]+t**3*e[3][0],(1-t)**3*e[0][1]+3*(1-t)**2*t*e[1][1]+3*(1-t)*t**2*e[2][1]+t**3*e[3][1]);function Xi(e,t){let n=T6(e);if(od(Rr(u(n[0],n[1]),u(n[2],n[3])),t).length===0)return[];let r=s=>u(t[0][0]+s*(t[1][0]-t[0][0]),t[0][1]+s*(t[1][1]-t[0][1])),o=[[.5,0],[.2,0],[.8,0]],i=([s,d])=>{let c=w6((p,m)=>{let b=Tr(e,p),E=r(m);return[b[0]-E[0],b[1]-E[1]]},s,d);if(!c)return null;let[l,U]=c;return l<0||l>1||U<0||U>1?null:Tr(e,l)},a=i(o[0]);return a?[a]:(a=i(o[1]),a?[a]:(a=i(o[2]),a?[a]:[]))}function R6(e,t,n=.001){let r=(c,l,U,p=n)=>{let m=c,b=l,E;for(;b-m>p;)E=(b+m)/2,U(E-p)<U(E+p)?b=E:m=E;return E},i=0;for(let c=1/0,l=0;l<30;l++){let U=ie(t,Tr(e,l/30));U<c&&(c=U,i=l)}let a=Math.max((i-1)/30,0),s=Math.min((i+1)/30,1),d=r(a,s,c=>ie(t,Tr(e,c)));return d?Tr(e,d):null}function ki(e,t){let n=R6(e,t);return n?ie(t,n):0}function T6(e){let[t,n,r,o]=e,i=[t[0],n[0],r[0],o[0]],a=[t[1],n[1],r[1],o[1]];return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]}function Zi(...e){return sd(e)}function Gn(e){return sd(e)}var Wi=(e,t)=>{let n=e[0],r=e[1],o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){let s=t[i][0],d=t[i][1],c=t[a][0],l=t[a][1];(d>r&&l<=r||d<=r&&l>r)&&n<(c-s)*(r-d)/(l-d)+s&&(o=!o)}return o},ad=(e,t,n=1e-4)=>{let r=!1;for(let o=0,i=t.length-1;o<i;o++)if(Ft(e,A(t[o],t[o+1]),n)){r=!0;break}return r};function sd(e){return M6(e)?e:[...e,e[0]]}function M6(e){return Je(e[0],e[e.length-1])}function _e(e,t){return Ge([e,t])}var Mr=([e,t],[n,r])=>e<=n?t>=n:e>=n?r>=e:!1,Lr=([e,t],[n,r])=>{let o=Math.max(e,n),i=Math.min(t,r);return o<=i?Ge([o,i]):null},Dr=(e,[t,n])=>e>=t&&e<=n;function Dn([e,t,n],r){let o=(l,U,p)=>(l[0]-p[0])*(U[1]-p[1])-(U[0]-p[0])*(l[1]-p[1]),i=o(r,e,t),a=o(r,t,n),s=o(r,n,e),d=i<0||a<0||s<0,c=i>0||a>0||s>0;return!(d&&c)}var dd=null;var rg=()=>{if(dd)return dd;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),o=`${e.getHours()}`.padStart(2,"0"),i=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${o}${i}`},og=e=>e.charAt(0).toUpperCase()+e.slice(1),ig=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),D6=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,ag=e=>D6(e)||e instanceof Element&&!!e.closest("label, button"),sg=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"),zi=({fontFamily:e})=>{for(let[t,n]of Object.entries(ye))if(n===e)return`${t}${mo(n).map(r=>`, ${r}`).join("")}`;return Mn},be=({fontSize:e,fontFamily:t})=>`${e}px ${zi({fontFamily:t})}`,So=(e,t)=>{let n=0,r=null,o=(...i)=>{r=i,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...i)},t)};return o.flush=()=>{if(clearTimeout(n),r){let i=r;r=null,e(...i)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Ud=(e,t)=>{let n=null,r=null,o=null,i=s=>{n=window.requestAnimationFrame(()=>{n=null,e(...s),r=null,o&&(r=o,o=null,i(r))})},a=(...s)=>{if(M.MODE==="test"){e(...s);return}r=s,n===null?i(r):t?.trailing&&(o=s)};return a.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...o||r),r=o=null)},a.cancel=()=>{r=o=null,n!==null&&(cancelAnimationFrame(n),n=null)},a},fd=e=>1-Math.pow(1-e,4),cd=(e,t,n)=>(t-e)*fd(n)+e,dg=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:i,onEnd:a,onCancel:s})=>{let d=!1,c=0,l;function U(p){if(d)return;l===void 0&&(l=p,i?.());let m=Math.min(p-l,r),b=fd(m/r),E={};if(Object.keys(e).forEach(g=>{let y=g,x=(t[y]-e[y])*b+e[y];E[y]=x}),n(E),m<r){let g=m/r,y={};Object.keys(e).forEach(x=>{let h=x,w=e[h],I=t[h],v;v=o?o(w,I,g,h):cd(w,I,g),v==null&&(v=cd(w,I,g)),y[h]=v}),n(y),c=window.requestAnimationFrame(U)}else n(t),a?.()}return c=window.requestAnimationFrame(U),()=>{s?.(),d=!0,window.cancelAnimationFrame(c)}},cg=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o};var st=(e,t)=>Math.abs(e-t),vr=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked};var lg=e=>(e=e.replace(/\bAlt\b/i,"Alt").replace(/\bShift\b/i,"Shift").replace(/\b(Enter|Return)\b/i,"Enter"),po?e.replace(/\bCtrlOrCmd\b/gi,"Cmd").replace(/\bAlt\b/i,"Option"):e.replace(/\bCtrlOrCmd\b/gi,"Ctrl")),Sn=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:i,scrollY:a})=>{let s=(e-r)/n.value-i,d=(t-o)/n.value-a;return{x:s,y:d}},Qi=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:i,scrollY:a})=>{let s=(e+i)*n.value+r,d=(t+a)*n.value+o;return{x:s,y:d}},Ug=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),S6="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF",v6="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",$6=new RegExp(`^[^${S6}]*[${v6}]`),vo=e=>$6.test(e),Zt=e=>{let[t,n]=e;return{x:t,y:n}},fg=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},pg=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},ug=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},Wt=e=>{let t=e.length===5&&e.substr(4,1)==="0",n=e.length===9&&e.substr(7,2)==="00";return t||n||e===k.transparent},$o=e=>e.fillStyle!=="solid"||Wt(e.backgroundColor),mg=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n};var bg=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},Eg=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},gg=e=>{e.preventDefault(),e.returnValue=""},pd=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),zt=()=>_t()?1:Date.now(),te=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),xg=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),Bt=(e,t)=>e.reduce((n,r)=>(n[t?t(r):String(r)]=r,n),{}),hg=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let i=t[r-1];if(o.prev=i,i.next=o,r===e.length-1){let a=t[0];o.next=a,a.prev=o}}return t.push(o),t},[]),_t=()=>M.MODE==="test",yg=()=>M.MODE==="development",ud=()=>typeof process<"u"&&!0,Ig=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),wg=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<"u"){if(e[r]===o&&(typeof o!="object"||o===null))continue;n=!0}}return n?{...e,...t}:e};var Rg=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}};var Po=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Tg=e=>{let t=e?.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},ld=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,Qt=(e,t,n,r=!1)=>{let o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(let a of n)if(!(e[a]===t[a]||ld(e[a],t[a])))return r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),!1;return!0}return o.every(a=>{let s=n?.[a],d=s?s(e[a],t[a]):e[a]===t[a]||ld(e[a],t[a]);return!d&&r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),d})},Mg=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},vn=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Oe(e,t){if(!e)throw new Error(t)}var Lg=e=>{let t,n,r=function(o){let i=Object.entries(o);if(t){let s=!0;for(let[d,c]of i)if(t.get(d)!==c){s=!1;break}if(s)return n}let a=e(o);return t=new Map(i),n=a,a};return r.clear=()=>{t=void 0,n=void 0},r},md=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Dg=e=>JSON.parse(JSON.stringify(e)),Sg=(e,t)=>Qt(e,t)?e:t;function vg(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function $g(e,t=!0){let n=e.length;if(n<4)return"";let r=e[0],o=e[1],i=e[2],a=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${gr(o[0],i[0]).toFixed(2)},${gr(o[1],i[1]).toFixed(2)} T`;for(let s=2,d=n-1;s<d;s++)r=e[s],o=e[s+1],a+=`${gr(r[0],o[0]).toFixed(2)},${gr(r[1],o[1]).toFixed(2)} `;return t&&(a+="Z"),a}var bd=e=>e.replace(/\r?\n|\r/g,`
2
2
  `),Ge=e=>e,mn=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ed=(...e)=>Math.max(...e.map(t=>t?1:0))>0;var Sr=class{constructor(t,n){$(this,"pool");$(this,"entries",{});this.pool=new L6(t,n)}all(){let t=n=>{if(n.data.result){let[r,o]=n.data.result;this.entries[r]=o}};return this.pool.addEventListener("fulfilled",t),this.pool.start().then(()=>(setTimeout(()=>{this.pool.removeEventListener("fulfilled",t)}),Object.values(this.entries)))}},Xn=e=>e.replace(/"/g,"&quot;"),Pg=e=>Array.isArray(e)?e:[e];var Ot=e=>!!e&&e.type==="image"&&!!e.fileId,Ye=e=>!!e&&e.type==="image",No=e=>!!e&&e.type==="embeddable",Fo=e=>!!e&&e.type==="iframe",gt=e=>!!e&&(e.type==="iframe"||e.type==="embeddable"),X=e=>e!=null&&e.type==="text",gd=e=>e!=null&&e.type==="frame",xd=e=>e!=null&&e.type==="magicframe",de=e=>e!=null&&(e.type==="frame"||e.type==="magicframe"),Ce=e=>e!=null&&P6(e.type),P6=e=>e==="freedraw",ae=e=>e!=null&&ji(e.type),ee=e=>e!=null&&e.type==="arrow",W=e=>ee(e)&&e.elbowed,ji=e=>e==="arrow"||e==="line",$r=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&N6(e.type),N6=e=>e==="arrow",xt=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type==="rectangle"||e.type==="diamond"||e.type==="ellipse"||e.type==="image"||e.type==="iframe"||e.type==="embeddable"||e.type==="frame"||e.type==="magicframe"||e.type==="text"&&!e.containerId),hd=e=>e!=null&&(e.type==="rectangle"||e.type==="diamond"||e.type==="image"||e.type==="iframe"||e.type==="embeddable"||e.type==="frame"||e.type==="magicframe"||e.type==="text"&&!e.containerId);var F6=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type==="rectangle"||e.type==="diamond"||e.type==="ellipse"||ee(e)),ea=e=>{let t=e?.type;if(!t)return!1;switch(t){case"text":case"diamond":case"rectangle":case"iframe":case"embeddable":case"ellipse":case"arrow":case"freedraw":case"line":case"frame":case"magicframe":case"image":case"selection":return!0;default:return vn(t,null),!1}},Ag=e=>e.type==="rectangle"||e.type==="ellipse"||e.type==="diamond",bn=e=>F6(e)&&!!e.boundElements?.some(({type:t})=>t==="text"),Fe=e=>e!==null&&"containerId"in e&&e.containerId!==null&&X(e),Bo=e=>e==="rectangle"||e==="embeddable"||e==="iframe"||e==="image",yd=e=>e==="line"||e==="arrow"||e==="diamond",Kg=(e,t)=>!!((e===rt.ADAPTIVE_RADIUS||e===rt.LEGACY)&&Bo(t.type)||e===rt.PROPORTIONAL_RADIUS&&yd(t.type)),Hg=e=>yd(e.type)?{type:rt.PROPORTIONAL_RADIUS}:Bo(e.type)?{type:rt.ADAPTIVE_RADIUS}:null,$n=e=>Object.hasOwn(e,"fixedPoint")&&e.fixedPoint!=null;var ht=(e,t,n)=>{let r=e.split(`
3
3
  `).map(s=>s||" ").join(`
4
4
  `),o=parseFloat(t),i=B6(r,o,n);return{width:Md(r,t),height:i}},Id="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toLocaleUpperCase(),wd=(e,t)=>{let n=_6(e);return n===0?ht(Id.split("").join(`
@@ -31,4 +31,4 @@ import{a as M}from"./chunk-YCRRKGOW.js";import{d as $}from"./chunk-SRAX5OIU.js";
31
31
  `,S=x.ownerDocument.createElementNS(re,"style");if(S.classList.add("style-fonts"),S.appendChild(document.createTextNode(`${L}${v.join(L)}`)),h.appendChild(S),t.exportBackground&&s){let F=x.ownerDocument.createElementNS(re,"rect");F.setAttribute("x","0"),F.setAttribute("y","0"),F.setAttribute("width",`${b}`),F.setAttribute("height",`${E}`),F.setAttribute("fill",s),x.appendChild(F)}let B=dp.svg(x),P=r?.renderEmbeddables??!1;return C2(U,Ge(te(U)),B,x,n||{},{offsetX:g,offsetY:y,isExporting:!0,exportWithDarkMode:a,renderEmbeddables:P,frameRendering:o,canvasBackgroundColor:s,embedsValidationStatus:P?new Map(U.filter(F=>de(F)).map(F=>[F.id,!0])):new Map,reuseImages:r?.reuseImages??!0}),x},I7=({payload:e,metadataElement:t})=>{let n=Mi(JSON.stringify(Di({text:e})),!0);t.appendChild(to(`payload-type:${H.excalidraw}`)),t.appendChild(to("payload-version:2")),t.appendChild(to("payload-start")),t.appendChild(document.createTextNode(n)),t.appendChild(to("payload-end"))},pp=({svg:e})=>{if(e.includes(`payload-type:${H.excalidraw}`)){let t=e.match(/<!-- payload-start -->\s*(.+?)\s*<!-- payload-end -->/);if(!t)throw new Error("INVALID");let o=(e.match(/<!-- payload-version:(\d+) -->/)?.[1]||"1")!=="1";try{let i=Li(t[1],o),a=JSON.parse(i);if(!("encoded"in a)){if("type"in a&&a.type===We.excalidraw)return i;throw new Error("FAILED")}return Si(a)}catch(i){throw console.error(i),new Error("FAILED")}}throw new Error("INVALID")},os=(e,t)=>{let[n,r,o,i]=Pe(e),a=st(n,o)+t*2,s=st(r,i)+t*2;return[n,r,a,s]},RA=(e,t,n)=>{let[,,r,o]=os(e,t).map(i=>Math.trunc(i*n));return[r,o]};var w7={selection:!0,text:!0,rectangle:!0,diamond:!0,ellipse:!0,line:!0,image:!0,arrow:!0,freedraw:!0,eraser:!1,custom:!0,frame:!0,embeddable:!0,hand:!0,laser:!1,magicframe:!1},R7=e=>Object.keys(ye).includes(e)?ye[e]:Nt,cr=(e,t)=>{if(!t)return null;let n=t.focus||0;return W(e)?$n(t)?{...t,focus:n,fixedPoint:Jr(t.fixedPoint??[0,0])}:null:{...t,focus:n}},In=(e,t)=>{let n={type:t.type||e.type,version:e.version||1,versionNonce:e.versionNonce??0,index:e.index??null,isDeleted:e.isDeleted??!1,id:e.id||Lt(),fillStyle:e.fillStyle||Ie.fillStyle,strokeWidth:e.strokeWidth||Ie.strokeWidth,strokeStyle:e.strokeStyle??Ie.strokeStyle,roughness:e.roughness??Ie.roughness,opacity:e.opacity==null?Ie.opacity:e.opacity,angle:e.angle||0,x:t.x??e.x??0,y:t.y??e.y??0,strokeColor:e.strokeColor||Ie.strokeColor,backgroundColor:e.backgroundColor||Ie.backgroundColor,width:e.width||0,height:e.height||0,seed:e.seed??1,groupIds:e.groupIds??[],frameId:e.frameId??null,roundness:e.roundness?e.roundness:e.strokeSharpness==="round"?{type:Bo(e.type)?rt.LEGACY:rt.PROPORTIONAL_RADIUS}:null,boundElements:e.boundElementIds?e.boundElementIds.map(r=>({type:"arrow",id:r})):e.boundElements??[],updated:e.updated??zt(),link:e.link?dn(e.link):null,locked:e.locked??!1};return("customData"in e||"customData"in t)&&(n.customData="customData"in t?t.customData:e.customData),(e.x<-1e6||e.x>1e6||e.y<-1e6||e.y>1e6||e.width<-1e6||e.width>1e6||e.height<-1e6||e.height>1e6)&&console.error("Restore element with properties size or position is too large",{element:e}),{...e,...n,...ss(n),...t}},T7=e=>{switch(e={...e},(e.x<-1e6||e.x>1e6||e.y<-1e6||e.y>1e6||e.width<-1e6||e.width>1e6||e.height<-1e6||e.height>1e6)&&console.error("Restore element size or position is too large",{element:e}),e.type){case"text":delete e.rawText;let t=e.fontSize,n=e.fontFamily;if("font"in e){let[l,U]=e.font.split(" ");t=parseFloat(l),n=R7(U)}let r=typeof e.text=="string"&&e.text||"",o=e.lineHeight||(e.height?Rd(e):Go(e.fontFamily));return e=In(e,{fontSize:t,fontFamily:n,text:r,textAlign:e.textAlign||Vn,verticalAlign:e.verticalAlign||Eo,containerId:e.containerId??null,originalText:e.originalText||r,autoResize:e.autoResize??!0,lineHeight:o}),!r&&!e.isDeleted&&(e={...e,originalText:r,isDeleted:!0},e=Xr(e)),e;case"freedraw":return In(e,{points:e.points,lastCommittedPoint:null,simulatePressure:e.simulatePressure,pressures:e.pressures});case"image":return In(e,{status:e.status||"pending",fileId:e.fileId,scale:e.scale||[1,1],crop:e.crop??null});case"line":case"draw":let{startArrowhead:i=null,endArrowhead:a=null}=e,s=e.x,d=e.y,c=!Array.isArray(e.points)||e.points.length<2?[u(0,0),u(e.width,e.height)]:e.points;return(c[0][0]!==0||c[0][1]!==0)&&({points:c,x:s,y:d}=z.getNormalizedPoints(e)),In(e,{type:e.type==="draw"?"line":e.type,startBinding:cr(e,e.startBinding),endBinding:cr(e,e.endBinding),lastCommittedPoint:null,startArrowhead:i,endArrowhead:a,points:c,x:s,y:d,...xn(c)});case"arrow":{let{startArrowhead:l=null,endArrowhead:U="arrow"}=e,p=e.x,m=e.y,b=!Array.isArray(e.points)||e.points.length<2?[u(0,0),u(e.width,e.height)]:e.points;(b[0][0]!==0||b[0][1]!==0)&&({points:b,x:p,y:m}=z.getNormalizedPoints(e));let E={type:e.type,startBinding:cr(e,e.startBinding),endBinding:cr(e,e.endBinding),lastCommittedPoint:null,startArrowhead:l,endArrowhead:U,points:b,x:p,y:m,elbowed:e.elbowed,...xn(b)};return W(e)?In(e,{...E,elbowed:!0,startBinding:cr(e,e.startBinding),endBinding:cr(e,e.endBinding),fixedSegments:e.fixedSegments,startIsSpecial:e.startIsSpecial,endIsSpecial:e.endIsSpecial}):In(e,E)}case"ellipse":case"rectangle":case"diamond":case"iframe":case"embeddable":return In(e,{});case"magicframe":case"frame":return In(e,{name:e.name??null})}return null},M7=(e,t)=>{if(e.boundElements){let n=e.boundElements.slice(),r=new Set;e.boundElements=n.reduce((o,i)=>{let a=t.get(i.id);if(a&&!r.has(i.id)){if(r.add(i.id),a.isDeleted)return o;o.push(i),X(a)&&!a.containerId&&(a.containerId=e.id)}return o},[])}},L7=(e,t)=>{let n=e.containerId?t.get(e.containerId):null;if(!n){e.containerId=null;return}if(!e.isDeleted&&n.boundElements&&!n.boundElements.find(r=>r.id===e.id)){let r=(n.boundElements||(n.boundElements=[])).slice();r.push({type:"text",id:e.id}),n.boundElements=r}},D7=(e,t)=>{e.frameId&&(t.get(e.frameId)||(e.frameId=null))},gp=(e,t,n)=>{let r=new Set,o=t?te(t):null,i=An((e||[]).reduce((s,d)=>{if(d.type!=="selection"&&!ro(d)){let c=T7(d);if(c){let l=o?.get(d.id);l&&l.version>c.version&&(c=Xr(c,l.version)),r.has(c.id)&&(c={...c,id:Lt()}),r.add(c.id),s.push(c)}}return s},[]));if(!n?.repairBindings)return i;let a=te(i);for(let s of i)s.frameId&&D7(s,a),X(s)&&s.containerId?L7(s,a):s.boundElements&&M7(s,a),n.refreshDimensions&&X(s)&&Object.assign(s,Va(s,qe(s,a),a)),ae(s)&&(s.startBinding&&(!a.has(s.startBinding.elementId)||!ee(s))&&(s.startBinding=null),s.endBinding&&(!a.has(s.endBinding.elementId)||!ee(s))&&(s.endBinding=null));return i},S7=(e,t,n)=>{let r=t[e];return r!==void 0?r:n[e]},bp={isSidebarDocked:(e,t)=>["defaultSidebarDockedPreference",e.isSidebarDocked??S7("defaultSidebarDockedPreference",e,t)]},v7=(e,t)=>{e=e||{};let n=ut(),r={};for(let o of Object.keys(bp))if(o in e){let[i,a]=bp[o](e,n);r[i]=a}for(let[o,i]of Object.entries(n)){let a=e[o],s=t?t[o]:void 0;r[o]=a!==void 0?a:s!==void 0?s:i}return{...r,cursorButton:t?.cursorButton||"up",penDetected:t?.penDetected??(e.penMode?e.penDetected??!1:!1),activeTool:{...vr(n,r.activeTool.type&&w7[r.activeTool.type]?r.activeTool:{type:"selection"}),lastActiveTool:null,locked:r.activeTool.locked??!1},zoom:{value:Fa(Ro(e.zoom)?e.zoom:e.zoom?.value??n.zoom.value)},openSidebar:typeof e.openSidebar=="string"?{name:qs.name}:r.openSidebar,gridSize:Ba(Ro(e.gridSize)?e.gridSize:go),gridStep:_a(Ro(e.gridStep)?e.gridStep:xo),editingFrame:null}},no=(e,t,n,r)=>({elements:gp(e?.elements,n,r),appState:v7(e?.appState,t||null),files:e?.files||{}}),Ep=e=>{let t=gp(ds(e.elements),null);return t.length?{...e,elements:t}:null},xp=(e=[],t)=>{let n=[];for(let r of e)if(Array.isArray(r)){let o=Ep({status:t,elements:r,id:Lt(),created:Date.now()});o&&n.push(o)}else{let o=r,i=Ep({...o,id:o.id||Lt(),status:o.status||t,created:o.created||Date.now()});i&&n.push(i)}return n};var vt=32,Ee=12,wn=256,yp=50,Kn="NOT_SPREADSHEET",lr="VALID_SPREADSHEET",oo=e=>{let t=/^([-+]?)[$€£¥₩]?([-+]?)([\d.,]+)[%]?$/.exec(e);return t?parseFloat(`${(t[1]||t[2])+t[3]}`.replace(/,/g,"")):null},cs=(e,t)=>e.slice(1).every(n=>oo(n[t])!==null),hp=e=>{let t=e[0].length;if(t>2)return{type:Kn,reason:"More than 2 columns"};if(t===1){if(!cs(e,0))return{type:Kn,reason:"Value is not numeric"};let d=oo(e[0][0])===null,c=(d?e.slice(1):e).map(l=>oo(l[0]));return c.length<2?{type:Kn,reason:"Less than two rows"}:{type:lr,spreadsheet:{title:d?e[0][0]:null,labels:null,values:c}}}let n=cs(e,0),r=cs(e,1);if(!n&&!r)return{type:Kn,reason:"Value is not numeric"};let[o,i]=r?[0,1]:[1,0],a=oo(e[0][i])===null,s=a?e.slice(1):e;return s.length<2?{type:Kn,reason:"Less than 2 rows"}:{type:lr,spreadsheet:{title:a?e[0][i]:null,labels:s.map(d=>d[o]),values:s.map(d=>oo(d[i]))}}},$7=e=>{let t=[];for(let n=0;n<e[0].length;n++){let r=[];for(let o=0;o<e.length;o++)r.push(e[o][n]);t.push(r)}return t},Ip=e=>{let t=e.trim().split(`
32
32
  `).map(i=>i.trim().split(" "));if(t.length&&t[0].length!==2&&(t=e.trim().split(`
33
33
  `).map(i=>i.trim().split(","))),t.length===0)return{type:Kn,reason:"No values"};let n=t[0].length;if(!t.every(i=>i.length===n))return{type:Kn,reason:"All rows don't have same number of columns"};let o=hp(t);if(o.type!==lr){let i=hp($7(t));if(i.type===lr)return i}return o},vi=$s(Ss),ct={fillStyle:"hachure",fontFamily:Nt,fontSize:pt,opacity:100,roughness:1,strokeColor:k.black,roundness:null,strokeStyle:"solid",strokeWidth:1,verticalAlign:Xt.MIDDLE,locked:!1},wp=e=>{let t=(vt+Ee)*e.values.length+Ee,n=wn+Ee*2;return{chartWidth:t,chartHeight:n}},P7=(e,t,n,r,o)=>e.labels?.map((i,a)=>Vt({groupIds:[r],backgroundColor:o,...ct,text:i.length>8?`${i.slice(0,5)}...`:i,x:t+a*(vt+Ee)+Ee*2,y:n+Ee/2,width:vt,angle:5.87,fontSize:16,textAlign:"center",verticalAlign:"top"}))||[],N7=(e,t,n,r,o)=>{let i=Vt({groupIds:[r],backgroundColor:o,...ct,x:t-Ee,y:n-Ee,text:"0",textAlign:"right"}),a=Vt({groupIds:[r],backgroundColor:o,...ct,x:t-Ee,y:n-wn-i.height/2,text:Math.max(...e.values).toLocaleString(),textAlign:"right"});return[i,a]},F7=(e,t,n,r,o)=>{let{chartWidth:i,chartHeight:a}=wp(e),s=On({backgroundColor:o,groupIds:[r],...ct,type:"line",x:t,y:n,width:i,points:[u(0,0),u(i,0)]}),d=On({backgroundColor:o,groupIds:[r],...ct,type:"line",x:t,y:n,height:a,points:[u(0,0),u(0,-a)]}),c=On({backgroundColor:o,groupIds:[r],...ct,type:"line",x:t,y:n-wn-Ee,strokeStyle:"dotted",width:i,opacity:yp,points:[u(0,0),u(i,0)]});return[s,d,c]},Rp=(e,t,n,r,o,i)=>{let{chartWidth:a,chartHeight:s}=wp(e),d=e.title?Vt({backgroundColor:o,groupIds:[r],...ct,text:e.title,x:t+a/2,y:n-wn-Ee*2-pt,roundness:null,textAlign:"center"}):null,c=i?qr({backgroundColor:o,groupIds:[r],...ct,type:"rectangle",x:t,y:n-s,width:a,height:s,strokeColor:k.black,fillStyle:"solid",opacity:6}):null;return[...c?[c]:[],...d?[d]:[],...P7(e,t,n,r,o),...N7(e,t,n,r,o),...F7(e,t,n,r,o)]},B7=(e,t,n)=>{let r=Math.max(...e.values),o=Lt(),i=vi[Math.floor(Math.random()*vi.length)];return[...e.values.map((s,d)=>{let c=s/r*wn;return qr({backgroundColor:i,groupIds:[o],...ct,type:"rectangle",x:t+d*(vt+Ee)+Ee,y:n-c-Ee,width:vt,height:c})}),...Rp(e,t,n,o,i,M.DEV)]},_7=(e,t,n)=>{let r=Math.max(...e.values),o=Lt(),i=vi[Math.floor(Math.random()*vi.length)],a=0,s=[];for(let E of e.values){let g=a*(vt+Ee),y=-(E/r)*wn;s.push([g,y]),a++}let d=Math.max(...s.map(E=>E[0])),c=Math.max(...s.map(E=>E[1])),l=Math.min(...s.map(E=>E[0])),U=Math.min(...s.map(E=>E[1])),p=On({backgroundColor:i,groupIds:[o],...ct,type:"line",x:t+Ee+vt/2,y:n-Ee,height:c-U,width:d-l,strokeWidth:2,points:s}),m=e.values.map((E,g)=>{let y=g*(vt+Ee)+Ee/2,x=-(E/r)*wn+Ee/2;return qr({backgroundColor:i,groupIds:[o],...ct,fillStyle:"solid",strokeWidth:2,type:"ellipse",x:t+y+vt/2,y:n+x-Ee*2,width:Ee,height:Ee})}),b=e.values.map((E,g)=>{let y=g*(vt+Ee)+Ee/2,x=E/r*wn+Ee/2+Ee;return On({backgroundColor:i,groupIds:[o],...ct,type:"line",x:t+y+vt/2+Ee/2,y:n-x,height:x,strokeStyle:"dotted",opacity:yp,points:[u(0,0),u(0,x)]})});return[...Rp(e,t,n,o,i,M.DEV),p,...b,...m]},QA=(e,t,n,r)=>e==="line"?_7(t,n,r):B7(t,n,r);var lK="clipboard"in navigator&&"readText"in navigator.clipboard,O7="clipboard"in navigator&&"writeText"in navigator.clipboard,UK="clipboard"in navigator&&"write"in navigator.clipboard&&"ClipboardItem"in window&&"toBlob"in HTMLCanvasElement.prototype,A7=e=>!!([We.excalidraw,We.excalidrawClipboard,We.excalidrawClipboardWithAPI].includes(e?.type)&&Array.isArray(e.elements)),fK=({types:e,files:t})=>{!e&&!t&&console.warn("createPasteEvent: no types or files provided");let n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});if(e)for(let[r,o]of Object.entries(e)){if(typeof o!="string"){t=t||[],t.push(o);continue}try{if(n.clipboardData?.setData(r,o),n.clipboardData?.getData(r)!==o)throw new Error(`Failed to set "${r}" as clipboardData item`)}catch(i){throw new Error(i.message)}}if(t){let r=-1;for(let o of t){r++;try{if(n.clipboardData?.items.add(o),n.clipboardData?.files[r]!==o)throw new Error(`Failed to set file "${o.name}" as clipboardData item`)}catch(i){throw new Error(i.message)}}}return n},K7=({elements:e,files:t})=>{let n=te(e),r=new Set(e.filter(s=>de(s))),o=!1,i=e.reduce((s,d)=>(Ot(d)&&(o=!0,t&&t[d.fileId]&&(s[d.fileId]=t[d.fileId])),s),{});o&&!t&&console.warn("copyToClipboard: attempting to file element(s) without providing associated `files` object.");let a={type:We.excalidrawClipboard,elements:e.map(s=>{if(ze(s,n)&&!r.has(ze(s,n))){let d=Gr(s);return Y(d,{frameId:null}),d}return s}),files:t?i:void 0};return JSON.stringify(a)},Tp=async(e,t,n)=>{await Us(K7({elements:e,files:t}),n)},H7=e=>{let t=Ip(e);return t.type===lr?{spreadsheet:t.spreadsheet}:null};function Mp(e){let t=[];for(let n of e.childNodes)if(n.nodeType===3){let r=n.textContent?.trim();r&&t.push({type:"text",value:r})}else if(n instanceof HTMLImageElement){let r=n.getAttribute("src");r&&r.startsWith("http")&&t.push({type:"imageUrl",value:r})}else t=t.concat(Mp(n));return t}var J7=e=>{let t=e.clipboardData?.getData(H.html);if(!t)return null;try{let n=new DOMParser().parseFromString(t,H.html),r=Mp(n.body);if(r.length)return{type:"mixedContent",value:r}}catch(n){console.error(`error in parseHTMLFromPaste: ${n.message}`)}return null},pK=async()=>{let e={},t;try{t=await navigator.clipboard?.read()}catch(n){try{if(navigator.clipboard?.readText){console.warn(`navigator.clipboard.readText() failed (${n.message}). Failling back to navigator.clipboard.read()`);let r=await navigator.clipboard?.readText();if(r)return{[H.text]:r}}}catch(r){if(navigator.clipboard?.read)console.warn(`navigator.clipboard.readText() failed (${r.message}). Failling back to navigator.clipboard.read()`);else{if(r.name==="DataError")return console.warn(`navigator.clipboard.read() error, clipboard is probably empty: ${r.message}`),e;throw r}}throw n}for(let n of t)for(let r of n.types)if(md(Os,r))try{if(r===H.text||r===H.html)e[r]=await(await n.getType(r)).text();else if(ls(r)){let o=await n.getType(r),i=Ur(o,r,void 0);e[r]=i}else throw new Fr(`Unsupported clipboard type: ${r}`)}catch(o){console.warn(o instanceof Fr?o.message:`Cannot retrieve ${r} from clipboardItem: ${o.message}`)}return Object.keys(e).length===0&&console.warn("No clipboard data found from clipboard.read()."),e},Y7=async(e,t=!1)=>{try{let n=!t&&e&&J7(e);return n?n.value.every(o=>o.type==="text")?{type:"text",value:e.clipboardData?.getData(H.text)||n.value.map(o=>o.value).join(`
34
- `).trim()}:n:{type:"text",value:(e.clipboardData?.getData(H.text)||"").trim()}}catch{return{type:"text",value:""}}},uK=async(e,t=!1)=>{let n=await Y7(e,t);if(n.type==="mixedContent")return{mixedContent:n.value};try{let r=!t&&H7(n.value);if(r)return r}catch(r){console.error(r)}try{let r=JSON.parse(n.value),o=r.type===We.excalidrawClipboardWithAPI;if(A7(r))return{elements:r.elements,files:r.files,text:t?JSON.stringify(r.elements,null,2):void 0,programmaticAPI:o}}catch{}return{text:n.value}},Lp=async e=>{try{await navigator.clipboard.write([new window.ClipboardItem({[H.png]:e})])}catch(t){if(Po(e))await navigator.clipboard.write([new window.ClipboardItem({[H.png]:await e})]);else throw t}},Us=async(e,t)=>{if(O7)try{await navigator.clipboard.writeText(e||"");return}catch(n){console.error(n)}try{if(t){if(t.clipboardData?.setData(H.text,e||""),t.clipboardData?.getData(H.text)!==e)throw new Error("Failed to setData on clipboardEvent");return}}catch(n){console.error(n)}if(!C7(e))throw new Error("Error copying to clipboard.")},C7=e=>{e||(e=" ");let t=document.documentElement.getAttribute("dir")==="rtl",n=document.createElement("textarea");n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";let r=window.pageYOffset||document.documentElement.scrollTop;n.style.top=`${r}px`,n.style.fontSize="12pt",n.setAttribute("readonly",""),n.value=e,document.body.appendChild(n);let o=!1;try{n.select(),n.setSelectionRange(0,n.value.length),o=document.execCommand("copy")}catch(i){console.error(i)}return n.remove(),o};var V7=({elements:e,appState:t,files:n,maxWidthOrHeight:r,getDimensions:o,exportPadding:i,exportingFrame:a})=>{let{elements:s,appState:d}=no({elements:e,appState:t},null,null),{exportBackground:c,viewBackgroundColor:l}=d;return Up(s,{...d,offsetTop:0,offsetLeft:0,width:0,height:0},n||{},{exportBackground:c,exportPadding:i,viewBackgroundColor:l,exportingFrame:a},(U,p)=>{let m=document.createElement("canvas");if(r){typeof o=="function"&&console.warn("`getDimensions()` is ignored when `maxWidthOrHeight` is supplied.");let E=Math.max(U,p),g=r<E?r/E:t?.exportScale??1;return m.width=U*g,m.height=p*g,{canvas:m,scale:g}}let b=o?.(U,p)||{width:U,height:p};return m.width=b.width,m.height=b.height,{canvas:m,scale:b.scale??1}})},q7=async e=>{let{mimeType:t=H.png,quality:n}=e;t===H.png&&typeof n=="number"&&console.warn(`"quality" will be ignored for "${H.png}" mimeType`),t==="image/jpg"&&(t=H.jpg),t===H.jpg&&!e.appState?.exportBackground&&(console.warn(`Defaulting "exportBackground" to "true" for "${H.jpg}" mimeType`),e={...e,appState:{...e.appState,exportBackground:!0}});let r=await V7(e);return n=n||(/image\/jpe?g/.test(t)?.92:.8),new Promise((o,i)=>{r.toBlob(async a=>{if(!a)return i(new Error("couldn't export to blob"));a&&t===H.png&&e.appState?.exportEmbedScene&&(a=await Dp({blob:a,metadata:eo(e.elements,e.appState,e.files||{},"local")})),o(a)},t,n)})},G7=async({elements:e,appState:t=ut(),files:n={},exportPadding:r,renderEmbeddables:o,exportingFrame:i,skipInliningFonts:a,reuseImages:s})=>{let{elements:d,appState:c}=no({elements:e,appState:t},null,null),l={...c,exportPadding:r};return fp(d,l,n,{exportingFrame:i,renderEmbeddables:o,skipInliningFonts:a,reuseImages:s})},RK=async e=>{if(e.type==="svg"){let t=await G7(e);await Us(t.outerHTML)}else if(e.type==="png")await Lp(q7(e));else if(e.type==="json")await Tp(e.elements,e.files);else throw new Error("Invalid export type")};var X7=e=>e.type==="diamond"?[u(e.width/2,0),u(e.width,e.height/2),u(e.width/2,e.height),u(0,e.height/2)]:[u(0,0),u(0+e.width,0),u(0+e.width,e.height),u(0,e.height)],k7=e=>ae(e)||Ce(e)?e.points:X7(e),Sp=e=>{let t=e.reduce((n,[r,o])=>(n.minY=Math.min(n.minY,o),n.minX=Math.min(n.minX,r),n.maxX=Math.max(n.maxX,r),n.maxY=Math.max(n.maxY,o),n),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,cx:0,cy:0});return t.cx=(t.maxX+t.minX)/2,t.cy=(t.maxY+t.minY)/2,t},$p=e=>{let t=k7(e),{cx:n,cy:r}=Sp(t),o=u(n,r),i=t.map(l=>T(l,o,e.angle)),{minX:a,minY:s,maxX:d,maxY:c}=Sp(i);return[a+e.x,s+e.y,d+e.x,c+e.y]},vp=(e,t,n=!1)=>{let r=$p(e),o=t[0]<=r[0]&&t[2]>=r[2]&&t[1]<=r[1]&&t[3]>=r[3];return n?o?!0:r[0]<=t[0]&&r[2]>=t[2]&&r[1]<=t[1]&&r[3]>=t[3]:o},Z7=(e,t)=>{let n=$p(e);return(Dr(n[0],_e(t[0],t[2]))||Dr(t[0],_e(n[0],n[2])))&&(Dr(n[1],_e(t[1],t[3]))||Dr(t[1],_e(n[1],n[3])))},Pp=({elements:e,bounds:t,type:n,errorMargin:r=0})=>{ea(t)&&(t=Ae(t,te(e)));let o=[t[0]-r,t[1]-r,t[2]+r,t[3]+r],i=new Set;for(let a of e){if(i.has(a.id))continue;if(n==="overlap"?Z7(a,o):n==="inside"?vp(a,o):vp(a,o,!0)){if(i.add(a.id),a.boundElements)for(let d of a.boundElements)i.add(d.id);X(a)&&a.containerId&&i.add(a.containerId),ee(a)&&(a.startBinding&&i.add(a.startBinding.elementId),a.endBinding&&i.add(a.endBinding?.elementId))}}return e.filter(a=>i.has(a.id))};function Np(e){return[Math.min(e[0][0],e[1][0]),Math.min(e[0][1],e[1][1]),Math.max(e[0][0],e[1][0]),Math.max(e[0][1],e[1][1])]}function W7(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}var z7=1e-6;function Fp(e,t){let n=O(e[1],e[0]),r=O(t,e[0]),o=Me(n,r);return Math.abs(o)<z7}function fs(e,t){let n=O(e[1],e[0]),r=O(t,e[0]);return Me(n,r)<0}function Bp(e,t){return Fp(e,t[0])||Fp(e,t[1])||(fs(e,t[0])?!fs(e,t[1]):fs(e,t[1]))}function _p(e,t){return W7(Np(e),Np(t))&&Bp(e,t)&&Bp(t,e)}var QK=(e,t,n)=>{let r=te(e);for(let o of t)if(o.frameId){let i=n.get(o.id),a=n.get(o.frameId);if(i){let s=r.get(i);s&&Y(s,{frameId:a??o.frameId},!1)}}};function ps(e,t,n){let r=Ma(t,n),o=Ma(e,n);return r.some(a=>o.some(s=>_p(a,s)))}var Op=(e,t,n)=>Pi(pi(e,t,n,!1)).filter(r=>!de(r)&&!r.frameId||r.frameId===t.id),us=(e,t,n)=>pi([t],e,n).some(r=>r.id===t.id);var $i=(e,t,n)=>{let[r,o,i,a]=C(t,n),[s,d,c,l]=Pe(e);return r<=s&&o<=d&&i>=c&&a>=l},yn=(e,t,n)=>$i([e],t,n)||ps(e,t,n)||us(e,t,n),jK=(e,t,n)=>{let[r,o,i,a]=C(t,n);return Lo(u(r,o),u(e.x,e.y),u(i,a))};var eH=e=>{let t=new Map;for(let n of e){let r=de(n)?n.id:n.frameId;r&&!t.has(r)&&t.set(r,io(e,r))}return t},io=(e,t)=>{let n=[];for(let r of e.values())r.frameId===t&&n.push(r);return n},is=e=>e.filter(t=>de(t)),as=e=>{let t=te(is(e));return e.filter(n=>t.has(n.id)||!n.frameId||!t.has(n.frameId))},tH=(e,t,n,r)=>{let o=io(e,t.id),i=new Set(o),a=new Set([...Op(e,t,r),...o.filter(p=>us(p,t,r))]),s=o.filter(p=>!a.has(p)),d=new Set(Array.from(a).flatMap(p=>p.groupIds));for(let p of s)if(!ps(p,t,r))p.groupIds.length===0&&i.delete(p);else if(p.groupIds.length>0)for(let m of p.groupIds)d.add(m);for(let p of s)if(p.groupIds.length>0){let m=!0;for(let b of p.groupIds)d.has(b)&&(m=!1);m&&i.delete(p)}let c=Array.from(a).filter(p=>p.groupIds.length===0);for(let p of c)i.add(p);let l=Array.from(a).filter(p=>p.groupIds.length>0),U=U2(l,n);for(let[p,m]of Object.entries(U))if(m){let b=an(e,p);if($i(b,t,r))for(let E of b)i.add(E)}return[...i].filter(p=>!(X(p)&&p.containerId))},nH=(e,t,n)=>Q7(Pi(e,Op(e,t,n)),t,n),Q7=(e,t,n)=>{let r=[],o=new Map;for(let i of e){let a=!1;if(i.groupIds.length>0){if(i.groupIds.some(s=>o.get(s)))a=!0;else{let s=new Set(i.groupIds.flatMap(d=>an(n,d)));a=!$i(Array.from(s),t,n)}i.groupIds.forEach(s=>{o.set(s,a)})}a||r.push(i)}return r},ze=(e,t)=>e.frameId&&t.get(e.frameId)||null,rH=(e,t)=>{let n=new Set,r=te(e);e=Pi(e);for(let a of e)de(a)&&a.id!==t.id&&n.add(a.id);let o=new Set,i=[];for(let a of e)if(!(de(a)||a.frameId&&n.has(a.frameId)))if(a.groupIds.length){let s=a.groupIds.at(-1);if(!o.has(s)){o.add(s);let d=an(e,s);if(d.some(c=>yn(c,t,r)))for(let c of d)i.push(c)}}else yn(a,t,r)&&i.push(a);return i},j7=(e,t,n,r)=>{let o=te(e),i=new Map;for(let c of e.values())c.frameId===n.id&&i.set(c.id,!0);let a=new Set(t.map(c=>c.id)),s=[],d=new Set;for(let c of t)de(c)&&c.id!==n.id&&d.add(c.id);for(let c of Pi(e,t)){if(de(c)||c.frameId&&d.has(c.frameId)||c.frameId&&r.selectedElementIds[c.id]&&r.selectedElementIds[c.frameId])continue;i.has(c.id)||s.push(c);let l=oe(c,o);l&&!a.has(l.id)&&!i.has(l.id)&&s.push(l)}for(let c of s)Y(c,{frameId:n.id},!1);return e},Ap=(e,t)=>{let n=new Map,r=new Map;for(let o of e)if(o.frameId){n.set(o.id,o);let i=r.get(o.frameId)||[];i.push(o);let a=oe(o,t);a&&(n.set(a.id,a),i.push(a)),r.set(o.frameId,i)}for(let[,o]of n)Y(o,{frameId:null},!1)},e9=(e,t)=>{let n=io(e,t.id);return Ap(n,te(e)),e},oH=(e,t,n,r)=>j7(e9(e,n),t,n,r.state).slice(),iH=(e,t,n)=>{let r=n.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,elements:e}),o=new Set(r);if(t.editingGroupId)for(let s of r)s.groupIds.length===0?o.add(s):s.groupIds.flatMap(d=>an(e,d)).forEach(d=>o.add(d));let i=new Set,a=te(e);return o.forEach(s=>{s.frameId&&!de(s)&&!Kp(s,a,t)&&i.add(s)}),i.size>0&&Ap(i,a),e},Pi=(e,t)=>{let n=new Set,r=t||e;for(let a of r.values()){let s=a.groupIds[a.groupIds.length-1];s&&n.add(s)}let o=new Set;for(let a of n)an(e,a).some(s=>de(s))&&o.add(a);let i=[];for(let a of r.values())o.has(a.groupIds[a.groupIds.length-1])||i.push(a);return i},Ti=(e,t,n)=>{let r=X(e)&&qe(e,t)||e;return r.frameId&&n.selectedElementIds[r.id]&&n.selectedElementIds[r.frameId]?ze(r,t):n.selectedElementIds[r.id]&&n.selectedElementsAreBeingDragged?n.frameToHighlight:ze(r,t)},Kp=(e,t,n,r)=>{let o=r?.targetFrame??Ti(e,t,n);if(!o)return!1;let i=X(e)&&qe(e,t)||e,a=d=>{r?.checkedGroups&&i.groupIds.forEach(c=>{r.checkedGroups?.set(c,d)})};if(!n.selectedElementIds[i.id]||!n.selectedElementsAreBeingDragged||n.selectedElementIds[i.id]&&n.selectedElementIds[o.id])return!0;if(i.groupIds.length===0)return yn(i,o,t);for(let d of i.groupIds)if(r?.checkedGroups?.has(d))return r.checkedGroups.get(d);let s=new Set(i.groupIds.filter(d=>r?.checkedGroups?!r.checkedGroups.has(d):!0).flatMap(d=>an(t,d)));if(n.editingGroupId&&n.selectedElementsAreBeingDragged){let d=new Set(it(t,n));if(n.frameToHighlight!==null)return!0;d.forEach(l=>{s.delete(l)})}for(let d of s)if(de(d))return a(!1),!1;for(let d of s)if(yn(d,o,t))return a(!0),!0;return!1},rs=(e,t,n,r,o)=>{if(!n.frameRendering||!n.frameRendering.clip)return!1;let i=ps(e,t,r)||us(e,t,r);if(i){for(let a of e.groupIds)o?.set(a,!0);return!0}if(!i&&e.groupIds.length>0&&!$i([e],t,r)){let a=!1;if(n.selectedElementsAreBeingDragged)a=Kp(e,r,n,{targetFrame:t,checkedGroups:o});else{a=e.frameId===t.id;for(let s of e.groupIds)o?.set(s,a)}for(let s of e.groupIds)o?.set(s,a);return a}return!1},up=e=>e.name===null?gd(e)?"Frame":"AI Frame":e.name,mp=(e,t)=>Pp({elements:e,bounds:t,type:"overlap"}).filter(n=>!n.frameId||n.frameId===t.id),aH=e=>{let t=te(e);return e.length>1&&e.some(n=>n.frameId&&t.has(n.frameId))};var t9=e=>{let t=new Set;return e.forEach(n=>{de(n)&&t.add(n.id)}),e.filter(n=>!(n.frameId&&t.has(n.frameId)))},pi=(e,t,n,r=!0)=>{let[o,i,a,s]=C(t,n),d=e.filter(c=>{let[l,U,p,m]=Ae(c,n),b=ze(c,n);if(b){let[E,g,y,x]=Ae(b,n);l=Math.max(E,l),U=Math.max(g,U),p=Math.min(y,p),m=Math.min(x,m)}return c.locked===!1&&c.type!=="selection"&&!Fe(c)&&o<=l&&i<=U&&a>=p&&s>=m});return d=r?t9(d):d,d=d.filter(c=>{let l=ze(c,n);return l?yn(c,l,n):!0}),d},Ha=(e,t,n,r)=>{let o=new Set(t.map(i=>i.id));return e.filter(i=>{let a=Hp(i,n.width,n.height,n,r);return!o.has(i.id)&&a})},Ib=function(){let e=null,t=null,n=null,r=(o,i)=>(n!=null&&o===e&&i.selectedElementIds===t||(n=o.some(a=>i.selectedElementIds[a.id]),e=o,t=i.selectedElementIds),n);return r.clearCache=()=>{e=null,t=null,n=null},r}(),wb=(e,t,n)=>{let r=Array.from(new Set(it(e,t).map(o=>n(o))));return r.length===1?r[0]:null},it=(e,t,n)=>{let r=new Set,o=[];for(let i of e.values()){if(t.selectedElementIds[i.id]){o.push(i),r.add(i.id);continue}if(n?.includeBoundTextElement&&Fe(i)&&t.selectedElementIds[i?.containerId]){o.push(i),r.add(i.id);continue}}if(n?.includeElementsInFrames){let i=[];return o.forEach(a=>{de(a)&&io(e,a.id).forEach(s=>!r.has(s.id)&&i.push(s)),i.push(a)}),i}return o},Rb=(e,t)=>t.editingTextElement?[t.editingTextElement]:t.newElement?[t.newElement]:it(e,t,{includeBoundTextElement:!0}),Oa=(e,t)=>Qt(t.selectedElementIds,e)?t.selectedElementIds:e;var Jp=e=>{let t=new Map,n=[];for(let r of e)r.isDeleted||(n.push(r),t.set(r.id,r));return{elementsMap:t,elements:n}},r9=n9(e=>{(M.DEV||M.MODE===et.TEST||window?.DEBUG_FRACTIONAL_INDICES)&&Ga(e,{shouldThrow:M.DEV||M.MODE===et.TEST,includeBoundTextValidation:!0})},1e3*60,{leading:!0,trailing:!1}),o9=e=>{let t=["includeBoundTextElement","includeElementsInFrames"],n="";for(let r of t)n+=`${r}:${e[r]?"1":"0"}`;return n},Yp=e=>typeof e=="string",Hn=class Hn{constructor(){$(this,"callbacks",new Set);$(this,"nonDeletedElements",[]);$(this,"nonDeletedElementsMap",Ge(new Map));$(this,"elements",[]);$(this,"nonDeletedFramesLikes",[]);$(this,"frames",[]);$(this,"elementsMap",Ge(new Map));$(this,"selectedElementsCache",{selectedElementIds:null,elements:null,cache:new Map});$(this,"sceneNonce");$(this,"insertElement",t=>{let n=t.frameId?this.getElementIndex(t.frameId):this.elements.length;this.insertElementAtIndex(t,n)});$(this,"insertElements",t=>{if(!t.length)return;let n=t[0]?.frameId?this.getElementIndex(t[0].frameId):this.elements.length;this.insertElementsAtIndex(t,n)});$(this,"getContainerElement",t=>t&&t.containerId&&this.getElement(t.containerId)||null);$(this,"getElementsFromId",t=>{let n=this.getNonDeletedElementsMap(),r=n.get(t);return r?[r]:an(n,t)})}static mapElementToScene(t,n){Yp(t)?this.sceneMapById.set(t,n):(this.sceneMapByElement.set(t,n),this.sceneMapById.set(t.id,n))}static getScene(t){return Yp(t)?this.sceneMapById.get(t)||null:this.sceneMapByElement.get(t)||null}getSceneNonce(){return this.sceneNonce}getNonDeletedElementsMap(){return this.nonDeletedElementsMap}getElementsIncludingDeleted(){return this.elements}getElementsMapIncludingDeleted(){return this.elementsMap}getNonDeletedElements(){return this.nonDeletedElements}getFramesIncludingDeleted(){return this.frames}getSelectedElements(t){let n=o9(t),r=t?.elements||this.nonDeletedElements;if(this.selectedElementsCache.elements===r&&this.selectedElementsCache.selectedElementIds===t.selectedElementIds){let i=this.selectedElementsCache.cache.get(n);if(i)return i}else t?.elements==null&&this.selectedElementsCache.cache.clear();let o=it(r,{selectedElementIds:t.selectedElementIds},t);return t?.elements==null&&(this.selectedElementsCache.selectedElementIds=t.selectedElementIds,this.selectedElementsCache.elements=this.nonDeletedElements,this.selectedElementsCache.cache.set(n,o)),o}getNonDeletedFramesLikes(){return this.nonDeletedFramesLikes}getElement(t){return this.elementsMap.get(t)||null}getNonDeletedElement(t){let n=this.getElement(t);return n&&Cp(n)?n:null}mapElements(t){let n=!1,r=this.elements.map(o=>{let i=t(o);return i!==o&&(n=!0),i});return n&&this.replaceAllElements(r),n}replaceAllElements(t){let n=t instanceof Array?t:Array.from(t.values()),r=[];r9(n),this.elements=An(n),this.elementsMap.clear(),this.elements.forEach(i=>{de(i)&&r.push(i),this.elementsMap.set(i.id,i),Hn.mapElementToScene(i,this)});let o=Jp(this.elements);this.nonDeletedElements=o.elements,this.nonDeletedElementsMap=o.elementsMap,this.frames=r,this.nonDeletedFramesLikes=Jp(this.frames).elements,this.triggerUpdate()}triggerUpdate(){this.sceneNonce=Ct();for(let t of Array.from(this.callbacks))t()}onUpdate(t){if(this.callbacks.has(t))throw new Error;return this.callbacks.add(t),()=>{if(!this.callbacks.has(t))throw new Error;this.callbacks.delete(t)}}destroy(){this.elements=[],this.nonDeletedElements=[],this.nonDeletedFramesLikes=[],this.frames=[],this.elementsMap.clear(),this.selectedElementsCache.selectedElementIds=null,this.selectedElementsCache.elements=null,this.selectedElementsCache.cache.clear(),Hn.sceneMapById.forEach((t,n)=>{t===this&&Hn.sceneMapById.delete(n)}),this.callbacks.clear()}insertElementAtIndex(t,n){if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");let r=[...this.elements.slice(0,n),t,...this.elements.slice(n)];kr(r,te([t])),this.replaceAllElements(r)}insertElementsAtIndex(t,n){if(!t.length)return;if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");let r=[...this.elements.slice(0,n),...t,...this.elements.slice(n)];kr(r,te(t)),this.replaceAllElements(r)}getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}};$(Hn,"sceneMapByElement",new WeakMap),$(Hn,"sceneMapById",new Map);var ms=Hn,bs=ms;var ao=class{constructor(t){this.scoreFunction=t;$(this,"content",[])}sinkDown(t){let n=this.content[t];for(;t>0;){let r=(t+1>>1)-1,o=this.content[r];if(this.scoreFunction(n)<this.scoreFunction(o))this.content[r]=n,this.content[t]=o,t=r;else break}}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let i=t+1<<1,a=i-1,s=null,d=0;if(a<n){let c=this.content[a];d=this.scoreFunction(c),d<o&&(s=a)}if(i<n){let c=this.content[i];this.scoreFunction(c)<(s===null?o:d)&&(s=i)}if(s!==null)this.content[t]=this.content[s],this.content[s]=r,t=s;else break}}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};var gs=1,pe=40,i9=(e,t)=>{let n=e.fixedSegments?e.fixedSegments.slice():null;if(n){let r=[];e.points.map(a=>u(e.x+a[0],e.y+a[1])).forEach((a,s,d)=>{if(s<2)return r.push(a);let c=er(a,d[s-1]),l=er(d[s-1],d[s-2]);if($e(c,l)){let U=n?.findIndex(m=>m.index===s-1)??-1,p=n?.findIndex(m=>m.index===s)??-1;p!==-1&&(n[p].start=u(d[s-2][0]-e.x,d[s-2][1]-e.y)),U!==-1&&n.splice(U,1),r.splice(-1,1),n.forEach(m=>{m.index>s-1&&(m.index-=1)})}return r.push(a)});let o=[];r.forEach((a,s,d)=>{if(s<3)return o.push(a);if(ie(d[s-2],d[s-1])<gs){let c=n?.findIndex(p=>p.index===s-2)??-1,l=n?.findIndex(p=>p.index===s-1)??-1;l!==-1&&n.splice(l,1),c!==-1&&n.splice(c,1),o.splice(-2,2),n.forEach(p=>{p.index>s-2&&(p.index-=2)});let U=Tt(a,d[s-1]);return o.push(u(U?a[0]:d[s-2][0],U?d[s-2][1]:a[1]))}o.push(a)});let i=n.filter(a=>a.index!==1&&a.index!==o.length-1);return i.length===0?Tn(ys(Is(hs(e,xs(e,t,o.map(a=>u(a[0]-e.x,a[1]-e.y))))??[])),i,null,null):(M.DEV&&Oe(zp(o),"Invalid elbow points with fixed segments"),Tn(o,i,e.startIsSpecial,e.endIsSpecial))}return{x:e.x,y:e.y,points:e.points,fixedSegments:e.fixedSegments,startIsSpecial:e.startIsSpecial,endIsSpecial:e.endIsSpecial}},a9=(e,t,n)=>{let r=t.map(L=>L.index),i=(e.fixedSegments?.map(L=>L.index)??[]).findIndex(L=>!r.includes(L));if(i===-1||!e.fixedSegments?.[i])return{points:e.points};let a=e.fixedSegments[i].index,s=e.fixedSegments[i-1],d=e.fixedSegments[i+1],c=e.x+(s?s.end[0]:0),l=e.y+(s?s.end[1]:0),{startHeading:U,endHeading:p,startGlobalPoint:m,endGlobalPoint:b,hoveredStartElement:E,hoveredEndElement:g,...y}=xs({x:c,y:l,startBinding:s?null:e.startBinding,endBinding:d?null:e.endBinding,startArrowhead:null,endArrowhead:null},n,[u(0,0),u(e.x+(d?.start[0]??e.points[e.points.length-1][0])-c,e.y+(d?.start[1]??e.points[e.points.length-1][1])-l)],{isDragging:!1}),{points:x}=Tn(ys(Is(hs(e,{startHeading:U,endHeading:p,startGlobalPoint:m,endGlobalPoint:b,hoveredStartElement:E,hoveredEndElement:g,...y})??[])),t,null,null),h=[];if(s)for(let L=0;L<s.index;L++)h.push(u(e.x+e.points[L][0],e.y+e.points[L][1]));if(x.forEach(L=>{h.push(u(e.x+(s?s.end[0]:0)+L[0],e.y+(s?s.end[1]:0)+L[1]))}),d)for(let L=d.index;L<e.points.length;L++)h.push(u(e.x+e.points[L][0],e.y+e.points[L][1]));let w=(d?.index??e.points.length)-(s?.index??0)-1,I=t.map(L=>L.index>a?{...L,index:L.index-w+(x.length-1)}:L),v=h.flatMap((L,S)=>{let B=h[S-1],P=h[S+1];if(B&&P){let F=er(L,B),_=er(P,L);if($e(F,_))return I.forEach(Z=>{Z.index>S&&(Z.index-=1)}),[];if($e(F,wa(_)))return I.forEach(Z=>{Z.index>S&&(Z.index+=1)}),[L,L]}return[L]});return Tn(v,I,!1,!1)},s9=(e,t,n,r,o,i)=>{let a=t.map((I,v)=>e.fixedSegments==null||e.fixedSegments[v]===void 0||e.fixedSegments[v].index!==I.index||(I.start[0]!==e.fixedSegments[v].start[0]&&I.end[0]!==e.fixedSegments[v].end[0])!=(I.start[1]!==e.fixedSegments[v].start[1]&&I.end[1]!==e.fixedSegments[v].end[1])?v:null).filter(I=>I!==null).shift();if(a==null)return{points:e.points};let s=e.fixedSegments?.findIndex(I=>I.index===1)??-1,d=e.fixedSegments?.findIndex(I=>I.index===e.points.length-1)??-1,c=ie(t[a].start,t[a].end),l=c<pe+5;if(s===-1&&t[a].index===1&&o){let I=Mt(n),L=(I?$e(n,Re):$e(n,Be))?l?c/2:pe:l?-c/2:-pe;t[a].start=u(t[a].start[0]+(I?L:0),t[a].start[1]+(I?0:L))}if(d===-1&&t[a].index===e.points.length-1&&i){let I=Mt(r),L=(I?$e(r,Re):$e(r,Be))?l?c/2:pe:l?-c/2:-pe;t[a].end=u(t[a].end[0]+(I?L:0),t[a].end[1]+(I?0:L))}let U=t.map(I=>({...I,start:u(e.x+I.start[0],e.y+I.start[1]),end:u(e.x+I.end[0],e.y+I.end[1])})),p=e.points.map((I,v)=>u(e.x+I[0],e.y+I[1])),m=U[a].index-1,b=U[a].index,E=U[a].start,g=U[a].end,y=p[m-1]&&!Je(p[m],p[m-1])?Tt(p[m-1],p[m]):void 0,x=p[b+1]&&!Je(p[b],p[b+1])?Tt(p[b+1],p[b]):void 0;if(y!==void 0){let I=y?1:0;p[m-1][I]=E[I]}if(p[m]=E,p[b]=g,x!==void 0){let I=x?1:0;p[b+1][I]=g[I]}let h=U.findIndex(I=>I.index===m);if(h!==-1){let I=Tt(U[h].end,U[h].start)?1:0;U[h].start[I]=E[I],U[h].end=E}let w=U.findIndex(I=>I.index===b+1);if(w!==-1){let I=Tt(U[w].end,U[w].start)?1:0;U[w].end[I]=g[I],U[w].start=g}if(s===-1&&m===0){let I=o?Mt(n):Tt(p[1],p[0]);p.unshift(u(I?E[0]:e.x+e.points[0][0],I?e.y+e.points[0][1]:E[1])),o&&p.unshift(u(e.x+e.points[0][0],e.y+e.points[0][1]));for(let v of U)v.index+=o?2:1}if(d===-1&&b===e.points.length-1){let I=Mt(r);p.push(u(I?g[0]:e.x+e.points[e.points.length-1][0],I?e.y+e.points[e.points.length-1][1]:g[1])),i&&p.push(u(e.x+e.points[e.points.length-1][0],e.y+e.points[e.points.length-1][1]))}return Tn(p,U.map(I=>({...I,start:u(I.start[0]-e.x,I.start[1]-e.y),end:u(I.end[0]-e.x,I.end[1]-e.y)})),!1,!1)},d9=(e,t,n,r,o,i,a,s,d)=>{let c=e.startIsSpecial??null,l=e.endIsSpecial??null,U=t.map((g,y)=>y===0?u(e.x+g[0],e.y+g[1]):y===t.length-1?u(e.x+g[0],e.y+g[1]):u(e.x+e.points[y][0],e.y+e.points[y][1])),p=n.map(g=>({...g,start:u(e.x+(g.start[0]-t[0][0]),e.y+(g.start[1]-t[0][1])),end:u(e.x+(g.end[0]-t[0][0]),e.y+(g.end[1]-t[0][1]))})),m=[],b=2+(c?1:0),E=2+(l?1:0);for(;m.length+b<U.length-E;)m.push(U[m.length+b]);{let g=U[c?2:1],y=U[c?3:2],x=Mt(r),h=Mt(Kt(O(g,y)));if(s&&x===h){let w=x?$e(r,Re):$e(r,Be);if(m.unshift(u(h?i[0]+(w?pe:-pe):y[0],h?y[1]:i[1]+(w?pe:-pe))),m.unshift(u(x?i[0]+(w?pe:-pe):i[0],x?i[1]:i[1]+(w?pe:-pe))),!c){c=!0;for(let I of p)I.index>1&&(I.index+=1)}}else if(m.unshift(u(h?i[0]:g[0],h?g[1]:i[1])),c){c=!1;for(let w of p)w.index>1&&(w.index-=1)}m.unshift(i)}{let g=U[U.length-(l?3:2)],y=U[U.length-(l?4:3)],x=Mt(o),h=Tt(y,g);if(d&&x===h){let w=x?$e(o,Re):$e(o,Be);m.push(u(h?a[0]+(w?pe:-pe):y[0],h?y[1]:a[1]+(w?pe:-pe))),m.push(u(x?a[0]+(w?pe:-pe):a[0],x?a[1]:a[1]+(w?pe:-pe))),l||(l=!0)}else m.push(u(h?a[0]:g[0],h?g[1]:a[1])),l&&(l=!1)}return m.push(a),Tn(m,p.map(({index:g})=>({index:g,start:m[g-1],end:m[g]})).map(g=>({...g,start:u(g.start[0]-i[0],g.start[1]-i[1]),end:u(g.end[0]-i[0],g.end[1]-i[1])})),c,l)},ge=1e6,Zp=(e,t,n,r)=>{if(e.points.length<2)return{points:n.points??e.points};if((e.x<-ge||e.x>ge||e.y<-ge||e.y>ge||e.x+(n?.points?.[n?.points?.length-1]?.[0]??0)<-ge||e.x+(n?.points?.[n?.points?.length-1]?.[0]??0)>ge||e.y+(n?.points?.[n?.points?.length-1]?.[1]??0)<-ge||e.y+(n?.points?.[n?.points?.length-1]?.[1]??0)>ge||e.x+(e?.points?.[e?.points?.length-1]?.[0]??0)<-ge||e.x+(e?.points?.[e?.points?.length-1]?.[0]??0)>ge||e.y+(e?.points?.[e?.points?.length-1]?.[1]??0)<-ge||e.y+(e?.points?.[e?.points?.length-1]?.[1]??0)>ge)&&console.error("Elbow arrow (or update) is outside reasonable bounds (> 1e6)",{arrow:e,updates:n}),e.x=se(e.x,-ge,ge),e.y=se(e.y,-ge,ge),n.points&&(n.points=n.points.map(([m,b])=>u(se(m,-ge,ge),se(b,-ge,ge)))),M.PROD||(Oe(!n.points||n.points.length>=2,"Updated point array length must match the arrow point length, contain exactly the new start and end points or not be specified at all (i.e. you can't add new points between start and end manually to elbow arrows)"),Oe(!e.fixedSegments||e.fixedSegments.map(m=>m.start[0]===m.end[0]||m.start[1]===m.end[1]).every(Boolean),"Fixed segments must be either horizontal or vertical"),Oe(!n.fixedSegments||n.fixedSegments.map(m=>m.start[0]===m.end[0]||m.start[1]===m.end[1]).every(Boolean),"Updates to fixed segments must be either horizontal or vertical"),Oe(e.points.slice(1).map((m,b)=>m[0]===e.points[b][0]||m[1]===e.points[b][1]),"Elbow arrow segments must be either horizontal or vertical")),t.size===0&&n.points&&zp(n.points))return Tn(n.points.map(m=>u(e.x+m[0],e.y+m[1])),e.fixedSegments,e.startIsSpecial,e.endIsSpecial);let o=n.points?n.points&&n.points.length===2?e.points.map((m,b)=>b===0?n.points[0]:b===e.points.length-1?n.points[1]:m):n.points.slice():e.points.slice(),{startHeading:i,endHeading:a,startGlobalPoint:s,endGlobalPoint:d,hoveredStartElement:c,hoveredEndElement:l,...U}=xs({x:e.x,y:e.y,startBinding:typeof n.startBinding<"u"?n.startBinding:e.startBinding,endBinding:typeof n.endBinding<"u"?n.endBinding:e.endBinding,startArrowhead:e.startArrowhead,endArrowhead:e.endArrowhead},t,o,r),p=n.fixedSegments??e.fixedSegments??[];return!n.points&&!n.fixedSegments&&!n.startBinding&&!n.endBinding?i9(e,t):n.startBinding===e.startBinding&&n.endBinding===e.endBinding?{}:p.length===0?Tn(ys(Is(hs(e,{startHeading:i,endHeading:a,startGlobalPoint:s,endGlobalPoint:d,hoveredStartElement:c,hoveredEndElement:l,...U})??[])),p,null,null):(e.fixedSegments?.length??0)>p.length?a9(e,p,t):n.points?n.points&&n.fixedSegments?n:d9(e,o,p,i,a,s,d,c,l):s9(e,p,i,a,c,l)},xs=(e,t,n,r)=>{let o=pn(n[0],ve(e.x,e.y)),i=pn(n[n.length-1],ve(e.x,e.y)),a=e.startBinding&&qp(e.startBinding.elementId,t),s=e.endBinding&&qp(e.endBinding.elementId,t),[d,c]=r?.isDragging?b9(o,i,t,r?.zoom):[a,s],l=Gp({...e,elbowed:!0,points:n},"start",e.startBinding?.fixedPoint,o,a,d,r?.isDragging),U=Gp({...e,elbowed:!0,points:n},"end",e.endBinding?.fixedPoint,i,s,c,r?.isDragging),p=Xp(l,U,t,d,o),m=Xp(U,l,t,c,i),b=[l[0]-2,l[1]-2,l[0]+2,l[1]+2],E=[U[0]-2,U[1]-2,U[0]+2,U[1]+2],g=d?It(d,Rn(p,e.startArrowhead?me*6:me*2,1)):b,y=c?It(c,Rn(m,e.endArrowhead?me*6:me*2,1)):E,x=gn(l,c?It(c,Rn(m,pe,pe)):E)||gn(U,d?It(d,Rn(p,pe,pe)):b),h=Wp(x?[b,E]:[g,y]),w=U9(x?b:g,x?E:y,h,x?Rn(p,!d&&!c?0:pe,0):Rn(p,!d&&!c?0:pe-(e.startArrowhead?me*6:me*2),pe),x?Rn(m,!d&&!c?0:pe,0):Rn(m,!d&&!c?0:pe-(e.endArrowhead?me*6:me*2),pe),x,d&&It(d),c&&It(c)),I=Vp(w[0],p,l),v=Vp(w[1],m,U);return{dynamicAABBs:w,startDonglePosition:I,startGlobalPoint:l,startHeading:p,endDonglePosition:v,endGlobalPoint:U,endHeading:m,commonBounds:h,hoveredStartElement:d,hoveredEndElement:c,boundsOverlap:x,startElementBounds:g,endElementBounds:y}},hs=(e,t)=>{let{dynamicAABBs:n,startDonglePosition:r,startGlobalPoint:o,startHeading:i,endDonglePosition:a,endGlobalPoint:s,endHeading:d,commonBounds:c,hoveredEndElement:l}=t,U=f9(n,r||o,i,a||s,d,c),p=r&&Ni(r,U),m=a&&Ni(a,U),b=Ni(s,U);b&&l&&(b.closed=!0);let E=Ni(o,U);E&&e.startBinding&&(E.closed=!0);let g=p&&m&&(gn(p.pos,n[1])||gn(m.pos,n[0])),y=c9(p||E,m||b,U,i||Re,d||Re,g?[]:n);if(y){let x=y.map(h=>[h.pos[0],h.pos[1]]);return p&&x.unshift(o),m&&x.push(s),x}return null},Rn=(e,t,n)=>{switch(e){case Qe:return[t,n,n,n];case Re:return[n,t,n,n];case Be:return[n,n,t,n]}return[n,n,n,t]},c9=(e,t,n,r,o,i)=>{let a=Es(e.pos,t.pos),s=new ao(d=>d.f);for(s.push(e);s.size()>0;){let d=s.pop();if(!d||d.closed)continue;if(d===t)return l9(e,d);d.closed=!0;let c=u9(d.addr,n);for(let l=0;l<4;l++){let U=c[l];if(!U||U.closed)continue;let p=bt(U.pos,d.pos,.5);if(Ed(...i.map(w=>gn(p,w))))continue;let m=m9(l),b=d.parent?Kt(O(d.pos,d.parent.pos)):r,E=wa(b);if($e(E,m)||kp(e.addr,U.addr)&&$e(m,r)||kp(t.addr,U.addr)&&$e(m,o))continue;let y=b!==m,x=d.g+Es(U.pos,d.pos)+(y?Math.pow(a,3):0),h=U.visited;if(!h||x<U.g){let w=p9(U,t,m,o);U.visited=!0,U.parent=d,U.h=Es(t.pos,U.pos)+w*Math.pow(a,2),U.g=x,U.f=U.g+U.h,h?s.rescoreElement(U):s.push(U)}}}return null},l9=(e,t)=>{let n=t,r=[];for(;n.parent;)r.unshift(n),n=n.parent;return r.unshift(e),r},Es=(e,t)=>Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1]),U9=(e,t,n,r,o,i,a,s)=>{let d=a??e,c=s??t,[l,U,p,m]=r??[0,0,0,0],[b,E,g,y]=o??[0,0,0,0],x=[e[0]>t[2]?e[1]>t[3]||e[3]<t[1]?Math.min((d[0]+c[2])/2,e[0]-m):(d[0]+c[2])/2:e[0]>t[0]?e[0]-m:n[0]-m,e[1]>t[3]?e[0]>t[2]||e[2]<t[0]?Math.min((d[1]+c[3])/2,e[1]-l):(d[1]+c[3])/2:e[1]>t[1]?e[1]-l:n[1]-l,e[2]<t[0]?e[1]>t[3]||e[3]<t[1]?Math.max((d[2]+c[0])/2,e[2]+U):(d[2]+c[0])/2:e[2]<t[2]?e[2]+U:n[2]+U,e[3]<t[1]?e[0]>t[2]||e[2]<t[0]?Math.max((d[3]+c[1])/2,e[3]+p):(d[3]+c[1])/2:e[3]<t[3]?e[3]+p:n[3]+p],h=[t[0]>e[2]?t[1]>e[3]||t[3]<e[1]?Math.min((c[0]+d[2])/2,t[0]-y):(c[0]+d[2])/2:t[0]>e[0]?t[0]-y:n[0]-y,t[1]>e[3]?t[0]>e[2]||t[2]<e[0]?Math.min((c[1]+d[3])/2,t[1]-b):(c[1]+d[3])/2:t[1]>e[1]?t[1]-b:n[1]-b,t[2]<e[0]?t[1]>e[3]||t[3]<e[1]?Math.max((c[2]+d[0])/2,t[2]+E):(c[2]+d[0])/2:t[2]<e[2]?t[2]+E:n[2]+E,t[3]<e[1]?t[0]>e[2]||t[2]<e[0]?Math.max((c[3]+d[1])/2,t[3]+g):(c[3]+d[1])/2:t[3]<e[3]?t[3]+g:n[3]+g],w=Wp([x,h]);if(!i&&x[2]-x[0]+h[2]-h[0]>w[2]-w[0]+1e-11&&x[3]-x[1]+h[3]-h[1]>w[3]-w[1]+1e-11){let[I,v]=[(h[0]+h[2])/2,(h[1]+h[3])/2];if(t[0]>e[2]&&e[1]>t[3]){let L=x[2]+(h[0]-x[2])/2,S=h[3]+(x[1]-h[3])/2;return Me(ve(e[2]-I,e[1]-v),ve(e[0]-I,e[3]-v))>0?[[x[0],x[1],L,x[3]],[L,h[1],h[2],h[3]]]:[[x[0],S,x[2],x[3]],[h[0],h[1],h[2],S]]}else if(e[2]<t[0]&&e[3]<t[1]){let L=x[2]+(h[0]-x[2])/2,S=x[3]+(h[1]-x[3])/2;return Me(ve(e[0]-I,e[1]-v),ve(e[2]-I,e[3]-v))>0?[[x[0],x[1],x[2],S],[h[0],S,h[2],h[3]]]:[[x[0],x[1],L,x[3]],[L,h[1],h[2],h[3]]]}else if(e[0]>t[2]&&e[3]<t[1]){let L=h[2]+(x[0]-h[2])/2,S=x[3]+(h[1]-x[3])/2;return Me(ve(e[2]-I,e[1]-v),ve(e[0]-I,e[3]-v))>0?[[L,x[1],x[2],x[3]],[h[0],h[1],L,h[3]]]:[[x[0],x[1],x[2],S],[h[0],S,h[2],h[3]]]}else if(e[0]>t[2]&&e[1]>t[3]){let L=h[2]+(x[0]-h[2])/2,S=h[3]+(x[1]-h[3])/2;return Me(ve(e[0]-I,e[1]-v),ve(e[2]-I,e[3]-v))>0?[[L,x[1],x[2],x[3]],[h[0],h[1],L,h[3]]]:[[x[0],S,x[2],x[3]],[h[0],h[1],h[2],S]]}}return[x,h]},f9=(e,t,n,r,o,i)=>{let a=new Set,s=new Set;n===tt||n===Re?s.add(t[1]):a.add(t[0]),o===tt||o===Re?s.add(r[1]):a.add(r[0]),e.forEach(l=>{a.add(l[0]),a.add(l[2]),s.add(l[1]),s.add(l[3])}),a.add(i[0]),a.add(i[2]),s.add(i[1]),s.add(i[3]);let d=Array.from(s).sort((l,U)=>l-U),c=Array.from(a).sort((l,U)=>l-U);return{row:d.length,col:c.length,data:d.flatMap((l,U)=>c.map((p,m)=>({f:0,g:0,h:0,closed:!1,visited:!1,parent:null,addr:[m,U],pos:[p,l]})))}},Vp=(e,t,n)=>{switch(t){case Qe:return u(n[0],e[1]);case Re:return u(e[2],n[1]);case Be:return u(n[0],e[3])}return u(e[0],n[1])},p9=(e,t,n,r)=>{if(r===Re)switch(n){case Re:return e.pos[0]>=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2;case Qe:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Be:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case tt:return e.pos[1]===t.pos[1]?4:2}else if(r===tt)switch(n){case Re:return e.pos[1]===t.pos[1]?4:2;case Qe:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case Be:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case tt:return e.pos[0]<=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2}else if(r===Qe)switch(n){case Re:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Qe:return e.pos[1]>=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case Be:return e.pos[0]===t.pos[0]?4:2;case tt:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3}else if(r===Be)switch(n){case Re:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Qe:return e.pos[0]===t.pos[0]?4:2;case Be:return e.pos[1]<=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case tt:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3}return 0},u9=([e,t],n)=>[so([e,t-1],n),so([e+1,t],n),so([e,t+1],n),so([e-1,t],n)],so=([e,t],n)=>e<0||e>=n.col||t<0||t>=n.row?null:n.data[t*n.col+e]??null,Ni=(e,t)=>{for(let n=0;n<t.col;n++)for(let r=0;r<t.row;r++){let o=so([n,r],t);if(o&&e[0]===o.pos[0]&&e[1]===o.pos[1])return o}return null},Wp=e=>[Math.min(...e.map(t=>t[0])),Math.min(...e.map(t=>t[1])),Math.max(...e.map(t=>t[2])),Math.max(...e.map(t=>t[3]))],qp=(e,t)=>{let n=t.get(e);return n&&xt(n)?n:null},Tn=(e,t,n,r)=>{let o=e[0][0],i=e[0][1],a=e.map(s=>pn(s,ue(O(e[0]),-1)));return(o<-ge||o>ge||i<-ge||i>ge||o+a[a.length-1][0]<-ge||i+a[a.length-1][0]>ge||o+a[a.length-1][1]<-ge||i+a[a.length-1][1]>ge)&&console.error("Elbow arrow normalization is outside reasonable bounds (> 1e6)",{x:o,y:i,points:a,...xn(a)}),a=a.map(([s,d])=>u(se(s,-1e6,1e6),se(d,-1e6,1e6))),{points:a,x:se(o,-1e6,1e6),y:se(i,-1e6,1e6),fixedSegments:(t?.length??0)>0?t:null,...xn(a),startIsSpecial:n,endIsSpecial:r}},ys=e=>{if(e.length>1){let t=Math.abs(e[0][1]-e[1][1])<Math.abs(e[0][0]-e[1][0]);return e.filter((n,r)=>{if(r===0||r===e.length-1)return!0;let o=e[r+1],i=Math.abs(n[1]-o[1])<Math.abs(n[0]-o[0]);return t===i?(t=i,!1):(t=i,!0)})}return e},Is=e=>e.length>=4?e.filter((t,n)=>{if(n===0||n===e.length-1)return!0;let r=e[n-1];return ie(r,t)>gs}):e,m9=e=>{switch(e){case 0:return Qe;case 1:return Re;case 2:return Be}return tt},Gp=(e,t,n,r,o,i,a)=>{if(a){if(i){let s=Ui(e,i,t);return i2(i,s)}return r}if(o){let s=li(n||[0,0],o);return Math.abs(or(o,s)-me)>.01?Ui(e,o,t):s}return r},Xp=(e,t,n,r,o)=>o2(e,t,r,r&&It(r,Array(4).fill(or(r,e))),n,o),b9=(e,t,n,r)=>{let o=Ge(new Map([...n].filter(a=>!a[1].isDeleted))),i=Array.from(n.values());return[hn(Zt(e),i,o,r,!0,!0),hn(Zt(t),i,o,r,!0,!0)]},kp=(e,t)=>e[0]===t[0]&&e[1]===t[1],zp=(e,t=gs)=>e.slice(1).map((n,r)=>Math.abs(n[0]-e[r][0])<t||Math.abs(n[1]-e[r][1])<t).every(Boolean);var Y=(e,t,n=!0,r)=>{let o=!1,{points:i,fixedSegments:a,fileId:s,startBinding:d,endBinding:c}=t;if(W(e)&&(Object.keys(t).length===0||typeof i<"u"||typeof a<"u"||typeof d<"u"||typeof c<"u")){let l=Ge(bs.getScene(e)?.getNonDeletedElementsMap()??new Map);t={...t,angle:0,...Zp({...e,x:t.x||e.x,y:t.y||e.y},l,{fixedSegments:a,points:i,startBinding:d,endBinding:c},{isDragging:r?.isDragging})}}else typeof i<"u"&&(t={...xn(i),...t});for(let l in t){let U=t[l];if(typeof U<"u"){if(e[l]===U&&(typeof U!="object"||U===null||l==="groupIds"||l==="scale"))continue;if(l==="scale"){let p=e[l],m=U;if(p[0]===m[0]&&p[1]===m[1])continue}else if(l==="points"){let p=e[l],m=U;if(p.length===m.length){let b=!1,E=p.length;for(;--E;){let g=p[E],y=m[E];if(g[0]!==y[0]||g[1]!==y[1]){b=!0;break}}if(!b)continue}}e[l]=U,o=!0}}return o&&((typeof t.height<"u"||typeof t.width<"u"||typeof s<"u"||typeof i<"u")&&xe.delete(e),e.version++,e.versionNonce=Ct(),e.updated=zt(),n&&bs.getScene(e)?.triggerUpdate()),e},St=(e,t,n=!1)=>{let r=!1;for(let o in t){let i=t[o];if(typeof i<"u"){if(e[o]===i&&(typeof i!="object"||i===null))continue;r=!0}}return!r&&!n?e:{...e,...t,updated:zt(),version:e.version+1,versionNonce:Ct()}},Xr=(e,t)=>(e.version=(t??e.version)+1,e.versionNonce=Ct(),e.updated=zt(),e);var ro=e=>ae(e)||Ce(e)?e.points.length<2:e.width===0&&e.height===0,Hp=(e,t,n,r,o)=>{let[i,a,s,d]=Ae(e,o),c=Sn({clientX:r.offsetLeft,clientY:r.offsetTop},r),l=Sn({clientX:r.offsetLeft+t,clientY:r.offsetTop+n},r);return c.x<=s&&c.y<=d&&l.x>=i&&l.y>=a},rJ=(e,t,n,r,o,i)=>{let[a,s,d,c]=Pe(e,o),l=Sn({clientX:r.offsetLeft+(i?.left||0),clientY:r.offsetTop+(i?.top||0)},r),U=Sn({clientX:r.offsetLeft+t-(i?.right||0),clientY:r.offsetTop+n-(i?.bottom||0)},r);return a>=l.x&&s>=l.y&&d<=U.x&&c<=U.y},Fi=(e,t,n)=>{let r=Math.abs(t),o=Math.abs(n);if(e==="line"||e==="arrow"||e==="freedraw"){let i=Math.round(Math.atan(o/r)/Pt)*Pt;i===0?n=0:i===Math.PI/2?t=0:n=r*Math.tan(i)*Math.sign(n)||n}else e!=="selection"&&(n=r*Math.sign(n));return{width:t,height:n}},Ja=(e,t,n,r)=>{let o=n-e,i=r-t,a=Math.round(Math.atan(i/o)/Pt)*Pt;if(a===0)i=0;else if(a===Math.PI/2)o=0;else{let s=Math.tan(a),d=-1,c=t-s*e,l=-1/s,U=-1,p=r-l*n,m=(d*p-U*c)/(s*U-l*d),b=(c*l-p*s)/(s*U-l*d);o=m-e,i=b-t}return{width:o,height:i}};var ss=e=>{let t={width:e.width,height:e.height,x:e.x,y:e.y};if(e.width<0){let n=Math.abs(e.width);t.width=n,t.x=e.x-n}if(e.height<0){let n=Math.abs(e.height);t.height=n,t.y=e.y-n}return t};var Qp={mouse:8,pen:16,touch:28},E9=16,e6={e:!0,s:!0,n:!0,w:!0};var jp={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},ws={e:!0,s:!0,n:!0,w:!0},cn=(e,t,n,r,o,i,a)=>{let[s,d]=T(u(e+n/2,t+r/2),u(o,i),a);return[s-n/2,d-r/2,n,r]},Bi=e=>!(e.viewport.isMobile||e.isTouchScreen&&(Ps||Ns)),Rs=e=>Bi(e)?e6:{},_i=([e,t,n,r,o,i],a,s,d,c={},l=4,U=mr)=>{let p=Qp[d],m=p/s.value,b=p/s.value,E=p/s.value,g=p/s.value,y=n-e,x=r-t,h=l/s.value,w=(p-U*2)/(2*s.value),I={nw:c.nw?void 0:cn(e-h-E+w,t-h-g+w,m,b,o,i,a),ne:c.ne?void 0:cn(n+h-w,t-h-g+w,m,b,o,i,a),sw:c.sw?void 0:cn(e-h-E+w,r+h-w,m,b,o,i,a),se:c.se?void 0:cn(n+h-w,r+h-w,m,b,o,i,a),rotation:c.rotation?void 0:cn(e+y/2-m/2,t-h-g+w-E9/s.value,m,b,o,i,a)},v=5*Qp.mouse/s.value;return Math.abs(y)>v&&(c.n||(I.n=cn(e+y/2-m/2,t-h-g+w,m,b,o,i,a)),c.s||(I.s=cn(e+y/2-m/2,r+h-w,m,b,o,i,a))),Math.abs(x)>v&&(c.w||(I.w=cn(e-h-E+w,t+x/2-b/2,m,b,o,i,a)),c.e||(I.e=cn(n+h-w,t+x/2-b/2,m,b,o,i,a))),I},Ts=(e,t,n,r="mouse",o=e6)=>{if(e.locked||W(e))return{};if(e.type==="freedraw"||ae(e)){if(e.points.length===2){let[,a]=e.points;a[0]===0||a[1]===0?o=ws:a[0]>0&&a[1]<0?o=jp:a[0]>0&&a[1]>0?o=ws:a[0]<0&&a[1]>0?o=jp:a[0]<0&&a[1]<0&&(o=ws)}}else de(e)&&(o={...o,rotation:!0});let i=ae(e)?mr+8:Ye(e)?0:mr;return _i(C(e,n,!0),e.angle,t,r,o,i,Ye(e)?0:void 0)},lJ=(e,t)=>{if(t.editingLinearElement)return!1;if(e.length>1)return!0;let n=e[0];return W(n)?!1:ae(n)?n.points.length>2:!0};var Ls=(e,t,n)=>t>=e[0]&&t<=e[0]+e[2]&&n>=e[1]&&n<=e[1]+e[3],t6=(e,t,n,r,o,i,a,s)=>{if(!n.selectedElementIds[e.id])return!1;let{rotation:d,...c}=Ts(e,i,t,a,Rs(s));if(d&&Ls(d,r,o))return"rotation";let l=Object.keys(c).filter(U=>{let p=c[U];return p?Ls(p,r,o):!1});if(l.length>0)return l[0];if(Bi(s)){let[U,p,m,b,E,g]=C(e,t);if(!(ae(e)&&e.points.length<=2)){let y=Ye(e)?0:br/i.value,x=br/i.value,h=n6(u(U-y,p-y),u(m+y,b+y),u(E,g),e.angle);for(let[w,I]of Object.entries(h))if(Ft(u(r,o),I,x))return w}}return!1},g9=(e,t,n,r,o,i,a,s)=>e.reduce((d,c)=>{if(d)return d;let l=t6(c,a,t,n,r,o,i,s);return l?{element:c,transformHandleType:l}:null},null),x9=([e,t,n,r],o,i,a,s,d)=>{let c=_i([e,t,n,r,(e+n)/2,(t+r)/2],0,a,s,Rs(d)),l=Object.keys(c).find(U=>{let p=c[U];return p&&Ls(p,o,i)});if(l)return l;if(Bi(d)){let U=(e+n)/2,p=(t+r)/2,m=br/a.value,b=n6(u(e-m,t-m),u(n+m,r+m),u(U,p),0);for(let[E,g]of Object.entries(b))if(Ft(u(o,i),g,m))return E}return!1},Ms=["ns","nesw","ew","nwse"],h9=(e,t)=>{let n=Ms.indexOf(e);if(n>=0){let r=Math.round(t/(Math.PI/4));e=Ms[(n+r)%Ms.length]}return e},y9=e=>{let{element:t,transformHandleType:n}=e,r=t&&Math.sign(t.height)*Math.sign(t.width)===-1,o=null;switch(n){case"n":case"s":o="ns";break;case"w":case"e":o="ew";break;case"nw":case"se":r?o="nesw":o="nwse";break;case"ne":case"sw":r?o="nwse":o="nesw";break;case"rotation":return"grab"}return o&&t&&(o=h9(o,t.angle)),o?`${o}-resize`:""},n6=([e,t],[n,r],o,i)=>{let a=T(u(e,t),o,i),s=T(u(n,t),o,i),d=T(u(e,r),o,i),c=T(u(n,r),o,i);return{n:[a,s],e:[s,c],s:[c,d],w:[d,a]}};var I9=(e,t,n,r,o,i,a,s,d,c,l,U)=>{if(n.length===1){let[p]=n;if(t==="rotation")W(p)||(w9(p,r,o,d,c,i),Ht(p,r));else{if(X(p)&&t)return R9(e,p,r,t,a,d,c),Ht(p,r),!0;if(t){let m=n[0].id,b=r.get(m),E=e.get(m);if(b&&E){let{nextWidth:g,nextHeight:y}=$9(b,E,r,e,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});v9(g,y,b,E,r,e,t,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a})}}}return!0}else if(n.length>1){if(t==="rotation")return T9(e,n,r,o,d,c,i,l,U),!0;if(t){let{nextWidth:p,nextHeight:m,flipByX:b,flipByY:E,originalBoundingBox:g}=P9(n,e,r,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});return N9(n,r,t,o,e,{shouldResizeFromCenter:a,shouldMaintainAspectRatio:s,flipByX:b,flipByY:E,nextWidth:p,nextHeight:m,originalBoundingBox:g}),!0}}return!1},w9=(e,t,n,r,o,i)=>{let[a,s,d,c]=C(e,t),l=(a+d)/2,U=(s+c)/2,p;de(e)?p=0:(p=5*Math.PI/2+Math.atan2(o-U,r-l),i&&(p=p+Pt/2,p=p-p%Pt),p=xr(p));let m=Jt(e);if(Y(e,{angle:p}),m){let b=n.getElement(m);b&&!ee(e)&&Y(b,{angle:p})}},r6=(e,t,n,r)=>ae(e)||Ce(e)?{points:tr(0,t,tr(1,n,e.points,r),r)}:{},Ds=(e,t,n)=>{let r=e.width;if(Fe(e)){let a=qe(e,t);a&&(r=Rt(a,e))}let i=e.fontSize*(n/r);return i<bo?null:{size:i}},R9=(e,t,n,r,o,i,a)=>{let[s,d,c,l,U,p]=C(t,n),[m,b]=T(u(i,a),u(U,p),-t.angle),E=0,g=0;r!=="e"&&r!=="w"&&(r.includes("e")&&(E=(m-s)/(c-s)),r.includes("w")&&(E=(c-m)/(c-s)),r.includes("n")&&(g=(l-b)/(l-d)),r.includes("s")&&(g=(b-d)/(l-d)));let y=Math.max(E,g);if(y>0){let x=t.width*y,h=t.height*y,w=Ds(t,n,x);if(w===null)return;let I=[s,d],v=[c,l],L=[U,p],S=u(s,d);if(["n","w","nw"].includes(r)&&(S=u(v[0]-Math.abs(x),v[1]-Math.abs(h))),r==="ne"){let G=[I[0],v[1]];S=u(G[0],G[1]-Math.abs(h))}if(r==="sw"){let G=[v[0],I[1]];S=u(G[0]-Math.abs(x),G[1])}["s","n"].includes(r)&&(S[0]=L[0]-x/2),["e","w"].includes(r)&&(S[1]=L[1]-h/2),o&&(S[0]=L[0]-Math.abs(x)/2,S[1]=L[1]-Math.abs(h)/2);let B=t.angle,P=T(S,u(U,p),B),F=u(S[0]+Math.abs(x)/2,S[1]+Math.abs(h)/2),_=T(F,u(U,p),B);S=T(P,_,-B);let[Z,we]=S;Y(t,{fontSize:w.size,width:x,height:h,x:Z,y:we})}if(r==="e"||r==="w"){let x=e.get(t.id),[h,w,I,v]=wt(x,x.width,x.height,!0),L=u(h,w),S=u(I,v),B=kt(L,S),P=T(u(i,a),B,-x.angle),[F,,_]=wt(t,t.width,t.height,!0),Z=_-F,we=S[0]-L[0],G=Oo(be({fontSize:t.fontSize,fontFamily:t.fontFamily}),t.lineHeight),ce=we/Z;r.includes("e")&&(ce=(P[0]-L[0])/Z),r.includes("w")&&(ce=(S[0]-P[0])/Z);let J=t.width*ce<G?G:t.width*ce,j=en(t.originalText,be(t),Math.abs(J)),he=ht(j,be(t),t.lineHeight),Ke=he.height,[fr,Jn,Yn,Ai]=wt(x,J,Ke,!0),lo=Yn-fr,Ki=Ai-Jn,Gt=[...L];["n","w","nw"].includes(r)&&(Gt=[S[0]-Math.abs(lo),L[1]]);let pr=x.angle,Cn=T(Gt,B,pr),$t=u(Gt[0]+Math.abs(lo)/2,Gt[1]+Math.abs(Ki)/2),ur=T($t,B,pr);Gt=T(Cn,ur,-pr);let lt={width:Math.abs(J),height:Math.abs(he.height),x:Gt[0],y:Gt[1],text:j,autoResize:!1};Y(t,lt)}},T9=(e,t,n,r,o,i,a,s,d)=>{let c=5*Math.PI/2+Math.atan2(i-d,o-s);a&&(c+=Pt/2,c-=c%Pt);for(let l of t)if(!de(l)){let[U,p,m,b]=C(l,n),E=(U+m)/2,g=(p+b)/2,y=e.get(l.id)?.angle??l.angle,[x,h]=T(u(E,g),u(s,d),c+y-l.angle);W(l)?Y(l,{points:c2(l,n)}):Y(l,{x:l.x+(x-E),y:l.y+(h-g),angle:xr(c+y)},!1),Ht(l,n,{simultaneouslyUpdated:t});let w=oe(l,n);w&&!ee(l)&&Y(w,{x:w.x+(x-E),y:w.y+(h-g),angle:xr(c+y)},!1)}r.triggerUpdate()},M9=(e,t,n,r,o)=>{let[i,a,s,d]=t.length===1?C(t[0],n):Pe(t),c=(i+s)/2,l=(a+d)/2,U=t.length===1?t[0].angle:0;switch([r,o]=T(u(r,o),u(c,l),-U),e){case"n":return T(u(r-(i+s)/2,o-a),u(0,0),U);case"s":return T(u(r-(i+s)/2,o-d),u(0,0),U);case"w":return T(u(r-i,o-(a+d)/2),u(0,0),U);case"e":return T(u(r-s,o-(a+d)/2),u(0,0),U);case"nw":return T(u(r-i,o-a),u(0,0),U);case"ne":return T(u(r-s,o-a),u(0,0),U);case"sw":return T(u(r-i,o-d),u(0,0),U);case"se":return T(u(r-s,o-d),u(0,0),U);default:return[0,0]}},L9=(e,t)=>{let[,[n,r]]=t.points;return e==="nw"&&(n<0||r<0)||e==="ne"&&n>=0||e==="sw"&&n<=0||e==="se"&&(n>0||r>0)?"end":"origin"},D9=(e,t,n)=>{if(n)return"center";if(t)switch(e){case"n":return"south-side";case"e":return"west-side";case"s":return"north-side";case"w":return"east-side";case"ne":return"bottom-left";case"nw":return"bottom-right";case"se":return"top-left";case"sw":return"top-right"}return["e","se","s"].includes(e)?"top-left":["n","nw","w"].includes(e)?"bottom-right":e==="ne"?"bottom-left":"top-right"},S9=(e,t,n,r,o,i,a,s,d)=>{let c=D9(a,s,d),[l,U]=e;switch(c){case"top-left":return{x:l+(t-r)/2+(r-t)/2*Math.cos(i)+(n-o)/2*Math.sin(i),y:U+(n-o)/2+(r-t)/2*Math.sin(i)+(o-n)/2*Math.cos(i)};case"top-right":return{x:l+(t-r)/2*(Math.cos(i)+1)+(n-o)/2*Math.sin(i),y:U+(n-o)/2+(t-r)/2*Math.sin(i)+(o-n)/2*Math.cos(i)};case"bottom-left":return{x:l+(t-r)/2*(1-Math.cos(i))+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)+(r-t)/2*Math.sin(i)};case"bottom-right":return{x:l+(t-r)/2*(Math.cos(i)+1)+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)+(t-r)/2*Math.sin(i)};case"center":return{x:l-(r-t)/2,y:U-(o-n)/2};case"east-side":return Math.abs(U+(t-r)/2*Math.sin(i)+(n-o)/2)>1e6&&console.error("getResizedOrigin() new calculation creates extremely large (> 1e6) y value where the old calculation resulted in",{result:U+(o-n)/2+(t-r)/2*Math.sin(i)}),{x:l+(t-r)/2*(Math.cos(i)+1),y:U+(o-n)/2+(t-r)/2*Math.sin(i)};case"west-side":return{x:l+(t-r)/2*(1-Math.cos(i)),y:U+(r-t)/2*Math.sin(i)+(n-o)/2};case"north-side":return{x:l+(t-r)/2+(n-o)/2*Math.sin(i),y:U+(o-n)/2*(Math.cos(i)-1)};case"south-side":return{x:l+(t-r)/2+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)}}},v9=(e,t,n,r,o,i,a,{shouldInformMutation:s=!0,shouldMaintainAspectRatio:d=!1,shouldResizeFromCenter:c=!1}={})=>{let l={},U=oe(n,o);if(U){let E=i.get(U.id);if(E&&(l={fontSize:E.fontSize}),d){let g={...n,width:e,height:t},y=Ds(U,o,Rt(g,U));if(y===null)return;l={fontSize:y.size}}else{let g=wd(be(U),U.lineHeight),y=Td(U.fontSize,U.lineHeight);e=Math.max(e,g),t=Math.max(t,y)}}let p=r6(r,e,t,!0),m=u(r.x,r.y);if(ae(r)){let[E,g]=Ae(r,i);m=u(E,g)}let b=S9(m,r.width,r.height,e,t,r.angle,a,d,c);if(ae(r)&&p.points){let E=r.x-m[0],g=r.y-m[1];b.x+=E,b.y+=g;let y=p.points[0][0],x=p.points[0][1];b.x+=y,b.y+=x,p.points=p.points.map(h=>u(h[0]-y,h[1]-x))}if(e<0&&(b.x=b.x+e),t<0&&(b.y=b.y+t),"scale"in n&&"scale"in r&&Y(n,{scale:[(Math.sign(e)||r.scale[0])*r.scale[0],(Math.sign(t)||r.scale[1])*r.scale[1]]}),ee(n)&&U&&d){let E=e/n.width*U.fontSize;if(E<bo)return;l.fontSize=E}if(e!==0&&t!==0&&Number.isFinite(b.x)&&Number.isFinite(b.y)){let E={...b,width:Math.abs(e),height:Math.abs(t),...p};Y(n,E,s),Ht(n,o,{newSize:{width:e,height:t}}),U&&l!=null&&Y(U,{fontSize:l.fontSize}),_n(n,o,a,d)}},$9=(e,t,n,r,o,i,a,{shouldMaintainAspectRatio:s=!1,shouldResizeFromCenter:d=!1}={})=>{let[c,l,U,p]=wt(t,t.width,t.height,!0),m=u(c,l),b=u(U,p),E=kt(m,b),g=T(u(i,a),E,-t.angle),[y,x,h,w]=wt(e,e.width,e.height,!0),I=h-y,v=w-x,L=b[0]-m[0],S=b[1]-m[1],B=L/I,P=S/v;o.includes("e")&&(B=(g[0]-m[0])/I),o.includes("s")&&(P=(g[1]-m[1])/v),o.includes("w")&&(B=(b[0]-g[0])/I),o.includes("n")&&(P=(b[1]-g[1])/v);let F=e.width*B,_=e.height*P;if(d&&(F=2*F-t.width,_=2*_-t.height),s){let Z=Math.abs(F)/t.width,we=Math.abs(_)/t.height;if(o.length===1&&(_*=Z,F*=we),o.length===2){let G=Math.max(Z,we);F=t.width*G*Math.sign(F),_=t.height*G*Math.sign(_)}}return{nextWidth:F,nextHeight:_}},P9=(e,t,n,r,o,i,{shouldMaintainAspectRatio:a=!1,shouldResizeFromCenter:s=!1}={})=>{let d=e.map(Z=>t.get(Z.id)),c=d.reduce((Z,we)=>{if(!ae(we))return Z;let G=Jt(we);if(!G)return Z;let ce=t.get(G)??null;return Fe(ce)?[...Z,{...ce,...z.getBoundTextElementPosition(we,ce,n)}]:Z},[]),l=va(d.map(Z=>Z).concat(c)),{minX:U,minY:p,maxX:m,maxY:b,midX:E,midY:g}=l,y=m-U,x=b-p,h={ne:[U,b],se:[U,p],sw:[m,p],nw:[m,b],e:[U,p+x/2],w:[m,p+x/2],n:[U+y/2,b],s:[U+y/2,p]},[w,I]=s?[E,g]:h[r],v=s?2:1,L=Math.max(Math.abs(o-w)/y||0,Math.abs(i-I)/x||0)*v,S=r.includes("e")||r.includes("w")?Math.abs(o-w)*v:y,B=r.includes("n")||r.includes("s")?Math.abs(i-I)*v:x;a&&(S=y*L*Math.sign(o-w),B=x*L*Math.sign(i-I));let P={ne:[o<w,i>I],se:[o<w,i<I],sw:[o>w,i<I],nw:[o>w,i>I],e:[o<w,!1],w:[o>w,!1],n:[!1,i>I],s:[!1,i<I]},[F,_]=P[r].map(Z=>Z);return{originalBoundingBox:l,nextWidth:S,nextHeight:B,flipByX:F,flipByY:_}},N9=(e,t,n,r,o,{shouldMaintainAspectRatio:i=!1,shouldResizeFromCenter:a=!1,flipByX:s=!1,flipByY:d=!1,nextHeight:c,nextWidth:l,originalBoundingBox:U}={})=>{if(l===void 0&&c===void 0&&s===void 0&&d===void 0||c===0||l===0)return;o||(o=t);let p=e.reduce((v,L)=>{let S=o.get(L.id);return S&&v.push({orig:S,latest:L}),v},[]),m;if(U)m=U;else{let v=p.reduce((L,{orig:S})=>{if(!ae(S))return L;let B=Jt(S);if(!B)return L;let P=o.get(B)??null;return Fe(P)?[...L,{...P,...z.getBoundTextElementPosition(S,P,t)}]:L},[]);m=va(p.map(({orig:L})=>L).concat(v))}let{minX:b,minY:E,maxX:g,maxY:y,midX:x,midY:h}=m,w=g-b,I=y-E;if(l===void 0&&c===void 0&&(l=w,c=I),i&&(l===void 0?l=c*(w/I):c===void 0?c=l*(I/w):Math.abs(l/c-w/I)>.001&&(l=c*(w/I))),l&&c){let v=n.includes("e")||n.includes("w")?Math.abs(l)/w:1,L=n.includes("n")||n.includes("s")?Math.abs(c)/I:1,S;n.length===1?S=n.includes("e")||n.includes("w")?v:L:S=Math.max(Math.abs(l)/w||0,Math.abs(c)/I||0);let B={ne:[b,y],se:[b,E],sw:[g,E],nw:[g,y],e:[b,E+I/2],w:[g,E+I/2],n:[b+w/2,y],s:[b+w/2,E]},[P,F]=a?[x,h]:B[n],_=i||p.some(J=>J.latest.angle!==0||X(J.latest)||m2(J.latest));_&&(v=S,L=S);let[Z,we]=[s?-1:1,d?-1:1],G=[];for(let{orig:J,latest:j}of p){if(X(J)&&Fe(J))continue;let he=J.width*v,Ke=J.height*L,fr=xr(J.angle*Z*we),Jn=ae(J)||Ce(J),Yn=J.x-P,Ai=J.y-F,lo=s&&!Jn?he:0,Ki=d&&!Jn?Ke:0,Gt=P+Z*(Yn*v+lo),pr=F+we*(Ai*L+Ki),Cn=r6(J,he*Z,Ke*we,!1),$t={x:Gt,y:pr,width:he,height:Ke,angle:fr,...Cn};if(W(J)&&(J.startBinding&&($t.startBinding={...J.startBinding,fixedPoint:[s?-J.startBinding.fixedPoint[0]+1:J.startBinding.fixedPoint[0],d?-J.startBinding.fixedPoint[1]+1:J.startBinding.fixedPoint[1]]}),J.endBinding&&($t.endBinding={...J.endBinding,fixedPoint:[s?-J.endBinding.fixedPoint[0]+1:J.endBinding.fixedPoint[0],d?-J.endBinding.fixedPoint[1]+1:J.endBinding.fixedPoint[1]]}),J.fixedSegments&&Cn.points&&($t.fixedSegments=J.fixedSegments.map(lt=>({...lt,start:Cn.points[lt.index-1],end:Cn.points[lt.index]})))),Ye(J)&&($t.scale=[J.scale[0]*Z,J.scale[1]*we]),X(J)){let lt=Ds(J,t,he);if(!lt)return;$t.fontSize=lt.size}let ur=o.get(Jt(J)??"");if(ur)if(_){let lt=ur.fontSize*S;if(lt<bo)return;$t.boundTextFontSize=lt}else $t.boundTextFontSize=ur.fontSize;G.push({element:j,update:$t})}let ce=G.map(({element:J})=>J);for(let{element:J,update:{boundTextFontSize:j,...he}}of G){let{width:Ke,height:fr,angle:Jn}=he;Y(J,he,!1,{isDragging:!0}),Ht(J,t,{simultaneouslyUpdated:ce,newSize:{width:Ke,height:fr}});let Yn=oe(J,t);Yn&&j&&(Y(Yn,{fontSize:j,angle:ae(J)?void 0:Jn},!1),_n(J,t,n,!0))}r.triggerUpdate()}};var F9=(e,t,n,r,o,i)=>{if(t.length===1&&W(t[0])&&(t[0].startBinding||t[0].endBinding))return;let a=t.filter(U=>{if(W(U)&&U.startBinding&&U.endBinding){let p=t.find(b=>b.id===U.startBinding?.elementId),m=t.find(b=>b.id===U.endBinding?.elementId);return p&&m}return!0}),s=new Set(a),d=a.filter(U=>de(U)).map(U=>U.id);if(d.length>0)for(let U of r.getNonDeletedElements())U.frameId!==null&&d.includes(U.frameId)&&s.add(U);let c=Pe(Array.from(s).map(U=>e.originalElements.get(U.id)??U)),l=B9(c,n,o,i);s.forEach(U=>{if(o6(e,U,l),!ee(U)){let p=oe(U,r.getNonDeletedElementsMap());p&&o6(e,p,l),Ht(U,r.getElementsMapIncludingDeleted(),{simultaneouslyUpdated:Array.from(s)})}})},B9=(e,t,n,r)=>{let[o,i]=e,a=o+t.x+n.x,s=i+t.y+n.y;if(n.x===0||n.y===0){let[d,c]=Cr(o+t.x,i+t.y,r);n.x===0&&(a=d),n.y===0&&(s=c)}return{x:a-o,y:s-i}},o6=(e,t,n)=>{let r=e.originalElements.get(t.id)??t,o=r.x+n.x,i=r.y+n.y;Y(t,{x:o,y:i})},_9=(e,t,n)=>{let[r,o]=Pe(e);return[t-r,n-o]},O9=({newElement:e,elementType:t,originX:n,originY:r,x:o,y:i,width:a,height:s,shouldMaintainAspectRatio:d,shouldResizeFromCenter:c,zoom:l,widthAspectRatio:U=null,originOffset:p=null,informMutation:m=!0})=>{d&&e.type!=="selection"&&(U?s=a/U:(Math.abs(i-r)>Math.abs(o-n)?{width:a,height:s}=Fi(t,s,o<n?-a:a):{width:a,height:s}=Fi(t,a,i<r?-s:s),s<0&&(s=-s)));let b=o<n?n-a:n,E=i<r?r-s:r;c&&(a+=a,s+=s,b=n-a/2,E=r-s/2);let g=null;if(X(e)){s=e.height;let y=Oo(be({fontSize:e.fontSize,fontFamily:e.fontFamily}),e.lineHeight);a=Math.max(a,y),Math.abs(o-n)>Fs/l&&(g={autoResize:!1}),E=r,c&&(b=n-a/2)}if(a!==0&&s!==0){let y=null;Ye(e)&&(y={initialWidth:a,initialHeight:s}),Y(e,{x:b+(p?.x??0),y:E+(p?.y??0),width:a,height:s,...g,...y},m)}};var A9=(e,t)=>!!(!e.viewModeEnabled&&e.openDialog?.name!=="elementLinkSelector"&&(e.activeTool.type!=="custom"&&(e.editingTextElement||e.activeTool.type!=="selection"&&e.activeTool.type!=="eraser"&&e.activeTool.type!=="hand"&&e.activeTool.type!=="laser")||it(t,e).length));var eY=e=>e.reduce((t,n)=>t+n.version,0),tY=e=>{let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e[n].versionNonce;return t>>>0},V2=e=>{let t=5381;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)+t+r}return t>>>0},l2=e=>e.filter(t=>!t.isDeleted&&!ro(t)),ds=e=>e.filter(t=>!t.isDeleted),Cp=e=>!e.isDeleted,i6=e=>ds(e).map(t=>ji(t.type)?{...t,lastCommittedPoint:null}:t),z2=e=>i6(e),wi=e=>i6(e);var s6=async e=>{let t;if(e.type===H.png)try{return await(await import("./data/image-WPUB6BDO.js")).decodePngMetadata(e)}catch(n){throw n.message==="INVALID"?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):new nn("Error: cannot restore image")}else if("text"in Blob?t=await e.text():t=await new Promise(n=>{let r=new FileReader;r.readAsText(e,"utf8"),r.onloadend=()=>{r.readyState===FileReader.DONE&&n(r.result)}}),e.type===H.svg)try{return pp({svg:t})}catch(n){throw n.message==="INVALID"?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):new nn("Error: cannot restore image")}return t};var H9=e=>e&&e.name.match(/\.(json|excalidraw|png|svg)$/)?.[1]||null,MY=e=>e==="png"||e==="svg",k2=e=>{let t=H9(e);return t==="png"||t==="svg"},ls=e=>!!e&&Object.values(ho).includes(e),Oi=e=>{let{type:t}=e||{};return ls(t)},J9=async(e,t,n,r)=>{let o=await s6(e),i;try{try{i=JSON.parse(o)}catch(a){throw Oi(e)?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):a}if(W2(i))return{type:H.excalidraw,data:no({elements:wi(i.elements||[]),appState:{theme:t?.theme,fileHandle:r||e.handle||null,...wo(i.appState||{}),...t?Na(i.elements||[],t):{}},files:i.files},t,n,{repairBindings:!0,refreshDimensions:!1})};if(ja(i))return{type:H.excalidrawlib,data:i};throw new Error("Error: invalid file")}catch(a){throw a instanceof nn?a:new Error("Error: invalid file")}},Z2=async(e,t,n,r)=>{let o=await J9(e,t,n,r);if(o.type!==H.excalidraw)throw new Error("Error: invalid file");return o.data},Y9=(e,t="unpublished")=>{let n=JSON.parse(e);if(!ja(n))throw new Error("Invalid library");let r=n.libraryItems||n.library;return xp(r,t)},LY=async(e,t="unpublished")=>Y9(await s6(e),t),DY=async e=>new Promise(async(t,n)=>{try{Po(e)&&(e=await e),e.toBlob(r=>{if(!r)return n(new Ho("Error: Canvas too big","CANVAS_POSSIBLY_TOO_BIG"));t(r)})}catch(r){n(r)}}),SY=async e=>{try{let t=await window.crypto.subtle.digest("SHA-1",await ln(e));return pd(new Uint8Array(t))}catch(t){return console.error(t),K9(40)}},vY=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let o=r.result;t(o)},r.onerror=o=>n(o),r.readAsDataURL(e)}),$Y=(e,t)=>`data:${t};base64,${Mi(co(e),!0)}`,PY=(e,t="")=>{let n=e.indexOf(","),r=atob(e.slice(n+1)),o=e.slice(0,n).split(":")[1].split(";")[0],i=new ArrayBuffer(r.length),a=new Uint8Array(i);for(let s=0;s<r.length;s++)a[s]=r.charCodeAt(s);return new File([i],t,{type:o})},NY=e=>Li(e.slice(e.indexOf(",")+1)),FY=async(e,t)=>{if(e.type===H.svg)return e;let[n,r]=await Promise.all([import("pica").then(i=>i.default),import("image-blob-reduce").then(i=>i.default)]),o=r({pica:n({features:["js","wasm"]})});if(t.outputType){let{outputType:i}=t;o._create_blob=function(a){return this.pica.toBlob(a.out_canvas,i,.8).then(s=>(a.out_blob=s,a))}}if(!Oi(e))throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"});return new File([await o.toBlob(e,{max:t.maxWidthOrHeight,alpha:!0})],e.name,{type:t.outputType||e.type})},BY=(e,t="")=>new File([new TextEncoder().encode(e)],t,{type:H.svg}),_Y=async(e,t="")=>{let n;try{n=await fetch(e)}catch{throw new Error("Error: failed to fetch image",{cause:"FETCH_ERROR"})}if(!n.ok)throw new Error("Error: failed to fetch image",{cause:"FETCH_ERROR"});let r=await n.blob();if(r.type&&Oi(r)){let o=t||r.name||"";return new File([r],o,{type:r.type})}throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"})},OY=async e=>{let t=e.dataTransfer.files.item(0),n=await C9(e);return{file:t?await Qa(t):null,fileHandle:n}},C9=async e=>{if(G2)try{return await e.dataTransfer.items[0].getAsFileSystemHandle()||null}catch(t){return console.warn(t.name,t.message),null}return null},a6=e=>{let t=null,n=`${[...new Uint8Array(e).slice(0,8)].join(" ")} `,r={png:"137 80 78 71 13 10 26 10 ",jpg:"255 216 255 ",gif:"71 73 70 56 57 97 "};return n===r.png?t=H.png:n.startsWith(r.jpg)?t=H.jpg:n.startsWith(r.gif)&&(t=H.gif),t},Ur=(e,t,n)=>new File([e],n||"",{type:t}),Qa=async e=>{if(e.type){if(Oi(e)){let t=await ln(e),n=a6(t);n&&n!==e.type&&(e=Ur(t,n,e.name))}}else if(e?.name?.endsWith(".excalidrawlib"))e=Ur(await ln(e),H.excalidrawlib,e.name);else if(e?.name?.endsWith(".excalidraw"))e=Ur(await ln(e),H.excalidraw,e.name);else{let t=await ln(e),n=a6(t);n&&(e=Ur(t,n,e.name))}return e},ln=e=>"arrayBuffer"in e?e.arrayBuffer():new Promise((t,n)=>{let r=new FileReader;r.onload=o=>{if(!o.target?.result)return n(new Error("Couldn't convert blob to ArrayBuffer"));t(o.target.result)},r.readAsArrayBuffer(e)});var co=e=>{let t=typeof e=="string"?new TextEncoder().encode(e):e instanceof Uint8Array?e:new Uint8Array(e),n="";for(let r of t)n+=String.fromCharCode(r);return n},d6=e=>{let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let r=0,o=e.length;r<o;r++)n[r]=e.charCodeAt(r);return t},c6=e=>new TextDecoder("utf-8").decode(d6(e)),Mi=(e,t=!1)=>t?window.btoa(e):window.btoa(co(e)),Li=(e,t=!1)=>t?window.atob(e):c6(window.atob(e));var Di=({text:e,compress:t})=>{let n;if(t!==!1)try{n=co(V9(e))}catch(r){console.error("encode: cannot deflate",r)}return{version:"1",encoding:"bstring",compressed:!!n,encoded:n||co(e)}},Si=e=>{let t;switch(e.encoding){case"bstring":t=e.compressed?e.encoded:c6(e.encoded);break;default:throw new Error(`decode: unknown encoding "${e.encoding}"`)}return e.compressed?q9(new Uint8Array(d6(t)),{to:"string"}):t};var X9=async e=>{let n=l6(new Uint8Array(await ln(e))).find(r=>r.name==="tEXt");return n?U6.decode(n.data):null},Dp=async({blob:e,metadata:t})=>{let n=l6(new Uint8Array(await ln(e))),r=U6.encode(H.excalidraw,JSON.stringify(Di({text:t,compress:!0})));return n.splice(-1,0,r),new Blob([G9(n)],{type:H.png})},rC=async e=>{let t=await X9(e);if(t?.keyword===H.excalidraw)try{let n=JSON.parse(t.text);if(!("encoded"in n)){if("type"in n&&n.type===We.excalidraw)return t.text;throw new Error("FAILED")}return Si(n)}catch(n){throw console.error(n),new Error("FAILED")}throw new Error("INVALID")};export{Z9 as a,W9 as b,Uo as c,fo as d,k as e,z9 as f,Q9 as g,j9 as h,eE as i,tE as j,nE as k,po as l,aE as m,sE as n,dE as o,Ns as p,cE as q,lE as r,UE as s,Bs as t,_s as u,fE as v,pE as w,uE as x,mE as y,uo as z,bE as A,EE as B,gE as C,et as D,xE as E,ye as F,Ze as G,Ne as H,pt as I,Nt as J,Vn as K,Eo as L,mr as M,hE as N,yE as O,IE as P,wE as Q,go as R,ho as S,H as T,RE as U,We as V,Hi as W,TE as X,ME as Y,LE as Z,DE as _,SE as $,As as aa,Ks as ba,vE as ca,yo as da,$E as ea,PE as fa,NE as ga,FE as ha,BE as ia,_E as ja,OE as ka,Hs as la,Ji as ma,AE as na,KE as oa,re as pa,Yi as qa,Se as ra,Xt as sa,Ci as ta,rt as ua,HE as va,b6 as wa,JE as xa,qs as ya,YE as za,fn as Aa,CE as Ba,Gs as Ca,qi as Da,VE as Ea,Xs as Fa,ks as Ga,E6 as Ha,se as Ia,ed as Ja,zE as Ka,Ro as La,hr as Ma,td as Na,ve as Oa,O as Pa,h6 as Qa,To as Ra,ue as Sa,He as Ta,u as Ua,T as Va,ie as Wa,rg as Xa,og as Ya,ig as Za,D6 as _a,ag as $a,sg as ab,zi as bb,be as cb,So as db,Ud as eb,fd as fb,dg as gb,cg as hb,st as ib,vr as jb,lg as kb,Sn as lb,Qi as mb,Ug as nb,Zt as ob,fg as pb,pg as qb,ug as rb,Wt as sb,mg as tb,bg as ub,Eg as vb,gg as wb,te as xb,xg as yb,hg as zb,_t as Ab,yg as Bb,Ig as Cb,wg as Db,Rg as Eb,Po as Fb,Tg as Gb,Qt as Hb,Mg as Ib,vn as Jb,Oe as Kb,Lg as Lb,md as Mb,Dg as Nb,Sg as Ob,vg as Pb,$g as Qb,bd as Rb,Ge as Sb,mn as Tb,Pg as Ub,Ot as Vb,Ye as Wb,No as Xb,Fo as Yb,gt as Zb,X as _b,gd as $b,xd as ac,de as bc,ae as cc,ee as dc,W as ec,ji as fc,$r as gc,N6 as hc,xt as ic,F6 as jc,ea as kc,Ag as lc,bn as mc,Fe as nc,Bo as oc,Kg as pc,Hg as qc,Ct as rc,Lt as sc,Jo as tc,nn as uc,ht as vc,wd as wc,Oo as xc,qg as yc,na as zc,kn as Ac,Td as Bc,Gg as Cc,Md as Dc,en as Ec,ut as Fc,Qs as Gc,js as Hc,Tb as Ic,aF as Jc,sF as Kc,Mb as Lc,dF as Mc,U2 as Nc,cF as Oc,Lb as Pc,an as Qc,lF as Rc,UF as Sc,fF as Tc,Aa as Uc,u2 as Vc,m2 as Wc,dn as Xc,EB as Yc,w2 as Zc,R2 as _c,T2 as $c,Hb as ad,Jb as bd,Yb as cd,S2 as dd,xe as ed,fx as fd,px as gd,ux as hd,mx as id,bx as jd,Ex as kd,gx as ld,xx as md,hx as nd,Ix as od,Pr as pd,_d as qd,wx as rd,Rx as sd,Tx as td,Mx as ud,Lx as vd,Dx as wd,Sx as xd,vx as yd,$x as zd,Px as Ad,Nx as Bd,Fx as Cd,Bx as Dd,_x as Ed,Ox as Fd,Ax as Gd,Kx as Hd,Hx as Id,Jx as Jd,Yx as Kd,Cx as Ld,qx as Md,Gx as Nd,Xx as Od,kx as Pd,zx as Qd,jx as Rd,e4 as Sd,t4 as Td,n4 as Ud,d4 as Vd,c4 as Wd,l4 as Xd,U4 as Yd,f4 as Zd,p4 as _d,u4 as $d,m4 as ae,b4 as be,E4 as ce,g4 as de,x4 as ee,h4 as fe,w4 as ge,L4 as he,D4 as ie,S4 as je,v4 as ke,$4 as le,P4 as me,N4 as ne,F4 as oe,B4 as pe,O4 as qe,A4 as re,K4 as se,H4 as te,J4 as ue,Y4 as ve,C4 as we,V4 as xe,q4 as ye,G4 as ze,X4 as Ae,k4 as Be,Z4 as Ce,W4 as De,z4 as Ee,Q4 as Fe,j4 as Ge,eh as He,th as Ie,nh as Je,rh as Ke,oh as Le,ih as Me,ah as Ne,sa as Oe,da as Pe,sh as Qe,dh as Re,ch as Se,lh as Te,Uh as Ue,fh as Ve,ph as We,uh as Xe,bh as Ye,Eh as Ze,gh as _e,xh as $e,hh as af,wh as bf,Rh as cf,Th as df,Mh as ef,Lh as ff,Dh as gf,Sh as hf,vh as if,$h as jf,Fh as kf,Bh as lf,_h as mf,Oh as nf,Ah as of,Kh as pf,Hh as qf,Jh as rf,Yh as sf,Ch as tf,Vh as uf,qh as vf,Gh as wf,Xh as xf,kh as yf,Zh as zf,Wh as Af,zh as Bf,Qh as Cf,jh as Df,ey as Ef,ny as Ff,ry as Gf,oy as Hf,iy as If,ay as Jf,sy as Kf,dy as Lf,cy as Mf,ly as Nf,Uy as Of,fy as Pf,Fn as Qf,Go as Rf,qr as Sf,CB as Tf,VB as Uf,qB as Vf,GB as Wf,Vt as Xf,Va as Yf,XB as Zf,On as _f,Zb as $f,Wb as ag,Gr as bg,zb as cg,kB as dg,p$ as eg,Zo as fg,M1 as gg,Q as hg,C$ as ig,V$ as jg,q$ as kg,G$ as lg,ma as mg,xm as ng,pa as og,K$ as pg,hm as qg,Mm as rg,aP as sg,ei as tg,T1 as ug,It as vg,ot as wg,At as xg,Re as yg,Be as zg,tt as Ag,Qe as Bg,$e as Cg,C1 as Dg,FN as Eg,$a as Fg,j1 as Gg,e2 as Hg,Pa as Ig,BN as Jg,_N as Kg,ON as Lg,si as Mg,ab as Ng,hn as Og,Ht as Pg,Ui as Qg,a2 as Rg,AN as Sg,KN as Tg,fi as Ug,xi as Vg,dr as Wg,B2 as Xg,ka as Yg,Y2 as Zg,H_ as _g,J_ as $g,ke as ah,UP as bh,jn as ch,fP as dh,G2 as eh,X2 as fh,za as gh,xn as hh,gp as ih,v7 as jh,no as kh,xp as lh,X9 as mh,Dp as nh,rC as oh,H9 as ph,MY as qh,k2 as rh,Oi as sh,J9 as th,Z2 as uh,Y9 as vh,LY as wh,DY as xh,SY as yh,vY as zh,$Y as Ah,PY as Bh,NY as Ch,FY as Dh,BY as Eh,_Y as Fh,OY as Gh,Qa as Hh,eo as Ih,xO as Jh,hO as Kh,p7 as Lh,yO as Mh,u7 as Nh,Q2 as Oh,j2 as Ph,MO as Qh,ns as Rh,b7 as Sh,FO as Th,AO as Uh,ep as Vh,tp as Wh,VO as Xh,qO as Yh,E7 as Zh,np as _h,GO as $h,x7 as ai,sp as bi,Up as ci,fp as di,RA as ei,QA as fi,O7 as gi,UK as hi,fK as ii,Tp as ji,pK as ki,uK as li,Lp as mi,Us as ni,V7 as oi,q7 as pi,G7 as qi,RK as ri,vp as si,Z7 as ti,Pp as ui,QK as vi,$i as wi,yn as xi,jK as yi,eH as zi,io as Ai,is as Bi,as as Ci,tH as Di,nH as Ei,ze as Fi,rH as Gi,j7 as Hi,Ap as Ii,e9 as Ji,oH as Ki,iH as Li,Kp as Mi,up as Ni,mp as Oi,aH as Pi,Pm as Qi,$P as Ri,Bn as Si,ha as Ti,Am as Ui,FP as Vi,Km as Wi,Hm as Xi,Ia as Yi,BP as Zi,Jm as _i,C as $i,Pe as aj,va as bj,fN as cj,ui as dj,Sb as ej,sr as fj,IF as gj,wF as hj,RF as ij,TF as jj,MF as kj,LF as lj,DF as mj,Cr as nj,z as oj,Vr as pj,h2 as qj,y2 as rj,ZF as sj,Ca as tj,sB as uj,_n as vj,I2 as wj,Jt as xj,oe as yj,qe as zj,dB as Aj,cB as Bj,lB as Cj,UB as Dj,fB as Ej,Ya as Fj,Rt as Gj,Or as Hj,Bb as Ij,Ga as Jj,N2 as Kj,kr as Lj,An as Mj,bs as Nj,Zp as Oj,Y as Pj,St as Qj,Xr as Rj,ro as Sj,Hp as Tj,rJ as Uj,Ja as Vj,ss as Wj,Rs as Xj,_i as Yj,Ts as Zj,lJ as _j,g9 as $j,x9 as ak,y9 as bk,I9 as ck,r6 as dk,M9 as ek,L9 as fk,v9 as gk,N9 as hk,F9 as ik,_9 as jk,O9 as kk,A9 as lk,eY as mk,tY as nk,V2 as ok,ds as pk,Cp as qk,t9 as rk,pi as sk,Ib as tk,wb as uk,it as vk,Rb as wk,Oa as xk,yb as yk,Na as zk,Fa as Ak,_a as Bk};
34
+ `).trim()}:n:{type:"text",value:(e.clipboardData?.getData(H.text)||"").trim()}}catch{return{type:"text",value:""}}},uK=async(e,t=!1)=>{let n=await Y7(e,t);if(n.type==="mixedContent")return{mixedContent:n.value};try{let r=!t&&H7(n.value);if(r)return r}catch(r){console.error(r)}try{let r=JSON.parse(n.value),o=r.type===We.excalidrawClipboardWithAPI;if(A7(r))return{elements:r.elements,files:r.files,text:t?JSON.stringify(r.elements,null,2):void 0,programmaticAPI:o}}catch{}return{text:n.value}},Lp=async e=>{try{await navigator.clipboard.write([new window.ClipboardItem({[H.png]:e})])}catch(t){if(Po(e))await navigator.clipboard.write([new window.ClipboardItem({[H.png]:await e})]);else throw t}},Us=async(e,t)=>{if(O7)try{await navigator.clipboard.writeText(e||"");return}catch(n){console.error(n)}try{if(t){if(t.clipboardData?.setData(H.text,e||""),t.clipboardData?.getData(H.text)!==e)throw new Error("Failed to setData on clipboardEvent");return}}catch(n){console.error(n)}if(!C7(e))throw new Error("Error copying to clipboard.")},C7=e=>{e||(e=" ");let t=document.documentElement.getAttribute("dir")==="rtl",n=document.createElement("textarea");n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";let r=window.pageYOffset||document.documentElement.scrollTop;n.style.top=`${r}px`,n.style.fontSize="12pt",n.setAttribute("readonly",""),n.value=e,document.body.appendChild(n);let o=!1;try{n.select(),n.setSelectionRange(0,n.value.length),o=document.execCommand("copy")}catch(i){console.error(i)}return n.remove(),o};var V7=({elements:e,appState:t,files:n,maxWidthOrHeight:r,getDimensions:o,exportPadding:i,exportingFrame:a})=>{let{elements:s,appState:d}=no({elements:e,appState:t},null,null),{exportBackground:c,viewBackgroundColor:l}=d;return Up(s,{...d,offsetTop:0,offsetLeft:0,width:0,height:0},n||{},{exportBackground:c,exportPadding:i,viewBackgroundColor:l,exportingFrame:a},(U,p)=>{let m=document.createElement("canvas");if(r){typeof o=="function"&&console.warn("`getDimensions()` is ignored when `maxWidthOrHeight` is supplied.");let E=Math.max(U,p),g=r<E?r/E:t?.exportScale??1;return m.width=U*g,m.height=p*g,{canvas:m,scale:g}}let b=o?.(U,p)||{width:U,height:p};return m.width=b.width,m.height=b.height,{canvas:m,scale:b.scale??1}})},q7=async e=>{let{mimeType:t=H.png,quality:n}=e;t===H.png&&typeof n=="number"&&console.warn(`"quality" will be ignored for "${H.png}" mimeType`),t==="image/jpg"&&(t=H.jpg),t===H.jpg&&!e.appState?.exportBackground&&(console.warn(`Defaulting "exportBackground" to "true" for "${H.jpg}" mimeType`),e={...e,appState:{...e.appState,exportBackground:!0}});let r=await V7(e);return n=n||(/image\/jpe?g/.test(t)?.92:.8),new Promise((o,i)=>{r.toBlob(async a=>{if(!a)return i(new Error("couldn't export to blob"));a&&t===H.png&&e.appState?.exportEmbedScene&&(a=await Dp({blob:a,metadata:eo(e.elements,e.appState,e.files||{},"local")})),o(a)},t,n)})},G7=async({elements:e,appState:t=ut(),files:n={},exportPadding:r,renderEmbeddables:o,exportingFrame:i,skipInliningFonts:a,reuseImages:s})=>{let{elements:d,appState:c}=no({elements:e,appState:t},null,null),l={...c,exportPadding:r};return fp(d,l,n,{exportingFrame:i,renderEmbeddables:o,skipInliningFonts:a,reuseImages:s})},RK=async e=>{if(e.type==="svg"){let t=await G7(e);await Us(t.outerHTML)}else if(e.type==="png")await Lp(q7(e));else if(e.type==="json")await Tp(e.elements,e.files);else throw new Error("Invalid export type")};var X7=e=>e.type==="diamond"?[u(e.width/2,0),u(e.width,e.height/2),u(e.width/2,e.height),u(0,e.height/2)]:[u(0,0),u(0+e.width,0),u(0+e.width,e.height),u(0,e.height)],k7=e=>ae(e)||Ce(e)?e.points:X7(e),Sp=e=>{let t=e.reduce((n,[r,o])=>(n.minY=Math.min(n.minY,o),n.minX=Math.min(n.minX,r),n.maxX=Math.max(n.maxX,r),n.maxY=Math.max(n.maxY,o),n),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,cx:0,cy:0});return t.cx=(t.maxX+t.minX)/2,t.cy=(t.maxY+t.minY)/2,t},$p=e=>{let t=k7(e),{cx:n,cy:r}=Sp(t),o=u(n,r),i=t.map(l=>T(l,o,e.angle)),{minX:a,minY:s,maxX:d,maxY:c}=Sp(i);return[a+e.x,s+e.y,d+e.x,c+e.y]},vp=(e,t,n=!1)=>{let r=$p(e),o=t[0]<=r[0]&&t[2]>=r[2]&&t[1]<=r[1]&&t[3]>=r[3];return n?o?!0:r[0]<=t[0]&&r[2]>=t[2]&&r[1]<=t[1]&&r[3]>=t[3]:o},Z7=(e,t)=>{let n=$p(e);return(Dr(n[0],_e(t[0],t[2]))||Dr(t[0],_e(n[0],n[2])))&&(Dr(n[1],_e(t[1],t[3]))||Dr(t[1],_e(n[1],n[3])))},Pp=({elements:e,bounds:t,type:n,errorMargin:r=0})=>{ea(t)&&(t=Ae(t,te(e)));let o=[t[0]-r,t[1]-r,t[2]+r,t[3]+r],i=new Set;for(let a of e){if(i.has(a.id))continue;if(n==="overlap"?Z7(a,o):n==="inside"?vp(a,o):vp(a,o,!0)){if(i.add(a.id),a.boundElements)for(let d of a.boundElements)i.add(d.id);X(a)&&a.containerId&&i.add(a.containerId),ee(a)&&(a.startBinding&&i.add(a.startBinding.elementId),a.endBinding&&i.add(a.endBinding?.elementId))}}return e.filter(a=>i.has(a.id))};function Np(e){return[Math.min(e[0][0],e[1][0]),Math.min(e[0][1],e[1][1]),Math.max(e[0][0],e[1][0]),Math.max(e[0][1],e[1][1])]}function W7(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}var z7=1e-6;function Fp(e,t){let n=O(e[1],e[0]),r=O(t,e[0]),o=Me(n,r);return Math.abs(o)<z7}function fs(e,t){let n=O(e[1],e[0]),r=O(t,e[0]);return Me(n,r)<0}function Bp(e,t){return Fp(e,t[0])||Fp(e,t[1])||(fs(e,t[0])?!fs(e,t[1]):fs(e,t[1]))}function _p(e,t){return W7(Np(e),Np(t))&&Bp(e,t)&&Bp(t,e)}var QK=(e,t,n)=>{let r=te(e);for(let o of t)if(o.frameId){let i=n.get(o.id),a=n.get(o.frameId);if(i){let s=r.get(i);s&&Y(s,{frameId:a??o.frameId},!1)}}};function ps(e,t,n){let r=Ma(t,n),o=Ma(e,n);return r.some(a=>o.some(s=>_p(a,s)))}var Op=(e,t,n)=>Pi(pi(e,t,n,!1)).filter(r=>!de(r)&&!r.frameId||r.frameId===t.id),us=(e,t,n)=>pi([t],e,n).some(r=>r.id===t.id);var $i=(e,t,n)=>{let[r,o,i,a]=C(t,n),[s,d,c,l]=Pe(e);return r<=s&&o<=d&&i>=c&&a>=l},yn=(e,t,n)=>$i([e],t,n)||ps(e,t,n)||us(e,t,n),jK=(e,t,n)=>{let[r,o,i,a]=C(t,n);return Lo(u(r,o),u(e.x,e.y),u(i,a))};var eH=e=>{let t=new Map;for(let n of e){let r=de(n)?n.id:n.frameId;r&&!t.has(r)&&t.set(r,io(e,r))}return t},io=(e,t)=>{let n=[];for(let r of e.values())r.frameId===t&&n.push(r);return n},is=e=>e.filter(t=>de(t)),as=e=>{let t=te(is(e));return e.filter(n=>t.has(n.id)||!n.frameId||!t.has(n.frameId))},tH=(e,t,n,r)=>{let o=io(e,t.id),i=new Set(o),a=new Set([...Op(e,t,r),...o.filter(p=>us(p,t,r))]),s=o.filter(p=>!a.has(p)),d=new Set(Array.from(a).flatMap(p=>p.groupIds));for(let p of s)if(!ps(p,t,r))p.groupIds.length===0&&i.delete(p);else if(p.groupIds.length>0)for(let m of p.groupIds)d.add(m);for(let p of s)if(p.groupIds.length>0){let m=!0;for(let b of p.groupIds)d.has(b)&&(m=!1);m&&i.delete(p)}let c=Array.from(a).filter(p=>p.groupIds.length===0);for(let p of c)i.add(p);let l=Array.from(a).filter(p=>p.groupIds.length>0),U=U2(l,n);for(let[p,m]of Object.entries(U))if(m){let b=an(e,p);if($i(b,t,r))for(let E of b)i.add(E)}return[...i].filter(p=>!(X(p)&&p.containerId))},nH=(e,t,n)=>Q7(Pi(e,Op(e,t,n)),t,n),Q7=(e,t,n)=>{let r=[],o=new Map;for(let i of e){let a=!1;if(i.groupIds.length>0){if(i.groupIds.some(s=>o.get(s)))a=!0;else{let s=new Set(i.groupIds.flatMap(d=>an(n,d)));a=!$i(Array.from(s),t,n)}i.groupIds.forEach(s=>{o.set(s,a)})}a||r.push(i)}return r},ze=(e,t)=>e.frameId&&t.get(e.frameId)||null,rH=(e,t)=>{let n=new Set,r=te(e);e=Pi(e);for(let a of e)de(a)&&a.id!==t.id&&n.add(a.id);let o=new Set,i=[];for(let a of e)if(!(de(a)||a.frameId&&n.has(a.frameId)))if(a.groupIds.length){let s=a.groupIds.at(-1);if(!o.has(s)){o.add(s);let d=an(e,s);if(d.some(c=>yn(c,t,r)))for(let c of d)i.push(c)}}else yn(a,t,r)&&i.push(a);return i},j7=(e,t,n,r)=>{let o=te(e),i=new Map;for(let c of e.values())c.frameId===n.id&&i.set(c.id,!0);let a=new Set(t.map(c=>c.id)),s=[],d=new Set;for(let c of t)de(c)&&c.id!==n.id&&d.add(c.id);for(let c of Pi(e,t)){if(de(c)||c.frameId&&d.has(c.frameId)||c.frameId&&r.selectedElementIds[c.id]&&r.selectedElementIds[c.frameId])continue;i.has(c.id)||s.push(c);let l=oe(c,o);l&&!a.has(l.id)&&!i.has(l.id)&&s.push(l)}for(let c of s)Y(c,{frameId:n.id},!1);return e},Ap=(e,t)=>{let n=new Map,r=new Map;for(let o of e)if(o.frameId){n.set(o.id,o);let i=r.get(o.frameId)||[];i.push(o);let a=oe(o,t);a&&(n.set(a.id,a),i.push(a)),r.set(o.frameId,i)}for(let[,o]of n)Y(o,{frameId:null},!1)},e9=(e,t)=>{let n=io(e,t.id);return Ap(n,te(e)),e},oH=(e,t,n,r)=>j7(e9(e,n),t,n,r.state).slice(),iH=(e,t,n)=>{let r=n.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,elements:e}),o=new Set(r);if(t.editingGroupId)for(let s of r)s.groupIds.length===0?o.add(s):s.groupIds.flatMap(d=>an(e,d)).forEach(d=>o.add(d));let i=new Set,a=te(e);return o.forEach(s=>{s.frameId&&!de(s)&&!Kp(s,a,t)&&i.add(s)}),i.size>0&&Ap(i,a),e},Pi=(e,t)=>{let n=new Set,r=t||e;for(let a of r.values()){let s=a.groupIds[a.groupIds.length-1];s&&n.add(s)}let o=new Set;for(let a of n)an(e,a).some(s=>de(s))&&o.add(a);let i=[];for(let a of r.values())o.has(a.groupIds[a.groupIds.length-1])||i.push(a);return i},Ti=(e,t,n)=>{let r=X(e)&&qe(e,t)||e;return r.frameId&&n.selectedElementIds[r.id]&&n.selectedElementIds[r.frameId]?ze(r,t):n.selectedElementIds[r.id]&&n.selectedElementsAreBeingDragged?n.frameToHighlight:ze(r,t)},Kp=(e,t,n,r)=>{let o=r?.targetFrame??Ti(e,t,n);if(!o)return!1;let i=X(e)&&qe(e,t)||e,a=d=>{r?.checkedGroups&&i.groupIds.forEach(c=>{r.checkedGroups?.set(c,d)})};if(!n.selectedElementIds[i.id]||!n.selectedElementsAreBeingDragged||n.selectedElementIds[i.id]&&n.selectedElementIds[o.id])return!0;if(i.groupIds.length===0)return yn(i,o,t);for(let d of i.groupIds)if(r?.checkedGroups?.has(d))return r.checkedGroups.get(d);let s=new Set(i.groupIds.filter(d=>r?.checkedGroups?!r.checkedGroups.has(d):!0).flatMap(d=>an(t,d)));if(n.editingGroupId&&n.selectedElementsAreBeingDragged){let d=new Set(it(t,n));if(n.frameToHighlight!==null)return!0;d.forEach(l=>{s.delete(l)})}for(let d of s)if(de(d))return a(!1),!1;for(let d of s)if(yn(d,o,t))return a(!0),!0;return!1},rs=(e,t,n,r,o)=>{if(!n.frameRendering||!n.frameRendering.clip)return!1;let i=ps(e,t,r)||us(e,t,r);if(i){for(let a of e.groupIds)o?.set(a,!0);return!0}if(!i&&e.groupIds.length>0&&!$i([e],t,r)){let a=!1;if(n.selectedElementsAreBeingDragged)a=Kp(e,r,n,{targetFrame:t,checkedGroups:o});else{a=e.frameId===t.id;for(let s of e.groupIds)o?.set(s,a)}for(let s of e.groupIds)o?.set(s,a);return a}return!1},up=e=>e.name===null?gd(e)?"Frame":"AI Frame":e.name,mp=(e,t)=>Pp({elements:e,bounds:t,type:"overlap"}).filter(n=>!n.frameId||n.frameId===t.id),aH=e=>{let t=te(e);return e.length>1&&e.some(n=>n.frameId&&t.has(n.frameId))};var t9=e=>{let t=new Set;return e.forEach(n=>{de(n)&&t.add(n.id)}),e.filter(n=>!(n.frameId&&t.has(n.frameId)))},pi=(e,t,n,r=!0)=>{let[o,i,a,s]=C(t,n),d=e.filter(c=>{let[l,U,p,m]=Ae(c,n),b=ze(c,n);if(b){let[E,g,y,x]=Ae(b,n);l=Math.max(E,l),U=Math.max(g,U),p=Math.min(y,p),m=Math.min(x,m)}return c.locked===!1&&c.type!=="selection"&&!Fe(c)&&o<=l&&i<=U&&a>=p&&s>=m});return d=r?t9(d):d,d=d.filter(c=>{let l=ze(c,n);return l?yn(c,l,n):!0}),d},Ha=(e,t,n,r)=>{let o=new Set(t.map(i=>i.id));return e.filter(i=>{let a=Hp(i,n.width,n.height,n,r);return!o.has(i.id)&&a})},Ib=function(){let e=null,t=null,n=null,r=(o,i)=>(n!=null&&o===e&&i.selectedElementIds===t||(n=o.some(a=>i.selectedElementIds[a.id]),e=o,t=i.selectedElementIds),n);return r.clearCache=()=>{e=null,t=null,n=null},r}(),wb=(e,t,n)=>{let r=Array.from(new Set(it(e,t).map(o=>n(o))));return r.length===1?r[0]:null},it=(e,t,n)=>{let r=new Set,o=[];for(let i of e.values()){if(t.selectedElementIds[i.id]){o.push(i),r.add(i.id);continue}if(n?.includeBoundTextElement&&Fe(i)&&t.selectedElementIds[i?.containerId]){o.push(i),r.add(i.id);continue}}if(n?.includeElementsInFrames){let i=[];return o.forEach(a=>{de(a)&&io(e,a.id).forEach(s=>!r.has(s.id)&&i.push(s)),i.push(a)}),i}return o},Rb=(e,t)=>t.editingTextElement?[t.editingTextElement]:t.newElement?[t.newElement]:it(e,t,{includeBoundTextElement:!0}),Oa=(e,t)=>Qt(t.selectedElementIds,e)?t.selectedElementIds:e;var Jp=e=>{let t=new Map,n=[];for(let r of e)r.isDeleted||(n.push(r),t.set(r.id,r));return{elementsMap:t,elements:n}},r9=n9(e=>{(M.DEV||M.MODE===et.TEST||window?.DEBUG_FRACTIONAL_INDICES)&&Ga(e,{shouldThrow:M.DEV||M.MODE===et.TEST,includeBoundTextValidation:!0})},1e3*60,{leading:!0,trailing:!1}),o9=e=>{let t=["includeBoundTextElement","includeElementsInFrames"],n="";for(let r of t)n+=`${r}:${e[r]?"1":"0"}`;return n},Yp=e=>typeof e=="string",Hn=class Hn{constructor(){$(this,"callbacks",new Set);$(this,"nonDeletedElements",[]);$(this,"nonDeletedElementsMap",Ge(new Map));$(this,"elements",[]);$(this,"nonDeletedFramesLikes",[]);$(this,"frames",[]);$(this,"elementsMap",Ge(new Map));$(this,"selectedElementsCache",{selectedElementIds:null,elements:null,cache:new Map});$(this,"sceneNonce");$(this,"insertElement",t=>{let n=t.frameId?this.getElementIndex(t.frameId):this.elements.length;this.insertElementAtIndex(t,n)});$(this,"insertElements",t=>{if(!t.length)return;let n=t[0]?.frameId?this.getElementIndex(t[0].frameId):this.elements.length;this.insertElementsAtIndex(t,n)});$(this,"getContainerElement",t=>t&&t.containerId&&this.getElement(t.containerId)||null);$(this,"getElementsFromId",t=>{let n=this.getNonDeletedElementsMap(),r=n.get(t);return r?[r]:an(n,t)})}static mapElementToScene(t,n){Yp(t)?this.sceneMapById.set(t,n):(this.sceneMapByElement.set(t,n),this.sceneMapById.set(t.id,n))}static getScene(t){return Yp(t)?this.sceneMapById.get(t)||null:this.sceneMapByElement.get(t)||null}getSceneNonce(){return this.sceneNonce}getNonDeletedElementsMap(){return this.nonDeletedElementsMap}getElementsIncludingDeleted(){return this.elements}getElementsMapIncludingDeleted(){return this.elementsMap}getNonDeletedElements(){return this.nonDeletedElements}getFramesIncludingDeleted(){return this.frames}getSelectedElements(t){let n=o9(t),r=t?.elements||this.nonDeletedElements;if(this.selectedElementsCache.elements===r&&this.selectedElementsCache.selectedElementIds===t.selectedElementIds){let i=this.selectedElementsCache.cache.get(n);if(i)return i}else t?.elements==null&&this.selectedElementsCache.cache.clear();let o=it(r,{selectedElementIds:t.selectedElementIds},t);return t?.elements==null&&(this.selectedElementsCache.selectedElementIds=t.selectedElementIds,this.selectedElementsCache.elements=this.nonDeletedElements,this.selectedElementsCache.cache.set(n,o)),o}getNonDeletedFramesLikes(){return this.nonDeletedFramesLikes}getElement(t){return this.elementsMap.get(t)||null}getNonDeletedElement(t){let n=this.getElement(t);return n&&Cp(n)?n:null}mapElements(t){let n=!1,r=this.elements.map(o=>{let i=t(o);return i!==o&&(n=!0),i});return n&&this.replaceAllElements(r),n}replaceAllElements(t){let n=t instanceof Array?t:Array.from(t.values()),r=[];r9(n),this.elements=An(n),this.elementsMap.clear(),this.elements.forEach(i=>{de(i)&&r.push(i),this.elementsMap.set(i.id,i),Hn.mapElementToScene(i,this)});let o=Jp(this.elements);this.nonDeletedElements=o.elements,this.nonDeletedElementsMap=o.elementsMap,this.frames=r,this.nonDeletedFramesLikes=Jp(this.frames).elements,this.triggerUpdate()}triggerUpdate(){this.sceneNonce=Ct();for(let t of Array.from(this.callbacks))t()}onUpdate(t){if(this.callbacks.has(t))throw new Error;return this.callbacks.add(t),()=>{if(!this.callbacks.has(t))throw new Error;this.callbacks.delete(t)}}destroy(){this.elements=[],this.nonDeletedElements=[],this.nonDeletedFramesLikes=[],this.frames=[],this.elementsMap.clear(),this.selectedElementsCache.selectedElementIds=null,this.selectedElementsCache.elements=null,this.selectedElementsCache.cache.clear(),Hn.sceneMapById.forEach((t,n)=>{t===this&&Hn.sceneMapById.delete(n)}),this.callbacks.clear()}insertElementAtIndex(t,n){if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");let r=[...this.elements.slice(0,n),t,...this.elements.slice(n)];kr(r,te([t])),this.replaceAllElements(r)}insertElementsAtIndex(t,n){if(!t.length)return;if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");let r=[...this.elements.slice(0,n),...t,...this.elements.slice(n)];kr(r,te(t)),this.replaceAllElements(r)}getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}};$(Hn,"sceneMapByElement",new WeakMap),$(Hn,"sceneMapById",new Map);var ms=Hn,bs=ms;var ao=class{constructor(t){this.scoreFunction=t;$(this,"content",[])}sinkDown(t){let n=this.content[t];for(;t>0;){let r=(t+1>>1)-1,o=this.content[r];if(this.scoreFunction(n)<this.scoreFunction(o))this.content[r]=n,this.content[t]=o,t=r;else break}}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let i=t+1<<1,a=i-1,s=null,d=0;if(a<n){let c=this.content[a];d=this.scoreFunction(c),d<o&&(s=a)}if(i<n){let c=this.content[i];this.scoreFunction(c)<(s===null?o:d)&&(s=i)}if(s!==null)this.content[t]=this.content[s],this.content[s]=r,t=s;else break}}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};var gs=1,pe=40,i9=(e,t)=>{let n=e.fixedSegments?e.fixedSegments.slice():null;if(n){let r=[];e.points.map(a=>u(e.x+a[0],e.y+a[1])).forEach((a,s,d)=>{if(s<2)return r.push(a);let c=er(a,d[s-1]),l=er(d[s-1],d[s-2]);if($e(c,l)){let U=n?.findIndex(m=>m.index===s-1)??-1,p=n?.findIndex(m=>m.index===s)??-1;p!==-1&&(n[p].start=u(d[s-2][0]-e.x,d[s-2][1]-e.y)),U!==-1&&n.splice(U,1),r.splice(-1,1),n.forEach(m=>{m.index>s-1&&(m.index-=1)})}return r.push(a)});let o=[];r.forEach((a,s,d)=>{if(s<3)return o.push(a);if(ie(d[s-2],d[s-1])<gs){let c=n?.findIndex(p=>p.index===s-2)??-1,l=n?.findIndex(p=>p.index===s-1)??-1;l!==-1&&n.splice(l,1),c!==-1&&n.splice(c,1),o.splice(-2,2),n.forEach(p=>{p.index>s-2&&(p.index-=2)});let U=Tt(a,d[s-1]);return o.push(u(U?a[0]:d[s-2][0],U?d[s-2][1]:a[1]))}o.push(a)});let i=n.filter(a=>a.index!==1&&a.index!==o.length-1);return i.length===0?Tn(ys(Is(hs(e,xs(e,t,o.map(a=>u(a[0]-e.x,a[1]-e.y))))??[])),i,null,null):(M.DEV&&Oe(zp(o),"Invalid elbow points with fixed segments"),Tn(o,i,e.startIsSpecial,e.endIsSpecial))}return{x:e.x,y:e.y,points:e.points,fixedSegments:e.fixedSegments,startIsSpecial:e.startIsSpecial,endIsSpecial:e.endIsSpecial}},a9=(e,t,n)=>{let r=t.map(L=>L.index),i=(e.fixedSegments?.map(L=>L.index)??[]).findIndex(L=>!r.includes(L));if(i===-1||!e.fixedSegments?.[i])return{points:e.points};let a=e.fixedSegments[i].index,s=e.fixedSegments[i-1],d=e.fixedSegments[i+1],c=e.x+(s?s.end[0]:0),l=e.y+(s?s.end[1]:0),{startHeading:U,endHeading:p,startGlobalPoint:m,endGlobalPoint:b,hoveredStartElement:E,hoveredEndElement:g,...y}=xs({x:c,y:l,startBinding:s?null:e.startBinding,endBinding:d?null:e.endBinding,startArrowhead:null,endArrowhead:null},n,[u(0,0),u(e.x+(d?.start[0]??e.points[e.points.length-1][0])-c,e.y+(d?.start[1]??e.points[e.points.length-1][1])-l)],{isDragging:!1}),{points:x}=Tn(ys(Is(hs(e,{startHeading:U,endHeading:p,startGlobalPoint:m,endGlobalPoint:b,hoveredStartElement:E,hoveredEndElement:g,...y})??[])),t,null,null),h=[];if(s)for(let L=0;L<s.index;L++)h.push(u(e.x+e.points[L][0],e.y+e.points[L][1]));if(x.forEach(L=>{h.push(u(e.x+(s?s.end[0]:0)+L[0],e.y+(s?s.end[1]:0)+L[1]))}),d)for(let L=d.index;L<e.points.length;L++)h.push(u(e.x+e.points[L][0],e.y+e.points[L][1]));let w=(d?.index??e.points.length)-(s?.index??0)-1,I=t.map(L=>L.index>a?{...L,index:L.index-w+(x.length-1)}:L),v=h.flatMap((L,S)=>{let B=h[S-1],P=h[S+1];if(B&&P){let F=er(L,B),_=er(P,L);if($e(F,_))return I.forEach(Z=>{Z.index>S&&(Z.index-=1)}),[];if($e(F,wa(_)))return I.forEach(Z=>{Z.index>S&&(Z.index+=1)}),[L,L]}return[L]});return Tn(v,I,!1,!1)},s9=(e,t,n,r,o,i)=>{let a=t.map((I,v)=>e.fixedSegments==null||e.fixedSegments[v]===void 0||e.fixedSegments[v].index!==I.index||(I.start[0]!==e.fixedSegments[v].start[0]&&I.end[0]!==e.fixedSegments[v].end[0])!=(I.start[1]!==e.fixedSegments[v].start[1]&&I.end[1]!==e.fixedSegments[v].end[1])?v:null).filter(I=>I!==null).shift();if(a==null)return{points:e.points};let s=e.fixedSegments?.findIndex(I=>I.index===1)??-1,d=e.fixedSegments?.findIndex(I=>I.index===e.points.length-1)??-1,c=ie(t[a].start,t[a].end),l=c<pe+5;if(s===-1&&t[a].index===1&&o){let I=Mt(n),L=(I?$e(n,Re):$e(n,Be))?l?c/2:pe:l?-c/2:-pe;t[a].start=u(t[a].start[0]+(I?L:0),t[a].start[1]+(I?0:L))}if(d===-1&&t[a].index===e.points.length-1&&i){let I=Mt(r),L=(I?$e(r,Re):$e(r,Be))?l?c/2:pe:l?-c/2:-pe;t[a].end=u(t[a].end[0]+(I?L:0),t[a].end[1]+(I?0:L))}let U=t.map(I=>({...I,start:u(e.x+I.start[0],e.y+I.start[1]),end:u(e.x+I.end[0],e.y+I.end[1])})),p=e.points.map((I,v)=>u(e.x+I[0],e.y+I[1])),m=U[a].index-1,b=U[a].index,E=U[a].start,g=U[a].end,y=p[m-1]&&!Je(p[m],p[m-1])?Tt(p[m-1],p[m]):void 0,x=p[b+1]&&!Je(p[b],p[b+1])?Tt(p[b+1],p[b]):void 0;if(y!==void 0){let I=y?1:0;p[m-1][I]=E[I]}if(p[m]=E,p[b]=g,x!==void 0){let I=x?1:0;p[b+1][I]=g[I]}let h=U.findIndex(I=>I.index===m);if(h!==-1){let I=Tt(U[h].end,U[h].start)?1:0;U[h].start[I]=E[I],U[h].end=E}let w=U.findIndex(I=>I.index===b+1);if(w!==-1){let I=Tt(U[w].end,U[w].start)?1:0;U[w].end[I]=g[I],U[w].start=g}if(s===-1&&m===0){let I=o?Mt(n):Tt(p[1],p[0]);p.unshift(u(I?E[0]:e.x+e.points[0][0],I?e.y+e.points[0][1]:E[1])),o&&p.unshift(u(e.x+e.points[0][0],e.y+e.points[0][1]));for(let v of U)v.index+=o?2:1}if(d===-1&&b===e.points.length-1){let I=Mt(r);p.push(u(I?g[0]:e.x+e.points[e.points.length-1][0],I?e.y+e.points[e.points.length-1][1]:g[1])),i&&p.push(u(e.x+e.points[e.points.length-1][0],e.y+e.points[e.points.length-1][1]))}return Tn(p,U.map(I=>({...I,start:u(I.start[0]-e.x,I.start[1]-e.y),end:u(I.end[0]-e.x,I.end[1]-e.y)})),!1,!1)},d9=(e,t,n,r,o,i,a,s,d)=>{let c=e.startIsSpecial??null,l=e.endIsSpecial??null,U=t.map((g,y)=>y===0?u(e.x+g[0],e.y+g[1]):y===t.length-1?u(e.x+g[0],e.y+g[1]):u(e.x+e.points[y][0],e.y+e.points[y][1])),p=n.map(g=>({...g,start:u(e.x+(g.start[0]-t[0][0]),e.y+(g.start[1]-t[0][1])),end:u(e.x+(g.end[0]-t[0][0]),e.y+(g.end[1]-t[0][1]))})),m=[],b=2+(c?1:0),E=2+(l?1:0);for(;m.length+b<U.length-E;)m.push(U[m.length+b]);{let g=U[c?2:1],y=U[c?3:2],x=Mt(r),h=Mt(Kt(O(g,y)));if(s&&x===h){let w=x?$e(r,Re):$e(r,Be);if(m.unshift(u(h?i[0]+(w?pe:-pe):y[0],h?y[1]:i[1]+(w?pe:-pe))),m.unshift(u(x?i[0]+(w?pe:-pe):i[0],x?i[1]:i[1]+(w?pe:-pe))),!c){c=!0;for(let I of p)I.index>1&&(I.index+=1)}}else if(m.unshift(u(h?i[0]:g[0],h?g[1]:i[1])),c){c=!1;for(let w of p)w.index>1&&(w.index-=1)}m.unshift(i)}{let g=U[U.length-(l?3:2)],y=U[U.length-(l?4:3)],x=Mt(o),h=Tt(y,g);if(d&&x===h){let w=x?$e(o,Re):$e(o,Be);m.push(u(h?a[0]+(w?pe:-pe):y[0],h?y[1]:a[1]+(w?pe:-pe))),m.push(u(x?a[0]+(w?pe:-pe):a[0],x?a[1]:a[1]+(w?pe:-pe))),l||(l=!0)}else m.push(u(h?a[0]:g[0],h?g[1]:a[1])),l&&(l=!1)}return m.push(a),Tn(m,p.map(({index:g})=>({index:g,start:m[g-1],end:m[g]})).map(g=>({...g,start:u(g.start[0]-i[0],g.start[1]-i[1]),end:u(g.end[0]-i[0],g.end[1]-i[1])})),c,l)},ge=1e6,Zp=(e,t,n,r)=>{if(e.points.length<2)return{points:n.points??e.points};if((e.x<-ge||e.x>ge||e.y<-ge||e.y>ge||e.x+(n?.points?.[n?.points?.length-1]?.[0]??0)<-ge||e.x+(n?.points?.[n?.points?.length-1]?.[0]??0)>ge||e.y+(n?.points?.[n?.points?.length-1]?.[1]??0)<-ge||e.y+(n?.points?.[n?.points?.length-1]?.[1]??0)>ge||e.x+(e?.points?.[e?.points?.length-1]?.[0]??0)<-ge||e.x+(e?.points?.[e?.points?.length-1]?.[0]??0)>ge||e.y+(e?.points?.[e?.points?.length-1]?.[1]??0)<-ge||e.y+(e?.points?.[e?.points?.length-1]?.[1]??0)>ge)&&console.error("Elbow arrow (or update) is outside reasonable bounds (> 1e6)",{arrow:e,updates:n}),e.x=se(e.x,-ge,ge),e.y=se(e.y,-ge,ge),n.points&&(n.points=n.points.map(([m,b])=>u(se(m,-ge,ge),se(b,-ge,ge)))),M.PROD||(Oe(!n.points||n.points.length>=2,"Updated point array length must match the arrow point length, contain exactly the new start and end points or not be specified at all (i.e. you can't add new points between start and end manually to elbow arrows)"),Oe(!e.fixedSegments||e.fixedSegments.map(m=>m.start[0]===m.end[0]||m.start[1]===m.end[1]).every(Boolean),"Fixed segments must be either horizontal or vertical"),Oe(!n.fixedSegments||n.fixedSegments.map(m=>m.start[0]===m.end[0]||m.start[1]===m.end[1]).every(Boolean),"Updates to fixed segments must be either horizontal or vertical"),Oe(e.points.slice(1).map((m,b)=>m[0]===e.points[b][0]||m[1]===e.points[b][1]),"Elbow arrow segments must be either horizontal or vertical")),t.size===0&&n.points&&zp(n.points))return Tn(n.points.map(m=>u(e.x+m[0],e.y+m[1])),e.fixedSegments,e.startIsSpecial,e.endIsSpecial);let o=n.points?n.points&&n.points.length===2?e.points.map((m,b)=>b===0?n.points[0]:b===e.points.length-1?n.points[1]:m):n.points.slice():e.points.slice(),{startHeading:i,endHeading:a,startGlobalPoint:s,endGlobalPoint:d,hoveredStartElement:c,hoveredEndElement:l,...U}=xs({x:e.x,y:e.y,startBinding:typeof n.startBinding<"u"?n.startBinding:e.startBinding,endBinding:typeof n.endBinding<"u"?n.endBinding:e.endBinding,startArrowhead:e.startArrowhead,endArrowhead:e.endArrowhead},t,o,r),p=n.fixedSegments??e.fixedSegments??[];return!n.points&&!n.fixedSegments&&!n.startBinding&&!n.endBinding?i9(e,t):n.startBinding===e.startBinding&&n.endBinding===e.endBinding?{}:p.length===0?Tn(ys(Is(hs(e,{startHeading:i,endHeading:a,startGlobalPoint:s,endGlobalPoint:d,hoveredStartElement:c,hoveredEndElement:l,...U})??[])),p,null,null):(e.fixedSegments?.length??0)>p.length?a9(e,p,t):n.points?n.points&&n.fixedSegments?n:d9(e,o,p,i,a,s,d,c,l):s9(e,p,i,a,c,l)},xs=(e,t,n,r)=>{let o=pn(n[0],ve(e.x,e.y)),i=pn(n[n.length-1],ve(e.x,e.y)),a=e.startBinding&&qp(e.startBinding.elementId,t),s=e.endBinding&&qp(e.endBinding.elementId,t),[d,c]=r?.isDragging?b9(o,i,t,r?.zoom):[a,s],l=Gp({...e,elbowed:!0,points:n},"start",e.startBinding?.fixedPoint,o,a,d,r?.isDragging),U=Gp({...e,elbowed:!0,points:n},"end",e.endBinding?.fixedPoint,i,s,c,r?.isDragging),p=Xp(l,U,t,d,o),m=Xp(U,l,t,c,i),b=[l[0]-2,l[1]-2,l[0]+2,l[1]+2],E=[U[0]-2,U[1]-2,U[0]+2,U[1]+2],g=d?It(d,Rn(p,e.startArrowhead?me*6:me*2,1)):b,y=c?It(c,Rn(m,e.endArrowhead?me*6:me*2,1)):E,x=gn(l,c?It(c,Rn(m,pe,pe)):E)||gn(U,d?It(d,Rn(p,pe,pe)):b),h=Wp(x?[b,E]:[g,y]),w=U9(x?b:g,x?E:y,h,x?Rn(p,!d&&!c?0:pe,0):Rn(p,!d&&!c?0:pe-(e.startArrowhead?me*6:me*2),pe),x?Rn(m,!d&&!c?0:pe,0):Rn(m,!d&&!c?0:pe-(e.endArrowhead?me*6:me*2),pe),x,d&&It(d),c&&It(c)),I=Vp(w[0],p,l),v=Vp(w[1],m,U);return{dynamicAABBs:w,startDonglePosition:I,startGlobalPoint:l,startHeading:p,endDonglePosition:v,endGlobalPoint:U,endHeading:m,commonBounds:h,hoveredStartElement:d,hoveredEndElement:c,boundsOverlap:x,startElementBounds:g,endElementBounds:y}},hs=(e,t)=>{let{dynamicAABBs:n,startDonglePosition:r,startGlobalPoint:o,startHeading:i,endDonglePosition:a,endGlobalPoint:s,endHeading:d,commonBounds:c,hoveredEndElement:l}=t,U=f9(n,r||o,i,a||s,d,c),p=r&&Ni(r,U),m=a&&Ni(a,U),b=Ni(s,U);b&&l&&(b.closed=!0);let E=Ni(o,U);E&&e.startBinding&&(E.closed=!0);let g=p&&m&&(gn(p.pos,n[1])||gn(m.pos,n[0])),y=c9(p||E,m||b,U,i||Re,d||Re,g?[]:n);if(y){let x=y.map(h=>[h.pos[0],h.pos[1]]);return p&&x.unshift(o),m&&x.push(s),x}return null},Rn=(e,t,n)=>{switch(e){case Qe:return[t,n,n,n];case Re:return[n,t,n,n];case Be:return[n,n,t,n]}return[n,n,n,t]},c9=(e,t,n,r,o,i)=>{let a=Es(e.pos,t.pos),s=new ao(d=>d.f);for(s.push(e);s.size()>0;){let d=s.pop();if(!d||d.closed)continue;if(d===t)return l9(e,d);d.closed=!0;let c=u9(d.addr,n);for(let l=0;l<4;l++){let U=c[l];if(!U||U.closed)continue;let p=bt(U.pos,d.pos,.5);if(Ed(...i.map(w=>gn(p,w))))continue;let m=m9(l),b=d.parent?Kt(O(d.pos,d.parent.pos)):r,E=wa(b);if($e(E,m)||kp(e.addr,U.addr)&&$e(m,r)||kp(t.addr,U.addr)&&$e(m,o))continue;let y=b!==m,x=d.g+Es(U.pos,d.pos)+(y?Math.pow(a,3):0),h=U.visited;if(!h||x<U.g){let w=p9(U,t,m,o);U.visited=!0,U.parent=d,U.h=Es(t.pos,U.pos)+w*Math.pow(a,2),U.g=x,U.f=U.g+U.h,h?s.rescoreElement(U):s.push(U)}}}return null},l9=(e,t)=>{let n=t,r=[];for(;n.parent;)r.unshift(n),n=n.parent;return r.unshift(e),r},Es=(e,t)=>Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1]),U9=(e,t,n,r,o,i,a,s)=>{let d=a??e,c=s??t,[l,U,p,m]=r??[0,0,0,0],[b,E,g,y]=o??[0,0,0,0],x=[e[0]>t[2]?e[1]>t[3]||e[3]<t[1]?Math.min((d[0]+c[2])/2,e[0]-m):(d[0]+c[2])/2:e[0]>t[0]?e[0]-m:n[0]-m,e[1]>t[3]?e[0]>t[2]||e[2]<t[0]?Math.min((d[1]+c[3])/2,e[1]-l):(d[1]+c[3])/2:e[1]>t[1]?e[1]-l:n[1]-l,e[2]<t[0]?e[1]>t[3]||e[3]<t[1]?Math.max((d[2]+c[0])/2,e[2]+U):(d[2]+c[0])/2:e[2]<t[2]?e[2]+U:n[2]+U,e[3]<t[1]?e[0]>t[2]||e[2]<t[0]?Math.max((d[3]+c[1])/2,e[3]+p):(d[3]+c[1])/2:e[3]<t[3]?e[3]+p:n[3]+p],h=[t[0]>e[2]?t[1]>e[3]||t[3]<e[1]?Math.min((c[0]+d[2])/2,t[0]-y):(c[0]+d[2])/2:t[0]>e[0]?t[0]-y:n[0]-y,t[1]>e[3]?t[0]>e[2]||t[2]<e[0]?Math.min((c[1]+d[3])/2,t[1]-b):(c[1]+d[3])/2:t[1]>e[1]?t[1]-b:n[1]-b,t[2]<e[0]?t[1]>e[3]||t[3]<e[1]?Math.max((c[2]+d[0])/2,t[2]+E):(c[2]+d[0])/2:t[2]<e[2]?t[2]+E:n[2]+E,t[3]<e[1]?t[0]>e[2]||t[2]<e[0]?Math.max((c[3]+d[1])/2,t[3]+g):(c[3]+d[1])/2:t[3]<e[3]?t[3]+g:n[3]+g],w=Wp([x,h]);if(!i&&x[2]-x[0]+h[2]-h[0]>w[2]-w[0]+1e-11&&x[3]-x[1]+h[3]-h[1]>w[3]-w[1]+1e-11){let[I,v]=[(h[0]+h[2])/2,(h[1]+h[3])/2];if(t[0]>e[2]&&e[1]>t[3]){let L=x[2]+(h[0]-x[2])/2,S=h[3]+(x[1]-h[3])/2;return Me(ve(e[2]-I,e[1]-v),ve(e[0]-I,e[3]-v))>0?[[x[0],x[1],L,x[3]],[L,h[1],h[2],h[3]]]:[[x[0],S,x[2],x[3]],[h[0],h[1],h[2],S]]}else if(e[2]<t[0]&&e[3]<t[1]){let L=x[2]+(h[0]-x[2])/2,S=x[3]+(h[1]-x[3])/2;return Me(ve(e[0]-I,e[1]-v),ve(e[2]-I,e[3]-v))>0?[[x[0],x[1],x[2],S],[h[0],S,h[2],h[3]]]:[[x[0],x[1],L,x[3]],[L,h[1],h[2],h[3]]]}else if(e[0]>t[2]&&e[3]<t[1]){let L=h[2]+(x[0]-h[2])/2,S=x[3]+(h[1]-x[3])/2;return Me(ve(e[2]-I,e[1]-v),ve(e[0]-I,e[3]-v))>0?[[L,x[1],x[2],x[3]],[h[0],h[1],L,h[3]]]:[[x[0],x[1],x[2],S],[h[0],S,h[2],h[3]]]}else if(e[0]>t[2]&&e[1]>t[3]){let L=h[2]+(x[0]-h[2])/2,S=h[3]+(x[1]-h[3])/2;return Me(ve(e[0]-I,e[1]-v),ve(e[2]-I,e[3]-v))>0?[[L,x[1],x[2],x[3]],[h[0],h[1],L,h[3]]]:[[x[0],S,x[2],x[3]],[h[0],h[1],h[2],S]]}}return[x,h]},f9=(e,t,n,r,o,i)=>{let a=new Set,s=new Set;n===tt||n===Re?s.add(t[1]):a.add(t[0]),o===tt||o===Re?s.add(r[1]):a.add(r[0]),e.forEach(l=>{a.add(l[0]),a.add(l[2]),s.add(l[1]),s.add(l[3])}),a.add(i[0]),a.add(i[2]),s.add(i[1]),s.add(i[3]);let d=Array.from(s).sort((l,U)=>l-U),c=Array.from(a).sort((l,U)=>l-U);return{row:d.length,col:c.length,data:d.flatMap((l,U)=>c.map((p,m)=>({f:0,g:0,h:0,closed:!1,visited:!1,parent:null,addr:[m,U],pos:[p,l]})))}},Vp=(e,t,n)=>{switch(t){case Qe:return u(n[0],e[1]);case Re:return u(e[2],n[1]);case Be:return u(n[0],e[3])}return u(e[0],n[1])},p9=(e,t,n,r)=>{if(r===Re)switch(n){case Re:return e.pos[0]>=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2;case Qe:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Be:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case tt:return e.pos[1]===t.pos[1]?4:2}else if(r===tt)switch(n){case Re:return e.pos[1]===t.pos[1]?4:2;case Qe:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case Be:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case tt:return e.pos[0]<=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2}else if(r===Qe)switch(n){case Re:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Qe:return e.pos[1]>=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case Be:return e.pos[0]===t.pos[0]?4:2;case tt:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3}else if(r===Be)switch(n){case Re:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Qe:return e.pos[0]===t.pos[0]?4:2;case Be:return e.pos[1]<=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case tt:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3}return 0},u9=([e,t],n)=>[so([e,t-1],n),so([e+1,t],n),so([e,t+1],n),so([e-1,t],n)],so=([e,t],n)=>e<0||e>=n.col||t<0||t>=n.row?null:n.data[t*n.col+e]??null,Ni=(e,t)=>{for(let n=0;n<t.col;n++)for(let r=0;r<t.row;r++){let o=so([n,r],t);if(o&&e[0]===o.pos[0]&&e[1]===o.pos[1])return o}return null},Wp=e=>[Math.min(...e.map(t=>t[0])),Math.min(...e.map(t=>t[1])),Math.max(...e.map(t=>t[2])),Math.max(...e.map(t=>t[3]))],qp=(e,t)=>{let n=t.get(e);return n&&xt(n)?n:null},Tn=(e,t,n,r)=>{let o=e[0][0],i=e[0][1],a=e.map(s=>pn(s,ue(O(e[0]),-1)));return(o<-ge||o>ge||i<-ge||i>ge||o+a[a.length-1][0]<-ge||i+a[a.length-1][0]>ge||o+a[a.length-1][1]<-ge||i+a[a.length-1][1]>ge)&&console.error("Elbow arrow normalization is outside reasonable bounds (> 1e6)",{x:o,y:i,points:a,...xn(a)}),a=a.map(([s,d])=>u(se(s,-1e6,1e6),se(d,-1e6,1e6))),{points:a,x:se(o,-1e6,1e6),y:se(i,-1e6,1e6),fixedSegments:(t?.length??0)>0?t:null,...xn(a),startIsSpecial:n,endIsSpecial:r}},ys=e=>{if(e.length>1){let t=Math.abs(e[0][1]-e[1][1])<Math.abs(e[0][0]-e[1][0]);return e.filter((n,r)=>{if(r===0||r===e.length-1)return!0;let o=e[r+1],i=Math.abs(n[1]-o[1])<Math.abs(n[0]-o[0]);return t===i?(t=i,!1):(t=i,!0)})}return e},Is=e=>e.length>=4?e.filter((t,n)=>{if(n===0||n===e.length-1)return!0;let r=e[n-1];return ie(r,t)>gs}):e,m9=e=>{switch(e){case 0:return Qe;case 1:return Re;case 2:return Be}return tt},Gp=(e,t,n,r,o,i,a)=>{if(a){if(i){let s=Ui(e,i,t);return i2(i,s)}return r}if(o){let s=li(n||[0,0],o);return Math.abs(or(o,s)-me)>.01?Ui(e,o,t):s}return r},Xp=(e,t,n,r,o)=>o2(e,t,r,r&&It(r,Array(4).fill(or(r,e))),n,o),b9=(e,t,n,r)=>{let o=Ge(new Map([...n].filter(a=>!a[1].isDeleted))),i=Array.from(n.values());return[hn(Zt(e),i,o,r,!0,!0),hn(Zt(t),i,o,r,!0,!0)]},kp=(e,t)=>e[0]===t[0]&&e[1]===t[1],zp=(e,t=gs)=>e.slice(1).map((n,r)=>Math.abs(n[0]-e[r][0])<t||Math.abs(n[1]-e[r][1])<t).every(Boolean);var Y=(e,t,n=!0,r)=>{let o=!1,{points:i,fixedSegments:a,fileId:s,startBinding:d,endBinding:c}=t;if(W(e)&&(Object.keys(t).length===0||typeof i<"u"||typeof a<"u"||typeof d<"u"||typeof c<"u")){let l=Ge(bs.getScene(e)?.getNonDeletedElementsMap()??new Map);t={...t,angle:0,...Zp({...e,x:t.x||e.x,y:t.y||e.y},l,{fixedSegments:a,points:i,startBinding:d,endBinding:c},{isDragging:r?.isDragging})}}else typeof i<"u"&&(t={...xn(i),...t});for(let l in t){let U=t[l];if(typeof U<"u"){if(e[l]===U&&(typeof U!="object"||U===null||l==="groupIds"||l==="scale"))continue;if(l==="scale"){let p=e[l],m=U;if(p[0]===m[0]&&p[1]===m[1])continue}else if(l==="points"){let p=e[l],m=U;if(p.length===m.length){let b=!1,E=p.length;for(;--E;){let g=p[E],y=m[E];if(g[0]!==y[0]||g[1]!==y[1]){b=!0;break}}if(!b)continue}}e[l]=U,o=!0}}return o&&((typeof t.height<"u"||typeof t.width<"u"||typeof s<"u"||typeof i<"u")&&xe.delete(e),e.version++,e.versionNonce=Ct(),e.updated=zt(),n&&bs.getScene(e)?.triggerUpdate()),e},St=(e,t,n=!1)=>{let r=!1;for(let o in t){let i=t[o];if(typeof i<"u"){if(e[o]===i&&(typeof i!="object"||i===null))continue;r=!0}}return!r&&!n?e:{...e,...t,updated:zt(),version:e.version+1,versionNonce:Ct()}},Xr=(e,t)=>(e.version=(t??e.version)+1,e.versionNonce=Ct(),e.updated=zt(),e);var ro=e=>ae(e)||Ce(e)?e.points.length<2:e.width===0&&e.height===0,Hp=(e,t,n,r,o)=>{let[i,a,s,d]=Ae(e,o),c=Sn({clientX:r.offsetLeft,clientY:r.offsetTop},r),l=Sn({clientX:r.offsetLeft+t,clientY:r.offsetTop+n},r);return c.x<=s&&c.y<=d&&l.x>=i&&l.y>=a},rJ=(e,t,n,r,o,i)=>{let[a,s,d,c]=Pe(e,o),l=Sn({clientX:r.offsetLeft+(i?.left||0),clientY:r.offsetTop+(i?.top||0)},r),U=Sn({clientX:r.offsetLeft+t-(i?.right||0),clientY:r.offsetTop+n-(i?.bottom||0)},r);return a>=l.x&&s>=l.y&&d<=U.x&&c<=U.y},Fi=(e,t,n)=>{let r=Math.abs(t),o=Math.abs(n);if(e==="line"||e==="arrow"||e==="freedraw"){let i=Math.round(Math.atan(o/r)/Pt)*Pt;i===0?n=0:i===Math.PI/2?t=0:n=r*Math.tan(i)*Math.sign(n)||n}else e!=="selection"&&(n=r*Math.sign(n));return{width:t,height:n}},Ja=(e,t,n,r)=>{let o=n-e,i=r-t,a=Math.round(Math.atan(i/o)/Pt)*Pt;if(a===0)i=0;else if(a===Math.PI/2)o=0;else{let s=Math.tan(a),d=-1,c=t-s*e,l=-1/s,U=-1,p=r-l*n,m=(d*p-U*c)/(s*U-l*d),b=(c*l-p*s)/(s*U-l*d);o=m-e,i=b-t}return{width:o,height:i}};var ss=e=>{let t={width:e.width,height:e.height,x:e.x,y:e.y};if(e.width<0){let n=Math.abs(e.width);t.width=n,t.x=e.x-n}if(e.height<0){let n=Math.abs(e.height);t.height=n,t.y=e.y-n}return t};var Qp={mouse:8,pen:16,touch:28},E9=16,e6={e:!0,s:!0,n:!0,w:!0};var jp={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},ws={e:!0,s:!0,n:!0,w:!0},cn=(e,t,n,r,o,i,a)=>{let[s,d]=T(u(e+n/2,t+r/2),u(o,i),a);return[s-n/2,d-r/2,n,r]},Bi=e=>!(e.viewport.isMobile||e.isTouchScreen&&(Ps||Ns)),Rs=e=>Bi(e)?e6:{},_i=([e,t,n,r,o,i],a,s,d,c={},l=4,U=mr)=>{let p=Qp[d],m=p/s.value,b=p/s.value,E=p/s.value,g=p/s.value,y=n-e,x=r-t,h=l/s.value,w=(p-U*2)/(2*s.value),I={nw:c.nw?void 0:cn(e-h-E+w,t-h-g+w,m,b,o,i,a),ne:c.ne?void 0:cn(n+h-w,t-h-g+w,m,b,o,i,a),sw:c.sw?void 0:cn(e-h-E+w,r+h-w,m,b,o,i,a),se:c.se?void 0:cn(n+h-w,r+h-w,m,b,o,i,a),rotation:c.rotation?void 0:cn(e+y/2-m/2,t-h-g+w-E9/s.value,m,b,o,i,a)},v=5*Qp.mouse/s.value;return Math.abs(y)>v&&(c.n||(I.n=cn(e+y/2-m/2,t-h-g+w,m,b,o,i,a)),c.s||(I.s=cn(e+y/2-m/2,r+h-w,m,b,o,i,a))),Math.abs(x)>v&&(c.w||(I.w=cn(e-h-E+w,t+x/2-b/2,m,b,o,i,a)),c.e||(I.e=cn(n+h-w,t+x/2-b/2,m,b,o,i,a))),I},Ts=(e,t,n,r="mouse",o=e6)=>{if(e.locked||W(e))return{};if(e.type==="freedraw"||ae(e)){if(e.points.length===2){let[,a]=e.points;a[0]===0||a[1]===0?o=ws:a[0]>0&&a[1]<0?o=jp:a[0]>0&&a[1]>0?o=ws:a[0]<0&&a[1]>0?o=jp:a[0]<0&&a[1]<0&&(o=ws)}}else de(e)&&(o={...o,rotation:!0});let i=ae(e)?mr+8:Ye(e)?0:mr;return _i(C(e,n,!0),e.angle,t,r,o,i,Ye(e)?0:void 0)},lJ=(e,t)=>{if(t.editingLinearElement)return!1;if(e.length>1)return!0;let n=e[0];return W(n)?!1:ae(n)?n.points.length>2:!0};var Ls=(e,t,n)=>t>=e[0]&&t<=e[0]+e[2]&&n>=e[1]&&n<=e[1]+e[3],t6=(e,t,n,r,o,i,a,s)=>{if(!n.selectedElementIds[e.id])return!1;let{rotation:d,...c}=Ts(e,i,t,a,Rs(s));if(d&&Ls(d,r,o))return"rotation";let l=Object.keys(c).filter(U=>{let p=c[U];return p?Ls(p,r,o):!1});if(l.length>0)return l[0];if(Bi(s)){let[U,p,m,b,E,g]=C(e,t);if(!(ae(e)&&e.points.length<=2)){let y=Ye(e)?0:br/i.value,x=br/i.value,h=n6(u(U-y,p-y),u(m+y,b+y),u(E,g),e.angle);for(let[w,I]of Object.entries(h))if(Ft(u(r,o),I,x))return w}}return!1},g9=(e,t,n,r,o,i,a,s)=>e.reduce((d,c)=>{if(d)return d;let l=t6(c,a,t,n,r,o,i,s);return l?{element:c,transformHandleType:l}:null},null),x9=([e,t,n,r],o,i,a,s,d)=>{let c=_i([e,t,n,r,(e+n)/2,(t+r)/2],0,a,s,Rs(d)),l=Object.keys(c).find(U=>{let p=c[U];return p&&Ls(p,o,i)});if(l)return l;if(Bi(d)){let U=(e+n)/2,p=(t+r)/2,m=br/a.value,b=n6(u(e-m,t-m),u(n+m,r+m),u(U,p),0);for(let[E,g]of Object.entries(b))if(Ft(u(o,i),g,m))return E}return!1},Ms=["ns","nesw","ew","nwse"],h9=(e,t)=>{let n=Ms.indexOf(e);if(n>=0){let r=Math.round(t/(Math.PI/4));e=Ms[(n+r)%Ms.length]}return e},y9=e=>{let{element:t,transformHandleType:n}=e,r=t&&Math.sign(t.height)*Math.sign(t.width)===-1,o=null;switch(n){case"n":case"s":o="ns";break;case"w":case"e":o="ew";break;case"nw":case"se":r?o="nesw":o="nwse";break;case"ne":case"sw":r?o="nwse":o="nesw";break;case"rotation":return"grab"}return o&&t&&(o=h9(o,t.angle)),o?`${o}-resize`:""},n6=([e,t],[n,r],o,i)=>{let a=T(u(e,t),o,i),s=T(u(n,t),o,i),d=T(u(e,r),o,i),c=T(u(n,r),o,i);return{n:[a,s],e:[s,c],s:[c,d],w:[d,a]}};var I9=(e,t,n,r,o,i,a,s,d,c,l,U)=>{if(n.length===1){let[p]=n;if(t==="rotation")W(p)||(w9(p,r,o,d,c,i),Ht(p,r));else{if(X(p)&&t)return R9(e,p,r,t,a,d,c),Ht(p,r),!0;if(t){let m=n[0].id,b=r.get(m),E=e.get(m);if(b&&E){let{nextWidth:g,nextHeight:y}=$9(b,E,r,e,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});v9(g,y,b,E,r,e,t,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a})}}}return!0}else if(n.length>1){if(t==="rotation")return T9(e,n,r,o,d,c,i,l,U),!0;if(t){let{nextWidth:p,nextHeight:m,flipByX:b,flipByY:E,originalBoundingBox:g}=P9(n,e,r,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});return N9(n,r,t,o,e,{shouldResizeFromCenter:a,shouldMaintainAspectRatio:s,flipByX:b,flipByY:E,nextWidth:p,nextHeight:m,originalBoundingBox:g}),!0}}return!1},w9=(e,t,n,r,o,i)=>{let[a,s,d,c]=C(e,t),l=(a+d)/2,U=(s+c)/2,p;de(e)?p=0:(p=5*Math.PI/2+Math.atan2(o-U,r-l),i&&(p=p+Pt/2,p=p-p%Pt),p=xr(p));let m=Jt(e);if(Y(e,{angle:p}),m){let b=n.getElement(m);b&&!ee(e)&&Y(b,{angle:p})}},r6=(e,t,n,r)=>ae(e)||Ce(e)?{points:tr(0,t,tr(1,n,e.points,r),r)}:{},Ds=(e,t,n)=>{let r=e.width;if(Fe(e)){let a=qe(e,t);a&&(r=Rt(a,e))}let i=e.fontSize*(n/r);return i<bo?null:{size:i}},R9=(e,t,n,r,o,i,a)=>{let[s,d,c,l,U,p]=C(t,n),[m,b]=T(u(i,a),u(U,p),-t.angle),E=0,g=0;r!=="e"&&r!=="w"&&(r.includes("e")&&(E=(m-s)/(c-s)),r.includes("w")&&(E=(c-m)/(c-s)),r.includes("n")&&(g=(l-b)/(l-d)),r.includes("s")&&(g=(b-d)/(l-d)));let y=Math.max(E,g);if(y>0){let x=t.width*y,h=t.height*y,w=Ds(t,n,x);if(w===null)return;let I=[s,d],v=[c,l],L=[U,p],S=u(s,d);if(["n","w","nw"].includes(r)&&(S=u(v[0]-Math.abs(x),v[1]-Math.abs(h))),r==="ne"){let G=[I[0],v[1]];S=u(G[0],G[1]-Math.abs(h))}if(r==="sw"){let G=[v[0],I[1]];S=u(G[0]-Math.abs(x),G[1])}["s","n"].includes(r)&&(S[0]=L[0]-x/2),["e","w"].includes(r)&&(S[1]=L[1]-h/2),o&&(S[0]=L[0]-Math.abs(x)/2,S[1]=L[1]-Math.abs(h)/2);let B=t.angle,P=T(S,u(U,p),B),F=u(S[0]+Math.abs(x)/2,S[1]+Math.abs(h)/2),_=T(F,u(U,p),B);S=T(P,_,-B);let[Z,we]=S;Y(t,{fontSize:w.size,width:x,height:h,x:Z,y:we})}if(r==="e"||r==="w"){let x=e.get(t.id),[h,w,I,v]=wt(x,x.width,x.height,!0),L=u(h,w),S=u(I,v),B=kt(L,S),P=T(u(i,a),B,-x.angle),[F,,_]=wt(t,t.width,t.height,!0),Z=_-F,we=S[0]-L[0],G=Oo(be({fontSize:t.fontSize,fontFamily:t.fontFamily}),t.lineHeight),ce=we/Z;r.includes("e")&&(ce=(P[0]-L[0])/Z),r.includes("w")&&(ce=(S[0]-P[0])/Z);let J=t.width*ce<G?G:t.width*ce,j=en(t.originalText,be(t),Math.abs(J)),he=ht(j,be(t),t.lineHeight),Ke=he.height,[fr,Jn,Yn,Ai]=wt(x,J,Ke,!0),lo=Yn-fr,Ki=Ai-Jn,Gt=[...L];["n","w","nw"].includes(r)&&(Gt=[S[0]-Math.abs(lo),L[1]]);let pr=x.angle,Cn=T(Gt,B,pr),$t=u(Gt[0]+Math.abs(lo)/2,Gt[1]+Math.abs(Ki)/2),ur=T($t,B,pr);Gt=T(Cn,ur,-pr);let lt={width:Math.abs(J),height:Math.abs(he.height),x:Gt[0],y:Gt[1],text:j,autoResize:!1};Y(t,lt)}},T9=(e,t,n,r,o,i,a,s,d)=>{let c=5*Math.PI/2+Math.atan2(i-d,o-s);a&&(c+=Pt/2,c-=c%Pt);for(let l of t)if(!de(l)){let[U,p,m,b]=C(l,n),E=(U+m)/2,g=(p+b)/2,y=e.get(l.id)?.angle??l.angle,[x,h]=T(u(E,g),u(s,d),c+y-l.angle);W(l)?Y(l,{points:c2(l,n)}):Y(l,{x:l.x+(x-E),y:l.y+(h-g),angle:xr(c+y)},!1),Ht(l,n,{simultaneouslyUpdated:t});let w=oe(l,n);w&&!ee(l)&&Y(w,{x:w.x+(x-E),y:w.y+(h-g),angle:xr(c+y)},!1)}r.triggerUpdate()},M9=(e,t,n,r,o)=>{let[i,a,s,d]=t.length===1?C(t[0],n):Pe(t),c=(i+s)/2,l=(a+d)/2,U=t.length===1?t[0].angle:0;switch([r,o]=T(u(r,o),u(c,l),-U),e){case"n":return T(u(r-(i+s)/2,o-a),u(0,0),U);case"s":return T(u(r-(i+s)/2,o-d),u(0,0),U);case"w":return T(u(r-i,o-(a+d)/2),u(0,0),U);case"e":return T(u(r-s,o-(a+d)/2),u(0,0),U);case"nw":return T(u(r-i,o-a),u(0,0),U);case"ne":return T(u(r-s,o-a),u(0,0),U);case"sw":return T(u(r-i,o-d),u(0,0),U);case"se":return T(u(r-s,o-d),u(0,0),U);default:return[0,0]}},L9=(e,t)=>{let[,[n,r]]=t.points;return e==="nw"&&(n<0||r<0)||e==="ne"&&n>=0||e==="sw"&&n<=0||e==="se"&&(n>0||r>0)?"end":"origin"},D9=(e,t,n)=>{if(n)return"center";if(t)switch(e){case"n":return"south-side";case"e":return"west-side";case"s":return"north-side";case"w":return"east-side";case"ne":return"bottom-left";case"nw":return"bottom-right";case"se":return"top-left";case"sw":return"top-right"}return["e","se","s"].includes(e)?"top-left":["n","nw","w"].includes(e)?"bottom-right":e==="ne"?"bottom-left":"top-right"},S9=(e,t,n,r,o,i,a,s,d)=>{let c=D9(a,s,d),[l,U]=e;switch(c){case"top-left":return{x:l+(t-r)/2+(r-t)/2*Math.cos(i)+(n-o)/2*Math.sin(i),y:U+(n-o)/2+(r-t)/2*Math.sin(i)+(o-n)/2*Math.cos(i)};case"top-right":return{x:l+(t-r)/2*(Math.cos(i)+1)+(n-o)/2*Math.sin(i),y:U+(n-o)/2+(t-r)/2*Math.sin(i)+(o-n)/2*Math.cos(i)};case"bottom-left":return{x:l+(t-r)/2*(1-Math.cos(i))+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)+(r-t)/2*Math.sin(i)};case"bottom-right":return{x:l+(t-r)/2*(Math.cos(i)+1)+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)+(t-r)/2*Math.sin(i)};case"center":return{x:l-(r-t)/2,y:U-(o-n)/2};case"east-side":return Math.abs(U+(t-r)/2*Math.sin(i)+(n-o)/2)>1e6&&console.error("getResizedOrigin() new calculation creates extremely large (> 1e6) y value where the old calculation resulted in",{result:U+(o-n)/2+(t-r)/2*Math.sin(i)}),{x:l+(t-r)/2*(Math.cos(i)+1),y:U+(o-n)/2+(t-r)/2*Math.sin(i)};case"west-side":return{x:l+(t-r)/2*(1-Math.cos(i)),y:U+(r-t)/2*Math.sin(i)+(n-o)/2};case"north-side":return{x:l+(t-r)/2+(n-o)/2*Math.sin(i),y:U+(o-n)/2*(Math.cos(i)-1)};case"south-side":return{x:l+(t-r)/2+(o-n)/2*Math.sin(i),y:U+(n-o)/2*(Math.cos(i)+1)}}},v9=(e,t,n,r,o,i,a,{shouldInformMutation:s=!0,shouldMaintainAspectRatio:d=!1,shouldResizeFromCenter:c=!1}={})=>{let l={},U=oe(n,o);if(U){let E=i.get(U.id);if(E&&(l={fontSize:E.fontSize}),d){let g={...n,width:e,height:t},y=Ds(U,o,Rt(g,U));if(y===null)return;l={fontSize:y.size}}else{let g=wd(be(U),U.lineHeight),y=Td(U.fontSize,U.lineHeight);e=Math.max(e,g),t=Math.max(t,y)}}let p=r6(r,e,t,!0),m=u(r.x,r.y);if(ae(r)){let[E,g]=Ae(r,i);m=u(E,g)}let b=S9(m,r.width,r.height,e,t,r.angle,a,d,c);if(ae(r)&&p.points){let E=r.x-m[0],g=r.y-m[1];b.x+=E,b.y+=g;let y=p.points[0][0],x=p.points[0][1];b.x+=y,b.y+=x,p.points=p.points.map(h=>u(h[0]-y,h[1]-x))}if(e<0&&(b.x=b.x+e),t<0&&(b.y=b.y+t),"scale"in n&&"scale"in r&&Y(n,{scale:[(Math.sign(e)||r.scale[0])*r.scale[0],(Math.sign(t)||r.scale[1])*r.scale[1]]}),ee(n)&&U&&d){let E=e/n.width*U.fontSize;if(E<bo)return;l.fontSize=E}if(e!==0&&t!==0&&Number.isFinite(b.x)&&Number.isFinite(b.y)){let E={...b,width:Math.abs(e),height:Math.abs(t),...p};Y(n,E,s),Ht(n,o,{newSize:{width:e,height:t}}),U&&l!=null&&Y(U,{fontSize:l.fontSize}),_n(n,o,a,d)}},$9=(e,t,n,r,o,i,a,{shouldMaintainAspectRatio:s=!1,shouldResizeFromCenter:d=!1}={})=>{let[c,l,U,p]=wt(t,t.width,t.height,!0),m=u(c,l),b=u(U,p),E=kt(m,b),g=T(u(i,a),E,-t.angle),[y,x,h,w]=wt(e,e.width,e.height,!0),I=h-y,v=w-x,L=b[0]-m[0],S=b[1]-m[1],B=L/I,P=S/v;o.includes("e")&&(B=(g[0]-m[0])/I),o.includes("s")&&(P=(g[1]-m[1])/v),o.includes("w")&&(B=(b[0]-g[0])/I),o.includes("n")&&(P=(b[1]-g[1])/v);let F=e.width*B,_=e.height*P;if(d&&(F=2*F-t.width,_=2*_-t.height),s){let Z=Math.abs(F)/t.width,we=Math.abs(_)/t.height;if(o.length===1&&(_*=Z,F*=we),o.length===2){let G=Math.max(Z,we);F=t.width*G*Math.sign(F),_=t.height*G*Math.sign(_)}}return{nextWidth:F,nextHeight:_}},P9=(e,t,n,r,o,i,{shouldMaintainAspectRatio:a=!1,shouldResizeFromCenter:s=!1}={})=>{let d=e.map(Z=>t.get(Z.id)),c=d.reduce((Z,we)=>{if(!ae(we))return Z;let G=Jt(we);if(!G)return Z;let ce=t.get(G)??null;return Fe(ce)?[...Z,{...ce,...z.getBoundTextElementPosition(we,ce,n)}]:Z},[]),l=va(d.map(Z=>Z).concat(c)),{minX:U,minY:p,maxX:m,maxY:b,midX:E,midY:g}=l,y=m-U,x=b-p,h={ne:[U,b],se:[U,p],sw:[m,p],nw:[m,b],e:[U,p+x/2],w:[m,p+x/2],n:[U+y/2,b],s:[U+y/2,p]},[w,I]=s?[E,g]:h[r],v=s?2:1,L=Math.max(Math.abs(o-w)/y||0,Math.abs(i-I)/x||0)*v,S=r.includes("e")||r.includes("w")?Math.abs(o-w)*v:y,B=r.includes("n")||r.includes("s")?Math.abs(i-I)*v:x;a&&(S=y*L*Math.sign(o-w),B=x*L*Math.sign(i-I));let P={ne:[o<w,i>I],se:[o<w,i<I],sw:[o>w,i<I],nw:[o>w,i>I],e:[o<w,!1],w:[o>w,!1],n:[!1,i>I],s:[!1,i<I]},[F,_]=P[r].map(Z=>Z);return{originalBoundingBox:l,nextWidth:S,nextHeight:B,flipByX:F,flipByY:_}},N9=(e,t,n,r,o,{shouldMaintainAspectRatio:i=!1,shouldResizeFromCenter:a=!1,flipByX:s=!1,flipByY:d=!1,nextHeight:c,nextWidth:l,originalBoundingBox:U}={})=>{if(l===void 0&&c===void 0&&s===void 0&&d===void 0||c===0||l===0)return;o||(o=t);let p=e.reduce((v,L)=>{let S=o.get(L.id);return S&&v.push({orig:S,latest:L}),v},[]),m;if(U)m=U;else{let v=p.reduce((L,{orig:S})=>{if(!ae(S))return L;let B=Jt(S);if(!B)return L;let P=o.get(B)??null;return Fe(P)?[...L,{...P,...z.getBoundTextElementPosition(S,P,t)}]:L},[]);m=va(p.map(({orig:L})=>L).concat(v))}let{minX:b,minY:E,maxX:g,maxY:y,midX:x,midY:h}=m,w=g-b,I=y-E;if(l===void 0&&c===void 0&&(l=w,c=I),i&&(l===void 0?l=c*(w/I):c===void 0?c=l*(I/w):Math.abs(l/c-w/I)>.001&&(l=c*(w/I))),l&&c){let v=n.includes("e")||n.includes("w")?Math.abs(l)/w:1,L=n.includes("n")||n.includes("s")?Math.abs(c)/I:1,S;n.length===1?S=n.includes("e")||n.includes("w")?v:L:S=Math.max(Math.abs(l)/w||0,Math.abs(c)/I||0);let B={ne:[b,y],se:[b,E],sw:[g,E],nw:[g,y],e:[b,E+I/2],w:[g,E+I/2],n:[b+w/2,y],s:[b+w/2,E]},[P,F]=a?[x,h]:B[n],_=i||p.some(J=>J.latest.angle!==0||X(J.latest)||m2(J.latest));_&&(v=S,L=S);let[Z,we]=[s?-1:1,d?-1:1],G=[];for(let{orig:J,latest:j}of p){if(X(J)&&Fe(J))continue;let he=J.width*v,Ke=J.height*L,fr=xr(J.angle*Z*we),Jn=ae(J)||Ce(J),Yn=J.x-P,Ai=J.y-F,lo=s&&!Jn?he:0,Ki=d&&!Jn?Ke:0,Gt=P+Z*(Yn*v+lo),pr=F+we*(Ai*L+Ki),Cn=r6(J,he*Z,Ke*we,!1),$t={x:Gt,y:pr,width:he,height:Ke,angle:fr,...Cn};if(W(J)&&(J.startBinding&&($t.startBinding={...J.startBinding,fixedPoint:[s?-J.startBinding.fixedPoint[0]+1:J.startBinding.fixedPoint[0],d?-J.startBinding.fixedPoint[1]+1:J.startBinding.fixedPoint[1]]}),J.endBinding&&($t.endBinding={...J.endBinding,fixedPoint:[s?-J.endBinding.fixedPoint[0]+1:J.endBinding.fixedPoint[0],d?-J.endBinding.fixedPoint[1]+1:J.endBinding.fixedPoint[1]]}),J.fixedSegments&&Cn.points&&($t.fixedSegments=J.fixedSegments.map(lt=>({...lt,start:Cn.points[lt.index-1],end:Cn.points[lt.index]})))),Ye(J)&&($t.scale=[J.scale[0]*Z,J.scale[1]*we]),X(J)){let lt=Ds(J,t,he);if(!lt)return;$t.fontSize=lt.size}let ur=o.get(Jt(J)??"");if(ur)if(_){let lt=ur.fontSize*S;if(lt<bo)return;$t.boundTextFontSize=lt}else $t.boundTextFontSize=ur.fontSize;G.push({element:j,update:$t})}let ce=G.map(({element:J})=>J);for(let{element:J,update:{boundTextFontSize:j,...he}}of G){let{width:Ke,height:fr,angle:Jn}=he;Y(J,he,!1,{isDragging:!0}),Ht(J,t,{simultaneouslyUpdated:ce,newSize:{width:Ke,height:fr}});let Yn=oe(J,t);Yn&&j&&(Y(Yn,{fontSize:j,angle:ae(J)?void 0:Jn},!1),_n(J,t,n,!0))}r.triggerUpdate()}};var F9=(e,t,n,r,o,i)=>{if(t.length===1&&W(t[0])&&(t[0].startBinding||t[0].endBinding))return;let a=t.filter(U=>{if(W(U)&&U.startBinding&&U.endBinding){let p=t.find(b=>b.id===U.startBinding?.elementId),m=t.find(b=>b.id===U.endBinding?.elementId);return p&&m}return!0}),s=new Set(a),d=a.filter(U=>de(U)).map(U=>U.id);if(d.length>0)for(let U of r.getNonDeletedElements())U.frameId!==null&&d.includes(U.frameId)&&s.add(U);let c=Pe(Array.from(s).map(U=>e.originalElements.get(U.id)??U)),l=B9(c,n,o,i);s.forEach(U=>{if(o6(e,U,l),!ee(U)){let p=oe(U,r.getNonDeletedElementsMap());p&&o6(e,p,l),Ht(U,r.getElementsMapIncludingDeleted(),{simultaneouslyUpdated:Array.from(s)})}})},B9=(e,t,n,r)=>{let[o,i]=e,a=o+t.x+n.x,s=i+t.y+n.y;if(n.x===0||n.y===0){let[d,c]=Cr(o+t.x,i+t.y,r);n.x===0&&(a=d),n.y===0&&(s=c)}return{x:a-o,y:s-i}},o6=(e,t,n)=>{let r=e.originalElements.get(t.id)??t,o=r.x+n.x,i=r.y+n.y;Y(t,{x:o,y:i})},_9=(e,t,n)=>{let[r,o]=Pe(e);return[t-r,n-o]},O9=({newElement:e,elementType:t,originX:n,originY:r,x:o,y:i,width:a,height:s,shouldMaintainAspectRatio:d,shouldResizeFromCenter:c,zoom:l,widthAspectRatio:U=null,originOffset:p=null,informMutation:m=!0})=>{d&&e.type!=="selection"&&(U?s=a/U:(Math.abs(i-r)>Math.abs(o-n)?{width:a,height:s}=Fi(t,s,o<n?-a:a):{width:a,height:s}=Fi(t,a,i<r?-s:s),s<0&&(s=-s)));let b=o<n?n-a:n,E=i<r?r-s:r;c&&(a+=a,s+=s,b=n-a/2,E=r-s/2);let g=null;if(X(e)){s=e.height;let y=Oo(be({fontSize:e.fontSize,fontFamily:e.fontFamily}),e.lineHeight);a=Math.max(a,y),Math.abs(o-n)>Fs/l&&(g={autoResize:!1}),E=r,c&&(b=n-a/2)}if(a!==0&&s!==0){let y=null;Ye(e)&&(y={initialWidth:a,initialHeight:s}),Y(e,{x:b+(p?.x??0),y:E+(p?.y??0),width:a,height:s,...g,...y},m)}};var A9=(e,t)=>!!(!e.viewModeEnabled&&e.openDialog?.name!=="elementLinkSelector"&&(e.activeTool.type!=="custom"&&(e.editingTextElement||e.activeTool.type!=="selection"&&e.activeTool.type!=="eraser"&&e.activeTool.type!=="hand"&&e.activeTool.type!=="laser")||it(t,e).length));var eY=e=>e.reduce((t,n)=>t+n.version,0),tY=e=>{let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e[n].versionNonce;return t>>>0},V2=e=>{let t=5381;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)+t+r}return t>>>0},l2=e=>e.filter(t=>!t.isDeleted&&!ro(t)),ds=e=>e.filter(t=>!t.isDeleted),Cp=e=>!e.isDeleted,i6=e=>ds(e).map(t=>ji(t.type)?{...t,lastCommittedPoint:null}:t),z2=e=>i6(e),wi=e=>i6(e);var s6=async e=>{let t;if(e.type===H.png)try{return await(await import("./data/image-UOG3QKNC.js")).decodePngMetadata(e)}catch(n){throw n.message==="INVALID"?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):new nn("Error: cannot restore image")}else if("text"in Blob?t=await e.text():t=await new Promise(n=>{let r=new FileReader;r.readAsText(e,"utf8"),r.onloadend=()=>{r.readyState===FileReader.DONE&&n(r.result)}}),e.type===H.svg)try{return pp({svg:t})}catch(n){throw n.message==="INVALID"?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):new nn("Error: cannot restore image")}return t};var H9=e=>e&&e.name.match(/\.(json|excalidraw|png|svg)$/)?.[1]||null,MY=e=>e==="png"||e==="svg",k2=e=>{let t=H9(e);return t==="png"||t==="svg"},ls=e=>!!e&&Object.values(ho).includes(e),Oi=e=>{let{type:t}=e||{};return ls(t)},J9=async(e,t,n,r)=>{let o=await s6(e),i;try{try{i=JSON.parse(o)}catch(a){throw Oi(e)?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):a}if(W2(i))return{type:H.excalidraw,data:no({elements:wi(i.elements||[]),appState:{theme:t?.theme,fileHandle:r||e.handle||null,...wo(i.appState||{}),...t?Na(i.elements||[],t):{}},files:i.files},t,n,{repairBindings:!0,refreshDimensions:!1})};if(ja(i))return{type:H.excalidrawlib,data:i};throw new Error("Error: invalid file")}catch(a){throw a instanceof nn?a:new Error("Error: invalid file")}},Z2=async(e,t,n,r)=>{let o=await J9(e,t,n,r);if(o.type!==H.excalidraw)throw new Error("Error: invalid file");return o.data},Y9=(e,t="unpublished")=>{let n=JSON.parse(e);if(!ja(n))throw new Error("Invalid library");let r=n.libraryItems||n.library;return xp(r,t)},LY=async(e,t="unpublished")=>Y9(await s6(e),t),DY=async e=>new Promise(async(t,n)=>{try{Po(e)&&(e=await e),e.toBlob(r=>{if(!r)return n(new Ho("Error: Canvas too big","CANVAS_POSSIBLY_TOO_BIG"));t(r)})}catch(r){n(r)}}),SY=async e=>{try{let t=await window.crypto.subtle.digest("SHA-1",await ln(e));return pd(new Uint8Array(t))}catch(t){return console.error(t),K9(40)}},vY=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let o=r.result;t(o)},r.onerror=o=>n(o),r.readAsDataURL(e)}),$Y=(e,t)=>`data:${t};base64,${Mi(co(e),!0)}`,PY=(e,t="")=>{let n=e.indexOf(","),r=atob(e.slice(n+1)),o=e.slice(0,n).split(":")[1].split(";")[0],i=new ArrayBuffer(r.length),a=new Uint8Array(i);for(let s=0;s<r.length;s++)a[s]=r.charCodeAt(s);return new File([i],t,{type:o})},NY=e=>Li(e.slice(e.indexOf(",")+1)),FY=async(e,t)=>{if(e.type===H.svg)return e;let[n,r]=await Promise.all([import("pica").then(i=>i.default),import("image-blob-reduce").then(i=>i.default)]),o=r({pica:n({features:["js","wasm"]})});if(t.outputType){let{outputType:i}=t;o._create_blob=function(a){return this.pica.toBlob(a.out_canvas,i,.8).then(s=>(a.out_blob=s,a))}}if(!Oi(e))throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"});return new File([await o.toBlob(e,{max:t.maxWidthOrHeight,alpha:!0})],e.name,{type:t.outputType||e.type})},BY=(e,t="")=>new File([new TextEncoder().encode(e)],t,{type:H.svg}),_Y=async(e,t="")=>{let n;try{n=await fetch(e)}catch{throw new Error("Error: failed to fetch image",{cause:"FETCH_ERROR"})}if(!n.ok)throw new Error("Error: failed to fetch image",{cause:"FETCH_ERROR"});let r=await n.blob();if(r.type&&Oi(r)){let o=t||r.name||"";return new File([r],o,{type:r.type})}throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"})},OY=async e=>{let t=e.dataTransfer.files.item(0),n=await C9(e);return{file:t?await Qa(t):null,fileHandle:n}},C9=async e=>{if(G2)try{return await e.dataTransfer.items[0].getAsFileSystemHandle()||null}catch(t){return console.warn(t.name,t.message),null}return null},a6=e=>{let t=null,n=`${[...new Uint8Array(e).slice(0,8)].join(" ")} `,r={png:"137 80 78 71 13 10 26 10 ",jpg:"255 216 255 ",gif:"71 73 70 56 57 97 "};return n===r.png?t=H.png:n.startsWith(r.jpg)?t=H.jpg:n.startsWith(r.gif)&&(t=H.gif),t},Ur=(e,t,n)=>new File([e],n||"",{type:t}),Qa=async e=>{if(e.type){if(Oi(e)){let t=await ln(e),n=a6(t);n&&n!==e.type&&(e=Ur(t,n,e.name))}}else if(e?.name?.endsWith(".excalidrawlib"))e=Ur(await ln(e),H.excalidrawlib,e.name);else if(e?.name?.endsWith(".excalidraw"))e=Ur(await ln(e),H.excalidraw,e.name);else{let t=await ln(e),n=a6(t);n&&(e=Ur(t,n,e.name))}return e},ln=e=>"arrayBuffer"in e?e.arrayBuffer():new Promise((t,n)=>{let r=new FileReader;r.onload=o=>{if(!o.target?.result)return n(new Error("Couldn't convert blob to ArrayBuffer"));t(o.target.result)},r.readAsArrayBuffer(e)});var co=e=>{let t=typeof e=="string"?new TextEncoder().encode(e):e instanceof Uint8Array?e:new Uint8Array(e),n="";for(let r of t)n+=String.fromCharCode(r);return n},d6=e=>{let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let r=0,o=e.length;r<o;r++)n[r]=e.charCodeAt(r);return t},c6=e=>new TextDecoder("utf-8").decode(d6(e)),Mi=(e,t=!1)=>t?window.btoa(e):window.btoa(co(e)),Li=(e,t=!1)=>t?window.atob(e):c6(window.atob(e));var Di=({text:e,compress:t})=>{let n;if(t!==!1)try{n=co(V9(e))}catch(r){console.error("encode: cannot deflate",r)}return{version:"1",encoding:"bstring",compressed:!!n,encoded:n||co(e)}},Si=e=>{let t;switch(e.encoding){case"bstring":t=e.compressed?e.encoded:c6(e.encoded);break;default:throw new Error(`decode: unknown encoding "${e.encoding}"`)}return e.compressed?q9(new Uint8Array(d6(t)),{to:"string"}):t};var X9=async e=>{let n=l6(new Uint8Array(await ln(e))).find(r=>r.name==="tEXt");return n?U6.decode(n.data):null},Dp=async({blob:e,metadata:t})=>{let n=l6(new Uint8Array(await ln(e))),r=U6.encode(H.excalidraw,JSON.stringify(Di({text:t,compress:!0})));return n.splice(-1,0,r),new Blob([G9(n)],{type:H.png})},rC=async e=>{let t=await X9(e);if(t?.keyword===H.excalidraw)try{let n=JSON.parse(t.text);if(!("encoded"in n)){if("type"in n&&n.type===We.excalidraw)return t.text;throw new Error("FAILED")}return Si(n)}catch(n){throw console.error(n),new Error("FAILED")}throw new Error("INVALID")};export{Z9 as a,W9 as b,Uo as c,fo as d,k as e,z9 as f,Q9 as g,j9 as h,eE as i,tE as j,nE as k,po as l,aE as m,sE as n,dE as o,Ns as p,cE as q,lE as r,UE as s,Bs as t,_s as u,fE as v,pE as w,uE as x,mE as y,uo as z,bE as A,EE as B,gE as C,et as D,xE as E,ye as F,Ze as G,Ne as H,pt as I,Nt as J,Vn as K,Eo as L,mr as M,hE as N,yE as O,IE as P,wE as Q,go as R,ho as S,H as T,RE as U,We as V,Hi as W,TE as X,ME as Y,LE as Z,DE as _,SE as $,As as aa,Ks as ba,vE as ca,yo as da,$E as ea,PE as fa,NE as ga,FE as ha,BE as ia,_E as ja,OE as ka,Hs as la,Ji as ma,AE as na,KE as oa,re as pa,Yi as qa,Se as ra,Xt as sa,Ci as ta,rt as ua,HE as va,b6 as wa,JE as xa,qs as ya,YE as za,fn as Aa,CE as Ba,Gs as Ca,qi as Da,VE as Ea,Xs as Fa,ks as Ga,E6 as Ha,se as Ia,ed as Ja,zE as Ka,Ro as La,hr as Ma,td as Na,ve as Oa,O as Pa,h6 as Qa,To as Ra,ue as Sa,He as Ta,u as Ua,T as Va,ie as Wa,rg as Xa,og as Ya,ig as Za,D6 as _a,ag as $a,sg as ab,zi as bb,be as cb,So as db,Ud as eb,fd as fb,dg as gb,cg as hb,st as ib,vr as jb,lg as kb,Sn as lb,Qi as mb,Ug as nb,Zt as ob,fg as pb,pg as qb,ug as rb,Wt as sb,mg as tb,bg as ub,Eg as vb,gg as wb,te as xb,xg as yb,hg as zb,_t as Ab,yg as Bb,Ig as Cb,wg as Db,Rg as Eb,Po as Fb,Tg as Gb,Qt as Hb,Mg as Ib,vn as Jb,Oe as Kb,Lg as Lb,md as Mb,Dg as Nb,Sg as Ob,vg as Pb,$g as Qb,bd as Rb,Ge as Sb,mn as Tb,Pg as Ub,Ot as Vb,Ye as Wb,No as Xb,Fo as Yb,gt as Zb,X as _b,gd as $b,xd as ac,de as bc,ae as cc,ee as dc,W as ec,ji as fc,$r as gc,N6 as hc,xt as ic,F6 as jc,ea as kc,Ag as lc,bn as mc,Fe as nc,Bo as oc,Kg as pc,Hg as qc,Ct as rc,Lt as sc,Jo as tc,nn as uc,ht as vc,wd as wc,Oo as xc,qg as yc,na as zc,kn as Ac,Td as Bc,Gg as Cc,Md as Dc,en as Ec,ut as Fc,Qs as Gc,js as Hc,Tb as Ic,aF as Jc,sF as Kc,Mb as Lc,dF as Mc,U2 as Nc,cF as Oc,Lb as Pc,an as Qc,lF as Rc,UF as Sc,fF as Tc,Aa as Uc,u2 as Vc,m2 as Wc,dn as Xc,EB as Yc,w2 as Zc,R2 as _c,T2 as $c,Hb as ad,Jb as bd,Yb as cd,S2 as dd,xe as ed,fx as fd,px as gd,ux as hd,mx as id,bx as jd,Ex as kd,gx as ld,xx as md,hx as nd,Ix as od,Pr as pd,_d as qd,wx as rd,Rx as sd,Tx as td,Mx as ud,Lx as vd,Dx as wd,Sx as xd,vx as yd,$x as zd,Px as Ad,Nx as Bd,Fx as Cd,Bx as Dd,_x as Ed,Ox as Fd,Ax as Gd,Kx as Hd,Hx as Id,Jx as Jd,Yx as Kd,Cx as Ld,qx as Md,Gx as Nd,Xx as Od,kx as Pd,zx as Qd,jx as Rd,e4 as Sd,t4 as Td,n4 as Ud,d4 as Vd,c4 as Wd,l4 as Xd,U4 as Yd,f4 as Zd,p4 as _d,u4 as $d,m4 as ae,b4 as be,E4 as ce,g4 as de,x4 as ee,h4 as fe,w4 as ge,L4 as he,D4 as ie,S4 as je,v4 as ke,$4 as le,P4 as me,N4 as ne,F4 as oe,B4 as pe,O4 as qe,A4 as re,K4 as se,H4 as te,J4 as ue,Y4 as ve,C4 as we,V4 as xe,q4 as ye,G4 as ze,X4 as Ae,k4 as Be,Z4 as Ce,W4 as De,z4 as Ee,Q4 as Fe,j4 as Ge,eh as He,th as Ie,nh as Je,rh as Ke,oh as Le,ih as Me,ah as Ne,sa as Oe,da as Pe,sh as Qe,dh as Re,ch as Se,lh as Te,Uh as Ue,fh as Ve,ph as We,uh as Xe,bh as Ye,Eh as Ze,gh as _e,xh as $e,hh as af,wh as bf,Rh as cf,Th as df,Mh as ef,Lh as ff,Dh as gf,Sh as hf,vh as if,$h as jf,Fh as kf,Bh as lf,_h as mf,Oh as nf,Ah as of,Kh as pf,Hh as qf,Jh as rf,Yh as sf,Ch as tf,Vh as uf,qh as vf,Gh as wf,Xh as xf,kh as yf,Zh as zf,Wh as Af,zh as Bf,Qh as Cf,jh as Df,ey as Ef,ny as Ff,ry as Gf,oy as Hf,iy as If,ay as Jf,sy as Kf,dy as Lf,cy as Mf,ly as Nf,Uy as Of,fy as Pf,Fn as Qf,Go as Rf,qr as Sf,CB as Tf,VB as Uf,qB as Vf,GB as Wf,Vt as Xf,Va as Yf,XB as Zf,On as _f,Zb as $f,Wb as ag,Gr as bg,zb as cg,kB as dg,p$ as eg,Zo as fg,M1 as gg,Q as hg,C$ as ig,V$ as jg,q$ as kg,G$ as lg,ma as mg,xm as ng,pa as og,K$ as pg,hm as qg,Mm as rg,aP as sg,ei as tg,T1 as ug,It as vg,ot as wg,At as xg,Re as yg,Be as zg,tt as Ag,Qe as Bg,$e as Cg,C1 as Dg,FN as Eg,$a as Fg,j1 as Gg,e2 as Hg,Pa as Ig,BN as Jg,_N as Kg,ON as Lg,si as Mg,ab as Ng,hn as Og,Ht as Pg,Ui as Qg,a2 as Rg,AN as Sg,KN as Tg,fi as Ug,xi as Vg,dr as Wg,B2 as Xg,ka as Yg,Y2 as Zg,H_ as _g,J_ as $g,ke as ah,UP as bh,jn as ch,fP as dh,G2 as eh,X2 as fh,za as gh,xn as hh,gp as ih,v7 as jh,no as kh,xp as lh,X9 as mh,Dp as nh,rC as oh,H9 as ph,MY as qh,k2 as rh,Oi as sh,J9 as th,Z2 as uh,Y9 as vh,LY as wh,DY as xh,SY as yh,vY as zh,$Y as Ah,PY as Bh,NY as Ch,FY as Dh,BY as Eh,_Y as Fh,OY as Gh,Qa as Hh,eo as Ih,xO as Jh,hO as Kh,p7 as Lh,yO as Mh,u7 as Nh,Q2 as Oh,j2 as Ph,MO as Qh,ns as Rh,b7 as Sh,FO as Th,AO as Uh,ep as Vh,tp as Wh,VO as Xh,qO as Yh,E7 as Zh,np as _h,GO as $h,x7 as ai,sp as bi,Up as ci,fp as di,RA as ei,QA as fi,O7 as gi,UK as hi,fK as ii,Tp as ji,pK as ki,uK as li,Lp as mi,Us as ni,V7 as oi,q7 as pi,G7 as qi,RK as ri,vp as si,Z7 as ti,Pp as ui,QK as vi,$i as wi,yn as xi,jK as yi,eH as zi,io as Ai,is as Bi,as as Ci,tH as Di,nH as Ei,ze as Fi,rH as Gi,j7 as Hi,Ap as Ii,e9 as Ji,oH as Ki,iH as Li,Kp as Mi,up as Ni,mp as Oi,aH as Pi,Pm as Qi,$P as Ri,Bn as Si,ha as Ti,Am as Ui,FP as Vi,Km as Wi,Hm as Xi,Ia as Yi,BP as Zi,Jm as _i,C as $i,Pe as aj,va as bj,fN as cj,ui as dj,Sb as ej,sr as fj,IF as gj,wF as hj,RF as ij,TF as jj,MF as kj,LF as lj,DF as mj,Cr as nj,z as oj,Vr as pj,h2 as qj,y2 as rj,ZF as sj,Ca as tj,sB as uj,_n as vj,I2 as wj,Jt as xj,oe as yj,qe as zj,dB as Aj,cB as Bj,lB as Cj,UB as Dj,fB as Ej,Ya as Fj,Rt as Gj,Or as Hj,Bb as Ij,Ga as Jj,N2 as Kj,kr as Lj,An as Mj,bs as Nj,Zp as Oj,Y as Pj,St as Qj,Xr as Rj,ro as Sj,Hp as Tj,rJ as Uj,Ja as Vj,ss as Wj,Rs as Xj,_i as Yj,Ts as Zj,lJ as _j,g9 as $j,x9 as ak,y9 as bk,I9 as ck,r6 as dk,M9 as ek,L9 as fk,v9 as gk,N9 as hk,F9 as ik,_9 as jk,O9 as kk,A9 as lk,eY as mk,tY as nk,V2 as ok,ds as pk,Cp as qk,t9 as rk,pi as sk,Ib as tk,wb as uk,it as vk,Rb as wk,Oa as xk,yb as yk,Na as zk,Fa as Ak,_a as Bk};
@@ -0,0 +1 @@
1
+ import{mh as a,nh as b,oh as c}from"../chunk-SP3IBIIJ.js";import"../chunk-AIZYGWGQ.js";import"../chunk-SRAX5OIU.js";export{c as decodePngMetadata,b as encodePngMetadata,a as getTEXtChunk};