@excalidraw/excalidraw 0.18.0 → 0.18.1
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.
- package/dist/dev/{chunk-3KPV5WBD.js → chunk-4FTI6OG3.js} +3 -3
- package/dist/dev/{chunk-66VA7UC4.js → chunk-AWQI2HM3.js} +2 -2
- package/dist/dev/data/{image-WB3WPX2D.js → image-YKVTEDFW.js} +3 -3
- package/dist/dev/index.js +5 -5
- package/dist/dev/index.js.map +2 -2
- package/dist/dev/subset-shared.chunk.js +1 -1
- package/dist/dev/subset-worker.chunk.js +1 -1
- package/dist/prod/{chunk-FX7ZIABN.js → chunk-K2UTITRG.js} +2 -2
- package/dist/prod/{chunk-SQ5PDB2P.js → chunk-ZUYEQ4TG.js} +1 -1
- package/dist/prod/data/image-GAAHSSAO.js +1 -0
- package/dist/prod/index.js +4 -4
- package/dist/prod/subset-shared.chunk.js +1 -1
- package/dist/prod/subset-worker.chunk.js +1 -1
- package/package.json +2 -2
- package/dist/prod/data/image-7KUKJ7J4.js +0 -1
- /package/dist/dev/{chunk-3KPV5WBD.js.map → chunk-4FTI6OG3.js.map} +0 -0
- /package/dist/dev/{chunk-66VA7UC4.js.map → chunk-AWQI2HM3.js.map} +0 -0
- /package/dist/dev/data/{image-WB3WPX2D.js.map → image-YKVTEDFW.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as M}from"./chunk-SQ5PDB2P.js";import{d as P}from"./chunk-SRAX5OIU.js";import l6 from"png-chunks-extract";import U6 from"png-chunk-text";import q9 from"png-chunks-encode";import{deflate as C9,inflate as V9}from"pako";import f6 from"open-color";var p6=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),k9=5,Z9=5,Ps=4,fo=4,po=1,ft=[0,2,4,6,8];var pt=(e,t)=>t.map(n=>f6[e][n]),Z={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:pt("gray",ft),red:pt("red",ft),pink:pt("pink",ft),grape:pt("grape",ft),violet:pt("violet",ft),blue:pt("blue",ft),cyan:pt("cyan",ft),teal:pt("teal",ft),green:pt("green",ft),yellow:pt("yellow",ft),orange:pt("orange",ft),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},Ns=p6(Z,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),W9=[Z.black,Z.red[fo],Z.green[fo],Z.blue[fo],Z.yellow[fo]],z9=[Z.transparent,Z.red[po],Z.green[po],Z.blue[po],Z.yellow[po]],Q9=[Z.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],j9={transparent:Z.transparent,white:Z.white,gray:Z.gray,black:Z.black,bronze:Z.bronze,...Ns},eE={transparent:Z.transparent,white:Z.white,gray:Z.gray,black:Z.black,bronze:Z.bronze,...Ns},Fs=e=>[Z.cyan[e],Z.blue[e],Z.violet[e],Z.grape[e],Z.pink[e],Z.green[e],Z.teal[e],Z.yellow[e],Z.orange[e],Z.red[e]],tE=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;var uo=/Mac|iPod|iPhone|iPad/.test(navigator.platform),iE=/^Win/.test(navigator.platform),Bs=/\b(android)\b/i.test(navigator.userAgent),aE="netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,u6=navigator.userAgent.indexOf("Chrome")!==-1,sE=!u6&&navigator.userAgent.indexOf("Safari")!==-1,_s=/iPad|iPhone/.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,dE=()=>navigator.brave?.isBrave?.name==="isBrave",cE=typeof window<"u"&&"ResizeObserver"in window,lE="Excalidraw",Os=36,As=10,Ks=8,UE=5,fE=1,pE=30,Nt=Math.PI/12,uE="red",mo={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},mE={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},bE={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"};var EE={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},je={TEST:"test",DEVELOPMENT:"development"},gE={SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper"},Mn="Xiaolai",Tn="Segoe UI Emoji",Ie={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9},Un={[Mn]:100,[Tn]:1e3},bo=e=>{switch(e){case Ie.Excalifont:return[Mn,Tn];default:return[Tn]}},ke={LIGHT:"light",DARK:"dark"},Pe={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},Eo=1,ut=20,Ft=Ie.Excalifont,Vn="left",go="top";var br=2,Er=2*br,m6=1e-5,xE=2*Er-m6,hE="#ffffff",yE="#1e1e1e",IE="#a2f1a6";var xo=20,ho=5,yo={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",...yo},Hs=[H.text,H.html,...Object.values(yo)],wE={png:"png",svg:"svg",clipboard:"clipboard"},Ze={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Ci=window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,RE=500,TE=300,ME=500;var LE=100,DE=.1,Js=.1,Ys=30,SE=300;var Io="invert(93%) hue-rotate(180deg)",vE={addLibrary:"addLibrary"},$E={addLibrary:"addLibrary"},PE={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},NE=730,FE=1e3,BE=500,_E=1229,qn=2,Cs=[1,2,3],Vi=10,OE=1440,AE=4*1024*1024,re="http://www.w3.org/2000/svg";var qi={excalidraw:2,excalidrawLibrary:2},Se=5,Vs=.7,qs=11,kt={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},Xi={LEFT:"left",CENTER:"center",RIGHT:"right"},Xs=20,wo=.25,Gs=32,ot={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Gi={architect:0,artist:1,cartoonist:2},KE={thin:1,bold:2,extraBold:4},we={strokeColor:Z.black,backgroundColor:Z.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Gi.artist,opacity:100,locked:!1},b6="library",HE="search",ks={name:"default",defaultTab:b6},JE=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"},YE={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Zs="Untitled",ki={generalStats:1,elementProperties:2},CE=1,Ws={sharp:"sharp",round:"round",elbow:"elbow"},zs=.3,gr="element",Qs=Symbol.for("__test__originalId__"),E6=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(E6||{});import{nanoid as A9}from"nanoid";var g6=Cs.includes(devicePixelRatio)?devicePixelRatio:1,mt=()=>({showWelcomeScreen:!1,theme:ke.LIGHT,collaborators:new Map,currentChartType:"bar",currentItemBackgroundColor:we.backgroundColor,currentItemEndArrowhead:"arrow",currentItemFillStyle:we.fillStyle,currentItemFontFamily:Ft,currentItemFontSize:ut,currentItemOpacity:we.opacity,currentItemRoughness:we.roughness,currentItemStartArrowhead:null,currentItemStrokeColor:we.strokeColor,currentItemRoundness:"round",currentItemArrowType:Ws.round,currentItemStrokeStyle:we.strokeStyle,currentItemStrokeWidth:we.strokeWidth,currentItemTextAlign:Vn,currentHoveredFontFamily:null,cursorButton:"up",activeEmbeddable:null,newElement:null,editingTextElement:null,editingGroupId:null,editingLinearElement:null,activeTool:{type:"selection",customType:null,locked:we.locked,lastActiveTool:null},penMode:!1,penDetected:!1,errorMessage:null,exportBackground:!0,exportScale:g6,exportEmbedScene:!1,exportWithDarkMode:!1,fileHandle:null,gridSize:xo,gridStep:ho,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:ki.generalStats|ki.elementProperties},startBoundElement:null,suggestedBindings:[],frameRendering:{enabled:!0,clip:!0,name:!0,outline:!0},frameToHighlight:null,editingFrame:null,elementsToHighlight:null,toast:null,viewBackgroundColor:Z.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}}),js=(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 Ro=e=>js(e,"export"),ed=e=>js(e,"server"),td=({activeTool:e})=>e.type==="eraser",nd=({activeTool:e})=>e.type==="hand";import p9 from"lodash.throttle";import L6 from"es6-promise-pool";var se=(e,t,n)=>Math.min(Math.max(e,t),n),To=(e,t,n="round")=>{let r=Math.pow(10,t);return Math[n]((e+Number.EPSILON)*r)/r},WE=(e,t,n="round")=>{let r=1/t;return Math[n](e*r)/r},xr=(e,t)=>(e+t)/2,Mo=e=>typeof e=="number"&&Number.isFinite(e),Zi=(e,t,n=1e-4)=>Math.abs(e-t)<n;var hr=e=>e<0?e+2*Math.PI:e>=2*Math.PI?e-2*Math.PI:e;function yr(e){return e*Math.PI/180}function rd(e){return e*180/Math.PI}function od(e){return Math.abs(Math.sin(2*e))<1e-4}function Be(e,t,n=0,r=0){return[e-n,t-r]}function O(e,t=[0,0]){return Be(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 st(e,t){return[e[0]+t[0],e[1]+t[1]]}function Lo(e,t){return[e[0]-t[0],e[1]-t[1]]}function ue(e,t){return Be(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 Je=e=>{let t=I6(e);return t===0?Be(0,0):Be(e[0]/t,e[1]/t)};function u(e,t){return[e,t]}function Ir(e){return e.length===2?u(e[0],e[1]):void 0}function q(e,t=u(0,0)){return u(t[0]+e[0],t[1]+e[1])}function Do(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&!isNaN(e[0])&&typeof e[1]=="number"&&!isNaN(e[1])}function _e(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 wr(e,t=[0,0]){return u(e[0]+t[0],e[1]+t[1])}function Zt(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 Xn(e,t){let n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}var bt=(e,t,n)=>wr(t,ue(O(e,t),n)),So=(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 Rr(e,t){return[e,t]}function id(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 Bt=(e,t,n=1e-4)=>{let r=vo(e,t);return r===0?!0:r<n},vo=(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 h=n-E,x=r-g;return Math.sqrt(h*h+x*x)};function pn(e,t){let n=id(Rr(e[0],e[1]),Rr(t[0],t[1]));return!n||!Bt(n,t)||!Bt(n,e)?null:n}function Tr(e,t){return[e,t]}function ad(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=>pn(t,n)).filter(n=>!!n)}function Et(e,t,n,r){return[e,t,n,r]}function sd(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=[sd((E,g)=>e(E,g)[0],t,n),sd((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 Mr=(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 Wi(e,t){let n=T6(e);if(ad(Tr(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=Mr(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:Mr(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,Mr(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,Mr(e,c)));return d?Mr(e,d):null}function zi(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 Qi(...e){return cd(e)}function Gn(e){return cd(e)}var ji=(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},dd=(e,t,n=1e-4)=>{let r=!1;for(let o=0,i=t.length-1;o<i;o++)if(Bt(e,A(t[o],t[o+1]),n)){r=!0;break}return r};function cd(e){return M6(e)?e:[...e,e[0]]}function M6(e){return _e(e[0],e[e.length-1])}function Oe(e,t){return tt([e,t])}var Lr=([e,t],[n,r])=>e<=n?t>=n:e>=n?r>=e:!1,Dr=([e,t],[n,r])=>{let o=Math.max(e,n),i=Math.min(t,r);return o<=i?tt([o,i]):null},Sr=(e,[t,n])=>e>=t&&e<=n;function Ln([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 ld=null;var ng=()=>{if(ld)return ld;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}`},rg=e=>e.charAt(0).toUpperCase()+e.slice(1),og=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,ig=e=>D6(e)||e instanceof Element&&!!e.closest("label, button"),ag=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"),ea=({fontFamily:e})=>{for(let[t,n]of Object.entries(Ie))if(n===e)return`${t}${bo(n).map(r=>`, ${r}`).join("")}`;return Tn},Ee=({fontSize:e,fontFamily:t})=>`${e}px ${ea({fontFamily:t})}`,$o=(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},pd=(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},ud=e=>1-Math.pow(1-e,4),Ud=(e,t,n)=>(t-e)*ud(n)+e,sg=({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=ud(m/r),E={};if(Object.keys(e).forEach(g=>{let h=g,x=(t[h]-e[h])*b+e[h];E[h]=x}),n(E),m<r){let g=m/r,h={};Object.keys(e).forEach(x=>{let y=x,w=e[y],I=t[y],S;S=o?o(w,I,g,y):Ud(w,I,g),S==null&&(S=Ud(w,I,g)),h[y]=S}),n(h),c=window.requestAnimationFrame(U)}else n(t),a?.()}return c=window.requestAnimationFrame(U),()=>{s?.(),d=!0,window.cancelAnimationFrame(c)}},dg=(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 dt=(e,t)=>Math.abs(e-t),$r=(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 cg=e=>(e=e.replace(/\bAlt\b/i,"Alt").replace(/\bShift\b/i,"Shift").replace(/\b(Enter|Return)\b/i,"Enter"),uo?e.replace(/\bCtrlOrCmd\b/gi,"Cmd").replace(/\bAlt\b/i,"Option"):e.replace(/\bCtrlOrCmd\b/gi,"Ctrl")),Dn=({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}},ta=({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}},lg=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}]`),Po=e=>$6.test(e),un=e=>{let[t,n]=e;return{x:t,y:n}},Ug=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},fg=(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},pg=(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===Z.transparent},No=e=>e.fillStyle!=="solid"||Wt(e.backgroundColor),ug=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n};var mg=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},bg=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},Eg=e=>{e.preventDefault(),e.returnValue=""},md=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),zt=()=>Ot()?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),gg=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),_t=(e,t)=>e.reduce((n,r)=>(n[t?t(r):String(r)]=r,n),{}),xg=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},[]),Ot=()=>M.MODE==="test",hg=()=>M.MODE==="development",bd=()=>typeof process<"u"&&!0,yg=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Ig=(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 wg=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}};var Fo=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Rg=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):[]},fd=(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]||fd(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]||fd(e[a],t[a]);return!d&&r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),d})},Tg=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},Sn=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Ae(e,t){if(!e)throw new Error(t)}var Mg=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},Ed=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Lg=e=>JSON.parse(JSON.stringify(e)),Dg=(e,t)=>Qt(e,t)?e:t;function Sg(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function vg(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)} ${xr(o[0],i[0]).toFixed(2)},${xr(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+=`${xr(r[0],o[0]).toFixed(2)},${xr(r[1],o[1]).toFixed(2)} `;return t&&(a+="Z"),a}var gd=e=>e.replace(/\r?\n|\r/g,`
|
|
1
|
+
import{a as M}from"./chunk-ZUYEQ4TG.js";import{d as P}from"./chunk-SRAX5OIU.js";import l6 from"png-chunks-extract";import U6 from"png-chunk-text";import q9 from"png-chunks-encode";import{deflate as C9,inflate as V9}from"pako";import f6 from"open-color";var p6=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),k9=5,Z9=5,Ps=4,fo=4,po=1,ft=[0,2,4,6,8];var pt=(e,t)=>t.map(n=>f6[e][n]),Z={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:pt("gray",ft),red:pt("red",ft),pink:pt("pink",ft),grape:pt("grape",ft),violet:pt("violet",ft),blue:pt("blue",ft),cyan:pt("cyan",ft),teal:pt("teal",ft),green:pt("green",ft),yellow:pt("yellow",ft),orange:pt("orange",ft),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},Ns=p6(Z,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),W9=[Z.black,Z.red[fo],Z.green[fo],Z.blue[fo],Z.yellow[fo]],z9=[Z.transparent,Z.red[po],Z.green[po],Z.blue[po],Z.yellow[po]],Q9=[Z.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],j9={transparent:Z.transparent,white:Z.white,gray:Z.gray,black:Z.black,bronze:Z.bronze,...Ns},eE={transparent:Z.transparent,white:Z.white,gray:Z.gray,black:Z.black,bronze:Z.bronze,...Ns},Fs=e=>[Z.cyan[e],Z.blue[e],Z.violet[e],Z.grape[e],Z.pink[e],Z.green[e],Z.teal[e],Z.yellow[e],Z.orange[e],Z.red[e]],tE=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;var uo=/Mac|iPod|iPhone|iPad/.test(navigator.platform),iE=/^Win/.test(navigator.platform),Bs=/\b(android)\b/i.test(navigator.userAgent),aE="netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,u6=navigator.userAgent.indexOf("Chrome")!==-1,sE=!u6&&navigator.userAgent.indexOf("Safari")!==-1,_s=/iPad|iPhone/.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,dE=()=>navigator.brave?.isBrave?.name==="isBrave",cE=typeof window<"u"&&"ResizeObserver"in window,lE="Excalidraw",Os=36,As=10,Ks=8,UE=5,fE=1,pE=30,Nt=Math.PI/12,uE="red",mo={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},mE={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},bE={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"};var EE={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},je={TEST:"test",DEVELOPMENT:"development"},gE={SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper"},Mn="Xiaolai",Tn="Segoe UI Emoji",Ie={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9},Un={[Mn]:100,[Tn]:1e3},bo=e=>{switch(e){case Ie.Excalifont:return[Mn,Tn];default:return[Tn]}},ke={LIGHT:"light",DARK:"dark"},Pe={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},Eo=1,ut=20,Ft=Ie.Excalifont,Vn="left",go="top";var br=2,Er=2*br,m6=1e-5,xE=2*Er-m6,hE="#ffffff",yE="#1e1e1e",IE="#a2f1a6";var xo=20,ho=5,yo={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",...yo},Hs=[H.text,H.html,...Object.values(yo)],wE={png:"png",svg:"svg",clipboard:"clipboard"},Ze={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Ci=window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,RE=500,TE=300,ME=500;var LE=100,DE=.1,Js=.1,Ys=30,SE=300;var Io="invert(93%) hue-rotate(180deg)",vE={addLibrary:"addLibrary"},$E={addLibrary:"addLibrary"},PE={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},NE=730,FE=1e3,BE=500,_E=1229,qn=2,Cs=[1,2,3],Vi=10,OE=1440,AE=4*1024*1024,re="http://www.w3.org/2000/svg";var qi={excalidraw:2,excalidrawLibrary:2},Se=5,Vs=.7,qs=11,kt={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},Xi={LEFT:"left",CENTER:"center",RIGHT:"right"},Xs=20,wo=.25,Gs=32,ot={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Gi={architect:0,artist:1,cartoonist:2},KE={thin:1,bold:2,extraBold:4},we={strokeColor:Z.black,backgroundColor:Z.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Gi.artist,opacity:100,locked:!1},b6="library",HE="search",ks={name:"default",defaultTab:b6},JE=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"},YE={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Zs="Untitled",ki={generalStats:1,elementProperties:2},CE=1,Ws={sharp:"sharp",round:"round",elbow:"elbow"},zs=.3,gr="element",Qs=Symbol.for("__test__originalId__"),E6=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(E6||{});import{nanoid as A9}from"nanoid";var g6=Cs.includes(devicePixelRatio)?devicePixelRatio:1,mt=()=>({showWelcomeScreen:!1,theme:ke.LIGHT,collaborators:new Map,currentChartType:"bar",currentItemBackgroundColor:we.backgroundColor,currentItemEndArrowhead:"arrow",currentItemFillStyle:we.fillStyle,currentItemFontFamily:Ft,currentItemFontSize:ut,currentItemOpacity:we.opacity,currentItemRoughness:we.roughness,currentItemStartArrowhead:null,currentItemStrokeColor:we.strokeColor,currentItemRoundness:"round",currentItemArrowType:Ws.round,currentItemStrokeStyle:we.strokeStyle,currentItemStrokeWidth:we.strokeWidth,currentItemTextAlign:Vn,currentHoveredFontFamily:null,cursorButton:"up",activeEmbeddable:null,newElement:null,editingTextElement:null,editingGroupId:null,editingLinearElement:null,activeTool:{type:"selection",customType:null,locked:we.locked,lastActiveTool:null},penMode:!1,penDetected:!1,errorMessage:null,exportBackground:!0,exportScale:g6,exportEmbedScene:!1,exportWithDarkMode:!1,fileHandle:null,gridSize:xo,gridStep:ho,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:ki.generalStats|ki.elementProperties},startBoundElement:null,suggestedBindings:[],frameRendering:{enabled:!0,clip:!0,name:!0,outline:!0},frameToHighlight:null,editingFrame:null,elementsToHighlight:null,toast:null,viewBackgroundColor:Z.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}}),js=(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 Ro=e=>js(e,"export"),ed=e=>js(e,"server"),td=({activeTool:e})=>e.type==="eraser",nd=({activeTool:e})=>e.type==="hand";import p9 from"lodash.throttle";import L6 from"es6-promise-pool";var se=(e,t,n)=>Math.min(Math.max(e,t),n),To=(e,t,n="round")=>{let r=Math.pow(10,t);return Math[n]((e+Number.EPSILON)*r)/r},WE=(e,t,n="round")=>{let r=1/t;return Math[n](e*r)/r},xr=(e,t)=>(e+t)/2,Mo=e=>typeof e=="number"&&Number.isFinite(e),Zi=(e,t,n=1e-4)=>Math.abs(e-t)<n;var hr=e=>e<0?e+2*Math.PI:e>=2*Math.PI?e-2*Math.PI:e;function yr(e){return e*Math.PI/180}function rd(e){return e*180/Math.PI}function od(e){return Math.abs(Math.sin(2*e))<1e-4}function Be(e,t,n=0,r=0){return[e-n,t-r]}function O(e,t=[0,0]){return Be(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 st(e,t){return[e[0]+t[0],e[1]+t[1]]}function Lo(e,t){return[e[0]-t[0],e[1]-t[1]]}function ue(e,t){return Be(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 Je=e=>{let t=I6(e);return t===0?Be(0,0):Be(e[0]/t,e[1]/t)};function u(e,t){return[e,t]}function Ir(e){return e.length===2?u(e[0],e[1]):void 0}function q(e,t=u(0,0)){return u(t[0]+e[0],t[1]+e[1])}function Do(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&!isNaN(e[0])&&typeof e[1]=="number"&&!isNaN(e[1])}function _e(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 wr(e,t=[0,0]){return u(e[0]+t[0],e[1]+t[1])}function Zt(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 Xn(e,t){let n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}var bt=(e,t,n)=>wr(t,ue(O(e,t),n)),So=(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 Rr(e,t){return[e,t]}function id(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 Bt=(e,t,n=1e-4)=>{let r=vo(e,t);return r===0?!0:r<n},vo=(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 h=n-E,x=r-g;return Math.sqrt(h*h+x*x)};function pn(e,t){let n=id(Rr(e[0],e[1]),Rr(t[0],t[1]));return!n||!Bt(n,t)||!Bt(n,e)?null:n}function Tr(e,t){return[e,t]}function ad(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=>pn(t,n)).filter(n=>!!n)}function Et(e,t,n,r){return[e,t,n,r]}function sd(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=[sd((E,g)=>e(E,g)[0],t,n),sd((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 Mr=(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 Wi(e,t){let n=T6(e);if(ad(Tr(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=Mr(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:Mr(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,Mr(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,Mr(e,c)));return d?Mr(e,d):null}function zi(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 Qi(...e){return cd(e)}function Gn(e){return cd(e)}var ji=(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},dd=(e,t,n=1e-4)=>{let r=!1;for(let o=0,i=t.length-1;o<i;o++)if(Bt(e,A(t[o],t[o+1]),n)){r=!0;break}return r};function cd(e){return M6(e)?e:[...e,e[0]]}function M6(e){return _e(e[0],e[e.length-1])}function Oe(e,t){return tt([e,t])}var Lr=([e,t],[n,r])=>e<=n?t>=n:e>=n?r>=e:!1,Dr=([e,t],[n,r])=>{let o=Math.max(e,n),i=Math.min(t,r);return o<=i?tt([o,i]):null},Sr=(e,[t,n])=>e>=t&&e<=n;function Ln([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 ld=null;var ng=()=>{if(ld)return ld;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}`},rg=e=>e.charAt(0).toUpperCase()+e.slice(1),og=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,ig=e=>D6(e)||e instanceof Element&&!!e.closest("label, button"),ag=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"),ea=({fontFamily:e})=>{for(let[t,n]of Object.entries(Ie))if(n===e)return`${t}${bo(n).map(r=>`, ${r}`).join("")}`;return Tn},Ee=({fontSize:e,fontFamily:t})=>`${e}px ${ea({fontFamily:t})}`,$o=(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},pd=(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},ud=e=>1-Math.pow(1-e,4),Ud=(e,t,n)=>(t-e)*ud(n)+e,sg=({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=ud(m/r),E={};if(Object.keys(e).forEach(g=>{let h=g,x=(t[h]-e[h])*b+e[h];E[h]=x}),n(E),m<r){let g=m/r,h={};Object.keys(e).forEach(x=>{let y=x,w=e[y],I=t[y],S;S=o?o(w,I,g,y):Ud(w,I,g),S==null&&(S=Ud(w,I,g)),h[y]=S}),n(h),c=window.requestAnimationFrame(U)}else n(t),a?.()}return c=window.requestAnimationFrame(U),()=>{s?.(),d=!0,window.cancelAnimationFrame(c)}},dg=(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 dt=(e,t)=>Math.abs(e-t),$r=(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 cg=e=>(e=e.replace(/\bAlt\b/i,"Alt").replace(/\bShift\b/i,"Shift").replace(/\b(Enter|Return)\b/i,"Enter"),uo?e.replace(/\bCtrlOrCmd\b/gi,"Cmd").replace(/\bAlt\b/i,"Option"):e.replace(/\bCtrlOrCmd\b/gi,"Ctrl")),Dn=({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}},ta=({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}},lg=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}]`),Po=e=>$6.test(e),un=e=>{let[t,n]=e;return{x:t,y:n}},Ug=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},fg=(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},pg=(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===Z.transparent},No=e=>e.fillStyle!=="solid"||Wt(e.backgroundColor),ug=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n};var mg=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},bg=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},Eg=e=>{e.preventDefault(),e.returnValue=""},md=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),zt=()=>Ot()?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),gg=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),_t=(e,t)=>e.reduce((n,r)=>(n[t?t(r):String(r)]=r,n),{}),xg=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},[]),Ot=()=>M.MODE==="test",hg=()=>M.MODE==="development",bd=()=>typeof process<"u"&&!0,yg=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Ig=(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 wg=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}};var Fo=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Rg=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):[]},fd=(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]||fd(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]||fd(e[a],t[a]);return!d&&r&&console.warn(`%cisShallowEqual: ${a} not equal ->`,"color: #8B4000",e[a],t[a]),d})},Tg=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},Sn=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Ae(e,t){if(!e)throw new Error(t)}var Mg=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},Ed=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Lg=e=>JSON.parse(JSON.stringify(e)),Dg=(e,t)=>Qt(e,t)?e:t;function Sg(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function vg(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)} ${xr(o[0],i[0]).toFixed(2)},${xr(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+=`${xr(r[0],o[0]).toFixed(2)},${xr(r[1],o[1]).toFixed(2)} `;return t&&(a+="Z"),a}var gd=e=>e.replace(/\r?\n|\r/g,`
|
|
2
2
|
`),tt=e=>e,mn=async(e,...t)=>new Promise(n=>{n(e(...t))}),xd=(...e)=>Math.max(...e.map(t=>t?1:0))>0;var vr=class{constructor(t,n){P(this,"pool");P(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)))}},kn=e=>e.replace(/"/g,"""),$g=e=>Array.isArray(e)?e:[e];var At=e=>!!e&&e.type==="image"&&!!e.fileId,Ye=e=>!!e&&e.type==="image",Bo=e=>!!e&&e.type==="embeddable",_o=e=>!!e&&e.type==="iframe",gt=e=>!!e&&(e.type==="iframe"||e.type==="embeddable"),k=e=>e!=null&&e.type==="text",hd=e=>e!=null&&e.type==="frame",yd=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&&na(e.type),ee=e=>e!=null&&e.type==="arrow",X=e=>ee(e)&&e.elbowed,na=e=>e==="arrow"||e==="line",Pr=(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),Id=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)),ra=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 Sn(t,null),!1}},Og=e=>e.type==="rectangle"||e.type==="ellipse"||e.type==="diamond",bn=e=>F6(e)&&!!e.boundElements?.some(({type:t})=>t==="text"),Ne=e=>e!==null&&"containerId"in e&&e.containerId!==null&&k(e),Oo=e=>e==="rectangle"||e==="embeddable"||e==="iframe"||e==="image",wd=e=>e==="line"||e==="arrow"||e==="diamond",Ag=(e,t)=>!!((e===ot.ADAPTIVE_RADIUS||e===ot.LEGACY)&&Oo(t.type)||e===ot.PROPORTIONAL_RADIUS&&wd(t.type)),Kg=e=>wd(e.type)?{type:ot.PROPORTIONAL_RADIUS}:Oo(e.type)?{type:ot.ADAPTIVE_RADIUS}:null,vn=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:Dd(r,t),height:i}},Rd="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toLocaleUpperCase(),Td=(e,t)=>{let n=_6(e);return n===0?ht(Rd.split("").join(`
|
|
@@ -31,4 +31,4 @@ import{a as M}from"./chunk-SQ5PDB2P.js";import{d as P}from"./chunk-SRAX5OIU.js";
|
|
|
31
31
|
`,D=x.ownerDocument.createElementNS(re,"style");if(D.classList.add("style-fonts"),D.appendChild(document.createTextNode(`${v}${S.join(v)}`)),y.appendChild(D),t.exportBackground&&s){let B=x.ownerDocument.createElementNS(re,"rect");B.setAttribute("x","0"),B.setAttribute("y","0"),B.setAttribute("width",`${b}`),B.setAttribute("height",`${E}`),B.setAttribute("fill",s),x.appendChild(B)}let $=lp.svg(x),N=r?.renderEmbeddables??!1;return q2(U,tt(te(U)),$,x,n||{},{offsetX:g,offsetY:h,isExporting:!0,exportWithDarkMode:a,renderEmbeddables:N,frameRendering:o,canvasBackgroundColor:s,embedsValidationStatus:N?new Map(U.filter(B=>de(B)).map(B=>[B.id,!0])):new Map,reuseImages:r?.reuseImages??!0}),x},I7=({payload:e,metadataElement:t})=>{let n=Li(JSON.stringify(Si({text:e})),!0);t.appendChild(no(`payload-type:${H.excalidraw}`)),t.appendChild(no("payload-version:2")),t.appendChild(no("payload-start")),t.appendChild(document.createTextNode(n)),t.appendChild(no("payload-end"))},mp=({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=Di(t[1],o),a=JSON.parse(i);if(!("encoded"in a)){if("type"in a&&a.type===Ze.excalidraw)return i;throw new Error("FAILED")}return vi(a)}catch(i){throw console.error(i),new Error("FAILED")}}throw new Error("INVALID")},ss=(e,t)=>{let[n,r,o,i]=$e(e),a=dt(n,o)+t*2,s=dt(r,i)+t*2;return[n,r,a,s]},TA=(e,t,n)=>{let[,,r,o]=ss(e,t).map(i=>Math.trunc(i*n));return[r,o]};var ro=class{constructor(t){this.scoreFunction=t;P(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 Us=1,pe=40,w7=(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=tr(a,d[s-1]),l=tr(d[s-1],d[s-2]);if(ve(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])<Us){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=Mt(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?In(us(ms(ps(e,fs(e,t,o.map(a=>u(a[0]-e.x,a[1]-e.y)),e.startBinding&&cr(e.startBinding.elementId,t),e.endBinding&&cr(e.endBinding.elementId,t)))??[])),i,null,null):(M.DEV&&Ae(Ni(o),"Invalid elbow points with fixed segments"),In(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}},R7=(e,t,n)=>{let r=t.map($=>$.index),i=(e.fixedSegments?.map($=>$.index)??[]).findIndex($=>!r.includes($));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),U=s?null:e.startBinding,p=d?null:e.endBinding,{startHeading:m,endHeading:b,startGlobalPoint:E,endGlobalPoint:g,hoveredStartElement:h,hoveredEndElement:x,...y}=fs({x:c,y:l,startBinding:U,endBinding:p,startArrowhead:null,endArrowhead:null,points:e.points},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)],U&&cr(U.elementId,n),p&&cr(p.elementId,n),{isDragging:!1}),{points:w}=In(us(ms(ps(e,{startHeading:m,endHeading:b,startGlobalPoint:E,endGlobalPoint:g,hoveredStartElement:h,hoveredEndElement:x,...y})??[])),t,null,null),I=[];if(s)for(let $=0;$<s.index;$++)I.push(u(e.x+e.points[$][0],e.y+e.points[$][1]));if(w.forEach($=>{I.push(u(e.x+(s?s.end[0]:0)+$[0],e.y+(s?s.end[1]:0)+$[1]))}),d)for(let $=d.index;$<e.points.length;$++)I.push(u(e.x+e.points[$][0],e.y+e.points[$][1]));let S=(d?.index??e.points.length)-(s?.index??0)-1,v=t.map($=>$.index>a?{...$,index:$.index-S+(w.length-1)}:$),D=I.flatMap(($,N)=>{let B=I[N-1],_=I[N+1];if(B&&_){let W=tr($,B),be=tr(_,$);if(ve(W,be))return v.forEach(V=>{V.index>N&&(V.index-=1)}),[];if(ve(W,Ma(be)))return v.forEach(V=>{V.index>N&&(V.index+=1)}),[$,$]}return[$]});return In(D,v,!1,!1)},T7=(e,t,n,r,o,i)=>{let a=t.map((I,S)=>e.fixedSegments==null||e.fixedSegments[S]===void 0||e.fixedSegments[S].index!==I.index||(I.start[0]!==e.fixedSegments[S].start[0]&&I.end[0]!==e.fixedSegments[S].end[0])!=(I.start[1]!==e.fixedSegments[S].start[1]&&I.end[1]!==e.fixedSegments[S].end[1])?S: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=Lt(n),v=(I?ve(n,Re):ve(n,Fe))?l?c/2:pe:l?-c/2:-pe;t[a].start=u(t[a].start[0]+(I?v:0),t[a].start[1]+(I?0:v))}if(d===-1&&t[a].index===e.points.length-1&&i){let I=Lt(r),v=(I?ve(r,Re):ve(r,Fe))?l?c/2:pe:l?-c/2:-pe;t[a].end=u(t[a].end[0]+(I?v:0),t[a].end[1]+(I?0:v))}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,S)=>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,h=p[m-1]&&!_e(p[m],p[m-1])?Mt(p[m-1],p[m]):void 0,x=p[b+1]&&!_e(p[b],p[b+1])?Mt(p[b+1],p[b]):void 0;if(h!==void 0){let I=h?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 y=U.findIndex(I=>I.index===m);if(y!==-1){let I=Mt(U[y].end,U[y].start)?1:0;U[y].start[I]=E[I],U[y].end=E}let w=U.findIndex(I=>I.index===b+1);if(w!==-1){let I=Mt(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?Lt(n):Mt(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 S of U)S.index+=o?2:1}if(d===-1&&b===e.points.length-1){let I=Lt(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 In(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)},M7=(e,t,n,r,o,i,a,s,d)=>{let c=e.startIsSpecial??null,l=e.endIsSpecial??null,U=t.map((g,h)=>h===0?u(e.x+g[0],e.y+g[1]):h===t.length-1?u(e.x+g[0],e.y+g[1]):u(e.x+e.points[h][0],e.y+e.points[h][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],h=U[c?3:2],x=Lt(r),y=Lt(Ht(O(g,h)));if(s&&x===y){let w=x?ve(r,Re):ve(r,Fe);if(m.unshift(u(y?i[0]+(w?pe:-pe):h[0],y?h[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(y?i[0]:g[0],y?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)],h=U[U.length-(l?4:3)],x=Lt(o),y=Mt(h,g);if(d&&x===y){let w=x?ve(o,Re):ve(o,Fe);m.push(u(y?a[0]+(w?pe:-pe):h[0],y?h[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(y?a[0]:g[0],y?g[1]:a[1])),l&&(l=!1)}return m.push(a),In(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,Pi=(e,t,n,r)=>{if(e.points.length<2)return{points:n.points??e.points};(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(([h,x])=>u(se(h,-ge,ge),se(x,-ge,ge)))),M.PROD||(Ae(!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)"),Ae(!e.fixedSegments||e.fixedSegments.map(h=>h.start[0]===h.end[0]||h.start[1]===h.end[1]).every(Boolean),"Fixed segments must be either horizontal or vertical"),Ae(!n.fixedSegments||n.fixedSegments.map(h=>h.start[0]===h.end[0]||h.start[1]===h.end[1]).every(Boolean),"Updates to fixed segments must be either horizontal or vertical"),Ae(e.points.slice(1).map((h,x)=>h[0]===e.points[x][0]||h[1]===e.points[x][1]),"Elbow arrow segments must be either horizontal or vertical"));let o=n.points?n.points&&n.points.length===2?e.points.map((h,x)=>x===0?n.points[0]:x===e.points.length-1?n.points[1]:h):n.points.slice():e.points.slice(),i=typeof n.startBinding<"u"?n.startBinding:e.startBinding,a=typeof n.endBinding<"u"?n.endBinding:e.endBinding,s=i&&cr(i.elementId,t),d=a&&cr(a.elementId,t);if(t.size===0&&Ni(o)||s?.id!==i?.elementId||d?.id!==a?.elementId)return In(o.map(h=>u(e.x+h[0],e.y+h[1])),e.fixedSegments,e.startIsSpecial,e.endIsSpecial);let{startHeading:c,endHeading:l,startGlobalPoint:U,endGlobalPoint:p,hoveredStartElement:m,hoveredEndElement:b,...E}=fs({x:e.x,y:e.y,startBinding:i,endBinding:a,startArrowhead:e.startArrowhead,endArrowhead:e.endArrowhead,points:e.points},t,o,s,d,r),g=n.fixedSegments??e.fixedSegments??[];return!n.points&&!n.fixedSegments&&!n.startBinding&&!n.endBinding?w7(e,t):n.startBinding===e.startBinding&&n.endBinding===e.endBinding&&(n.points??[]).every((h,x)=>_e(h,e.points[x]??u(1/0,1/0)))?{}:g.length===0?In(us(ms(ps(e,{startHeading:c,endHeading:l,startGlobalPoint:U,endGlobalPoint:p,hoveredStartElement:m,hoveredEndElement:b,...E})??[])),g,null,null):(e.fixedSegments?.length??0)>g.length?R7(e,g,t):n.points?n.points&&n.fixedSegments?n:M7(e,o,g,c,l,U,p,m,b):T7(e,g,c,l,m,b)},fs=(e,t,n,r,o,i)=>{let a=wr(n[0],Be(e.x,e.y)),s=wr(n[n.length-1],Be(e.x,e.y)),d=r,c=o;if(i?.isDragging){let v=Array.from(t.values());d=yp(a,t,v,i?.zoom)||r,c=yp(s,t,v,i?.zoom)||o}let l=xp({...e,elbowed:!0,points:n},"start",e.startBinding?.fixedPoint,a,r,d,i?.isDragging),U=xp({...e,elbowed:!0,points:n},"end",e.endBinding?.fixedPoint,s,o,c,i?.isDragging),p=hp(l,U,t,d,a),m=hp(U,l,t,c,s),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?wt(d,yn(p,e.startArrowhead?me*6:me*2,1)):b,h=c?wt(c,yn(m,e.endArrowhead?me*6:me*2,1)):E,x=gn(l,c?wt(c,yn(m,pe,pe)):E)||gn(U,d?wt(d,yn(p,pe,pe)):b),y=wp(x?[b,E]:[g,h]),w=S7(x?b:g,x?E:h,y,x?yn(p,!d&&!c?0:pe,0):yn(p,!d&&!c?0:pe-(e.startArrowhead?me*6:me*2),pe),x?yn(m,!d&&!c?0:pe,0):yn(m,!d&&!c?0:pe-(e.endArrowhead?me*6:me*2),pe),x,d&&wt(d),c&&wt(c)),I=gp(w[0],p,l),S=gp(w[1],m,U);return{dynamicAABBs:w,startDonglePosition:I,startGlobalPoint:l,startHeading:p,endDonglePosition:S,endGlobalPoint:U,endHeading:m,commonBounds:y,hoveredStartElement:d,hoveredEndElement:c,boundsOverlap:x,startElementBounds:g,endElementBounds:h}},ps=(e,t)=>{let{dynamicAABBs:n,startDonglePosition:r,startGlobalPoint:o,startHeading:i,endDonglePosition:a,endGlobalPoint:s,endHeading:d,commonBounds:c,hoveredEndElement:l}=t,U=v7(n,r||o,i,a||s,d,c),p=r&&$i(r,U),m=a&&$i(a,U),b=$i(s,U);b&&l&&(b.closed=!0);let E=$i(o,U);E&&e.startBinding&&(E.closed=!0);let g=p&&m&&(gn(p.pos,n[1])||gn(m.pos,n[0])),h=L7(p||E,m||b,U,i||Re,d||Re,g?[]:n);if(h){let x=h.map(y=>[y.pos[0],y.pos[1]]);return p&&x.unshift(o),m&&x.push(s),x}return null},yn=(e,t,n)=>{switch(e){case ze:return[t,n,n,n];case Re:return[n,t,n,n];case Fe:return[n,n,t,n]}return[n,n,n,t]},L7=(e,t,n,r,o,i)=>{let a=ls(e.pos,t.pos),s=new ro(d=>d.f);for(s.push(e);s.size()>0;){let d=s.pop();if(!d||d.closed)continue;if(d===t)return D7(e,d);d.closed=!0;let c=P7(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(xd(...i.map(w=>gn(p,w))))continue;let m=N7(l),b=d.parent?Ht(O(d.pos,d.parent.pos)):r,E=Ma(b);if(ve(E,m)||Ip(e.addr,U.addr)&&ve(m,r)||Ip(t.addr,U.addr)&&ve(m,o))continue;let h=b!==m,x=d.g+ls(U.pos,d.pos)+(h?Math.pow(a,3):0),y=U.visited;if(!y||x<U.g){let w=$7(U,t,m,o);U.visited=!0,U.parent=d,U.h=ls(t.pos,U.pos)+w*Math.pow(a,2),U.g=x,U.f=U.g+U.h,y?s.rescoreElement(U):s.push(U)}}}return null},D7=(e,t)=>{let n=t,r=[];for(;n.parent;)r.unshift(n),n=n.parent;return r.unshift(e),r},ls=(e,t)=>Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1]),S7=(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,h]=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],y=[t[0]>e[2]?t[1]>e[3]||t[3]<e[1]?Math.min((c[0]+d[2])/2,t[0]-h):(c[0]+d[2])/2:t[0]>e[0]?t[0]-h:n[0]-h,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,y]);if(!i&&x[2]-x[0]+y[2]-y[0]>w[2]-w[0]+1e-11&&x[3]-x[1]+y[3]-y[1]>w[3]-w[1]+1e-11){let[I,S]=[(y[0]+y[2])/2,(y[1]+y[3])/2];if(t[0]>e[2]&&e[1]>t[3]){let v=x[2]+(y[0]-x[2])/2,D=y[3]+(x[1]-y[3])/2;return Me(Be(e[2]-I,e[1]-S),Be(e[0]-I,e[3]-S))>0?[[x[0],x[1],v,x[3]],[v,y[1],y[2],y[3]]]:[[x[0],D,x[2],x[3]],[y[0],y[1],y[2],D]]}else if(e[2]<t[0]&&e[3]<t[1]){let v=x[2]+(y[0]-x[2])/2,D=x[3]+(y[1]-x[3])/2;return Me(Be(e[0]-I,e[1]-S),Be(e[2]-I,e[3]-S))>0?[[x[0],x[1],x[2],D],[y[0],D,y[2],y[3]]]:[[x[0],x[1],v,x[3]],[v,y[1],y[2],y[3]]]}else if(e[0]>t[2]&&e[3]<t[1]){let v=y[2]+(x[0]-y[2])/2,D=x[3]+(y[1]-x[3])/2;return Me(Be(e[2]-I,e[1]-S),Be(e[0]-I,e[3]-S))>0?[[v,x[1],x[2],x[3]],[y[0],y[1],v,y[3]]]:[[x[0],x[1],x[2],D],[y[0],D,y[2],y[3]]]}else if(e[0]>t[2]&&e[1]>t[3]){let v=y[2]+(x[0]-y[2])/2,D=y[3]+(x[1]-y[3])/2;return Me(Be(e[0]-I,e[1]-S),Be(e[2]-I,e[3]-S))>0?[[v,x[1],x[2],x[3]],[y[0],y[1],v,y[3]]]:[[x[0],D,x[2],x[3]],[y[0],y[1],y[2],D]]}}return[x,y]},v7=(e,t,n,r,o,i)=>{let a=new Set,s=new Set;n===nt||n===Re?s.add(t[1]):a.add(t[0]),o===nt||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]})))}},gp=(e,t,n)=>{switch(t){case ze:return u(n[0],e[1]);case Re:return u(e[2],n[1]);case Fe:return u(n[0],e[3])}return u(e[0],n[1])},$7=(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 ze:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case Fe:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case nt:return e.pos[1]===t.pos[1]?4:2}else if(r===nt)switch(n){case Re:return e.pos[1]===t.pos[1]?4:2;case ze:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case Fe:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3;case nt:return e.pos[0]<=t.pos[0]?4:e.pos[1]===t.pos[1]?0:2}else if(r===ze)switch(n){case Re:return e.pos[1]>t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case ze:return e.pos[1]>=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case Fe:return e.pos[0]===t.pos[0]?4:2;case nt:return e.pos[1]>t.pos[1]&&e.pos[0]>t.pos[0]?1:3}else if(r===Fe)switch(n){case Re:return e.pos[1]<t.pos[1]&&e.pos[0]<t.pos[0]?1:3;case ze:return e.pos[0]===t.pos[0]?4:2;case Fe:return e.pos[1]<=t.pos[1]?4:e.pos[0]===t.pos[0]?0:2;case nt:return e.pos[1]<t.pos[1]&&e.pos[0]>t.pos[0]?1:3}return 0},P7=([e,t],n)=>[oo([e,t-1],n),oo([e+1,t],n),oo([e,t+1],n),oo([e-1,t],n)],oo=([e,t],n)=>e<0||e>=n.col||t<0||t>=n.row?null:n.data[t*n.col+e]??null,$i=(e,t)=>{for(let n=0;n<t.col;n++)for(let r=0;r<t.row;r++){let o=oo([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]))],cr=(e,t)=>{let n=t.get(e);return n&&xt(n)?n:null},In=(e,t,n,r)=>{let o=e[0][0],i=e[0][1],a=e.map(s=>wr(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}},us=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},ms=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)>Us}):e,N7=e=>{switch(e){case 0:return ze;case 1:return Re;case 2:return Fe}return nt},xp=(e,t,n,r,o,i,a)=>{if(a){if(i){let s=fi(e,i,t);return s2(i,s)}return r}if(o){let s=Ui(n||[0,0],o);return Math.abs(or(o,s)-me)>.01?fi(e,o,t):s}return r},hp=(e,t,n,r,o)=>a2(e,t,r,r&&wt(r,Array(4).fill(or(r,e))),n,o),yp=(e,t,n,r)=>Bn(un(e),n,t,r,!0,!0),Ip=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ni=(e,t=Us)=>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 F7={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},B7=e=>Object.keys(Ie).includes(e)?Ie[e]:Ft,lr=(e,t)=>{if(!t)return null;let n=t.focus||0;return X(e)?vn(t)?{...t,focus:n,fixedPoint:Yr(t.fixedPoint??[0,0])}:null:{...t,focus:n}},wn=(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||Dt(),fillStyle:e.fillStyle||we.fillStyle,strokeWidth:e.strokeWidth||we.strokeWidth,strokeStyle:e.strokeStyle??we.strokeStyle,roughness:e.roughness??we.roughness,opacity:e.opacity==null?we.opacity:e.opacity,angle:e.angle||0,x:t.x??e.x??0,y:t.y??e.y??0,strokeColor:e.strokeColor||we.strokeColor,backgroundColor:e.backgroundColor||we.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:Oo(e.type)?ot.LEGACY:ot.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,...n,...bs(n),...t}},_7=e=>{switch(e={...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=B7(U)}let r=typeof e.text=="string"&&e.text||"",o=e.lineHeight||(e.height?Md(e):ko(e.fontFamily));return e=wn(e,{fontSize:t,fontFamily:n,text:r,textAlign:e.textAlign||Vn,verticalAlign:e.verticalAlign||go,containerId:e.containerId??null,originalText:e.originalText||r,autoResize:e.autoResize??!0,lineHeight:o}),!r&&!e.isDeleted&&(e={...e,originalText:r,isDeleted:!0},e=kr(e)),e;case"freedraw":return wn(e,{points:e.points,lastCommittedPoint:null,simulatePressure:e.simulatePressure,pressures:e.pressures});case"image":return wn(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)),wn(e,{type:e.type==="draw"?"line":e.type,startBinding:lr(e,e.startBinding),endBinding:lr(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:lr(e,e.startBinding),endBinding:lr(e,e.endBinding),lastCommittedPoint:null,startArrowhead:l,endArrowhead:U,points:b,x:p,y:m,elbowed:e.elbowed,...xn(b)};return X(e)?wn(e,{...E,elbowed:!0,startBinding:lr(e,e.startBinding),endBinding:lr(e,e.endBinding),fixedSegments:e.fixedSegments,startIsSpecial:e.startIsSpecial,endIsSpecial:e.endIsSpecial}):wn(e,E)}case"ellipse":case"rectangle":case"diamond":case"iframe":case"embeddable":return wn(e,{});case"magicframe":case"frame":return wn(e,{name:e.name??null})}return null},O7=(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),k(a)&&!a.containerId&&(a.containerId=e.id)}return o},[])}},A7=(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}},K7=(e,t)=>{e.frameId&&(t.get(e.frameId)||(e.frameId=null))},Mp=(e,t,n)=>{let r=new Set,o=t?te(t):null,i=An((e||[]).reduce((s,d)=>{if(d.type!=="selection"&&!ao(d)){let c=_7(d);if(c){let l=o?.get(d.id);l&&l.version>c.version&&(c=kr(c,l.version)),r.has(c.id)&&(c={...c,id:Dt()}),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&&K7(s,a),k(s)&&s.containerId?A7(s,a):s.boundElements&&O7(s,a),n.refreshDimensions&&k(s)&&Object.assign(s,Ga(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.map(s=>{if(X(s)&&s.startBinding==null&&s.endBinding==null&&!Ni(s.points))return{...s,...Pi(s,a,{points:[u(0,0),s.points[s.points.length-1]]}),index:s.index};if(X(s)&&s.startBinding&&s.endBinding&&s.startBinding.elementId===s.endBinding.elementId&&s.points.length>1&&s.points.some(([d,c])=>Math.abs(d)>1e6||Math.abs(c)>1e6)){console.error("Fixing self-bound elbow arrow",s.id);let d=a.get(s.startBinding.elementId);return d?{...s,x:d.x+d.width/2,y:d.y-5,width:d.width,height:d.height,points:[u(0,0),u(0,-10),u(d.width/2+5,-10),u(d.width/2+5,d.height/2+5)]}:(console.error("Bound element not found",s.startBinding.elementId),s)}return s})},H7=(e,t,n)=>{let r=t[e];return r!==void 0?r:n[e]},Rp={isSidebarDocked:(e,t)=>["defaultSidebarDockedPreference",e.isSidebarDocked??H7("defaultSidebarDockedPreference",e,t)]},J7=(e,t)=>{e=e||{};let n=mt(),r={};for(let o of Object.keys(Rp))if(o in e){let[i,a]=Rp[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:{...$r(n,r.activeTool.type&&F7[r.activeTool.type]?r.activeTool:{type:"selection"}),lastActiveTool:null,locked:r.activeTool.locked??!1},zoom:{value:Oa(Mo(e.zoom)?e.zoom:e.zoom?.value??n.zoom.value)},openSidebar:typeof e.openSidebar=="string"?{name:ks.name}:r.openSidebar,gridSize:Aa(Mo(e.gridSize)?e.gridSize:xo),gridStep:Ka(Mo(e.gridStep)?e.gridStep:ho),editingFrame:null}},io=(e,t,n,r)=>({elements:Mp(e?.elements,n,r),appState:J7(e?.appState,t||null),files:e?.files||{}}),Tp=e=>{let t=Mp(Es(e.elements),null);return t.length?{...e,elements:t}:null},Lp=(e=[],t)=>{let n=[];for(let r of e)if(Array.isArray(r)){let o=Tp({status:t,elements:r,id:Dt(),created:Date.now()});o&&n.push(o)}else{let o=r,i=Tp({...o,id:o.id||Dt(),status:o.status||t,created:o.created||Date.now()});i&&n.push(i)}return n};var $t=32,xe=12,Rn=256,Sp=50,Kn="NOT_SPREADSHEET",Ur="VALID_SPREADSHEET",so=e=>{let t=/^([-+]?)[$€£¥₩]?([-+]?)([\d.,]+)[%]?$/.exec(e);return t?parseFloat(`${(t[1]||t[2])+t[3]}`.replace(/,/g,"")):null},gs=(e,t)=>e.slice(1).every(n=>so(n[t])!==null),Dp=e=>{let t=e[0].length;if(t>2)return{type:Kn,reason:"More than 2 columns"};if(t===1){if(!gs(e,0))return{type:Kn,reason:"Value is not numeric"};let d=so(e[0][0])===null,c=(d?e.slice(1):e).map(l=>so(l[0]));return c.length<2?{type:Kn,reason:"Less than two rows"}:{type:Ur,spreadsheet:{title:d?e[0][0]:null,labels:null,values:c}}}let n=gs(e,0),r=gs(e,1);if(!n&&!r)return{type:Kn,reason:"Value is not numeric"};let[o,i]=r?[0,1]:[1,0],a=so(e[0][i])===null,s=a?e.slice(1):e;return s.length<2?{type:Kn,reason:"Less than 2 rows"}:{type:Ur,spreadsheet:{title:a?e[0][i]:null,labels:s.map(d=>d[o]),values:s.map(d=>so(d[i]))}}},Y7=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},vp=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=Dp(t);if(o.type!==Ur){let i=Dp(Y7(t));if(i.type===Ur)return i}return o},Fi=Fs(Ps),lt={fillStyle:"hachure",fontFamily:Ft,fontSize:ut,opacity:100,roughness:1,strokeColor:Z.black,roundness:null,strokeStyle:"solid",strokeWidth:1,verticalAlign:kt.MIDDLE,locked:!1},$p=e=>{let t=($t+xe)*e.values.length+xe,n=Rn+xe*2;return{chartWidth:t,chartHeight:n}},C7=(e,t,n,r,o)=>e.labels?.map((i,a)=>qt({groupIds:[r],backgroundColor:o,...lt,text:i.length>8?`${i.slice(0,5)}...`:i,x:t+a*($t+xe)+xe*2,y:n+xe/2,width:$t,angle:5.87,fontSize:16,textAlign:"center",verticalAlign:"top"}))||[],V7=(e,t,n,r,o)=>{let i=qt({groupIds:[r],backgroundColor:o,...lt,x:t-xe,y:n-xe,text:"0",textAlign:"right"}),a=qt({groupIds:[r],backgroundColor:o,...lt,x:t-xe,y:n-Rn-i.height/2,text:Math.max(...e.values).toLocaleString(),textAlign:"right"});return[i,a]},q7=(e,t,n,r,o)=>{let{chartWidth:i,chartHeight:a}=$p(e),s=On({backgroundColor:o,groupIds:[r],...lt,type:"line",x:t,y:n,width:i,points:[u(0,0),u(i,0)]}),d=On({backgroundColor:o,groupIds:[r],...lt,type:"line",x:t,y:n,height:a,points:[u(0,0),u(0,-a)]}),c=On({backgroundColor:o,groupIds:[r],...lt,type:"line",x:t,y:n-Rn-xe,strokeStyle:"dotted",width:i,opacity:Sp,points:[u(0,0),u(i,0)]});return[s,d,c]},Pp=(e,t,n,r,o,i)=>{let{chartWidth:a,chartHeight:s}=$p(e),d=e.title?qt({backgroundColor:o,groupIds:[r],...lt,text:e.title,x:t+a/2,y:n-Rn-xe*2-ut,roundness:null,textAlign:"center"}):null,c=i?Xr({backgroundColor:o,groupIds:[r],...lt,type:"rectangle",x:t,y:n-s,width:a,height:s,strokeColor:Z.black,fillStyle:"solid",opacity:6}):null;return[...c?[c]:[],...d?[d]:[],...C7(e,t,n,r,o),...V7(e,t,n,r,o),...q7(e,t,n,r,o)]},X7=(e,t,n)=>{let r=Math.max(...e.values),o=Dt(),i=Fi[Math.floor(Math.random()*Fi.length)];return[...e.values.map((s,d)=>{let c=s/r*Rn;return Xr({backgroundColor:i,groupIds:[o],...lt,type:"rectangle",x:t+d*($t+xe)+xe,y:n-c-xe,width:$t,height:c})}),...Pp(e,t,n,o,i,M.DEV)]},G7=(e,t,n)=>{let r=Math.max(...e.values),o=Dt(),i=Fi[Math.floor(Math.random()*Fi.length)],a=0,s=[];for(let E of e.values){let g=a*($t+xe),h=-(E/r)*Rn;s.push([g,h]),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],...lt,type:"line",x:t+xe+$t/2,y:n-xe,height:c-U,width:d-l,strokeWidth:2,points:s}),m=e.values.map((E,g)=>{let h=g*($t+xe)+xe/2,x=-(E/r)*Rn+xe/2;return Xr({backgroundColor:i,groupIds:[o],...lt,fillStyle:"solid",strokeWidth:2,type:"ellipse",x:t+h+$t/2,y:n+x-xe*2,width:xe,height:xe})}),b=e.values.map((E,g)=>{let h=g*($t+xe)+xe/2,x=E/r*Rn+xe/2+xe;return On({backgroundColor:i,groupIds:[o],...lt,type:"line",x:t+h+$t/2+xe/2,y:n-x,height:x,strokeStyle:"dotted",opacity:Sp,points:[u(0,0),u(0,x)]})});return[...Pp(e,t,n,o,i,M.DEV),p,...b,...m]},uK=(e,t,n,r)=>e==="line"?G7(t,n,r):X7(t,n,r);var MK="clipboard"in navigator&&"readText"in navigator.clipboard,k7="clipboard"in navigator&&"writeText"in navigator.clipboard,LK="clipboard"in navigator&&"write"in navigator.clipboard&&"ClipboardItem"in window&&"toBlob"in HTMLCanvasElement.prototype,Z7=e=>!!([Ze.excalidraw,Ze.excalidrawClipboard,Ze.excalidrawClipboardWithAPI].includes(e?.type)&&Array.isArray(e.elements)),DK=({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},W7=({elements:e,files:t})=>{let n=te(e),r=new Set(e.filter(s=>de(s))),o=!1,i=e.reduce((s,d)=>(At(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:Ze.excalidrawClipboard,elements:e.map(s=>{if(We(s,n)&&!r.has(We(s,n))){let d=Gr(s);return Y(d,{frameId:null}),d}return s}),files:t?i:void 0};return JSON.stringify(a)},Np=async(e,t,n)=>{await hs(W7({elements:e,files:t}),n)},z7=e=>{let t=vp(e);return t.type===Ur?{spreadsheet:t.spreadsheet}:null};function Fp(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(Fp(n));return t}var Q7=e=>{let t=e.clipboardData?.getData(H.html);if(!t)return null;try{let n=new DOMParser().parseFromString(t,H.html),r=Fp(n.body);if(r.length)return{type:"mixedContent",value:r}}catch(n){console.error(`error in parseHTMLFromPaste: ${n.message}`)}return null},SK=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(Ed(Hs,r))try{if(r===H.text||r===H.html)e[r]=await(await n.getType(r)).text();else if(xs(r)){let o=await n.getType(r),i=fr(o,r,void 0);e[r]=i}else throw new Br(`Unsupported clipboard type: ${r}`)}catch(o){console.warn(o instanceof Br?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},j7=async(e,t=!1)=>{try{let n=!t&&e&&Q7(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:""}}},vK=async(e,t=!1)=>{let n=await j7(e,t);if(n.type==="mixedContent")return{mixedContent:n.value};try{let r=!t&&z7(n.value);if(r)return r}catch(r){console.error(r)}try{let r=JSON.parse(n.value),o=r.type===Ze.excalidrawClipboardWithAPI;if(Z7(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}},Bp=async e=>{try{await navigator.clipboard.write([new window.ClipboardItem({[H.png]:e})])}catch(t){if(Fo(e))await navigator.clipboard.write([new window.ClipboardItem({[H.png]:await e})]);else throw t}},hs=async(e,t)=>{if(k7)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(!e9(e))throw new Error("Error copying to clipboard.")},e9=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 t9=({elements:e,appState:t,files:n,maxWidthOrHeight:r,getDimensions:o,exportPadding:i,exportingFrame:a})=>{let{elements:s,appState:d}=io({elements:e,appState:t},null,null),{exportBackground:c,viewBackgroundColor:l}=d;return pp(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}})},n9=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 t9(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 _p({blob:a,metadata:to(e.elements,e.appState,e.files||{},"local")})),o(a)},t,n)})},r9=async({elements:e,appState:t=mt(),files:n={},exportPadding:r,renderEmbeddables:o,exportingFrame:i,skipInliningFonts:a,reuseImages:s})=>{let{elements:d,appState:c}=io({elements:e,appState:t},null,null),l={...c,exportPadding:r};return up(d,l,n,{exportingFrame:i,renderEmbeddables:o,skipInliningFonts:a,reuseImages:s})},HK=async e=>{if(e.type==="svg"){let t=await r9(e);await hs(t.outerHTML)}else if(e.type==="png")await Bp(n9(e));else if(e.type==="json")await Np(e.elements,e.files);else throw new Error("Invalid export type")};var o9=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)],i9=e=>ae(e)||Ce(e)?e.points:o9(e),Op=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},Kp=e=>{let t=i9(e),{cx:n,cy:r}=Op(t),o=u(n,r),i=t.map(l=>T(l,o,e.angle)),{minX:a,minY:s,maxX:d,maxY:c}=Op(i);return[a+e.x,s+e.y,d+e.x,c+e.y]},Ap=(e,t,n=!1)=>{let r=Kp(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},a9=(e,t)=>{let n=Kp(e);return(Sr(n[0],Oe(t[0],t[2]))||Sr(t[0],Oe(n[0],n[2])))&&(Sr(n[1],Oe(t[1],t[3]))||Sr(t[1],Oe(n[1],n[3])))},Hp=({elements:e,bounds:t,type:n,errorMargin:r=0})=>{ra(t)&&(t=Ke(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"?a9(a,o):n==="inside"?Ap(a,o):Ap(a,o,!0)){if(i.add(a.id),a.boundElements)for(let d of a.boundElements)i.add(d.id);k(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 Jp(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 s9(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}var d9=1e-6;function Yp(e,t){let n=O(e[1],e[0]),r=O(t,e[0]),o=Me(n,r);return Math.abs(o)<d9}function ys(e,t){let n=O(e[1],e[0]),r=O(t,e[0]);return Me(n,r)<0}function Cp(e,t){return Yp(e,t[0])||Yp(e,t[1])||(ys(e,t[0])?!ys(e,t[1]):ys(e,t[1]))}function Vp(e,t){return s9(Jp(e),Jp(t))&&Cp(e,t)&&Cp(t,e)}var uH=(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 Is(e,t,n){let r=Sa(t,n),o=Sa(e,n);return r.some(a=>o.some(s=>Vp(a,s)))}var qp=(e,t,n)=>_i(ui(e,t,n,!1)).filter(r=>!de(r)&&!r.frameId||r.frameId===t.id),ws=(e,t,n)=>ui([t],e,n).some(r=>r.id===t.id);var Bi=(e,t,n)=>{let[r,o,i,a]=C(t,n),[s,d,c,l]=$e(e);return r<=s&&o<=d&&i>=c&&a>=l},hn=(e,t,n)=>Bi([e],t,n)||Is(e,t,n)||ws(e,t,n),mH=(e,t,n)=>{let[r,o,i,a]=C(t,n);return So(u(r,o),u(e.x,e.y),u(i,a))};var bH=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,co(e,r))}return t},co=(e,t)=>{let n=[];for(let r of e.values())r.frameId===t&&n.push(r);return n},ds=e=>e.filter(t=>de(t)),cs=e=>{let t=te(ds(e));return e.filter(n=>t.has(n.id)||!n.frameId||!t.has(n.frameId))},EH=(e,t,n,r)=>{let o=co(e,t.id),i=new Set(o),a=new Set([...qp(e,t,r),...o.filter(p=>ws(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(!Is(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=p2(l,n);for(let[p,m]of Object.entries(U))if(m){let b=an(e,p);if(Bi(b,t,r))for(let E of b)i.add(E)}return[...i].filter(p=>!(k(p)&&p.containerId))},gH=(e,t,n)=>c9(_i(e,qp(e,t,n)),t,n),c9=(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=!Bi(Array.from(s),t,n)}i.groupIds.forEach(s=>{o.set(s,a)})}a||r.push(i)}return r},We=(e,t)=>e.frameId&&t.get(e.frameId)||null,xH=(e,t)=>{let n=new Set,r=te(e);e=_i(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=>hn(c,t,r)))for(let c of d)i.push(c)}}else hn(a,t,r)&&i.push(a);return i},l9=(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 _i(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},Xp=(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)},U9=(e,t)=>{let n=co(e,t.id);return Xp(n,te(e)),e},hH=(e,t,n,r)=>l9(U9(e,n),t,n,r.state).slice(),yH=(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)&&!Gp(s,a,t)&&i.add(s)}),i.size>0&&Xp(i,a),e},_i=(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},Mi=(e,t,n)=>{let r=k(e)&&qe(e,t)||e;return r.frameId&&n.selectedElementIds[r.id]&&n.selectedElementIds[r.frameId]?We(r,t):n.selectedElementIds[r.id]&&n.selectedElementsAreBeingDragged?n.frameToHighlight:We(r,t)},Gp=(e,t,n,r)=>{let o=r?.targetFrame??Mi(e,t,n);if(!o)return!1;let i=k(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 hn(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(at(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(hn(d,o,t))return a(!0),!0;return!1},as=(e,t,n,r,o)=>{if(!n.frameRendering||!n.frameRendering.clip)return!1;let i=Is(e,t,r)||ws(e,t,r);if(i){for(let a of e.groupIds)o?.set(a,!0);return!0}if(!i&&e.groupIds.length>0&&!Bi([e],t,r)){let a=!1;if(n.selectedElementsAreBeingDragged)a=Gp(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},bp=e=>e.name===null?hd(e)?"Frame":"AI Frame":e.name,Ep=(e,t)=>Hp({elements:e,bounds:t,type:"overlap"}).filter(n=>!n.frameId||n.frameId===t.id),IH=e=>{let t=te(e);return e.length>1&&e.some(n=>n.frameId&&t.has(n.frameId))};var f9=e=>{let t=new Set;return e.forEach(n=>{de(n)&&t.add(n.id)}),e.filter(n=>!(n.frameId&&t.has(n.frameId)))},ui=(e,t,n,r=!0)=>{let[o,i,a,s]=C(t,n),d=e.filter(c=>{let[l,U,p,m]=Ke(c,n),b=We(c,n);if(b){let[E,g,h,x]=Ke(b,n);l=Math.max(E,l),U=Math.max(g,U),p=Math.min(h,p),m=Math.min(x,m)}return c.locked===!1&&c.type!=="selection"&&!Ne(c)&&o<=l&&i<=U&&a>=p&&s>=m});return d=r?f9(d):d,d=d.filter(c=>{let l=We(c,n);return l?hn(c,l,n):!0}),d},Ca=(e,t,n,r)=>{let o=new Set(t.map(i=>i.id));return e.filter(i=>{let a=kp(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(at(e,t).map(o=>n(o))));return r.length===1?r[0]:null},at=(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&&Ne(i)&&t.selectedElementIds[i?.containerId]){o.push(i),r.add(i.id);continue}}if(n?.includeElementsInFrames){let i=[];return o.forEach(a=>{de(a)&&co(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]:at(e,t,{includeBoundTextElement:!0}),Ha=(e,t)=>Qt(t.selectedElementIds,e)?t.selectedElementIds:e;var Zp=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}},u9=p9(e=>{(M.DEV||M.MODE===je.TEST||window?.DEBUG_FRACTIONAL_INDICES)&&Za(e,{shouldThrow:M.DEV||M.MODE===je.TEST,includeBoundTextValidation:!0})},1e3*60,{leading:!0,trailing:!1}),m9=e=>{let t=["includeBoundTextElement","includeElementsInFrames"],n="";for(let r of t)n+=`${r}:${e[r]?"1":"0"}`;return n},Wp=e=>typeof e=="string",Hn=class Hn{constructor(){P(this,"callbacks",new Set);P(this,"nonDeletedElements",[]);P(this,"nonDeletedElementsMap",tt(new Map));P(this,"elements",[]);P(this,"nonDeletedFramesLikes",[]);P(this,"frames",[]);P(this,"elementsMap",tt(new Map));P(this,"selectedElementsCache",{selectedElementIds:null,elements:null,cache:new Map});P(this,"sceneNonce");P(this,"insertElement",t=>{let n=t.frameId?this.getElementIndex(t.frameId):this.elements.length;this.insertElementAtIndex(t,n)});P(this,"insertElements",t=>{if(!t.length)return;let n=t[0]?.frameId?this.getElementIndex(t[0].frameId):this.elements.length;this.insertElementsAtIndex(t,n)});P(this,"getContainerElement",t=>t&&t.containerId&&this.getElement(t.containerId)||null);P(this,"getElementsFromId",t=>{let n=this.getNonDeletedElementsMap(),r=n.get(t);return r?[r]:an(n,t)})}static mapElementToScene(t,n){Wp(t)?this.sceneMapById.set(t,n):(this.sceneMapByElement.set(t,n),this.sceneMapById.set(t.id,n))}static getScene(t){return Wp(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=m9(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=at(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&&zp(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=[];u9(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=Zp(this.elements);this.nonDeletedElements=o.elements,this.nonDeletedElementsMap=o.elementsMap,this.frames=r,this.nonDeletedFramesLikes=Zp(this.frames).elements,this.triggerUpdate()}triggerUpdate(){this.sceneNonce=Vt();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)];Zr(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)];Zr(r,te(t)),this.replaceAllElements(r)}getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}};P(Hn,"sceneMapByElement",new WeakMap),P(Hn,"sceneMapById",new Map);var Rs=Hn,Ts=Rs;var Y=(e,t,n=!0,r)=>{let o=!1,{points:i,fixedSegments:a,fileId:s,startBinding:d,endBinding:c}=t;if(X(e)&&(Object.keys(t).length===0||typeof i<"u"||typeof a<"u"||typeof d<"u"||typeof c<"u")){let l=tt(Ts.getScene(e)?.getNonDeletedElementsMap()??new Map);t={...t,angle:0,...Pi({...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],h=m[E];if(g[0]!==h[0]||g[1]!==h[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")&&he.delete(e),e.version++,e.versionNonce=Vt(),e.updated=zt(),n&&Ts.getScene(e)?.triggerUpdate()),e},vt=(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:Vt()}},kr=(e,t)=>(e.version=(t??e.version)+1,e.versionNonce=Vt(),e.updated=zt(),e);var ao=e=>ae(e)||Ce(e)?e.points.length<2:e.width===0&&e.height===0,kp=(e,t,n,r,o)=>{let[i,a,s,d]=Ke(e,o),c=Dn({clientX:r.offsetLeft,clientY:r.offsetTop},r),l=Dn({clientX:r.offsetLeft+t,clientY:r.offsetTop+n},r);return c.x<=s&&c.y<=d&&l.x>=i&&l.y>=a},iJ=(e,t,n,r,o,i)=>{let[a,s,d,c]=$e(e,o),l=Dn({clientX:r.offsetLeft+(i?.left||0),clientY:r.offsetTop+(i?.top||0)},r),U=Dn({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},Oi=(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)/Nt)*Nt;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}},Va=(e,t,n,r)=>{let o=n-e,i=r-t,a=Math.round(Math.atan(i/o)/Nt)*Nt;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 bs=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},b9=16,e6={e:!0,s:!0,n:!0,w:!0};var jp={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},Ms={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]},Ai=e=>!(e.viewport.isMobile||e.isTouchScreen&&(Bs||_s)),Ls=e=>Ai(e)?e6:{},Ki=([e,t,n,r,o,i],a,s,d,c={},l=4,U=br)=>{let p=Qp[d],m=p/s.value,b=p/s.value,E=p/s.value,g=p/s.value,h=n-e,x=r-t,y=l/s.value,w=(p-U*2)/(2*s.value),I={nw:c.nw?void 0:cn(e-y-E+w,t-y-g+w,m,b,o,i,a),ne:c.ne?void 0:cn(n+y-w,t-y-g+w,m,b,o,i,a),sw:c.sw?void 0:cn(e-y-E+w,r+y-w,m,b,o,i,a),se:c.se?void 0:cn(n+y-w,r+y-w,m,b,o,i,a),rotation:c.rotation?void 0:cn(e+h/2-m/2,t-y-g+w-b9/s.value,m,b,o,i,a)},S=5*Qp.mouse/s.value;return Math.abs(h)>S&&(c.n||(I.n=cn(e+h/2-m/2,t-y-g+w,m,b,o,i,a)),c.s||(I.s=cn(e+h/2-m/2,r+y-w,m,b,o,i,a))),Math.abs(x)>S&&(c.w||(I.w=cn(e-y-E+w,t+x/2-b/2,m,b,o,i,a)),c.e||(I.e=cn(n+y-w,t+x/2-b/2,m,b,o,i,a))),I},Ds=(e,t,n,r="mouse",o=e6)=>{if(e.locked||X(e))return{};if(e.type==="freedraw"||ae(e)){if(e.points.length===2){let[,a]=e.points;a[0]===0||a[1]===0?o=Ms:a[0]>0&&a[1]<0?o=jp:a[0]>0&&a[1]>0?o=Ms:a[0]<0&&a[1]>0?o=jp:a[0]<0&&a[1]<0&&(o=Ms)}}else de(e)&&(o={...o,rotation:!0});let i=ae(e)?br+8:Ye(e)?0:br;return Ki(C(e,n,!0),e.angle,t,r,o,i,Ye(e)?0:void 0)},fJ=(e,t)=>{if(t.editingLinearElement)return!1;if(e.length>1)return!0;let n=e[0];return X(n)?!1:ae(n)?n.points.length>2:!0};var vs=(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}=Ds(e,i,t,a,Ls(s));if(d&&vs(d,r,o))return"rotation";let l=Object.keys(c).filter(U=>{let p=c[U];return p?vs(p,r,o):!1});if(l.length>0)return l[0];if(Ai(s)){let[U,p,m,b,E,g]=C(e,t);if(!(ae(e)&&e.points.length<=2)){let h=Ye(e)?0:Er/i.value,x=Er/i.value,y=n6(u(U-h,p-h),u(m+h,b+h),u(E,g),e.angle);for(let[w,I]of Object.entries(y))if(Bt(u(r,o),I,x))return w}}return!1},E9=(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),g9=([e,t,n,r],o,i,a,s,d)=>{let c=Ki([e,t,n,r,(e+n)/2,(t+r)/2],0,a,s,Ls(d)),l=Object.keys(c).find(U=>{let p=c[U];return p&&vs(p,o,i)});if(l)return l;if(Ai(d)){let U=(e+n)/2,p=(t+r)/2,m=Er/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(Bt(u(o,i),g,m))return E}return!1},Ss=["ns","nesw","ew","nwse"],x9=(e,t)=>{let n=Ss.indexOf(e);if(n>=0){let r=Math.round(t/(Math.PI/4));e=Ss[(n+r)%Ss.length]}return e},h9=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=x9(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 y9=(e,t,n,r,o,i,a,s,d,c,l,U)=>{if(n.length===1){let[p]=n;if(t==="rotation")X(p)||(I9(p,r,o,d,c,i),Jt(p,r));else{if(k(p)&&t)return w9(e,p,r,t,a,d,c),Jt(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:h}=v9(b,E,r,e,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});S9(g,h,b,E,r,e,t,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a})}}}return!0}else if(n.length>1){if(t==="rotation")return R9(e,n,r,o,d,c,i,l,U),!0;if(t){let{nextWidth:p,nextHeight:m,flipByX:b,flipByY:E,originalBoundingBox:g}=$9(n,e,r,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});return P9(n,r,t,o,e,{shouldResizeFromCenter:a,shouldMaintainAspectRatio:s,flipByX:b,flipByY:E,nextWidth:p,nextHeight:m,originalBoundingBox:g}),!0}}return!1},I9=(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+Nt/2,p=p-p%Nt),p=hr(p));let m=Yt(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:nr(0,t,nr(1,n,e.points,r),r)}:{},$s=(e,t,n)=>{let r=e.width;if(Ne(e)){let a=qe(e,t);a&&(r=Tt(a,e))}let i=e.fontSize*(n/r);return i<Eo?null:{size:i}},w9=(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 h=Math.max(E,g);if(h>0){let x=t.width*h,y=t.height*h,w=$s(t,n,x);if(w===null)return;let I=[s,d],S=[c,l],v=[U,p],D=u(s,d);if(["n","w","nw"].includes(r)&&(D=u(S[0]-Math.abs(x),S[1]-Math.abs(y))),r==="ne"){let V=[I[0],S[1]];D=u(V[0],V[1]-Math.abs(y))}if(r==="sw"){let V=[S[0],I[1]];D=u(V[0]-Math.abs(x),V[1])}["s","n"].includes(r)&&(D[0]=v[0]-x/2),["e","w"].includes(r)&&(D[1]=v[1]-y/2),o&&(D[0]=v[0]-Math.abs(x)/2,D[1]=v[1]-Math.abs(y)/2);let $=t.angle,N=T(D,u(U,p),$),B=u(D[0]+Math.abs(x)/2,D[1]+Math.abs(y)/2),_=T(B,u(U,p),$);D=T(N,_,-$);let[W,be]=D;Y(t,{fontSize:w.size,width:x,height:y,x:W,y:be})}if(r==="e"||r==="w"){let x=e.get(t.id),[y,w,I,S]=Rt(x,x.width,x.height,!0),v=u(y,w),D=u(I,S),$=Zt(v,D),N=T(u(i,a),$,-x.angle),[B,,_]=Rt(t,t.width,t.height,!0),W=_-B,be=D[0]-v[0],V=Ko(Ee({fontSize:t.fontSize,fontFamily:t.fontFamily}),t.lineHeight),ce=be/W;r.includes("e")&&(ce=(N[0]-v[0])/W),r.includes("w")&&(ce=(D[0]-N[0])/W);let J=t.width*ce<V?V:t.width*ce,j=en(t.originalText,Ee(t),Math.abs(J)),ye=ht(j,Ee(t),t.lineHeight),He=ye.height,[pr,Jn,Yn,Ji]=Rt(x,J,He,!0),Uo=Yn-pr,Yi=Ji-Jn,Gt=[...v];["n","w","nw"].includes(r)&&(Gt=[D[0]-Math.abs(Uo),v[1]]);let ur=x.angle,Cn=T(Gt,$,ur),Pt=u(Gt[0]+Math.abs(Uo)/2,Gt[1]+Math.abs(Yi)/2),mr=T(Pt,$,ur);Gt=T(Cn,mr,-ur);let Ut={width:Math.abs(J),height:Math.abs(ye.height),x:Gt[0],y:Gt[1],text:j,autoResize:!1};Y(t,Ut)}},R9=(e,t,n,r,o,i,a,s,d)=>{let c=5*Math.PI/2+Math.atan2(i-d,o-s);a&&(c+=Nt/2,c-=c%Nt);for(let l of t)if(!de(l)){let[U,p,m,b]=C(l,n),E=(U+m)/2,g=(p+b)/2,h=e.get(l.id)?.angle??l.angle,[x,y]=T(u(E,g),u(s,d),c+h-l.angle);X(l)?Y(l,{points:U2(l,n)}):Y(l,{x:l.x+(x-E),y:l.y+(y-g),angle:hr(c+h)},!1),Jt(l,n,{simultaneouslyUpdated:t});let w=oe(l,n);w&&!ee(l)&&Y(w,{x:w.x+(x-E),y:w.y+(y-g),angle:hr(c+h)},!1)}r.triggerUpdate()},T9=(e,t,n,r,o)=>{let[i,a,s,d]=t.length===1?C(t[0],n):$e(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]}},M9=(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"},L9=(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"},D9=(e,t,n,r,o,i,a,s,d)=>{let c=L9(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{x:l+(t-r)/2*(Math.cos(i)+1),y:U+(t-r)/2*Math.sin(i)+(n-o)/2};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)}}},S9=(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},h=$s(U,o,Tt(g,U));if(h===null)return;l={fontSize:h.size}}else{let g=Td(Ee(U),U.lineHeight),h=Ld(U.fontSize,U.lineHeight);e=Math.max(e,g),t=Math.max(t,h)}}let p=r6(r,e,t,!0),m=u(r.x,r.y);if(ae(r)){let[E,g]=Ke(r,i);m=u(E,g)}let b=D9(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 h=p.points[0][0],x=p.points[0][1];b.x+=h,b.y+=x,p.points=p.points.map(y=>u(y[0]-h,y[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<Eo)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),Jt(n,o,{newSize:{width:e,height:t}}),U&&l!=null&&Y(U,{fontSize:l.fontSize}),_n(n,o,a,d)}},v9=(e,t,n,r,o,i,a,{shouldMaintainAspectRatio:s=!1,shouldResizeFromCenter:d=!1}={})=>{let[c,l,U,p]=Rt(t,t.width,t.height,!0),m=u(c,l),b=u(U,p),E=Zt(m,b),g=T(u(i,a),E,-t.angle),[h,x,y,w]=Rt(e,e.width,e.height,!0),I=y-h,S=w-x,v=b[0]-m[0],D=b[1]-m[1],$=v/I,N=D/S;o.includes("e")&&($=(g[0]-m[0])/I),o.includes("s")&&(N=(g[1]-m[1])/S),o.includes("w")&&($=(b[0]-g[0])/I),o.includes("n")&&(N=(b[1]-g[1])/S);let B=e.width*$,_=e.height*N;if(d&&(B=2*B-t.width,_=2*_-t.height),s){let W=Math.abs(B)/t.width,be=Math.abs(_)/t.height;if(o.length===1&&(_*=W,B*=be),o.length===2){let V=Math.max(W,be);B=t.width*V*Math.sign(B),_=t.height*V*Math.sign(_)}}return{nextWidth:B,nextHeight:_}},$9=(e,t,n,r,o,i,{shouldMaintainAspectRatio:a=!1,shouldResizeFromCenter:s=!1}={})=>{let d=e.map(W=>t.get(W.id)),c=d.reduce((W,be)=>{if(!ae(be))return W;let V=Yt(be);if(!V)return W;let ce=t.get(V)??null;return Ne(ce)?[...W,{...ce,...z.getBoundTextElementPosition(be,ce,n)}]:W},[]),l=Na(d.map(W=>W).concat(c)),{minX:U,minY:p,maxX:m,maxY:b,midX:E,midY:g}=l,h=m-U,x=b-p,y={ne:[U,b],se:[U,p],sw:[m,p],nw:[m,b],e:[U,p+x/2],w:[m,p+x/2],n:[U+h/2,b],s:[U+h/2,p]},[w,I]=s?[E,g]:y[r],S=s?2:1,v=Math.max(Math.abs(o-w)/h||0,Math.abs(i-I)/x||0)*S,D=r.includes("e")||r.includes("w")?Math.abs(o-w)*S:h,$=r.includes("n")||r.includes("s")?Math.abs(i-I)*S:x;a&&(D=h*v*Math.sign(o-w),$=x*v*Math.sign(i-I));let N={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]},[B,_]=N[r].map(W=>W);return{originalBoundingBox:l,nextWidth:D,nextHeight:$,flipByX:B,flipByY:_}},P9=(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((S,v)=>{let D=o.get(v.id);return D&&S.push({orig:D,latest:v}),S},[]),m;if(U)m=U;else{let S=p.reduce((v,{orig:D})=>{if(!ae(D))return v;let $=Yt(D);if(!$)return v;let N=o.get($)??null;return Ne(N)?[...v,{...N,...z.getBoundTextElementPosition(D,N,t)}]:v},[]);m=Na(p.map(({orig:v})=>v).concat(S))}let{minX:b,minY:E,maxX:g,maxY:h,midX:x,midY:y}=m,w=g-b,I=h-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 S=n.includes("e")||n.includes("w")?Math.abs(l)/w:1,v=n.includes("n")||n.includes("s")?Math.abs(c)/I:1,D;n.length===1?D=n.includes("e")||n.includes("w")?S:v:D=Math.max(Math.abs(l)/w||0,Math.abs(c)/I||0);let $={ne:[b,h],se:[b,E],sw:[g,E],nw:[g,h],e:[b,E+I/2],w:[g,E+I/2],n:[b+w/2,h],s:[b+w/2,E]},[N,B]=a?[x,y]:$[n],_=i||p.some(J=>J.latest.angle!==0||k(J.latest)||E2(J.latest));_&&(S=D,v=D);let[W,be]=[s?-1:1,d?-1:1],V=[];for(let{orig:J,latest:j}of p){if(k(J)&&Ne(J))continue;let ye=J.width*S,He=J.height*v,pr=hr(J.angle*W*be),Jn=ae(J)||Ce(J),Yn=J.x-N,Ji=J.y-B,Uo=s&&!Jn?ye:0,Yi=d&&!Jn?He:0,Gt=N+W*(Yn*S+Uo),ur=B+be*(Ji*v+Yi),Cn=r6(J,ye*W,He*be,!1),Pt={x:Gt,y:ur,width:ye,height:He,angle:pr,...Cn};if(X(J)&&(J.startBinding&&(Pt.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&&(Pt.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&&(Pt.fixedSegments=J.fixedSegments.map(Ut=>({...Ut,start:Cn.points[Ut.index-1],end:Cn.points[Ut.index]})))),Ye(J)&&(Pt.scale=[J.scale[0]*W,J.scale[1]*be]),k(J)){let Ut=$s(J,t,ye);if(!Ut)return;Pt.fontSize=Ut.size}let mr=o.get(Yt(J)??"");if(mr)if(_){let Ut=mr.fontSize*D;if(Ut<Eo)return;Pt.boundTextFontSize=Ut}else Pt.boundTextFontSize=mr.fontSize;V.push({element:j,update:Pt})}let ce=V.map(({element:J})=>J);for(let{element:J,update:{boundTextFontSize:j,...ye}}of V){let{width:He,height:pr,angle:Jn}=ye;Y(J,ye,!1,{isDragging:!0}),Jt(J,t,{simultaneouslyUpdated:ce,newSize:{width:He,height:pr}});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 N9=(e,t,n,r,o,i)=>{if(t.length===1&&X(t[0])&&(t[0].startBinding||t[0].endBinding))return;let a=t.filter(U=>{if(X(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=$e(Array.from(s).map(U=>e.originalElements.get(U.id)??U)),l=F9(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),Jt(U,r.getElementsMapIncludingDeleted(),{simultaneouslyUpdated:Array.from(s)})}})},F9=(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]=Vr(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})},B9=(e,t,n)=>{let[r,o]=$e(e);return[t-r,n-o]},_9=({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}=Oi(t,s,o<n?-a:a):{width:a,height:s}=Oi(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(k(e)){s=e.height;let h=Ko(Ee({fontSize:e.fontSize,fontFamily:e.fontFamily}),e.lineHeight);a=Math.max(a,h),Math.abs(o-n)>Os/l&&(g={autoResize:!1}),E=r,c&&(b=n-a/2)}if(a!==0&&s!==0){let h=null;Ye(e)&&(h={initialWidth:a,initialHeight:s}),Y(e,{x:b+(p?.x??0),y:E+(p?.y??0),width:a,height:s,...g,...h},m)}};var O9=(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")||at(t,e).length));var nY=e=>e.reduce((t,n)=>t+n.version,0),rY=e=>{let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e[n].versionNonce;return t>>>0},X2=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},f2=e=>e.filter(t=>!t.isDeleted&&!ao(t)),Es=e=>e.filter(t=>!t.isDeleted),zp=e=>!e.isDeleted,i6=e=>Es(e).map(t=>na(t.type)?{...t,lastCommittedPoint:null}:t),j2=e=>i6(e),Ri=e=>i6(e);var s6=async e=>{let t;if(e.type===H.png)try{return await(await import("./data/image-7KUKJ7J4.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 mp({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 K9=e=>e&&e.name.match(/\.(json|excalidraw|png|svg)$/)?.[1]||null,DY=e=>e==="png"||e==="svg",W2=e=>{let t=K9(e);return t==="png"||t==="svg"},xs=e=>!!e&&Object.values(yo).includes(e),Hi=e=>{let{type:t}=e||{};return xs(t)},H9=async(e,t,n,r)=>{let o=await s6(e),i;try{try{i=JSON.parse(o)}catch(a){throw Hi(e)?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):a}if(Q2(i))return{type:H.excalidraw,data:io({elements:Ri(i.elements||[]),appState:{theme:t?.theme,fileHandle:r||e.handle||null,...Ro(i.appState||{}),...t?_a(i.elements||[],t):{}},files:i.files},t,n,{repairBindings:!0,refreshDimensions:!1})};if(ns(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 H9(e,t,n,r);if(o.type!==H.excalidraw)throw new Error("Error: invalid file");return o.data},J9=(e,t="unpublished")=>{let n=JSON.parse(e);if(!ns(n))throw new Error("Invalid library");let r=n.libraryItems||n.library;return Lp(r,t)},SY=async(e,t="unpublished")=>J9(await s6(e),t),vY=async e=>new Promise(async(t,n)=>{try{Fo(e)&&(e=await e),e.toBlob(r=>{if(!r)return n(new Yo("Error: Canvas too big","CANVAS_POSSIBLY_TOO_BIG"));t(r)})}catch(r){n(r)}}),$Y=async e=>{try{let t=await window.crypto.subtle.digest("SHA-1",await ln(e));return md(new Uint8Array(t))}catch(t){return console.error(t),A9(40)}},PY=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)}),NY=(e,t)=>`data:${t};base64,${Li(lo(e),!0)}`,FY=(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})},BY=e=>Di(e.slice(e.indexOf(",")+1)),_Y=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(!Hi(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})},OY=(e,t="")=>new File([new TextEncoder().encode(e)],t,{type:H.svg}),AY=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&&Hi(r)){let o=t||r.name||"";return new File([r],o,{type:r.type})}throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"})},KY=async e=>{let t=e.dataTransfer.files.item(0),n=await Y9(e);return{file:t?await ts(t):null,fileHandle:n}},Y9=async e=>{if(k2)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},fr=(e,t,n)=>new File([e],n||"",{type:t}),ts=async e=>{if(e.type){if(Hi(e)){let t=await ln(e),n=a6(t);n&&n!==e.type&&(e=fr(t,n,e.name))}}else if(e?.name?.endsWith(".excalidrawlib"))e=fr(await ln(e),H.excalidrawlib,e.name);else if(e?.name?.endsWith(".excalidraw"))e=fr(await ln(e),H.excalidraw,e.name);else{let t=await ln(e),n=a6(t);n&&(e=fr(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 lo=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)),Li=(e,t=!1)=>t?window.btoa(e):window.btoa(lo(e)),Di=(e,t=!1)=>t?window.atob(e):c6(window.atob(e));var Si=({text:e,compress:t})=>{let n;if(t!==!1)try{n=lo(C9(e))}catch(r){console.error("encode: cannot deflate",r)}return{version:"1",encoding:"bstring",compressed:!!n,encoded:n||lo(e)}},vi=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?V9(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},_p=async({blob:e,metadata:t})=>{let n=l6(new Uint8Array(await ln(e))),r=U6.encode(H.excalidraw,JSON.stringify(Si({text:t,compress:!0})));return n.splice(-1,0,r),new Blob([q9(n)],{type:H.png})},iC=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===Ze.excalidraw)return t.text;throw new Error("FAILED")}return vi(n)}catch(n){throw console.error(n),new Error("FAILED")}throw new Error("INVALID")};export{k9 as a,Z9 as b,fo as c,po as d,Z as e,W9 as f,z9 as g,Q9 as h,j9 as i,eE as j,tE as k,uo as l,iE as m,aE as n,sE as o,_s as p,dE as q,cE as r,lE as s,As as t,Ks as u,UE as v,fE as w,pE as x,uE as y,mo as z,mE as A,bE as B,EE as C,je as D,gE as E,Ie as F,ke as G,Pe as H,ut as I,Ft as J,Vn as K,go as L,br as M,xE as N,hE as O,yE as P,IE as Q,xo as R,yo as S,H as T,wE as U,Ze as V,Ci as W,RE as X,TE as Y,ME as Z,LE as _,DE as $,Js as aa,Ys as ba,SE as ca,Io as da,vE as ea,$E as fa,PE as ga,NE as ha,FE as ia,BE as ja,_E as ka,Cs as la,Vi as ma,OE as na,AE as oa,re as pa,qi as qa,Se as ra,kt as sa,Xi as ta,ot as ua,KE as va,b6 as wa,HE as xa,ks as ya,JE as za,fn as Aa,YE as Ba,Zs as Ca,ki as Da,CE as Ea,Ws as Fa,zs as Ga,E6 as Ha,se as Ia,To as Ja,WE as Ka,Mo as La,yr as Ma,rd as Na,Be as Oa,O as Pa,h6 as Qa,Lo as Ra,ue as Sa,Je as Ta,u as Ua,T as Va,ie as Wa,ng as Xa,rg as Ya,og as Za,D6 as _a,ig as $a,ag as ab,ea as bb,Ee as cb,$o as db,pd as eb,ud as fb,sg as gb,dg as hb,dt as ib,$r as jb,cg as kb,Dn as lb,ta as mb,lg as nb,un as ob,Ug as pb,fg as qb,pg as rb,Wt as sb,ug as tb,mg as ub,bg as vb,Eg as wb,te as xb,gg as yb,xg as zb,Ot as Ab,hg as Bb,yg as Cb,Ig as Db,wg as Eb,Fo as Fb,Rg as Gb,Qt as Hb,Tg as Ib,Sn as Jb,Ae as Kb,Mg as Lb,Ed as Mb,Lg as Nb,Dg as Ob,Sg as Pb,vg as Qb,gd as Rb,tt as Sb,mn as Tb,$g as Ub,At as Vb,Ye as Wb,Bo as Xb,_o as Yb,gt as Zb,k as _b,hd as $b,yd as ac,de as bc,ae as cc,ee as dc,X as ec,na as fc,Pr as gc,N6 as hc,xt as ic,F6 as jc,ra as kc,Og as lc,bn as mc,Ne as nc,Oo as oc,Ag as pc,Kg as qc,Vt as rc,Dt as sc,Co as tc,nn as uc,ht as vc,Td as wc,Ko as xc,Vg as yc,ia as zc,Zn as Ac,Ld as Bc,qg as Cc,Dd as Dc,en as Ec,mt as Fc,td as Gc,nd as Hc,Tb as Ic,aF as Jc,sF as Kc,Mb as Lc,dF as Mc,p2 as Nc,cF as Oc,Lb as Pc,an as Qc,lF as Rc,UF as Sc,fF as Tc,Ja as Uc,b2 as Vc,E2 as Wc,dn as Xc,gB as Yc,T2 as Zc,M2 as _c,L2 as $c,Hb as ad,Jb as bd,Yb as cd,$2 as dd,he as ed,Ux as fd,fx as gd,px as hd,ux as id,mx as jd,bx as kd,Ex as ld,gx as md,xx as nd,yx as od,Nr as pd,Ad as qd,Ix as rd,wx as sd,Rx as td,Tx as ud,Mx as vd,Lx as wd,Dx as xd,Sx as yd,vx as zd,$x as Ad,Px as Bd,Nx as Cd,Fx as Dd,Bx as Ed,_x as Fd,Ox as Gd,Ax as Hd,Kx as Id,Hx as Jd,Jx as Kd,Yx as Ld,Vx as Md,qx as Nd,Xx as Od,Gx as Pd,Wx as Qd,Qx as Rd,jx as Sd,eh as Td,th as Ud,sh as Vd,dh as Wd,ch as Xd,lh as Yd,Uh as Zd,fh as _d,ph as $d,uh as ae,mh as be,bh as ce,Eh as de,gh as ee,xh as fe,Ih as ge,Mh as he,Lh as ie,Dh as je,Sh as ke,vh as le,$h as me,Ph as ne,Nh as oe,Fh as pe,_h as qe,Oh as re,Ah as se,Kh as te,Hh as ue,Jh as ve,Yh as we,Ch as xe,Vh as ye,qh as ze,Xh as Ae,Gh as Be,kh as Ce,Zh as De,Wh as Ee,zh as Fe,Qh as Ge,jh as He,e4 as Ie,t4 as Je,n4 as Ke,r4 as Le,o4 as Me,i4 as Ne,la as Oe,Ua as Pe,a4 as Qe,s4 as Re,d4 as Se,c4 as Te,l4 as Ue,U4 as Ve,f4 as We,p4 as Xe,m4 as Ye,b4 as Ze,E4 as _e,g4 as $e,x4 as af,I4 as bf,w4 as cf,R4 as df,T4 as ef,M4 as ff,L4 as gf,D4 as hf,S4 as if,v4 as jf,N4 as kf,F4 as lf,B4 as mf,_4 as nf,O4 as of,A4 as pf,K4 as qf,H4 as rf,J4 as sf,Y4 as tf,C4 as uf,V4 as vf,q4 as wf,X4 as xf,G4 as yf,k4 as zf,Z4 as Af,W4 as Bf,z4 as Cf,Q4 as Df,j4 as Ef,ty as Ff,ny as Gf,ry as Hf,oy as If,iy as Jf,ay as Kf,sy as Lf,dy as Mf,cy as Nf,ly as Of,Uy as Pf,Nn as Qf,ko as Rf,Xr as Sf,VB as Tf,qB as Uf,XB as Vf,GB as Wf,qt as Xf,Ga as Yf,kB as Zf,On as _f,Zb as $f,Wb as ag,Gr as bg,zb as cg,ZB as dg,f$ as eg,Wo as fg,D1 as gg,Q as hg,Y$ as ig,C$ as jg,V$ as kg,q$ as lg,ga as mg,xm as ng,ba as og,A$ as pg,hm as qg,Mm as rg,iP as sg,ti as tg,L1 as ug,wt as vg,it as wg,Kt as xg,Re as yg,Fe as zg,nt as Ag,ze as Bg,ve as Cg,q1 as Dg,FN as Eg,Fa as Fg,t2 as Gg,n2 as Hg,Ba as Ig,BN as Jg,_N as Kg,ON as Lg,di as Mg,ab as Ng,Bn as Og,Jt as Pg,fi as Qg,d2 as Rg,AN as Sg,KN as Tg,pi as Ug,hi as Vg,dr as Wg,O2 as Xg,za as Yg,V2 as Zg,J_ as _g,Y_ as $g,Ge as ah,lP as bh,er as ch,UP as dh,k2 as eh,Z2 as fh,es as gh,xn as hh,Pi as ih,Mp as jh,J7 as kh,io as lh,Lp as mh,X9 as nh,_p as oh,iC as ph,K9 as qh,DY as rh,W2 as sh,Hi as th,H9 as uh,z2 as vh,J9 as wh,SY as xh,vY as yh,$Y as zh,PY as Ah,NY as Bh,FY as Ch,BY as Dh,_Y as Eh,OY as Fh,AY as Gh,KY as Hh,ts as Ih,to as Jh,hO as Kh,yO as Lh,p7 as Mh,IO as Nh,u7 as Oh,ep as Ph,tp as Qh,LO as Rh,is as Sh,b7 as Th,BO as Uh,KO as Vh,np as Wh,rp as Xh,qO as Yh,XO as Zh,E7 as _h,op as $h,GO as ai,x7 as bi,cp as ci,pp as di,up as ei,TA as fi,uK as gi,k7 as hi,LK as ii,DK as ji,Np as ki,SK as li,vK as mi,Bp as ni,hs as oi,t9 as pi,n9 as qi,r9 as ri,HK as si,Ap as ti,a9 as ui,Hp as vi,uH as wi,Bi as xi,hn as yi,mH as zi,bH as Ai,co as Bi,ds as Ci,cs as Di,EH as Ei,gH as Fi,We as Gi,xH as Hi,l9 as Ii,Xp as Ji,U9 as Ki,hH as Li,yH as Mi,Gp as Ni,bp as Oi,Ep as Pi,IH as Qi,Pm as Ri,vP as Si,Fn as Ti,wa as Ui,Am as Vi,NP as Wi,Km as Xi,Hm as Yi,Ta as Zi,FP as _i,Jm as $i,C as aj,$e as bj,Na as cj,fN as dj,mi as ej,Sb as fj,sr as gj,IF as hj,wF as ij,RF as jj,TF as kj,MF as lj,LF as mj,DF as nj,Vr as oj,z as pj,qr as qj,I2 as rj,w2 as sj,WF as tj,Xa as uj,dB as vj,_n as wj,R2 as xj,Yt as yj,oe as zj,qe as Aj,cB as Bj,lB as Cj,UB as Dj,fB as Ej,pB as Fj,qa as Gj,Tt as Hj,Ar as Ij,Bb as Jj,Za as Kj,B2 as Lj,Zr as Mj,An as Nj,Ts as Oj,Y as Pj,vt as Qj,kr as Rj,ao as Sj,kp as Tj,iJ as Uj,Va as Vj,bs as Wj,Ls as Xj,Ki as Yj,Ds as Zj,fJ as _j,E9 as $j,g9 as ak,h9 as bk,y9 as ck,r6 as dk,T9 as ek,M9 as fk,S9 as gk,P9 as hk,N9 as ik,B9 as jk,_9 as kk,O9 as lk,nY as mk,rY as nk,X2 as ok,Es as pk,zp as qk,f9 as rk,ui as sk,Ib as tk,wb as uk,at as vk,Rb as wk,Ha as xk,yb as yk,_a as zk,Oa as Ak,Ka as Bk};
|
|
34
|
+
`).trim()}:n:{type:"text",value:(e.clipboardData?.getData(H.text)||"").trim()}}catch{return{type:"text",value:""}}},vK=async(e,t=!1)=>{let n=await j7(e,t);if(n.type==="mixedContent")return{mixedContent:n.value};try{let r=!t&&z7(n.value);if(r)return r}catch(r){console.error(r)}try{let r=JSON.parse(n.value),o=r.type===Ze.excalidrawClipboardWithAPI;if(Z7(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}},Bp=async e=>{try{await navigator.clipboard.write([new window.ClipboardItem({[H.png]:e})])}catch(t){if(Fo(e))await navigator.clipboard.write([new window.ClipboardItem({[H.png]:await e})]);else throw t}},hs=async(e,t)=>{if(k7)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(!e9(e))throw new Error("Error copying to clipboard.")},e9=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 t9=({elements:e,appState:t,files:n,maxWidthOrHeight:r,getDimensions:o,exportPadding:i,exportingFrame:a})=>{let{elements:s,appState:d}=io({elements:e,appState:t},null,null),{exportBackground:c,viewBackgroundColor:l}=d;return pp(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}})},n9=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 t9(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 _p({blob:a,metadata:to(e.elements,e.appState,e.files||{},"local")})),o(a)},t,n)})},r9=async({elements:e,appState:t=mt(),files:n={},exportPadding:r,renderEmbeddables:o,exportingFrame:i,skipInliningFonts:a,reuseImages:s})=>{let{elements:d,appState:c}=io({elements:e,appState:t},null,null),l={...c,exportPadding:r};return up(d,l,n,{exportingFrame:i,renderEmbeddables:o,skipInliningFonts:a,reuseImages:s})},HK=async e=>{if(e.type==="svg"){let t=await r9(e);await hs(t.outerHTML)}else if(e.type==="png")await Bp(n9(e));else if(e.type==="json")await Np(e.elements,e.files);else throw new Error("Invalid export type")};var o9=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)],i9=e=>ae(e)||Ce(e)?e.points:o9(e),Op=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},Kp=e=>{let t=i9(e),{cx:n,cy:r}=Op(t),o=u(n,r),i=t.map(l=>T(l,o,e.angle)),{minX:a,minY:s,maxX:d,maxY:c}=Op(i);return[a+e.x,s+e.y,d+e.x,c+e.y]},Ap=(e,t,n=!1)=>{let r=Kp(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},a9=(e,t)=>{let n=Kp(e);return(Sr(n[0],Oe(t[0],t[2]))||Sr(t[0],Oe(n[0],n[2])))&&(Sr(n[1],Oe(t[1],t[3]))||Sr(t[1],Oe(n[1],n[3])))},Hp=({elements:e,bounds:t,type:n,errorMargin:r=0})=>{ra(t)&&(t=Ke(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"?a9(a,o):n==="inside"?Ap(a,o):Ap(a,o,!0)){if(i.add(a.id),a.boundElements)for(let d of a.boundElements)i.add(d.id);k(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 Jp(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 s9(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}var d9=1e-6;function Yp(e,t){let n=O(e[1],e[0]),r=O(t,e[0]),o=Me(n,r);return Math.abs(o)<d9}function ys(e,t){let n=O(e[1],e[0]),r=O(t,e[0]);return Me(n,r)<0}function Cp(e,t){return Yp(e,t[0])||Yp(e,t[1])||(ys(e,t[0])?!ys(e,t[1]):ys(e,t[1]))}function Vp(e,t){return s9(Jp(e),Jp(t))&&Cp(e,t)&&Cp(t,e)}var uH=(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 Is(e,t,n){let r=Sa(t,n),o=Sa(e,n);return r.some(a=>o.some(s=>Vp(a,s)))}var qp=(e,t,n)=>_i(ui(e,t,n,!1)).filter(r=>!de(r)&&!r.frameId||r.frameId===t.id),ws=(e,t,n)=>ui([t],e,n).some(r=>r.id===t.id);var Bi=(e,t,n)=>{let[r,o,i,a]=C(t,n),[s,d,c,l]=$e(e);return r<=s&&o<=d&&i>=c&&a>=l},hn=(e,t,n)=>Bi([e],t,n)||Is(e,t,n)||ws(e,t,n),mH=(e,t,n)=>{let[r,o,i,a]=C(t,n);return So(u(r,o),u(e.x,e.y),u(i,a))};var bH=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,co(e,r))}return t},co=(e,t)=>{let n=[];for(let r of e.values())r.frameId===t&&n.push(r);return n},ds=e=>e.filter(t=>de(t)),cs=e=>{let t=te(ds(e));return e.filter(n=>t.has(n.id)||!n.frameId||!t.has(n.frameId))},EH=(e,t,n,r)=>{let o=co(e,t.id),i=new Set(o),a=new Set([...qp(e,t,r),...o.filter(p=>ws(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(!Is(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=p2(l,n);for(let[p,m]of Object.entries(U))if(m){let b=an(e,p);if(Bi(b,t,r))for(let E of b)i.add(E)}return[...i].filter(p=>!(k(p)&&p.containerId))},gH=(e,t,n)=>c9(_i(e,qp(e,t,n)),t,n),c9=(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=!Bi(Array.from(s),t,n)}i.groupIds.forEach(s=>{o.set(s,a)})}a||r.push(i)}return r},We=(e,t)=>e.frameId&&t.get(e.frameId)||null,xH=(e,t)=>{let n=new Set,r=te(e);e=_i(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=>hn(c,t,r)))for(let c of d)i.push(c)}}else hn(a,t,r)&&i.push(a);return i},l9=(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 _i(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},Xp=(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)},U9=(e,t)=>{let n=co(e,t.id);return Xp(n,te(e)),e},hH=(e,t,n,r)=>l9(U9(e,n),t,n,r.state).slice(),yH=(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)&&!Gp(s,a,t)&&i.add(s)}),i.size>0&&Xp(i,a),e},_i=(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},Mi=(e,t,n)=>{let r=k(e)&&qe(e,t)||e;return r.frameId&&n.selectedElementIds[r.id]&&n.selectedElementIds[r.frameId]?We(r,t):n.selectedElementIds[r.id]&&n.selectedElementsAreBeingDragged?n.frameToHighlight:We(r,t)},Gp=(e,t,n,r)=>{let o=r?.targetFrame??Mi(e,t,n);if(!o)return!1;let i=k(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 hn(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(at(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(hn(d,o,t))return a(!0),!0;return!1},as=(e,t,n,r,o)=>{if(!n.frameRendering||!n.frameRendering.clip)return!1;let i=Is(e,t,r)||ws(e,t,r);if(i){for(let a of e.groupIds)o?.set(a,!0);return!0}if(!i&&e.groupIds.length>0&&!Bi([e],t,r)){let a=!1;if(n.selectedElementsAreBeingDragged)a=Gp(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},bp=e=>e.name===null?hd(e)?"Frame":"AI Frame":e.name,Ep=(e,t)=>Hp({elements:e,bounds:t,type:"overlap"}).filter(n=>!n.frameId||n.frameId===t.id),IH=e=>{let t=te(e);return e.length>1&&e.some(n=>n.frameId&&t.has(n.frameId))};var f9=e=>{let t=new Set;return e.forEach(n=>{de(n)&&t.add(n.id)}),e.filter(n=>!(n.frameId&&t.has(n.frameId)))},ui=(e,t,n,r=!0)=>{let[o,i,a,s]=C(t,n),d=e.filter(c=>{let[l,U,p,m]=Ke(c,n),b=We(c,n);if(b){let[E,g,h,x]=Ke(b,n);l=Math.max(E,l),U=Math.max(g,U),p=Math.min(h,p),m=Math.min(x,m)}return c.locked===!1&&c.type!=="selection"&&!Ne(c)&&o<=l&&i<=U&&a>=p&&s>=m});return d=r?f9(d):d,d=d.filter(c=>{let l=We(c,n);return l?hn(c,l,n):!0}),d},Ca=(e,t,n,r)=>{let o=new Set(t.map(i=>i.id));return e.filter(i=>{let a=kp(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(at(e,t).map(o=>n(o))));return r.length===1?r[0]:null},at=(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&&Ne(i)&&t.selectedElementIds[i?.containerId]){o.push(i),r.add(i.id);continue}}if(n?.includeElementsInFrames){let i=[];return o.forEach(a=>{de(a)&&co(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]:at(e,t,{includeBoundTextElement:!0}),Ha=(e,t)=>Qt(t.selectedElementIds,e)?t.selectedElementIds:e;var Zp=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}},u9=p9(e=>{(M.DEV||M.MODE===je.TEST||window?.DEBUG_FRACTIONAL_INDICES)&&Za(e,{shouldThrow:M.DEV||M.MODE===je.TEST,includeBoundTextValidation:!0})},1e3*60,{leading:!0,trailing:!1}),m9=e=>{let t=["includeBoundTextElement","includeElementsInFrames"],n="";for(let r of t)n+=`${r}:${e[r]?"1":"0"}`;return n},Wp=e=>typeof e=="string",Hn=class Hn{constructor(){P(this,"callbacks",new Set);P(this,"nonDeletedElements",[]);P(this,"nonDeletedElementsMap",tt(new Map));P(this,"elements",[]);P(this,"nonDeletedFramesLikes",[]);P(this,"frames",[]);P(this,"elementsMap",tt(new Map));P(this,"selectedElementsCache",{selectedElementIds:null,elements:null,cache:new Map});P(this,"sceneNonce");P(this,"insertElement",t=>{let n=t.frameId?this.getElementIndex(t.frameId):this.elements.length;this.insertElementAtIndex(t,n)});P(this,"insertElements",t=>{if(!t.length)return;let n=t[0]?.frameId?this.getElementIndex(t[0].frameId):this.elements.length;this.insertElementsAtIndex(t,n)});P(this,"getContainerElement",t=>t&&t.containerId&&this.getElement(t.containerId)||null);P(this,"getElementsFromId",t=>{let n=this.getNonDeletedElementsMap(),r=n.get(t);return r?[r]:an(n,t)})}static mapElementToScene(t,n){Wp(t)?this.sceneMapById.set(t,n):(this.sceneMapByElement.set(t,n),this.sceneMapById.set(t.id,n))}static getScene(t){return Wp(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=m9(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=at(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&&zp(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=[];u9(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=Zp(this.elements);this.nonDeletedElements=o.elements,this.nonDeletedElementsMap=o.elementsMap,this.frames=r,this.nonDeletedFramesLikes=Zp(this.frames).elements,this.triggerUpdate()}triggerUpdate(){this.sceneNonce=Vt();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)];Zr(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)];Zr(r,te(t)),this.replaceAllElements(r)}getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}};P(Hn,"sceneMapByElement",new WeakMap),P(Hn,"sceneMapById",new Map);var Rs=Hn,Ts=Rs;var Y=(e,t,n=!0,r)=>{let o=!1,{points:i,fixedSegments:a,fileId:s,startBinding:d,endBinding:c}=t;if(X(e)&&(Object.keys(t).length===0||typeof i<"u"||typeof a<"u"||typeof d<"u"||typeof c<"u")){let l=tt(Ts.getScene(e)?.getNonDeletedElementsMap()??new Map);t={...t,angle:0,...Pi({...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],h=m[E];if(g[0]!==h[0]||g[1]!==h[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")&&he.delete(e),e.version++,e.versionNonce=Vt(),e.updated=zt(),n&&Ts.getScene(e)?.triggerUpdate()),e},vt=(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:Vt()}},kr=(e,t)=>(e.version=(t??e.version)+1,e.versionNonce=Vt(),e.updated=zt(),e);var ao=e=>ae(e)||Ce(e)?e.points.length<2:e.width===0&&e.height===0,kp=(e,t,n,r,o)=>{let[i,a,s,d]=Ke(e,o),c=Dn({clientX:r.offsetLeft,clientY:r.offsetTop},r),l=Dn({clientX:r.offsetLeft+t,clientY:r.offsetTop+n},r);return c.x<=s&&c.y<=d&&l.x>=i&&l.y>=a},iJ=(e,t,n,r,o,i)=>{let[a,s,d,c]=$e(e,o),l=Dn({clientX:r.offsetLeft+(i?.left||0),clientY:r.offsetTop+(i?.top||0)},r),U=Dn({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},Oi=(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)/Nt)*Nt;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}},Va=(e,t,n,r)=>{let o=n-e,i=r-t,a=Math.round(Math.atan(i/o)/Nt)*Nt;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 bs=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},b9=16,e6={e:!0,s:!0,n:!0,w:!0};var jp={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},Ms={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]},Ai=e=>!(e.viewport.isMobile||e.isTouchScreen&&(Bs||_s)),Ls=e=>Ai(e)?e6:{},Ki=([e,t,n,r,o,i],a,s,d,c={},l=4,U=br)=>{let p=Qp[d],m=p/s.value,b=p/s.value,E=p/s.value,g=p/s.value,h=n-e,x=r-t,y=l/s.value,w=(p-U*2)/(2*s.value),I={nw:c.nw?void 0:cn(e-y-E+w,t-y-g+w,m,b,o,i,a),ne:c.ne?void 0:cn(n+y-w,t-y-g+w,m,b,o,i,a),sw:c.sw?void 0:cn(e-y-E+w,r+y-w,m,b,o,i,a),se:c.se?void 0:cn(n+y-w,r+y-w,m,b,o,i,a),rotation:c.rotation?void 0:cn(e+h/2-m/2,t-y-g+w-b9/s.value,m,b,o,i,a)},S=5*Qp.mouse/s.value;return Math.abs(h)>S&&(c.n||(I.n=cn(e+h/2-m/2,t-y-g+w,m,b,o,i,a)),c.s||(I.s=cn(e+h/2-m/2,r+y-w,m,b,o,i,a))),Math.abs(x)>S&&(c.w||(I.w=cn(e-y-E+w,t+x/2-b/2,m,b,o,i,a)),c.e||(I.e=cn(n+y-w,t+x/2-b/2,m,b,o,i,a))),I},Ds=(e,t,n,r="mouse",o=e6)=>{if(e.locked||X(e))return{};if(e.type==="freedraw"||ae(e)){if(e.points.length===2){let[,a]=e.points;a[0]===0||a[1]===0?o=Ms:a[0]>0&&a[1]<0?o=jp:a[0]>0&&a[1]>0?o=Ms:a[0]<0&&a[1]>0?o=jp:a[0]<0&&a[1]<0&&(o=Ms)}}else de(e)&&(o={...o,rotation:!0});let i=ae(e)?br+8:Ye(e)?0:br;return Ki(C(e,n,!0),e.angle,t,r,o,i,Ye(e)?0:void 0)},fJ=(e,t)=>{if(t.editingLinearElement)return!1;if(e.length>1)return!0;let n=e[0];return X(n)?!1:ae(n)?n.points.length>2:!0};var vs=(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}=Ds(e,i,t,a,Ls(s));if(d&&vs(d,r,o))return"rotation";let l=Object.keys(c).filter(U=>{let p=c[U];return p?vs(p,r,o):!1});if(l.length>0)return l[0];if(Ai(s)){let[U,p,m,b,E,g]=C(e,t);if(!(ae(e)&&e.points.length<=2)){let h=Ye(e)?0:Er/i.value,x=Er/i.value,y=n6(u(U-h,p-h),u(m+h,b+h),u(E,g),e.angle);for(let[w,I]of Object.entries(y))if(Bt(u(r,o),I,x))return w}}return!1},E9=(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),g9=([e,t,n,r],o,i,a,s,d)=>{let c=Ki([e,t,n,r,(e+n)/2,(t+r)/2],0,a,s,Ls(d)),l=Object.keys(c).find(U=>{let p=c[U];return p&&vs(p,o,i)});if(l)return l;if(Ai(d)){let U=(e+n)/2,p=(t+r)/2,m=Er/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(Bt(u(o,i),g,m))return E}return!1},Ss=["ns","nesw","ew","nwse"],x9=(e,t)=>{let n=Ss.indexOf(e);if(n>=0){let r=Math.round(t/(Math.PI/4));e=Ss[(n+r)%Ss.length]}return e},h9=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=x9(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 y9=(e,t,n,r,o,i,a,s,d,c,l,U)=>{if(n.length===1){let[p]=n;if(t==="rotation")X(p)||(I9(p,r,o,d,c,i),Jt(p,r));else{if(k(p)&&t)return w9(e,p,r,t,a,d,c),Jt(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:h}=v9(b,E,r,e,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});S9(g,h,b,E,r,e,t,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a})}}}return!0}else if(n.length>1){if(t==="rotation")return R9(e,n,r,o,d,c,i,l,U),!0;if(t){let{nextWidth:p,nextHeight:m,flipByX:b,flipByY:E,originalBoundingBox:g}=$9(n,e,r,t,d,c,{shouldMaintainAspectRatio:s,shouldResizeFromCenter:a});return P9(n,r,t,o,e,{shouldResizeFromCenter:a,shouldMaintainAspectRatio:s,flipByX:b,flipByY:E,nextWidth:p,nextHeight:m,originalBoundingBox:g}),!0}}return!1},I9=(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+Nt/2,p=p-p%Nt),p=hr(p));let m=Yt(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:nr(0,t,nr(1,n,e.points,r),r)}:{},$s=(e,t,n)=>{let r=e.width;if(Ne(e)){let a=qe(e,t);a&&(r=Tt(a,e))}let i=e.fontSize*(n/r);return i<Eo?null:{size:i}},w9=(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 h=Math.max(E,g);if(h>0){let x=t.width*h,y=t.height*h,w=$s(t,n,x);if(w===null)return;let I=[s,d],S=[c,l],v=[U,p],D=u(s,d);if(["n","w","nw"].includes(r)&&(D=u(S[0]-Math.abs(x),S[1]-Math.abs(y))),r==="ne"){let V=[I[0],S[1]];D=u(V[0],V[1]-Math.abs(y))}if(r==="sw"){let V=[S[0],I[1]];D=u(V[0]-Math.abs(x),V[1])}["s","n"].includes(r)&&(D[0]=v[0]-x/2),["e","w"].includes(r)&&(D[1]=v[1]-y/2),o&&(D[0]=v[0]-Math.abs(x)/2,D[1]=v[1]-Math.abs(y)/2);let $=t.angle,N=T(D,u(U,p),$),B=u(D[0]+Math.abs(x)/2,D[1]+Math.abs(y)/2),_=T(B,u(U,p),$);D=T(N,_,-$);let[W,be]=D;Y(t,{fontSize:w.size,width:x,height:y,x:W,y:be})}if(r==="e"||r==="w"){let x=e.get(t.id),[y,w,I,S]=Rt(x,x.width,x.height,!0),v=u(y,w),D=u(I,S),$=Zt(v,D),N=T(u(i,a),$,-x.angle),[B,,_]=Rt(t,t.width,t.height,!0),W=_-B,be=D[0]-v[0],V=Ko(Ee({fontSize:t.fontSize,fontFamily:t.fontFamily}),t.lineHeight),ce=be/W;r.includes("e")&&(ce=(N[0]-v[0])/W),r.includes("w")&&(ce=(D[0]-N[0])/W);let J=t.width*ce<V?V:t.width*ce,j=en(t.originalText,Ee(t),Math.abs(J)),ye=ht(j,Ee(t),t.lineHeight),He=ye.height,[pr,Jn,Yn,Ji]=Rt(x,J,He,!0),Uo=Yn-pr,Yi=Ji-Jn,Gt=[...v];["n","w","nw"].includes(r)&&(Gt=[D[0]-Math.abs(Uo),v[1]]);let ur=x.angle,Cn=T(Gt,$,ur),Pt=u(Gt[0]+Math.abs(Uo)/2,Gt[1]+Math.abs(Yi)/2),mr=T(Pt,$,ur);Gt=T(Cn,mr,-ur);let Ut={width:Math.abs(J),height:Math.abs(ye.height),x:Gt[0],y:Gt[1],text:j,autoResize:!1};Y(t,Ut)}},R9=(e,t,n,r,o,i,a,s,d)=>{let c=5*Math.PI/2+Math.atan2(i-d,o-s);a&&(c+=Nt/2,c-=c%Nt);for(let l of t)if(!de(l)){let[U,p,m,b]=C(l,n),E=(U+m)/2,g=(p+b)/2,h=e.get(l.id)?.angle??l.angle,[x,y]=T(u(E,g),u(s,d),c+h-l.angle);X(l)?Y(l,{points:U2(l,n)}):Y(l,{x:l.x+(x-E),y:l.y+(y-g),angle:hr(c+h)},!1),Jt(l,n,{simultaneouslyUpdated:t});let w=oe(l,n);w&&!ee(l)&&Y(w,{x:w.x+(x-E),y:w.y+(y-g),angle:hr(c+h)},!1)}r.triggerUpdate()},T9=(e,t,n,r,o)=>{let[i,a,s,d]=t.length===1?C(t[0],n):$e(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]}},M9=(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"},L9=(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"},D9=(e,t,n,r,o,i,a,s,d)=>{let c=L9(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{x:l+(t-r)/2*(Math.cos(i)+1),y:U+(t-r)/2*Math.sin(i)+(n-o)/2};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)}}},S9=(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},h=$s(U,o,Tt(g,U));if(h===null)return;l={fontSize:h.size}}else{let g=Td(Ee(U),U.lineHeight),h=Ld(U.fontSize,U.lineHeight);e=Math.max(e,g),t=Math.max(t,h)}}let p=r6(r,e,t,!0),m=u(r.x,r.y);if(ae(r)){let[E,g]=Ke(r,i);m=u(E,g)}let b=D9(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 h=p.points[0][0],x=p.points[0][1];b.x+=h,b.y+=x,p.points=p.points.map(y=>u(y[0]-h,y[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<Eo)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),Jt(n,o,{newSize:{width:e,height:t}}),U&&l!=null&&Y(U,{fontSize:l.fontSize}),_n(n,o,a,d)}},v9=(e,t,n,r,o,i,a,{shouldMaintainAspectRatio:s=!1,shouldResizeFromCenter:d=!1}={})=>{let[c,l,U,p]=Rt(t,t.width,t.height,!0),m=u(c,l),b=u(U,p),E=Zt(m,b),g=T(u(i,a),E,-t.angle),[h,x,y,w]=Rt(e,e.width,e.height,!0),I=y-h,S=w-x,v=b[0]-m[0],D=b[1]-m[1],$=v/I,N=D/S;o.includes("e")&&($=(g[0]-m[0])/I),o.includes("s")&&(N=(g[1]-m[1])/S),o.includes("w")&&($=(b[0]-g[0])/I),o.includes("n")&&(N=(b[1]-g[1])/S);let B=e.width*$,_=e.height*N;if(d&&(B=2*B-t.width,_=2*_-t.height),s){let W=Math.abs(B)/t.width,be=Math.abs(_)/t.height;if(o.length===1&&(_*=W,B*=be),o.length===2){let V=Math.max(W,be);B=t.width*V*Math.sign(B),_=t.height*V*Math.sign(_)}}return{nextWidth:B,nextHeight:_}},$9=(e,t,n,r,o,i,{shouldMaintainAspectRatio:a=!1,shouldResizeFromCenter:s=!1}={})=>{let d=e.map(W=>t.get(W.id)),c=d.reduce((W,be)=>{if(!ae(be))return W;let V=Yt(be);if(!V)return W;let ce=t.get(V)??null;return Ne(ce)?[...W,{...ce,...z.getBoundTextElementPosition(be,ce,n)}]:W},[]),l=Na(d.map(W=>W).concat(c)),{minX:U,minY:p,maxX:m,maxY:b,midX:E,midY:g}=l,h=m-U,x=b-p,y={ne:[U,b],se:[U,p],sw:[m,p],nw:[m,b],e:[U,p+x/2],w:[m,p+x/2],n:[U+h/2,b],s:[U+h/2,p]},[w,I]=s?[E,g]:y[r],S=s?2:1,v=Math.max(Math.abs(o-w)/h||0,Math.abs(i-I)/x||0)*S,D=r.includes("e")||r.includes("w")?Math.abs(o-w)*S:h,$=r.includes("n")||r.includes("s")?Math.abs(i-I)*S:x;a&&(D=h*v*Math.sign(o-w),$=x*v*Math.sign(i-I));let N={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]},[B,_]=N[r].map(W=>W);return{originalBoundingBox:l,nextWidth:D,nextHeight:$,flipByX:B,flipByY:_}},P9=(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((S,v)=>{let D=o.get(v.id);return D&&S.push({orig:D,latest:v}),S},[]),m;if(U)m=U;else{let S=p.reduce((v,{orig:D})=>{if(!ae(D))return v;let $=Yt(D);if(!$)return v;let N=o.get($)??null;return Ne(N)?[...v,{...N,...z.getBoundTextElementPosition(D,N,t)}]:v},[]);m=Na(p.map(({orig:v})=>v).concat(S))}let{minX:b,minY:E,maxX:g,maxY:h,midX:x,midY:y}=m,w=g-b,I=h-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 S=n.includes("e")||n.includes("w")?Math.abs(l)/w:1,v=n.includes("n")||n.includes("s")?Math.abs(c)/I:1,D;n.length===1?D=n.includes("e")||n.includes("w")?S:v:D=Math.max(Math.abs(l)/w||0,Math.abs(c)/I||0);let $={ne:[b,h],se:[b,E],sw:[g,E],nw:[g,h],e:[b,E+I/2],w:[g,E+I/2],n:[b+w/2,h],s:[b+w/2,E]},[N,B]=a?[x,y]:$[n],_=i||p.some(J=>J.latest.angle!==0||k(J.latest)||E2(J.latest));_&&(S=D,v=D);let[W,be]=[s?-1:1,d?-1:1],V=[];for(let{orig:J,latest:j}of p){if(k(J)&&Ne(J))continue;let ye=J.width*S,He=J.height*v,pr=hr(J.angle*W*be),Jn=ae(J)||Ce(J),Yn=J.x-N,Ji=J.y-B,Uo=s&&!Jn?ye:0,Yi=d&&!Jn?He:0,Gt=N+W*(Yn*S+Uo),ur=B+be*(Ji*v+Yi),Cn=r6(J,ye*W,He*be,!1),Pt={x:Gt,y:ur,width:ye,height:He,angle:pr,...Cn};if(X(J)&&(J.startBinding&&(Pt.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&&(Pt.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&&(Pt.fixedSegments=J.fixedSegments.map(Ut=>({...Ut,start:Cn.points[Ut.index-1],end:Cn.points[Ut.index]})))),Ye(J)&&(Pt.scale=[J.scale[0]*W,J.scale[1]*be]),k(J)){let Ut=$s(J,t,ye);if(!Ut)return;Pt.fontSize=Ut.size}let mr=o.get(Yt(J)??"");if(mr)if(_){let Ut=mr.fontSize*D;if(Ut<Eo)return;Pt.boundTextFontSize=Ut}else Pt.boundTextFontSize=mr.fontSize;V.push({element:j,update:Pt})}let ce=V.map(({element:J})=>J);for(let{element:J,update:{boundTextFontSize:j,...ye}}of V){let{width:He,height:pr,angle:Jn}=ye;Y(J,ye,!1,{isDragging:!0}),Jt(J,t,{simultaneouslyUpdated:ce,newSize:{width:He,height:pr}});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 N9=(e,t,n,r,o,i)=>{if(t.length===1&&X(t[0])&&(t[0].startBinding||t[0].endBinding))return;let a=t.filter(U=>{if(X(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=$e(Array.from(s).map(U=>e.originalElements.get(U.id)??U)),l=F9(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),Jt(U,r.getElementsMapIncludingDeleted(),{simultaneouslyUpdated:Array.from(s)})}})},F9=(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]=Vr(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})},B9=(e,t,n)=>{let[r,o]=$e(e);return[t-r,n-o]},_9=({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}=Oi(t,s,o<n?-a:a):{width:a,height:s}=Oi(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(k(e)){s=e.height;let h=Ko(Ee({fontSize:e.fontSize,fontFamily:e.fontFamily}),e.lineHeight);a=Math.max(a,h),Math.abs(o-n)>Os/l&&(g={autoResize:!1}),E=r,c&&(b=n-a/2)}if(a!==0&&s!==0){let h=null;Ye(e)&&(h={initialWidth:a,initialHeight:s}),Y(e,{x:b+(p?.x??0),y:E+(p?.y??0),width:a,height:s,...g,...h},m)}};var O9=(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")||at(t,e).length));var nY=e=>e.reduce((t,n)=>t+n.version,0),rY=e=>{let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e[n].versionNonce;return t>>>0},X2=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},f2=e=>e.filter(t=>!t.isDeleted&&!ao(t)),Es=e=>e.filter(t=>!t.isDeleted),zp=e=>!e.isDeleted,i6=e=>Es(e).map(t=>na(t.type)?{...t,lastCommittedPoint:null}:t),j2=e=>i6(e),Ri=e=>i6(e);var s6=async e=>{let t;if(e.type===H.png)try{return await(await import("./data/image-GAAHSSAO.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 mp({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 K9=e=>e&&e.name.match(/\.(json|excalidraw|png|svg)$/)?.[1]||null,DY=e=>e==="png"||e==="svg",W2=e=>{let t=K9(e);return t==="png"||t==="svg"},xs=e=>!!e&&Object.values(yo).includes(e),Hi=e=>{let{type:t}=e||{};return xs(t)},H9=async(e,t,n,r)=>{let o=await s6(e),i;try{try{i=JSON.parse(o)}catch(a){throw Hi(e)?new nn("Image doesn't contain scene","IMAGE_NOT_CONTAINS_SCENE_DATA"):a}if(Q2(i))return{type:H.excalidraw,data:io({elements:Ri(i.elements||[]),appState:{theme:t?.theme,fileHandle:r||e.handle||null,...Ro(i.appState||{}),...t?_a(i.elements||[],t):{}},files:i.files},t,n,{repairBindings:!0,refreshDimensions:!1})};if(ns(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 H9(e,t,n,r);if(o.type!==H.excalidraw)throw new Error("Error: invalid file");return o.data},J9=(e,t="unpublished")=>{let n=JSON.parse(e);if(!ns(n))throw new Error("Invalid library");let r=n.libraryItems||n.library;return Lp(r,t)},SY=async(e,t="unpublished")=>J9(await s6(e),t),vY=async e=>new Promise(async(t,n)=>{try{Fo(e)&&(e=await e),e.toBlob(r=>{if(!r)return n(new Yo("Error: Canvas too big","CANVAS_POSSIBLY_TOO_BIG"));t(r)})}catch(r){n(r)}}),$Y=async e=>{try{let t=await window.crypto.subtle.digest("SHA-1",await ln(e));return md(new Uint8Array(t))}catch(t){return console.error(t),A9(40)}},PY=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)}),NY=(e,t)=>`data:${t};base64,${Li(lo(e),!0)}`,FY=(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})},BY=e=>Di(e.slice(e.indexOf(",")+1)),_Y=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(!Hi(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})},OY=(e,t="")=>new File([new TextEncoder().encode(e)],t,{type:H.svg}),AY=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&&Hi(r)){let o=t||r.name||"";return new File([r],o,{type:r.type})}throw new Error("Error: unsupported file type",{cause:"UNSUPPORTED"})},KY=async e=>{let t=e.dataTransfer.files.item(0),n=await Y9(e);return{file:t?await ts(t):null,fileHandle:n}},Y9=async e=>{if(k2)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},fr=(e,t,n)=>new File([e],n||"",{type:t}),ts=async e=>{if(e.type){if(Hi(e)){let t=await ln(e),n=a6(t);n&&n!==e.type&&(e=fr(t,n,e.name))}}else if(e?.name?.endsWith(".excalidrawlib"))e=fr(await ln(e),H.excalidrawlib,e.name);else if(e?.name?.endsWith(".excalidraw"))e=fr(await ln(e),H.excalidraw,e.name);else{let t=await ln(e),n=a6(t);n&&(e=fr(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 lo=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)),Li=(e,t=!1)=>t?window.btoa(e):window.btoa(lo(e)),Di=(e,t=!1)=>t?window.atob(e):c6(window.atob(e));var Si=({text:e,compress:t})=>{let n;if(t!==!1)try{n=lo(C9(e))}catch(r){console.error("encode: cannot deflate",r)}return{version:"1",encoding:"bstring",compressed:!!n,encoded:n||lo(e)}},vi=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?V9(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},_p=async({blob:e,metadata:t})=>{let n=l6(new Uint8Array(await ln(e))),r=U6.encode(H.excalidraw,JSON.stringify(Si({text:t,compress:!0})));return n.splice(-1,0,r),new Blob([q9(n)],{type:H.png})},iC=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===Ze.excalidraw)return t.text;throw new Error("FAILED")}return vi(n)}catch(n){throw console.error(n),new Error("FAILED")}throw new Error("INVALID")};export{k9 as a,Z9 as b,fo as c,po as d,Z as e,W9 as f,z9 as g,Q9 as h,j9 as i,eE as j,tE as k,uo as l,iE as m,aE as n,sE as o,_s as p,dE as q,cE as r,lE as s,As as t,Ks as u,UE as v,fE as w,pE as x,uE as y,mo as z,mE as A,bE as B,EE as C,je as D,gE as E,Ie as F,ke as G,Pe as H,ut as I,Ft as J,Vn as K,go as L,br as M,xE as N,hE as O,yE as P,IE as Q,xo as R,yo as S,H as T,wE as U,Ze as V,Ci as W,RE as X,TE as Y,ME as Z,LE as _,DE as $,Js as aa,Ys as ba,SE as ca,Io as da,vE as ea,$E as fa,PE as ga,NE as ha,FE as ia,BE as ja,_E as ka,Cs as la,Vi as ma,OE as na,AE as oa,re as pa,qi as qa,Se as ra,kt as sa,Xi as ta,ot as ua,KE as va,b6 as wa,HE as xa,ks as ya,JE as za,fn as Aa,YE as Ba,Zs as Ca,ki as Da,CE as Ea,Ws as Fa,zs as Ga,E6 as Ha,se as Ia,To as Ja,WE as Ka,Mo as La,yr as Ma,rd as Na,Be as Oa,O as Pa,h6 as Qa,Lo as Ra,ue as Sa,Je as Ta,u as Ua,T as Va,ie as Wa,ng as Xa,rg as Ya,og as Za,D6 as _a,ig as $a,ag as ab,ea as bb,Ee as cb,$o as db,pd as eb,ud as fb,sg as gb,dg as hb,dt as ib,$r as jb,cg as kb,Dn as lb,ta as mb,lg as nb,un as ob,Ug as pb,fg as qb,pg as rb,Wt as sb,ug as tb,mg as ub,bg as vb,Eg as wb,te as xb,gg as yb,xg as zb,Ot as Ab,hg as Bb,yg as Cb,Ig as Db,wg as Eb,Fo as Fb,Rg as Gb,Qt as Hb,Tg as Ib,Sn as Jb,Ae as Kb,Mg as Lb,Ed as Mb,Lg as Nb,Dg as Ob,Sg as Pb,vg as Qb,gd as Rb,tt as Sb,mn as Tb,$g as Ub,At as Vb,Ye as Wb,Bo as Xb,_o as Yb,gt as Zb,k as _b,hd as $b,yd as ac,de as bc,ae as cc,ee as dc,X as ec,na as fc,Pr as gc,N6 as hc,xt as ic,F6 as jc,ra as kc,Og as lc,bn as mc,Ne as nc,Oo as oc,Ag as pc,Kg as qc,Vt as rc,Dt as sc,Co as tc,nn as uc,ht as vc,Td as wc,Ko as xc,Vg as yc,ia as zc,Zn as Ac,Ld as Bc,qg as Cc,Dd as Dc,en as Ec,mt as Fc,td as Gc,nd as Hc,Tb as Ic,aF as Jc,sF as Kc,Mb as Lc,dF as Mc,p2 as Nc,cF as Oc,Lb as Pc,an as Qc,lF as Rc,UF as Sc,fF as Tc,Ja as Uc,b2 as Vc,E2 as Wc,dn as Xc,gB as Yc,T2 as Zc,M2 as _c,L2 as $c,Hb as ad,Jb as bd,Yb as cd,$2 as dd,he as ed,Ux as fd,fx as gd,px as hd,ux as id,mx as jd,bx as kd,Ex as ld,gx as md,xx as nd,yx as od,Nr as pd,Ad as qd,Ix as rd,wx as sd,Rx as td,Tx as ud,Mx as vd,Lx as wd,Dx as xd,Sx as yd,vx as zd,$x as Ad,Px as Bd,Nx as Cd,Fx as Dd,Bx as Ed,_x as Fd,Ox as Gd,Ax as Hd,Kx as Id,Hx as Jd,Jx as Kd,Yx as Ld,Vx as Md,qx as Nd,Xx as Od,Gx as Pd,Wx as Qd,Qx as Rd,jx as Sd,eh as Td,th as Ud,sh as Vd,dh as Wd,ch as Xd,lh as Yd,Uh as Zd,fh as _d,ph as $d,uh as ae,mh as be,bh as ce,Eh as de,gh as ee,xh as fe,Ih as ge,Mh as he,Lh as ie,Dh as je,Sh as ke,vh as le,$h as me,Ph as ne,Nh as oe,Fh as pe,_h as qe,Oh as re,Ah as se,Kh as te,Hh as ue,Jh as ve,Yh as we,Ch as xe,Vh as ye,qh as ze,Xh as Ae,Gh as Be,kh as Ce,Zh as De,Wh as Ee,zh as Fe,Qh as Ge,jh as He,e4 as Ie,t4 as Je,n4 as Ke,r4 as Le,o4 as Me,i4 as Ne,la as Oe,Ua as Pe,a4 as Qe,s4 as Re,d4 as Se,c4 as Te,l4 as Ue,U4 as Ve,f4 as We,p4 as Xe,m4 as Ye,b4 as Ze,E4 as _e,g4 as $e,x4 as af,I4 as bf,w4 as cf,R4 as df,T4 as ef,M4 as ff,L4 as gf,D4 as hf,S4 as if,v4 as jf,N4 as kf,F4 as lf,B4 as mf,_4 as nf,O4 as of,A4 as pf,K4 as qf,H4 as rf,J4 as sf,Y4 as tf,C4 as uf,V4 as vf,q4 as wf,X4 as xf,G4 as yf,k4 as zf,Z4 as Af,W4 as Bf,z4 as Cf,Q4 as Df,j4 as Ef,ty as Ff,ny as Gf,ry as Hf,oy as If,iy as Jf,ay as Kf,sy as Lf,dy as Mf,cy as Nf,ly as Of,Uy as Pf,Nn as Qf,ko as Rf,Xr as Sf,VB as Tf,qB as Uf,XB as Vf,GB as Wf,qt as Xf,Ga as Yf,kB as Zf,On as _f,Zb as $f,Wb as ag,Gr as bg,zb as cg,ZB as dg,f$ as eg,Wo as fg,D1 as gg,Q as hg,Y$ as ig,C$ as jg,V$ as kg,q$ as lg,ga as mg,xm as ng,ba as og,A$ as pg,hm as qg,Mm as rg,iP as sg,ti as tg,L1 as ug,wt as vg,it as wg,Kt as xg,Re as yg,Fe as zg,nt as Ag,ze as Bg,ve as Cg,q1 as Dg,FN as Eg,Fa as Fg,t2 as Gg,n2 as Hg,Ba as Ig,BN as Jg,_N as Kg,ON as Lg,di as Mg,ab as Ng,Bn as Og,Jt as Pg,fi as Qg,d2 as Rg,AN as Sg,KN as Tg,pi as Ug,hi as Vg,dr as Wg,O2 as Xg,za as Yg,V2 as Zg,J_ as _g,Y_ as $g,Ge as ah,lP as bh,er as ch,UP as dh,k2 as eh,Z2 as fh,es as gh,xn as hh,Pi as ih,Mp as jh,J7 as kh,io as lh,Lp as mh,X9 as nh,_p as oh,iC as ph,K9 as qh,DY as rh,W2 as sh,Hi as th,H9 as uh,z2 as vh,J9 as wh,SY as xh,vY as yh,$Y as zh,PY as Ah,NY as Bh,FY as Ch,BY as Dh,_Y as Eh,OY as Fh,AY as Gh,KY as Hh,ts as Ih,to as Jh,hO as Kh,yO as Lh,p7 as Mh,IO as Nh,u7 as Oh,ep as Ph,tp as Qh,LO as Rh,is as Sh,b7 as Th,BO as Uh,KO as Vh,np as Wh,rp as Xh,qO as Yh,XO as Zh,E7 as _h,op as $h,GO as ai,x7 as bi,cp as ci,pp as di,up as ei,TA as fi,uK as gi,k7 as hi,LK as ii,DK as ji,Np as ki,SK as li,vK as mi,Bp as ni,hs as oi,t9 as pi,n9 as qi,r9 as ri,HK as si,Ap as ti,a9 as ui,Hp as vi,uH as wi,Bi as xi,hn as yi,mH as zi,bH as Ai,co as Bi,ds as Ci,cs as Di,EH as Ei,gH as Fi,We as Gi,xH as Hi,l9 as Ii,Xp as Ji,U9 as Ki,hH as Li,yH as Mi,Gp as Ni,bp as Oi,Ep as Pi,IH as Qi,Pm as Ri,vP as Si,Fn as Ti,wa as Ui,Am as Vi,NP as Wi,Km as Xi,Hm as Yi,Ta as Zi,FP as _i,Jm as $i,C as aj,$e as bj,Na as cj,fN as dj,mi as ej,Sb as fj,sr as gj,IF as hj,wF as ij,RF as jj,TF as kj,MF as lj,LF as mj,DF as nj,Vr as oj,z as pj,qr as qj,I2 as rj,w2 as sj,WF as tj,Xa as uj,dB as vj,_n as wj,R2 as xj,Yt as yj,oe as zj,qe as Aj,cB as Bj,lB as Cj,UB as Dj,fB as Ej,pB as Fj,qa as Gj,Tt as Hj,Ar as Ij,Bb as Jj,Za as Kj,B2 as Lj,Zr as Mj,An as Nj,Ts as Oj,Y as Pj,vt as Qj,kr as Rj,ao as Sj,kp as Tj,iJ as Uj,Va as Vj,bs as Wj,Ls as Xj,Ki as Yj,Ds as Zj,fJ as _j,E9 as $j,g9 as ak,h9 as bk,y9 as ck,r6 as dk,T9 as ek,M9 as fk,S9 as gk,P9 as hk,N9 as ik,B9 as jk,_9 as kk,O9 as lk,nY as mk,rY as nk,X2 as ok,Es as pk,zp as qk,f9 as rk,ui as sk,Ib as tk,wb as uk,at as vk,Rb as wk,Ha as xk,yb as yk,_a as zk,Oa as Ak,Ka as Bk};
|
|
@@ -4,4 +4,4 @@ kPOPxhz+nxUrIoWCD/V4NGmUA1lxwHuO21HN1gzKrN3xHg5EGjyouR9vibT9VDGF
|
|
|
4
4
|
gq6+4Ic/kJX+AD2MM7Yre2+FsOdysrmuW2Fu3ahuC1uQE7pOe1j0k7auNP0y1q53
|
|
5
5
|
PrB8Ts2LUpepWC1l7zIXFm4ViDULuyWXTEpUcHSsEH8vpd1tckjypxCwkipfZsXx
|
|
6
6
|
iPszy0o0Dx2iArPfWMXlFAI9mvyFCyFC3+nSvfyAUb2C4uZgCwAuyFh/ydPF4DEE
|
|
7
|
-
PQIDAQAB`,VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX:"false",VITE_APP_COLLAPSE_OVERLAY:"false",VITE_APP_ENABLE_ESLINT:"false",PKG_NAME:"@excalidraw/excalidraw",PKG_VERSION:"0.18.
|
|
7
|
+
PQIDAQAB`,VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX:"false",VITE_APP_COLLAPSE_OVERLAY:"false",VITE_APP_ENABLE_ESLINT:"false",PKG_NAME:"@excalidraw/excalidraw",PKG_VERSION:"0.18.1",PROD:!0};export{c as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{nh as a,oh as b,ph as c}from"../chunk-K2UTITRG.js";import"../chunk-ZUYEQ4TG.js";import"../chunk-SRAX5OIU.js";export{c as decodePngMetadata,b as encodePngMetadata,a as getTEXtChunk};
|