@layers-app/editor 0.7.86 → 0.7.87
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/README.md +831 -831
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/{layers.DsluQRLr.js → layers.-9okZB0x.js} +1 -1
- package/dist/{layers.Bz5NwWGG.js → layers.-_P4kYP_.js} +1 -1
- package/dist/{layers.DN69STYK.js → layers.4Y4ePVR0.js} +1 -1
- package/dist/{layers.DkEFu5gA.js → layers.4oB0WRxx.js} +1 -1
- package/dist/{layers.CGERScld.js → layers.4vhe3L9I.js} +1 -1
- package/dist/{layers.UJ7bQNer.js → layers.53v5NUdb.js} +1 -1
- package/dist/{layers.Cgofz1Xf.js → layers.5Ef_FuCM.js} +2 -2
- package/dist/{layers.CSY29VZ2.js → layers.5xWSVcRR.js} +1 -1
- package/dist/{layers.CUQ7FRZz.js → layers.82zC-ja_.js} +1 -1
- package/dist/{layers.7jlVffbW.js → layers.8ne3pzxk.js} +1 -1
- package/dist/{layers.DOJOJ5Ue.js → layers.90MBO9ku.js} +1 -1
- package/dist/{layers.D-AYX8Lp.js → layers.B-gTWMUE.js} +1 -1
- package/dist/{layers.ChASYTp-.js → layers.B0Qp3emx.js} +1 -1
- package/dist/{layers.Cemc3Rjs.js → layers.B0QsORyd.js} +1 -1
- package/dist/{layers.nVjhvgvd.js → layers.B1jsMDtK.js} +1 -1
- package/dist/{layers.Bng5Gr1n.js → layers.B2E9MQav.js} +1 -1
- package/dist/{layers.VFZK_FA3.js → layers.B6BmFpub.js} +1 -1
- package/dist/{layers.DdFQKkLb.js → layers.B6dRe9Ed.js} +2 -2
- package/dist/{layers.LqG81lJZ.js → layers.B6nu8sUY.js} +1 -1
- package/dist/{layers.BX1jNtLM.js → layers.B7ziuAqe.js} +1 -1
- package/dist/{layers.B6n1RUi_.js → layers.BCQaDFTY.js} +1 -1
- package/dist/{layers.FJxTPV8d.js → layers.BCkbv8uf.js} +6827 -6829
- package/dist/{layers.DRyd3XCt.js → layers.BEBOaqfH.js} +1 -1
- package/dist/{layers.DOVN4tPj.js → layers.BFJgfRPW.js} +1 -1
- package/dist/{layers.BP7LB5ki.js → layers.BFOgk_-o.js} +1 -1
- package/dist/{layers.CXSaj3OM.js → layers.BFUt-JBy.js} +1 -1
- package/dist/layers.BIJbAabT.js +1 -0
- package/dist/{layers.Barcmty3.js → layers.BIe8Kgwm.js} +1 -1
- package/dist/{layers.XLwfllsX.js → layers.BKZaQ5wT.js} +4 -4
- package/dist/{layers.B-zgigpd.js → layers.BQX5Jd9q.js} +1 -1
- package/dist/{layers.2KoM-VUP.js → layers.BQzVi8T-.js} +1 -1
- package/dist/{layers.DBRUwX0F.js → layers.BSeN3EnF.js} +1 -1
- package/dist/{layers.B3Ulhz3V.js → layers.BU5hf_CS.js} +1 -1
- package/dist/layers.BX033us8.js +96 -0
- package/dist/{layers.amQAgHrY.js → layers.BZw2kQin.js} +1 -1
- package/dist/{layers.Ce1YBJnP.js → layers.Ba3kXbUz.js} +4 -4
- package/dist/{layers.B2ytbaBh.js → layers.BdVJ8os7.js} +3 -3
- package/dist/layers.BfhqGLum.js +8 -0
- package/dist/{layers.tvLzg_0x.js → layers.Bg2PoHk5.js} +1 -1
- package/dist/{layers.rJkfxeBd.js → layers.BjYyTaQ-.js} +5 -5
- package/dist/{layers.CIhWpTph.js → layers.Bk5C_SYG.js} +1 -1
- package/dist/{layers.Cm2kyqG6.js → layers.Bl1prgqn.js} +1 -1
- package/dist/{layers.Flr_0AaN.js → layers.Blr44YGc.js} +1 -1
- package/dist/{layers.Dzxx7JT-.js → layers.Bm1ixdPA.js} +1 -1
- package/dist/{layers.CsuQ5ixx.js → layers.BmuNt8yM.js} +1 -1
- package/dist/{layers.DXuKJEd7.js → layers.Bnuh3CKu.js} +1 -1
- package/dist/{layers.Djj-hAKa.js → layers.BoCPYrZX.js} +1 -1
- package/dist/{layers.C4-JSE4w.js → layers.BoEx2h4m.js} +1 -1
- package/dist/{layers.DLQZCUdu.js → layers.BpI7SZrr.js} +3 -3
- package/dist/{layers.CiiCi-1m.js → layers.BphJFHF5.js} +1 -1
- package/dist/{layers.Q97ED2c2.js → layers.Bqml8xa2.js} +1 -1
- package/dist/{layers.bdBF9Bqy.js → layers.Bs6ncsFK.js} +1 -1
- package/dist/layers.BuPdKLic.js +257 -0
- package/dist/{layers.CZkWj5lb.js → layers.BvTqi64c.js} +1 -1
- package/dist/{layers.ZDfuwkfB.js → layers.BxXlO20c.js} +1 -1
- package/dist/{layers.DfvquT0v.js → layers.Bxc0Qnwz.js} +3 -3
- package/dist/{layers.BpKmA4gs.js → layers.BxkrfJwW.js} +1 -1
- package/dist/{layers.Dz4ClkFk.js → layers.BxpVM_aU.js} +1 -1
- package/dist/{layers.BNtxdAll.js → layers.BzsqXB6O.js} +1 -1
- package/dist/{layers.DUqJ4dlG.js → layers.C-wrIzm1.js} +1 -1
- package/dist/{layers.CBiWIGpX.js → layers.C4xUq3OD.js} +2 -6
- package/dist/{layers.J86iuR_b.js → layers.C6eH0FIU.js} +1 -1
- package/dist/{layers.BAX26gV2.js → layers.C7HsM9D3.js} +3 -3
- package/dist/{layers.BT84eQHq.js → layers.C8oWMKqA.js} +1 -1
- package/dist/{layers.tEZcP6YI.js → layers.CAK9i7Sw.js} +1 -1
- package/dist/{layers.CCsRezXx.js → layers.CCDaASzc.js} +1 -1
- package/dist/{layers.C9VAs0HO.js → layers.CDRo2f4u.js} +1 -1
- package/dist/{layers.Ctz5KBUL.js → layers.CEAR-Jv9.js} +1 -1
- package/dist/{layers.DrWgnZ0d.js → layers.CELD9Qc8.js} +1 -1
- package/dist/{layers.BKca35CU.js → layers.CEw2xj5_.js} +4 -4
- package/dist/{layers.D3uNYHNC.js → layers.CHFB_eKu.js} +1 -1
- package/dist/{layers.B4o08vu8.js → layers.CHR_dKr0.js} +1 -1
- package/dist/{layers.CgVxDZsx.js → layers.CHWgNDPV.js} +1 -1
- package/dist/{layers.BM7F777U.js → layers.CJ8dHt3z.js} +1 -1
- package/dist/layers.CK0motmJ.js +1 -0
- package/dist/{layers.BkbZhx1T.js → layers.CKHXrB_Q.js} +1 -1
- package/dist/{layers.Dz1fh2cC.js → layers.CKNAbcot.js} +1 -1
- package/dist/layers.CK_QmoFa.js +1 -0
- package/dist/{layers.C4OcvSFP.js → layers.CMeQBGV_.js} +1 -1
- package/dist/{layers.C6yv4SMZ.js → layers.CMjI3DH3.js} +5 -5
- package/dist/{layers.yGjpchvx.js → layers.CQq6xXNB.js} +1 -1
- package/dist/{layers.B1_1EHG2.js → layers.CR9xsFpB.js} +1 -1
- package/dist/{layers.BNYJc_e3.js → layers.CRSb_NN4.js} +1 -1
- package/dist/{layers.D9cq8I7w.js → layers.CSRqOGdw.js} +2 -2
- package/dist/{layers.CkhYXiw8.js → layers.CTJ-kBok.js} +1 -1
- package/dist/{layers.BWZ3vcRY.js → layers.CTSYp-zq.js} +1 -1
- package/dist/{layers.BnR1dAiI.js → layers.CTplo3en.js} +1 -1
- package/dist/{layers.h3B_llQB.js → layers.CVssWWdF.js} +1 -1
- package/dist/{layers.b9B2NY7n.js → layers.CX_HYDAq.js} +3057 -3131
- package/dist/{layers.DOd9EAGl.js → layers.CXcj4Jbd.js} +1 -1
- package/dist/{layers.BxWxfNTL.js → layers.CZrL5JA8.js} +8 -8
- package/dist/{layers.DcXW2kk-.js → layers.C_Q3Y0D1.js} +1 -1
- package/dist/{layers.Di05ImAz.js → layers.C_uDJ9hf.js} +3 -3
- package/dist/{layers.CdDwcasW.js → layers.CbEm_-_E.js} +1 -1
- package/dist/{layers.BIn2ek-1.js → layers.Cd4XOUqV.js} +1 -1
- package/dist/{layers.DL8D2_E7.js → layers.CdSpXqy3.js} +1 -1
- package/dist/{layers.B-26P3FN.js → layers.Ceff5TX6.js} +4 -4
- package/dist/{layers.B8GggKc4.js → layers.CesBxkCX.js} +1 -1
- package/dist/{layers.6GUub8-K.js → layers.CfL-PorB.js} +1 -1
- package/dist/{layers.CClanUoO.js → layers.CfalEmfr.js} +1 -1
- package/dist/{layers.BpDkT7UD.js → layers.CiPHKhAr.js} +2 -2
- package/dist/{layers.CDqt-zc9.js → layers.CjgsRnlu.js} +1 -1
- package/dist/{layers.CFDg5hBW.js → layers.CpYzt2BD.js} +10 -10
- package/dist/{layers.B5j8HR15.js → layers.Cp_wYnOQ.js} +1 -1
- package/dist/{layers.DRvS-k37.js → layers.CpaTEA8h.js} +1 -1
- package/dist/{layers.DUwD0k7L.js → layers.CsWp3SzR.js} +1 -1
- package/dist/{layers.VP5WsIn6.js → layers.Csa0z_Br.js} +1 -1
- package/dist/{layers.BalJZemv.js → layers.Cshi1Frc.js} +23 -20
- package/dist/{layers.BQv_w6pL.js → layers.Ctnq4lXT.js} +7 -7
- package/dist/{layers.DTwPLUy4.js → layers.Cv6mEI19.js} +1 -1
- package/dist/{layers.Bz3AO_gy.js → layers.CvzHXo_m.js} +1 -1
- package/dist/{layers.BXUSRpnE.js → layers.CwmH1icu.js} +1 -1
- package/dist/{layers.BeSWYr0b.js → layers.CxgFCnaV.js} +2 -2
- package/dist/{layers.Dc5AvokI.js → layers.CzZr9gBd.js} +1 -1
- package/dist/{layers.DOe2Wqpa.js → layers.D42tb9Kb.js} +1 -1
- package/dist/{layers.DhlJK8p3.js → layers.D502xF41.js} +5 -5
- package/dist/{layers.CdCf9cKR.js → layers.D5qFmBKU.js} +1 -1
- package/dist/{layers.D3a13m16.js → layers.D6JdUZAB.js} +1 -1
- package/dist/{layers.1YrZFpFM.js → layers.D6NMsTgW.js} +1 -1
- package/dist/{layers.QZc83O3p.js → layers.D8BWRX43.js} +1 -1
- package/dist/{layers.D7mihXhw.js → layers.D8h23AXJ.js} +11 -11
- package/dist/{layers.D5WzssXT.js → layers.D9CNwHWk.js} +2 -2
- package/dist/{layers.CZyrk-qz.js → layers.DALpX58S.js} +1 -1
- package/dist/{layers.CgJ_jlpG.js → layers.DBEJYbLK.js} +1 -1
- package/dist/{layers.DzEJszD1.js → layers.DC2Go4cl.js} +6 -6
- package/dist/{layers.omyi9E7H.js → layers.DEOEJp0q.js} +1 -1
- package/dist/{layers.BJ-Y0RmV.js → layers.DFx1KN6R.js} +38 -38
- package/dist/{layers.DzAgds8x.js → layers.DGu37VZp.js} +1 -1
- package/dist/{layers.DRaCBfEj.js → layers.DJ9kahRk.js} +3 -3
- package/dist/{layers.DQhwyq8C.js → layers.DJsjeWDB.js} +4 -4
- package/dist/{layers.BofYqZcT.js → layers.DKbZGqDg.js} +1 -1
- package/dist/{layers.delRstCu.js → layers.DLvGWbYo.js} +1 -1
- package/dist/{layers.BM2sYHE8.js → layers.DNf6SUW4.js} +1 -1
- package/dist/{layers.DgvhkAqj.js → layers.DQ4dCO64.js} +1 -1
- package/dist/{layers.DSkf-k_H.js → layers.DQ5y0QaT.js} +1 -1
- package/dist/{layers.BCJEiCfA.js → layers.DQAhnwHA.js} +1 -1
- package/dist/{layers.CdEGZ8ms.js → layers.DQBkpxCy.js} +1 -1
- package/dist/{layers.dR8w_WeM.js → layers.DQid8uS5.js} +1 -1
- package/dist/{layers.Dn7AKfHn.js → layers.DQrGekR5.js} +1 -1
- package/dist/{layers.BZrNDVd9.js → layers.DRcrl7dJ.js} +1 -1
- package/dist/{layers.C48-TEkW.js → layers.DSCcjgIi.js} +3 -3
- package/dist/{layers.Czcv-5ke.js → layers.DWVHMDkV.js} +1 -1
- package/dist/{layers.ALY9HYtc.js → layers.DXoIP5At.js} +1 -1
- package/dist/{layers.CmTlPA0V.js → layers.DYJp-_DM.js} +1 -1
- package/dist/{layers.CZ1TMEsj.js → layers.D_l2bI3p.js} +1766 -1765
- package/dist/{layers.DokPaKl_.js → layers.DabiWsY6.js} +4 -4
- package/dist/{layers.DddjxCRB.js → layers.Dd9-w9sB.js} +6 -6
- package/dist/{layers.CRhG_si9.js → layers.DfhFgBrm.js} +1 -1
- package/dist/{layers.M_NLHaZR.js → layers.DiJicH_j.js} +1 -1
- package/dist/{layers.SyLmzqoM.js → layers.DmCqQLTJ.js} +3 -3
- package/dist/{layers.BYcz7o24.js → layers.Dma7uFIv.js} +58 -58
- package/dist/{layers.Brz84FzE.js → layers.DmrRycyS.js} +1 -1
- package/dist/{layers.Cc4FUPy3.js → layers.DoAsZfrf.js} +1 -1
- package/dist/{layers.Dkvhi6ly.js → layers.DoPYjioF.js} +1 -1
- package/dist/layers.DojaWjqv.js +6 -0
- package/dist/{layers.4GzPhWee.js → layers.Dp3Nu2eW.js} +1 -1
- package/dist/{layers.B2ScmZRF.js → layers.DqbRWgqa.js} +1 -1
- package/dist/{layers.B11IRUHY.js → layers.DrSxy-rK.js} +1 -1
- package/dist/{layers.HX1JhEhr.js → layers.DrrCk4Ln.js} +1 -1
- package/dist/{layers.D1kVQCo_.js → layers.DtZGtvfG.js} +1 -1
- package/dist/{layers.BWvNC7fz.js → layers.DvOVj252.js} +40 -38
- package/dist/{layers.B_U4dPZI.js → layers.DyAQ4fsQ.js} +1 -1
- package/dist/{layers.BGtXmUvz.js → layers.Dy_HZwqS.js} +1 -1
- package/dist/layers.DzvGOILR.js +1 -0
- package/dist/{layers.CMZJKFF6.js → layers.DzwjZwor.js} +5 -5
- package/dist/{layers.DWAOIbda.js → layers.DzzbBZRK.js} +1 -1
- package/dist/{layers.Bo82VqeZ.js → layers.K0zGomTS.js} +1 -1
- package/dist/{layers.DGQvTUXc.js → layers.K3ShjVS2.js} +1 -1
- package/dist/{layers.DJ4c3dJ7.js → layers.KDjRSgja.js} +1 -1
- package/dist/{layers.DUUytwY0.js → layers.Kcp1ca1B.js} +1 -1
- package/dist/layers.LGbu1Xgh.js +423 -0
- package/dist/{layers.xN40XamO.js → layers.MX9XjKu0.js} +1 -1
- package/dist/{layers.593HmJ7u.js → layers.Mcn6zg8Z.js} +1 -1
- package/dist/{layers.C1yu7R7s.js → layers.N5FJndmV.js} +1 -1
- package/dist/{layers.Ya1-y7EX.js → layers.NY-nQO_B.js} +1 -1
- package/dist/{layers.DlqnmDP-.js → layers.Nv5JyNfQ.js} +1 -1
- package/dist/{layers.BfACNd9U.js → layers.PZKc72c6.js} +1 -1
- package/dist/{layers.7BY1SkaQ.js → layers.PaaJLb3V.js} +1 -1
- package/dist/{layers.CEGtz-uE.js → layers.PzTOljyI.js} +1 -1
- package/dist/{layers.Cz1lpIx2.js → layers.Q5xjvg3F.js} +1 -1
- package/dist/{layers.ia4lvVn2.js → layers.Q7srjgP5.js} +1 -1
- package/dist/{layers.M-eEmsh5.js → layers.QB1dgRDh.js} +1 -1
- package/dist/{layers.CDzgxYp0.js → layers.RW6I02nN.js} +4476 -4448
- package/dist/{layers.4UQu2LeV.js → layers.Rp2Fmjv1.js} +1 -1
- package/dist/{layers.C3SQLos6.js → layers.UCe1bIbe.js} +1 -1
- package/dist/{layers.Cg-5EVvB.js → layers.WSgZpicv.js} +1 -1
- package/dist/{layers.DZEVAqAy.js → layers.XPkGAjcY.js} +1 -1
- package/dist/{layers.DVFVKMUs.js → layers.ZF_XjzzN.js} +1 -1
- package/dist/{layers.5jyTzOfO.js → layers.aAEfhnbg.js} +1 -1
- package/dist/{layers.Bjii6NqF.js → layers.fUhnRZqK.js} +1 -1
- package/dist/{layers.C3tWnzjL.js → layers.ftLUtsH_.js} +1 -1
- package/dist/{layers.8aU6ITdS.js → layers.hRGwBp2A.js} +1 -1
- package/dist/{layers.Dtw-Xxoe.js → layers.jAdMaQgo.js} +1 -1
- package/dist/{layers.CIiIW7_2.js → layers.kVGK7-6Y.js} +1 -1
- package/dist/layers.mH28aWLj.js +7 -0
- package/dist/{layers.CHNHFp3C.js → layers.mf7vYaTO.js} +1 -1
- package/dist/{layers.2Xc-OCJG.js → layers.nKvo0NUK.js} +1 -1
- package/dist/{layers.CDZZM7yV.js → layers.nOYmwsKg.js} +1 -1
- package/dist/{layers.DsQEyERT.js → layers.oxQlyV8r.js} +3 -3
- package/dist/{layers.CFf2kbMx.js → layers.pa56VtOv.js} +1 -1
- package/dist/{layers.eNL7Q3Bk.js → layers.r-o88DgQ.js} +1 -1
- package/dist/{layers.CZljPNTs.js → layers.rIjHYj-T.js} +1 -1
- package/dist/{layers.DIw-OWxA.js → layers.tDJ6IpY8.js} +3 -3
- package/dist/{layers.Dz4rHWG7.js → layers.v32YA2e-.js} +1 -1
- package/dist/{layers.DM1ui1W4.js → layers.xu4ydiLQ.js} +1 -1
- package/dist/{layers.D08XvcSM.js → layers.yzI-HZ6H.js} +1 -1
- package/dist/{layers.DQGFGQaJ.js → layers.zdzbqOEo.js} +1 -1
- package/dist/{layers.87AnebFc.js → layers.zsc6RB_R.js} +1 -1
- package/package.json +166 -166
- package/dist/layers.BSxj8QXq.js +0 -8
- package/dist/layers.BnasqWiQ.js +0 -96
- package/dist/layers.C2oSEQtV.js +0 -6
- package/dist/layers.CFnFFj_X.js +0 -1
- package/dist/layers.CZDQydGU.js +0 -1
- package/dist/layers.DJot1ZoN.js +0 -423
- package/dist/layers.DQRw6F0z.js +0 -6
- package/dist/layers.R8mPlCA0.js +0 -261
- package/dist/layers.ZKcZzwAG.js +0 -1
- package/dist/layers.v_dLXmOz.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.DFx1KN6R.js");var e={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:"畫布",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:"",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:""},u={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},o={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:""},r={clearReset:"【‼️ 警告 ‼️ 無法復原的動作】你確定要清空呢塊畫布嗎?",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"無嘢可以匯出喎~畫吓嘢先?",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},t={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},a={selection:"",image:"",rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},i={canvasActions:"畫布動作",selectedShapeActions:"",shapes:""},l={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},n={cannotShowPreview:"無法顯示預覽",canvasTooBig:"塊畫布太大啦,縮細啲先啦?",canvasTooBigTip:""},s={headingMain:"",clearCanvasMessage:"如果重新整理頁面都係睇唔到,你可以<button>清空畫布</button>",clearCanvasCaveat:"(注意:呢個動作會直接丟棄你嘅作品,並且無法復原)",trackedToSentry:"",openIssueMessage:"",sceneContent:""},d={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},c={title:""},F={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},m={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:""},p={title:""},g={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},E={title:"",content:""},b={resetLibrary:"",removeItemsFromLib:""},D={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},C={tooltip:"",link:""},A={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},B={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"畫布",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},h={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},y={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},v={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},S={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},w={title:"",button:"",description:"",syntax:"",preview:""},k={labels:e,library:u,buttons:o,alerts:r,errors:t,toolBar:a,headings:i,hints:l,canvasError:n,errorSplash:s,roomDialog:d,errorDialog:c,exportDialog:F,helpDialog:m,clearCanvasDialog:p,publishDialog:g,publishSuccessDialog:E,confirmDialog:b,imageExportDialog:D,encrypted:C,stats:A,toast:B,colors:h,welcomeScreen:y,colorPicker:v,overwriteConfirm:S,mermaid:w};exports.alerts=r;exports.buttons=o;exports.canvasError=n;exports.clearCanvasDialog=p;exports.colorPicker=v;exports.colors=h;exports.confirmDialog=b;exports.default=k;exports.encrypted=C;exports.errorDialog=c;exports.errorSplash=s;exports.errors=t;exports.exportDialog=F;exports.headings=i;exports.helpDialog=m;exports.hints=l;exports.imageExportDialog=D;exports.labels=e;exports.library=u;exports.mermaid=w;exports.overwriteConfirm=S;exports.publishDialog=g;exports.publishSuccessDialog=E;exports.roomDialog=d;exports.stats=A;exports.toast=B;exports.toolBar=a;exports.welcomeScreen=y;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { s as P, d as N, p as W } from "./layers.
|
|
2
|
-
import {
|
|
1
|
+
import { s as P, d as N, p as W } from "./layers.CTJ-kBok.js";
|
|
2
|
+
import { c as t, d as H, l as b, e as R, j as T, r as v, u as U } from "./layers.D_l2bI3p.js";
|
|
3
3
|
import "lodash-es";
|
|
4
4
|
import { l as C } from "./layers.D4T8fTcj.js";
|
|
5
5
|
import { G as F } from "./layers.BJDrjORS.js";
|
|
6
|
-
import "./layers.
|
|
6
|
+
import "./layers.RW6I02nN.js";
|
|
7
7
|
import "lodash-es/memoize.js";
|
|
8
8
|
import "lodash-es/merge.js";
|
|
9
9
|
import "lodash-es/isEmpty.js";
|
|
10
|
-
import { l as $ } from "./layers.
|
|
10
|
+
import { l as $ } from "./layers.DBEJYbLK.js";
|
|
11
11
|
const O = (e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), X = (e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), J = (e, i) => {
|
|
12
12
|
const o = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), c = o.node().getBBox();
|
|
13
13
|
return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", c.width + 2 * t().state.padding).attr("height", c.height + 2 * t().state.padding).attr("rx", t().state.radius), o;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.DFx1KN6R.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:"Полотно",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:""},E={noItems:"Тут поки пусто...",hint_emptyLibrary:"Виберіть об'єкт на полотні, щоб додати його сюди або встановіть бібліотеку з публічного репозиторію, що нижче.",hint_emptyPrivateLibrary:"Виберіть елемент на полотні, щоб додати його сюди."},D={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
2
|
|
|
3
3
|
(Якщо ви хочете зберегти локальний малюнок, просто закрийте замість нього вкладку браузера.)`,errorAddingToLibrary:"Не вдалося додати елемент до бібліотеки",errorRemovingFromLibrary:"Не вдалося видалити елемент з бібліотеки",confirmAddLibrary:"Це призведе до додавання {{numShapes}} фігур до вашої бібліотеки. Ви впевнені?",imageDoesNotContainScene:"Виглядає ніби зображення не містить корисної інформації. Ви увімкнули вбудовування сцени при експорті?",cannotRestoreFromImage:"Сцена не може бути відновлена з цього файлу зображення",invalidSceneUrl:"Не вдалося імпортувати сцену з наданого URL. Він або недоформований, або не містить дійсних даних Excalidraw JSON.",resetLibrary:"Це призведе до очищення бібліотеки. Ви впевнені?",removeItemsFromsLibrary:"Видалити {{count}} елемент(ів) з бібліотеки?",invalidEncryptionKey:"Ключ шифрування повинен бути довжиною до 22 символів. Спільну роботу вимкнено.",collabOfflineWarning:`Немає підключення до Інтернету.
|
|
4
4
|
Ваші зміни не будуть збережені!`},F={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:"Якщо вимкнення цього параметра не вирішує показ текстових елементів, тоді створіть, будь ласка, <issueLink>запит на розв'язання проблеми</issueLink> на нашому GitHub або напишіть нам у <discordLink>Discord</discordLink>"},libraryElementTypeError:{embeddable:"Вбудовані елементи не можна додати в бібліотеку.",iframe:"",image:"Підтримка додавання зображень в бібліотеку найближчим часом!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Виділення",image:"Вставити зображення",rectangle:"Прямокутник",diamond:"Ромб",ellipse:"Еліпс",arrow:"Стрілка",line:"Лінія",freedraw:"Малювати",text:"Текст",library:"Бібліотека",lock:"Залишити обраний інструмент після креслення",penMode:"Режим пера - запобігання дотику",link:"Додати/Оновити посилання для вибраної форми",eraser:"Очищувач",frame:"Інструмент фрейму",magicframe:"",embeddable:"Веб вкладення",laser:"",hand:"Рука (інструмент для панорамування)",extraTools:"Інші інструменти",mermaidToExcalidraw:"",magicSettings:""},o={canvasActions:"Дії з полотном",selectedShapeActions:"Вибрані дії з фігурою",shapes:"Фігури"},t={canvasPanning:"Щоб перемістити полотно, утримуйте коліщатко миші або пробіл під час перетягування, або скористайтеся інструментом Рука",linearElement:"Натисніть щоб додати кілька точок. Перетягніть щоб намалювати одну лінію",freeDraw:"Натисніть і потягніть, відпустіть коли завершите",text:"Порада: можна також додати текст, двічі клацнувши по будь-якому місці інструментом вибору",embeddable:"Клікніть та перетягніть для створення вбудованого вебсайту",text_selected:"Подвійний клік або натисніть клавішу ENTER, щоб редагувати текст",text_editing:"Натисніть клавішу Escape або Ctrl/Cmd+ENTER, щоб завершити редагування",linearElementMulti:"Натисніть на останню точку, клацніть Esc або Enter щоб завершити",lockAngle:"Ви можете обмежити кут, утримуюючи SHIFT",resize:`Ви можете зберегти пропорції, утримуючи SHIFT під час зміни розміру,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.D3uNYHNC.js"),i=require("./layers.BnasqWiQ.js"),j=require("./layers.B6n1RUi_.js");function G(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const m=G(P);function x(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:M(e),edges:F(e)};return m.isUndefined(e.graph())||(t.value=m.clone(e.graph())),t}function M(e){return m.map(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),s={v:t};return m.isUndefined(n)||(s.value=n),m.isUndefined(r)||(s.parent=r),s})}function F(e){return m.map(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return m.isUndefined(t.name)||(r.name=t.name),m.isUndefined(n)||(r.value=n),r})}let a={},w={},p={};const q=()=>{w={},p={},a={}},X=(e,t)=>(i.log$1.trace("In isDescendant",t," ",e," = ",w[t].includes(e)),!!w[t].includes(e)),_=(e,t)=>(i.log$1.info("Descendants of ",t," is ",w[t]),i.log$1.info("Edge is ",e),e.v===t||e.w===t?!1:w[t]?w[t].includes(e.v)||X(e.v,t)||X(e.w,t)||w[t].includes(e.w):(i.log$1.debug("Tilt, ",t,",not in descendants"),!1)),B=(e,t,n,r)=>{i.log$1.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const s=t.children(e)||[];e!==r&&s.push(e),i.log$1.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(o=>{if(t.children(o).length>0)B(o,t,n,r);else{const f=t.node(o);i.log$1.info("cp ",o," to ",r," with parent ",e),n.setNode(o,f),r!==t.parent(o)&&(i.log$1.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==r&&o!==e?(i.log$1.debug("Setting parent",o,e),n.setParent(o,e)):(i.log$1.info("In copy ",e,"root",r,"data",t.node(e),r),i.log$1.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==r,"node!==clusterId",o!==e));const g=t.edges(o);i.log$1.debug("Copying Edges",g),g.forEach(d=>{i.log$1.info("Edge",d);const h=t.edge(d.v,d.w,d.name);i.log$1.info("Edge data",h,r);try{_(d,r)?(i.log$1.info("Copying as ",d.v,d.w,h,d.name),n.setEdge(d.v,d.w,h,d.name),i.log$1.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.log$1.info("Skipping copy of edge ",d.v,"-->",d.w," rootId: ",r," clusterId:",e)}catch($){i.log$1.error($)}})}i.log$1.debug("Removing node",o),t.removeNode(o)})},D=(e,t)=>{const n=t.children(e);let r=[...n];for(const s of n)p[s]=e,r=[...r,...D(s,t)];return r},C=(e,t)=>{i.log$1.trace("Searching",e);const n=t.children(e);if(i.log$1.trace("Searching children of id ",e,n),n.length<1)return i.log$1.trace("This is a valid node",e),e;for(const r of n){const s=C(r,t);if(s)return i.log$1.trace("Found replacement for",e," => ",s),s}},S=e=>!a[e]||!a[e].externalConnections?e:a[e]?a[e].id:e,U=(e,t)=>{if(!e||t>10){i.log$1.debug("Opting out, no graph ");return}else i.log$1.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.log$1.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),w[n]=D(n,e),a[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),s=e.edges();r.length>0?(i.log$1.debug("Cluster identified",n,w),s.forEach(o=>{if(o.v!==n&&o.w!==n){const f=X(o.v,n),g=X(o.w,n);f^g&&(i.log$1.warn("Edge: ",o," leaves cluster ",n),i.log$1.warn("Descendants of XXX ",n,": ",w[n]),a[n].externalConnections=!0)}})):i.log$1.debug("Not a cluster ",n,w)});for(let n of Object.keys(a)){const r=a[n].id,s=e.parent(r);s!==n&&a[s]&&!a[s].externalConnections&&(a[n].id=s)}e.edges().forEach(function(n){const r=e.edge(n);i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,o=n.w;if(i.log$1.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a[n.v]," --- ",a[n.w]),a[n.v]&&a[n.w]&&a[n.v]===a[n.w]){i.log$1.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name);const f=n.w+"---"+n.v;e.setNode(f,{domId:f,id:f,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const g=structuredClone(r),d=structuredClone(r);g.label="",g.arrowTypeEnd="none",d.label="",g.fromCluster=n.v,d.toCluster=n.v,e.setEdge(s,f,g,n.name+"-cyclic-special"),e.setEdge(f,o,d,n.name+"-cyclic-special")}else if(a[n.v]||a[n.w]){if(i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){const f=e.parent(s);a[f].externalConnections=!0,r.fromCluster=n.v}if(o!==n.w){const f=e.parent(o);a[f].externalConnections=!0,r.toCluster=n.w}i.log$1.warn("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,r,n.name)}}),i.log$1.warn("Adjusted Graph",x(e)),T(e,0),i.log$1.trace(a)},T=(e,t)=>{if(i.log$1.warn("extractor - ",t,x(e),e.children("D")),t>10){i.log$1.error("Bailing out");return}let n=e.nodes(),r=!1;for(const s of n){const o=e.children(s);r=r||o.length>0}if(!r){i.log$1.debug("Done, no node has children",e.nodes());return}i.log$1.debug("Nodes = ",n,t);for(const s of n)if(i.log$1.debug("Extracting node",s,a,a[s]&&!a[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!a[s])i.log$1.debug("Not a cluster",s,t);else if(!a[s].externalConnections&&e.children(s)&&e.children(s).length>0){i.log$1.warn("Cluster without external connections, without a parent and with children",s,t);let f=e.graph().rankdir==="TB"?"LR":"TB";a[s]&&a[s].clusterData&&a[s].clusterData.dir&&(f=a[s].clusterData.dir,i.log$1.warn("Fixing dir",a[s].clusterData.dir,f));const g=new k.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:f,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.log$1.warn("Old graph before copy",x(e)),B(s,e,g,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:a[s].clusterData,labelText:a[s].labelText,graph:g}),i.log$1.warn("New graph after copy node: (",s,")",x(g)),i.log$1.debug("Old graph after copy",x(e))}else i.log$1.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!a[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.log$1.debug(a);n=e.nodes(),i.log$1.warn("New list of nodes",n);for(const s of n){const o=e.node(s);i.log$1.warn(" Now next level",s,o),o.clusterNode&&T(o.graph,t+1)}},O=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const s=e.children(r),o=O(e,s);n=[...n,...o]}),n},A=e=>O(e,e.children()),H=(e,t)=>{i.log$1.info("Creating subgraph rect for ",t.id,t);const n=i.getConfig(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),s=r.insert("rect",":first-child"),o=i.evaluate(n.flowchart.htmlLabels),f=r.insert("g").attr("class","cluster-label"),g=t.labelType==="markdown"?j.createText(f,t.labelText,{style:t.labelStyle,useHtmlLabels:o}):f.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}const h=0*t.padding,$=h/2,y=t.width<=d.width+h?d.width+h:t.width;t.width<=d.width+h?t.diff=(d.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,i.log$1.trace("Data ",t,JSON.stringify(t)),s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-y/2).attr("y",t.y-t.height/2-$).attr("width",y).attr("height",t.height+h);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o?f.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2+N})`):f.attr("transform",`translate(${t.x}, ${t.y-t.height/2+N})`);const b=s.node().getBBox();return t.width=b.width,t.height=b.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},V=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2-o).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.intersect=function(g){return u.intersectRect$1(t,g)},n},z=(e,t)=>{const n=i.getConfig(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),s=r.insert("rect",":first-child"),o=r.insert("g").attr("class","cluster-label"),f=r.append("rect"),g=o.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}d=g.getBBox();const h=0*t.padding,$=h/2,y=t.width<=d.width+t.padding?d.width+t.padding:t.width;t.width<=d.width+t.padding?t.diff=(d.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,s.attr("class","outer").attr("x",t.x-y/2-$).attr("y",t.y-t.height/2-$).attr("width",y+h).attr("height",t.height+h),f.attr("class","inner").attr("x",t.x-y/2-$).attr("y",t.y-t.height/2-$+d.height-1).attr("width",y+h).attr("height",t.height+h-d.height-3);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2-t.padding/3+(i.evaluate(n.flowchart.htmlLabels)?5:3)+N})`);const b=s.node().getBBox();return t.height=b.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},W=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.diff=-t.padding/2,t.intersect=function(g){return u.intersectRect$1(t,g)},n},K={rect:H,roundedWithTitle:z,noteGroup:V,divider:W};let R={};const Q=(e,t)=>{i.log$1.trace("Inserting cluster");const n=t.shape||"rect";R[t.id]=K[n](e,t)},Y=()=>{R={}},L=async(e,t,n,r,s,o)=>{i.log$1.info("Graph in recursive render: XXX",x(t),s);const f=t.graph().rankdir;i.log$1.trace("Dir in recursive render - dir:",f);const g=e.insert("g").attr("class","root");t.nodes()?i.log$1.info("Recursive render XXX",t.nodes()):i.log$1.info("No nodes found for",t),t.edges().length>0&&i.log$1.trace("Recursive edges",t.edge(t.edges()[0]));const d=g.insert("g").attr("class","clusters"),h=g.insert("g").attr("class","edgePaths"),$=g.insert("g").attr("class","edgeLabels"),y=g.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(l){const c=t.node(l);if(s!==void 0){const v=JSON.parse(JSON.stringify(s.clusterData));i.log$1.info("Setting data for cluster XXX (",l,") ",v,s),t.setNode(s.id,v),t.parent(l)||(i.log$1.trace("Setting parent",l,s.id),t.setParent(l,s.id,v))}if(i.log$1.info("(Insert) Node XXX"+l+": "+JSON.stringify(t.node(l))),c&&c.clusterNode){i.log$1.info("Cluster identified",l,c.width,t.node(l));const v=await L(y,c.graph,n,r,t.node(l),o),E=v.elem;u.updateNodeBounds(c,E),c.diff=v.diff||0,i.log$1.info("Node bounds (abc123)",l,c,c.width,c.x,c.y),u.setNodeElem(E,c),i.log$1.warn("Recursive render complete ",E,c)}else t.children(l).length>0?(i.log$1.info("Cluster - the non recursive path XXX",l,c.id,c,t),i.log$1.info(C(c.id,t)),a[c.id]={id:C(c.id,t),node:c}):(i.log$1.info("Node - the non recursive path",l,c.id,c),await u.insertNode(y,t.node(l),f))})),t.edges().forEach(function(l){const c=t.edge(l.v,l.w,l.name);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l)),i.log$1.info("Edge "+l.v+" -> "+l.w+": ",l," ",JSON.stringify(t.edge(l))),i.log$1.info("Fix",a,"ids:",l.v,l.w,"Translating: ",a[l.v],a[l.w]),u.insertEdgeLabel($,c)}),t.edges().forEach(function(l){i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l))}),i.log$1.info("#############################################"),i.log$1.info("### Layout ###"),i.log$1.info("#############################################"),i.log$1.info(t),J.layout(t),i.log$1.info("Graph after layout:",x(t));let N=0;const{subGraphTitleTotalMargin:b}=u.getSubGraphTitleMargins(o);return A(t).forEach(function(l){const c=t.node(l);i.log$1.info("Position "+l+": "+JSON.stringify(t.node(l))),i.log$1.info("Position "+l+": ("+c.x,","+c.y,") width: ",c.width," height: ",c.height),c&&c.clusterNode?(c.y+=b,u.positionNode(c)):t.children(l).length>0?(c.height+=b,Q(d,c),a[c.id].node=c):(c.y+=b/2,u.positionNode(c))}),t.edges().forEach(function(l){const c=t.edge(l);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(c),c),c.points.forEach(E=>E.y+=b/2);const v=u.insertEdge(h,l,c,a,n,t,r);u.positionEdgeLabel(c,v)}),t.nodes().forEach(function(l){const c=t.node(l);i.log$1.info(l,c.type,c.diff),c.type==="group"&&(N=c.diff)}),{elem:g,diff:N}},Z=async(e,t,n,r,s)=>{u.insertMarkers$1(e,n,r,s),u.clear$1(),u.clear(),Y(),q(),i.log$1.warn("Graph at first:",JSON.stringify(x(t))),U(t),i.log$1.warn("Graph after:",JSON.stringify(x(t)));const o=i.getConfig();await L(e,t,r,s,void 0,o)};exports.render=Z;
|
|
1
|
+
"use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.CHFB_eKu.js"),i=require("./layers.BX033us8.js"),j=require("./layers.BCQaDFTY.js");function G(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const m=G(P);function x(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:M(e),edges:F(e)};return m.isUndefined(e.graph())||(t.value=m.clone(e.graph())),t}function M(e){return m.map(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),s={v:t};return m.isUndefined(n)||(s.value=n),m.isUndefined(r)||(s.parent=r),s})}function F(e){return m.map(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return m.isUndefined(t.name)||(r.name=t.name),m.isUndefined(n)||(r.value=n),r})}let a={},w={},p={};const q=()=>{w={},p={},a={}},X=(e,t)=>(i.log$1.trace("In isDescendant",t," ",e," = ",w[t].includes(e)),!!w[t].includes(e)),_=(e,t)=>(i.log$1.info("Descendants of ",t," is ",w[t]),i.log$1.info("Edge is ",e),e.v===t||e.w===t?!1:w[t]?w[t].includes(e.v)||X(e.v,t)||X(e.w,t)||w[t].includes(e.w):(i.log$1.debug("Tilt, ",t,",not in descendants"),!1)),B=(e,t,n,r)=>{i.log$1.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const s=t.children(e)||[];e!==r&&s.push(e),i.log$1.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(o=>{if(t.children(o).length>0)B(o,t,n,r);else{const f=t.node(o);i.log$1.info("cp ",o," to ",r," with parent ",e),n.setNode(o,f),r!==t.parent(o)&&(i.log$1.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==r&&o!==e?(i.log$1.debug("Setting parent",o,e),n.setParent(o,e)):(i.log$1.info("In copy ",e,"root",r,"data",t.node(e),r),i.log$1.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==r,"node!==clusterId",o!==e));const g=t.edges(o);i.log$1.debug("Copying Edges",g),g.forEach(d=>{i.log$1.info("Edge",d);const h=t.edge(d.v,d.w,d.name);i.log$1.info("Edge data",h,r);try{_(d,r)?(i.log$1.info("Copying as ",d.v,d.w,h,d.name),n.setEdge(d.v,d.w,h,d.name),i.log$1.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.log$1.info("Skipping copy of edge ",d.v,"-->",d.w," rootId: ",r," clusterId:",e)}catch($){i.log$1.error($)}})}i.log$1.debug("Removing node",o),t.removeNode(o)})},D=(e,t)=>{const n=t.children(e);let r=[...n];for(const s of n)p[s]=e,r=[...r,...D(s,t)];return r},C=(e,t)=>{i.log$1.trace("Searching",e);const n=t.children(e);if(i.log$1.trace("Searching children of id ",e,n),n.length<1)return i.log$1.trace("This is a valid node",e),e;for(const r of n){const s=C(r,t);if(s)return i.log$1.trace("Found replacement for",e," => ",s),s}},S=e=>!a[e]||!a[e].externalConnections?e:a[e]?a[e].id:e,U=(e,t)=>{if(!e||t>10){i.log$1.debug("Opting out, no graph ");return}else i.log$1.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.log$1.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),w[n]=D(n,e),a[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),s=e.edges();r.length>0?(i.log$1.debug("Cluster identified",n,w),s.forEach(o=>{if(o.v!==n&&o.w!==n){const f=X(o.v,n),g=X(o.w,n);f^g&&(i.log$1.warn("Edge: ",o," leaves cluster ",n),i.log$1.warn("Descendants of XXX ",n,": ",w[n]),a[n].externalConnections=!0)}})):i.log$1.debug("Not a cluster ",n,w)});for(let n of Object.keys(a)){const r=a[n].id,s=e.parent(r);s!==n&&a[s]&&!a[s].externalConnections&&(a[n].id=s)}e.edges().forEach(function(n){const r=e.edge(n);i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,o=n.w;if(i.log$1.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a[n.v]," --- ",a[n.w]),a[n.v]&&a[n.w]&&a[n.v]===a[n.w]){i.log$1.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name);const f=n.w+"---"+n.v;e.setNode(f,{domId:f,id:f,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const g=structuredClone(r),d=structuredClone(r);g.label="",g.arrowTypeEnd="none",d.label="",g.fromCluster=n.v,d.toCluster=n.v,e.setEdge(s,f,g,n.name+"-cyclic-special"),e.setEdge(f,o,d,n.name+"-cyclic-special")}else if(a[n.v]||a[n.w]){if(i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){const f=e.parent(s);a[f].externalConnections=!0,r.fromCluster=n.v}if(o!==n.w){const f=e.parent(o);a[f].externalConnections=!0,r.toCluster=n.w}i.log$1.warn("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,r,n.name)}}),i.log$1.warn("Adjusted Graph",x(e)),T(e,0),i.log$1.trace(a)},T=(e,t)=>{if(i.log$1.warn("extractor - ",t,x(e),e.children("D")),t>10){i.log$1.error("Bailing out");return}let n=e.nodes(),r=!1;for(const s of n){const o=e.children(s);r=r||o.length>0}if(!r){i.log$1.debug("Done, no node has children",e.nodes());return}i.log$1.debug("Nodes = ",n,t);for(const s of n)if(i.log$1.debug("Extracting node",s,a,a[s]&&!a[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!a[s])i.log$1.debug("Not a cluster",s,t);else if(!a[s].externalConnections&&e.children(s)&&e.children(s).length>0){i.log$1.warn("Cluster without external connections, without a parent and with children",s,t);let f=e.graph().rankdir==="TB"?"LR":"TB";a[s]&&a[s].clusterData&&a[s].clusterData.dir&&(f=a[s].clusterData.dir,i.log$1.warn("Fixing dir",a[s].clusterData.dir,f));const g=new k.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:f,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.log$1.warn("Old graph before copy",x(e)),B(s,e,g,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:a[s].clusterData,labelText:a[s].labelText,graph:g}),i.log$1.warn("New graph after copy node: (",s,")",x(g)),i.log$1.debug("Old graph after copy",x(e))}else i.log$1.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!a[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.log$1.debug(a);n=e.nodes(),i.log$1.warn("New list of nodes",n);for(const s of n){const o=e.node(s);i.log$1.warn(" Now next level",s,o),o.clusterNode&&T(o.graph,t+1)}},O=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const s=e.children(r),o=O(e,s);n=[...n,...o]}),n},A=e=>O(e,e.children()),H=(e,t)=>{i.log$1.info("Creating subgraph rect for ",t.id,t);const n=i.getConfig(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),s=r.insert("rect",":first-child"),o=i.evaluate(n.flowchart.htmlLabels),f=r.insert("g").attr("class","cluster-label"),g=t.labelType==="markdown"?j.createText(f,t.labelText,{style:t.labelStyle,useHtmlLabels:o}):f.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}const h=0*t.padding,$=h/2,y=t.width<=d.width+h?d.width+h:t.width;t.width<=d.width+h?t.diff=(d.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,i.log$1.trace("Data ",t,JSON.stringify(t)),s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-y/2).attr("y",t.y-t.height/2-$).attr("width",y).attr("height",t.height+h);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o?f.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2+N})`):f.attr("transform",`translate(${t.x}, ${t.y-t.height/2+N})`);const b=s.node().getBBox();return t.width=b.width,t.height=b.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},V=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2-o).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.intersect=function(g){return u.intersectRect$1(t,g)},n},z=(e,t)=>{const n=i.getConfig(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),s=r.insert("rect",":first-child"),o=r.insert("g").attr("class","cluster-label"),f=r.append("rect"),g=o.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}d=g.getBBox();const h=0*t.padding,$=h/2,y=t.width<=d.width+t.padding?d.width+t.padding:t.width;t.width<=d.width+t.padding?t.diff=(d.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,s.attr("class","outer").attr("x",t.x-y/2-$).attr("y",t.y-t.height/2-$).attr("width",y+h).attr("height",t.height+h),f.attr("class","inner").attr("x",t.x-y/2-$).attr("y",t.y-t.height/2-$+d.height-1).attr("width",y+h).attr("height",t.height+h-d.height-3);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2-t.padding/3+(i.evaluate(n.flowchart.htmlLabels)?5:3)+N})`);const b=s.node().getBBox();return t.height=b.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},W=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.diff=-t.padding/2,t.intersect=function(g){return u.intersectRect$1(t,g)},n},K={rect:H,roundedWithTitle:z,noteGroup:V,divider:W};let R={};const Q=(e,t)=>{i.log$1.trace("Inserting cluster");const n=t.shape||"rect";R[t.id]=K[n](e,t)},Y=()=>{R={}},L=async(e,t,n,r,s,o)=>{i.log$1.info("Graph in recursive render: XXX",x(t),s);const f=t.graph().rankdir;i.log$1.trace("Dir in recursive render - dir:",f);const g=e.insert("g").attr("class","root");t.nodes()?i.log$1.info("Recursive render XXX",t.nodes()):i.log$1.info("No nodes found for",t),t.edges().length>0&&i.log$1.trace("Recursive edges",t.edge(t.edges()[0]));const d=g.insert("g").attr("class","clusters"),h=g.insert("g").attr("class","edgePaths"),$=g.insert("g").attr("class","edgeLabels"),y=g.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(l){const c=t.node(l);if(s!==void 0){const v=JSON.parse(JSON.stringify(s.clusterData));i.log$1.info("Setting data for cluster XXX (",l,") ",v,s),t.setNode(s.id,v),t.parent(l)||(i.log$1.trace("Setting parent",l,s.id),t.setParent(l,s.id,v))}if(i.log$1.info("(Insert) Node XXX"+l+": "+JSON.stringify(t.node(l))),c&&c.clusterNode){i.log$1.info("Cluster identified",l,c.width,t.node(l));const v=await L(y,c.graph,n,r,t.node(l),o),E=v.elem;u.updateNodeBounds(c,E),c.diff=v.diff||0,i.log$1.info("Node bounds (abc123)",l,c,c.width,c.x,c.y),u.setNodeElem(E,c),i.log$1.warn("Recursive render complete ",E,c)}else t.children(l).length>0?(i.log$1.info("Cluster - the non recursive path XXX",l,c.id,c,t),i.log$1.info(C(c.id,t)),a[c.id]={id:C(c.id,t),node:c}):(i.log$1.info("Node - the non recursive path",l,c.id,c),await u.insertNode(y,t.node(l),f))})),t.edges().forEach(function(l){const c=t.edge(l.v,l.w,l.name);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l)),i.log$1.info("Edge "+l.v+" -> "+l.w+": ",l," ",JSON.stringify(t.edge(l))),i.log$1.info("Fix",a,"ids:",l.v,l.w,"Translating: ",a[l.v],a[l.w]),u.insertEdgeLabel($,c)}),t.edges().forEach(function(l){i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l))}),i.log$1.info("#############################################"),i.log$1.info("### Layout ###"),i.log$1.info("#############################################"),i.log$1.info(t),J.layout(t),i.log$1.info("Graph after layout:",x(t));let N=0;const{subGraphTitleTotalMargin:b}=u.getSubGraphTitleMargins(o);return A(t).forEach(function(l){const c=t.node(l);i.log$1.info("Position "+l+": "+JSON.stringify(t.node(l))),i.log$1.info("Position "+l+": ("+c.x,","+c.y,") width: ",c.width," height: ",c.height),c&&c.clusterNode?(c.y+=b,u.positionNode(c)):t.children(l).length>0?(c.height+=b,Q(d,c),a[c.id].node=c):(c.y+=b/2,u.positionNode(c))}),t.edges().forEach(function(l){const c=t.edge(l);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(c),c),c.points.forEach(E=>E.y+=b/2);const v=u.insertEdge(h,l,c,a,n,t,r);u.positionEdgeLabel(c,v)}),t.nodes().forEach(function(l){const c=t.node(l);i.log$1.info(l,c.type,c.diff),c.type==="group"&&(N=c.diff)}),{elem:g,diff:N}},Z=async(e,t,n,r,s)=>{u.insertMarkers$1(e,n,r,s),u.clear$1(),u.clear(),Y(),q(),i.log$1.warn("Graph at first:",JSON.stringify(x(t))),U(t),i.log$1.warn("Graph after:",JSON.stringify(x(t)));const o=i.getConfig();await L(e,t,r,s,void 0,o)};exports.render=Z;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as ut, o as rt,
|
|
1
|
+
import { n as ut, o as rt, s as at, g as lt, a as ct, b as ot, c as F, j as v, u as He, l as ht, q as At, i as pt, X as Re, d as z } from "./layers.D_l2bI3p.js";
|
|
2
2
|
var Ve = (function() {
|
|
3
3
|
var e = function(x, u, a, h) {
|
|
4
4
|
for (a = a || {}, h = x.length; h--; a[x[h]] = u)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as vt, o as Ct, s as Ot,
|
|
2
|
-
import "./layers.
|
|
1
|
+
import { n as vt, o as Ct, s as Ot, g as Pt, a as Gt, b as St, c as C, l as B, d as At, u as It, y as Nt, q as Ht, j as D, z as Bt } from "./layers.D_l2bI3p.js";
|
|
2
|
+
import "./layers.RW6I02nN.js";
|
|
3
3
|
import "lodash-es/memoize.js";
|
|
4
4
|
import "lodash-es/merge.js";
|
|
5
5
|
import "lodash-es/isEmpty.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.RW6I02nN.js";
|
|
2
2
|
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: "", layers: "", actions: "การกระทำ", language: "ภาษา", liveCollaboration: "", duplicateSelection: "ทำสำเนา", untitled: "ไม่มีชื่อ", name: "ชื่อ", yourName: "ชื่อของคุณ", madeWithExcalidraw: "", 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: "" }, E = { 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: "โหมด Zen", objectsSnapMode: "", exitZenMode: "ออกจากโหมด Zen", cancel: "ยกเลิก", clear: "เคลียร์", remove: "ลบ", embed: "สลับการฝัง", publishLibrary: "เผยแพร่", submit: "ตกลง", confirm: "ยืนยัน", embeddableInteractionButton: "คลิกเพื่อปฏิสัมพันธ์" }, a = { clearReset: "", couldNotCreateShareableLink: "ไม่สามารถสร้างลิงค์ได้", couldNotCreateShareableLinkTooBig: "", couldNotLoadInvalidFile: "ไม่สามารถโหลดไฟล์ที่ผิดพลาดได้", importBackendFailed: "เกิดข้อผิดพลาดจากการนำเข้าจากระบบหลังบ้าน", cannotExportEmptyCanvas: "ไม่สามารถนำออกจากผืนผ้าใบที่ว่างเปล่าได้", couldNotCopyToClipboard: "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้", decryptFailed: "ไม่สามารถถอดรหัสข้อมูลได้", uploadedSecurly: "การอัพโหลดได้ถูกเข้ารหัสแบบ end-to-end หมายความว่าเซิร์ฟเวอร์ของ Excalidraw และบุคคลอื่นไม่สามารถอ่านข้อมูลได้", loadSceneOverridePrompt: "", collabStopOverridePrompt: "", errorAddingToLibrary: "ไม่สามารถเพิ่มรายการเข้าไปในคลังได้", errorRemovingFromLibrary: "ไม่สามารถลบรายการนี้ออกจากคลังได้", confirmAddLibrary: "", imageDoesNotContainScene: "", cannotRestoreFromImage: "", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "", invalidEncryptionKey: "", collabOfflineWarning: "" }, o = { unsupportedFileType: "ไม่รองรับชนิดของไฟล์นี้", imageInsertError: "ไม่สามารถเพิ่มรูปภาพได้ ลองอีกครั้งในภายหลัง", fileTooBig: "", svgImageInsertError: "", failedToFetchImage: "", invalidSVGString: "ไฟล์ SVG ผิดพลาด", cannotResolveCollabServer: "ไม่สามารถเชื่อต่อกับ collab เซิร์ฟเวอร์ได้ โปรดลองโหลดหน้านี้ใหม่และลองอีกครั้ง", importLibraryError: "", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "การเพิ่มองค์ประกอบที่ฝังยังไม่สามารถเพิ่มเข้าไปในไลบลารีได้", iframe: "", image: "การสนับสนุนสำหรับเพิ่มรูปภาพลงในไลบลารีจะมาในเร็ว ๆ นี้" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, r = { selection: "", image: "", rectangle: "สี่เหลี่ยมผืนผ้า", diamond: "", ellipse: "วงรี", arrow: "ลูกศร", line: "", freedraw: "", text: "ข้อความ", library: "คลัง", lock: "", penMode: "", link: "", eraser: "ยางลบ", frame: "", magicframe: "", embeddable: "ฝังเว็บ", laser: "", hand: "", extraTools: "เครื่องมืออื่นๆ", mermaidToExcalidraw: "", magicSettings: "" }, t = { canvasActions: "", selectedShapeActions: "", shapes: "รูปร่าง" }, i = { canvasPanning: "", linearElement: "", freeDraw: "", text: "", embeddable: "คลิกและลากเพื่อสร้างการฝังสำหรับเว็บไซต์", text_selected: "คลิกสองครั้งหรือกด ENTER เพื่อแก้ไขข้อความ", text_editing: "กดปุ่ม Esc หรือกด Ctrl, Cmd + Enter เพื่อเสร็จการแก้ไข", linearElementMulti: "คลิกที่จุดสุดท้ายหรือกด Escape หรือ Enter เพื่อเสร็จสิ้น", lockAngle: "", resize: "", resizeImage: "", rotate: "", lineEditor_info: "", lineEditor_pointSelected: `กดปุ่ม Delete เพื่อลบจุด
|
|
3
3
|
กด Ctrl หรือ Cmd + D เพื่อทำซ้ำหรือลากเพื่อเคลื่อนย้าย`, lineEditor_nothingSelected: "", placeImage: "", publishLibrary: "", bindTextToElement: "", deepBoxSelect: "", eraserRevert: "", firefox_clipboard_write: "", disableSnapping: "" }, l = { cannotShowPreview: "", canvasTooBig: "", canvasTooBigTip: "" }, n = { headingMain: "<button>กำลังรีโหลดหน้า</button>", clearCanvasMessage: "ถ้าโหลดไม่ได้ ให้ลอง <button>เคลียร์ผืนผ้าใบ</button>", clearCanvasCaveat: "", trackedToSentry: "", openIssueMessage: "", sceneContent: "" }, s = { desc_intro: "", desc_privacy: "", button_startSession: "เริ่มเซสชัน", button_stopSession: "หยุดเซสชัน", desc_inProgressIntro: "", desc_shareLink: "", desc_exitSession: "", shareTitle: "" }, d = { title: "" }, c = { disk_title: "", disk_details: "", disk_button: "", link_title: "", link_details: "", link_button: "", excalidrawplus_description: "", excalidrawplus_button: "", excalidrawplus_exportError: "ไม่สามารถส่งออกไปที่ Excalidraw+ ได้ในขณะนี้" }, D = { 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: "ย้ายหน้าไปด้าน ซ้าย/ขวา" }, A = { title: "" }, B = { title: "", itemName: "", authorName: "ชื่อเจ้าของ", githubUsername: "ชื่อผู้ใช้ GitHub", twitterUsername: "ชื่อผู้ใช้ Twitter", libraryName: "", libraryDesc: "", website: "", placeholder: { authorName: "", libraryName: "", libraryDesc: "", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "", website: "" }, noteDescription: "", noteGuidelines: "", noteLicense: "", noteItems: "", atleastOneLibItem: "", republishWarning: "" }, m = { title: "", content: "" }, p = { resetLibrary: "", removeItemsFromLib: "" }, g = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "โหมดกลางคืน", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "ส่งออกไปเป็น SVG", exportToSvg: "ส่งออกไปเป็น SVG", copyPngToClipboard: "คัดลอก PNG ไปยังคลิปบอร์ด" }, button: { exportToPng: "PNG", exportToSvg: "SVG", copyPngToClipboard: "คัดลอกไปยังคลิปบอร์ด" } }, b = { tooltip: "", link: "" }, C = { angle: "", element: "", elements: "", height: "", scene: "", selected: "", storage: "", title: "", total: "", version: "", versionCopy: "", versionNotAvailable: "", width: "" }, h = { addedToLibrary: "", copyStyles: "", copyToClipboard: "", copyToClipboardAsPng: "", fileSaved: "", fileSavedToFilename: "", canvas: "", selection: "", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, y = { transparent: "", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "ฟ้าน้ำทะเล", green: "เขียว", yellow: "เหลือง", orange: "ส้ม", bronze: "ทองแดง" }, S = { app: { center_heading: "", center_heading_plus: "", menuHint: "" }, defaults: { menuHint: "", center_heading: "", toolbarHint: "", helpHint: "" } }, v = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, w = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, x = { title: "", button: "", description: "", syntax: "", preview: "" }, T = { labels: u, library: E, buttons: e, alerts: a, errors: o, toolBar: r, headings: t, hints: i, canvasError: l, errorSplash: n, roomDialog: s, errorDialog: d, exportDialog: c, helpDialog: D, clearCanvasDialog: A, publishDialog: B, publishSuccessDialog: m, confirmDialog: p, imageExportDialog: g, encrypted: b, stats: C, toast: h, colors: y, welcomeScreen: S, colorPicker: v, overwriteConfirm: w, mermaid: x };
|
|
4
4
|
export {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { s as M, d as _, p as R } from "./layers.
|
|
2
|
-
import { l as d,
|
|
1
|
+
import { s as M, d as _, p as R } from "./layers.CfalEmfr.js";
|
|
2
|
+
import { l as d, c, d as w, u as B, Y as G, _ as D, $ as E, a0 as C, j as $ } from "./layers.D_l2bI3p.js";
|
|
3
3
|
import { G as z } from "./layers.BJDrjORS.js";
|
|
4
|
-
import { r as P } from "./layers.
|
|
5
|
-
import "./layers.
|
|
4
|
+
import { r as P } from "./layers.C7HsM9D3.js";
|
|
5
|
+
import "./layers.RW6I02nN.js";
|
|
6
6
|
import "lodash-es/memoize.js";
|
|
7
7
|
import "lodash-es/merge.js";
|
|
8
8
|
import "lodash-es/isEmpty.js";
|
|
9
9
|
import "lodash-es";
|
|
10
10
|
import "./layers.D4T8fTcj.js";
|
|
11
|
-
const S = (s) =>
|
|
11
|
+
const S = (s) => $.sanitizeText(s, c());
|
|
12
12
|
let k = {
|
|
13
13
|
dividerMargin: 10,
|
|
14
14
|
padding: 5,
|
|
@@ -35,7 +35,7 @@ const q = function(s, t, y, a) {
|
|
|
35
35
|
const i = Object.keys(s);
|
|
36
36
|
d.info("keys:", i), d.info(s), i.filter((o) => s[o].parent == e).forEach(function(o) {
|
|
37
37
|
var r, l;
|
|
38
|
-
const n = s[o], p = n.cssClasses.join(" "), f =
|
|
38
|
+
const n = s[o], p = n.cssClasses.join(" "), f = D(n.styles), h = n.label ?? n.id, u = 0, b = {
|
|
39
39
|
labelStyle: f.labelStyle,
|
|
40
40
|
shape: "class_box",
|
|
41
41
|
labelText: S(h),
|
|
@@ -92,7 +92,7 @@ const q = function(s, t, y, a) {
|
|
|
92
92
|
arrowTypeEnd: "none",
|
|
93
93
|
style: "fill:none",
|
|
94
94
|
labelStyle: "",
|
|
95
|
-
curve:
|
|
95
|
+
curve: E(k.curve, C)
|
|
96
96
|
};
|
|
97
97
|
t.setEdge(l.id, l.class, x, b);
|
|
98
98
|
});
|
|
@@ -117,13 +117,13 @@ const q = function(s, t, y, a) {
|
|
|
117
117
|
arrowTypeEnd: N(e.relation.type2),
|
|
118
118
|
style: "fill:none",
|
|
119
119
|
labelStyle: "",
|
|
120
|
-
curve:
|
|
120
|
+
curve: E(y == null ? void 0 : y.curve, C)
|
|
121
121
|
};
|
|
122
122
|
if (d.info(o, e), e.style !== void 0) {
|
|
123
|
-
const r =
|
|
123
|
+
const r = D(e.style);
|
|
124
124
|
o.style = r.style, o.labelStyle = r.labelStyle;
|
|
125
125
|
}
|
|
126
|
-
e.text = e.title, e.text === void 0 ? e.style !== void 0 && (o.arrowheadStyle = "fill: #333") : (o.arrowheadStyle = "fill: #333", o.labelpos = "c", ((i = c().flowchart) == null ? void 0 : i.htmlLabels) ?? c().htmlLabels ? (o.labelType = "html", o.label = '<span class="edgeLabel">' + e.text + "</span>") : (o.labelType = "text", o.label = e.text.replace(
|
|
126
|
+
e.text = e.title, e.text === void 0 ? e.style !== void 0 && (o.arrowheadStyle = "fill: #333") : (o.arrowheadStyle = "fill: #333", o.labelpos = "c", ((i = c().flowchart) == null ? void 0 : i.htmlLabels) ?? c().htmlLabels ? (o.labelType = "html", o.label = '<span class="edgeLabel">' + e.text + "</span>") : (o.labelType = "text", o.label = e.text.replace($.lineBreakRegex, `
|
|
127
127
|
`), e.style === void 0 && (o.style = o.style || "stroke: #333; stroke-width: 1.5px;fill:none"), o.labelStyle = o.labelStyle.replace("color:", "fill:"))), t.setEdge(e.id1, e.id2, o, a);
|
|
128
128
|
});
|
|
129
129
|
}, V = function(s) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.DFx1KN6R.js");var a={paste:"Tempel",pasteAsPlaintext:"Tempel sebagai teks biasa",pasteCharts:"Tempel diagram",selectAll:"Pilih semua",multiSelect:"Tambahkan elemen ke pilihan",moveCanvas:"Pindahkan kanvas",cut:"Potong",copy:"Salin",copyAsPng:"Salin ke papan klip sebagai PNG",copyAsSvg:"Salin ke papan klip sebagai SVG",copyText:"Salin ke papan klip sebagai teks",copySource:"",convertToCode:"",bringForward:"Bawa maju",sendToBack:"Kirim ke belakang",bringToFront:"Bawa ke depan",sendBackward:"Kirim mundur",delete:"Hapus",copyStyles:"Salin gaya",pasteStyles:"Tempelkan gaya",stroke:"Guratan",background:"Latar",fill:"Isian",strokeWidth:"Lebar guratan",strokeStyle:"Gaya guratan",strokeStyle_solid:"Padat",strokeStyle_dashed:"Putus-putus",strokeStyle_dotted:"Titik-titik",sloppiness:"Kecerobohan",opacity:"Keburaman",textAlign:"Perataan teks",edges:"Tepi",sharp:"Tajam",round:"Bulat",arrowheads:"Mata panah",arrowhead_none:"Tidak ada",arrowhead_arrow:"Panah",arrowhead_bar:"Batang",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Segitiga",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Ukuran font",fontFamily:"Jenis font",addWatermark:'Tambahkan "Dibuat dengan Excalidraw"',handDrawn:"Tulisan tangan",normal:"Normal",code:"Kode",small:"Kecil",medium:"Sedang",large:"Besar",veryLarge:"Sangat besar",solid:"Padat",hachure:"Garis-garis",zigzag:"Zigzag",crossHatch:"Asiran silang",thin:"Lembut",bold:"Tebal",left:"Kiri",center:"Tengah",right:"Kanan",extraBold:"Sangat tebal",architect:"Arsitek",artist:"Artis",cartoonist:"Kartunis",fileTitle:"Nama file",colorPicker:"Pilihan Warna",canvasColors:"Digunakan di kanvas",canvasBackground:"Latar Kanvas",drawingCanvas:"Kanvas",layers:"Lapisan",actions:"Aksi",language:"Bahasa",liveCollaboration:"Kolaborasi langsung...",duplicateSelection:"Duplikat",untitled:"Tanpa judul",name:"Nama",yourName:"Nama Anda",madeWithExcalidraw:"Dibuat dengan Excalidraw",group:"Kelompokan pilihan",ungroup:"Pisahkan pilihan",collaborators:"Kolaborator",showGrid:"Tampilkan grid",addToLibrary:"Tambahkan ke pustaka",removeFromLibrary:"Hapus dari pustaka",libraryLoadingMessage:"Memuat pustaka…",libraries:"Telusur pustaka",loadingScene:"Memuat pemandangan…",align:"Perataan",alignTop:"Rata atas",alignBottom:"Rata bawah",alignLeft:"Rata kiri",alignRight:"Rata kanan",centerVertically:"Pusatkan secara vertikal",centerHorizontally:"Pusatkan secara horizontal",distributeHorizontally:"Distribusikan horizontal",distributeVertically:"Distribusikan vertikal",flipHorizontal:"Balikkan horizontal",flipVertical:"Balikkan vertikal",viewMode:"Mode tampilan",share:"Bagikan",showStroke:"Tampilkan garis pengambil warna",showBackground:"Tampilkan latar pengambil warna",toggleTheme:"Ubah tema",personalLib:"Pustaka Pribadi",excalidrawLib:"Pustaka Excalidraw",decreaseFontSize:"Kecilkan ukuran font",increaseFontSize:"Besarkan ukuran font",unbindText:"Lepas teks",bindText:"Kunci teks ke kontainer",createContainerFromText:"Bungkus teks dalam kontainer",link:{edit:"Edit tautan",editEmbed:"",create:"Buat tautan",createEmbed:"",label:"Tautan",labelEmbed:"",empty:""},lineEditor:{edit:"Edit tautan",exit:"Keluar editor garis"},elementLock:{lock:"Kunci",unlock:"Lepas",lockAll:"Kunci semua",unlockAll:"Lepas semua"},statusPublished:"Telah terbit",sidebarLock:"Biarkan sidebar tetap terbuka",selectAllElementsInFrame:"Pilih semua elemen di bingkai",removeAllElementsFromFrame:"Hapus semua elemen dari bingkai",eyeDropper:"Ambil warna dari kanvas",textToDiagram:"",prompt:""},e={noItems:"Belum ada item yang ditambahkan...",hint_emptyLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini, atau pasang pustaka dari gudang di bawah ini.",hint_emptyPrivateLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini."},n={clearReset:"Setel Ulang Kanvas",exportJSON:"Ekspor ke file",exportImage:"Ekspor gambar...",export:"Simpan ke...",copyToClipboard:"Salin ke Papan Klip",save:"Simpan ke file sekarang",saveAs:"Simpan sebagai",load:"Buka",getShareableLink:"Buat Tautan yang Bisa Dibagian",close:"Tutup",selectLanguage:"Pilih bahasa",scrollBackToContent:"Gulir kembali ke konten",zoomIn:"Besarkan",zoomOut:"Kecilkan",resetZoom:"Reset Pembesaran",menu:"Menu",done:"Selesai",edit:"Edit",undo:"Urungkan",redo:"Ulangi",resetLibrary:"Reset pustaka",createNewRoom:"Buat ruang baru",fullScreen:"Layar penuh",darkMode:"Mode gelap",lightMode:"Mode terang",zenMode:"Mode zen",objectsSnapMode:"",exitZenMode:"Keluar dari mode zen",cancel:"Batal",clear:"Hapus",remove:"Hapus",embed:"",publishLibrary:"Terbitkan",submit:"Kirimkan",confirm:"Konfirmasi",embeddableInteractionButton:""},i={clearReset:"Ini akan menghapus semua yang ada dikanvas. Apakah kamu yakin ?",couldNotCreateShareableLink:"Tidak bisa membuat tautan yang bisa dibagikan",couldNotCreateShareableLinkTooBig:"Tidak dapat membuat tautan yang dapat dibagikan: pemandangan terlalu besar",couldNotLoadInvalidFile:"Tidak dapat memuat berkas yang tidak valid",importBackendFailed:"Gagal mengimpor dari backend",cannotExportEmptyCanvas:"Tidak bisa mengekspor kanvas kosong",couldNotCopyToClipboard:"Tidak bisa menyalin ke papan klip.",decryptFailed:"Tidak dapat mengdekripsi data.",uploadedSecurly:"Pengunggahan ini telah diamankan menggunakan enkripsi end-to-end, artinya server Excalidraw dan pihak ketiga tidak data membaca nya",loadSceneOverridePrompt:"Memuat gambar external akan mengganti konten Anda yang ada. Apakah Anda ingin melanjutkan?",collabStopOverridePrompt:`Menghentikan sesi akan menimpa gambar Anda yang tersimpan secara lokal. Anda yakin?
|
|
2
2
|
|
|
3
3
|
(Jika Anda ingin menyimpan gambar lokal Anda, gantinya cukup tutup tab browser.)`,errorAddingToLibrary:"Tidak dapat menambahkan item ke pustaka",errorRemovingFromLibrary:"Tidak dapat membuang item dari pustaka",confirmAddLibrary:"Ini akan menambahkan {{numShapes}} bentuk ke pustaka Anda. Anda yakin?",imageDoesNotContainScene:"Gambar ini sepertinya tidak terdapat data pemandangan. Sudahkah Anda mengaktifkan penyematan pemandangan ketika ekspor?",cannotRestoreFromImage:"Pemandangan tidak dapat dipulihkan dari file gambar ini",invalidSceneUrl:"Tidak dapat impor pemandangan dari URL. Kemungkinan URL itu rusak atau tidak berisi data JSON Excalidraw yang valid.",resetLibrary:"Ini akan menghapus pustaka Anda. Anda yakin?",removeItemsFromsLibrary:"Hapus {{count}} item dari pustaka?",invalidEncryptionKey:"Sandi enkripsi harus 22 karakter. Kolaborasi langsung dinonaktifkan.",collabOfflineWarning:`Tidak ada koneksi internet.
|
|
4
4
|
Perubahan tidak akan disimpan!`},t={unsupportedFileType:"Tipe file tidak didukung.",imageInsertError:"Tidak dapat menyisipkan gambar. Coba lagi nanti...",fileTooBig:"File terlalu besar. Ukuran maksimum yang dibolehkan {{maxSize}}.",svgImageInsertError:"Tidak dapat menyisipkan gambar SVG. Markup SVG sepertinya tidak valid.",failedToFetchImage:"",invalidSVGString:"SVG tidak valid.",cannotResolveCollabServer:"Tidak dapat terhubung ke server kolab. Muat ulang laman dan coba lagi.",importLibraryError:"Tidak dapat memuat pustaka",collabSaveFailed:"Tidak dapat menyimpan ke dalam basis data server. Jika masih berlanjut, Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",collabSaveFailed_sizeExceeded:"Tidak dapat menyimpan ke dalam basis data server, tampaknya ukuran kanvas terlalu besar. Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Sepertinya Anda menggunkan peramban Brave dengan pengaturan <bold>Blokir Fingerprinting yang Agresif</bold> diaktifkan.",line2:"Ini dapat membuat <bold>Elemen Teks</bold> dalam gambar mu.",line3:"Kami sangat menyarankan mematikan pengaturan ini. Anda dapat mengikuti <link>langkah-langkah ini</link> untuk melakukannya.",line4:`Jika mematikan pengaturan ini tidak membenarkan tampilan elemen teks, mohon buka
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.RW6I02nN.js";
|
|
2
2
|
var u = { paste: "Постави", pasteAsPlaintext: "Постави като обикновен текст", pasteCharts: "Постави графики", selectAll: "Маркирай всичко", multiSelect: "Добави елемент към селекция", moveCanvas: "Премести платно", cut: "Изрежи", copy: "Копирай", copyAsPng: "Копиране в клипборда", 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: "Платно за рисуване", 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: "" }, e = { 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: "Режим Zen", objectsSnapMode: "", exitZenMode: "Спиране на Zen режим", cancel: "Отмени", clear: "Изчисти", remove: "Премахване", embed: "", publishLibrary: "Публикувай", submit: "Изпрати", confirm: "Потвърждаване", embeddableInteractionButton: "" }, D = { clearReset: "Това ще изчисти цялото платно. Сигурни ли сте?", couldNotCreateShareableLink: "Връзката не може да бъде създадена.", couldNotCreateShareableLinkTooBig: "Не може да се създаде връзка за споделяне: сцената е твърде голяма", couldNotLoadInvalidFile: "Невалиден файл не може да се зареди", importBackendFailed: "Импортирането от бекенд не беше успешно.", cannotExportEmptyCanvas: "Не може да се експортира празно платно.", couldNotCopyToClipboard: "Не можем да копираме в клипбоарда.", decryptFailed: "Данните не можаха да се дешифрират.", uploadedSecurly: "Качването е защитено с криптиране от край до край, което означава, че сървърът Excalidraw и трети страни не могат да четат съдържанието.", loadSceneOverridePrompt: "Зареждането на външна рисунка ще презапише настоящото ви съдържание. Желаете ли да продължите?", collabStopOverridePrompt: `Прекратяването на сесията ще презапише предишната, локално запазена, рисунка. Сигурни ли сте?
|
|
3
3
|
|
|
4
4
|
(Ако искате да продължите с локалната рисунка, просто затворете таба на браузъра.)`, errorAddingToLibrary: "Не можем да заредим от библиотеката", errorRemovingFromLibrary: "Не можем да премахнем елемент от библиотеката", confirmAddLibrary: "Ще се добавят {{numShapes}} фигура(и) във вашата библиотека. Сигурни ли сте?", imageDoesNotContainScene: "", cannotRestoreFromImage: "Не може да бъде възстановена сцена от този файл", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "Изтрий {{count}} елемент(а) от библиотеката?", invalidEncryptionKey: "", collabOfflineWarning: "" }, a = { unsupportedFileType: "Този файлов формат не се поддържа.", imageInsertError: "", fileTooBig: "Файлът е твърде голям. Максималния допустим размер е {{maxSize}}.", svgImageInsertError: "", failedToFetchImage: "", invalidSVGString: "Невалиден SVG.", cannotResolveCollabServer: "", importLibraryError: "Не можем да заредим библиотеката", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "Силно препоръчваме да изключите тази настройка. Можете да следвате <link>тези стъпки</link> за това как да го направите.", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, o = { selection: "Селекция", image: "Вмъкване на изображение", rectangle: "Правоъгълник", diamond: "Диамант", ellipse: "Елипс", arrow: "Стрелка", line: "Линия", freedraw: "Рисуване", text: "Текст", library: "Библиотека", lock: "Поддържайте избрания инструмент активен след рисуване", penMode: "", link: "", eraser: "Гума", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "Още инструменти", mermaidToExcalidraw: "", magicSettings: "" }, r = { canvasActions: "Действия по платното", selectedShapeActions: "Избрани действия", shapes: "Фигури" }, t = { canvasPanning: "", linearElement: "Кликнете, за да стартирате няколко точки, плъзнете за една линия", freeDraw: "Натиснете и влачете, пуснете като сте готови", text: "Подсказка: Можете също да добавите текст като натиснете някъде два път с инструмента за селекция", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "Кликнете върху последната точка или натиснете Escape или Enter, за да завършите", lockAngle: "Можете да ограничите ъгъла, като задържите SHIFT", resize: `Може да ограничите при преоразмеряване като задържите SHIFT,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.RW6I02nN.js";
|
|
2
2
|
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: "קנבס ציור", 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: "" }, D = { 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: `עצירת השיתוף תוביל למחיקת הציור הקודם ששמור מקומית בדפדפן. האם אתה בטוח?
|
|
3
3
|
|
|
4
4
|
(אם תרצה לשמור את הציור המקומי, סגור את הטאב של הדפדפן במקום.)`, errorAddingToLibrary: "לא ניתן להוסיף פריט לספרייה", errorRemovingFromLibrary: "לא ניתן להסיר פריט מהספריה", confirmAddLibrary: "זה יוסיף {{numShapes}} צורה(ות) לספריה שלך. האם אתה בטוח?", imageDoesNotContainScene: "נראה שהתמונה לא מכילה מידע על הסצינה. האם אפשרת הטמעת מידע הסצינה בעת השמירה?", cannotRestoreFromImage: "לא הצלחנו לשחזר את הסצנה מקובץ התמונה", invalidSceneUrl: "ייבוא מידע סצנה מהקישור שסופק כשל. או שהוא משובש, או שאינו מכיל מידע של Excalidraw בפורמט JSON.", resetLibrary: "פעולה זו תנקה את כל הספריה שלך. אתה בטוח?", removeItemsFromsLibrary: "מחק {{count}} פריט(ים) מהספריה?", invalidEncryptionKey: "מפתח ההצפנה חייב להיות בן 22 תוים. השיתוף החי מנוטרל.", collabOfflineWarning: `אין חיבור זמין לאינטרנט.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { l as Nr,
|
|
2
|
-
import { q as Cv } from "./layers.
|
|
3
|
-
import { c as Dv } from "./layers.
|
|
4
|
-
import "./layers.
|
|
1
|
+
import { l as Nr, c as ao, A as yv, Y as mv, P as Cn, i as Dn, a3 as bv, a4 as wv, a5 as Ev, d as xv, T as Tv } from "./layers.D_l2bI3p.js";
|
|
2
|
+
import { q as Cv } from "./layers.BCkbv8uf.js";
|
|
3
|
+
import { c as Dv } from "./layers.C4xUq3OD.js";
|
|
4
|
+
import "./layers.RW6I02nN.js";
|
|
5
5
|
import "lodash-es/memoize.js";
|
|
6
6
|
import "lodash-es/merge.js";
|
|
7
7
|
import "lodash-es/isEmpty.js";
|
|
@@ -5607,12 +5607,15 @@ var It = function(e) {
|
|
|
5607
5607
|
}
|
|
5608
5608
|
}, ic = function(e, r, a, n, i, s) {
|
|
5609
5609
|
if (!(a === 0 || n <= 0 || i === "inside")) {
|
|
5610
|
-
var o = r.cy(), u =
|
|
5611
|
-
if (l
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5610
|
+
var o = r.cy(), u = o.renderer(), l = u.nodeShapes[u.getNodeShape(r)];
|
|
5611
|
+
if (l) {
|
|
5612
|
+
var f = r.position(), c = f.x, v = f.y, h = r.width(), d = r.height();
|
|
5613
|
+
if (l.hasMiterBounds) {
|
|
5614
|
+
i === "center" && (n /= 2);
|
|
5615
|
+
var p = l.miterBounds(c, v, h, d, n);
|
|
5616
|
+
nr(e, p);
|
|
5617
|
+
} else s != null && s > 0 && vn(e, [s, s, s, s]);
|
|
5618
|
+
}
|
|
5616
5619
|
}
|
|
5617
5620
|
}, pp = function(e, r) {
|
|
5618
5621
|
if (!r.cy().headless()) {
|
|
@@ -7362,7 +7365,7 @@ qe.restore = function() {
|
|
|
7362
7365
|
if (h.isEdge()) {
|
|
7363
7366
|
for (var b = h, m = ["source", "target"], E = m.length, T = !1, S = 0; S < E; S++) {
|
|
7364
7367
|
var w = m[S], x = p[w];
|
|
7365
|
-
ne(x) && (x = p[w] = "" + p[w]), x == null || x === "" ? (Ye("Can not create edge `" + g + "` with unspecified " + w), T = !0) : a.hasElementWithId(x) || (Ye("Can not create edge `" + g + "` with
|
|
7368
|
+
ne(x) && (x = p[w] = "" + p[w]), x == null || x === "" ? (Ye("Can not create edge `" + g + "` with unspecified " + w), T = !0) : a.hasElementWithId(x) || (Ye("Can not create edge `" + g + "` with nonexistent " + w + " `" + x + "`"), T = !0);
|
|
7366
7369
|
}
|
|
7367
7370
|
if (T) {
|
|
7368
7371
|
v();
|
|
@@ -16419,8 +16422,8 @@ function ym(t, e, r, a, n) {
|
|
|
16419
16422
|
var i = a * r + e.x, s = n * r + e.y;
|
|
16420
16423
|
return s = Math.round(t.canvasHeight - s), [i, s];
|
|
16421
16424
|
}
|
|
16422
|
-
function mm(t) {
|
|
16423
|
-
return t.pstyle("background-fill").value !== "solid" || t.pstyle("background-image").strValue !== "none" ? !1 : t.pstyle("border-width").value === 0 || t.pstyle("border-opacity").value === 0 ? !0 : t.pstyle("border-style").value === "solid";
|
|
16425
|
+
function mm(t, e) {
|
|
16426
|
+
return e.picking ? !0 : t.pstyle("background-fill").value !== "solid" || t.pstyle("background-image").strValue !== "none" ? !1 : t.pstyle("border-width").value === 0 || t.pstyle("border-opacity").value === 0 ? !0 : t.pstyle("border-style").value === "solid";
|
|
16424
16427
|
}
|
|
16425
16428
|
function bm(t, e) {
|
|
16426
16429
|
if (t.length !== e.length)
|
|
@@ -17611,7 +17614,7 @@ var Im = /* @__PURE__ */ (function() {
|
|
|
17611
17614
|
var i = this.simpleShapeOptions.get(n);
|
|
17612
17615
|
if (this._isVisible(r, i)) {
|
|
17613
17616
|
var s = i.shapeProps, o = this._getVertTypeForShape(r, s.shape);
|
|
17614
|
-
if (o === void 0 || i.isSimple && !i.isSimple(r)) {
|
|
17617
|
+
if (o === void 0 || i.isSimple && !i.isSimple(r, this.renderTarget)) {
|
|
17615
17618
|
this.drawTexture(r, a, n);
|
|
17616
17619
|
return;
|
|
17617
17620
|
}
|
|
@@ -17622,8 +17625,8 @@ var Im = /* @__PURE__ */ (function() {
|
|
|
17622
17625
|
}
|
|
17623
17626
|
var v = this.indexBuffer.getView(u);
|
|
17624
17627
|
$r(a, v);
|
|
17625
|
-
var h = r.pstyle(s.
|
|
17626
|
-
Cr(
|
|
17628
|
+
var h = this.renderTarget.picking ? 1 : r.pstyle(s.opacity).value, d = r.pstyle(s.color).value, p = this.colorBuffer.getView(u);
|
|
17629
|
+
Cr(d, h, p);
|
|
17627
17630
|
var g = this.lineWidthBuffer.getView(u);
|
|
17628
17631
|
if (g[0] = 0, g[1] = 0, s.border) {
|
|
17629
17632
|
var y = r.pstyle("border-width").value;
|
|
@@ -18722,7 +18725,7 @@ kr.appendToStyle = function(t) {
|
|
|
18722
18725
|
}
|
|
18723
18726
|
return t;
|
|
18724
18727
|
};
|
|
18725
|
-
var t0 = "3.33.
|
|
18728
|
+
var t0 = "3.33.2", pr = function(e) {
|
|
18726
18729
|
if (e === void 0 && (e = {}), Oe(e))
|
|
18727
18730
|
return new ka(e);
|
|
18728
18731
|
if (ge(e))
|
|
@@ -21853,12 +21856,12 @@ const F0 = async (t, e, r, a) => {
|
|
|
21853
21856
|
return;
|
|
21854
21857
|
const u = ao();
|
|
21855
21858
|
u.htmlLabels = !1;
|
|
21856
|
-
const l =
|
|
21859
|
+
const l = yv(e), f = l.append("g");
|
|
21857
21860
|
f.attr("class", "mindmap-edges");
|
|
21858
21861
|
const c = l.append("g");
|
|
21859
21862
|
c.attr("class", "mindmap-nodes"), iv(s, c, o, -1, u);
|
|
21860
21863
|
const v = await N0(o, u);
|
|
21861
|
-
k0(f, v), B0(s, v),
|
|
21864
|
+
k0(f, v), B0(s, v), mv(
|
|
21862
21865
|
void 0,
|
|
21863
21866
|
l,
|
|
21864
21867
|
((n = u.mindmap) == null ? void 0 : n.padding) ?? Cn.mindmap.padding,
|
|
@@ -21869,7 +21872,7 @@ const F0 = async (t, e, r, a) => {
|
|
|
21869
21872
|
}, G0 = (t) => {
|
|
21870
21873
|
let e = "";
|
|
21871
21874
|
for (let r = 0; r < t.THEME_COLOR_LIMIT; r++)
|
|
21872
|
-
t["lineColor" + r] = t["lineColor" + r] || t["cScaleInv" + r],
|
|
21875
|
+
t["lineColor" + r] = t["lineColor" + r] || t["cScaleInv" + r], bv(t["lineColor" + r]) ? t["lineColor" + r] = wv(t["lineColor" + r], 20) : t["lineColor" + r] = Ev(t["lineColor" + r], 20);
|
|
21873
21876
|
for (let r = 0; r < t.THEME_COLOR_LIMIT; r++) {
|
|
21874
21877
|
const a = "" + (17 - 3 * r);
|
|
21875
21878
|
e += `
|