@layers-app/editor 0.6.34 → 0.6.35

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.
Files changed (212) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.d.ts +1 -4
  3. package/dist/index.js +2 -2
  4. package/dist/{layers.BDt5IpH-.js → layers.2KZRRux9.js} +1 -1
  5. package/dist/{layers.CDj5oGAr.js → layers.2sNbhd7A.js} +3 -3
  6. package/dist/{layers.CcJHGxO9.js → layers.3KaLYGmA.js} +1 -1
  7. package/dist/{layers._TV_aGFF.js → layers.42sjrGCK.js} +1 -1
  8. package/dist/{layers.BnMinEcb.js → layers.4q9g6bVk.js} +1 -1
  9. package/dist/{layers.D0y2-3m8.js → layers.6CnRl5q7.js} +1 -1
  10. package/dist/{layers.BBLukzW_.js → layers.7ElOpXJU.js} +1 -1
  11. package/dist/{layers.Dx8h_Lav.js → layers.AsfPBG-V.js} +1 -1
  12. package/dist/{layers.DTscvwUm.js → layers.B-Z6N5cY.js} +1 -1
  13. package/dist/{layers.C0roGv-l.js → layers.B0gNCokh.js} +1 -1
  14. package/dist/{layers.ByesRY2Q.js → layers.B0piecBb.js} +3 -3
  15. package/dist/{layers.HJ6zaoqm.js → layers.B1qfGMJh.js} +1 -1
  16. package/dist/{layers.BnEtEgkO.js → layers.B3f9e8Cl.js} +4 -4
  17. package/dist/{layers.BpWmGcxU.js → layers.B4XM_gqg.js} +2 -2
  18. package/dist/{layers.C0Dn-3mE.js → layers.B5DVCb8r.js} +1 -1
  19. package/dist/{layers.DQYaZ-7C.js → layers.B68SuDv6.js} +3 -3
  20. package/dist/{layers.DoY6ZCNT.js → layers.B7Bf4gz6.js} +1 -1
  21. package/dist/{layers.DHn-F-Wz.js → layers.B7tleaK6.js} +1 -1
  22. package/dist/{layers.PAgcyUkj.js → layers.B9tgukGD.js} +1 -1
  23. package/dist/{layers.CtQ62QLA.js → layers.BAC4rBS9.js} +5 -5
  24. package/dist/{layers.DHgKCzaM.js → layers.BADU0Xxu.js} +1 -1
  25. package/dist/{layers.BvHI5UJJ.js → layers.BC744gND.js} +1 -1
  26. package/dist/{layers.DZBPA6Xu.js → layers.BDQARZhC.js} +1 -1
  27. package/dist/{layers.oeAPk2k_.js → layers.BDmfNxfI.js} +1 -1
  28. package/dist/{layers.DWXDPS6c.js → layers.BEEvSx76.js} +1 -1
  29. package/dist/{layers.C3gXotox.js → layers.BF-J0JtI.js} +1 -1
  30. package/dist/{layers.DJtu6Ki4.js → layers.BFKeEc_I.js} +1 -1
  31. package/dist/{layers.MjbW2xkA.js → layers.BGpgWOwd.js} +24 -24
  32. package/dist/{layers.J76zbYv7.js → layers.BHHTLT3P.js} +4 -4
  33. package/dist/{layers.DMwXLQnG.js → layers.BH_DAW3F.js} +1 -1
  34. package/dist/{layers.WxfPwK3N.js → layers.BI2QQ5gJ.js} +1 -1
  35. package/dist/{layers.DVlOD7zS.js → layers.BItfRW2q.js} +1 -1
  36. package/dist/{layers.ttgHxtBb.js → layers.BJ7le_oN.js} +1 -1
  37. package/dist/{layers.CSZW5ein.js → layers.BK1ZTdfg.js} +1 -1
  38. package/dist/{layers.3VV2p6Gd.js → layers.BKJ8kHGd.js} +1 -1
  39. package/dist/{layers.y5twPb8a.js → layers.BMNoqNjd.js} +1 -1
  40. package/dist/layers.BQ-LtROA.js +8 -0
  41. package/dist/{layers.izQfKIM5.js → layers.BQvYX2hZ.js} +1 -1
  42. package/dist/{layers.Bsl0NdRD.js → layers.BST6ajUV.js} +1 -1
  43. package/dist/{layers.BLA1d90S.js → layers.BSfXaQ5X.js} +1 -1
  44. package/dist/{layers.Ci4Fbt84.js → layers.BTBuzi5u.js} +1 -1
  45. package/dist/{layers.D5wOeJLc.js → layers.BTitkKSx.js} +1 -1
  46. package/dist/{layers.2nr1OEXq.js → layers.BUqmwsjZ.js} +1 -1
  47. package/dist/{layers.fhhA3z8Y.js → layers.BVgHX3Sm.js} +2 -2
  48. package/dist/{layers.BAUpMyN7.js → layers.B_pPyZfE.js} +1 -1
  49. package/dist/{layers.B2GcAmYR.js → layers.BbNeHlEk.js} +1 -1
  50. package/dist/{layers.BtAudNJW.js → layers.BbqYJa8s.js} +1 -1
  51. package/dist/{layers.CGmu5xcv.js → layers.BcEMPSez.js} +1 -1
  52. package/dist/layers.BdG6tLM5.js +6 -0
  53. package/dist/{layers.DDyTy_Lt.js → layers.BedYltTK.js} +1 -1
  54. package/dist/{layers.BAl_z-hb.js → layers.Bh-509-q.js} +1 -1
  55. package/dist/{layers.B4LGwneT.js → layers.BhMJLnqH.js} +3 -3
  56. package/dist/{layers.CvdihB5K.js → layers.BhSKEVYi.js} +3 -3
  57. package/dist/{layers.DB6B-0JF.js → layers.BhuXV1mX.js} +1 -1
  58. package/dist/{layers.bN6z-U3p.js → layers.Biiw8P_I.js} +1 -1
  59. package/dist/{layers.BaaFSMnG.js → layers.BikkMS96.js} +1 -1
  60. package/dist/{layers.BJd64ul7.js → layers.Bj6GUL-7.js} +2 -2
  61. package/dist/{layers.BlZYTl82.js → layers.BjvRnkGk.js} +1 -1
  62. package/dist/{layers.CTCLNTB8.js → layers.BkUs0x7o.js} +1 -1
  63. package/dist/{layers.CtSOQTxM.js → layers.BlU1Qdru.js} +1 -1
  64. package/dist/{layers.Dwb3qBGx.js → layers.Bo9plYgb.js} +1 -1
  65. package/dist/{layers.Gtfsf5gV.js → layers.BpewD2W0.js} +4 -4
  66. package/dist/{layers.B6whWAMV.js → layers.BrwM0uLG.js} +2 -2
  67. package/dist/{layers.LYRXHKQk.js → layers.BtPc9MR4.js} +1 -1
  68. package/dist/{layers.DEQ5KM13.js → layers.BwcoykSI.js} +1 -1
  69. package/dist/{layers.KLaBYtNm.js → layers.C-GKeGIO.js} +1 -1
  70. package/dist/{layers.Bkl6Z8xT.js → layers.C-VShe_t.js} +1 -1
  71. package/dist/{layers.CgSlXQvX.js → layers.C0Gp7snS.js} +1 -1
  72. package/dist/{layers.DOpAGgr2.js → layers.C1mVKx1k.js} +1 -1
  73. package/dist/{layers.CqdqP_kV.js → layers.C2hkxe_6.js} +2 -2
  74. package/dist/{layers.tq6ipuZs.js → layers.C5cMrh2U.js} +1 -1
  75. package/dist/{layers.D-TNx_6i.js → layers.C7R_BIbC.js} +1 -1
  76. package/dist/{layers.4ZCxs1hO.js → layers.C7XXIyEj.js} +1 -1
  77. package/dist/{layers.b_nOQr2k.js → layers.C7XaI-n2.js} +1 -1
  78. package/dist/{layers.DjuODrPW.js → layers.C85_BJmO.js} +1 -1
  79. package/dist/{layers.BjUHjX5o.js → layers.CCah99cq.js} +3 -3
  80. package/dist/{layers.Pm8BlxjV.js → layers.CEbe91Xk.js} +1 -1
  81. package/dist/{layers.hdhmYjvv.js → layers.CFxelW7L.js} +1 -1
  82. package/dist/{layers.D6j9Oo6U.js → layers.CGEpxC_O.js} +1 -1
  83. package/dist/{layers.5Evd4a6U.js → layers.CGWJPPAo.js} +1 -1
  84. package/dist/{layers.BezMod8A.js → layers.CIt1AVQY.js} +1 -1
  85. package/dist/{layers.rHwx5iWt.js → layers.CJm11IPu.js} +1 -1
  86. package/dist/{layers.CBsazc8i.js → layers.CLnO3ojR.js} +1 -1
  87. package/dist/{layers.DV2Ca8PL.js → layers.COFXcY34.js} +1 -1
  88. package/dist/{layers.CEpbjH3R.js → layers.COatEuqR.js} +1 -1
  89. package/dist/layers.CQAVwlxQ.js +1 -0
  90. package/dist/{layers.BU3sW6KH.js → layers.CQNXYK8w.js} +1 -1
  91. package/dist/{layers.Duh9sl22.js → layers.CQhxTdtB.js} +3 -3
  92. package/dist/{layers.Bs78MKAq.js → layers.CRltwwNq.js} +1 -1
  93. package/dist/{layers.CC4M61QD.js → layers.CUb72dKx.js} +1 -1
  94. package/dist/{layers.DYqlCTfE.js → layers.CVZxcidC.js} +1 -1
  95. package/dist/{layers.HpA6XGKS.js → layers.CWFMdnwF.js} +1 -1
  96. package/dist/{layers.CesKZemo.js → layers.CWNPCuVz.js} +1 -1
  97. package/dist/{layers.Dv9wQtSH.js → layers.CXFgrlZY.js} +1 -1
  98. package/dist/{layers.BQoykxlT.js → layers.CYq2iU6u.js} +1 -1
  99. package/dist/{layers.Di-ZJ3ow.js → layers.C_Dv7Y87.js} +1 -1
  100. package/dist/{layers.EXBDOc10.js → layers.C_bWYa6o.js} +1 -1
  101. package/dist/{layers.BFReUmal.js → layers.CgP7TrPB.js} +1 -1
  102. package/dist/{layers.CNRHzz6S.js → layers.CjOqbuja.js} +1 -1
  103. package/dist/{layers.DA6NVqjT.js → layers.CkoVtXCT.js} +1 -1
  104. package/dist/{layers.BiEsp0gE.js → layers.Cl0lRCEk.js} +1 -1
  105. package/dist/{layers.DSlOpUcn.js → layers.CltfOdjQ.js} +1 -1
  106. package/dist/{layers.t6bZMGvi.js → layers.ClxReYFj.js} +1 -1
  107. package/dist/{layers.D6aLVGFk.js → layers.Cm8pvho1.js} +1 -1
  108. package/dist/{layers.BUQQcPmS.js → layers.CoCNDinX.js} +1 -1
  109. package/dist/{layers.CdkagVnd.js → layers.CpWQw_cT.js} +1 -1
  110. package/dist/{layers.CW__MY1V.js → layers.Cpb3qNnH.js} +1 -1
  111. package/dist/{layers.CWO9ESm6.js → layers.CsW0NOVs.js} +3 -3
  112. package/dist/{layers.BUeuDj5d.js → layers.CsezB-Ga.js} +1 -1
  113. package/dist/layers.CuSuFJYn.js +1 -0
  114. package/dist/{layers.DDjVx10H.js → layers.CwJwFqqA.js} +1 -1
  115. package/dist/{layers.Doj70qmd.js → layers.CwmfQaUz.js} +1 -1
  116. package/dist/{layers.DHjt5ZiE.js → layers.CxErEFLg.js} +1 -1
  117. package/dist/{layers.DjtCbGLu.js → layers.CyshuBjx.js} +4 -4
  118. package/dist/{layers.C8Gv94XD.js → layers.D-EKspyN.js} +1 -1
  119. package/dist/{layers.BcXx49Uy.js → layers.D1PWuKt3.js} +1 -1
  120. package/dist/{layers.DBYi5JVV.js → layers.D2P5SlLW.js} +1 -1
  121. package/dist/{layers.BsaXQJFq.js → layers.D30ITYjO.js} +3 -3
  122. package/dist/{layers.BUcJHQZK.js → layers.D3JQJsPw.js} +1 -1
  123. package/dist/{layers.eIlkidUz.js → layers.D3Nwedwh.js} +1 -1
  124. package/dist/{layers.DIxRbgeW.js → layers.D54UpOtU.js} +1 -1
  125. package/dist/{layers.BIlWSUE7.js → layers.D6wzZucU.js} +1 -1
  126. package/dist/{layers.Bj5TBr6z.js → layers.D7SRG-jk.js} +4 -4
  127. package/dist/{layers.Cd2gkIRd.js → layers.D85qKXPn.js} +1 -1
  128. package/dist/{layers.CQcSuiTb.js → layers.D9mOrzWK.js} +1 -1
  129. package/dist/{layers.CnlnvRJB.js → layers.DAPNDRXA.js} +1 -1
  130. package/dist/{layers.ruax-B9d.js → layers.DCxHr4rl.js} +1 -1
  131. package/dist/{layers.uUfHLs18.js → layers.DDxTlU1l.js} +1 -1
  132. package/dist/{layers.BW_nlw8r.js → layers.DEqv46Dy.js} +1 -1
  133. package/dist/{layers.BFU8QXAV.js → layers.DFVOihRV.js} +1 -1
  134. package/dist/{layers.G0SJAWME.js → layers.DFhrHA4q.js} +1 -1
  135. package/dist/{layers.Bj2j1-uH.js → layers.DJGUFRvI.js} +3 -3
  136. package/dist/{layers.ApofC-g_.js → layers.DJrtUgyR.js} +4 -4
  137. package/dist/{layers.DOTCtr4l.js → layers.DKrhN4SF.js} +1 -1
  138. package/dist/{layers.C6sxz8Qx.js → layers.DN3e3Jp1.js} +4 -4
  139. package/dist/{layers.ClWdia7y.js → layers.DOKG6gAq.js} +1 -1
  140. package/dist/{layers.i5TtJzPZ.js → layers.DPDh5DWp.js} +1 -1
  141. package/dist/{layers.BA9MaJQl.js → layers.DPMDHM_Q.js} +6 -6
  142. package/dist/{layers.DwEkIjxL.js → layers.DS7VbqhC.js} +1 -1
  143. package/dist/{layers.Ch_dex29.js → layers.DTS8nuVB.js} +1 -1
  144. package/dist/{layers.DIN470Mm.js → layers.DUuqYppr.js} +1 -1
  145. package/dist/{layers.DG4cQrpj.js → layers.DWJOrC_3.js} +1 -1
  146. package/dist/{layers.BN3IfUq0.js → layers.DX3SjEVj.js} +1 -1
  147. package/dist/{layers.BZpdu59e.js → layers.DZ33UM9S.js} +1 -1
  148. package/dist/{layers.DAyosZ9H.js → layers.DZZIWQPr.js} +1 -1
  149. package/dist/{layers.Bw0nxnPd.js → layers.DZm2gFa-.js} +4 -4
  150. package/dist/{layers.Bo2zYuY5.js → layers.DbVR6lTZ.js} +7 -7
  151. package/dist/{layers.Dsk9o3Oc.js → layers.Dgx-AZp7.js} +1 -1
  152. package/dist/{layers.5Jd7xW2h.js → layers.DhEu7yw5.js} +1 -1
  153. package/dist/{layers.Bxd9BM7p.js → layers.DhFprIDA.js} +1 -1
  154. package/dist/{layers.jwBaQ3z_.js → layers.DhUoInR4.js} +1 -1
  155. package/dist/{layers.DuT-cf9e.js → layers.Dhvl9LqW.js} +2 -2
  156. package/dist/{layers.DRnrEPGe.js → layers.Djs-sdPK.js} +1 -1
  157. package/dist/{layers.CyFV3GTO.js → layers.DkqHsZDh.js} +1 -1
  158. package/dist/{layers.D3HkliYO.js → layers.DlhLOaLH.js} +1 -1
  159. package/dist/{layers.nDl6YgY3.js → layers.DozbsbIa.js} +3 -3
  160. package/dist/{layers.Bq0MW3h-.js → layers.DpRV4nCx.js} +1 -1
  161. package/dist/{layers.CjUGfMO5.js → layers.DrHcpRQw.js} +1 -1
  162. package/dist/{layers.DFTK8p0P.js → layers.DvT-hx5h.js} +1 -1
  163. package/dist/{layers.BulzBtZW.js → layers.Dw4KfpA9.js} +1 -1
  164. package/dist/{layers.t4ft4ys8.js → layers.Dy6wegMx.js} +1 -1
  165. package/dist/{layers.BcizTDTd.js → layers.DzU_brhD.js} +1 -1
  166. package/dist/{layers.C7v6kwjz.js → layers.FhoJ6MS-.js} +1 -1
  167. package/dist/{layers.fKJTpoEp.js → layers.Fkli95s_.js} +18 -20
  168. package/dist/{layers.Um0fa2S8.js → layers.HuGypa5Q.js} +1 -1
  169. package/dist/{layers.DbI1onCw.js → layers.IHmuqOn6.js} +1 -1
  170. package/dist/{layers.Cqffsxfw.js → layers.IQ65oEXZ.js} +1 -1
  171. package/dist/{layers.ChWcj4nP.js → layers.Ixaw4waj.js} +1 -1
  172. package/dist/{layers.D7DVRyYi.js → layers.LkGeSqfj.js} +1 -1
  173. package/dist/{layers.DuSohIgQ.js → layers.PbbQLRbm.js} +4 -4
  174. package/dist/{layers.DIZWCD0u.js → layers.RACbWpJx.js} +1 -1
  175. package/dist/{layers.C7-j_8ac.js → layers.S2HGIrKV.js} +1 -1
  176. package/dist/{layers.x_vtOkr_.js → layers.SqMtzngi.js} +5 -5
  177. package/dist/{layers.GByo65fe.js → layers.T8W3D-JR.js} +1 -1
  178. package/dist/{layers.-fL6DtK9.js → layers.Vi8hk5MT.js} +1 -1
  179. package/dist/{layers.CkJ50JEv.js → layers.WZNnIJOn.js} +1 -1
  180. package/dist/{layers.DJw2dSkB.js → layers.YGbodHIi.js} +1 -1
  181. package/dist/{layers.CGg-pFkV.js → layers.YPA5QzDf.js} +1 -1
  182. package/dist/{layers.BW4pUvtJ.js → layers.YlubsSef.js} +1 -1
  183. package/dist/{layers.B4LKlNwZ.js → layers.ZNwdNweI.js} +1 -1
  184. package/dist/{layers.C6J9TtlI.js → layers.dG5m8lga.js} +5 -5
  185. package/dist/{layers.BfyvQa0z.js → layers.fj2e9OtX.js} +1 -1
  186. package/dist/{layers.CAG2NfDJ.js → layers.h085bWu1.js} +1 -1
  187. package/dist/{layers.CPx0SGHC.js → layers.inZZtro-.js} +8 -8
  188. package/dist/{layers.CMs3BWWy.js → layers.iwNZoGcE.js} +1 -1
  189. package/dist/{layers.fF-myLvJ.js → layers.jzyCrESQ.js} +3 -3
  190. package/dist/{layers.C-uSBls0.js → layers.lgC7Y64P.js} +1 -1
  191. package/dist/{layers.BAXSWT9q.js → layers.lnIW0XO1.js} +1 -1
  192. package/dist/{layers.zpSM2nKg.js → layers.mWsHwyHu.js} +1 -1
  193. package/dist/{layers.C7wwK5yI.js → layers.msORhxhk.js} +1 -1
  194. package/dist/{layers.5TByJhSA.js → layers.njGAPMtE.js} +1 -1
  195. package/dist/{layers.CVi2k7d0.js → layers.o3q4wSVN.js} +1 -1
  196. package/dist/{layers.Bhg0_993.js → layers.o4bfcZvo.js} +1 -1
  197. package/dist/{layers.CY3JfgMI.js → layers.q88me5jb.js} +2 -2
  198. package/dist/{layers.DqBPhfdF.js → layers.qBjIdLdL.js} +1 -1
  199. package/dist/{layers.DpzNV-zO.js → layers.qdVd2xjK.js} +1 -1
  200. package/dist/{layers.BIUCP38N.js → layers.t5aWnyt0.js} +1 -1
  201. package/dist/{layers.zcaa1gvh.js → layers.ubfLUyci.js} +1 -1
  202. package/dist/{layers.DNoZuHS1.js → layers.uxwhEe3r.js} +1 -1
  203. package/dist/{layers.BJaFWwnK.js → layers.vLXFRs6N.js} +1 -1
  204. package/dist/{layers.CVhzzMEo.js → layers.voXcySEd.js} +1 -1
  205. package/dist/{layers.CWbIcYTJ.js → layers.wLC0_Yzh.js} +1 -1
  206. package/dist/{layers._xY0KsaR.js → layers.wmTggXRz.js} +1 -1
  207. package/dist/{layers.CxOAWs2k.js → layers.yh2VFDzd.js} +1 -1
  208. package/package.json +1 -1
  209. package/dist/layers.CEZnUL7P.js +0 -1
  210. package/dist/layers.CfKHE60r.js +0 -1
  211. package/dist/layers.D6_45yH-.js +0 -8
  212. package/dist/layers.Dn2ZT4fD.js +0 -6
