@layers-app/editor 0.7.18 → 0.7.20
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/index.cjs +2 -2
- package/dist/index.d.ts +77 -1
- package/dist/index.js +15 -9
- package/dist/layers.-pxItkuK.js +11 -0
- package/dist/layers.4783bPvO.js +39 -0
- package/dist/layers.4XOTUH37.js +1089 -0
- package/dist/layers.4peyl00A.js +2 -0
- package/dist/layers.4wAcqQtQ.js +423 -0
- package/dist/layers.4ykD0YcM.js +40 -0
- package/dist/layers.52famHy6.js +1 -0
- package/dist/layers.6Feq9YXQ.js +40 -0
- package/dist/layers.6GQPwq_6.js +960 -0
- package/dist/layers.7JqFgE4-.js +15 -0
- package/dist/layers.7wQbmwwB.js +1034 -0
- package/dist/layers.8JNx1FTq.js +35 -0
- package/dist/layers.8jhm9FEJ.js +10 -0
- package/dist/layers.8lNrKfca.js +41 -0
- package/dist/layers.9kQUqqYe.js +139 -0
- package/dist/layers.9pNaFvaX.js +1 -0
- package/dist/layers.AO3vHISA.js +33 -0
- package/dist/layers.Ab6Lx44l.js +129 -0
- package/dist/layers.B-w9_4cB.js +22 -0
- package/dist/layers.B0bpRgNT.js +122 -0
- package/dist/layers.B19hGmey.js +1 -0
- package/dist/layers.B2OK_mI8.js +1 -0
- package/dist/layers.B3D4g2HH.js +1 -0
- package/dist/layers.B3mzJc8P.js +907 -0
- package/dist/layers.B5YhL7Gw.js +40 -0
- package/dist/layers.B7K7JjK6.js +1510 -0
- package/dist/layers.B885pkJL.js +794 -0
- package/dist/layers.B961U-Vk.js +1 -0
- package/dist/layers.B9jATAXU.js +42 -0
- package/dist/layers.BAtv1CM7.js +1 -0
- package/dist/layers.BBv6P-Uu.js +37 -0
- package/dist/layers.BC6JEDP2.js +796 -0
- package/dist/layers.BEagxCE_.js +35 -0
- package/dist/layers.BH34WCDb.js +6 -0
- package/dist/layers.BIeVwYKL.js +1 -0
- package/dist/layers.BIkD0WQr.js +10 -0
- package/dist/layers.BIlhFIEz.js +37 -0
- package/dist/layers.BJDrjORS.js +244 -0
- package/dist/{layers.D99OBX9u.js → layers.BJLOp9cg.js} +88 -86
- package/dist/layers.BJsWSYrS.js +323 -0
- package/dist/layers.BKwcxD8A.js +5 -0
- package/dist/layers.BLd2spTm.js +1 -0
- package/dist/layers.BLv_frn1.js +10 -0
- package/dist/layers.BO2V23mI.js +1 -0
- package/dist/layers.BO_D4q5p.js +42 -0
- package/dist/layers.BP7EcZBZ.js +1 -0
- package/dist/layers.BP8OcU0T.js +10 -0
- package/dist/layers.BRaRY9tU.js +373 -0
- package/dist/layers.BSTBZrFn.js +1 -0
- package/dist/layers.BT2iHuSm.js +8 -0
- package/dist/layers.BU-tjKWq.js +33 -0
- package/dist/layers.BWEUOe94.js +40 -0
- package/dist/layers.BXAu7G4b.js +4 -0
- package/dist/layers.BZ9zcjtY.js +8 -0
- package/dist/layers.BZa5A6cg.js +425 -0
- package/dist/layers.BZlzQFiI.js +51 -0
- package/dist/layers.BagtOD0V.js +1 -0
- package/dist/layers.BbCfEXyj.js +55 -0
- package/dist/layers.Be94M_F4.js +7 -0
- package/dist/layers.BhdUQN6J.js +1583 -0
- package/dist/layers.Bj915C_T.js +5 -0
- package/dist/layers.BnHSrOPr.js +40 -0
- package/dist/layers.BngaRys_.js +8583 -0
- package/dist/layers.BoRvGzPp.js +1 -0
- package/dist/layers.Bob38w8X.js +5 -0
- package/dist/layers.BpTkSHkL.js +38 -0
- package/dist/layers.BpVR__4s.js +32 -0
- package/dist/layers.BpilXLfW.js +6 -0
- package/dist/layers.Br9HAzwf.js +2482 -0
- package/dist/layers.Bt7brqhi.js +116 -0
- package/dist/layers.BtqAfMks.js +1 -0
- package/dist/layers.BtvHse58.js +1 -0
- package/dist/layers.BwzogUnt.js +41 -0
- package/dist/layers.ByB5f2g3.js +7 -0
- package/dist/layers.ByipH4AB.js +207 -0
- package/dist/layers.BzC5N3hu.js +1619 -0
- package/dist/layers.C-KP-jFZ.js +8 -0
- package/dist/layers.C0iFGBoQ.js +213 -0
- package/dist/layers.C1AULvj_.js +40 -0
- package/dist/layers.C2f7uCzl.js +21620 -0
- package/dist/layers.C47t6lve.js +2 -0
- package/dist/layers.C4gRYt-z.js +9 -0
- package/dist/layers.C4nmPqDc.js +9 -0
- package/dist/layers.C5UKJ24R.js +271 -0
- package/dist/layers.C5qsYNKq.js +7 -0
- package/dist/layers.C70jnpZq.js +42 -0
- package/dist/layers.C7Qg5l_Q.js +5 -0
- package/dist/layers.C7v0beLV.js +9 -0
- package/dist/layers.C8_lu5UH.js +23 -0
- package/dist/layers.CAcCDIzK.js +32 -0
- package/dist/layers.CCWJVHwX.js +26946 -0
- package/dist/layers.CF2BAIC-.js +1 -0
- package/dist/layers.CFUGAgBV.js +805 -0
- package/dist/layers.CHZsXQcr.js +1 -0
- package/dist/layers.CIo6HbVI.js +37 -0
- package/dist/layers.CJaSQy6k.js +70 -0
- package/dist/layers.CJhFGqXY.js +1 -0
- package/dist/layers.CKU_klOZ.js +41 -0
- package/dist/layers.CKrtSnTU.js +7 -0
- package/dist/layers.CNoIsdHV.js +223 -0
- package/dist/layers.CQ-g_IO8.js +39 -0
- package/dist/layers.CRWtU7Vx.js +1268 -0
- package/dist/layers.CSattQNk.js +8 -0
- package/dist/layers.CT-8Geho.js +118 -0
- package/dist/layers.CWTjwUqI.js +9 -0
- package/dist/layers.CY3nuiOZ.js +39 -0
- package/dist/layers.CYDGmR2c.js +1 -0
- package/dist/layers.CYPtUh0S.js +36 -0
- package/dist/layers.CYjyWg9h.js +139 -0
- package/dist/layers.CZCoH1Jq.js +189 -0
- package/dist/layers.CZVe7Rrz.js +4 -0
- package/dist/layers.C_8NFZw0.js +84 -0
- package/dist/layers.C_IvrzZ3.js +7 -0
- package/dist/layers.C_vVmOaW.js +7 -0
- package/dist/layers.Cb3vLPzi.js +1 -0
- package/dist/layers.Cblg5KAJ.js +1286 -0
- package/dist/layers.CeUsnn-s.js +41 -0
- package/dist/layers.Cfwoj-CP.js +76 -0
- package/dist/layers.Cfxt2JbX.js +160 -0
- package/dist/layers.CjixIcYE.js +205 -0
- package/dist/layers.CliEt_s4.js +8 -0
- package/dist/layers.Cmumbtn4.js +11 -0
- package/dist/layers.Cnkh0zSn.js +5 -0
- package/dist/layers.Co0MEzNt.js +32 -0
- package/dist/layers.CpgPovn6.js +32 -0
- package/dist/layers.CqVTtuYm.js +6 -0
- package/dist/layers.Cr_8J_Ls.js +36 -0
- package/dist/layers.Cs7THreY.js +42 -0
- package/dist/layers.CtQHRQJd.js +65 -0
- package/dist/layers.Cuv2Lipq.js +10 -0
- package/dist/layers.Cuy--_Li.js +14 -0
- package/dist/layers.Cxrjuyke.js +38 -0
- package/dist/layers.Cxuu78R8.js +1 -0
- package/dist/layers.Cy_jbtrS.js +198 -0
- package/dist/layers.CyabQ7I1.js +40 -0
- package/dist/layers.CyqF5h2Z.js +1 -0
- package/dist/layers.Cyzu9PKQ.js +1 -0
- package/dist/layers.CzDyzzM2.js +36 -0
- package/dist/layers.D-LL79P8.js +32 -0
- package/dist/layers.D-uQN6e4.js +271 -0
- package/dist/layers.D00djYUT.js +9 -0
- package/dist/layers.D0zn4_Mx.js +1 -0
- package/dist/layers.D1PMEoqL.js +41 -0
- package/dist/layers.D1WSB9zI.js +806 -0
- package/dist/layers.D2dRxQww.js +10 -0
- package/dist/layers.D3KEnhiI.js +6 -0
- package/dist/layers.D3SlAvNp.js +934 -0
- package/dist/layers.D3eKKoAb.js +1 -0
- package/dist/layers.D4T8fTcj.js +1223 -0
- package/dist/layers.D7gfmd9A.js +36 -0
- package/dist/layers.D7jGxypv.js +8 -0
- package/dist/layers.DA1OUhKy.js +10 -0
- package/dist/layers.DB4o6Xfv.js +42 -0
- package/dist/layers.DBUjVgMd.js +1 -0
- package/dist/layers.DCkmUFPh.js +2966 -0
- package/dist/layers.DD4QPdYS.js +96 -0
- package/dist/layers.DE2Io1k7.js +295 -0
- package/dist/layers.DKnEcoKx.js +1088 -0
- package/dist/layers.DKsXm_hK.js +9 -0
- package/dist/layers.DLeGllIz.js +1 -0
- package/dist/layers.DLwuMfdd.js +84 -0
- package/dist/layers.DMkBISW1.js +1 -0
- package/dist/layers.DN9HoVxI.js +18 -0
- package/dist/layers.DOrgOHBr.js +1 -0
- package/dist/layers.DPipd7Yf.js +1 -0
- package/dist/layers.DQpNkl-s.js +39 -0
- package/dist/layers.DSNr6P6_.js +40 -0
- package/dist/layers.DWGLEZg1.js +34 -0
- package/dist/layers.DWxUDz1V.js +13 -0
- package/dist/layers.DYk9FILk.js +8 -0
- package/dist/layers.DZ3Nv-_j.js +8 -0
- package/dist/layers.DZGvjyDH.js +1 -0
- package/dist/layers.DZucH9TB.js +40 -0
- package/dist/layers.D__NkOsa.js +7 -0
- package/dist/layers.DbaKVP5e.js +1 -0
- package/dist/layers.DfkAyTyX.js +39 -0
- package/dist/layers.Dgie_iy2.js +772 -0
- package/dist/layers.DhHIDfZ5.js +1 -0
- package/dist/layers.Di-7t8Xt.js +6 -0
- package/dist/layers.DiPSTN4q.js +1 -0
- package/dist/layers.DjLIeP8d.js +257 -0
- package/dist/layers.DjUOC4st.js +16 -0
- package/dist/layers.Dk6h-6Wb.js +2 -0
- package/dist/layers.DkRR3p16.js +61 -0
- package/dist/layers.DnXxZJQo.js +48149 -0
- package/dist/layers.DpahuC02.js +6 -0
- package/dist/layers.Dpqc2FAN.js +40 -0
- package/dist/layers.DqScp2vq.js +1126 -0
- package/dist/layers.Dr1JRZ_S.js +4 -0
- package/dist/layers.DrTaVUsA.js +39 -0
- package/dist/layers.DrXLa4el.js +44 -0
- package/dist/layers.DtKxMd0g.js +4 -0
- package/dist/layers.DxA6ocdw.js +70 -0
- package/dist/layers.DxRZNwMP.js +1 -0
- package/dist/layers.Dy1naDTQ.js +14 -0
- package/dist/layers.FArKPCKA.js +21941 -0
- package/dist/layers.FXdB_jrR.js +9 -0
- package/dist/layers.GbuD0dtx.js +6 -0
- package/dist/layers.ILs-xE7i.js +11 -0
- package/dist/layers.JWCLFILJ.js +1 -0
- package/dist/layers.L9obQAvP.js +10 -0
- package/dist/layers.Lb5VQ9U4.js +504 -0
- package/dist/layers.MCy444Ia.js +41 -0
- package/dist/layers.QyDQqf0G.js +39 -0
- package/dist/layers.R4CPUhiF.js +8 -0
- package/dist/layers.R8mPlCA0.js +261 -0
- package/dist/layers.Sjtd5SpD.js +84 -0
- package/dist/layers.XlzBx5CM.js +437 -0
- package/dist/layers.YD8zq7G1.js +41 -0
- package/dist/layers.YWM6eRUH.js +1 -0
- package/dist/layers.a6EbdnVa.js +37 -0
- package/dist/layers.b0h5ZBmD.js +61 -0
- package/dist/layers.b9B2NY7n.js +11690 -0
- package/dist/layers.bS5nz97o.js +3 -0
- package/dist/layers.biaV5QcU.js +7 -0
- package/dist/layers.dxw35GiE.js +52 -0
- package/dist/layers.gFW_9pGM.js +1225 -0
- package/dist/layers.ge00jJfz.js +38 -0
- package/dist/layers.iryDeY19.js +9 -0
- package/dist/layers.jN02hLg8.js +7 -0
- package/dist/layers.jqEynR2I.js +8 -0
- package/dist/layers.lCpg7dOn.js +21 -0
- package/dist/layers.lIg0cncJ.js +39 -0
- package/dist/layers.lKk6bx4R.js +1 -0
- package/dist/layers.m4XcFQDd.js +6 -0
- package/dist/layers.m6FDW_ho.js +8 -0
- package/dist/layers.r6u8p96p.js +2238 -0
- package/dist/layers.rWob7btU.js +10 -0
- package/dist/layers.rYZbXo4d.js +32 -0
- package/dist/layers.sldWqHdD.js +11 -0
- package/dist/layers.tFqdqg82.js +10 -0
- package/dist/layers.v25uTBY8.js +39 -0
- package/dist/layers.wNarGMxP.js +9 -0
- package/dist/layers.wxYowcaq.js +41 -0
- package/dist/layers.xjN3ile4.js +9 -0
- package/dist/layers.yNlD-OCA.js +35 -0
- package/dist/layers.z-RuimGg.js +11 -0
- package/dist/layers.zvsP8spW.js +1 -0
- package/package.json +1 -1
- package/dist/layers.94hwidA2.js +0 -198
- package/dist/layers.B4l6ta1Q.js +0 -1
- package/dist/layers.BMrOAD_P.js +0 -1
- package/dist/layers.DOzLBYZr.js +0 -304
- package/dist/layers.YRyXopy_.js +0 -151
- package/dist/layers.usKC_Id5.js +0 -1
- package/dist/layers.zu-IYGYU.js +0 -47463
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.Cy_jbtrS.js");var u={paste:"粘贴",pasteAsPlaintext:"粘贴为纯文本",pasteCharts:"粘贴图表",selectAll:"全部选中",multiSelect:"添加元素到选区",moveCanvas:"移动画布",cut:"剪切",copy:"拷贝",copyAsPng:"复制为 PNG 到剪贴板",copyAsSvg:"复制为 SVG 到剪贴板",copyText:"复制文本到剪贴板",copySource:"复制源码到剪贴板",convertToCode:"转换成代码",bringForward:"上移一层",sendToBack:"置于底层",bringToFront:"置于顶层",sendBackward:"下移一层",delete:"删除",copyStyles:"拷贝样式",pasteStyles:"粘贴样式",stroke:"描边",background:"背景",fill:"填充",strokeWidth:"描边宽度",strokeStyle:"边框样式",strokeStyle_solid:"实线",strokeStyle_dashed:"虚线",strokeStyle_dotted:"点虚线",sloppiness:"线条风格",opacity:"透明度",textAlign:"文本对齐",edges:"边角",sharp:"尖锐",round:"圆润",arrowheads:"端点",arrowhead_none:"无",arrowhead_arrow:"箭头",arrowhead_bar:"条状",arrowhead_circle:"圆点",arrowhead_circle_outline:"圆点(空心)",arrowhead_triangle:"三角箭头",arrowhead_triangle_outline:"三角箭头(空心)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(空心)",fontSize:"字体大小",fontFamily:"字体",addWatermark:"添加 “使用 Excalidraw 创建” 水印",handDrawn:"手写",normal:"普通",code:"代码",small:"小",medium:"中",large:"大",veryLarge:"加大",solid:"实心",hachure:"线条",zigzag:"之字形折线",crossHatch:"交叉线条",thin:"细",bold:"粗",left:"左对齐",center:"居中",right:"右对齐",extraBold:"特粗",architect:"朴素",artist:"艺术",cartoonist:"漫画家",fileTitle:"文件名",colorPicker:"取色器",canvasColors:"画布上的",canvasBackground:"画布背景",drawingCanvas:"绘制 Canvas",layers:"图层",actions:"操作",language:"语言",liveCollaboration:"实时协作...",duplicateSelection:"复制",untitled:"无标题",name:"名字",yourName:"您的姓名",madeWithExcalidraw:"使用 Excalidraw 创建",group:"编组",ungroup:"解除编组",collaborators:"协作者",showGrid:"显示网格",addToLibrary:"添加到素材库中",removeFromLibrary:"从素材库中移除",libraryLoadingMessage:"正在加载素材库…",libraries:"浏览素材库",loadingScene:"正在加载绘图…",align:"对齐",alignTop:"顶部对齐",alignBottom:"底端对齐",alignLeft:"左对齐",alignRight:"右对齐",centerVertically:"垂直居中",centerHorizontally:"水平居中",distributeHorizontally:"水平等距分布",distributeVertically:"垂直等距分布",flipHorizontal:"水平翻转",flipVertical:"垂直翻转",viewMode:"查看模式",share:"分享",showStroke:"显示描边颜色选择器",showBackground:"显示背景颜色选择器",toggleTheme:"切换主题",personalLib:"个人素材库",excalidrawLib:"Excalidraw 素材库",decreaseFontSize:"缩小字体大小",increaseFontSize:"放大字体大小",unbindText:"取消文本绑定",bindText:"将文本绑定到容器",createContainerFromText:"将文本包围在容器中",link:{edit:"编辑链接",editEmbed:"编辑链接与嵌入",create:"新建链接",createEmbed:"创建链接与嵌入",label:"链接",labelEmbed:"链接与嵌入",empty:"未设定链接"},lineEditor:{edit:"编辑线条",exit:"退出线条编辑"},elementLock:{lock:"锁定",unlock:"解除锁定",lockAll:"全部锁定",unlockAll:"全部解锁"},statusPublished:"已发布",sidebarLock:"侧边栏常驻",selectAllElementsInFrame:"选择画框中的所有元素",removeAllElementsFromFrame:"分离出画框中的所有元素",eyeDropper:"从画布上取色",textToDiagram:"文字至图表",prompt:"Prompt"},F={noItems:"尚未添加任何项目……",hint_emptyLibrary:"选中画布上的项目添加到此处,或从下方的公共素材库中导入。",hint_emptyPrivateLibrary:"选中画布上的项目添加到此处。"},E={clearReset:"重置画布",exportJSON:"导出为文件",exportImage:"导出图片...",export:"保存到...",copyToClipboard:"复制到剪贴板",save:"保存至当前文件",saveAs:"保存为",load:"打开",getShareableLink:"获取共享链接",close:"关闭",selectLanguage:"选择语言",scrollBackToContent:"滚动回到内容",zoomIn:"放大",zoomOut:"缩小",resetZoom:"重置缩放",menu:"菜单",done:"完成",edit:"编辑",undo:"撤销",redo:"重做",resetLibrary:"重置素材库",createNewRoom:"新建会议室",fullScreen:"全屏",darkMode:"深色模式",lightMode:"浅色模式",zenMode:"禅模式",objectsSnapMode:"吸附至对象",exitZenMode:"退出禅模式",cancel:"取消",clear:"清除",remove:"删除",embed:"切换嵌入",publishLibrary:"发布",submit:"提交",confirm:"确定",embeddableInteractionButton:"点击以开始交互"},e={clearReset:"这将会清除整个画布。您是否要继续?",couldNotCreateShareableLink:"无法创建共享链接",couldNotCreateShareableLinkTooBig:"无法创建可共享链接:画布过大",couldNotLoadInvalidFile:"无法加载无效的文件",importBackendFailed:"从后端导入失败。",cannotExportEmptyCanvas:"无法导出空白画布。",couldNotCopyToClipboard:"无法复制到剪贴板。",decryptFailed:"无法解密数据。",uploadedSecurly:"上传已被端到端加密保护,这意味着 Excalidraw 的服务器和第三方都无法读取内容。",loadSceneOverridePrompt:"加载外部绘图将取代您现有的内容。您想要继续吗?",collabStopOverridePrompt:`停止会话将覆盖您先前本地存储的绘图。 您确定吗?
|
|
2
|
+
|
|
3
|
+
(如果您想保持本地绘图,只需关闭浏览器选项卡。)`,errorAddingToLibrary:"无法将项目添加到素材库中",errorRemovingFromLibrary:"无法从素材库中移除项目",confirmAddLibrary:"这将添加 {{numShapes}} 个形状到您的素材库中。您确定吗?",imageDoesNotContainScene:"此图像似乎不包含任何画布数据。您是否在导出时启用了画布嵌入功能?",cannotRestoreFromImage:"无法从此图像文件恢复画布",invalidSceneUrl:"无法从提供的 URL 导入场景。它或者格式不正确,或者不包含有效的 Excalidraw JSON 数据。",resetLibrary:"这将会清除你的素材库。你确定要这么做吗?",removeItemsFromsLibrary:"确定要从素材库中删除 {{count}} 个项目吗?",invalidEncryptionKey:"密钥必须包含22个字符。实时协作已被禁用。",collabOfflineWarning:`无网络连接。
|
|
4
|
+
您的改动将不会被保存!`},D={unsupportedFileType:"不支持的文件格式。",imageInsertError:"无法插入图像。请稍后再试……",fileTooBig:"文件过大。最大允许的大小为 {{maxSize}}。",svgImageInsertError:"无法插入 SVG 图像。该 SVG 标记似乎是无效的。",failedToFetchImage:"无法获取图片。",invalidSVGString:"无效的 SVG。",cannotResolveCollabServer:"无法连接到实时协作服务器。请重新加载页面并重试。",importLibraryError:"无法加载素材库",collabSaveFailed:"无法保存到后端数据库。如果问题持续存在,您应该保存文件到本地,以确保您的工作不会丢失。",collabSaveFailed_sizeExceeded:"无法保存到后端数据库,画布似乎过大。您应该保存文件到本地,以确保您的工作不会丢失。",imageToolNotSupported:"图片已被禁用。",brave_measure_text_error:{line1:"您似乎正在使用 Brave 浏览器并启用了<bold>积极阻止指纹识别</bold>的设置。",line2:"这可能会破坏绘图中的 <bold>文本元素</bold>。",line3:"我们强烈建议禁用此设置。您可以按照<link>这些步骤</link>来设置。",line4:"如果禁用此设置无法修复文本元素的显示,请在 GitHub 上提交一个 <issueLink>issue</issueLink> ,或者在 <discordLink>Discord</discordLink> 上反馈"},libraryElementTypeError:{embeddable:"嵌入的元素不能被添加到素材库。",iframe:"不能将 IFrame 元素添加到素材库中。",image:"我们不久将支持添加图片到素材库"},asyncPasteFailedOnRead:"无法粘贴(无法读取系统剪贴板)。",asyncPasteFailedOnParse:"无法粘贴。",copyToSystemClipboardFailed:"无法复制到剪贴板。"},B={selection:"选择",image:"插入图像",rectangle:"矩形",diamond:"菱形",ellipse:"椭圆",arrow:"箭头",line:"线条",freedraw:"自由书写",text:"文字",library:"素材库",lock:"绘制后保持所选的工具栏状态",penMode:"笔模式 – 避免误触",link:"为选中的形状添加/更新链接",eraser:"橡皮",frame:"画框工具",magicframe:"线框图至代码",embeddable:"嵌入网页",laser:"激光笔",hand:"抓手(平移工具)",extraTools:"更多工具",mermaidToExcalidraw:"Mermaid 至 Excalidraw",magicSettings:"AI 设置"},C={canvasActions:"画布动作",selectedShapeActions:"选定形状操作",shapes:"形状"},r={canvasPanning:"要移动画布,请按住鼠标滚轮或空格键同时拖拽鼠标,或使用抓手工具。",linearElement:"点击创建多个点 拖动创建直线",freeDraw:"点击并拖动,完成时松开",text:"提示:您也可以使用选择工具双击任意位置来添加文字",embeddable:"点击并拖动以创建嵌入网页",text_selected:"双击或按回车键以编辑文本",text_editing:"按下 Escape 或 CtrlOrCmd+ENTER 完成编辑",linearElementMulti:"点击最后一个点或按下 Esc/Enter 来完成",lockAngle:"可以按住 Shift 来约束角度",resize:`您可以按住SHIFT来限制比例大小,
|
|
5
|
+
按住ALT来调整中心大小`,resizeImage:`按住SHIFT可以自由缩放,
|
|
6
|
+
按住ALT可以从中间缩放`,rotate:"旋转时可以按住 Shift 来约束角度",lineEditor_info:"按住 CtrlOrCmd 并双击或按 CtrlOrCmd + Enter 来编辑点",lineEditor_pointSelected:"按下 Delete 移除点,CtrlOrCmd+D 以复制,拖动以移动",lineEditor_nothingSelected:`选择要编辑的点 (按住 SHIFT 选择多个),
|
|
7
|
+
或按住 Alt 并点击以添加新点`,placeImage:"点击放置图像,或者点击并拖动以手动设置图像大小",publishLibrary:"发布您自己的素材库",bindTextToElement:"按下 Enter 以添加文本",deepBoxSelect:"按住 CtrlOrCmd 以深度选择,并避免拖拽",eraserRevert:"按住 Alt 以反选被标记删除的元素",firefox_clipboard_write:"将高级配置首选项“dom.events.asyncClipboard.clipboardItem”设置为“true”可以启用此功能。要更改 Firefox 的高级配置首选项,请前往“about:config”页面。",disableSnapping:"按住 Ctrl 或 Cmd 以禁用吸附"},A={cannotShowPreview:"无法显示预览",canvasTooBig:"画布可能过大。",canvasTooBigTip:"提示:尝试将最远的元素移动到和其它元素更近一些。"},t={headingMain:"遇到异常。请尝试<button>重新加载页面</button>。",clearCanvasMessage:"如果重新加载页面无效,请尝试<button>清除画布</button>。",clearCanvasCaveat:"这会造成当前工作丢失",trackedToSentry:"标识符为{{eventId}}的错误已在我们的系统中被记录",openIssueMessage:"我们非常谨慎地处理错误信息,您的画布内容不会被包含在错误报告中。如果您的画布内容不需要保持私密,请考虑在我们的 <button>bug 跟踪系统</button>上提供更多信息。请复制粘贴以下信息到 GitHub Issue 中。",sceneContent:"画布内容:"},o={desc_intro:"你可以邀请其他人到目前的画面中与你协作。",desc_privacy:"别担心,该会话使用端到端加密,无论绘制什么都将保持私密,甚至连我们的服务器也无法查看。",button_startSession:"开始会话",button_stopSession:"结束会话",desc_inProgressIntro:"实时协作会话进行中。",desc_shareLink:"分享此链接给你要协作的用户",desc_exitSession:"停止会话将中断您与房间的连接,但您依然可以在本地继续使用画布。请注意,这不会影响到其他用户,他们仍可以在他们的版本上继续协作。",shareTitle:"加入 Excalidraw 实时协作会话"},a={title:"错误"},i={disk_title:"保存到本地",disk_details:"将画布数据导出为文件,以便以后导入",disk_button:"保存为文件",link_title:"分享链接",link_details:"导出为只读链接。",link_button:"导出链接",excalidrawplus_description:"将画布保存到您的 Excalidraw+ 工作区。",excalidrawplus_button:"导出",excalidrawplus_exportError:"暂时无法导出到 Excalidraw+ ..."},l={blog:"浏览我们的博客",click:"单击",deepSelect:"深度选择",deepBoxSelect:"在方框内深度选择并避免拖拽",curvedArrow:"曲线箭头",curvedLine:"曲线",documentation:"文档",doubleClick:"双击",drag:"拖动",editor:"编辑器",editLineArrowPoints:"编辑线条或箭头的点",editText:"添加或编辑文本",github:"发现问题?提交反馈",howto:"帮助文档",or:"或",preventBinding:"禁用箭头吸附",tools:"工具",shortcuts:"快捷键列表",textFinish:"完成编辑 (文本编辑器)",textNewLine:"添加新行(文本编辑器)",title:"帮助",view:"视图",zoomToFit:"缩放以适应所有元素",zoomToSelection:"缩放到选区",toggleElementLock:"锁定/解锁",movePageUpDown:"上下移动页面",movePageLeftRight:"左右移动页面"},n={title:"清除画布"},s={title:"发布素材库",itemName:"项目名称",authorName:"作者名",githubUsername:"GitHub 用户名",twitterUsername:"Twitter 用户名",libraryName:"名称",libraryDesc:"简介",website:"网址",placeholder:{authorName:"您的名字或用户名",libraryName:"素材库名称",libraryDesc:"介绍您的素材库,让人们了解其用途",githubHandle:"GitHub 用户名(可选),填写后,您可以编辑已提交待审的素材库",twitterHandle:"Twitter 用户名(可选),填写后,当我们在Twitter发布推广信息时便可提及您",website:"您个人网站的或任意的链接(可选)"},errors:{required:"必填",website:"输入一个有效的URL"},noteDescription:"提交后,您的素材库将被包含在<link>公共素材库广场</link>以供其他人在绘图中使用。",noteGuidelines:"提交的素材库需先经人工审核。在提交之前,请先阅读<link>指南</link> 。后续沟通和对库的修改需要 GitHub 账号,但这不是必须的。",noteLicense:"提交即表明您已同意素材库将遵循 <link>MIT 许可证</link>,简而言之,任何人都可以不受限制地使用它们。",noteItems:"素材库中每个项目都有各自的名称以供筛选。以下项目将被包含:",atleastOneLibItem:"请选择至少一个素材库以开始",republishWarning:"注意:部分选中的项目已经发布或提交。请仅在更新已有或已提交的素材库时重复提交项目。"},d={title:"素材库已提交",content:"谢谢你 {{authorName}}。您的素材库已被提交审核。请点击<link>此处</link>跟进此次提交的状态"},c={resetLibrary:"重置素材库",removeItemsFromLib:"从素材库中删除选中的项目"},m={header:"导出图片",label:{withBackground:"背景",onlySelected:"仅选中",darkMode:"深色模式",embedScene:"包含画布数据",scale:"缩放比例",padding:"内边距"},tooltip:{embedScene:`画布数据将被保存到导出的 PNG/SVG 文件,以便恢复。
|
|
8
|
+
将会增加导出文件的大小。`},title:{exportToPng:"导出为 PNG",exportToSvg:"导出为 SVG",copyPngToClipboard:"复制 PNG 到剪切板"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"复制到剪贴板"}},b={tooltip:"您的绘图采用端到端加密,其内容对于 Excalidraw 服务器是不可见的。",link:"Excalidraw 中关于端到端加密的博客"},p={angle:"角度",element:"元素",elements:"元素",height:"高度",scene:"画布",selected:"选中",storage:"存储",title:"详细统计信息",total:"总计",version:"版本",versionCopy:"点击复制",versionNotAvailable:"版本不可用",width:"宽度"},g={addedToLibrary:"添加到素材库中",copyStyles:"样式已拷贝。",copyToClipboard:"已复制到剪切板。",copyToClipboardAsPng:`已将 {{exportSelection}} 作为 PNG 复制到剪贴板
|
|
9
|
+
({{exportColorScheme}})`,fileSaved:"文件已保存。",fileSavedToFilename:"保存到 {filename}",canvas:"画布",selection:"所选项",pasteAsSingleElement:`使用 {{shortcut}} 粘贴为单个元素,
|
|
10
|
+
或粘贴到现有的文本编辑器里`,unableToEmbed:"目前不允许嵌入此网址。请在 GitHub 上提 issue 请求将此网址加入白名单",unrecognizedLinkFormat:"您嵌入的链接不符合格式要求。请尝试粘贴源网站提供的“嵌入 (embed)”字符串"},h={transparent:"透明",black:"黑",white:"白",red:"红",pink:"粉红",grape:"紫红",violet:"蓝紫",gray:"灰",blue:"蓝",cyan:"青",teal:"蓝绿",green:"绿",yellow:"黄",orange:"橙",bronze:"古铜"},S={app:{center_heading:"您的所有数据都储存在浏览器本地。",center_heading_plus:"是否前往 Excalidraw+ ?",menuHint:"导出、首选项、语言……"},defaults:{menuHint:"导出、首选项……",center_heading:"图,化繁为简。",toolbarHint:"选择工具并开始绘图!",helpHint:"快捷键和帮助"}},y={mostUsedCustomColors:"常用自定义颜色",colors:"颜色",shades:"色调明暗",hexCode:"十六进制值",noShades:"此颜色没有可用的明暗变化"},w={action:{exportToImage:{title:"导出为图片",button:"导出为图片",description:"将画布数据导出为图片,以便以后导入。"},saveToDisk:{title:"保存到本地",button:"保存到本地",description:"将画布数据导出为文件,以便以后导入。"},excalidrawPlus:{title:"Excalidraw+",button:"导出到 Excalidraw+",description:"将画布保存到您的 Excalidraw+ 工作区。"}},modal:{loadFromFile:{title:"从文件加载",button:"从文件加载",description:"从文件加载将<bold>替换您现有的内容</bold>。<br></br>您可以先使用下列方式备份您的绘图。"},shareableLink:{title:"从链接加载",button:"替换我的内容",description:"加载外部绘图将<bold>替换您现有的内容</bold>。<br></br>您可以先使用下列方式备份您的绘图。"}}},v={title:"Mermaid 至 Excalidraw",button:"插入",description:"目前仅支持<flowchartLink>流程图</flowchartLink>、<sequenceLink>序列图</sequenceLink>和<classLink>类图</classLink>。其他类型在 Excalidraw 中将以图像呈现。",syntax:"Mermaid 语法",preview:"预览"},k={labels:u,library:F,buttons:E,alerts:e,errors:D,toolBar:B,headings:C,hints:r,canvasError:A,errorSplash:t,roomDialog:o,errorDialog:a,exportDialog:i,helpDialog:l,clearCanvasDialog:n,publishDialog:s,publishSuccessDialog:d,confirmDialog:c,imageExportDialog:m,encrypted:b,stats:p,toast:g,colors:h,welcomeScreen:S,colorPicker:y,overwriteConfirm:w,mermaid:v};exports.alerts=e;exports.buttons=E;exports.canvasError=A;exports.clearCanvasDialog=n;exports.colorPicker=y;exports.colors=h;exports.confirmDialog=c;exports.default=k;exports.encrypted=b;exports.errorDialog=a;exports.errorSplash=t;exports.errors=D;exports.exportDialog=i;exports.headings=C;exports.helpDialog=l;exports.hints=r;exports.imageExportDialog=m;exports.labels=u;exports.library=F;exports.mermaid=v;exports.overwriteConfirm=w;exports.publishDialog=s;exports.publishSuccessDialog=d;exports.roomDialog=o;exports.stats=p;exports.toast=g;exports.toolBar=B;exports.welcomeScreen=S;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./layers.Sjtd5SpD.js");require("./layers.Cy_jbtrS.js");exports.Commands=e.CB;exports.subsetToBase64=e.QB;exports.subsetToBinary=e.NQ;exports.toBase64=e.AI;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import "./layers.C2f7uCzl.js";
|
|
2
|
+
var e = { paste: "Incolla", pasteAsPlaintext: "Incolla come testo normale", pasteCharts: "Incolla grafici", selectAll: "Seleziona tutto", multiSelect: "Aggiungi elemento alla selezione", moveCanvas: "Sposta tela", cut: "Taglia", copy: "Copia", copyAsPng: "Copia negli appunti come PNG", copyAsSvg: "Copia negli appunti come SVG", copyText: "Copia negli appunti come testo", copySource: "Copia sorgente negli appunti", convertToCode: "Converti in codice", bringForward: "Porta avanti", sendToBack: "Manda in fondo", bringToFront: "Porta in cima", sendBackward: "Manda dietro", delete: "Elimina", copyStyles: "Copia stili", pasteStyles: "Incolla stili", stroke: "Tratto", background: "Sfondo", fill: "Riempimento", strokeWidth: "Spessore del tratto", strokeStyle: "Stile del tratto", strokeStyle_solid: "Pieno", strokeStyle_dashed: "Tratteggiato", strokeStyle_dotted: "Punteggiato", sloppiness: "Imprecisione", opacity: "Opacità", textAlign: "Allineamento del testo", edges: "Bordi", sharp: "Acuto", round: "Rotondo", arrowheads: "Punta della freccia", arrowhead_none: "Nessuno", arrowhead_arrow: "Freccia", arrowhead_bar: "Barra", arrowhead_circle: "Cerchio", arrowhead_circle_outline: "Cerchio (contorno)", arrowhead_triangle: "Triangolo", arrowhead_triangle_outline: "Triangolo (contorno)", arrowhead_diamond: "Diamante", arrowhead_diamond_outline: "Diamante (contorno)", fontSize: "Dimensione carattere", fontFamily: "Carattere", addWatermark: 'Aggiungi "Creato con Excalidraw"', handDrawn: "A mano libera", normal: "Normale", code: "Codice", small: "Piccolo", medium: "Medio", large: "Grande", veryLarge: "Molto grande", solid: "Pieno", hachure: "Tratteggio obliquo", zigzag: "Zig zag", crossHatch: "Tratteggio incrociato", thin: "Sottile", bold: "Grassetto", left: "Sinistra", center: "Centro", right: "Destra", extraBold: "Extra Grassetto", architect: "Architetto", artist: "Artista", cartoonist: "Fumettista", fileTitle: "Nome del file", colorPicker: "Selettore colore", canvasColors: "Usato su tela", canvasBackground: "Sfondo tela", drawingCanvas: "Area di disegno", layers: "Livelli", actions: "Azioni", language: "Lingua", liveCollaboration: "Collaborazione dal vivo...", duplicateSelection: "Duplica", untitled: "Senza titolo", name: "Nome", yourName: "Il vostro nome", madeWithExcalidraw: "Creato con Excalidraw", group: "Crea gruppo da selezione", ungroup: "Dividi gruppo da selezione", collaborators: "Collaboratori", showGrid: "Visualizza griglia", addToLibrary: "Aggiungi alla libreria", removeFromLibrary: "Rimuovi dalla libreria", libraryLoadingMessage: "Caricamento libreria…", libraries: "Sfoglia librerie", loadingScene: "Caricamento della scena…", align: "Allinea", alignTop: "Allinea in alto", alignBottom: "Allinea in basso", alignLeft: "Allinea a sinistra", alignRight: "Allinea a destra", centerVertically: "Centra Verticalmente", centerHorizontally: "Centra orizzontalmente", distributeHorizontally: "Distribuisci orizzontalmente", distributeVertically: "Distribuisci verticalmente", flipHorizontal: "Capovolgi orizzontalmente", flipVertical: "Capovolgi verticalmente", viewMode: "Modalità visualizzazione", share: "Condividi", showStroke: "Mostra selettore colore del tratto", showBackground: "Mostra selettore colore di sfondo", toggleTheme: "Cambia tema", personalLib: "Libreria Personale", excalidrawLib: "Libreria di Excalidraw", decreaseFontSize: "Riduci dimensione dei caratteri", increaseFontSize: "Aumenta la dimensione dei caratteri", unbindText: "Scollega testo", bindText: "Associa il testo al container", createContainerFromText: "Avvolgi il testo in un container", link: { edit: "Modifica link", editEmbed: "Modifica collegamento e incorpora", create: "Crea link", createEmbed: "Crea collegamento e incorpora", label: "Link", labelEmbed: "Collega & incorpora", empty: "Nessun collegamento impostato" }, lineEditor: { edit: "Modifica linea", exit: "Esci dall'editor di linea" }, elementLock: { lock: "Blocca", unlock: "Sblocca", lockAll: "Blocca tutto", unlockAll: "Sblocca tutto" }, statusPublished: "Pubblicato", sidebarLock: "Mantieni aperta la barra laterale", selectAllElementsInFrame: "Seleziona tutti gli elementi nel riquadro", removeAllElementsFromFrame: "Rimuovi tutti gli elementi dal riquadro", eyeDropper: "Scegli il colore della tela", textToDiagram: "Testo a diagramma", prompt: "Prompt" }, i = { noItems: "Nessun elemento ancora aggiunto...", hint_emptyLibrary: "Seleziona un elemento sulla tela per aggiungerlo qui, o installa una libreria dal repository pubblico qui sotto.", hint_emptyPrivateLibrary: "Seleziona un elemento sulla tela per aggiungerlo qui." }, a = { clearReset: "Svuota la tela", exportJSON: "Esporta su file", exportImage: "Esporta immagine...", export: "Salva in...", copyToClipboard: "Copia negli appunti", save: "Salva sul file corrente", saveAs: "Salva con nome", load: "Apri", getShareableLink: "Ottieni link condivisibile", close: "Chiudi", selectLanguage: "Seleziona lingua", scrollBackToContent: "Scorri indietro fino al contenuto", zoomIn: "Aumenta ingrandimento", zoomOut: "Riduci ingrandimento", resetZoom: "Ripristina ingrandimento", menu: "Menù", done: "Fatto", edit: "Modifica", undo: "Annulla", redo: "Ripeti", resetLibrary: "Ripristina libreria", createNewRoom: "Crea nuova stanza", fullScreen: "Schermo intero", darkMode: "Tema scuro", lightMode: "Tema chiaro", zenMode: "Modalità Zen", objectsSnapMode: "Aggancia agli oggetti", exitZenMode: "Uscire dalla modalità zen", cancel: "Annulla", clear: "Cancella", remove: "Rimuovi", embed: "Attiva/disattiva incorporamento", publishLibrary: "Pubblica", submit: "Invia", confirm: "Conferma", embeddableInteractionButton: "Clicca per interagire" }, o = { clearReset: "Questa azione cancellerà l'intera tela. Sei sicuro?", couldNotCreateShareableLink: "Non riesco a creare un link condivisibile.", couldNotCreateShareableLinkTooBig: "Impossibile creare il link condivisibile: la scena è troppo grande", couldNotLoadInvalidFile: "Impossibile caricare un file no valido", importBackendFailed: "Importazione dal server fallita.", cannotExportEmptyCanvas: "Non è possibile esportare una tela vuota.", couldNotCopyToClipboard: "Impossibile copiare negli appunti.", decryptFailed: "Impossibile decriptare i dati.", uploadedSecurly: "L'upload è stato protetto con la crittografia end-to-end, il che significa che il server Excalidraw e terze parti non possono leggere il contenuto.", loadSceneOverridePrompt: "Se carichi questo disegno esterno, sostituirà quello che hai. Vuoi continuare?", collabStopOverridePrompt: `Interrompere la sessione sovrascriverà il precedente disegno memorizzato localmente. Sei sicuro?
|
|
3
|
+
|
|
4
|
+
(Se vuoi mantenere il tuo disegno locale, chiudi semplicemente la scheda del browser.)`, errorAddingToLibrary: "Impossibile aggiungere l'elemento alla libreria", errorRemovingFromLibrary: "Impossibile rimuovere l'elemento dalla libreria", confirmAddLibrary: "Questo aggiungerà {{numShapes}} forma(e) alla tua libreria. Sei sicuro?", imageDoesNotContainScene: "Questa immagine pare non contenere alcuna scena. Avevi incluso la scena durante l'esportazione?", cannotRestoreFromImage: "Impossibile ripristinare la scena da questo file immagine", invalidSceneUrl: "Impossibile importare la scena dall'URL fornito. Potrebbe essere malformato o non contenere dati JSON Excalidraw validi.", resetLibrary: "Questa azione cancellerà l'intera libreria. Sei sicuro?", removeItemsFromsLibrary: "Eliminare {{count}} elementi dalla libreria?", invalidEncryptionKey: "La chiave di cifratura deve essere composta da 22 caratteri. La collaborazione live è disabilitata.", collabOfflineWarning: `Nessuna connessione internet disponibile.
|
|
5
|
+
Le tue modifiche non verranno salvate!` }, r = { unsupportedFileType: "Tipo di file non supportato.", imageInsertError: "Non è stato possibile inserire l'immagine. Riprova più tardi...", fileTooBig: "Il file è troppo grande. La dimensione massima consentita è {{maxSize}}.", svgImageInsertError: "Impossibile inserire l'immagine SVG. Il markup SVG non sembra corretto.", failedToFetchImage: "Impossibile recuperare l'immagine.", invalidSVGString: "SVG non valido.", cannotResolveCollabServer: "Impossibile connettersi al server di collab. Ricarica la pagina e riprova.", importLibraryError: "Impossibile caricare la libreria", collabSaveFailed: "Impossibile salvare nel database di backend. Se i problemi persistono, dovresti salvare il tuo file localmente per assicurarti di non perdere il tuo lavoro.", collabSaveFailed_sizeExceeded: "Impossibile salvare nel database di backend, la tela sembra essere troppo grande. Dovresti salvare il file localmente per assicurarti di non perdere il tuo lavoro.", imageToolNotSupported: "Le immagini sono disabilitate.", brave_measure_text_error: { line1: "Sembra che tu stia utilizzando il browser Brave con l'impostazione <bold>Blocco aggressivo delle impronte digitali</bold> abilitata.", line2: "Ciò potrebbe causare la rottura degli <bold>Elementi di testo</bold> nei tuoi disegni.", line3: "Consigliamo vivamente di disabilitare questa impostazione. Puoi seguire <link>questi passaggi</link> su come farlo.", line4: "Se la disattivazione di questa impostazione non risolve la visualizzazione degli elementi di testo, apri un <issueLink>problema</issueLink> sul nostro GitHub o scrivici su <discordLink>Discord</discordLink>" }, libraryElementTypeError: { embeddable: "Gli elementi incorporabili non possono essere aggiunti alla libreria.", iframe: "Gli elementi IFrame non possono essere aggiunti alla libreria.", image: "Il supporto per l'aggiunta d'immagini alla libreria verrà aggiunto a breve!" }, asyncPasteFailedOnRead: "Impossibile incollare (non è possibile leggere dagli appunti di sistema).", asyncPasteFailedOnParse: "Impossibile incollare.", copyToSystemClipboardFailed: "Impossibile copiare negli appunti." }, t = { selection: "Selezione", image: "Inserisci immagine", rectangle: "Rettangolo", diamond: "Rombo", ellipse: "Ellisse", arrow: "Freccia", line: "Linea", freedraw: "Disegno", text: "Testo", library: "Libreria", lock: "Mantieni lo strumento selezionato attivo dopo aver disegnato", penMode: "Modalità penna - previene il tocco", link: "Aggiungi/ aggiorna il link per una forma selezionata", eraser: "Gomma", frame: "Strumento riquadro", magicframe: "", embeddable: "Incorporamento Web", laser: "Puntatore laser", hand: "Mano (strumento di panoramica)", extraTools: "Altri strumenti", mermaidToExcalidraw: "", magicSettings: "Impostazioni di IA" }, l = { canvasActions: "Azioni sulla Tela", selectedShapeActions: "Impostazioni della forma selezionata", shapes: "Forme" }, n = { canvasPanning: "Per spostare la tela, tieni premuta la rotellina del mouse o la barra spaziatrice mentre trascini oppure usa lo strumento mano", linearElement: "Clicca per iniziare una linea in più punti, trascina per singola linea", freeDraw: "Clicca e trascina, rilascia quando avrai finito", text: "Suggerimento: puoi anche aggiungere del testo facendo doppio clic ovunque con lo strumento di selezione", embeddable: "Fare click e trascina per creare un incorporamento web", text_selected: "Fai doppio click o premi INVIO per modificare il testo", text_editing: "Premi ESC o CtrlOCmd+INVIO per completare le modifiche", linearElementMulti: "Clicca sull'ultimo punto o premi Esc o Invio per finire", lockAngle: "Puoi limitare l'angolo tenendo premuto SHIFT", resize: `Per vincolare le proporzioni, tieni premuto MAIUSC durante il ridimensionamento;
|
|
6
|
+
per ridimensionare dal centro, tieni premuto ALT`, resizeImage: `Puoi ridimensionare liberamente tenendo premuto SHIFT,
|
|
7
|
+
tieni premuto ALT per ridimensionare dal centro`, rotate: "Puoi mantenere gli angoli tenendo premuto SHIFT durante la rotazione", lineEditor_info: "Tieni premuto Ctrl o Cmd e doppio clic oppure premi Ctrl o Cmd + Invio per modificare i punti", lineEditor_pointSelected: `Premi Elimina per rimuovere il punto(i),
|
|
8
|
+
CtrlOCmd+D per duplicare o trascinare per spostare`, lineEditor_nothingSelected: `Seleziona un punto da modificare (tieni premuto MAIUSC per selezionare più punti),
|
|
9
|
+
oppure tieni premuto Alt e fai clic per aggiungere nuovi punti`, placeImage: "Fai click per posizionare l'immagine, o click e trascina per impostarne la dimensione manualmente", publishLibrary: "Pubblica la tua libreria", bindTextToElement: "Premi invio per aggiungere il testo", deepBoxSelect: "Tieni premuto CtrlOCmd per selezionare in profondità e per impedire il trascinamento", eraserRevert: "Tieni premuto Alt per ripristinare gli elementi contrassegnati per l'eliminazione", firefox_clipboard_write: 'Questa funzione può essere abilitata impostando il flag "dom.events.asyncClipboard.clipboardItem" su "true". Per modificare i flag del browser in Firefox, visitare la pagina "about:config".', disableSnapping: "Tieni premuto Ctrl o Cmd per disabilitare lo snap" }, s = { cannotShowPreview: "Impossibile visualizzare l'anteprima", canvasTooBig: "La tela potrebbe essere troppo grande.", canvasTooBigTip: "Suggerimento: prova a spostare gli elementi più lontani più vicini tra loro." }, c = { headingMain: "Si è verificato un errore. Provare <button>ricaricando la pagina.</button>", clearCanvasMessage: "Se ricaricare non funziona, prova <button>pulire la tela.</button>", clearCanvasCaveat: " Questo risulterà nella perdita del lavoro ", trackedToSentry: "L'errore con identificativo {{eventId}} è stato tracciato nel nostro sistema.", openIssueMessage: "Siamo stati molto cauti nel non includere informazioni della scena nell'errore. Se la tua scena non è privata, ti preghiamo di considerare la sua inclusione nel nostro <button>bug tracker.</button> Per favore includi le informazioni riportate qui sotto copiandole e incollandole nella issue di GitHub.", sceneContent: "Contenuto della scena:" }, d = { desc_intro: "Puoi invitare persone nella tua scena attuale per collaborare con te.", desc_privacy: "Non preoccuparti, la sessione utilizza la crittografia end-to-end, quindi qualsiasi cosa disegni rimarrà privata. Nemmeno il nostro server sarà in grado di vedere cosa hai creato.", button_startSession: "Avvia sessione", button_stopSession: "Termina sessione", desc_inProgressIntro: "La sessione di collaborazione è attualmente in corso.", desc_shareLink: "Condividi questo link con chiunque desideri collaborare:", desc_exitSession: "Interrompere la sessione scollegherà la tua stanza ma potrai continuare a lavorare con la scena, localmente. Tieni presente che questo non influirà sulle altre persone, e che saranno ancora in grado di collaborare alla loro versione.", shareTitle: "Partecipa a una sessione di collaborazione live su Excalidraw" }, p = { title: "Errore" }, u = { disk_title: "Salva su disco", disk_details: "Esporta i dati della scena su file, dal quale potrai importare in seguito.", disk_button: "Salva su file", link_title: "Link condivisibile", link_details: "Esporta come link di sola lettura.", link_button: "Esporta come Link", excalidrawplus_description: "Salva la scena nel tuo spazio di lavoro Excalidraw+.", excalidrawplus_button: "Esporta", excalidrawplus_exportError: "Non è stato possibile esportare su Excalidraw+ al questo momento..." }, m = { blog: "Leggi il nostro blog", click: "click", deepSelect: "Selezione profonda", deepBoxSelect: "Seleziona in profondità all'interno della casella e previene il trascinamento", curvedArrow: "Freccia curva", curvedLine: "Linea curva", documentation: "Documentazione", doubleClick: "doppio-click", drag: "trascina", editor: "Editor", editLineArrowPoints: "Modifica punti linea/freccia", editText: "Modifica testo / aggiungi etichetta", github: "Trovato un problema? Segnalalo", howto: "Segui le nostre guide", or: "oppure", preventBinding: "Impedisci legame della freccia", tools: "Stumenti", shortcuts: "Scorciatoie da tastiera", textFinish: "Completa la modifica (editor di testo)", textNewLine: "Aggiungi nuova riga (editor di testo)", title: "Guida", view: "Vista", zoomToFit: "Adatta zoom per mostrare tutti gli elementi", zoomToSelection: "Zoom alla selezione", toggleElementLock: "Blocca/sblocca selezione", movePageUpDown: "Sposta la pagina su/giù", movePageLeftRight: "Sposta la pagina a sinistra/destra" }, g = { title: "Svuota la tela" }, b = { title: "Pubblica la libreria", itemName: "Nome dell'elemento", authorName: "Nome dell'autore", githubUsername: "Nome utente di GitHub", twitterUsername: "Nome utente di Twitter", libraryName: "Nome della libreria", libraryDesc: "Descrizione della libreria", website: "Sito Web", placeholder: { authorName: "Il tuo nome o nome utente", libraryName: "Nome della tua libreria", libraryDesc: "Descrizione della tua libreria per aiutare le persone a comprenderne lo scopo", githubHandle: "Handle di GitHub (opzionale), così che tu possa modificare la libreria una volta inviata per la revisione", twitterHandle: "Nome utente di Twitter (opzionale), così che sappiamo chi accreditare promuovendo su Twitter", website: "Link al tuo sito web personale o altro (opzionale)" }, errors: { required: "Obbligatorio", website: "Inserisci un URL valido" }, noteDescription: "Invia la tua libreria da includere nella <link>repository della libreria pubblica</link>perché sia usata da altri nei loro disegni.", noteGuidelines: "La libreria dev'esser prima approvata manualmente. Sei pregato di leggere le <link>linee guida</link> prima di inviarla. Necessiterai di un profilo di GitHub per comunicare ed effettuare modifiche se richiesto, ma non è strettamente necessario.", noteLicense: "Inviando, acconsenti che la libreria sarà pubblicata sotto la <link>Licenza MIT, </link>che in breve significa che chiunque possa usarla senza restrizioni.", noteItems: "Ogni elemento della libreria deve avere il proprio nome, così che sia filtrabile. Gli elementi della seguente libreria saranno inclusi:", atleastOneLibItem: "Sei pregato di selezionare almeno un elemento della libreria per iniziare", republishWarning: "Nota: alcuni degli elementi selezionati sono contrassegnati come già pubblicati/presentati. È necessario reinviare gli elementi solo quando si aggiorna una libreria o una presentazione esistente." }, v = { title: "Libreria inviata", content: "Grazie {{authorName}}. La tua libreria è stata inviata per la revisione. Puoi monitorarne lo stato<link>qui</link>" }, S = { resetLibrary: "Ripristina la libreria", removeItemsFromLib: "Rimuovi gli elementi selezionati dalla libreria" }, h = { header: "Esporta immagine", label: { withBackground: "Sfondo", onlySelected: "Solo selezionato", darkMode: "Tema scuro", embedScene: "Includi scena", scale: "Scala", padding: "Rientro" }, tooltip: { embedScene: `I dati della scena saranno salvati nel file PNG/SVG esportato in modo che la scena possa essere ripristinata da esso.
|
|
10
|
+
Questo aumenterà la dimensione del file esportato.` }, title: { exportToPng: "Esporta come PNG", exportToSvg: "Esporta come SVG", copyPngToClipboard: "Copia PNG negli appunti" }, button: { exportToPng: "PNG", exportToSvg: "SVG", copyPngToClipboard: "Copia negli appunti" } }, z = { tooltip: "I tuoi disegni sono crittografati end-to-end in modo che i server di Excalidraw non li possano mai vedere.", link: "Articolo del blog sulla crittografia end-to-end di Excalidraw" }, x = { angle: "Angolo", element: "Elemento", elements: "Elementi", height: "Altezza", scene: "Scena", selected: "Selezionato", storage: "Memoria", title: "Statistiche per nerd", total: "Totale", version: "Versione", versionCopy: "Clicca per copiare", versionNotAvailable: "Versione non disponibile", width: "Larghezza" }, f = { addedToLibrary: "Aggiunto alla libreria", copyStyles: "Stili copiati.", copyToClipboard: "Copiato negli appunti.", copyToClipboardAsPng: `{{exportSelection}} copiato negli appunti come PNG
|
|
11
|
+
({{exportColorScheme}})`, fileSaved: "File salvato.", fileSavedToFilename: "Salvato in {filename}", canvas: "tela", selection: "selezione", pasteAsSingleElement: `Usa {{shortcut}} per incollare come un singolo elemento,
|
|
12
|
+
o incollare in un editor di testo esistente`, unableToEmbed: "Incorporare questo url non è permesso. Crea una issue su GitHub per richiedere che l'url sia autorizzato", unrecognizedLinkFormat: "Il link che hai incorporato non corrisponde al formato previsto. Prova a incollare la stringa 'embed' fornita dal sito di origine" }, E = { transparent: "Trasparente", black: "Nero", white: "Bianco", red: "Rosso", pink: "Rosa", grape: "Uva", violet: "Viola", gray: "Grigio", blue: "Blu", cyan: "Ciano", teal: "Verde acqua", green: "Verde", yellow: "Giallo", orange: "Arancio", bronze: "Bronzo" }, C = { app: { center_heading: "Tutti i tuoi dati sono salvati localmente nel browser.", center_heading_plus: "Volevi invece andare su Excalidraw+?", menuHint: "Esporta, preferenze, lingue, ..." }, defaults: { menuHint: "Esporta, preferenze, e altro...", center_heading: "Diagrammi. Fatto. Semplice.", toolbarHint: "Scegli uno strumento & Inizia a disegnare!", helpHint: "Scorciatoie & aiuto" } }, k = { mostUsedCustomColors: "Colori personalizzati più utilizzati", colors: "Colori", shades: "Sfumature", hexCode: "Codice esadecimale", noShades: "Nessuna sfumatura disponibile per questo colore" }, I = { action: { exportToImage: { title: "Esporta come immagine", button: "Esporta come immagine", description: "Esporta i dati della scena come immagine, che potrai importare in seguito." }, saveToDisk: { title: "Salva su disco", button: "Salva su disco", description: "Esporta i dati della scena su file, che potrai importare in seguito." }, excalidrawPlus: { title: "Excalidraw+", button: "Esporta su Excalidraw+", description: "Salva la scena sul tuo spazio di lavoro Excalidraw+." } }, modal: { loadFromFile: { title: "Carica da file", button: "Carica da file", description: "Il caricamento da file sostituirà <bold>il contenuto esistente</bold>.<br></br>Puoi salvare il tuo disegno prima usando una delle opzioni qui sotto." }, shareableLink: { title: "Carica da link", button: "Sostituisci il mio contenuto", description: "Il caricamento da file sostituirà <bold>il contenuto esistente</bold>.<br></br>Puoi salvare il tuo disegno prima usando una delle opzioni qui sotto." } } }, y = { title: "", button: "Inserisci", description: "", syntax: "", preview: "Anteprima" }, w = { labels: e, library: i, buttons: a, alerts: o, errors: r, toolBar: t, headings: l, hints: n, canvasError: s, errorSplash: c, roomDialog: d, errorDialog: p, exportDialog: u, helpDialog: m, clearCanvasDialog: g, publishDialog: b, publishSuccessDialog: v, confirmDialog: S, imageExportDialog: h, encrypted: z, stats: x, toast: f, colors: E, welcomeScreen: C, colorPicker: k, overwriteConfirm: I, mermaid: y };
|
|
13
|
+
export {
|
|
14
|
+
o as alerts,
|
|
15
|
+
a as buttons,
|
|
16
|
+
s as canvasError,
|
|
17
|
+
g as clearCanvasDialog,
|
|
18
|
+
k as colorPicker,
|
|
19
|
+
E as colors,
|
|
20
|
+
S as confirmDialog,
|
|
21
|
+
w as default,
|
|
22
|
+
z as encrypted,
|
|
23
|
+
p as errorDialog,
|
|
24
|
+
c as errorSplash,
|
|
25
|
+
r as errors,
|
|
26
|
+
u as exportDialog,
|
|
27
|
+
l as headings,
|
|
28
|
+
m as helpDialog,
|
|
29
|
+
n as hints,
|
|
30
|
+
h as imageExportDialog,
|
|
31
|
+
e as labels,
|
|
32
|
+
i as library,
|
|
33
|
+
y as mermaid,
|
|
34
|
+
I as overwriteConfirm,
|
|
35
|
+
b as publishDialog,
|
|
36
|
+
v as publishSuccessDialog,
|
|
37
|
+
d as roomDialog,
|
|
38
|
+
x as stats,
|
|
39
|
+
f as toast,
|
|
40
|
+
t as toolBar,
|
|
41
|
+
C as welcomeScreen
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const a=require("./layers.Cy_jbtrS.js"),c=require("./layers.DD4QPdYS.js"),o=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},l=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};o(s,e).lower()},d=(s,t)=>{const e=t.text.replace(c.lineBreakRegex," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},x=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",i)},g=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",`#${i}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),y=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});exports.drawBackgroundRect=l;exports.drawEmbeddedImage=g;exports.drawImage=x;exports.drawRect=o;exports.drawText=d;exports.getNoteRect=h;exports.getTextObj=y;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.Cy_jbtrS.js");var e={paste:"Pegar",pasteAsPlaintext:"Pegar coma texto sen formato",pasteCharts:"Pegar gráficos",selectAll:"Seleccionar todo",multiSelect:"Engadir elemento á selección",moveCanvas:"Mover o lenzo",cut:"Cortar",copy:"Copiar",copyAsPng:"Copiar no portapapeis como PNG",copyAsSvg:"Copiar no portapapeis como SVG",copyText:"Copia no portapapeis como texto",copySource:"",convertToCode:"",bringForward:"Traer cara adiante",sendToBack:"Enviar cara atrás",bringToFront:"Traer á fronte",sendBackward:"Enviar ao fondo",delete:"Borrar",copyStyles:"Copiar estilo",pasteStyles:"Pegar estilo",stroke:"Trazo",background:"Fondo",fill:"Recheo",strokeWidth:"Largo do trazo",strokeStyle:"Estilo do trazo",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Liña de trazos",strokeStyle_dotted:"Liña de puntos",sloppiness:"Estilo de trazo",opacity:"Opacidade",textAlign:"Aliñar texto",edges:"Bordos",sharp:"Agudo",round:"Redondo",arrowheads:"Puntas de frecha",arrowhead_none:"Ningunha",arrowhead_arrow:"Frecha",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triángulo",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tamaño da fonte",fontFamily:"Tipo de fonte",addWatermark:'Engadir "Feito con Excalidraw"',handDrawn:"Debuxado a man",normal:"Normal",code:"Código",small:"Pequeno",medium:"Mediano",large:"Grande",veryLarge:"Moi grande",solid:"Sólido",hachure:"Folleto",zigzag:"Zigzag",crossHatch:"Raiado transversal",thin:"Estreito",bold:"Groso",left:"Esquerda",center:"Centrado",right:"Dereita",extraBold:"Moi groso",architect:"Arquitecto",artist:"Artista",cartoonist:"Caricatura",fileTitle:"Nome do arquivo",colorPicker:"Selector de cor",canvasColors:"Usado en lenzo",canvasBackground:"Fondo do lenzo",drawingCanvas:"Lenzo de debuxo",layers:"Capas",actions:"Accións",language:"Idioma",liveCollaboration:"Colaboración en directo...",duplicateSelection:"Duplicar",untitled:"Sen título",name:"Nome",yourName:"O teu nome",madeWithExcalidraw:"Feito con Excalidraw",group:"Agrupar selección",ungroup:"Desagrupar selección",collaborators:"Colaboradores",showGrid:"Mostrar cuadrícula",addToLibrary:"Engadir á biblioteca",removeFromLibrary:"Eliminar da biblioteca",libraryLoadingMessage:"Cargando biblioteca…",libraries:"Explorar bibliotecas",loadingScene:"Cargando escena…",align:"Aliñamento",alignTop:"Aliñamento superior",alignBottom:"Aliñamento inferior",alignLeft:"Aliñar a esquerda",alignRight:"Aliñar a dereita",centerVertically:"Centrar verticalmente",centerHorizontally:"Centrar horizontalmente",distributeHorizontally:"Distribuír horizontalmente",distributeVertically:"Distribuír verticalmente",flipHorizontal:"Virar horizontalmente",flipVertical:"Virar verticalmente",viewMode:"Modo de visualización",share:"Compartir",showStroke:"Mostrar selector de cores do trazo",showBackground:"Mostrar selector de cores do fondo",toggleTheme:"Alternar tema",personalLib:"Biblioteca Persoal",excalidrawLib:"Biblioteca Excalidraw",decreaseFontSize:"Diminuír tamaño da fonte",increaseFontSize:"Aumentar o tamaño da fonte",unbindText:"Desvincular texto",bindText:"Ligar o texto ao contedor",createContainerFromText:"Envolver o texto nun contedor",link:{edit:"Editar ligazón",editEmbed:"",create:"Crear ligazón",createEmbed:"",label:"Ligazón",labelEmbed:"",empty:""},lineEditor:{edit:"Editar liña",exit:"Saír do editor de liñas"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear todo",unlockAll:"Desbloquear todo"},statusPublished:"Publicado",sidebarLock:"Manter a barra lateral aberta",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Aínda non hai elementos engadidos...",hint_emptyLibrary:"Seleccione un elemento no lenzo para engadilo aquí, ou instale unha biblioteca dende o repositorio público, como se detalla a continuación.",hint_emptyPrivateLibrary:"Seleccione un elemento do lenzo para engadilo aquí."},o={clearReset:"Limpar o lenzo",exportJSON:"Exportar a arquivo",exportImage:"Exportar imaxe...",export:"Gardar en...",copyToClipboard:"Copiar ao portapapeis",save:"Gardar no ficheiro actual",saveAs:"Gardar como",load:"Abrir",getShareableLink:"Obter unha ligazón que se poida compartir",close:"Pechar",selectLanguage:"Seleccionar idioma",scrollBackToContent:"Volver ao contido",zoomIn:"Ampliar",zoomOut:"Reducir",resetZoom:"Reiniciar zoom",menu:"Menú",done:"Feito",edit:"Editar",undo:"Desfacer",redo:"Refacer",resetLibrary:"Reiniciar biblioteca",createNewRoom:"Crear nova sala",fullScreen:"Pantalla completa",darkMode:"Modo escuro",lightMode:"Modo claro",zenMode:"Modo zen",objectsSnapMode:"",exitZenMode:"Saír do modo zen",cancel:"Cancelar",clear:"Limpar",remove:"Eliminar",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:"Faga clic para interactuar"},r={clearReset:"Isto limpará todo o lenzo. Estás seguro?",couldNotCreateShareableLink:"Non se puido crear unha ligazón para compartir.",couldNotCreateShareableLinkTooBig:"Non se puido crear a ligazón para compartir: a escena é demasiado grande",couldNotLoadInvalidFile:"Non se puido cargar o ficheiro non válido",importBackendFailed:"A importación dende o backend fallou.",cannotExportEmptyCanvas:"Non se pode exportar un lenzo baleiro.",couldNotCopyToClipboard:"Non se puido copiar ao portapapeis.",decryptFailed:"Non se poideron descifrar os datos.",uploadedSecurly:"A carga foi asegurada con cifrado de extremo a extremo, o que significa que o servidor de Excalidraw e terceiros non poden ler o contido.",loadSceneOverridePrompt:"A carga dun debuxo externo substituirá o contido existente. Desexa continuar?",collabStopOverridePrompt:`Deter a sesión, sobrescribirá o seu debuxo local previamente almacenado. Está seguro?
|
|
2
|
+
|
|
3
|
+
(Se quere manter o seu debuxo local, simplemente peche a lapela do navegador.)`,errorAddingToLibrary:"Non se puido engadir o elemento á biblioteca",errorRemovingFromLibrary:"Non se puido eliminar o elemento da biblioteca",confirmAddLibrary:"Isto engadirá {{numShapes}} forma(s) a túa biblioteca. Estás seguro?",imageDoesNotContainScene:"Esta imaxe non parece conter ningún dato da escena. Activou a inserción de escenas durante a exportación?",cannotRestoreFromImage:"Non se puido restaurar a escena dende este arquivo de imaxe",invalidSceneUrl:"Non se puido importar a escena dende a URL proporcionada. Ou ben está malformada ou non contén un JSON con información válida para Excalidraw.",resetLibrary:"Isto limpará a súa biblioteca. Está seguro?",removeItemsFromsLibrary:"Eliminar {{count}} elemento(s) da biblioteca?",invalidEncryptionKey:"A clave de cifrado debe ter 22 caracteres. A colaboración en directo está desactivada.",collabOfflineWarning:`Non hai conexión a Internet dispoñible.
|
|
4
|
+
Os teus cambios non serán gardados!`},i={unsupportedFileType:"Tipo de ficheiro non soportado.",imageInsertError:"Non se puido inserir a imaxe. Probe de novo máis tarde...",fileTooBig:"O ficheiro é demasiado grande. O tamaño máximo permitido é {{maxSize}}.",svgImageInsertError:"Non se puido inserir como imaxe SVG. O marcado SVG semella inválido.",failedToFetchImage:"",invalidSVGString:"SVG inválido.",cannotResolveCollabServer:"Non se puido conectar ao servidor de colaboración. Por favor recargue a páxina e probe de novo.",importLibraryError:"Non se puido cargar a biblioteca",collabSaveFailed:"Non se puido gardar na base de datos. Se o problema persiste, deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.",collabSaveFailed_sizeExceeded:"Non se puido gardar na base de datos, o lenzo semella demasiado grande. Deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},n={selection:"Selección",image:"Inserir imaxe",rectangle:"Rectángulo",diamond:"Diamante",ellipse:"Elipse",arrow:"Frecha",line:"Liña",freedraw:"Debuxar",text:"Texto",library:"Biblioteca",lock:"Manter a ferramenta seleccionada activa despois de debuxar",penMode:"Modo lapis - evitar o contacto",link:"Engadir/ Actualizar ligazón para a forma seleccionada",eraser:"Goma de borrar",frame:"",magicframe:"",embeddable:"Inserir na web",laser:"Punteiro láser",hand:"Man (ferramenta de desprazamento)",extraTools:"Máis ferramentas",mermaidToExcalidraw:"",magicSettings:""},t={canvasActions:"Accións do lenzo",selectedShapeActions:"Accións da forma seleccionada",shapes:"Formas"},s={canvasPanning:"Para mover o lenzo, manteña pulsada a roda do rato ou a barra de espazo mentres arrastra, ou utilice a ferramenta da man",linearElement:"Faga clic para iniciar varios puntos, arrastre para unha sola liña",freeDraw:"Fai clic e arrastra, solta cando acabes",text:"Consello: tamén podes engadir texto facendo dobre-clic en calquera lugar coa ferramenta de selección",embeddable:"Faga clic e arrastre para crear un sitio web embebido",text_selected:"Dobre-clic ou prema ENTER para editar o texto",text_editing:"Prema Escape ou CtrlOrCmd+ENTER para finalizar a edición",linearElementMulti:"Faga clic no último punto ou prema Escape ou Enter para rematar",lockAngle:"Pode reducir o ángulo mantendo SHIFT",resize:`Pode reducir as proporcións mantendo SHIFT mentres axusta o tamaño,
|
|
5
|
+
manteña ALT para axustalo dende o centro`,resizeImage:`Pode axustar o tamaño libremente mantendo SHIFT,
|
|
6
|
+
manteña ALT para axustalo dende o centro`,rotate:"Podes reducir os ángulos mantendo SHIFT mentres os rotas",lineEditor_info:"Manteña pulsado CtrlOrCmd e faga dobre clic ou prema CtrlOrCmd + Enter para editar puntos",lineEditor_pointSelected:`Prema Suprimir para eliminar o(s) punto(s)
|
|
7
|
+
CtrlOrCmd+D para duplicalos, ou arrastre para movelos`,lineEditor_nothingSelected:`Seleccione un punto para editar (manteña pulsado SHIFT para selección múltiple),
|
|
8
|
+
ou manteña pulsado Alt e faga clic para engadir novos puntos`,placeImage:"Faga clic para colocar a imaxe, ou faga clic e arrastre para establecer o seu tamaño manualmente",publishLibrary:"Publica a túa propia biblioteca",bindTextToElement:"Prema a tecla enter para engadir texto",deepBoxSelect:"Manteña pulsado CtrlOrCmd para seleccionar en profundidade e evitar o arrastre",eraserRevert:"Manteña pulsado Alt para reverter os elementos marcados para a súa eliminación",firefox_clipboard_write:'Esta función pódese activar establecendo a opción "dom.events.asyncClipboard.clipboardItem" a "true". Para cambiar as opcións do navegador en Firefox, visita a páxina "about:config".',disableSnapping:""},l={cannotShowPreview:"Non se pode mostrar a vista previa",canvasTooBig:"Pode que o lenzo sexa demasiado grande.",canvasTooBigTip:"Consello: Probe a acercar un pouco os elementos máis afastados."},d={headingMain:"Atopouse un erro. Probe <button>recargando a páxina.</button>",clearCanvasMessage:"Se recargar non funcionou, probe <button>limpando o lenzo.</button>",clearCanvasCaveat:" Isto resultará nunha perda do seu traballo ",trackedToSentry:"O erro con identificador {{eventId}} foi rastrexado no noso sistema.",openIssueMessage:"Fomos moi cautelosos de non incluír a información da súa escena no erro. Se a súa escena non é privada, por favor, considere o seguimento do noso <button>rastrexador de erros.</button> Por favor inclúa a seguinte información copiándoa e pegándoa na issue de Github.",sceneContent:"Contido da escena:"},c={desc_intro:"Podes invitar xente a colaborar contigo na túa escena actual.",desc_privacy:"Non te preocupes, a sesión usa cifrado de punto a punto, polo que calquera cousa que debuxes mantense privada. Nin tan sequera o noso servidor será capaz de ver o que fas.",button_startSession:"Comezar sesión",button_stopSession:"Rematar sesión",desc_inProgressIntro:"A sesión de colaboración en directo está agora en progreso.",desc_shareLink:"Comparte esta ligazón con calquera que queiras colaborar:",desc_exitSession:"Deter a sesión desconectarao da sala, pero poderá seguir traballando coa escena de maneira local. Teña en conta que isto non afectará a outras persoas, que poderán seguir colaborando na súa versión.",shareTitle:"Únase a unha sesión de colaboración en directo en Excalidraw"},u={title:"Erro"},p={disk_title:"Gardar no disco",disk_details:"Exporte os datos da escena a un ficheiro que poderás importar máis tarde.",disk_button:"Gardar nun ficheiro",link_title:"Ligazón para compartir",link_details:"Exportar como unha ligazón de só lectura.",link_button:"Exportar a unha ligazón",excalidrawplus_description:"Garde a escena no seu espazo de traballo en Excalidraw+.",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"Non se puido exportar a Excalidraw+ neste momento..."},x={blog:"Le o noso blog",click:"clic",deepSelect:"Selección en profundidade",deepBoxSelect:"Selección en profundidade dentro da caixa, evitando o arrastre",curvedArrow:"Frecha curva",curvedLine:"Liña curva",documentation:"Documentación",doubleClick:"dobre-clic",drag:"arrastrar",editor:"Editor",editLineArrowPoints:"",editText:"",github:"Encontrou un problema? Envíeo",howto:"Sigue as nosas normas",or:"ou",preventBinding:"Evitar a unión de frechas",tools:"Ferramentas",shortcuts:"Atallos de teclado",textFinish:"Rematar de editar (editor de texto)",textNewLine:"Engadir unha nova liña (editor de texto)",title:"Axuda",view:"Vista",zoomToFit:"Zoom que se axuste a todos os elementos",zoomToSelection:"Zoom á selección",toggleElementLock:"Bloquear/desbloquear selección",movePageUpDown:"Mover páxina cara enriba/abaixo",movePageLeftRight:"Mover páxina cara a esquerda/dereita"},m={title:"Limpar lenzo"},b={title:"Publicar biblioteca",itemName:"Nome do elemento",authorName:"Nome do autor",githubUsername:"Nome de usuario en Github",twitterUsername:"Nome de usuario en Twitter",libraryName:"Nome da biblioteca",libraryDesc:"Descrición da biblioteca",website:"Páxina web",placeholder:{authorName:"O seu nome ou nome de usuario",libraryName:"Nome da súa biblioteca",libraryDesc:"Descrición da súa biblioteca para axudar a xente a entender o seu uso",githubHandle:"Nome de usuario de GitHub (opcional), así poderás editar a biblioteca unha vez enviada para a súa revisión",twitterHandle:"Nome de usuario en Twitter(opcional), así sabemos a quen darlle crédito cando se lle de promoción a través de Twitter",website:"Ligazón ao teu sitio web persoal ou a outro sitio (opcional)"},errors:{required:"Obrigatorio",website:"Introduza unha URL válida"},noteDescription:"Envíe a súa biblioteca para que sexa incluída no <link>repositorio público de bibliotecas</link>para que outra xente a poida usar nos seus debuxos.",noteGuidelines:"A biblioteca necesita ser aprobada manualmente primeiro. Por favor, lea as <link>normas</link> antes de ser enviado. Necesitarás unha conta de GitHub para comunicarte ou facer cambios se se solicitan, pero non é estritamente necesario.",noteLicense:"Ao enviar, estás de acordo con que a biblioteca sexa publicada baixo a <link>Licenza MIT, </link>o cal significa que, en resumo, calquera pode usalo sen restricións.",noteItems:"Cada elemento da biblioteca debe ter o seu nome propio para que se poida filtrar. Os seguintes elementos da biblioteca serán incluídos:",atleastOneLibItem:"Por favor seleccione polo menos un elemento da biblioteca para comezar",republishWarning:"Nota: algúns dos elementos seleccionados están marcados como xa publicados/enviados. Só deberías reenviar elementos cando se actualice unha biblioteca ou envío."},g={title:"Biblioteca enviada",content:"Grazas {{authorName}}. A súa biblioteca foi enviada para ser revisada. Pode seguir o estado<link>aquí</link>"},E={resetLibrary:"Restablecer biblioteca",removeItemsFromLib:"Eliminar os elementos seleccionados da biblioteca"},F={header:"Exportar imaxe",label:{withBackground:"Fondo",onlySelected:"",darkMode:"Modo escuro",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"Exportar a PNG",exportToSvg:"Exportar a SVG",copyPngToClipboard:"Copiar PNG ao portapapeis"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiar ao portapapeis"}},v={tooltip:"Os teus debuxos están cifrados de punto a punto, polo que os servidores de Excalidraw nunca os verán.",link:"Entrada do blog acerca do cifrado de punto a punto en Excalidraw"},h={angle:"Ángulo",element:"Elemento",elements:"Elementos",height:"Alto",scene:"Escena",selected:"Seleccionado",storage:"Almacenamento",title:"Estadísticas para nerds",total:"Total",version:"Versión",versionCopy:"Faga clic para copiar",versionNotAvailable:"Versión non dispoñible",width:"Ancho"},f={addedToLibrary:"Engadido á biblioteca",copyStyles:"Estilos copiados.",copyToClipboard:"Copiado ao portapapeis.",copyToClipboardAsPng:`Copiar {{exportSelection}} ao portapapeis como PNG
|
|
9
|
+
({{exportColorScheme}})`,fileSaved:"Ficheiro gardado.",fileSavedToFilename:"Gardado en {filename}",canvas:"lenzo",selection:"selección",pasteAsSingleElement:`Usa {{shortcut}} para pegar como un único elemento
|
|
10
|
+
ou pega nun editor de texto existente`,unableToEmbed:"",unrecognizedLinkFormat:""},S={transparent:"Transparente",black:"Negro",white:"Branco",red:"Vermello",pink:"Rosa",grape:"Uva",violet:"Violeta",gray:"Gris",blue:"Azul",cyan:"",teal:"",green:"Verde",yellow:"Marelo",orange:"Laranxa",bronze:"Bronce"},A={app:{center_heading:"Toda a información é gardada de maneira local no seu navegador.",center_heading_plus:"Queres ir a Excalidraw+ no seu lugar?",menuHint:"Exportar, preferencias, idiomas, ..."},defaults:{menuHint:"Exportar, preferencias, e máis...",center_heading:"Diagramas. Feito. Sinxelo.",toolbarHint:"Escolle unha ferramenta & Comeza a debuxar!",helpHint:"Atallos & axuda"}},C={mostUsedCustomColors:"",colors:"Cores",shades:"",hexCode:"",noShades:""},y={action:{exportToImage:{title:"Exportar como imaxe",button:"Exportar como imaxe",description:""},saveToDisk:{title:"Gardar no disco",button:"Gardar no disco",description:""},excalidrawPlus:{title:"Excalidraw+",button:"Exportar a Excalidraw+",description:""}},modal:{loadFromFile:{title:"Cargar dende arquivo",button:"Cargar dende arquivo",description:""},shareableLink:{title:"Cargar dende un enlace",button:"Substituír o meu contido",description:""}}},z={title:"",button:"",description:"",syntax:"",preview:""},D={labels:e,library:a,buttons:o,alerts:r,errors:i,toolBar:n,headings:t,hints:s,canvasError:l,errorSplash:d,roomDialog:c,errorDialog:u,exportDialog:p,helpDialog:x,clearCanvasDialog:m,publishDialog:b,publishSuccessDialog:g,confirmDialog:E,imageExportDialog:F,encrypted:v,stats:h,toast:f,colors:S,welcomeScreen:A,colorPicker:C,overwriteConfirm:y,mermaid:z};exports.alerts=r;exports.buttons=o;exports.canvasError=l;exports.clearCanvasDialog=m;exports.colorPicker=C;exports.colors=S;exports.confirmDialog=E;exports.default=D;exports.encrypted=v;exports.errorDialog=u;exports.errorSplash=d;exports.errors=i;exports.exportDialog=p;exports.headings=t;exports.helpDialog=x;exports.hints=s;exports.imageExportDialog=F;exports.labels=e;exports.library=a;exports.mermaid=z;exports.overwriteConfirm=y;exports.publishDialog=b;exports.publishSuccessDialog=g;exports.roomDialog=c;exports.stats=h;exports.toast=f;exports.toolBar=n;exports.welcomeScreen=A;
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import * as v from "lodash-es";
|
|
2
|
+
import { l as M } from "./layers.D4T8fTcj.js";
|
|
3
|
+
import { G as U } from "./layers.BJDrjORS.js";
|
|
4
|
+
import { i as A, u as H, s as V, c as _, b as W, g as D, d as O, a as q, p as z, e as p, f as $, h as K, j as Q } from "./layers.DKnEcoKx.js";
|
|
5
|
+
import { l as s, g as T, t as S, d as J } from "./layers.BngaRys_.js";
|
|
6
|
+
import { c as Y } from "./layers.DCkmUFPh.js";
|
|
7
|
+
function m(e) {
|
|
8
|
+
var t = {
|
|
9
|
+
options: {
|
|
10
|
+
directed: e.isDirected(),
|
|
11
|
+
multigraph: e.isMultigraph(),
|
|
12
|
+
compound: e.isCompound()
|
|
13
|
+
},
|
|
14
|
+
nodes: Z(e),
|
|
15
|
+
edges: I(e)
|
|
16
|
+
};
|
|
17
|
+
return v.isUndefined(e.graph()) || (t.value = v.clone(e.graph())), t;
|
|
18
|
+
}
|
|
19
|
+
function Z(e) {
|
|
20
|
+
return v.map(e.nodes(), function(t) {
|
|
21
|
+
var n = e.node(t), r = e.parent(t), i = { v: t };
|
|
22
|
+
return v.isUndefined(n) || (i.value = n), v.isUndefined(r) || (i.parent = r), i;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function I(e) {
|
|
26
|
+
return v.map(e.edges(), function(t) {
|
|
27
|
+
var n = e.edge(t), r = { v: t.v, w: t.w };
|
|
28
|
+
return v.isUndefined(t.name) || (r.name = t.name), v.isUndefined(n) || (r.value = n), r;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
let l = {}, g = {}, L = {};
|
|
32
|
+
const tt = () => {
|
|
33
|
+
g = {}, L = {}, l = {};
|
|
34
|
+
}, B = (e, t) => (s.trace("In isDescendant", t, " ", e, " = ", g[t].includes(e)), !!g[t].includes(e)), et = (e, t) => (s.info("Descendants of ", t, " is ", g[t]), s.info("Edge is ", e), e.v === t || e.w === t ? !1 : g[t] ? g[t].includes(e.v) || B(e.v, t) || B(e.w, t) || g[t].includes(e.w) : (s.debug("Tilt, ", t, ",not in descendants"), !1)), R = (e, t, n, r) => {
|
|
35
|
+
s.warn(
|
|
36
|
+
"Copying children of ",
|
|
37
|
+
e,
|
|
38
|
+
"root",
|
|
39
|
+
r,
|
|
40
|
+
"data",
|
|
41
|
+
t.node(e),
|
|
42
|
+
r
|
|
43
|
+
);
|
|
44
|
+
const i = t.children(e) || [];
|
|
45
|
+
e !== r && i.push(e), s.warn("Copying (nodes) clusterId", e, "nodes", i), i.forEach((a) => {
|
|
46
|
+
if (t.children(a).length > 0)
|
|
47
|
+
R(a, t, n, r);
|
|
48
|
+
else {
|
|
49
|
+
const d = t.node(a);
|
|
50
|
+
s.info("cp ", a, " to ", r, " with parent ", e), n.setNode(a, d), r !== t.parent(a) && (s.warn("Setting parent", a, t.parent(a)), n.setParent(a, t.parent(a))), e !== r && a !== e ? (s.debug("Setting parent", a, e), n.setParent(a, e)) : (s.info("In copy ", e, "root", r, "data", t.node(e), r), s.debug(
|
|
51
|
+
"Not Setting parent for node=",
|
|
52
|
+
a,
|
|
53
|
+
"cluster!==rootId",
|
|
54
|
+
e !== r,
|
|
55
|
+
"node!==clusterId",
|
|
56
|
+
a !== e
|
|
57
|
+
));
|
|
58
|
+
const u = t.edges(a);
|
|
59
|
+
s.debug("Copying Edges", u), u.forEach((f) => {
|
|
60
|
+
s.info("Edge", f);
|
|
61
|
+
const h = t.edge(f.v, f.w, f.name);
|
|
62
|
+
s.info("Edge data", h, r);
|
|
63
|
+
try {
|
|
64
|
+
et(f, r) ? (s.info("Copying as ", f.v, f.w, h, f.name), n.setEdge(f.v, f.w, h, f.name), s.info("newGraph edges ", n.edges(), n.edge(n.edges()[0]))) : s.info(
|
|
65
|
+
"Skipping copy of edge ",
|
|
66
|
+
f.v,
|
|
67
|
+
"-->",
|
|
68
|
+
f.w,
|
|
69
|
+
" rootId: ",
|
|
70
|
+
r,
|
|
71
|
+
" clusterId:",
|
|
72
|
+
e
|
|
73
|
+
);
|
|
74
|
+
} catch (w) {
|
|
75
|
+
s.error(w);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
s.debug("Removing node", a), t.removeNode(a);
|
|
80
|
+
});
|
|
81
|
+
}, P = (e, t) => {
|
|
82
|
+
const n = t.children(e);
|
|
83
|
+
let r = [...n];
|
|
84
|
+
for (const i of n)
|
|
85
|
+
L[i] = e, r = [...r, ...P(i, t)];
|
|
86
|
+
return r;
|
|
87
|
+
}, C = (e, t) => {
|
|
88
|
+
s.trace("Searching", e);
|
|
89
|
+
const n = t.children(e);
|
|
90
|
+
if (s.trace("Searching children of id ", e, n), n.length < 1)
|
|
91
|
+
return s.trace("This is a valid node", e), e;
|
|
92
|
+
for (const r of n) {
|
|
93
|
+
const i = C(r, t);
|
|
94
|
+
if (i)
|
|
95
|
+
return s.trace("Found replacement for", e, " => ", i), i;
|
|
96
|
+
}
|
|
97
|
+
}, X = (e) => !l[e] || !l[e].externalConnections ? e : l[e] ? l[e].id : e, nt = (e, t) => {
|
|
98
|
+
if (!e || t > 10) {
|
|
99
|
+
s.debug("Opting out, no graph ");
|
|
100
|
+
return;
|
|
101
|
+
} else
|
|
102
|
+
s.debug("Opting in, graph ");
|
|
103
|
+
e.nodes().forEach(function(n) {
|
|
104
|
+
e.children(n).length > 0 && (s.warn(
|
|
105
|
+
"Cluster identified",
|
|
106
|
+
n,
|
|
107
|
+
" Replacement id in edges: ",
|
|
108
|
+
C(n, e)
|
|
109
|
+
), g[n] = P(n, e), l[n] = { id: C(n, e), clusterData: e.node(n) });
|
|
110
|
+
}), e.nodes().forEach(function(n) {
|
|
111
|
+
const r = e.children(n), i = e.edges();
|
|
112
|
+
r.length > 0 ? (s.debug("Cluster identified", n, g), i.forEach((a) => {
|
|
113
|
+
if (a.v !== n && a.w !== n) {
|
|
114
|
+
const d = B(a.v, n), u = B(a.w, n);
|
|
115
|
+
d ^ u && (s.warn("Edge: ", a, " leaves cluster ", n), s.warn("Descendants of XXX ", n, ": ", g[n]), l[n].externalConnections = !0);
|
|
116
|
+
}
|
|
117
|
+
})) : s.debug("Not a cluster ", n, g);
|
|
118
|
+
});
|
|
119
|
+
for (let n of Object.keys(l)) {
|
|
120
|
+
const r = l[n].id, i = e.parent(r);
|
|
121
|
+
i !== n && l[i] && !l[i].externalConnections && (l[n].id = i);
|
|
122
|
+
}
|
|
123
|
+
e.edges().forEach(function(n) {
|
|
124
|
+
const r = e.edge(n);
|
|
125
|
+
s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(n)), s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(e.edge(n)));
|
|
126
|
+
let i = n.v, a = n.w;
|
|
127
|
+
if (s.warn(
|
|
128
|
+
"Fix XXX",
|
|
129
|
+
l,
|
|
130
|
+
"ids:",
|
|
131
|
+
n.v,
|
|
132
|
+
n.w,
|
|
133
|
+
"Translating: ",
|
|
134
|
+
l[n.v],
|
|
135
|
+
" --- ",
|
|
136
|
+
l[n.w]
|
|
137
|
+
), l[n.v] && l[n.w] && l[n.v] === l[n.w]) {
|
|
138
|
+
s.warn("Fixing and trixing link to self - removing XXX", n.v, n.w, n.name), s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = X(n.v), a = X(n.w), e.removeEdge(n.v, n.w, n.name);
|
|
139
|
+
const d = n.w + "---" + n.v;
|
|
140
|
+
e.setNode(d, {
|
|
141
|
+
domId: d,
|
|
142
|
+
id: d,
|
|
143
|
+
labelStyle: "",
|
|
144
|
+
labelText: r.label,
|
|
145
|
+
padding: 0,
|
|
146
|
+
shape: "labelRect",
|
|
147
|
+
style: ""
|
|
148
|
+
});
|
|
149
|
+
const u = structuredClone(r), f = structuredClone(r);
|
|
150
|
+
u.label = "", u.arrowTypeEnd = "none", f.label = "", u.fromCluster = n.v, f.toCluster = n.v, e.setEdge(i, d, u, n.name + "-cyclic-special"), e.setEdge(d, a, f, n.name + "-cyclic-special");
|
|
151
|
+
} else if (l[n.v] || l[n.w]) {
|
|
152
|
+
if (s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = X(n.v), a = X(n.w), e.removeEdge(n.v, n.w, n.name), i !== n.v) {
|
|
153
|
+
const d = e.parent(i);
|
|
154
|
+
l[d].externalConnections = !0, r.fromCluster = n.v;
|
|
155
|
+
}
|
|
156
|
+
if (a !== n.w) {
|
|
157
|
+
const d = e.parent(a);
|
|
158
|
+
l[d].externalConnections = !0, r.toCluster = n.w;
|
|
159
|
+
}
|
|
160
|
+
s.warn("Fix Replacing with XXX", i, a, n.name), e.setEdge(i, a, r, n.name);
|
|
161
|
+
}
|
|
162
|
+
}), s.warn("Adjusted Graph", m(e)), k(e, 0), s.trace(l);
|
|
163
|
+
}, k = (e, t) => {
|
|
164
|
+
if (s.warn("extractor - ", t, m(e), e.children("D")), t > 10) {
|
|
165
|
+
s.error("Bailing out");
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
let n = e.nodes(), r = !1;
|
|
169
|
+
for (const i of n) {
|
|
170
|
+
const a = e.children(i);
|
|
171
|
+
r = r || a.length > 0;
|
|
172
|
+
}
|
|
173
|
+
if (!r) {
|
|
174
|
+
s.debug("Done, no node has children", e.nodes());
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
s.debug("Nodes = ", n, t);
|
|
178
|
+
for (const i of n)
|
|
179
|
+
if (s.debug(
|
|
180
|
+
"Extracting node",
|
|
181
|
+
i,
|
|
182
|
+
l,
|
|
183
|
+
l[i] && !l[i].externalConnections,
|
|
184
|
+
!e.parent(i),
|
|
185
|
+
e.node(i),
|
|
186
|
+
e.children("D"),
|
|
187
|
+
" Depth ",
|
|
188
|
+
t
|
|
189
|
+
), !l[i])
|
|
190
|
+
s.debug("Not a cluster", i, t);
|
|
191
|
+
else if (!l[i].externalConnections && // !graph.parent(node) &&
|
|
192
|
+
e.children(i) && e.children(i).length > 0) {
|
|
193
|
+
s.warn(
|
|
194
|
+
"Cluster without external connections, without a parent and with children",
|
|
195
|
+
i,
|
|
196
|
+
t
|
|
197
|
+
);
|
|
198
|
+
let d = e.graph().rankdir === "TB" ? "LR" : "TB";
|
|
199
|
+
l[i] && l[i].clusterData && l[i].clusterData.dir && (d = l[i].clusterData.dir, s.warn("Fixing dir", l[i].clusterData.dir, d));
|
|
200
|
+
const u = new U({
|
|
201
|
+
multigraph: !0,
|
|
202
|
+
compound: !0
|
|
203
|
+
}).setGraph({
|
|
204
|
+
rankdir: d,
|
|
205
|
+
// Todo: set proper spacing
|
|
206
|
+
nodesep: 50,
|
|
207
|
+
ranksep: 50,
|
|
208
|
+
marginx: 8,
|
|
209
|
+
marginy: 8
|
|
210
|
+
}).setDefaultEdgeLabel(function() {
|
|
211
|
+
return {};
|
|
212
|
+
});
|
|
213
|
+
s.warn("Old graph before copy", m(e)), R(i, e, u, i), e.setNode(i, {
|
|
214
|
+
clusterNode: !0,
|
|
215
|
+
id: i,
|
|
216
|
+
clusterData: l[i].clusterData,
|
|
217
|
+
labelText: l[i].labelText,
|
|
218
|
+
graph: u
|
|
219
|
+
}), s.warn("New graph after copy node: (", i, ")", m(u)), s.debug("Old graph after copy", m(e));
|
|
220
|
+
} else
|
|
221
|
+
s.warn(
|
|
222
|
+
"Cluster ** ",
|
|
223
|
+
i,
|
|
224
|
+
" **not meeting the criteria !externalConnections:",
|
|
225
|
+
!l[i].externalConnections,
|
|
226
|
+
" no parent: ",
|
|
227
|
+
!e.parent(i),
|
|
228
|
+
" children ",
|
|
229
|
+
e.children(i) && e.children(i).length > 0,
|
|
230
|
+
e.children("D"),
|
|
231
|
+
t
|
|
232
|
+
), s.debug(l);
|
|
233
|
+
n = e.nodes(), s.warn("New list of nodes", n);
|
|
234
|
+
for (const i of n) {
|
|
235
|
+
const a = e.node(i);
|
|
236
|
+
s.warn(" Now next level", i, a), a.clusterNode && k(a.graph, t + 1);
|
|
237
|
+
}
|
|
238
|
+
}, F = (e, t) => {
|
|
239
|
+
if (t.length === 0)
|
|
240
|
+
return [];
|
|
241
|
+
let n = Object.assign(t);
|
|
242
|
+
return t.forEach((r) => {
|
|
243
|
+
const i = e.children(r), a = F(e, i);
|
|
244
|
+
n = [...n, ...a];
|
|
245
|
+
}), n;
|
|
246
|
+
}, it = (e) => F(e, e.children()), st = (e, t) => {
|
|
247
|
+
s.info("Creating subgraph rect for ", t.id, t);
|
|
248
|
+
const n = T(), r = e.insert("g").attr("class", "cluster" + (t.class ? " " + t.class : "")).attr("id", t.id), i = r.insert("rect", ":first-child"), a = S(n.flowchart.htmlLabels), d = r.insert("g").attr("class", "cluster-label"), u = t.labelType === "markdown" ? Y(d, t.labelText, { style: t.labelStyle, useHtmlLabels: a }) : d.node().appendChild($(t.labelText, t.labelStyle, void 0, !0));
|
|
249
|
+
let f = u.getBBox();
|
|
250
|
+
if (S(n.flowchart.htmlLabels)) {
|
|
251
|
+
const c = u.children[0], o = J(u);
|
|
252
|
+
f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height);
|
|
253
|
+
}
|
|
254
|
+
const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + h ? f.width + h : t.width;
|
|
255
|
+
t.width <= f.width + h ? t.diff = (f.width - t.width) / 2 - t.padding / 2 : t.diff = -t.padding / 2, s.trace("Data ", t, JSON.stringify(t)), i.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - x / 2).attr("y", t.y - t.height / 2 - w).attr("width", x).attr("height", t.height + h);
|
|
256
|
+
const { subGraphTitleTopMargin: E } = D(n);
|
|
257
|
+
a ? d.attr(
|
|
258
|
+
"transform",
|
|
259
|
+
// This puts the label on top of the box instead of inside it
|
|
260
|
+
`translate(${t.x - f.width / 2}, ${t.y - t.height / 2 + E})`
|
|
261
|
+
) : d.attr(
|
|
262
|
+
"transform",
|
|
263
|
+
// This puts the label on top of the box instead of inside it
|
|
264
|
+
`translate(${t.x}, ${t.y - t.height / 2 + E})`
|
|
265
|
+
);
|
|
266
|
+
const y = i.node().getBBox();
|
|
267
|
+
return t.width = y.width, t.height = y.height, t.intersect = function(c) {
|
|
268
|
+
return p(t, c);
|
|
269
|
+
}, r;
|
|
270
|
+
}, rt = (e, t) => {
|
|
271
|
+
const n = e.insert("g").attr("class", "note-cluster").attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2;
|
|
272
|
+
r.attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2 - a).attr("width", t.width + i).attr("height", t.height + i).attr("fill", "none");
|
|
273
|
+
const d = r.node().getBBox();
|
|
274
|
+
return t.width = d.width, t.height = d.height, t.intersect = function(u) {
|
|
275
|
+
return p(t, u);
|
|
276
|
+
}, n;
|
|
277
|
+
}, at = (e, t) => {
|
|
278
|
+
const n = T(), r = e.insert("g").attr("class", t.classes).attr("id", t.id), i = r.insert("rect", ":first-child"), a = r.insert("g").attr("class", "cluster-label"), d = r.append("rect"), u = a.node().appendChild($(t.labelText, t.labelStyle, void 0, !0));
|
|
279
|
+
let f = u.getBBox();
|
|
280
|
+
if (S(n.flowchart.htmlLabels)) {
|
|
281
|
+
const c = u.children[0], o = J(u);
|
|
282
|
+
f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height);
|
|
283
|
+
}
|
|
284
|
+
f = u.getBBox();
|
|
285
|
+
const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + t.padding ? f.width + t.padding : t.width;
|
|
286
|
+
t.width <= f.width + t.padding ? t.diff = (f.width + t.padding * 0 - t.width) / 2 : t.diff = -t.padding / 2, i.attr("class", "outer").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w).attr("width", x + h).attr("height", t.height + h), d.attr("class", "inner").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w + f.height - 1).attr("width", x + h).attr("height", t.height + h - f.height - 3);
|
|
287
|
+
const { subGraphTitleTopMargin: E } = D(n);
|
|
288
|
+
a.attr(
|
|
289
|
+
"transform",
|
|
290
|
+
`translate(${t.x - f.width / 2}, ${t.y - t.height / 2 - t.padding / 3 + (S(n.flowchart.htmlLabels) ? 5 : 3) + E})`
|
|
291
|
+
);
|
|
292
|
+
const y = i.node().getBBox();
|
|
293
|
+
return t.height = y.height, t.intersect = function(c) {
|
|
294
|
+
return p(t, c);
|
|
295
|
+
}, r;
|
|
296
|
+
}, ct = (e, t) => {
|
|
297
|
+
const n = e.insert("g").attr("class", t.classes).attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2;
|
|
298
|
+
r.attr("class", "divider").attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2).attr("width", t.width + i).attr("height", t.height + i);
|
|
299
|
+
const d = r.node().getBBox();
|
|
300
|
+
return t.width = d.width, t.height = d.height, t.diff = -t.padding / 2, t.intersect = function(u) {
|
|
301
|
+
return p(t, u);
|
|
302
|
+
}, n;
|
|
303
|
+
}, ot = { rect: st, roundedWithTitle: at, noteGroup: rt, divider: ct };
|
|
304
|
+
let G = {};
|
|
305
|
+
const lt = (e, t) => {
|
|
306
|
+
s.trace("Inserting cluster");
|
|
307
|
+
const n = t.shape || "rect";
|
|
308
|
+
G[t.id] = ot[n](e, t);
|
|
309
|
+
}, ft = () => {
|
|
310
|
+
G = {};
|
|
311
|
+
}, j = async (e, t, n, r, i, a) => {
|
|
312
|
+
s.info("Graph in recursive render: XXX", m(t), i);
|
|
313
|
+
const d = t.graph().rankdir;
|
|
314
|
+
s.trace("Dir in recursive render - dir:", d);
|
|
315
|
+
const u = e.insert("g").attr("class", "root");
|
|
316
|
+
t.nodes() ? s.info("Recursive render XXX", t.nodes()) : s.info("No nodes found for", t), t.edges().length > 0 && s.trace("Recursive edges", t.edge(t.edges()[0]));
|
|
317
|
+
const f = u.insert("g").attr("class", "clusters"), h = u.insert("g").attr("class", "edgePaths"), w = u.insert("g").attr("class", "edgeLabels"), x = u.insert("g").attr("class", "nodes");
|
|
318
|
+
await Promise.all(
|
|
319
|
+
t.nodes().map(async function(c) {
|
|
320
|
+
const o = t.node(c);
|
|
321
|
+
if (i !== void 0) {
|
|
322
|
+
const b = JSON.parse(JSON.stringify(i.clusterData));
|
|
323
|
+
s.info("Setting data for cluster XXX (", c, ") ", b, i), t.setNode(i.id, b), t.parent(c) || (s.trace("Setting parent", c, i.id), t.setParent(c, i.id, b));
|
|
324
|
+
}
|
|
325
|
+
if (s.info("(Insert) Node XXX" + c + ": " + JSON.stringify(t.node(c))), o && o.clusterNode) {
|
|
326
|
+
s.info("Cluster identified", c, o.width, t.node(c));
|
|
327
|
+
const b = await j(
|
|
328
|
+
x,
|
|
329
|
+
o.graph,
|
|
330
|
+
n,
|
|
331
|
+
r,
|
|
332
|
+
t.node(c),
|
|
333
|
+
a
|
|
334
|
+
), N = b.elem;
|
|
335
|
+
H(o, N), o.diff = b.diff || 0, s.info("Node bounds (abc123)", c, o, o.width, o.x, o.y), V(N, o), s.warn("Recursive render complete ", N, o);
|
|
336
|
+
} else
|
|
337
|
+
t.children(c).length > 0 ? (s.info("Cluster - the non recursive path XXX", c, o.id, o, t), s.info(C(o.id, t)), l[o.id] = { id: C(o.id, t), node: o }) : (s.info("Node - the non recursive path", c, o.id, o), await _(x, t.node(c), d));
|
|
338
|
+
})
|
|
339
|
+
), t.edges().forEach(function(c) {
|
|
340
|
+
const o = t.edge(c.v, c.w, c.name);
|
|
341
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c)), s.info("Edge " + c.v + " -> " + c.w + ": ", c, " ", JSON.stringify(t.edge(c))), s.info("Fix", l, "ids:", c.v, c.w, "Translating: ", l[c.v], l[c.w]), W(w, o);
|
|
342
|
+
}), t.edges().forEach(function(c) {
|
|
343
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c));
|
|
344
|
+
}), s.info("#############################################"), s.info("### Layout ###"), s.info("#############################################"), s.info(t), M(t), s.info("Graph after layout:", m(t));
|
|
345
|
+
let E = 0;
|
|
346
|
+
const { subGraphTitleTotalMargin: y } = D(a);
|
|
347
|
+
return it(t).forEach(function(c) {
|
|
348
|
+
const o = t.node(c);
|
|
349
|
+
s.info("Position " + c + ": " + JSON.stringify(t.node(c))), s.info(
|
|
350
|
+
"Position " + c + ": (" + o.x,
|
|
351
|
+
"," + o.y,
|
|
352
|
+
") width: ",
|
|
353
|
+
o.width,
|
|
354
|
+
" height: ",
|
|
355
|
+
o.height
|
|
356
|
+
), o && o.clusterNode ? (o.y += y, O(o)) : t.children(c).length > 0 ? (o.height += y, lt(f, o), l[o.id].node = o) : (o.y += y / 2, O(o));
|
|
357
|
+
}), t.edges().forEach(function(c) {
|
|
358
|
+
const o = t.edge(c);
|
|
359
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(o), o), o.points.forEach((N) => N.y += y / 2);
|
|
360
|
+
const b = q(h, c, o, l, n, t, r);
|
|
361
|
+
z(o, b);
|
|
362
|
+
}), t.nodes().forEach(function(c) {
|
|
363
|
+
const o = t.node(c);
|
|
364
|
+
s.info(c, o.type, o.diff), o.type === "group" && (E = o.diff);
|
|
365
|
+
}), { elem: u, diff: E };
|
|
366
|
+
}, xt = async (e, t, n, r, i) => {
|
|
367
|
+
A(e, n, r, i), K(), Q(), ft(), tt(), s.warn("Graph at first:", JSON.stringify(m(t))), nt(t), s.warn("Graph after:", JSON.stringify(m(t)));
|
|
368
|
+
const a = T();
|
|
369
|
+
await j(e, t, r, i, void 0, a);
|
|
370
|
+
};
|
|
371
|
+
export {
|
|
372
|
+
xt as r
|
|
373
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var s=async(t=[{}])=>(Array.isArray(t)||(t=[t]),new Promise((n,c)=>{const e=document.createElement("input");e.type="file";const r=[...t.map(i=>i.mimeTypes||[]),...t.map(i=>i.extensions||[])].join();e.multiple=t[0].multiple||!1,e.accept=r||"";const a=i=>{typeof l=="function"&&l(),n(i)},l=t[0].legacySetup&&t[0].legacySetup(a,()=>l(c),e);e.addEventListener("change",()=>{a(e.multiple?Array.from(e.files):e.files[0])}),e.click()}));exports.default=s;
|