@layers-app/editor 2.1.6 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.d.ts +11 -1
- package/dist/index.js +2 -2
- package/dist/{layers.CMbvmj-v.js → layers.-WFS9U34.js} +1 -1
- package/dist/{layers.DLrapbTu.js → layers.0V09af2L.js} +1 -1
- package/dist/{layers.DDzBsP2q.js → layers.0VQkdjqd.js} +1 -1
- package/dist/{layers.C_CAkOlt.js → layers.17g4w51p.js} +1 -1
- package/dist/{layers.DJoIlneg.js → layers.1_wzMQse.js} +1 -1
- package/dist/{layers.C0ictMKk.js → layers.2tODz3EV.js} +1 -1
- package/dist/{layers.Cz2NS5a_.js → layers.3scAU0lv.js} +1 -1
- package/dist/{layers.CtPYPMlp.js → layers.3utmuegJ.js} +1 -1
- package/dist/{layers.CLZ-clnB.js → layers.4aQak5md.js} +1 -1
- package/dist/{layers.BbcYhaon.js → layers.AbKzQQm2.js} +1 -1
- package/dist/{layers.DRXfldPX.js → layers.B00XCM0R.js} +1 -1
- package/dist/{layers.DAZuMiIj.js → layers.B1L4c3n6.js} +1 -1
- package/dist/{layers.DtJwUBRY.js → layers.B2Jmuw9U.js} +1 -1
- package/dist/{layers.Cuso1aRZ.js → layers.B2cQSvjV.js} +25 -25
- package/dist/{layers.CnNWEk4w.js → layers.B3R-2X6o.js} +1 -1
- package/dist/{layers.B6lhQbU-.js → layers.B4HwuNf1.js} +1 -1
- package/dist/{layers.DC5zyJ6O.js → layers.B6SaqdB2.js} +1 -1
- package/dist/layers.B7s8ImMF.js +6 -0
- package/dist/layers.B7t_RMCz.js +1 -0
- package/dist/{layers.DG_1__o7.js → layers.B9CN0tHX.js} +5 -5
- package/dist/{layers.WzauS0JH.js → layers.BAojlL45.js} +1 -1
- package/dist/{layers.B6Z2psFi.js → layers.BEdXZ88M.js} +1 -1
- package/dist/{layers.kDEUgRsF.js → layers.BEwOxbp6.js} +3 -3
- package/dist/{layers.BbdRnRp2.js → layers.BIjH8k3X.js} +1 -1
- package/dist/{layers.B6c13aD6.js → layers.BKPDil-V.js} +1 -1
- package/dist/{layers.CDeHOe3V.js → layers.BMKv-d4t.js} +1 -1
- package/dist/{layers.CagWt2Eo.js → layers.BMcKnTvK.js} +2 -2
- package/dist/{layers.B19EH92g.js → layers.BN9lR-Lx.js} +1 -1
- package/dist/{layers.BmSz90V2.js → layers.BSGgL5Xm.js} +1 -1
- package/dist/{layers.UxxqKXFR.js → layers.BSSX8K-7.js} +1 -1
- package/dist/{layers.D_TWGk7f.js → layers.BVWAqd3P.js} +6 -6
- package/dist/{layers.Bl9MmPG1.js → layers.BXBaduEM.js} +4 -4
- package/dist/{layers.BS96CeFS.js → layers.BYgec0Wq.js} +1 -1
- package/dist/{layers.Cz7Le3Ru.js → layers.BZVgR8HL.js} +1 -1
- package/dist/{layers.DZZOUOdZ.js → layers.BbH_fbXh.js} +1 -1
- package/dist/{layers.DaWjJFPe.js → layers.Bbgp_FQG.js} +3 -3
- package/dist/{layers.abQyPVbZ.js → layers.Bd5nEMKQ.js} +1 -1
- package/dist/{layers.CNDfPUnP.js → layers.BdJVwOsa.js} +1 -1
- package/dist/{layers.-3TgXlPl.js → layers.BeHAF6Sh.js} +1 -1
- package/dist/{layers.Dfr3zGq4.js → layers.BeyXvEYp.js} +2 -2
- package/dist/{layers.iI4az_mW.js → layers.BgCUYpH3.js} +1 -1
- package/dist/{layers.CMLo27jB.js → layers.BjIunMBp.js} +1 -1
- package/dist/{layers.Bju18dWi.js → layers.BkLKSvLe.js} +3 -3
- package/dist/{layers.DUN-x_KK.js → layers.Bnlcobqf.js} +1 -1
- package/dist/{layers.Ca-S1hBE.js → layers.Bqqoy9cT.js} +1 -1
- package/dist/layers.BrkoSSCI.js +845 -0
- package/dist/{layers.Chbc8QWA.js → layers.Brq6BmGD.js} +3 -3
- package/dist/{layers.bXnZZRfF.js → layers.Bs5yVYJf.js} +1 -1
- package/dist/{layers.Bto4lZqE.js → layers.BtXtXHAs.js} +1 -1
- package/dist/{layers.CuWIUgEV.js → layers.Bu3aED75.js} +1 -1
- package/dist/{layers.Ba4WXIFU.js → layers.Bun9o3g2.js} +8 -8
- package/dist/{layers.BVcp5-RY.js → layers.Bv0Njrxp.js} +1 -1
- package/dist/{layers.CFIFmSA9.js → layers.By3S5lsQ.js} +1 -1
- package/dist/{layers.BfGNgQy_.js → layers.By5zvrtq.js} +3 -3
- package/dist/{layers.DCnGbf9n.js → layers.ByqzdYgl.js} +1 -1
- package/dist/{layers.Dtj4OBzs.js → layers.Byypn3lV.js} +1 -1
- package/dist/{layers.cslk7h-Q.js → layers.C0vea4zY.js} +1 -1
- package/dist/{layers.B2JHXdAE.js → layers.C2PeOJRz.js} +1 -1
- package/dist/{layers.BatMJqVT.js → layers.C2d90hop.js} +4 -4
- package/dist/{layers.CiA8q6tp.js → layers.C4KUrPKo.js} +1 -1
- package/dist/{layers.C21XnGgj.js → layers.C4Twn2ff.js} +1 -1
- package/dist/{layers.By754xsJ.js → layers.C57loc_q.js} +1 -1
- package/dist/{layers.bsGHg1a3.js → layers.C5r1MyqG.js} +1 -1
- package/dist/{layers.CInzTZeQ.js → layers.C6pFOjPC.js} +1 -1
- package/dist/{layers.CcO4GazF.js → layers.C7EabXrG.js} +1 -1
- package/dist/{layers.D28CChdQ.js → layers.C8n2tjWC.js} +1 -1
- package/dist/{layers.XBLltQjI.js → layers.CAOXO9W7.js} +1 -1
- package/dist/{layers.BVYqruEo.js → layers.CCqg-IbA.js} +1 -1
- package/dist/{layers.BjtVaoUo.js → layers.CDaRGgWd.js} +1 -1
- package/dist/{layers.BNSJnTk_.js → layers.CE2ppD0Q.js} +1 -1
- package/dist/{layers.BKRa6lfR.js → layers.CFvA3Dj4.js} +1 -1
- package/dist/{layers.BYETtX9w.js → layers.CIFe0oe3.js} +1 -1
- package/dist/{layers.DelEiYgx.js → layers.CKS9NDb8.js} +1 -1
- package/dist/{layers.DzPR1dM9.js → layers.CLlhzZu3.js} +5 -5
- package/dist/{layers.BSY9Mv6c.js → layers.CMMewJR1.js} +1 -1
- package/dist/{layers.BNxU4V--.js → layers.CMqhxB2k.js} +1 -1
- package/dist/{layers.DytFDqA2.js → layers.CNEtSl7o.js} +1 -1
- package/dist/{layers.D7t9A_uM.js → layers.COwEW-bN.js} +1 -1
- package/dist/{layers.mocNc5B-.js → layers.CPEQ9C80.js} +1 -1
- package/dist/layers.CPcW8u0g.js +8 -0
- package/dist/{layers.Dl37Ui5U.js → layers.CQKvc0Wq.js} +1 -1
- package/dist/{layers.DjP0L5aa.js → layers.CQyakr9V.js} +1 -1
- package/dist/{layers.Ybzdv-R1.js → layers.CRp43aaP.js} +1 -1
- package/dist/{layers.DB9LziaF.js → layers.CTUj-ifR.js} +1 -1
- package/dist/{layers.DCYhbLtA.js → layers.CU-1V5EP.js} +1 -1
- package/dist/{layers.T4P6Dy6O.js → layers.CVoJanQq.js} +1 -1
- package/dist/{layers.fdpgqNBc.js → layers.CWmaP2IS.js} +1 -1
- package/dist/{layers.D5k-YiOT.js → layers.CZrCG3u1.js} +1 -1
- package/dist/{layers.DHQ1DpRF.js → layers.C_IQy61H.js} +1 -1
- package/dist/{layers.3sAB09G7.js → layers.C_lqYSWr.js} +1 -1
- package/dist/{layers.R7ydOy9f.js → layers.CaHEjwyy.js} +1 -1
- package/dist/{layers.DmSN1caD.js → layers.Cb5wvkuM.js} +4 -4
- package/dist/{layers.BHflHQ2e.js → layers.CcpLLe2q.js} +1 -1
- package/dist/{layers.BoHcZ0sA.js → layers.CdCqWWON.js} +1 -1
- package/dist/{layers.lOyV0ydo.js → layers.CeHnvYhC.js} +1 -1
- package/dist/{layers.jlC4YpwN.js → layers.Cf75L0fw.js} +1 -1
- package/dist/{layers.1Z49Tkee.js → layers.CfHLlbor.js} +1 -1
- package/dist/{layers.CgDKN3q5.js → layers.CgFw_FN4.js} +1 -1
- package/dist/{layers.asimq_FR.js → layers.CgQlhpF3.js} +1 -1
- package/dist/{layers.CItsDxfy.js → layers.CgqoFOO_.js} +4 -4
- package/dist/{layers.BGnv6nVK.js → layers.Chah3OJu.js} +1 -1
- package/dist/{layers.CIoyw-2B.js → layers.Ci9JaNSz.js} +1 -1
- package/dist/{layers.CfrcIq9F.js → layers.CiGHO676.js} +1 -1
- package/dist/{layers.hirOr7cJ.js → layers.CkP-Eo94.js} +2 -2
- package/dist/{layers.BrSi5oAU.js → layers.ClIiDXZL.js} +3 -3
- package/dist/{layers.DFKTExxa.js → layers.CqL-dJC4.js} +1 -1
- package/dist/{layers.DIu4npTa.js → layers.CqxHPUbJ.js} +2 -2
- package/dist/{layers.BDosuCNb.js → layers.CtuWBttU.js} +1 -1
- package/dist/{layers.FijKdNBd.js → layers.CuFw4AW6.js} +1 -1
- package/dist/{layers.6zcrl6Ag.js → layers.CuSG0bXd.js} +1 -1
- package/dist/{layers.CyLbNYcF.js → layers.CvSN6qVo.js} +1 -1
- package/dist/{layers.l-Biu9SC.js → layers.CwP2LZst.js} +1 -1
- package/dist/{layers.DWitnGTQ.js → layers.CxpSCafO.js} +1 -1
- package/dist/{layers.pXCOyYrZ.js → layers.Cy5A3XH2.js} +1 -1
- package/dist/{layers.8JqVfT2m.js → layers.CzndyHEm.js} +1 -1
- package/dist/{layers.DjgQExnw.js → layers.D-PCI6OM.js} +1 -1
- package/dist/{layers.W9fmQz5y.js → layers.D-Xb7G5c.js} +1 -1
- package/dist/{layers.BQkCHqN6.js → layers.D-zQTbIL.js} +4 -4
- package/dist/{layers.MmcIrkNV.js → layers.D0tyBUGy.js} +1 -1
- package/dist/{layers.BRpi6qQ4.js → layers.D12R62xH.js} +1 -1
- package/dist/{layers.C1Kbzg0l.js → layers.D1WUPu_V.js} +1 -1
- package/dist/{layers.B6aMdFQc.js → layers.D2571DAX.js} +1 -1
- package/dist/{layers.DrQH863o.js → layers.D2JBspP6.js} +1 -1
- package/dist/{layers.DS0BQ9RR.js → layers.D2f-U_JH.js} +1 -1
- package/dist/{layers._6uyUep7.js → layers.D2op8CN7.js} +1 -1
- package/dist/{layers.CL0LZTm_.js → layers.D3PVazoA.js} +1 -1
- package/dist/{layers.CSLnEoq2.js → layers.D3Yvr9DU.js} +1 -1
- package/dist/{layers.IEQqXn5n.js → layers.D6LQ8w6F.js} +1 -1
- package/dist/{layers.DcY34rCh.js → layers.D7aGuFeg.js} +1 -1
- package/dist/{layers.Bxc-3eQq.js → layers.D8HM5Bnw.js} +1 -1
- package/dist/{layers.DMwcLUwV.js → layers.D97LAYc4.js} +2 -2
- package/dist/{layers.X5GX-2If.js → layers.DC32yjzD.js} +1 -1
- package/dist/{layers.BmMFB1RK.js → layers.DDauBkL9.js} +1 -1
- package/dist/{layers.BPkSZe2P.js → layers.DEOEAw20.js} +1 -1
- package/dist/{layers.KfF8ak4B.js → layers.DGCX-hub.js} +1 -1
- package/dist/{layers.Bj7b3tO1.js → layers.DGuQsfHD.js} +1 -1
- package/dist/{layers.CCYhncq7.js → layers.DI0g4YWF.js} +1 -1
- package/dist/{layers.CKc8sSfB.js → layers.DIn6Ywq6.js} +3 -3
- package/dist/{layers.CcluVD0Y.js → layers.DK-Zoyds.js} +1 -1
- package/dist/{layers.0Z-avhNl.js → layers.DKDsAC_W.js} +1 -1
- package/dist/{layers.BoX7jDz7.js → layers.DLOfRuPX.js} +7 -7
- package/dist/{layers.5MAh1_gS.js → layers.DPuXKqun.js} +1 -1
- package/dist/{layers.DDvAprfe.js → layers.DRcBHjok.js} +4 -4
- package/dist/{layers.VIYQvTTK.js → layers.DSSnCtH-.js} +1 -1
- package/dist/{layers.DqdiqYXg.js → layers.DTJHlXo0.js} +1 -1
- package/dist/layers.DUkqZm4x.js +1 -0
- package/dist/{layers.CUZK-d0d.js → layers.DVGoiTc3.js} +1 -1
- package/dist/{layers.B_xT7x5V.js → layers.DVp6drUD.js} +1 -1
- package/dist/{layers.CfgQ13RL.js → layers.DW4yWEAP.js} +1 -1
- package/dist/{layers.eyWpGtOv.js → layers.DWow4d0C.js} +1 -1
- package/dist/{layers.DGkkcTAA.js → layers.DYAIHWEy.js} +1 -1
- package/dist/{layers.CAm3BC8Q.js → layers.DZ3i1mNn.js} +1 -1
- package/dist/{layers.DKxhMSBd.js → layers.D_k3C_RL.js} +1 -1
- package/dist/{layers.DAy3XJcV.js → layers.DdXAOgPg.js} +1 -1
- package/dist/{layers.Dpt3wYWI.js → layers.DiMr7Wyg.js} +1 -1
- package/dist/{layers.BoT2MuaR.js → layers.DiyPaCQz.js} +1 -1
- package/dist/{layers.CCL8yD4w.js → layers.DjCYHH8u.js} +1 -1
- package/dist/{layers.CFsfo8sk.js → layers.DlqUB51o.js} +1 -1
- package/dist/{layers.DalS0AyT.js → layers.DnqZoPrZ.js} +3 -3
- package/dist/{layers.pTXUfVbB.js → layers.DpE0_prh.js} +1 -1
- package/dist/{layers.Hg7rEajm.js → layers.Dqfza1uC.js} +1 -1
- package/dist/{layers.I2XZcizT.js → layers.DrU6XBve.js} +1 -1
- package/dist/{layers.BVmpOSlQ.js → layers.DtIgT6wC.js} +1 -1
- package/dist/{layers.BXahqVhg.js → layers.DtTj8WiD.js} +1 -1
- package/dist/{layers.D5fMOEiz.js → layers.DvF3aEfC.js} +1 -1
- package/dist/{layers.DbyX02pi.js → layers.DwdfTHtT.js} +1 -1
- package/dist/{layers.2bIZBONK.js → layers.DxgYFlcK.js} +1 -1
- package/dist/{layers.KkhcEh3T.js → layers.Dy3CIV4q.js} +1 -1
- package/dist/{layers.B8BNzzVG.js → layers.E_ZFumNN.js} +1 -1
- package/dist/{layers.DHmHMxEk.js → layers.Frhnbzhc.js} +3 -3
- package/dist/{layers.BrLnWaTy.js → layers.GnLojCz_.js} +1 -1
- package/dist/{layers.CD715ntl.js → layers.Mvl_k_yg.js} +1 -1
- package/dist/{layers.i78Mroc0.js → layers.NLJg9M_f.js} +1 -1
- package/dist/{layers.CLQ-WBiE.js → layers.Nl-kiETe.js} +1 -1
- package/dist/{layers.CIsYLv6w.js → layers.NnrI2_w3.js} +4 -4
- package/dist/{layers.CC3oMC39.js → layers.R3-ccgHv.js} +1 -1
- package/dist/{layers.B6iFRkR5.js → layers.UZzjBh4S.js} +1 -1
- package/dist/{layers.8G8Av-tH.js → layers.XTjbtg5t.js} +1 -1
- package/dist/{layers.BjTAXqV7.js → layers.YJlGPTDG.js} +7687 -7600
- package/dist/{layers.CPHB2tQf.js → layers.ZbGJOSbt.js} +1 -1
- package/dist/{layers.GzrGLfgB.js → layers.ZgyVlwt1.js} +3 -3
- package/dist/{layers.OI_Bhwwf.js → layers._uUwo3yg.js} +1 -1
- package/dist/{layers.ZwHHYsTX.js → layers.aRAJ1D_V.js} +1 -1
- package/dist/{layers.BDetUzwq.js → layers.c5V-URe1.js} +1 -1
- package/dist/{layers.CQA0ZtL_.js → layers.cJ4K3q6_.js} +1 -1
- package/dist/{layers.sZJv3_GX.js → layers.dAIonjLC.js} +1 -1
- package/dist/{layers.6uJ-DOHJ.js → layers.ddJ4xEJF.js} +4 -4
- package/dist/{layers.CfoDCAkj.js → layers.eWv0rBL9.js} +1 -1
- package/dist/{layers.CgOvXIyv.js → layers.gOp-W9tC.js} +1 -1
- package/dist/{layers.BawFQe91.js → layers.kCdlVvwg.js} +4 -4
- package/dist/{layers.qdc4V4yC.js → layers.mROWocEo.js} +1 -1
- package/dist/{layers.DUeteju0.js → layers.qITqopo5.js} +1 -1
- package/dist/{layers.BxZqQF-c.js → layers.sufpjksk.js} +1 -1
- package/dist/{layers.C6w7QYNY.js → layers.tlP3W1Xk.js} +1 -1
- package/dist/{layers.CC9JBLCA.js → layers.vax9bVpu.js} +4 -4
- package/dist/{layers.CsDzqWvW.js → layers.wJjBUFQd.js} +2 -2
- package/dist/{layers.CYCc7HrB.js → layers.xaIjPW3H.js} +1 -1
- package/dist/{layers.4dFnOP_Q.js → layers.xhxSXOmT.js} +1 -1
- package/dist/{layers.CeG6bPSC.js → layers.ymRiDkLF.js} +1 -1
- package/dist/{layers.CyBQDKdl.js → layers.z8cnS05F.js} +4 -4
- package/package.json +80 -80
- package/dist/layers.-y_UZ59Z.js +0 -1
- package/dist/layers.BTCgzes8.js +0 -8
- package/dist/layers.BeadO2MV.js +0 -1
- package/dist/layers.DusMR33V.js +0 -6
- package/dist/layers.yrEz0VCz.js +0 -845
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.Bun9o3g2.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: "مكتبتنا", 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: "" }, A = { 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: "اضغط للتفاعل" }, a = { clearReset: "هذا سيُزيل كامل اللوحة. هل أنت متأكد؟", couldNotCreateShareableLink: "تعذر إنشاء رابطة المشاركة.", couldNotCreateShareableLinkTooBig: "تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا", couldNotLoadInvalidFile: "تعذر التحميل، الملف غير صالح", importBackendFailed: "فشل الاستيراد من الخادوم.", cannotExportEmptyCanvas: "لا يمكن تصدير لوحة فارغة.", couldNotCopyToClipboard: "تعذر النسخ إلى الحافظة.", decryptFailed: "تعذر فك تشفير البيانات.", uploadedSecurly: "تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.", loadSceneOverridePrompt: "تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟", collabStopOverridePrompt: `إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
|
|
3
3
|
|
|
4
4
|
(إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`, errorAddingToLibrary: "تعذر إضافة العنصر للمكتبة", errorRemovingFromLibrary: "تعذر إزالة العنصر من المكتبة", confirmAddLibrary: "هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟", imageDoesNotContainScene: "يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟", cannotRestoreFromImage: "تعذر استعادة المشهد من ملف الصورة", invalidSceneUrl: "تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.", resetLibrary: "هذا سوف يمسح مكتبتك. هل أنت متأكد؟", removeItemsFromsLibrary: "حذف {{count}} عنصر (عناصر) من المكتبة؟", invalidEncryptionKey: "مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.", collabOfflineWarning: `لا يوجد اتصال بالانترنت.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { g as Dt, s as we, a as Oe, b as Te, c as Re, d as Nt, l as le, e as De, f as Se, h as wt, i as ue, w as Pe, j as Kt, k as oe } from "./layers.
|
|
2
|
-
import { d as Me, g as Le } from "./layers.
|
|
3
|
-
import { J as Ne } from "./layers.
|
|
1
|
+
import { g as Dt, s as we, a as Oe, b as Te, c as Re, d as Nt, l as le, e as De, f as Se, h as wt, i as ue, w as Pe, j as Kt, k as oe } from "./layers.B2cQSvjV.js";
|
|
2
|
+
import { d as Me, g as Le } from "./layers.BeyXvEYp.js";
|
|
3
|
+
import { J as Ne } from "./layers.Bun9o3g2.js";
|
|
4
4
|
import "lodash-es/memoize.js";
|
|
5
5
|
import "lodash-es/merge.js";
|
|
6
6
|
import "lodash-es/isEmpty.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const D=require("./layers.DOrgOHBr.js"),n=require("./layers.
|
|
1
|
+
"use strict";const D=require("./layers.DOrgOHBr.js"),n=require("./layers.D-zQTbIL.js");function b(o){return o.innerRadius}function k(o){return o.outerRadius}function _(o){return o.startAngle}function nn(o){return o.endAngle}function en(o){return o&&o.padAngle}function an(o,x,E,P,h,v,j,i){var I=E-o,t=P-x,e=j-h,y=i-v,s=y*I-e*t;if(!(s*s<n.epsilon))return s=(e*(x-v)-y*(o-h))/s,[o+s*I,x+s*t]}function M(o,x,E,P,h,v,j){var i=o-E,I=x-P,t=(j?v:-v)/n.sqrt(i*i+I*I),e=t*I,y=-t*i,s=o+e,u=x+y,c=E+e,f=P+y,z=(s+c)/2,l=(u+f)/2,g=c-s,p=f-u,A=g*g+p*p,R=h-v,T=s*f-c*u,O=(p<0?-1:1)*n.sqrt(n.max(0,R*R*A-T*T)),S=(T*p-g*O)/A,$=(-T*g-p*O)/A,q=(T*p+g*O)/A,m=(-T*g+p*O)/A,d=S-z,a=$-l,r=q-z,B=m-l;return d*d+a*a>r*r+B*B&&(S=q,$=m),{cx:S,cy:$,x01:-e,y01:-y,x11:S*(h/R-1),y11:$*(h/R-1)}}function sn(){var o=b,x=k,E=D.constant(0),P=null,h=_,v=nn,j=en,i=null,I=D.withPath(t);function t(){var e,y,s=+o.apply(this,arguments),u=+x.apply(this,arguments),c=h.apply(this,arguments)-n.halfPi,f=v.apply(this,arguments)-n.halfPi,z=n.abs(f-c),l=f>c;if(i||(i=e=I()),u<s&&(y=u,u=s,s=y),!(u>n.epsilon))i.moveTo(0,0);else if(z>n.tau-n.epsilon)i.moveTo(u*n.cos(c),u*n.sin(c)),i.arc(0,0,u,c,f,!l),s>n.epsilon&&(i.moveTo(s*n.cos(f),s*n.sin(f)),i.arc(0,0,s,f,c,l));else{var g=c,p=f,A=c,R=f,T=z,O=z,S=j.apply(this,arguments)/2,$=S>n.epsilon&&(P?+P.apply(this,arguments):n.sqrt(s*s+u*u)),q=n.min(n.abs(u-s)/2,+E.apply(this,arguments)),m=q,d=q,a,r;if($>n.epsilon){var B=n.asin($/s*n.sin(S)),G=n.asin($/u*n.sin(S));(T-=B*2)>n.epsilon?(B*=l?1:-1,A+=B,R-=B):(T=0,A=R=(c+f)/2),(O-=G*2)>n.epsilon?(G*=l?1:-1,g+=G,p-=G):(O=0,g=p=(c+f)/2)}var C=u*n.cos(g),F=u*n.sin(g),H=s*n.cos(R),J=s*n.sin(R);if(q>n.epsilon){var K=u*n.cos(p),L=u*n.sin(p),N=s*n.cos(A),Q=s*n.sin(A),w;if(z<n.pi)if(w=an(C,F,N,Q,K,L,H,J)){var U=C-w[0],V=F-w[1],W=K-w[0],X=L-w[1],Y=1/n.sin(n.acos((U*W+V*X)/(n.sqrt(U*U+V*V)*n.sqrt(W*W+X*X)))/2),Z=n.sqrt(w[0]*w[0]+w[1]*w[1]);m=n.min(q,(s-Z)/(Y-1)),d=n.min(q,(u-Z)/(Y+1))}else m=d=0}O>n.epsilon?d>n.epsilon?(a=M(N,Q,C,F,u,d,l),r=M(K,L,H,J,u,d,l),i.moveTo(a.cx+a.x01,a.cy+a.y01),d<q?i.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(r.y01,r.x01),!l):(i.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),i.arc(0,0,u,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(r.cy+r.y11,r.cx+r.x11),!l),i.arc(r.cx,r.cy,d,n.atan2(r.y11,r.x11),n.atan2(r.y01,r.x01),!l))):(i.moveTo(C,F),i.arc(0,0,u,g,p,!l)):i.moveTo(C,F),!(s>n.epsilon)||!(T>n.epsilon)?i.lineTo(H,J):m>n.epsilon?(a=M(H,J,K,L,s,-m,l),r=M(C,F,N,Q,s,-m,l),i.lineTo(a.cx+a.x01,a.cy+a.y01),m<q?i.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(r.y01,r.x01),!l):(i.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),i.arc(0,0,s,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(r.cy+r.y11,r.cx+r.x11),l),i.arc(r.cx,r.cy,m,n.atan2(r.y11,r.x11),n.atan2(r.y01,r.x01),!l))):i.arc(0,0,s,R,A,l)}if(i.closePath(),e)return i=null,e+""||null}return t.centroid=function(){var e=(+o.apply(this,arguments)+ +x.apply(this,arguments))/2,y=(+h.apply(this,arguments)+ +v.apply(this,arguments))/2-n.pi/2;return[n.cos(y)*e,n.sin(y)*e]},t.innerRadius=function(e){return arguments.length?(o=typeof e=="function"?e:D.constant(+e),t):o},t.outerRadius=function(e){return arguments.length?(x=typeof e=="function"?e:D.constant(+e),t):x},t.cornerRadius=function(e){return arguments.length?(E=typeof e=="function"?e:D.constant(+e),t):E},t.padRadius=function(e){return arguments.length?(P=e==null?null:typeof e=="function"?e:D.constant(+e),t):P},t.startAngle=function(e){return arguments.length?(h=typeof e=="function"?e:D.constant(+e),t):h},t.endAngle=function(e){return arguments.length?(v=typeof e=="function"?e:D.constant(+e),t):v},t.padAngle=function(e){return arguments.length?(j=typeof e=="function"?e:D.constant(+e),t):j},t.context=function(e){return arguments.length?(i=e??null,t):i},t}exports.arc=sn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.BmSz90V2.js"),i=require("./layers.BQkCHqN6.js"),j=require("./layers.BmMFB1RK.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.BSGgL5Xm.js"),i=require("./layers.D-zQTbIL.js"),j=require("./layers.DDauBkL9.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;
|