@@ -1 +1 @@
1
- "use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.4ZCxs1hO.js"),i=require("./layers.CWO9ESm6.js"),j=require("./layers.BFReUmal.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.C7XXIyEj.js"),i=require("./layers.CsW0NOVs.js"),j=require("./layers.CgP7TrPB.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,9 +1,9 @@
1
- import { a as Ce, s as Fe, b as Me, c as De, g as Te, d as oe, e as Pe, q as Ye, l as Ne, j as ke } from "./layers.MjbW2xkA.js";
1
+ import { a as Ce, s as Fe, b as Me, c as De, g as Te, d as oe, e as Pe, q as Ye, l as Ne, j as ke } from "./layers.BGpgWOwd.js";
2
2
  import "lodash-es";
3
3
  import { l as Ue } from "./layers.D4T8fTcj.js";
4
4
  import { G as Be } from "./layers.BJDrjORS.js";
5
- import "./layers.CPx0SGHC.js";
6
- import { l as Qe } from "./layers.BnMinEcb.js";
5
+ import "./layers.inZZtro-.js";
6
+ import { l as Qe } from "./layers.4q9g6bVk.js";
7
7
  var ce = (function() {
8
8
  var e = function(V, i, r, a) {
9
9
  for (r = r || {}, a = V.length; a--; r[V[a]] = i)
@@ -1,4 +1,4 @@
1
- "use strict";const r=require("./layers.CWO9ESm6.js"),G=require("lodash-es"),P=require("./layers.BLd2spTm.js"),V=require("./layers.BDt5IpH-.js"),j=require("./layers.CEZnUL7P.js");function F(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(o,i,a.get?a:{enumerable:!0,get:()=>e[i]})}}return o.default=e,Object.freeze(o)}const E=F(G);function N(e){return typeof e=="string"?new r.Selection([document.querySelectorAll(e)],[document.documentElement]):new r.Selection([r.array(e)],r.root)}function M(e,o){return!!e.children(o).length}function R(e){return _(e.v)+":"+_(e.w)+":"+_(e.name)}var H=/:/g;function _(e){return e?String(e).replace(H,"\\:"):""}function B(e,o){o&&e.attr("style",o)}function K(e,o,i){o&&e.attr("class",o).attr("class",i+" "+e.attr("class"))}function O(e,o){var i=o.graph();if(E.isPlainObject(i)){var a=i.transition;if(E.isFunction(a))return a(e)}return e}function D(e,o){var i=e.append("foreignObject").attr("width","100000"),a=i.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var d=o.label;switch(typeof d){case"function":a.insert(d);break;case"object":a.insert(function(){return d});break;default:a.html(d)}B(a,o.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var p=a.node().getBoundingClientRect();return i.attr("width",p.width).attr("height",p.height),i}const I={},U=function(e){const o=Object.keys(e);for(const i of o)I[i]=e[i]},z=async function(e,o,i,a,d,p){const g=a.select(`[id="${i}"]`),s=Object.keys(e);for(const b of s){const l=e[b];let h="default";l.classes.length>0&&(h=l.classes.join(" ")),h=h+" flowchart-label";const w=r.getStylesFromArray(l.styles);let t=l.text!==void 0?l.text:l.id,c;if(r.log$1.info("vertex",l,l.labelType),l.labelType==="markdown")r.log$1.info("vertex",l,l.labelType);else if(r.evaluate(r.getConfig().flowchart.htmlLabels))c=D(g,{label:t}).node(),c.parentNode.removeChild(c);else{const k=d.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const T=t.split(r.common$1.lineBreakRegex);for(const $ of T){const v=d.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}c=k}let f=0,n="";switch(l.type){case"round":f=5,n="rect";break;case"square":n="rect";break;case"diamond":n="question";break;case"hexagon":n="hexagon";break;case"odd":n="rect_left_inv_arrow";break;case"lean_right":n="lean_right";break;case"lean_left":n="lean_left";break;case"trapezoid":n="trapezoid";break;case"inv_trapezoid":n="inv_trapezoid";break;case"odd_right":n="rect_left_inv_arrow";break;case"circle":n="circle";break;case"ellipse":n="ellipse";break;case"stadium":n="stadium";break;case"subroutine":n="subroutine";break;case"cylinder":n="cylinder";break;case"group":n="rect";break;case"doublecircle":n="doublecircle";break;default:n="rect"}const S=await r.renderKatexSanitized(t,r.getConfig());o.setNode(l.id,{labelStyle:w.labelStyle,shape:n,labelText:S,labelType:l.labelType,rx:f,ry:f,class:h,style:w.style,id:l.id,link:l.link,linkTarget:l.linkTarget,tooltip:p.db.getTooltip(l.id)||"",domId:p.db.lookUpDomId(l.id),haveCallback:l.haveCallback,width:l.type==="group"?500:void 0,dir:l.dir,type:l.type,props:l.props,padding:r.getConfig().flowchart.padding}),r.log$1.info("setNode",{labelStyle:w.labelStyle,labelType:l.labelType,shape:n,labelText:S,rx:f,ry:f,class:h,style:w.style,id:l.id,domId:p.db.lookUpDomId(l.id),width:l.type==="group"?500:void 0,type:l.type,dir:l.dir,props:l.props,padding:r.getConfig().flowchart.padding})}},q=async function(e,o,i){r.log$1.info("abc78 edges = ",e);let a=0,d={},p,g;if(e.defaultStyle!==void 0){const s=r.getStylesFromArray(e.defaultStyle);p=s.style,g=s.labelStyle}for(const s of e){a++;const b="L-"+s.start+"-"+s.end;d[b]===void 0?(d[b]=0,r.log$1.info("abc78 new entry",b,d[b])):(d[b]++,r.log$1.info("abc78 new entry",b,d[b]));let l=b+"-"+d[b];r.log$1.info("abc78 new link id to be used is",b,l,d[b]);const h="LS-"+s.start,w="LE-"+s.end,t={style:"",labelStyle:""};switch(t.minlen=s.length||1,s.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",s.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let c="",f="";switch(s.stroke){case"normal":c="fill:none;",p!==void 0&&(c=p),g!==void 0&&(f=g),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(s.style!==void 0){const n=r.getStylesFromArray(s.style);c=n.style,f=n.labelStyle}t.style=t.style+=c,t.labelStyle=t.labelStyle+=f,s.interpolate!==void 0?t.curve=r.interpolateToCurve(s.interpolate,r.curveLinear):e.defaultInterpolate!==void 0?t.curve=r.interpolateToCurve(e.defaultInterpolate,r.curveLinear):t.curve=r.interpolateToCurve(I.curve,r.curveLinear),s.text===void 0?s.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=s.labelType,t.label=await r.renderKatexSanitized(s.text.replace(r.common$1.lineBreakRegex,`
1
+ "use strict";const r=require("./layers.CsW0NOVs.js"),G=require("lodash-es"),P=require("./layers.BLd2spTm.js"),V=require("./layers.2KZRRux9.js"),j=require("./layers.CuSuFJYn.js");function F(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(o,i,a.get?a:{enumerable:!0,get:()=>e[i]})}}return o.default=e,Object.freeze(o)}const E=F(G);function N(e){return typeof e=="string"?new r.Selection([document.querySelectorAll(e)],[document.documentElement]):new r.Selection([r.array(e)],r.root)}function M(e,o){return!!e.children(o).length}function R(e){return _(e.v)+":"+_(e.w)+":"+_(e.name)}var H=/:/g;function _(e){return e?String(e).replace(H,"\\:"):""}function B(e,o){o&&e.attr("style",o)}function K(e,o,i){o&&e.attr("class",o).attr("class",i+" "+e.attr("class"))}function O(e,o){var i=o.graph();if(E.isPlainObject(i)){var a=i.transition;if(E.isFunction(a))return a(e)}return e}function D(e,o){var i=e.append("foreignObject").attr("width","100000"),a=i.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var d=o.label;switch(typeof d){case"function":a.insert(d);break;case"object":a.insert(function(){return d});break;default:a.html(d)}B(a,o.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var p=a.node().getBoundingClientRect();return i.attr("width",p.width).attr("height",p.height),i}const I={},U=function(e){const o=Object.keys(e);for(const i of o)I[i]=e[i]},z=async function(e,o,i,a,d,p){const g=a.select(`[id="${i}"]`),s=Object.keys(e);for(const b of s){const l=e[b];let h="default";l.classes.length>0&&(h=l.classes.join(" ")),h=h+" flowchart-label";const w=r.getStylesFromArray(l.styles);let t=l.text!==void 0?l.text:l.id,c;if(r.log$1.info("vertex",l,l.labelType),l.labelType==="markdown")r.log$1.info("vertex",l,l.labelType);else if(r.evaluate(r.getConfig().flowchart.htmlLabels))c=D(g,{label:t}).node(),c.parentNode.removeChild(c);else{const k=d.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const T=t.split(r.common$1.lineBreakRegex);for(const $ of T){const v=d.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}c=k}let f=0,n="";switch(l.type){case"round":f=5,n="rect";break;case"square":n="rect";break;case"diamond":n="question";break;case"hexagon":n="hexagon";break;case"odd":n="rect_left_inv_arrow";break;case"lean_right":n="lean_right";break;case"lean_left":n="lean_left";break;case"trapezoid":n="trapezoid";break;case"inv_trapezoid":n="inv_trapezoid";break;case"odd_right":n="rect_left_inv_arrow";break;case"circle":n="circle";break;case"ellipse":n="ellipse";break;case"stadium":n="stadium";break;case"subroutine":n="subroutine";break;case"cylinder":n="cylinder";break;case"group":n="rect";break;case"doublecircle":n="doublecircle";break;default:n="rect"}const S=await r.renderKatexSanitized(t,r.getConfig());o.setNode(l.id,{labelStyle:w.labelStyle,shape:n,labelText:S,labelType:l.labelType,rx:f,ry:f,class:h,style:w.style,id:l.id,link:l.link,linkTarget:l.linkTarget,tooltip:p.db.getTooltip(l.id)||"",domId:p.db.lookUpDomId(l.id),haveCallback:l.haveCallback,width:l.type==="group"?500:void 0,dir:l.dir,type:l.type,props:l.props,padding:r.getConfig().flowchart.padding}),r.log$1.info("setNode",{labelStyle:w.labelStyle,labelType:l.labelType,shape:n,labelText:S,rx:f,ry:f,class:h,style:w.style,id:l.id,domId:p.db.lookUpDomId(l.id),width:l.type==="group"?500:void 0,type:l.type,dir:l.dir,props:l.props,padding:r.getConfig().flowchart.padding})}},q=async function(e,o,i){r.log$1.info("abc78 edges = ",e);let a=0,d={},p,g;if(e.defaultStyle!==void 0){const s=r.getStylesFromArray(e.defaultStyle);p=s.style,g=s.labelStyle}for(const s of e){a++;const b="L-"+s.start+"-"+s.end;d[b]===void 0?(d[b]=0,r.log$1.info("abc78 new entry",b,d[b])):(d[b]++,r.log$1.info("abc78 new entry",b,d[b]));let l=b+"-"+d[b];r.log$1.info("abc78 new link id to be used is",b,l,d[b]);const h="LS-"+s.start,w="LE-"+s.end,t={style:"",labelStyle:""};switch(t.minlen=s.length||1,s.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",s.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let c="",f="";switch(s.stroke){case"normal":c="fill:none;",p!==void 0&&(c=p),g!==void 0&&(f=g),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(s.style!==void 0){const n=r.getStylesFromArray(s.style);c=n.style,f=n.labelStyle}t.style=t.style+=c,t.labelStyle=t.labelStyle+=f,s.interpolate!==void 0?t.curve=r.interpolateToCurve(s.interpolate,r.curveLinear):e.defaultInterpolate!==void 0?t.curve=r.interpolateToCurve(e.defaultInterpolate,r.curveLinear):t.curve=r.interpolateToCurve(I.curve,r.curveLinear),s.text===void 0?s.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=s.labelType,t.label=await r.renderKatexSanitized(s.text.replace(r.common$1.lineBreakRegex,`
2
2
  `),r.getConfig()),s.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=l,t.classes="flowchart-link "+h+" "+w,o.setEdge(s.start,s.end,t,a)}},W=function(e,o){return o.db.getClasses()},X=async function(e,o,i,a){r.log$1.info("Drawing flowchart");let d=a.db.getDirection();d===void 0&&(d="TD");const{securityLevel:p,flowchart:g}=r.getConfig(),s=g.nodeSpacing||50,b=g.rankSpacing||50;let l;p==="sandbox"&&(l=r.select("#i"+o));const h=p==="sandbox"?r.select(l.nodes()[0].contentDocument.body):r.select("body"),w=p==="sandbox"?l.nodes()[0].contentDocument:document,t=new P.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:s,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let c;const f=a.db.getSubGraphs();r.log$1.info("Subgraphs - ",f);for(let u=f.length-1;u>=0;u--)c=f[u],r.log$1.info("Subgraph - ",c),a.db.addVertex(c.id,{text:c.title,type:c.labelType},"group",void 0,c.classes,c.dir);const n=a.db.getVertices(),S=a.db.getEdges();r.log$1.info("Edges",S);let k=0;for(k=f.length-1;k>=0;k--){c=f[k],N("cluster").append("text");for(let u=0;u<c.nodes.length;u++)r.log$1.info("Setting up subgraphs",c.nodes[u],c.id),t.setParent(c.nodes[u],c.id)}await z(n,t,o,h,w,a),await q(S,t);const T=h.select(`[id="${o}"]`),$=h.select("#"+o+" g");if(await V.render($,t,["point","circle","cross"],"flowchart",o),r.utils.insertTitle(T,"flowchartTitleText",g.titleTopMargin,a.db.getDiagramTitle()),r.setupGraphViewbox$1(t,T,g.diagramPadding,g.useMaxWidth),a.db.indexNodes("subGraph"+k),!g.htmlLabels){const u=w.querySelectorAll('[id="'+o+'"] .edgeLabel .label');for(const x of u){const m=x.getBBox(),y=w.createElementNS("http://www.w3.org/2000/svg","rect");y.setAttribute("rx",0),y.setAttribute("ry",0),y.setAttribute("width",m.width),y.setAttribute("height",m.height),x.insertBefore(y,x.firstChild)}}Object.keys(n).forEach(function(u){const x=n[u];if(x.link){const m=r.select("#"+o+' [id="'+u+'"]');if(m){const y=w.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",x.classes.join(" ")),y.setAttributeNS("http://www.w3.org/2000/svg","href",x.link),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),p==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):x.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",x.linkTarget);const C=m.insert(function(){return y},":first-child"),L=m.select(".label-container");L&&C.append(function(){return L.node()});const A=m.select(".label");A&&C.append(function(){return A.node()})}}})},J={setConf:U,addVertices:z,addEdges:q,getClasses:W,draw:X},Q=(e,o)=>{const i=j.channel,a=i(e,"r"),d=i(e,"g"),p=i(e,"b");return r.rgba(a,d,p,o)},Y=e=>`.label {
3
3
  font-family: ${e.fontFamily};
4
4
  color: ${e.nodeTextColor||e.textColor};
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./layers.CWO9ESm6.js");require("./layers.Bo2zYuY5.js");const tt=require("./layers.BAUpMyN7.js"),nt=require("./layers.B19hGmey.js"),st=require("./layers.9pNaFvaX.js"),R=require("./layers.DOrgOHBr.js");function rt(e,y){return y<e?-1:y>e?1:y>=e?0:NaN}function at(e){return e}function lt(){var e=at,y=rt,$=null,g=R.constant(0),d=R.constant(u.tau),E=R.constant(0);function f(a){var l,m=(a=st.array(a)).length,v,I,D=0,_=new Array(m),b=new Array(m),o=+g.apply(this,arguments),w=Math.min(u.tau,Math.max(-u.tau,d.apply(this,arguments)-o)),P,T=Math.min(Math.abs(w)/m,E.apply(this,arguments)),S=T*(w<0?-1:1),t;for(l=0;l<m;++l)(t=b[_[l]=l]=+e(a[l],l,a))>0&&(D+=t);for(y!=null?_.sort(function(i,n){return y(b[i],b[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=D?(w-m*S)/D:0;l<m;++l,o=P)v=_[l],t=b[v],P=o+(t>0?t*I:0)+S,b[v]={data:a[v],index:l,value:t,startAngle:o,endAngle:P,padAngle:T};return b}return f.value=function(a){return arguments.length?(e=typeof a=="function"?a:R.constant(+a),f):e},f.sortValues=function(a){return arguments.length?(y=a,$=null,f):y},f.sort=function(a){return arguments.length?($=a,y=null,f):$},f.startAngle=function(a){return arguments.length?(g=typeof a=="function"?a:R.constant(+a),f):g},f.endAngle=function(a){return arguments.length?(d=typeof a=="function"?a:R.constant(+a),f):d},f.padAngle=function(a){return arguments.length?(E=typeof a=="function"?a:R.constant(+a),f):E},f}var K=(function(){var e=function(S,t,i,n){for(i=i||{},n=S.length;n--;i[S[n]]=t);return i},y=[1,3],$=[1,4],g=[1,5],d=[1,6],E=[1,10,12,14,16,18,19,20,21,22],f=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],m=[2,7],v=[1,12],I=[1,13],D=[1,14],_=[1,15],b=[1,16],o=[1,17],w={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,c,s,V){var x=s.length-1;switch(c){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:y,20:$,21:g,22:d},{1:[3]},{3:7,4:2,5:y,20:$,21:g,22:d},e(E,f,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,m,{8:10,9:11,1:[2,2],10:v,12:I,14:D,16:_,18:b,19:o}),e(E,f,{6:18}),e(E,[2,5]),{4:19,20:$,21:g,22:d},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,m,{8:10,9:11,1:[2,3],10:v,12:I,14:D,16:_,18:b,19:o}),e(E,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],c=[null],s=[],V=this.table,x="",p=0,N=0,z=2,j=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),L={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(L.yy[Y]=this.yy[Y]);h.setInput(t,L.yy),L.yy.lexer=h,L.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var Z=h.yylloc;s.push(Z);var et=h.options&&h.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function it(){var O;return O=r.pop()||h.lex()||j,typeof O!="number"&&(O instanceof Array&&(r=O,O=r.pop()),O=i.symbols_[O]||O),O}for(var k,F,A,H,M={},W,C,X,G;;){if(F=n[n.length-1],this.defaultActions[F]?A=this.defaultActions[F]:((k===null||typeof k>"u")&&(k=it()),A=V[F]&&V[F][k]),typeof A>"u"||!A.length||!A[0]){var J="";G=[];for(W in V[F])this.terminals_[W]&&W>z&&G.push("'"+this.terminals_[W]+"'");h.showPosition?J="Parse error on line "+(p+1)+`:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./layers.CsW0NOVs.js");require("./layers.DbVR6lTZ.js");const tt=require("./layers.B_pPyZfE.js"),nt=require("./layers.B19hGmey.js"),st=require("./layers.9pNaFvaX.js"),R=require("./layers.DOrgOHBr.js");function rt(e,y){return y<e?-1:y>e?1:y>=e?0:NaN}function at(e){return e}function lt(){var e=at,y=rt,$=null,g=R.constant(0),d=R.constant(u.tau),E=R.constant(0);function f(a){var l,m=(a=st.array(a)).length,v,I,D=0,_=new Array(m),b=new Array(m),o=+g.apply(this,arguments),w=Math.min(u.tau,Math.max(-u.tau,d.apply(this,arguments)-o)),P,T=Math.min(Math.abs(w)/m,E.apply(this,arguments)),S=T*(w<0?-1:1),t;for(l=0;l<m;++l)(t=b[_[l]=l]=+e(a[l],l,a))>0&&(D+=t);for(y!=null?_.sort(function(i,n){return y(b[i],b[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=D?(w-m*S)/D:0;l<m;++l,o=P)v=_[l],t=b[v],P=o+(t>0?t*I:0)+S,b[v]={data:a[v],index:l,value:t,startAngle:o,endAngle:P,padAngle:T};return b}return f.value=function(a){return arguments.length?(e=typeof a=="function"?a:R.constant(+a),f):e},f.sortValues=function(a){return arguments.length?(y=a,$=null,f):y},f.sort=function(a){return arguments.length?($=a,y=null,f):$},f.startAngle=function(a){return arguments.length?(g=typeof a=="function"?a:R.constant(+a),f):g},f.endAngle=function(a){return arguments.length?(d=typeof a=="function"?a:R.constant(+a),f):d},f.padAngle=function(a){return arguments.length?(E=typeof a=="function"?a:R.constant(+a),f):E},f}var K=(function(){var e=function(S,t,i,n){for(i=i||{},n=S.length;n--;i[S[n]]=t);return i},y=[1,3],$=[1,4],g=[1,5],d=[1,6],E=[1,10,12,14,16,18,19,20,21,22],f=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],m=[2,7],v=[1,12],I=[1,13],D=[1,14],_=[1,15],b=[1,16],o=[1,17],w={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,c,s,V){var x=s.length-1;switch(c){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:y,20:$,21:g,22:d},{1:[3]},{3:7,4:2,5:y,20:$,21:g,22:d},e(E,f,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,m,{8:10,9:11,1:[2,2],10:v,12:I,14:D,16:_,18:b,19:o}),e(E,f,{6:18}),e(E,[2,5]),{4:19,20:$,21:g,22:d},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,m,{8:10,9:11,1:[2,3],10:v,12:I,14:D,16:_,18:b,19:o}),e(E,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],c=[null],s=[],V=this.table,x="",p=0,N=0,z=2,j=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),L={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(L.yy[Y]=this.yy[Y]);h.setInput(t,L.yy),L.yy.lexer=h,L.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var Z=h.yylloc;s.push(Z);var et=h.options&&h.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function it(){var O;return O=r.pop()||h.lex()||j,typeof O!="number"&&(O instanceof Array&&(r=O,O=r.pop()),O=i.symbols_[O]||O),O}for(var k,F,A,H,M={},W,C,X,G;;){if(F=n[n.length-1],this.defaultActions[F]?A=this.defaultActions[F]:((k===null||typeof k>"u")&&(k=it()),A=V[F]&&V[F][k]),typeof A>"u"||!A.length||!A[0]){var J="";G=[];for(W in V[F])this.terminals_[W]&&W>z&&G.push("'"+this.terminals_[W]+"'");h.showPosition?J="Parse error on line "+(p+1)+`:
2
2
  `+h.showPosition()+`
3
3
  Expecting `+G.join(", ")+", got '"+(this.terminals_[k]||k)+"'":J="Parse error on line "+(p+1)+": Unexpected "+(k==j?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(J,{text:h.match,token:this.terminals_[k]||k,line:h.yylineno,loc:Z,expected:G})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+k);switch(A[0]){case 1:n.push(k),c.push(h.yytext),s.push(h.yylloc),n.push(A[1]),k=null,N=h.yyleng,x=h.yytext,p=h.yylineno,Z=h.yylloc;break;case 2:if(C=this.productions_[A[1]][1],M.$=c[c.length-C],M._$={first_line:s[s.length-(C||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(C||1)].first_column,last_column:s[s.length-1].last_column},et&&(M._$.range=[s[s.length-(C||1)].range[0],s[s.length-1].range[1]]),H=this.performAction.apply(M,[x,N,p,L.yy,A[1],c,s].concat(B)),typeof H<"u")return H;C&&(n=n.slice(0,-1*C*2),c=c.slice(0,-1*C),s=s.slice(0,-1*C)),n.push(this.productions_[A[1]][0]),c.push(M.$),s.push(M._$),X=V[n[n.length-2]][n[n.length-1]],n.push(X);break;case 3:return!0}}return!0}},P=(function(){var S={EOF:1,parseError:function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var c=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[c[0],c[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
@@ -1,6 +1,6 @@
1
1
  import { a as h } from "./layers.CqVTtuYm.js";
2
2
  import { w as d, c as o } from "./layers.DLwuMfdd.js";
3
- import { a0 as v } from "./layers.MjbW2xkA.js";
3
+ import { a0 as v } from "./layers.BGpgWOwd.js";
4
4
  function w(t) {
5
5
  return t[0];
6
6
  }
@@ -1,4 +1,4 @@
1
- import "./layers.CPx0SGHC.js";
1
+ import "./layers.inZZtro-.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: '加上 "Made with Excalidraw" 浮水印', handDrawn: "手寫", normal: "一般", code: "代碼", small: "小", medium: "中", large: "大", veryLarge: "特大", solid: "實心", hachure: "斜線筆觸", zigzag: "Z字形", crossHatch: "交叉筆觸", thin: "細", bold: "粗", left: "左側", center: "置中", right: "右側", extraBold: "極粗", architect: "精確", artist: "藝術", cartoonist: "卡通", fileTitle: "檔案名稱", colorPicker: "色彩選擇工具", canvasColors: "使用於畫布", canvasBackground: "Canvas 背景", drawingCanvas: "繪圖 canvas", layers: "圖層", actions: "動作", language: "語言", liveCollaboration: "即時協作...", duplicateSelection: "複製", untitled: "無標題", name: "名稱", yourName: "你的名稱", madeWithExcalidraw: "以 Excalidraw 製作", group: "建立群組", ungroup: "取消群組", collaborators: "協作者", showGrid: "顯示格線", addToLibrary: "加入資料庫", removeFromLibrary: "從資料庫中移除", libraryLoadingMessage: "資料庫讀取中…", libraries: "瀏覽資料庫", loadingScene: "場景讀取中…", align: "對齊", alignTop: "對齊頂部", alignBottom: "對齊底部", alignLeft: "對齊左側", alignRight: "對齊右側", centerVertically: "垂直置中", centerHorizontally: "水平置中", distributeHorizontally: "水平分布", distributeVertically: "垂直分布", flipHorizontal: "水平翻轉", flipVertical: "垂直翻轉", viewMode: "檢視模式", share: "共享", showStroke: "顯示線條檢色器", showBackground: "顯示背景檢色器", toggleTheme: "切換主題", personalLib: "個人資料庫", excalidrawLib: "Excalidraw 資料庫", decreaseFontSize: "縮小文字", increaseFontSize: "放大文字", unbindText: "取消綁定文字", bindText: "結合文字至容器", createContainerFromText: "將文字包於容器中", link: { edit: "編輯連結", editEmbed: "編輯連結&嵌入", create: "建立連結", createEmbed: "建立連結&嵌入", label: "連結", labelEmbed: "連結&嵌入", empty: "未設定連結" }, lineEditor: { edit: "編輯線條", exit: "結束線條編輯" }, elementLock: { lock: "鎖定", unlock: "解鎖", lockAll: "全部鎖定", unlockAll: "全部解鎖" }, statusPublished: "已發布", sidebarLock: "側欄維持開啟", selectAllElementsInFrame: "選取框架內的所有元素", removeAllElementsFromFrame: "從框架內移除所有元素", eyeDropper: "從畫布中選取顏色", textToDiagram: "文字轉圖表", prompt: "提示詞" }, F = { noItems: "尚未加入任何物件...", hint_emptyLibrary: "選取畫布上的物件以加入,或從下方的公開 repository 中安裝資料庫", hint_emptyPrivateLibrary: "選擇畫布上的物件以在此加入" }, e = { clearReset: "重置 canvas", 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: "這將會清除整個 canvas。你確定嗎?", couldNotCreateShareableLink: "無法建立共享連結。", couldNotCreateShareableLinkTooBig: "無法建立共享連結:場景太大", couldNotLoadInvalidFile: "無法讀取失效的檔案。", importBackendFailed: "後端讀取失敗。", cannotExportEmptyCanvas: "無法輸出空白的 canvas。", couldNotCopyToClipboard: "無法複製到剪貼簿", decryptFailed: "無法解密資料。", uploadedSecurly: "上傳已通過 end-to-end 加密,Excalidraw 伺服器和第三方無法皆讀取其內容。", loadSceneOverridePrompt: "讀取外部圖樣將取代目前的內容。是否要繼續?", collabStopOverridePrompt: `停止連線將覆蓋您先前於本機儲存的繪圖進度,是否確認?
3
3
 
4
4
  (如要保留原有的本機繪圖進度,直接關閉瀏覽器分頁即可。)`, errorAddingToLibrary: "無法於此資料庫加入項目", errorRemovingFromLibrary: "無法由此資料庫移除項目", confirmAddLibrary: "這將會將 {{numShapes}} 個圖形加入你的資料庫,你確定嗎?", imageDoesNotContainScene: "此圖檔中未包含場景資料。輸出檔案時是否有包含場景資料?", cannotRestoreFromImage: "無法由此檔案回復場景。", invalidSceneUrl: "無法由提供的 URL 匯入場景。可能是發生異常,或未包含有效的 Excalidraw JSON 資料。", resetLibrary: "這會清除您的資料庫,是否確定?", removeItemsFromsLibrary: "從資料庫刪除 {{count}} 項?", invalidEncryptionKey: "加密鍵必須為22字元。即時協作已停用。", collabOfflineWarning: `沒有可用的網路連線。
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("react"),e=require("./layers.x_vtOkr_.js"),y=require("@mantine/core");function D({initialEditor:t,children:u,initialNodes:r,initialTheme:b,skipCollabChecks:d,skipEditableListener:f}){const l=a.useRef(!1),v=a.useContext(e.r);v==null&&(function(s,...S){const j=new URL("https://lexical.dev/docs/error"),x=new URLSearchParams;x.append("code",s);for(const o of S)x.append("v",o);throw j.search=x.toString(),Error(`Minified Lexical error #${s}; visit ${j.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)})(9);const[g,{getTheme:w}]=v,I=a.useMemo(()=>{const s=b||w()||void 0,S=e.t(v,s);s!==void 0&&(t._config.theme=s),t._parentEditor=t._parentEditor||g;const j=t._createEditorArgs,x=j&&j.namespace;if(r){x||(t._config.namespace=g._config.namespace);for(let o of r){let _=null,m=null;if(typeof o!="function"){const i=o;o=i.replace,_=i.with,m=i.withKlass||null}const N=e.Xi(t,o.getType());t._nodes.set(o.getType(),{exportDOM:N?N.exportDOM:void 0,klass:o,replace:_,replaceWithKlass:m,sharedNodeState:e.at(o),transforms:e.ji(o)})}}else if(j&&j.nodes)x||(t._config.namespace=g._config.namespace);else{const o=t._nodes=new Map(g._nodes);x||(t._config.namespace=g._config.namespace);for(const[_,m]of o)t._nodes.set(_,{exportDOM:m.exportDOM,klass:m.klass,replace:m.replace,replaceWithKlass:m.replaceWithKlass,sharedNodeState:e.at(m.klass),transforms:e.ji(m.klass)})}return[t,S]},[]),E=a.useContext(e.l),{isCollabActive:h,yjsDocMap:p}=E??{},k=d||l.current||p&&p.has(t.getKey());return a.useEffect(()=>{k&&(l.current=!0)},[k]),a.useEffect(()=>{if(!f){const s=S=>t.setEditable(S);return s(g.isEditable()),g.registerEditableListener(s)}},[t,g,f]),n.jsx(e.r.Provider,{value:I,children:!h||k?u:null})}function T({children:t,className:u}){return n.jsx("div",{className:u||"Placeholder__root",children:t})}function P({label:t,value:u,onChange:r,placeholder:b="","data-test-id":d,type:f="text"}){return n.jsx(y.TextInput,{type:f,placeholder:b,value:u,onChange:l=>{r(l.target.value)},label:t,"data-test-id":d,mb:10})}const M=new Set;function z(t){if(!M.has(t))throw new Promise(u=>{const r=new Image;r.src=t,r.onload=()=>{M.add(t),u(null)}})}function O({altText:t,className:u,imageRef:r,src:b,width:d,height:f,position:l}){return z(b),n.jsx("img",{className:u||void 0,src:b,alt:t,ref:r,"data-position":l,style:{display:"block",height:f,width:d},draggable:"false"})}function R({activeEditor:t,nodeKey:u,onClose:r}){const d=t.getEditorState().read(()=>e.xo(u)),[f,l]=a.useState(d.getAltText()),[v,g]=a.useState(d.getShowCaption()),[w,I]=a.useState(d.getPosition()),E=p=>{g(p.target.checked)},h=()=>{const p={altText:f,position:w,showCaption:v};d&&t.update(()=>{d.update(p)}),r()};return n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{marginBottom:"1em"},children:n.jsx(P,{label:"Alt-текст",placeholder:"Альтернативный текст",onChange:l,value:f,"data-test-id":"image-modal-alt-text-input"})}),n.jsxs("div",{className:"Input__wrapper",children:[n.jsx("input",{id:"caption",type:"checkbox",checked:v,onChange:E}),n.jsx("label",{htmlFor:"caption",children:"Show Caption"})]}),n.jsx(e.Button,{"data-test-id":"image-modal-file-upload-btn",onClick:()=>h(),children:"Применить"})]})}function U({src:t,altText:u,nodeKey:r,width:b,height:d,showCaption:f,caption:l,position:v}){const[g,w]=e.useModal(),I=a.useRef(null),E=a.useRef(null),[h,p,k]=e.u(r),[s]=e.o(),[S,j]=a.useState(null),x=a.useRef(null),o=a.useCallback(i=>{if(h&&e.xr(e.Lr())){i.preventDefault();const c=e.xo(r);e.$isInlineImageNode(c)&&c.remove()}return!1},[h,r]),_=a.useCallback(i=>{const C=e.Lr(),c=E.current;if(h&&e.xr(C)&&C.getNodes().length===1){if(f)return e.wo(null),i.preventDefault(),l.focus(),!0;if(c!==null&&c!==document.activeElement)return i.preventDefault(),c.focus(),!0}return!1},[l,h,f]),m=a.useCallback(i=>x.current===l||E.current===i.target?(e.wo(null),s.update(()=>{p(!0);const C=s.getRootElement();C!==null&&C.focus()}),!0):!1,[l,s,p]);a.useEffect(()=>{let i=!0;const C=e.U(s.registerUpdateListener(({editorState:c})=>{i&&j(c.read(()=>e.Lr()))}),s.registerCommand(e.ie,(c,L)=>(x.current=L,!1),e.zi),s.registerCommand(e.se,c=>{const L=c;return L.target===I.current?(L.shiftKey?p(!h):(k(),p(!0)),!0):!1},e.zi),s.registerCommand(e.Ie,c=>c.target===I.current?(c.preventDefault(),!0):!1,e.zi),s.registerCommand(e.Oe,o,e.zi),s.registerCommand(e.we,o,e.zi),s.registerCommand(e.Ne,_,e.zi),s.registerCommand(e.Ee,m,e.zi));return()=>{i=!1,C()}},[k,s,h,r,o,_,m,p]);const N=h;return n.jsxs(a.Suspense,{fallback:null,children:[n.jsxs(n.Fragment,{children:[n.jsxs("div",{draggable:!1,children:[n.jsx("button",{className:"image-edit-button",ref:E,onClick:()=>{w("Update Inline Image",i=>n.jsx(R,{activeEditor:s,nodeKey:r,onClose:i}))},children:"Edit"}),n.jsx(O,{className:N?`focused ${e.xr(S)?"draggable":""}`:null,src:t,altText:u,imageRef:I,width:b,height:d,position:v})]}),f&&n.jsx("div",{className:"image-caption-container",children:n.jsxs(D,{initialEditor:l,children:[n.jsx(e.LinkPlugin,{}),n.jsx(e.FloatingTextFormatToolbarPlugin,{}),n.jsx(e.L,{contentEditable:n.jsx(e.LexicalContentEditable,{className:"InlineImageNode__contentEditable"}),placeholder:n.jsx(T,{className:"InlineImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:e.n})]})})]}),g]})}exports.UpdateInlineImageDialog=R;exports.default=U;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("react"),e=require("./layers.SqMtzngi.js"),y=require("@mantine/core");function D({initialEditor:t,children:u,initialNodes:r,initialTheme:b,skipCollabChecks:d,skipEditableListener:f}){const l=a.useRef(!1),v=a.useContext(e.r);v==null&&(function(s,...S){const j=new URL("https://lexical.dev/docs/error"),x=new URLSearchParams;x.append("code",s);for(const o of S)x.append("v",o);throw j.search=x.toString(),Error(`Minified Lexical error #${s}; visit ${j.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)})(9);const[g,{getTheme:w}]=v,I=a.useMemo(()=>{const s=b||w()||void 0,S=e.t(v,s);s!==void 0&&(t._config.theme=s),t._parentEditor=t._parentEditor||g;const j=t._createEditorArgs,x=j&&j.namespace;if(r){x||(t._config.namespace=g._config.namespace);for(let o of r){let _=null,m=null;if(typeof o!="function"){const i=o;o=i.replace,_=i.with,m=i.withKlass||null}const N=e.Xi(t,o.getType());t._nodes.set(o.getType(),{exportDOM:N?N.exportDOM:void 0,klass:o,replace:_,replaceWithKlass:m,sharedNodeState:e.at(o),transforms:e.ji(o)})}}else if(j&&j.nodes)x||(t._config.namespace=g._config.namespace);else{const o=t._nodes=new Map(g._nodes);x||(t._config.namespace=g._config.namespace);for(const[_,m]of o)t._nodes.set(_,{exportDOM:m.exportDOM,klass:m.klass,replace:m.replace,replaceWithKlass:m.replaceWithKlass,sharedNodeState:e.at(m.klass),transforms:e.ji(m.klass)})}return[t,S]},[]),E=a.useContext(e.l),{isCollabActive:h,yjsDocMap:p}=E??{},k=d||l.current||p&&p.has(t.getKey());return a.useEffect(()=>{k&&(l.current=!0)},[k]),a.useEffect(()=>{if(!f){const s=S=>t.setEditable(S);return s(g.isEditable()),g.registerEditableListener(s)}},[t,g,f]),n.jsx(e.r.Provider,{value:I,children:!h||k?u:null})}function T({children:t,className:u}){return n.jsx("div",{className:u||"Placeholder__root",children:t})}function P({label:t,value:u,onChange:r,placeholder:b="","data-test-id":d,type:f="text"}){return n.jsx(y.TextInput,{type:f,placeholder:b,value:u,onChange:l=>{r(l.target.value)},label:t,"data-test-id":d,mb:10})}const M=new Set;function z(t){if(!M.has(t))throw new Promise(u=>{const r=new Image;r.src=t,r.onload=()=>{M.add(t),u(null)}})}function O({altText:t,className:u,imageRef:r,src:b,width:d,height:f,position:l}){return z(b),n.jsx("img",{className:u||void 0,src:b,alt:t,ref:r,"data-position":l,style:{display:"block",height:f,width:d},draggable:"false"})}function R({activeEditor:t,nodeKey:u,onClose:r}){const d=t.getEditorState().read(()=>e.xo(u)),[f,l]=a.useState(d.getAltText()),[v,g]=a.useState(d.getShowCaption()),[w,I]=a.useState(d.getPosition()),E=p=>{g(p.target.checked)},h=()=>{const p={altText:f,position:w,showCaption:v};d&&t.update(()=>{d.update(p)}),r()};return n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{marginBottom:"1em"},children:n.jsx(P,{label:"Alt-текст",placeholder:"Альтернативный текст",onChange:l,value:f,"data-test-id":"image-modal-alt-text-input"})}),n.jsxs("div",{className:"Input__wrapper",children:[n.jsx("input",{id:"caption",type:"checkbox",checked:v,onChange:E}),n.jsx("label",{htmlFor:"caption",children:"Show Caption"})]}),n.jsx(e.Button,{"data-test-id":"image-modal-file-upload-btn",onClick:()=>h(),children:"Применить"})]})}function U({src:t,altText:u,nodeKey:r,width:b,height:d,showCaption:f,caption:l,position:v}){const[g,w]=e.useModal(),I=a.useRef(null),E=a.useRef(null),[h,p,k]=e.u(r),[s]=e.o(),[S,j]=a.useState(null),x=a.useRef(null),o=a.useCallback(i=>{if(h&&e.xr(e.Lr())){i.preventDefault();const c=e.xo(r);e.$isInlineImageNode(c)&&c.remove()}return!1},[h,r]),_=a.useCallback(i=>{const C=e.Lr(),c=E.current;if(h&&e.xr(C)&&C.getNodes().length===1){if(f)return e.wo(null),i.preventDefault(),l.focus(),!0;if(c!==null&&c!==document.activeElement)return i.preventDefault(),c.focus(),!0}return!1},[l,h,f]),m=a.useCallback(i=>x.current===l||E.current===i.target?(e.wo(null),s.update(()=>{p(!0);const C=s.getRootElement();C!==null&&C.focus()}),!0):!1,[l,s,p]);a.useEffect(()=>{let i=!0;const C=e.U(s.registerUpdateListener(({editorState:c})=>{i&&j(c.read(()=>e.Lr()))}),s.registerCommand(e.ie,(c,L)=>(x.current=L,!1),e.zi),s.registerCommand(e.se,c=>{const L=c;return L.target===I.current?(L.shiftKey?p(!h):(k(),p(!0)),!0):!1},e.zi),s.registerCommand(e.Ie,c=>c.target===I.current?(c.preventDefault(),!0):!1,e.zi),s.registerCommand(e.Oe,o,e.zi),s.registerCommand(e.we,o,e.zi),s.registerCommand(e.Ne,_,e.zi),s.registerCommand(e.Ee,m,e.zi));return()=>{i=!1,C()}},[k,s,h,r,o,_,m,p]);const N=h;return n.jsxs(a.Suspense,{fallback:null,children:[n.jsxs(n.Fragment,{children:[n.jsxs("div",{draggable:!1,children:[n.jsx("button",{className:"image-edit-button",ref:E,onClick:()=>{w("Update Inline Image",i=>n.jsx(R,{activeEditor:s,nodeKey:r,onClose:i}))},children:"Edit"}),n.jsx(O,{className:N?`focused ${e.xr(S)?"draggable":""}`:null,src:t,altText:u,imageRef:I,width:b,height:d,position:v})]}),f&&n.jsx("div",{className:"image-caption-container",children:n.jsxs(D,{initialEditor:l,children:[n.jsx(e.LinkPlugin,{}),n.jsx(e.FloatingTextFormatToolbarPlugin,{}),n.jsx(e.L,{contentEditable:n.jsx(e.LexicalContentEditable,{className:"InlineImageNode__contentEditable"}),placeholder:n.jsx(T,{className:"InlineImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:e.n})]})})]}),g]})}exports.UpdateInlineImageDialog=R;exports.default=U;
@@ -1,4 +1,4 @@
1
- import "./layers.CPx0SGHC.js";
1
+ import "./layers.inZZtro-.js";
2
2
  var e = { paste: "Wklej", pasteAsPlaintext: "Wklej jako zwykły tekst", pasteCharts: "Wklej wykresy", selectAll: "Zaznacz wszystko", multiSelect: "Dodaj element do zaznaczenia", moveCanvas: "Przesuń obszar roboczy", cut: "Wytnij", copy: "Kopiuj", copyAsPng: "Skopiuj do schowka jako plik PNG", copyAsSvg: "Skopiuj do schowka jako plik SVG", copyText: "Skopiuj do schowka jako tekst", copySource: "Skopiuj źródło do schowka", convertToCode: "Skonwertuj do kodu", bringForward: "Przenieś wyżej", sendToBack: "Przenieś na spód", bringToFront: "Przenieś na wierzch", sendBackward: "Przenieś niżej", delete: "Usuń", copyStyles: "Kopiuj style", pasteStyles: "Wklej style", stroke: "Kolor obramowania", background: "Kolor wypełnienia", fill: "Wypełnienie", strokeWidth: "Grubość obramowania", strokeStyle: "Styl obrysu", strokeStyle_solid: "Pełny", strokeStyle_dashed: "Kreskowany", strokeStyle_dotted: "Kropkowany", sloppiness: "Styl kreski", opacity: "Przeźroczystość", textAlign: "Wyrównanie tekstu", edges: "Krawędzie", sharp: "Ostry", round: "Zaokrąglij", arrowheads: "Groty", arrowhead_none: "Brak", arrowhead_arrow: "Strzałka", arrowhead_bar: "Kreska", arrowhead_circle: "Okrąg", arrowhead_circle_outline: "Okrąg (obrys)", arrowhead_triangle: "Trójkąt", arrowhead_triangle_outline: "Trójkąt (obrys)", arrowhead_diamond: "Romb", arrowhead_diamond_outline: "Romb (obrys)", fontSize: "Rozmiar tekstu", fontFamily: "Krój pisma", addWatermark: 'Dodaj "Zrobione w Excalidraw"', handDrawn: "Odręczny", normal: "Normalny", code: "Kod", small: "Mały", medium: "Średni", large: "Duży", veryLarge: "Bardzo duży", solid: "Pełne", hachure: "Linie", zigzag: "Zygzak", crossHatch: "Zakreślone", thin: "Cienkie", bold: "Pogrubione", left: "Do lewej", center: "Do środka", right: "Do prawej", extraBold: "Ekstra pogrubione", architect: "Dokładny", artist: "Artystyczny", cartoonist: "Rysunkowy", fileTitle: "Nazwa pliku", colorPicker: "Paleta kolorów", canvasColors: "Używane na płótnie", canvasBackground: "Kolor dokumentu", drawingCanvas: "Obszar roboczy", layers: "Warstwy", actions: "Akcje", language: "Język", liveCollaboration: "Współpraca w czasie rzeczywistym...", duplicateSelection: "Powiel", untitled: "Bez tytułu", name: "Nazwa", yourName: "Twoje imię", madeWithExcalidraw: "Zrobione w Excalidraw", group: "Zgrupuj wybrane", ungroup: "Rozgrupuj wybrane", collaborators: "Współtwórcy", showGrid: "Pokaż siatkę", addToLibrary: "Dodaj do biblioteki", removeFromLibrary: "Usuń z biblioteki", libraryLoadingMessage: "Wczytywanie biblioteki…", libraries: "Przeglądaj biblioteki", loadingScene: "Wczytywanie sceny…", align: "Wyrównaj", alignTop: "Wyrównaj do góry", alignBottom: "Wyrównaj do dołu", alignLeft: "Wyrównaj do lewej", alignRight: "Wyrównaj do prawej", centerVertically: "Wyśrodkuj w pionie", centerHorizontally: "Wyśrodkuj w poziomie", distributeHorizontally: "Rozłóż poziomo", distributeVertically: "Rozłóż pionowo", flipHorizontal: "Odwróć w poziomie", flipVertical: "Odwróć w pionie", viewMode: "Tryb widoku", share: "Udostępnij", showStroke: "Pokaż próbnik kolorów obrysu", showBackground: "Pokaż próbnik koloru tła", toggleTheme: "Przełącz motyw", personalLib: "Biblioteka prywatna", excalidrawLib: "Biblioteka Excalidraw", decreaseFontSize: "Zmniejsz rozmiar czcionki", increaseFontSize: "Zwiększ rozmiar czcionki", unbindText: "Odłącz tekst od kontenera", bindText: "Połącz tekst z kontenerem", createContainerFromText: "Zawijaj tekst w kontenerze", link: { edit: "Edytuj łącze", editEmbed: "Edytuj i osadź link", create: "Utwórz łącze", createEmbed: "Stwórz i osadź link", label: "Łącze", labelEmbed: "Podlinkuj i osadź", empty: "Nie ustawiono linku" }, lineEditor: { edit: "Edytuj linię", exit: "Wyjdź z edytora linii" }, elementLock: { lock: "Zablokuj", unlock: "Odblokuj", lockAll: "Zablokuj wszystko", unlockAll: "Odblokuj wszystko" }, statusPublished: "Opublikowano", sidebarLock: "Panel boczny zawsze otwarty", selectAllElementsInFrame: "Zaznacz wszystkie elementy w ramce", removeAllElementsFromFrame: "Usuń wszystkie elementy z ramki", eyeDropper: "Wybierz kolor z płótna", textToDiagram: "Tekst do diagramu", prompt: "" }, a = { noItems: "Nie dodano jeszcze żadnych elementów...", hint_emptyLibrary: "Wybierz element na płótnie, aby go tutaj dodać, lub zainstaluj bibliotekę z poniższego publicznego repozytorium.", hint_emptyPrivateLibrary: "Wybierz element, aby dodać go tutaj." }, o = { clearReset: "Wyczyść dokument i zresetuj kolor dokumentu", exportJSON: "Eksportuj do pliku", exportImage: "Eksportuj obraz...", export: "Zapisz jako...", copyToClipboard: "Skopiuj do schowka", save: "Zapisz do bieżącego pliku", saveAs: "Zapisz jako", load: "Otwórz", getShareableLink: "Udostępnij", close: "Zamknij", selectLanguage: "Wybierz język", scrollBackToContent: "Wróć do obszaru roboczego", zoomIn: "Powiększ", zoomOut: "Pomniejsz", resetZoom: "Zresetuj powiększenie", menu: "Menu", done: "Gotowe", edit: "Edytuj", undo: "Cofnij", redo: "Przywróć", resetLibrary: "Resetuj bibliotekę", createNewRoom: "Utwórz nowy pokój", fullScreen: "Pełny ekran", darkMode: "Ciemny motyw", lightMode: "Jasny motyw", zenMode: "Tryb Zen", objectsSnapMode: "Przyciąganie do obiektów", exitZenMode: "Wyjdź z trybu Zen", cancel: "Anuluj", clear: "Wyczyść", remove: "Usuń", embed: "Przełącz osadzenie", publishLibrary: "Opublikuj", submit: "Prześlij", confirm: "Zatwierdź", embeddableInteractionButton: "Kliknij, aby wejść w interakcję" }, i = { clearReset: "To spowoduje usunięcie wszystkiego z dokumentu. Czy chcesz kontynuować?", couldNotCreateShareableLink: "Wystąpił błąd przy generowaniu linka do udostępniania.", couldNotCreateShareableLinkTooBig: "Nie można utworzyć linku do udostępnienia: scena jest za duża", couldNotLoadInvalidFile: "Nie udało się otworzyć pliku. Wybrany plik jest nieprawidłowy.", importBackendFailed: "Wystąpił błąd podczas importowania pliku.", cannotExportEmptyCanvas: "Najpierw musisz coś narysować, aby zapisać dokument.", couldNotCopyToClipboard: "Nie udało się skopiować do schowka.", decryptFailed: "Nie udało się odszyfrować danych.", uploadedSecurly: "By zapewnić Ci prywatność, udostępnianie projektu jest zabezpieczone szyfrowaniem end-to-end, co oznacza, że poza tobą i osobą z którą podzielisz się linkiem, nikt nie ma dostępu do tego co udostępniasz.", loadSceneOverridePrompt: "Wczytanie zewnętrznego rysunku zastąpi istniejącą zawartość. Czy chcesz kontynuować?", collabStopOverridePrompt: `Zatrzymanie sesji nadpisze poprzedni, zapisany lokalnie rysunek. Czy jesteś pewien?
3
3
 
4
4
  (Jeśli chcesz zachować swój lokalny rysunek, po prostu zamknij zakładkę przeglądarki.)`, errorAddingToLibrary: "Nie udało się dodać elementu do biblioteki", errorRemovingFromLibrary: "Nie udało się usunąć elementu z biblioteki", confirmAddLibrary: "To doda {{numShapes}} kształtów do twojej biblioteki. Jesteś pewien?", imageDoesNotContainScene: "Ten obraz nie zawiera żadnych informacji o scenie. Czy włączyłeś osadzanie sceny podczas eksportu?", cannotRestoreFromImage: "Scena nie mogła zostać przywrócona z pliku obrazu", invalidSceneUrl: "Nie udało się zaimportować sceny z podanego adresu URL. Jest ona wadliwa lub nie zawiera poprawnych danych Excalidraw w formacie JSON.", resetLibrary: "To wyczyści twoją bibliotekę. Jesteś pewien?", removeItemsFromsLibrary: "Usunąć {{count}} element(ów) z biblioteki?", invalidEncryptionKey: "Klucz szyfrowania musi składać się z 22 znaków. Współpraca na żywo jest wyłączona.", collabOfflineWarning: `Brak połączenia z Internetem.