@layers-app/editor 2.2.26 → 2.2.28

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 +2 -8
  3. package/dist/index.js +2 -2
  4. package/dist/layers.3hDA1b0k.js +6 -0
  5. package/dist/{layers.CPV8HPk2.js → layers.4ARZXQeL.js} +1 -1
  6. package/dist/{layers.fqhsmbSv.js → layers.7c2enLW7.js} +1 -1
  7. package/dist/{layers.CHVunHah.js → layers.87GlyONu.js} +3 -3
  8. package/dist/{layers.CKlEh2ph.js → layers.8T0r3fsf.js} +1 -1
  9. package/dist/{layers.BoWTpFSJ.js → layers.9enAZvnR.js} +1 -1
  10. package/dist/{layers.C9uFxF_x.js → layers.B2b0XeYH.js} +1 -1
  11. package/dist/{layers.CXryqKux.js → layers.B3DplC7g.js} +2 -2
  12. package/dist/{layers.ukB76BeP.js → layers.B3WvZBSV.js} +1 -1
  13. package/dist/{layers.D_Qc2Frl.js → layers.B4zSzU1x.js} +1 -1
  14. package/dist/{layers.Bw4RqPxU.js → layers.B7WOoU00.js} +3 -3
  15. package/dist/{layers.IBiEQPei.js → layers.B864NdoW.js} +1 -1
  16. package/dist/{layers.BzhVtNDe.js → layers.B8yfd3vl.js} +1 -1
  17. package/dist/{layers.CGx5Pud_.js → layers.BAIbvRIu.js} +25 -25
  18. package/dist/{layers.Dw6Ya1fR.js → layers.BAYu3WKm.js} +1 -1
  19. package/dist/{layers.Dm1zvGhd.js → layers.BAaFlP-4.js} +1 -1
  20. package/dist/layers.BBPWQcJT.js +8 -0
  21. package/dist/{layers.D4sN4GVZ.js → layers.BEZLsB_Z.js} +1 -1
  22. package/dist/{layers.D9lk_Y1V.js → layers.BH4XCTH6.js} +1 -1
  23. package/dist/{layers.B1yoIffp.js → layers.BJgaB7_7.js} +1 -1
  24. package/dist/{layers.qBWHHGfF.js → layers.BKPsph4l.js} +1 -1
  25. package/dist/{layers.CO7oLef9.js → layers.BKTgX_Eg.js} +1 -1
  26. package/dist/{layers.BvkIjLBv.js → layers.BKa6QLc0.js} +1 -1
  27. package/dist/{layers.q2xikkTk.js → layers.BNQa_0LR.js} +1 -1
  28. package/dist/{layers.-zB5WJOj.js → layers.BNrEOgcY.js} +1 -1
  29. package/dist/{layers.CB6LbxIg.js → layers.BObsRVqU.js} +1 -1
  30. package/dist/{layers.BRx-4n5G.js → layers.BPDgRKs1.js} +3 -3
  31. package/dist/{layers.K5beCy9i.js → layers.BPJs5sk-.js} +1 -1
  32. package/dist/{layers.xv63P4WH.js → layers.BROeMLEB.js} +1 -1
  33. package/dist/{layers.e9A9x_hg.js → layers.BUVe3HJj.js} +1 -1
  34. package/dist/{layers.D32ac4vh.js → layers.BV6NI9TX.js} +1 -1
  35. package/dist/{layers.DagdVSt3.js → layers.BW7udhZg.js} +3 -3
  36. package/dist/{layers.MaXUfXO_.js → layers.BXCekWp3.js} +1 -1
  37. package/dist/{layers.DTnv8XqK.js → layers.BXeW-qI-.js} +1 -1
  38. package/dist/layers.BY7vpsSF.js +1 -0
  39. package/dist/{layers.Cqm1P0VP.js → layers.Ba4IDUoA.js} +1 -1
  40. package/dist/{layers.BuR-tcro.js → layers.BalINiLS.js} +1 -1
  41. package/dist/{layers.xS6evG28.js → layers.BbFiE4U0.js} +4 -4
  42. package/dist/{layers.x9Hml5Gq.js → layers.BbZQHEcC.js} +1 -1
  43. package/dist/{layers.DwhgM8bQ.js → layers.Bd6yYMWC.js} +1 -1
  44. package/dist/{layers.zz3BNUi7.js → layers.BdOBA6Qa.js} +2 -2
  45. package/dist/{layers.CbBKgNgU.js → layers.Be5imCWt.js} +1 -1
  46. package/dist/{layers.B0jQhgZz.js → layers.BeQ6z7S7.js} +1 -1
  47. package/dist/{layers.DWFgpkLn.js → layers.Bh5N0H1n.js} +1 -1
  48. package/dist/{layers.B48wWDWF.js → layers.BhuNgnUx.js} +4 -4
  49. package/dist/{layers.FeirAVQJ.js → layers.BjSKUkgm.js} +1 -1
  50. package/dist/{layers.na7TRuqZ.js → layers.BjUqNamF.js} +4 -4
  51. package/dist/{layers.sfWFzC79.js → layers.Bk2OYxWq.js} +1 -1
  52. package/dist/{layers.B0Ktq9CR.js → layers.BkS9WPaI.js} +1 -1
  53. package/dist/{layers.B3005Iyl.js → layers.BsS2iEbL.js} +1 -1
  54. package/dist/{layers.dOeetx7B.js → layers.BtNu_rTI.js} +2 -2
  55. package/dist/{layers.BcszPjZC.js → layers.BtUYdWJi.js} +1 -1
  56. package/dist/{layers.6Xdc9ehd.js → layers.Bt_xwr9P.js} +1 -1
  57. package/dist/{layers.DXxYy4VP.js → layers.BuQqd2UB.js} +1 -1
  58. package/dist/{layers.BwSCCl9n.js → layers.BwCaG3xq.js} +1 -1
  59. package/dist/{layers.Cgy4GthX.js → layers.BwL3Upvr.js} +3 -3
  60. package/dist/{layers.C81SvY8r.js → layers.BxmXw7Yl.js} +8 -8
  61. package/dist/{layers.rJZkJZ5W.js → layers.Bznt4nUs.js} +1 -1
  62. package/dist/{layers.CfDdCp-K.js → layers.C1xmkrKV.js} +2 -2
  63. package/dist/{layers.CP6XP5wL.js → layers.C4XqPgMl.js} +1 -1
  64. package/dist/{layers.D1V6iRCh.js → layers.C5xMmkEM.js} +3 -3
  65. package/dist/{layers.B7T5d2JK.js → layers.C7toU4wi.js} +1 -1
  66. package/dist/{layers.DIz07YJF.js → layers.C9QZdLhd.js} +4 -4
  67. package/dist/{layers.8i-CC5EK.js → layers.CAipqXzy.js} +1 -1
  68. package/dist/{layers.CxSYMI7C.js → layers.CCI_NQSC.js} +1 -1
  69. package/dist/{layers.BXK2bow6.js → layers.CEIgJJ-f.js} +1 -1
  70. package/dist/{layers.CWcPMmYR.js → layers.CGUxjm1S.js} +1 -1
  71. package/dist/{layers.4EoFr43F.js → layers.CGlUoynK.js} +1 -1
  72. package/dist/{layers.CVhA0jKd.js → layers.CGqvs0P1.js} +3 -3
  73. package/dist/{layers.e0irYIAc.js → layers.CHHIjB_n.js} +1 -1
  74. package/dist/{layers.CCBNXZi1.js → layers.CHMKLUtz.js} +1 -1
  75. package/dist/{layers.CSYaaida.js → layers.CIY2zomP.js} +1 -1
  76. package/dist/{layers.BWBQFX0w.js → layers.CIfAp8KG.js} +1 -1
  77. package/dist/{layers.DUIS1KN7.js → layers.CJMRdBvI.js} +1 -1
  78. package/dist/{layers.DrZ4R2sf.js → layers.CJORJiBl.js} +1 -1
  79. package/dist/{layers.BGGmC1mj.js → layers.CKTVIUZT.js} +1 -1
  80. package/dist/{layers.D_en7wKa.js → layers.CKuYbNI8.js} +1 -1
  81. package/dist/{layers.D_2f8KII.js → layers.CKyivm2c.js} +1 -1
  82. package/dist/{layers.CG8LEOzf.js → layers.CLfYs3IM.js} +1 -1
  83. package/dist/{layers.C6E1k0Mp.js → layers.CM4tha3V.js} +1 -1
  84. package/dist/{layers.ITrVWRyl.js → layers.CN1GTJ0Q.js} +3 -3
  85. package/dist/{layers.DQKASME-.js → layers.COY8iEzs.js} +1 -1
  86. package/dist/{layers.DIxrr609.js → layers.CO_VwIyL.js} +1 -1
  87. package/dist/{layers.D0Dy0sOw.js → layers.COarlKXN.js} +1 -1
  88. package/dist/{layers.g9aX-mks.js → layers.COlvA4A3.js} +1 -1
  89. package/dist/{layers.qYUcuXN-.js → layers.CPHpvyIi.js} +1 -1
  90. package/dist/{layers.BLRqESdT.js → layers.CPgBrV2V.js} +1 -1
  91. package/dist/{layers.lQGt2eEO.js → layers.CQ16SvQD.js} +1 -1
  92. package/dist/{layers.Cpl4S5cb.js → layers.CQJ_fYu6.js} +1 -1
  93. package/dist/{layers.CV3cTP0n.js → layers.CTYuTTjO.js} +1 -1
  94. package/dist/{layers.BFKzUjnu.js → layers.CUj5-5_u.js} +1 -1
  95. package/dist/{layers.B573X9dA.js → layers.CWhgcrE4.js} +1 -1
  96. package/dist/{layers.BH-W_UIE.js → layers.CYFpww8f.js} +1 -1
  97. package/dist/{layers.g5tGNdTA.js → layers.Ca9SoC0T.js} +1 -1
  98. package/dist/{layers.RCzN2SFS.js → layers.CarrVSUs.js} +1 -1
  99. package/dist/{layers.Dza9tIiT.js → layers.CavtOq29.js} +1 -1
  100. package/dist/{layers.Q4IkYDH2.js → layers.Cbnotlua.js} +4 -4
  101. package/dist/{layers.DJZWnbnX.js → layers.CdNEWebp.js} +1 -1
  102. package/dist/{layers.BbOyTSta.js → layers.CdOF5t07.js} +1 -1
  103. package/dist/{layers.CJFpJCjf.js → layers.CdWmYMGc.js} +1 -1
  104. package/dist/{layers.DaGVHbYE.js → layers.Ce7Mk-_N.js} +1 -1
  105. package/dist/{layers.CTgTEDSL.js → layers.CeFS379v.js} +1 -1
  106. package/dist/{layers.DKM5lS-s.js → layers.CfCX5fqj.js} +1 -1
  107. package/dist/{layers.B1AJaTd-.js → layers.CgrKk06W.js} +1 -1
  108. package/dist/{layers.aOl2z95f.js → layers.Ch39euZH.js} +1 -1
  109. package/dist/{layers.EjpFyQE4.js → layers.Cjlog2sy.js} +1 -1
  110. package/dist/{layers.Ck7wLj_J.js → layers.CjvKhmCS.js} +1 -1
  111. package/dist/{layers._vq-XD-u.js → layers.CjxH8ZXq.js} +4 -4
  112. package/dist/{layers.Do1Q1_ca.js → layers.ClWMdhin.js} +1 -1
  113. package/dist/{layers.BvVu_tm9.js → layers.Cm5WH1rI.js} +1 -1
  114. package/dist/{layers.BgB8UJJV.js → layers.CmY3EjiB.js} +1 -1
  115. package/dist/{layers.DZYQ_HVK.js → layers.CoIVF9Zi.js} +1 -1
  116. package/dist/{layers.Cw5Btt40.js → layers.CqOGYw7e.js} +1 -1
  117. package/dist/{layers.DPgCY4xy.js → layers.CsmugJGK.js} +1 -1
  118. package/dist/{layers.s_QJ2fp5.js → layers.Cv8gm6DJ.js} +7 -7
  119. package/dist/{layers.BdpoJeHf.js → layers.CzcSleAc.js} +1 -1
  120. package/dist/{layers.DnXRkvjC.js → layers.D-fpEkux.js} +1 -1
  121. package/dist/{layers.DZqRhtmt.js → layers.D0F-UdkL.js} +1 -1
  122. package/dist/{layers.DaF4JgN-.js → layers.D2B0q-ps.js} +1 -1
  123. package/dist/{layers.D9tPVJKO.js → layers.D2Ez9Wlh.js} +1 -1
  124. package/dist/{layers.MFRg8yf7.js → layers.D4OU-cCq.js} +1 -1
  125. package/dist/{layers.GE5KNqPB.js → layers.D5GVnIBA.js} +1 -1
  126. package/dist/{layers.dTALWbs6.js → layers.D5yr4Ckm.js} +1 -1
  127. package/dist/{layers.B2k8gHA9.js → layers.D67DaEEO.js} +1 -1
  128. package/dist/{layers.CZV_qLA7.js → layers.D91FMBaF.js} +1 -1
  129. package/dist/{layers.CpcMH3n5.js → layers.D9JlAgWb.js} +1 -1
  130. package/dist/{layers.CXJoDk6D.js → layers.D9YbM7ex.js} +24146 -24898
  131. package/dist/{layers.YjB34erC.js → layers.DAZDmAIR.js} +1 -1
  132. package/dist/{layers.CqNeBn-h.js → layers.DEEFaEr5.js} +1 -1
  133. package/dist/{layers.D2HnGpNm.js → layers.DEc4JlpQ.js} +1 -1
  134. package/dist/{layers.GA-ZOdst.js → layers.DFfkXtJE.js} +4 -4
  135. package/dist/{layers.CyxSKuyx.js → layers.DFw5bY6B.js} +1 -1
  136. package/dist/{layers.Ctv-PyBq.js → layers.DHQsSHd9.js} +4 -4
  137. package/dist/{layers.G_L82LcR.js → layers.DIN9_Klu.js} +1 -1
  138. package/dist/{layers.C6uf9i4D.js → layers.DLaPmPxU.js} +1 -1
  139. package/dist/layers.DM21fmpE.js +1 -0
  140. package/dist/{layers.DhDTCM5d.js → layers.DMK6CKVP.js} +1 -1
  141. package/dist/{layers.CgvcqeQz.js → layers.DN2eYMih.js} +1 -1
  142. package/dist/{layers.DgMvUKvd.js → layers.DPOb85dK.js} +1 -1
  143. package/dist/{layers.CaH2SzZN.js → layers.DPmk68_Q.js} +2 -2
  144. package/dist/{layers.BZB9okXa.js → layers.DQvfiMZT.js} +1 -1
  145. package/dist/{layers.CHCZ5fwu.js → layers.DTGhWZ2g.js} +1 -1
  146. package/dist/{layers.REef_3eK.js → layers.DXGLZvBI.js} +1 -1
  147. package/dist/{layers.D6-JjCeY.js → layers.DYiXn7hh.js} +1 -1
  148. package/dist/{layers.Cxj5_KIR.js → layers.DZtLq6Ye.js} +1 -1
  149. package/dist/{layers.UgkluhwE.js → layers.D_TygK7I.js} +1 -1
  150. package/dist/{layers.ClAy9Ac8.js → layers.DbBKUpnp.js} +1 -1
  151. package/dist/{layers.CbRxlNVk.js → layers.DclkCnOV.js} +1 -1
  152. package/dist/{layers.DVAUAFYE.js → layers.DcuUqL5d.js} +5 -5
  153. package/dist/{layers.BbufsHzD.js → layers.DdFHKVbS.js} +1 -1
  154. package/dist/{layers.BS3HcE3D.js → layers.DfjTuRS0.js} +5 -5
  155. package/dist/{layers.BYfu5agZ.js → layers.DhY9xAds.js} +1 -1
  156. package/dist/{layers.BkIodr-j.js → layers.DjUSZnY0.js} +6 -6
  157. package/dist/{layers.B02Q9fFL.js → layers.DkiZsir0.js} +1 -1
  158. package/dist/{layers.BtkT8CDP.js → layers.DlEwkKN9.js} +3 -3
  159. package/dist/{layers.BP3gZMao.js → layers.DoWz_9pY.js} +4 -4
  160. package/dist/{layers.BWG-iDUE.js → layers.Dpm_bbT3.js} +1 -1
  161. package/dist/{layers.CSCDr0Vq.js → layers.DqbCMcOW.js} +1 -1
  162. package/dist/{layers.vaVFPalT.js → layers.Ds-FL5yh.js} +1 -1
  163. package/dist/{layers.CwLv2mg9.js → layers.DsTX778z.js} +2 -2
  164. package/dist/{layers.D4HOgfca.js → layers.DtFs0z31.js} +1 -1
  165. package/dist/{layers.AEWPBDqR.js → layers.DtTGrZyw.js} +1 -1
  166. package/dist/{layers.BOcegWRl.js → layers.DuZIH_Er.js} +1 -1
  167. package/dist/{layers.BUsYd32E.js → layers.DuaKld6Z.js} +1 -1
  168. package/dist/{layers.Oj1AH-Mx.js → layers.DusJ2ojS.js} +1 -1
  169. package/dist/{layers.B86poEiX.js → layers.DwLKjR05.js} +1 -1
  170. package/dist/{layers.DSb7enPU.js → layers.Dy-IUJPK.js} +1 -1
  171. package/dist/{layers.BH9ItiJV.js → layers.DyEyHZ80.js} +1 -1
  172. package/dist/{layers.CN7Nt4Qv.js → layers.DyOKRh92.js} +1 -1
  173. package/dist/{layers.DqUc2EZ2.js → layers.FDkZLmHN.js} +1 -1
  174. package/dist/{layers.96-tXc0-.js → layers.Fao_EucN.js} +1 -1
  175. package/dist/{layers.CBHQh5bP.js → layers.Fr7cq50r.js} +1 -1
  176. package/dist/{layers.L1ZosATd.js → layers.GYygY2kz.js} +1 -1
  177. package/dist/{layers.D8oSnmLG.js → layers.Hn0Fmrm1.js} +2 -2
  178. package/dist/{layers.C1acoXJa.js → layers.MaenQL5R.js} +1 -1
  179. package/dist/{layers.CZk6836W.js → layers.OPvCj-tC.js} +4 -4
  180. package/dist/{layers.CM8Q7RQW.js → layers.OUGj0FCo.js} +1 -1
  181. package/dist/{layers.BfhGm6rn.js → layers.P31quTvt.js} +1 -1
  182. package/dist/{layers.DSD3YiCE.js → layers.QjlEtYHv.js} +1 -1
  183. package/dist/{layers.CoKFS3u2.js → layers.U-JVOMc-.js} +1 -1
  184. package/dist/{layers.BQ2IH1dJ.js → layers.UHLkZVGs.js} +4 -4
  185. package/dist/{layers.Q4ya6Qkr.js → layers.VSFMwOnf.js} +1 -1
  186. package/dist/{layers.PPv5Ovtk.js → layers.VVwcK7Rg.js} +1 -1
  187. package/dist/layers.VmviAeJV.js +907 -0
  188. package/dist/{layers.B67KcV-l.js → layers.XR3mk-Sr.js} +1 -1
  189. package/dist/{layers.CGFJAlFx.js → layers.Y5I0Fxeh.js} +1 -1
  190. package/dist/{layers.DIOPtBr5.js → layers.YSgnWBGO.js} +1 -1
  191. package/dist/layers.ae3PGj-i.js +1 -0
  192. package/dist/{layers.BrguwwaG.js → layers.b-BPmKOl.js} +1 -1
  193. package/dist/{layers.C3aqppsm.js → layers.b87ArXXM.js} +1 -1
  194. package/dist/{layers.CwQJpwvE.js → layers.jKMtIWfg.js} +1 -1
  195. package/dist/{layers.BEGek5Mb.js → layers.mWJvAmiw.js} +3 -3
  196. package/dist/{layers.D-Yu9iTD.js → layers.oLbm_4AY.js} +1 -1
  197. package/dist/{layers.D4ZZDhAa.js → layers.qmQL-_GY.js} +1 -1
  198. package/dist/{layers.BtuKroZP.js → layers.qypVgpH1.js} +1 -1
  199. package/dist/{layers.lFCeWbRi.js → layers.rcTJRPN1.js} +1 -1
  200. package/dist/{layers.CGWBRn-o.js → layers.rsWKgP23.js} +1 -1
  201. package/dist/{layers.DT4ATCuT.js → layers.tPQrNBbH.js} +1 -1
  202. package/dist/{layers.2UzF8gLv.js → layers.u08Eq3jd.js} +1 -1
  203. package/dist/{layers.DIbJRmtR.js → layers.wAUxi_JG.js} +1 -1
  204. package/dist/{layers.BsLagCWm.js → layers.xtcEE9BL.js} +1 -1
  205. package/dist/{layers.aDXOoFQU.js → layers.zDuD0RAB.js} +1 -1
  206. package/package.json +80 -80
  207. package/dist/layers.2daYu1Jf.js +0 -1
  208. package/dist/layers.8PETqI7Q.js +0 -6
  209. package/dist/layers.CFOfermz.js +0 -1
  210. package/dist/layers.CsKzmaOj.js +0 -1021
  211. package/dist/layers.DhtNnUD1.js +0 -1
  212. package/dist/layers.Dokul8vJ.js +0 -8
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.s_QJ2fp5.js");var u={paste:"粘贴",pasteAsPlaintext:"粘贴为纯文本",pasteCharts:"粘贴图表",selectAll:"全部选中",multiSelect:"添加元素到选区",moveCanvas:"移动画布",cut:"剪切",copy:"拷贝",copyAsPng:"复制为 PNG 到剪贴板",copyAsSvg:"复制为 SVG 到剪贴板",copyText:"复制文本到剪贴板",copySource:"复制源码到剪贴板",convertToCode:"转换成代码",bringForward:"上移一层",sendToBack:"置于底层",bringToFront:"置于顶层",sendBackward:"下移一层",delete:"删除",copyStyles:"拷贝样式",pasteStyles:"粘贴样式",stroke:"描边",background:"背景",fill:"填充",strokeWidth:"描边宽度",strokeStyle:"边框样式",strokeStyle_solid:"实线",strokeStyle_dashed:"虚线",strokeStyle_dotted:"点虚线",sloppiness:"线条风格",opacity:"透明度",textAlign:"文本对齐",edges:"边角",sharp:"尖锐",round:"圆润",arrowheads:"端点",arrowhead_none:"无",arrowhead_arrow:"箭头",arrowhead_bar:"条状",arrowhead_circle:"圆点",arrowhead_circle_outline:"圆点(空心)",arrowhead_triangle:"三角箭头",arrowhead_triangle_outline:"三角箭头(空心)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(空心)",fontSize:"字体大小",fontFamily:"字体",addWatermark:"添加 “使用 Excalidraw 创建” 水印",handDrawn:"手写",normal:"普通",code:"代码",small:"小",medium:"中",large:"大",veryLarge:"加大",solid:"实心",hachure:"线条",zigzag:"之字形折线",crossHatch:"交叉线条",thin:"细",bold:"粗",left:"左对齐",center:"居中",right:"右对齐",extraBold:"特粗",architect:"朴素",artist:"艺术",cartoonist:"漫画家",fileTitle:"文件名",colorPicker:"取色器",canvasColors:"画布上的",canvasBackground:"画布背景",drawingCanvas:"绘制 Canvas",layers:"图层",actions:"操作",language:"语言",liveCollaboration:"实时协作...",duplicateSelection:"复制",untitled:"无标题",name:"名字",yourName:"您的姓名",madeWithExcalidraw:"使用 Excalidraw 创建",group:"编组",ungroup:"解除编组",collaborators:"协作者",showGrid:"显示网格",addToLibrary:"添加到素材库中",removeFromLibrary:"从素材库中移除",libraryLoadingMessage:"正在加载素材库…",libraries:"浏览素材库",loadingScene:"正在加载绘图…",align:"对齐",alignTop:"顶部对齐",alignBottom:"底端对齐",alignLeft:"左对齐",alignRight:"右对齐",centerVertically:"垂直居中",centerHorizontally:"水平居中",distributeHorizontally:"水平等距分布",distributeVertically:"垂直等距分布",flipHorizontal:"水平翻转",flipVertical:"垂直翻转",viewMode:"查看模式",share:"分享",showStroke:"显示描边颜色选择器",showBackground:"显示背景颜色选择器",toggleTheme:"切换主题",personalLib:"个人素材库",excalidrawLib:"Excalidraw 素材库",decreaseFontSize:"缩小字体大小",increaseFontSize:"放大字体大小",unbindText:"取消文本绑定",bindText:"将文本绑定到容器",createContainerFromText:"将文本包围在容器中",link:{edit:"编辑链接",editEmbed:"编辑链接与嵌入",create:"新建链接",createEmbed:"创建链接与嵌入",label:"链接",labelEmbed:"链接与嵌入",empty:"未设定链接"},lineEditor:{edit:"编辑线条",exit:"退出线条编辑"},elementLock:{lock:"锁定",unlock:"解除锁定",lockAll:"全部锁定",unlockAll:"全部解锁"},statusPublished:"已发布",sidebarLock:"侧边栏常驻",selectAllElementsInFrame:"选择画框中的所有元素",removeAllElementsFromFrame:"分离出画框中的所有元素",eyeDropper:"从画布上取色",textToDiagram:"文字至图表",prompt:"Prompt"},F={noItems:"尚未添加任何项目……",hint_emptyLibrary:"选中画布上的项目添加到此处,或从下方的公共素材库中导入。",hint_emptyPrivateLibrary:"选中画布上的项目添加到此处。"},E={clearReset:"重置画布",exportJSON:"导出为文件",exportImage:"导出图片...",export:"保存到...",copyToClipboard:"复制到剪贴板",save:"保存至当前文件",saveAs:"保存为",load:"打开",getShareableLink:"获取共享链接",close:"关闭",selectLanguage:"选择语言",scrollBackToContent:"滚动回到内容",zoomIn:"放大",zoomOut:"缩小",resetZoom:"重置缩放",menu:"菜单",done:"完成",edit:"编辑",undo:"撤销",redo:"重做",resetLibrary:"重置素材库",createNewRoom:"新建会议室",fullScreen:"全屏",darkMode:"深色模式",lightMode:"浅色模式",zenMode:"禅模式",objectsSnapMode:"吸附至对象",exitZenMode:"退出禅模式",cancel:"取消",clear:"清除",remove:"删除",embed:"切换嵌入",publishLibrary:"发布",submit:"提交",confirm:"确定",embeddableInteractionButton:"点击以开始交互"},e={clearReset:"这将会清除整个画布。您是否要继续?",couldNotCreateShareableLink:"无法创建共享链接",couldNotCreateShareableLinkTooBig:"无法创建可共享链接:画布过大",couldNotLoadInvalidFile:"无法加载无效的文件",importBackendFailed:"从后端导入失败。",cannotExportEmptyCanvas:"无法导出空白画布。",couldNotCopyToClipboard:"无法复制到剪贴板。",decryptFailed:"无法解密数据。",uploadedSecurly:"上传已被端到端加密保护,这意味着 Excalidraw 的服务器和第三方都无法读取内容。",loadSceneOverridePrompt:"加载外部绘图将取代您现有的内容。您想要继续吗?",collabStopOverridePrompt:`停止会话将覆盖您先前本地存储的绘图。 您确定吗?
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.Cv8gm6DJ.js");var u={paste:"粘贴",pasteAsPlaintext:"粘贴为纯文本",pasteCharts:"粘贴图表",selectAll:"全部选中",multiSelect:"添加元素到选区",moveCanvas:"移动画布",cut:"剪切",copy:"拷贝",copyAsPng:"复制为 PNG 到剪贴板",copyAsSvg:"复制为 SVG 到剪贴板",copyText:"复制文本到剪贴板",copySource:"复制源码到剪贴板",convertToCode:"转换成代码",bringForward:"上移一层",sendToBack:"置于底层",bringToFront:"置于顶层",sendBackward:"下移一层",delete:"删除",copyStyles:"拷贝样式",pasteStyles:"粘贴样式",stroke:"描边",background:"背景",fill:"填充",strokeWidth:"描边宽度",strokeStyle:"边框样式",strokeStyle_solid:"实线",strokeStyle_dashed:"虚线",strokeStyle_dotted:"点虚线",sloppiness:"线条风格",opacity:"透明度",textAlign:"文本对齐",edges:"边角",sharp:"尖锐",round:"圆润",arrowheads:"端点",arrowhead_none:"无",arrowhead_arrow:"箭头",arrowhead_bar:"条状",arrowhead_circle:"圆点",arrowhead_circle_outline:"圆点(空心)",arrowhead_triangle:"三角箭头",arrowhead_triangle_outline:"三角箭头(空心)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(空心)",fontSize:"字体大小",fontFamily:"字体",addWatermark:"添加 “使用 Excalidraw 创建” 水印",handDrawn:"手写",normal:"普通",code:"代码",small:"小",medium:"中",large:"大",veryLarge:"加大",solid:"实心",hachure:"线条",zigzag:"之字形折线",crossHatch:"交叉线条",thin:"细",bold:"粗",left:"左对齐",center:"居中",right:"右对齐",extraBold:"特粗",architect:"朴素",artist:"艺术",cartoonist:"漫画家",fileTitle:"文件名",colorPicker:"取色器",canvasColors:"画布上的",canvasBackground:"画布背景",drawingCanvas:"绘制 Canvas",layers:"图层",actions:"操作",language:"语言",liveCollaboration:"实时协作...",duplicateSelection:"复制",untitled:"无标题",name:"名字",yourName:"您的姓名",madeWithExcalidraw:"使用 Excalidraw 创建",group:"编组",ungroup:"解除编组",collaborators:"协作者",showGrid:"显示网格",addToLibrary:"添加到素材库中",removeFromLibrary:"从素材库中移除",libraryLoadingMessage:"正在加载素材库…",libraries:"浏览素材库",loadingScene:"正在加载绘图…",align:"对齐",alignTop:"顶部对齐",alignBottom:"底端对齐",alignLeft:"左对齐",alignRight:"右对齐",centerVertically:"垂直居中",centerHorizontally:"水平居中",distributeHorizontally:"水平等距分布",distributeVertically:"垂直等距分布",flipHorizontal:"水平翻转",flipVertical:"垂直翻转",viewMode:"查看模式",share:"分享",showStroke:"显示描边颜色选择器",showBackground:"显示背景颜色选择器",toggleTheme:"切换主题",personalLib:"个人素材库",excalidrawLib:"Excalidraw 素材库",decreaseFontSize:"缩小字体大小",increaseFontSize:"放大字体大小",unbindText:"取消文本绑定",bindText:"将文本绑定到容器",createContainerFromText:"将文本包围在容器中",link:{edit:"编辑链接",editEmbed:"编辑链接与嵌入",create:"新建链接",createEmbed:"创建链接与嵌入",label:"链接",labelEmbed:"链接与嵌入",empty:"未设定链接"},lineEditor:{edit:"编辑线条",exit:"退出线条编辑"},elementLock:{lock:"锁定",unlock:"解除锁定",lockAll:"全部锁定",unlockAll:"全部解锁"},statusPublished:"已发布",sidebarLock:"侧边栏常驻",selectAllElementsInFrame:"选择画框中的所有元素",removeAllElementsFromFrame:"分离出画框中的所有元素",eyeDropper:"从画布上取色",textToDiagram:"文字至图表",prompt:"Prompt"},F={noItems:"尚未添加任何项目……",hint_emptyLibrary:"选中画布上的项目添加到此处,或从下方的公共素材库中导入。",hint_emptyPrivateLibrary:"选中画布上的项目添加到此处。"},E={clearReset:"重置画布",exportJSON:"导出为文件",exportImage:"导出图片...",export:"保存到...",copyToClipboard:"复制到剪贴板",save:"保存至当前文件",saveAs:"保存为",load:"打开",getShareableLink:"获取共享链接",close:"关闭",selectLanguage:"选择语言",scrollBackToContent:"滚动回到内容",zoomIn:"放大",zoomOut:"缩小",resetZoom:"重置缩放",menu:"菜单",done:"完成",edit:"编辑",undo:"撤销",redo:"重做",resetLibrary:"重置素材库",createNewRoom:"新建会议室",fullScreen:"全屏",darkMode:"深色模式",lightMode:"浅色模式",zenMode:"禅模式",objectsSnapMode:"吸附至对象",exitZenMode:"退出禅模式",cancel:"取消",clear:"清除",remove:"删除",embed:"切换嵌入",publishLibrary:"发布",submit:"提交",confirm:"确定",embeddableInteractionButton:"点击以开始交互"},e={clearReset:"这将会清除整个画布。您是否要继续?",couldNotCreateShareableLink:"无法创建共享链接",couldNotCreateShareableLinkTooBig:"无法创建可共享链接:画布过大",couldNotLoadInvalidFile:"无法加载无效的文件",importBackendFailed:"从后端导入失败。",cannotExportEmptyCanvas:"无法导出空白画布。",couldNotCopyToClipboard:"无法复制到剪贴板。",decryptFailed:"无法解密数据。",uploadedSecurly:"上传已被端到端加密保护,这意味着 Excalidraw 的服务器和第三方都无法读取内容。",loadSceneOverridePrompt:"加载外部绘图将取代您现有的内容。您想要继续吗?",collabStopOverridePrompt:`停止会话将覆盖您先前本地存储的绘图。 您确定吗?
2
2
 
3
3
  (如果您想保持本地绘图,只需关闭浏览器选项卡。)`,errorAddingToLibrary:"无法将项目添加到素材库中",errorRemovingFromLibrary:"无法从素材库中移除项目",confirmAddLibrary:"这将添加 {{numShapes}} 个形状到您的素材库中。您确定吗?",imageDoesNotContainScene:"此图像似乎不包含任何画布数据。您是否在导出时启用了画布嵌入功能?",cannotRestoreFromImage:"无法从此图像文件恢复画布",invalidSceneUrl:"无法从提供的 URL 导入场景。它或者格式不正确,或者不包含有效的 Excalidraw JSON 数据。",resetLibrary:"这将会清除你的素材库。你确定要这么做吗?",removeItemsFromsLibrary:"确定要从素材库中删除 {{count}} 个项目吗?",invalidEncryptionKey:"密钥必须包含22个字符。实时协作已被禁用。",collabOfflineWarning:`无网络连接。
4
4
  您的改动将不会被保存!`},D={unsupportedFileType:"不支持的文件格式。",imageInsertError:"无法插入图像。请稍后再试……",fileTooBig:"文件过大。最大允许的大小为 {{maxSize}}。",svgImageInsertError:"无法插入 SVG 图像。该 SVG 标记似乎是无效的。",failedToFetchImage:"无法获取图片。",invalidSVGString:"无效的 SVG。",cannotResolveCollabServer:"无法连接到实时协作服务器。请重新加载页面并重试。",importLibraryError:"无法加载素材库",collabSaveFailed:"无法保存到后端数据库。如果问题持续存在,您应该保存文件到本地,以确保您的工作不会丢失。",collabSaveFailed_sizeExceeded:"无法保存到后端数据库,画布似乎过大。您应该保存文件到本地,以确保您的工作不会丢失。",imageToolNotSupported:"图片已被禁用。",brave_measure_text_error:{line1:"您似乎正在使用 Brave 浏览器并启用了<bold>积极阻止指纹识别</bold>的设置。",line2:"这可能会破坏绘图中的 <bold>文本元素</bold>。",line3:"我们强烈建议禁用此设置。您可以按照<link>这些步骤</link>来设置。",line4:"如果禁用此设置无法修复文本元素的显示,请在 GitHub 上提交一个 <issueLink>issue</issueLink> ,或者在 <discordLink>Discord</discordLink> 上反馈"},libraryElementTypeError:{embeddable:"嵌入的元素不能被添加到素材库。",iframe:"不能将 IFrame 元素添加到素材库中。",image:"我们不久将支持添加图片到素材库"},asyncPasteFailedOnRead:"无法粘贴(无法读取系统剪贴板)。",asyncPasteFailedOnParse:"无法粘贴。",copyToSystemClipboardFailed:"无法复制到剪贴板。"},B={selection:"选择",image:"插入图像",rectangle:"矩形",diamond:"菱形",ellipse:"椭圆",arrow:"箭头",line:"线条",freedraw:"自由书写",text:"文字",library:"素材库",lock:"绘制后保持所选的工具栏状态",penMode:"笔模式 – 避免误触",link:"为选中的形状添加/更新链接",eraser:"橡皮",frame:"画框工具",magicframe:"线框图至代码",embeddable:"嵌入网页",laser:"激光笔",hand:"抓手(平移工具)",extraTools:"更多工具",mermaidToExcalidraw:"Mermaid 至 Excalidraw",magicSettings:"AI 设置"},C={canvasActions:"画布动作",selectedShapeActions:"选定形状操作",shapes:"形状"},r={canvasPanning:"要移动画布,请按住鼠标滚轮或空格键同时拖拽鼠标,或使用抓手工具。",linearElement:"点击创建多个点 拖动创建直线",freeDraw:"点击并拖动,完成时松开",text:"提示:您也可以使用选择工具双击任意位置来添加文字",embeddable:"点击并拖动以创建嵌入网页",text_selected:"双击或按回车键以编辑文本",text_editing:"按下 Escape 或 CtrlOrCmd+ENTER 完成编辑",linearElementMulti:"点击最后一个点或按下 Esc/Enter 来完成",lockAngle:"可以按住 Shift 来约束角度",resize:`您可以按住SHIFT来限制比例大小,
@@ -1,8 +1,8 @@
1
- import { s as M, d as _, p as R } from "./layers.GE5KNqPB.js";
2
- import { l as d, g as c, d as w, u as B, Y as G, j as D, _ as E, $ as C, a0 as $ } from "./layers.CGx5Pud_.js";
1
+ import { s as M, d as _, p as R } from "./layers.D5GVnIBA.js";
2
+ import { l as d, g as c, d as w, u as B, Y as G, j as D, _ as E, $ as C, a0 as $ } from "./layers.BAIbvRIu.js";
3
3
  import { G as z } from "./layers.BJDrjORS.js";
4
- import { r as P } from "./layers.ITrVWRyl.js";
5
- import "./layers.C81SvY8r.js";
4
+ import { r as P } from "./layers.CN1GTJ0Q.js";
5
+ import "./layers.BxmXw7Yl.js";
6
6
  import "lodash-es/memoize.js";
7
7
  import "lodash-es/merge.js";
8
8
  import "lodash-es/isEmpty.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),r=require("react"),J=require("@lexical/react/LexicalComposerContext"),K=require("@lexical/react/useLexicalEditable"),P=require("@lexical/react/useLexicalNodeSelection"),Q=require("@lexical/utils"),p=require("lexical"),t=require("./layers.CsKzmaOj.js"),G=require("react-i18next"),w=require("@mantine/core"),Z=require("@mantine/hooks");require("@lexical/mark");require("@lexical/code");const ee=require("@layers-app/shared"),te=({isCloseModal:i,setCloseModalOpen:a,confirmClose:b})=>{const{t:v}=G.useTranslation();return o.jsx(w.Modal,{opened:i,onClose:()=>{a(!1)},centered:!0,title:v("editor.unsavedChanges.title"),closeOnClickOutside:!0,closeOnEscape:!0,size:"500",zIndex:999,children:o.jsxs("div",{children:[o.jsx(w.Text,{mb:"md",children:v("editor.unsavedChanges.message")}),o.jsxs(w.Flex,{justify:"flex-end",gap:"sm",children:[o.jsx(w.Button,{variant:"default",onClick:()=>{a(!1)},fullWidth:!0,children:v("editor.unsavedChanges.cancel")}),o.jsx(w.Button,{color:"red",onClick:b,fullWidth:!0,children:v("editor.unsavedChanges.closeWithoutSaving")})]})]})})};function oe({imageContainerRef:i,editor:a,rootClassName:b=null,width:v="inherit",height:g="inherit",nodeKey:u,alignment:W,setModalOpen:R,previewSVG:l,isModalOpen:x}){const{disable:h,imperativeHandleRef:T}=r.useContext(t.Context),F=r.useMemo(()=>l??"",[l]),[O,C]=r.useState(!1),[z,{open:j,close:S}]=Z.useDisclosure(!1),{t:y}=G.useTranslation();r.useEffect(()=>{x&&C(!1)},[x]);const N=(e,E)=>{a.update(()=>{p.$setSelection(null);const c=p.$getNodeByKey(u);return t.$isExcalidrawNode(c)&&c.setWidthAndHeight(e,E),!0})},k=()=>{t.deleteNode(a,u)},I=()=>{S(),R(!0)},_=()=>{S(),t.deleteNode(a,u)};return o.jsxs(t.ResizableContainer,{editor:a,isIcon:!1,isEmbed:!0,width:t.parseContainerSize(v),height:t.parseContainerSize(g),onResizeEnd:N,alignment:W,disable:h,onRegisterDecoratorEnter:e=>{T!=null&&T.current&&(T.current.decoratorEnterAction=e)},onActivate:()=>a.dispatchCommand(t.ON_CHANGE_COMMAND,"show_menu"),children:[o.jsxs(w.Box,{className:"media-wrapper excaildraw",children:[o.jsx("div",{className:`media-actions${t.IS_TOUCH_DEVICE||!t.IS_HOVER_CAPABLE?" visible":""}`,children:t.IS_TOUCH_DEVICE?o.jsx(t.ActionIcon,{"aria-label":y("editor.toolbar.more"),label:y("editor.toolbar.more"),flexBorder:!0,onClick:j,icon:t.K1,iconColor:"var(--mantine-color-gray-text)"}):o.jsxs(o.Fragment,{children:[o.jsx(t.ActionIcon,{"aria-label":"Settings",label:y("editor.link.edit"),flexBorder:!0,onClick:()=>{R(!0)},icon:t.tf,iconColor:"var(--mantine-color-gray-text)"}),o.jsx(t.NodeAlignmentMenu,{opened:O,setOpened:C,t:y,editor:a,nodeKey:u,flexBorder:!0}),o.jsx(t.ActionIcon,{"aria-label":"Delete",label:y("editor.actions.delete"),flexBorder:!0,onClick:k,icon:t.lg,iconColor:"var(--mantine-color-red-outline)"})]})}),o.jsx(w.Box,{w:"100%",ref:e=>{e&&i&&(i.current=e)},className:b??"",dangerouslySetInnerHTML:{__html:F}})]}),t.IS_TOUCH_DEVICE&&o.jsx(t.MobileDrawer,{opened:z,onClose:S,title:y("editor.image.mobileActions"),children:o.jsxs(w.Stack,{gap:4,p:0,children:[o.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:I,leftSection:o.jsx(t.HugeiconsIcon,{icon:t.tf,size:16,color:"var(--mantine-color-dimmed)"}),children:y("editor.link.edit")}),o.jsx(w.Button,{type:"button",variant:"subtle",color:"red",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:_,leftSection:o.jsx(t.HugeiconsIcon,{icon:t.lg,size:16,color:"var(--mantine-color-red-6)"}),children:y("editor.actions.delete")})]})})]})}let $=null;const ne=r.lazy(async()=>{var a;const i=await Promise.resolve().then(()=>require("./layers.s_QJ2fp5.js")).then(b=>b.index);return!$&&i&&($=i.exportToSvg||((a=i.default)==null?void 0:a.exportToSvg)||i.default),{default:i.Excalidraw}}),re=()=>{const[i,a]=r.useState(null),b=r.useCallback(v=>a(v),[]);return[i,b]};function se({onSave:i,initialElements:a,initialAppState:b,initialFiles:v,isShown:g=!1,onDelete:u,onClose:W,isEdited:R}){const[l,x]=re(),{i18n:h,t:T}=G.useTranslation(),{colorScheme:F}=w.useMantineColorScheme(),O=r.useRef(!1),[C,z]=r.useState(a),[j,S]=r.useState(v),[y,N]=r.useState(g);r.useEffect(()=>{g&&N(!0)},[g]),r.useEffect(()=>{!g||O.current||(O.current=!0,Promise.resolve().then(()=>require("./layers.Dyvby5gX.js")))},[g]),r.useEffect(()=>{g&&setTimeout(()=>{var e,E;(e=l==null?void 0:l.refresh)==null||e.call(l),(E=l==null?void 0:l.scrollToContent)==null||E.call(l)},500)},[g,l]),r.useEffect(()=>{if(!g)return;const e=(s,d)=>{const n=T(s);return n.startsWith("editor.menu")?d:n},E=e("editor.menu.excalidraw.tools.frameTool",h.language==="ru"?"Инструмент рамки":h.language==="es"?"Herramienta de marco":"Frame tool"),c=e("editor.menu.excalidraw.tools.webEmbed",h.language==="ru"?"Веб-встраивание":h.language==="es"?"Incrustación web":"Web Embed"),f=e("editor.menu.excalidraw.tools.generate",h.language==="ru"?"Генерировать":h.language==="es"?"Generar":"Generate"),L={"Frame tool":E,"Web Embed":c,"Web embeded":c,Generate:f},q=()=>{const s=document.querySelector(".App-toolbar__extra-tools-dropdown");if(!s)return;const d=document.createTreeWalker(s,NodeFilter.SHOW_TEXT,null);let n;for(;n=d.nextNode();)if(n.nodeType===Node.TEXT_NODE&&n.textContent){const m=n.textContent.trim();for(const[D,A]of Object.entries(L))if(m===D&&A&&!m.includes(A)){n.textContent=n.textContent.replace(D,A);break}}},B=()=>{setTimeout(()=>{q()},0)},M=setTimeout(()=>{const s=document.querySelector(".excalidraw-container");if(s){const d=s.querySelector(".App-toolbar__extra-tools-trigger");d&&d.addEventListener("click",B)}},300);return()=>{clearTimeout(M);const s=document.querySelector(".excalidraw-container");if(s){const d=s.querySelector(".App-toolbar__extra-tools-trigger");d&&d.removeEventListener("click",B)}}},[g,h.language,T]);const k=r.useCallback(async()=>{var q,B,M;let e=$;if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.s_QJ2fp5.js")).then(d=>d.index);e=s.exportToSvg||((q=s.default)==null?void 0:q.exportToSvg)||s.default,e&&typeof e=="function"&&($=e)}if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.s_QJ2fp5.js")).then(n=>n.index),d=s?Object.keys(s):[];throw console.error("Excalidraw module structure:",{keys:d,hasExportToSvg:s&&"exportToSvg"in s,hasDefault:s&&"default"in s,moduleType:typeof s,module:s}),new Error(`exportToSvg is not available from @excalidraw/excalidraw. Module keys: ${d.join(", ")}. Please ensure @excalidraw/excalidraw is properly installed.`)}const E=((B=l==null?void 0:l.getAppState)==null?void 0:B.call(l))??b,c=await e({appState:E,elements:C,files:j}),f=(M=c==null?void 0:c.firstElementChild)==null?void 0:M.firstElementChild,L=c.getAttribute("viewBox");if(L!=null){const s=L.split(" ");c.setAttribute("width",s[2]),c.setAttribute("height",s[3])}return f&&f.tagName==="style"&&f.remove(),c.setAttribute("width","100%"),c.setAttribute("height","100%"),c.setAttribute("display","block"),c.classList.add("excalidraw-svg"),c.outerHTML},[C,j,l,b]),I=()=>{if(C&&C.filter(e=>!e.isDeleted).length>0){const e=l==null?void 0:l.getAppState(),E={exportBackground:e==null?void 0:e.exportBackground,exportScale:e==null?void 0:e.exportScale,exportWithDarkMode:(e==null?void 0:e.theme)==="dark",isBindingEnabled:e==null?void 0:e.isBindingEnabled,isLoading:e==null?void 0:e.isLoading,name:e==null?void 0:e.name,theme:e==null?void 0:e.theme,viewBackgroundColor:e==null?void 0:e.viewBackgroundColor,viewModeEnabled:e==null?void 0:e.viewModeEnabled,zenModeEnabled:e==null?void 0:e.zenModeEnabled,zoom:e==null?void 0:e.zoom};(async()=>{const c=await k();i(C,E,j,c)})()}else u()},_=(e,E,c)=>{(e==null?void 0:e.length)!==(a==null?void 0:a.length)&&(R.current=!0),z(e),S(c)};return o.jsx(ee.BottomDrawerWithoutHeader,{opened:g,onClose:W,onSave:I,className:"excaildraw-modal",closeOnEscape:!1,children:y&&o.jsx(r.Suspense,{fallback:o.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",minHeight:"400px"},children:o.jsx(w.Loader,{size:"sm"})}),children:o.jsx(ne,{langCode:t.languageToLocaleMap[h.language],theme:F,onChange:_,excalidrawAPI:x,initialData:{appState:{...b||{isLoading:!1}},elements:a,files:v,scrollToContent:!0}})})})}function le({nodeKey:i,data:a,width:b,height:v,alignment:g}){var d;const[u]=J.useLexicalComposerContext(),{fetchUploadMedia:W,fetchDeleteMedia:R}=r.useContext(t.Context),l=K.useLexicalEditable(),x=r.useMemo(()=>t.parseExcalidrawData(a),[a]),h=r.useRef(t.extractAttachmentIdsFromFiles(x.files??{})),T=r.useRef(Object.keys(x.files??{}));r.useEffect(()=>{const n=t.extractAttachmentIdsFromFiles(x.files??{});for(const m of Object.keys(n))h.current[m]=n[m]},[x.files]);const F=((d=x==null?void 0:x.elements)==null?void 0:d.length)===0&&!x.previewSVG,[O,C]=r.useState(F&&u.isEditable()),[z,j]=r.useState(!1),S=r.useRef(null),y=r.useRef(null),N=r.useRef(null),[k,I,_]=P.useLexicalNodeSelection(i),e=r.useCallback(n=>(k&&(n.preventDefault(),u.update(()=>{const m=p.$getNodeByKey(i);m&&m.remove()})),!1),[u,k,i]);r.useEffect(()=>{if(!l){k&&_();return}return Q.mergeRegister(u.registerCommand(p.CLICK_COMMAND,n=>{const m=y.current,D=n.target;return m!==null&&m.contains(D)?(n.shiftKey||_(),I(!k),n.detail>1&&C(!0),!0):!1},p.COMMAND_PRIORITY_LOW),u.registerCommand(p.KEY_DELETE_COMMAND,e,p.COMMAND_PRIORITY_LOW),u.registerCommand(p.KEY_BACKSPACE_COMMAND,e,p.COMMAND_PRIORITY_LOW))},[_,u,k,e,I,l]);const E=r.useCallback(()=>(C(!1),u.update(()=>{const n=p.$getNodeByKey(i);n&&n.remove()})),[u,i]),c=async(n,m,D,A)=>{const{files:H,urlByDataUrl:U,attachmentIdByFileId:Y}=await t.uploadInlineFiles(D,W,h.current);h.current=t.deleteRemovedAttachments(T.current,H,Y,R),T.current=Object.keys(H);const X=t.rewriteSvgDataUrls(A,U);u.update(()=>{const V=p.$getNodeByKey(i);t.$isExcalidrawNode(V)&&(n&&n.length>0||Object.keys(H).length>0?V.setData(JSON.stringify({appState:m,elements:n,files:H,previewSVG:X})):V.remove())})},{elements:f=[],files:L={},appState:q={},previewSVG:B}=x,M=r.useCallback(()=>{C(!1),j(!1),N.current=!1,(f==null?void 0:f.length)===0&&u.update(()=>{const n=p.$getNodeByKey(i);n&&n.remove()})},[u,i,f==null?void 0:f.length]),s=r.useCallback(()=>{N.current?j(!0):M()},[M]);return o.jsxs(o.Fragment,{children:[o.jsx(te,{isCloseModal:z,confirmClose:M,setCloseModalOpen:j}),o.jsx(se,{initialElements:f,isEdited:N,initialFiles:L,initialAppState:q,isShown:O,onDelete:E,onClose:s,onSave:async(n,m,D,A)=>{await c(n,m,D,A),C(!1)},closeOnClickOutside:!1}),(f==null?void 0:f.length)&&o.jsx("div",{style:{display:"flex",justifyContent:g},children:o.jsx(oe,{imageContainerRef:S,className:"image",width:b,height:v,editor:u,nodeKey:i,alignment:g,setModalOpen:C,previewSVG:B,isModalOpen:O})})]})}exports.default=le;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),r=require("react"),J=require("@lexical/react/LexicalComposerContext"),K=require("@lexical/react/useLexicalEditable"),P=require("@lexical/react/useLexicalNodeSelection"),Q=require("@lexical/utils"),p=require("lexical"),t=require("./layers.VmviAeJV.js"),G=require("react-i18next"),w=require("@mantine/core"),Z=require("@mantine/hooks");require("@lexical/mark");require("@lexical/code");const ee=require("@layers-app/shared"),te=({isCloseModal:i,setCloseModalOpen:a,confirmClose:b})=>{const{t:v}=G.useTranslation();return o.jsx(w.Modal,{opened:i,onClose:()=>{a(!1)},centered:!0,title:v("editor.unsavedChanges.title"),closeOnClickOutside:!0,closeOnEscape:!0,size:"500",zIndex:999,children:o.jsxs("div",{children:[o.jsx(w.Text,{mb:"md",children:v("editor.unsavedChanges.message")}),o.jsxs(w.Flex,{justify:"flex-end",gap:"sm",children:[o.jsx(w.Button,{variant:"default",onClick:()=>{a(!1)},fullWidth:!0,children:v("editor.unsavedChanges.cancel")}),o.jsx(w.Button,{color:"red",onClick:b,fullWidth:!0,children:v("editor.unsavedChanges.closeWithoutSaving")})]})]})})};function oe({imageContainerRef:i,editor:a,rootClassName:b=null,width:v="inherit",height:g="inherit",nodeKey:u,alignment:W,setModalOpen:R,previewSVG:l,isModalOpen:x}){const{disable:h,imperativeHandleRef:T}=r.useContext(t.Context),F=r.useMemo(()=>l??"",[l]),[O,C]=r.useState(!1),[z,{open:j,close:S}]=Z.useDisclosure(!1),{t:y}=G.useTranslation();r.useEffect(()=>{x&&C(!1)},[x]);const N=(e,E)=>{a.update(()=>{p.$setSelection(null);const c=p.$getNodeByKey(u);return t.$isExcalidrawNode(c)&&c.setWidthAndHeight(e,E),!0})},k=()=>{t.deleteNode(a,u)},I=()=>{S(),R(!0)},_=()=>{S(),t.deleteNode(a,u)};return o.jsxs(t.ResizableContainer,{editor:a,isIcon:!1,isEmbed:!0,width:t.parseContainerSize(v),height:t.parseContainerSize(g),onResizeEnd:N,alignment:W,disable:h,onRegisterDecoratorEnter:e=>{T!=null&&T.current&&(T.current.decoratorEnterAction=e)},onActivate:()=>a.dispatchCommand(t.ON_CHANGE_COMMAND,"show_menu"),children:[o.jsxs(w.Box,{className:"media-wrapper excaildraw",children:[o.jsx("div",{className:`media-actions${t.IS_TOUCH_DEVICE||!t.IS_HOVER_CAPABLE?" visible":""}`,children:t.IS_TOUCH_DEVICE?o.jsx(t.ActionIcon,{"aria-label":y("editor.toolbar.more"),label:y("editor.toolbar.more"),flexBorder:!0,onClick:j,icon:t.K1,iconColor:"var(--mantine-color-gray-text)"}):o.jsxs(o.Fragment,{children:[o.jsx(t.ActionIcon,{"aria-label":"Settings",label:y("editor.link.edit"),flexBorder:!0,onClick:()=>{R(!0)},icon:t.tf,iconColor:"var(--mantine-color-gray-text)"}),o.jsx(t.NodeAlignmentMenu,{opened:O,setOpened:C,t:y,editor:a,nodeKey:u,flexBorder:!0}),o.jsx(t.ActionIcon,{"aria-label":"Delete",label:y("editor.actions.delete"),flexBorder:!0,onClick:k,icon:t.lg,iconColor:"var(--mantine-color-red-outline)"})]})}),o.jsx(w.Box,{w:"100%",ref:e=>{e&&i&&(i.current=e)},className:b??"",dangerouslySetInnerHTML:{__html:F}})]}),t.IS_TOUCH_DEVICE&&o.jsx(t.MobileDrawer,{opened:z,onClose:S,title:y("editor.image.mobileActions"),children:o.jsxs(w.Stack,{gap:4,p:0,children:[o.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:I,leftSection:o.jsx(t.HugeiconsIcon,{icon:t.tf,size:16,color:"var(--mantine-color-dimmed)"}),children:y("editor.link.edit")}),o.jsx(w.Button,{type:"button",variant:"subtle",color:"red",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:_,leftSection:o.jsx(t.HugeiconsIcon,{icon:t.lg,size:16,color:"var(--mantine-color-red-6)"}),children:y("editor.actions.delete")})]})})]})}let $=null;const ne=r.lazy(async()=>{var a;const i=await Promise.resolve().then(()=>require("./layers.Cv8gm6DJ.js")).then(b=>b.index);return!$&&i&&($=i.exportToSvg||((a=i.default)==null?void 0:a.exportToSvg)||i.default),{default:i.Excalidraw}}),re=()=>{const[i,a]=r.useState(null),b=r.useCallback(v=>a(v),[]);return[i,b]};function se({onSave:i,initialElements:a,initialAppState:b,initialFiles:v,isShown:g=!1,onDelete:u,onClose:W,isEdited:R}){const[l,x]=re(),{i18n:h,t:T}=G.useTranslation(),{colorScheme:F}=w.useMantineColorScheme(),O=r.useRef(!1),[C,z]=r.useState(a),[j,S]=r.useState(v),[y,N]=r.useState(g);r.useEffect(()=>{g&&N(!0)},[g]),r.useEffect(()=>{!g||O.current||(O.current=!0,Promise.resolve().then(()=>require("./layers.Dyvby5gX.js")))},[g]),r.useEffect(()=>{g&&setTimeout(()=>{var e,E;(e=l==null?void 0:l.refresh)==null||e.call(l),(E=l==null?void 0:l.scrollToContent)==null||E.call(l)},500)},[g,l]),r.useEffect(()=>{if(!g)return;const e=(s,d)=>{const n=T(s);return n.startsWith("editor.menu")?d:n},E=e("editor.menu.excalidraw.tools.frameTool",h.language==="ru"?"Инструмент рамки":h.language==="es"?"Herramienta de marco":"Frame tool"),c=e("editor.menu.excalidraw.tools.webEmbed",h.language==="ru"?"Веб-встраивание":h.language==="es"?"Incrustación web":"Web Embed"),f=e("editor.menu.excalidraw.tools.generate",h.language==="ru"?"Генерировать":h.language==="es"?"Generar":"Generate"),L={"Frame tool":E,"Web Embed":c,"Web embeded":c,Generate:f},q=()=>{const s=document.querySelector(".App-toolbar__extra-tools-dropdown");if(!s)return;const d=document.createTreeWalker(s,NodeFilter.SHOW_TEXT,null);let n;for(;n=d.nextNode();)if(n.nodeType===Node.TEXT_NODE&&n.textContent){const m=n.textContent.trim();for(const[D,A]of Object.entries(L))if(m===D&&A&&!m.includes(A)){n.textContent=n.textContent.replace(D,A);break}}},B=()=>{setTimeout(()=>{q()},0)},M=setTimeout(()=>{const s=document.querySelector(".excalidraw-container");if(s){const d=s.querySelector(".App-toolbar__extra-tools-trigger");d&&d.addEventListener("click",B)}},300);return()=>{clearTimeout(M);const s=document.querySelector(".excalidraw-container");if(s){const d=s.querySelector(".App-toolbar__extra-tools-trigger");d&&d.removeEventListener("click",B)}}},[g,h.language,T]);const k=r.useCallback(async()=>{var q,B,M;let e=$;if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.Cv8gm6DJ.js")).then(d=>d.index);e=s.exportToSvg||((q=s.default)==null?void 0:q.exportToSvg)||s.default,e&&typeof e=="function"&&($=e)}if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.Cv8gm6DJ.js")).then(n=>n.index),d=s?Object.keys(s):[];throw console.error("Excalidraw module structure:",{keys:d,hasExportToSvg:s&&"exportToSvg"in s,hasDefault:s&&"default"in s,moduleType:typeof s,module:s}),new Error(`exportToSvg is not available from @excalidraw/excalidraw. Module keys: ${d.join(", ")}. Please ensure @excalidraw/excalidraw is properly installed.`)}const E=((B=l==null?void 0:l.getAppState)==null?void 0:B.call(l))??b,c=await e({appState:E,elements:C,files:j}),f=(M=c==null?void 0:c.firstElementChild)==null?void 0:M.firstElementChild,L=c.getAttribute("viewBox");if(L!=null){const s=L.split(" ");c.setAttribute("width",s[2]),c.setAttribute("height",s[3])}return f&&f.tagName==="style"&&f.remove(),c.setAttribute("width","100%"),c.setAttribute("height","100%"),c.setAttribute("display","block"),c.classList.add("excalidraw-svg"),c.outerHTML},[C,j,l,b]),I=()=>{if(C&&C.filter(e=>!e.isDeleted).length>0){const e=l==null?void 0:l.getAppState(),E={exportBackground:e==null?void 0:e.exportBackground,exportScale:e==null?void 0:e.exportScale,exportWithDarkMode:(e==null?void 0:e.theme)==="dark",isBindingEnabled:e==null?void 0:e.isBindingEnabled,isLoading:e==null?void 0:e.isLoading,name:e==null?void 0:e.name,theme:e==null?void 0:e.theme,viewBackgroundColor:e==null?void 0:e.viewBackgroundColor,viewModeEnabled:e==null?void 0:e.viewModeEnabled,zenModeEnabled:e==null?void 0:e.zenModeEnabled,zoom:e==null?void 0:e.zoom};(async()=>{const c=await k();i(C,E,j,c)})()}else u()},_=(e,E,c)=>{(e==null?void 0:e.length)!==(a==null?void 0:a.length)&&(R.current=!0),z(e),S(c)};return o.jsx(ee.BottomDrawerWithoutHeader,{opened:g,onClose:W,onSave:I,className:"excaildraw-modal",closeOnEscape:!1,children:y&&o.jsx(r.Suspense,{fallback:o.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",minHeight:"400px"},children:o.jsx(w.Loader,{size:"sm"})}),children:o.jsx(ne,{langCode:t.languageToLocaleMap[h.language],theme:F,onChange:_,excalidrawAPI:x,initialData:{appState:{...b||{isLoading:!1}},elements:a,files:v,scrollToContent:!0}})})})}function le({nodeKey:i,data:a,width:b,height:v,alignment:g}){var d;const[u]=J.useLexicalComposerContext(),{fetchUploadMedia:W,fetchDeleteMedia:R}=r.useContext(t.Context),l=K.useLexicalEditable(),x=r.useMemo(()=>t.parseExcalidrawData(a),[a]),h=r.useRef(t.extractAttachmentIdsFromFiles(x.files??{})),T=r.useRef(Object.keys(x.files??{}));r.useEffect(()=>{const n=t.extractAttachmentIdsFromFiles(x.files??{});for(const m of Object.keys(n))h.current[m]=n[m]},[x.files]);const F=((d=x==null?void 0:x.elements)==null?void 0:d.length)===0&&!x.previewSVG,[O,C]=r.useState(F&&u.isEditable()),[z,j]=r.useState(!1),S=r.useRef(null),y=r.useRef(null),N=r.useRef(null),[k,I,_]=P.useLexicalNodeSelection(i),e=r.useCallback(n=>(k&&(n.preventDefault(),u.update(()=>{const m=p.$getNodeByKey(i);m&&m.remove()})),!1),[u,k,i]);r.useEffect(()=>{if(!l){k&&_();return}return Q.mergeRegister(u.registerCommand(p.CLICK_COMMAND,n=>{const m=y.current,D=n.target;return m!==null&&m.contains(D)?(n.shiftKey||_(),I(!k),n.detail>1&&C(!0),!0):!1},p.COMMAND_PRIORITY_LOW),u.registerCommand(p.KEY_DELETE_COMMAND,e,p.COMMAND_PRIORITY_LOW),u.registerCommand(p.KEY_BACKSPACE_COMMAND,e,p.COMMAND_PRIORITY_LOW))},[_,u,k,e,I,l]);const E=r.useCallback(()=>(C(!1),u.update(()=>{const n=p.$getNodeByKey(i);n&&n.remove()})),[u,i]),c=async(n,m,D,A)=>{const{files:H,urlByDataUrl:U,attachmentIdByFileId:Y}=await t.uploadInlineFiles(D,W,h.current);h.current=t.deleteRemovedAttachments(T.current,H,Y,R),T.current=Object.keys(H);const X=t.rewriteSvgDataUrls(A,U);u.update(()=>{const V=p.$getNodeByKey(i);t.$isExcalidrawNode(V)&&(n&&n.length>0||Object.keys(H).length>0?V.setData(JSON.stringify({appState:m,elements:n,files:H,previewSVG:X})):V.remove())})},{elements:f=[],files:L={},appState:q={},previewSVG:B}=x,M=r.useCallback(()=>{C(!1),j(!1),N.current=!1,(f==null?void 0:f.length)===0&&u.update(()=>{const n=p.$getNodeByKey(i);n&&n.remove()})},[u,i,f==null?void 0:f.length]),s=r.useCallback(()=>{N.current?j(!0):M()},[M]);return o.jsxs(o.Fragment,{children:[o.jsx(te,{isCloseModal:z,confirmClose:M,setCloseModalOpen:j}),o.jsx(se,{initialElements:f,isEdited:N,initialFiles:L,initialAppState:q,isShown:O,onDelete:E,onClose:s,onSave:async(n,m,D,A)=>{await c(n,m,D,A),C(!1)},closeOnClickOutside:!1}),(f==null?void 0:f.length)&&o.jsx("div",{style:{display:"flex",justifyContent:g},children:o.jsx(oe,{imageContainerRef:S,className:"image",width:b,height:v,editor:u,nodeKey:i,alignment:g,setModalOpen:C,previewSVG:B,isModalOpen:O})})]})}exports.default=le;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("./layers.D9lk_Y1V.js"),d=require("./layers.B48wWDWF.js"),A=require("lodash-es"),dt=require("./layers.Cyzu9PKQ.js"),ut=require("./layers.BLd2spTm.js"),y=require("./layers.e0irYIAc.js"),ht=require("./layers.CpcMH3n5.js");require("./layers.s_QJ2fp5.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");function pt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,a.get?a:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Y=pt(A);function ft(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function yt(r,e){return fetch(r,e).then(ft)}function gt(r){return(e,t)=>yt(e,t).then(a=>new DOMParser().parseFromString(a,r))}var vt=gt("image/svg+xml"),R={normal:xt,vee:mt,undirected:bt};function wt(r){R=r}function xt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function mt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function bt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function kt(r,e){var t=r;return t.node().appendChild(e.label),y.applyStyle(t,e.labelStyle),t}function St(r,e){for(var t=r.append("text"),a=Tt(e.label).split(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("./layers.BH4XCTH6.js"),d=require("./layers.BhuNgnUx.js"),A=require("lodash-es"),dt=require("./layers.Cyzu9PKQ.js"),ut=require("./layers.BLd2spTm.js"),y=require("./layers.CHHIjB_n.js"),ht=require("./layers.D9JlAgWb.js");require("./layers.Cv8gm6DJ.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");function pt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,a.get?a:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Y=pt(A);function ft(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function yt(r,e){return fetch(r,e).then(ft)}function gt(r){return(e,t)=>yt(e,t).then(a=>new DOMParser().parseFromString(a,r))}var vt=gt("image/svg+xml"),R={normal:xt,vee:mt,undirected:bt};function wt(r){R=r}function xt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function mt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function bt(r,e,t,a){var n=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=n.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");y.applyStyle(s,t[a+"Style"]),t[a+"Class"]&&s.attr("class",t[a+"Class"])}function kt(r,e){var t=r;return t.node().appendChild(e.label),y.applyStyle(t,e.labelStyle),t}function St(r,e){for(var t=r.append("text"),a=Tt(e.label).split(`
2
2
  `),n=0;n<a.length;n++)t.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(a[n]);return y.applyStyle(t,e.labelStyle),t}function Tt(r){for(var e="",t=!1,a,n=0;n<r.length;++n)if(a=r[n],t){switch(a){case"n":e+=`
3
3
  `;break;default:e+=a}t=!1}else a==="\\"?t=!0:e+=a;return e}function W(r,e,t){var a=e.label,n=r.append("g");e.labelType==="svg"?kt(n,e):typeof a!="string"||e.labelType==="html"?y.addHtmlLabel(n,e):St(n,e);var s=n.node().getBBox(),i;switch(t){case"top":i=-e.height/2;break;case"bottom":i=e.height/2-s.height;break;default:i=-s.height/2}return n.attr("transform","translate("+-s.width/2+","+i+")"),n}var $=function(r,e){var t=e.nodes().filter(function(s){return y.isSubgraph(e,s)}),a=r.selectAll("g.cluster").data(t,function(s){return s});y.applyTransition(a.exit(),e).style("opacity",0).remove();var n=a.enter().append("g").attr("class","cluster").attr("id",function(s){var i=e.node(s);return i.id}).style("opacity",0).each(function(s){var i=e.node(s),o=d.select(this);d.select(this).append("rect");var c=o.append("g").attr("class","label");W(c,i,i.clusterLabelPos)});return a=a.merge(n),a=y.applyTransition(a,e).style("opacity",1),a.selectAll("rect").each(function(s){var i=e.node(s),o=d.select(this);y.applyStyle(o,i.style)}),a};function Lt(r){$=r}let G=function(r,e){var t=r.selectAll("g.edgeLabel").data(e.edges(),function(n){return y.edgeToId(n)}).classed("update",!0);t.exit().remove(),t.enter().append("g").classed("edgeLabel",!0).style("opacity",0),t=r.selectAll("g.edgeLabel"),t.each(function(n){var s=d.select(this);s.select(".label").remove();var i=e.edge(n),o=W(s,e.edge(n),0).classed("label",!0),c=o.node().getBBox();i.labelId&&o.attr("id",i.labelId),Object.prototype.hasOwnProperty.call(i,"width")||(i.width=c.width),Object.prototype.hasOwnProperty.call(i,"height")||(i.height=c.height)});var a;return t.exit?a=t.exit():a=t.selectAll(null),y.applyTransition(a,e).style("opacity",0).remove(),t};function _t(r){G=r}function j(r,e){return r.intersect(e)}var U=function(r,e,t){var a=r.selectAll("g.edgePath").data(e.edges(),function(i){return y.edgeToId(i)}).classed("update",!0),n=Pt(a,e);It(a,e);var s=a.merge!==void 0?a.merge(n):a;return y.applyTransition(s,e).style("opacity",1),s.each(function(i){var o=d.select(this),c=e.edge(i);c.elem=this,c.id&&o.attr("id",c.id),y.applyClass(o,c.class,(o.classed("update")?"update ":"")+"edgePath")}),s.selectAll("path.path").each(function(i){var o=e.edge(i);o.arrowheadId=Y.uniqueId("arrowhead");var c=d.select(this).attr("marker-end",function(){return"url("+Ct(location.href,o.arrowheadId)+")"}).style("fill","none");y.applyTransition(c,e).attr("d",function(u){return At(e,u)}),y.applyStyle(c,o.style)}),s.selectAll("defs *").remove(),s.selectAll("defs").each(function(i){var o=e.edge(i),c=t[o.arrowhead];c(d.select(this),o.arrowheadId,o,"arrowhead")}),s};function Et(r){U=r}function Ct(r,e){var t=r.split("#")[0];return t+"#"+e}function At(r,e){var t=r.edge(e),a=r.node(e.v),n=r.node(e.w),s=t.points.slice(1,t.points.length-1);return s.unshift(j(a,s[0])),s.push(j(n,s[s.length-1])),F(t,s)}function F(r,e){var t=(ht.line||vt.line)().x(function(a){return a.x}).y(function(a){return a.y});return(t.curve||t.interpolate)(r.curve),t(e)}function Nt(r){var e=r.getBBox(),t=r.ownerSVGElement.getScreenCTM().inverse().multiply(r.getScreenCTM()).translate(e.width/2,e.height/2);return{x:t.e,y:t.f}}function Pt(r,e){var t=r.enter().append("g").attr("class","edgePath").style("opacity",0);return t.append("path").attr("class","path").attr("d",function(a){var n=e.edge(a),s=e.node(a.v).elem,i=Y.range(n.points.length).map(function(){return Nt(s)});return F(n,i)}),t.append("defs"),t}function It(r,e){var t=r.exit();y.applyTransition(t,e).style("opacity",0).remove()}var q=function(r,e,t){var a=e.nodes().filter(function(i){return!y.isSubgraph(e,i)}),n=r.selectAll("g.node").data(a,function(i){return i}).classed("update",!0);n.exit().remove(),n.enter().append("g").attr("class","node").style("opacity",0),n=r.selectAll("g.node"),n.each(function(i){var o=e.node(i),c=d.select(this);y.applyClass(c,o.class,(c.classed("update")?"update ":"")+"node"),c.select("g.label").remove();var u=c.append("g").attr("class","label"),l=W(u,o),v=t[o.shape],h=A.pick(l.node().getBBox(),"width","height");o.elem=this,o.id&&c.attr("id",o.id),o.labelId&&u.attr("id",o.labelId),Object.prototype.hasOwnProperty.call(o,"width")&&(h.width=o.width),Object.prototype.hasOwnProperty.call(o,"height")&&(h.height=o.height),h.width+=o.paddingLeft+o.paddingRight,h.height+=o.paddingTop+o.paddingBottom,u.attr("transform","translate("+(o.paddingLeft-o.paddingRight)/2+","+(o.paddingTop-o.paddingBottom)/2+")");var p=d.select(this);p.select(".label-container").remove();var g=v(p,h,o).classed("label-container",!0);y.applyStyle(g,o.style);var x=g.node().getBBox();o.width=x.width,o.height=x.height});var s;return n.exit?s=n.exit():s=n.selectAll(null),y.applyTransition(s,e).style("opacity",0).remove(),n};function Dt(r){q=r}function Mt(r,e){var t=r.filter(function(){return!d.select(this).classed("update")});function a(n){var s=e.node(n);return"translate("+s.x+","+s.y+")"}t.attr("transform",a),y.applyTransition(r,e).style("opacity",1).attr("transform",a),y.applyTransition(t.selectAll("rect"),e).attr("width",function(n){return e.node(n).width}).attr("height",function(n){return e.node(n).height}).attr("x",function(n){var s=e.node(n);return-s.width/2}).attr("y",function(n){var s=e.node(n);return-s.height/2})}function Bt(r,e){var t=r.filter(function(){return!d.select(this).classed("update")});function a(n){var s=e.edge(n);return Object.prototype.hasOwnProperty.call(s,"x")?"translate("+s.x+","+s.y+")":""}t.attr("transform",a),y.applyTransition(r,e).style("opacity",1).attr("transform",a)}function Ot(r,e){var t=r.filter(function(){return!d.select(this).classed("update")});function a(n){var s=e.node(n);return"translate("+s.x+","+s.y+")"}t.attr("transform",a),y.applyTransition(r,e).style("opacity",1).attr("transform",a)}function X(r,e,t,a){var n=r.x,s=r.y,i=n-a.x,o=s-a.y,c=Math.sqrt(e*e*o*o+t*t*i*i),u=Math.abs(e*t*i/c);a.x<n&&(u=-u);var l=Math.abs(e*t*o/c);return a.y<s&&(l=-l),{x:n+u,y:s+l}}function Rt(r,e,t){return X(r,e,e,t)}function $t(r,e,t,a){var n,s,i,o,c,u,l,v,h,p,g,x,f,w,S;if(n=e.y-r.y,i=r.x-e.x,c=e.x*r.y-r.x*e.y,h=n*t.x+i*t.y+c,p=n*a.x+i*a.y+c,!(h!==0&&p!==0&&H(h,p))&&(s=a.y-t.y,o=t.x-a.x,u=a.x*t.y-t.x*a.y,l=s*r.x+o*r.y+u,v=s*e.x+o*e.y+u,!(l!==0&&v!==0&&H(l,v))&&(g=n*o-s*i,g!==0)))return x=Math.abs(g/2),f=i*u-o*c,w=f<0?(f-x)/g:(f+x)/g,f=s*c-n*u,S=f<0?(f-x)/g:(f+x)/g,{x:w,y:S}}function H(r,e){return r*e>0}function _(r,e,t){var a=r.x,n=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(g){i=Math.min(i,g.x),o=Math.min(o,g.y)});for(var c=a-r.width/2-i,u=n-r.height/2-o,l=0;l<e.length;l++){var v=e[l],h=e[l<e.length-1?l+1:0],p=$t(r,t,{x:c+v.x,y:u+v.y},{x:c+h.x,y:u+h.y});p&&s.push(p)}return s.length?(s.length>1&&s.sort(function(g,x){var f=g.x-t.x,w=g.y-t.y,S=Math.sqrt(f*f+w*w),N=x.x-t.x,L=x.y-t.y,B=Math.sqrt(N*N+L*L);return S<B?-1:S===B?0:1}),s[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",r),r)}function V(r,e){var t=r.x,a=r.y,n=e.x-t,s=e.y-a,i=r.width/2,o=r.height/2,c,u;return Math.abs(s)*i>Math.abs(n)*o?(s<0&&(o=-o),c=s===0?0:o*n/s,u=o):(n<0&&(i=-i),c=i,u=n===0?0:i*s/n),{x:t+c,y:a+u}}var z={rect:Ut,ellipse:qt,circle:zt,diamond:Wt};function Gt(r){z=r}function Ut(r,e,t){var a=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(n){return V(t,n)},a}function qt(r,e,t){var a=e.width/2,n=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",a).attr("ry",n);return t.intersect=function(i){return X(t,a,n,i)},s}function zt(r,e,t){var a=Math.max(e.width,e.height)/2,n=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",a);return t.intersect=function(s){return Rt(t,a,s)},n}function Wt(r,e,t){var a=e.width*Math.SQRT2/2,n=e.height*Math.SQRT2/2,s=[{x:0,y:-n},{x:-a,y:0},{x:0,y:n},{x:a,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return _(t,s,o)},i}function Vt(){var r=function(e,t){Yt(t);var a=I(e,"output"),n=I(a,"clusters"),s=I(a,"edgePaths"),i=G(I(a,"edgeLabels"),t),o=q(I(a,"nodes"),t,z);dt.layout(t),Ot(o,t),Bt(i,t),U(s,t,R);var c=$(n,t);Mt(c,t),Ft(t)};return r.createNodes=function(e){return arguments.length?(Dt(e),r):q},r.createClusters=function(e){return arguments.length?(Lt(e),r):$},r.createEdgeLabels=function(e){return arguments.length?(_t(e),r):G},r.createEdgePaths=function(e){return arguments.length?(Et(e),r):U},r.shapes=function(e){return arguments.length?(Gt(e),r):z},r.arrows=function(e){return arguments.length?(wt(e),r):R},r}var jt={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},Ht={arrowhead:"normal",curve:d.curveLinear};function Yt(r){r.nodes().forEach(e=>{const t=r.node(e);!Object.prototype.hasOwnProperty.call(t,"label")&&!r.children(e).length&&(t.label=e),Object.prototype.hasOwnProperty.call(t,"paddingX")&&A.defaults(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),Object.prototype.hasOwnProperty.call(t,"paddingY")&&A.defaults(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),Object.prototype.hasOwnProperty.call(t,"padding")&&A.defaults(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),A.defaults(t,jt),["paddingLeft","paddingRight","paddingTop","paddingBottom"].forEach(a=>{t[a]=Number(t[a])}),Object.prototype.hasOwnProperty.call(t,"width")&&(t._prevWidth=t.width),Object.prototype.hasOwnProperty.call(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);Object.prototype.hasOwnProperty.call(t,"label")||(t.label=""),A.defaults(t,Ht)})}function Ft(r){r.nodes().forEach(e=>{var t=r.node(e);Object.prototype.hasOwnProperty.call(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,Object.prototype.hasOwnProperty.call(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function I(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function K(r,e,t){const a=e.width,n=e.height,s=(a+n)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=E(r,s,s,i);return t.intersect=function(c){return _(t,i,c)},o}function Q(r,e,t){const n=e.height,s=n/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-n/2},{x:i-s,y:-n},{x:s,y:-n},{x:0,y:-n/2}],c=E(r,i,n,o);return t.intersect=function(u){return _(t,o,u)},c}function J(r,e,t){const a=e.width,n=e.height,s=[{x:-n/2,y:0},{x:a,y:0},{x:a,y:-n},{x:-n/2,y:-n},{x:0,y:-n/2}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function Z(r,e,t){const a=e.width,n=e.height,s=[{x:-2*n/6,y:0},{x:a-n/6,y:0},{x:a+2*n/6,y:-n},{x:n/6,y:-n}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function tt(r,e,t){const a=e.width,n=e.height,s=[{x:2*n/6,y:0},{x:a+n/6,y:0},{x:a-2*n/6,y:-n},{x:-n/6,y:-n}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function et(r,e,t){const a=e.width,n=e.height,s=[{x:-2*n/6,y:0},{x:a+2*n/6,y:0},{x:a-n/6,y:-n},{x:n/6,y:-n}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function rt(r,e,t){const a=e.width,n=e.height,s=[{x:n/6,y:0},{x:a-n/6,y:0},{x:a+2*n/6,y:-n},{x:-2*n/6,y:-n}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function at(r,e,t){const a=e.width,n=e.height,s=[{x:0,y:0},{x:a+n/2,y:0},{x:a,y:-n/2},{x:a+n/2,y:-n},{x:0,y:-n}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function nt(r,e,t){const a=e.height,n=e.width+a/4,s=r.insert("rect",":first-child").attr("rx",a/2).attr("ry",a/2).attr("x",-n/2).attr("y",-a/2).attr("width",n).attr("height",a);return t.intersect=function(i){return V(t,i)},s}function st(r,e,t){const a=e.width,n=e.height,s=[{x:0,y:0},{x:a,y:0},{x:a,y:-n},{x:0,y:-n},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-n},{x:-8,y:-n},{x:-8,y:0}],i=E(r,a,n,s);return t.intersect=function(o){return _(t,s,o)},i}function it(r,e,t){const a=e.width,n=a/2,s=n/(2.5+a/50),i=e.height+s,o="M 0,"+s+" a "+n+","+s+" 0,0,0 "+a+" 0 a "+n+","+s+" 0,0,0 "+-a+" 0 l 0,"+i+" a "+n+","+s+" 0,0,0 "+a+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-a/2+","+-(i/2+s)+")");return t.intersect=function(u){const l=V(t,u),v=l.x-t.x;if(n!=0&&(Math.abs(v)<t.width/2||Math.abs(v)==t.width/2&&Math.abs(l.y-t.y)>t.height/2-s)){let h=s*s*(1-v*v/(n*n));h!=0&&(h=Math.sqrt(h)),h=s-h,u.y-t.y>0&&(h=-h),l.y+=h}return l},c}function Xt(r){r.shapes().question=K,r.shapes().hexagon=Q,r.shapes().stadium=nt,r.shapes().subroutine=st,r.shapes().cylinder=it,r.shapes().rect_left_inv_arrow=J,r.shapes().lean_right=Z,r.shapes().lean_left=tt,r.shapes().trapezoid=et,r.shapes().inv_trapezoid=rt,r.shapes().rect_right_inv_arrow=at}function Kt(r){r({question:K}),r({hexagon:Q}),r({stadium:nt}),r({subroutine:st}),r({cylinder:it}),r({rect_left_inv_arrow:J}),r({lean_right:Z}),r({lean_left:tt}),r({trapezoid:et}),r({inv_trapezoid:rt}),r({rect_right_inv_arrow:at})}function E(r,e,t,a){return r.insert("polygon",":first-child").attr("points",a.map(function(n){return n.x+","+n.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const Qt={addToRender:Xt,addToRenderV2:Kt},ot={},Jt=function(r){const e=Object.keys(r);for(const t of e)ot[t]=r[t]},lt=async function(r,e,t,a,n,s){const i=a?a.select(`[id="${t}"]`):d.select(`[id="${t}"]`),o=n||document,c=Object.keys(r);for(const u of c){const l=r[u];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=d.getStylesFromArray(l.styles);let p=l.text!==void 0?l.text:l.id,g;if(d.evaluate(d.getConfig().flowchart.htmlLabels)){const w={label:await d.renderKatexSanitized(p.replace(/fa[blrs]?:fa-[\w-]+/g,S=>`<i class='${S.replace(":"," ")}'></i>`),d.getConfig())};g=y.addHtmlLabel(i,w).node(),g.parentNode.removeChild(g)}else{const w=o.createElementNS("http://www.w3.org/2000/svg","text");w.setAttribute("style",h.labelStyle.replace("color:","fill:"));const S=p.split(d.common$1.lineBreakRegex);for(const N of S){const L=o.createElementNS("http://www.w3.org/2000/svg","tspan");L.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),L.setAttribute("dy","1em"),L.setAttribute("x","1"),L.textContent=N,w.appendChild(L)}g=w}let x=0,f="";switch(l.type){case"round":x=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}d.log$1.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:g,rx:x,ry:x,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})}},ct=async function(r,e,t){let a=0,n,s;if(r.defaultStyle!==void 0){const i=d.getStylesFromArray(r.defaultStyle);n=i.style,s=i.labelStyle}for(const i of r){a++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,u="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const p=d.getStylesFromArray(i.style);v=p.style,h=p.labelStyle}else switch(i.stroke){case"normal":v="fill:none",n!==void 0&&(v=n),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=d.interpolateToCurve(i.interpolate,d.curveLinear):r.defaultInterpolate!==void 0?l.curve=d.interpolateToCurve(r.defaultInterpolate,d.curveLinear):l.curve=d.interpolateToCurve(ot.curve,d.curveLinear),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",d.evaluate(d.getConfig().flowchart.htmlLabels)?(l.labelType="html",l.label=`<span id="L-${o}" class="edgeLabel L-${c}' L-${u}" style="${l.labelStyle}">${await d.renderKatexSanitized(i.text.replace(/fa[blrs]?:fa-[\w-]+/g,p=>`<i class='${p.replace(":"," ")}'></i>`),d.getConfig())}</span>`):(l.labelType="text",l.label=i.text.replace(d.common$1.lineBreakRegex,`
4
4
  `),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+u,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,a)}},Zt=function(r,e){return d.log$1.info("Extracting classes"),e.db.getClasses()},te=async function(r,e,t,a){d.log$1.info("Drawing flowchart");const{securityLevel:n,flowchart:s}=d.getConfig();let i;n==="sandbox"&&(i=d.select("#i"+e));const o=n==="sandbox"?d.select(i.nodes()[0].contentDocument.body):d.select("body"),c=n==="sandbox"?i.nodes()[0].contentDocument:document;let u=a.db.getDirection();u===void 0&&(u="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new ut.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:u,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let p;const g=a.db.getSubGraphs();for(let m=g.length-1;m>=0;m--)p=g[m],a.db.addVertex(p.id,p.title,"group",void 0,p.classes);const x=a.db.getVertices();d.log$1.warn("Get vertices",x);const f=a.db.getEdges();let w=0;for(w=g.length-1;w>=0;w--){p=g[w],y.selectAll("cluster").append("text");for(let m=0;m<p.nodes.length;m++)d.log$1.warn("Setting subgraph",p.nodes[m],a.db.lookUpDomId(p.nodes[m]),a.db.lookUpDomId(p.id)),h.setParent(a.db.lookUpDomId(p.nodes[m]),a.db.lookUpDomId(p.id))}await lt(x,h,e,o,c,a),await ct(f,h,a);const S=new Vt;Qt.addToRender(S),S.arrows().none=function(k,T,b,P){const C=k.append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 0 0 L 0 0 z");y.applyStyle(C,b[P+"Style"])},S.arrows().normal=function(k,T){k.append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const N=o.select(`[id="${e}"]`),L=o.select("#"+e+" g");for(S(L,h),L.selectAll("g.node").attr("title",function(){return a.db.getTooltip(this.id)}),a.db.indexNodes("subGraph"+w),w=0;w<g.length;w++)if(p=g[w],p.title!=="undefined"){const m=c.querySelectorAll("#"+e+' [id="'+a.db.lookUpDomId(p.id)+'"] rect'),k=c.querySelectorAll("#"+e+' [id="'+a.db.lookUpDomId(p.id)+'"]'),T=m[0].x.baseVal.value,b=m[0].y.baseVal.value,P=m[0].width.baseVal.value,C=d.select(k[0]).select(".label");C.attr("transform",`translate(${T+P/2}, ${b+14})`),C.attr("id",e+"Text");for(let O=0;O<p.classes.length;O++)k[0].classList.add(p.classes[O])}if(!s.htmlLabels){const m=c.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const k of m){const T=k.getBBox(),b=c.createElementNS("http://www.w3.org/2000/svg","rect");b.setAttribute("rx",0),b.setAttribute("ry",0),b.setAttribute("width",T.width),b.setAttribute("height",T.height),k.insertBefore(b,k.firstChild)}}d.setupGraphViewbox$1(h,N,s.diagramPadding,s.useMaxWidth),Object.keys(x).forEach(function(m){const k=x[m];if(k.link){const T=o.select("#"+e+' [id="'+a.db.lookUpDomId(m)+'"]');if(T){const b=c.createElementNS("http://www.w3.org/2000/svg","a");b.setAttributeNS("http://www.w3.org/2000/svg","class",k.classes.join(" ")),b.setAttributeNS("http://www.w3.org/2000/svg","href",k.link),b.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),n==="sandbox"?b.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):k.linkTarget&&b.setAttributeNS("http://www.w3.org/2000/svg","target",k.linkTarget);const P=T.insert(function(){return b},":first-child"),D=T.select(".label-container");D&&P.append(function(){return D.node()});const C=T.select(".label");C&&P.append(function(){return C.node()})}}})},ee={setConf:Jt,addVertices:lt,addEdges:ct,getClasses:Zt,draw:te},re={parser:M.parser$1,db:M.flowDb,renderer:y.flowRendererV2,styles:y.flowStyles,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,ee.setConf(r.flowchart),M.flowDb.clear(),M.flowDb.setGen("gen-1")}};exports.diagram=re;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),a=require("react"),g=require("react-i18next"),T=require("@lexical/react/LexicalComposerContext"),P=require("lexical"),d=require("./layers.CsKzmaOj.js"),u=require("@mantine/core");function w({onAdd:e,label:n,disabled:c,tooltip:r}){const o=s.jsx(u.ActionIcon,{variant:"subtle",color:"gray",size:"sm",radius:"sm",className:"tabs-block__add","data-testid":"tabs-add","aria-label":n,"aria-disabled":c?"true":void 0,"data-disabled":c||void 0,onMouseDown:t=>t.preventDefault(),onClick:t=>{if(c){t.preventDefault();return}e()},children:s.jsx(d.HugeiconsIcon,{icon:d.T6,size:14})});return r?s.jsx(u.Tooltip,{label:r,position:"top",withArrow:!0,openDelay:300,children:o}):o}function E({tab:e,isActive:n,containerKey:c,onActivate:r,readOnly:o}){const[t]=T.useLexicalComposerContext(),{t:m}=g.useTranslation(),[f,p]=a.useState(!1),[b,l]=a.useState(e.title),[_,h]=a.useState(!1);a.useEffect(()=>{l(e.title)},[e.title]);const x=a.useCallback(()=>{const i=b.trim();i&&i!==e.title?d.dispatchRenameTab(t,c,e.id,i):l(e.title),p(!1)},[t,c,e.id,e.title,b]),C=a.useCallback(()=>{l(e.title),p(!1)},[e.title]),j=a.useCallback(i=>{i.key==="Enter"?(i.preventDefault(),x()):i.key==="Escape"&&(i.preventDefault(),C())},[x,C]),y=a.useCallback(()=>{f||r()},[f,r]),A=a.useCallback(i=>{o||(i.stopPropagation(),p(!0))},[o]),S=a.useCallback(i=>{o||(i.preventDefault(),i.stopPropagation(),h(!0))},[o]),N=a.useCallback(()=>{h(!1),p(!0)},[]),D=a.useCallback(()=>{h(!1),d.dispatchRemoveTab(t,c,e.id)},[t,c,e.id]);return s.jsxs(u.Popover,{opened:_,onChange:h,position:"bottom-start",shadow:"md",withinPortal:!0,trapFocus:!1,closeOnClickOutside:!0,closeOnEscape:!0,children:[s.jsx(u.Popover.Target,{children:s.jsx("span",{className:"tabs-block__tab","data-active":n,"data-testid":"tabs-tab","data-tab-id":e.id,onClick:y,onDoubleClick:A,onContextMenu:S,children:f?s.jsx(u.TextInput,{size:"xs",variant:"unstyled",value:b,onChange:i=>l(i.currentTarget.value),onBlur:x,onKeyDown:j,autoFocus:!0,classNames:{input:"tabs-block__rename-input"},styles:{input:{width:`${Math.max(b.length,3)}ch`}},"data-testid":"tabs-rename-input"}):s.jsx("span",{className:"tabs-block__tab-label",children:e.title})})}),s.jsx(u.Popover.Dropdown,{p:4,children:s.jsxs("div",{className:"tabs-block__menu",children:[s.jsx(u.UnstyledButton,{className:"tabs-block__menu-item",onClick:N,"data-testid":"tabs-menu-rename",children:m("editor.menu.other.tabs.actions.rename")}),s.jsx(u.UnstyledButton,{className:"tabs-block__menu-item tabs-block__menu-item--danger",onClick:D,"data-testid":"tabs-menu-delete",children:m("editor.menu.other.tabs.actions.delete")})]})})]})}function v(e,n){let c={tabs:[],activeTabId:"",containerKey:""};return e.getEditorState().read(()=>{const r=P.$getNodeByKey(n);if(!r||!d.$isTabsHeaderNode(r))return;const o=r.getParent();d.$isTabsContainerNode(o)&&(c={tabs:o.getTabs(),activeTabId:o.getActiveTabId(),containerKey:o.getKey()})}),c}function k(e){e.stopPropagation()}function I({nodeKey:e}){const[n]=T.useLexicalComposerContext(),{t:c}=g.useTranslation(),{disable:r}=a.useContext(d.Context),o=!!r,[t,m]=a.useState(()=>v(n,e));a.useEffect(()=>(m(v(n,e)),n.registerUpdateListener(()=>{m(v(n,e))})),[n,e]);const f=a.useCallback(()=>{t.containerKey&&d.dispatchAddTab(n,t.containerKey)},[n,t.containerKey]),p=a.useCallback(l=>{t.containerKey&&d.dispatchSetActiveTab(n,t.containerKey,l)},[n,t.containerKey]);if(t.tabs.length===0||!t.containerKey)return null;const b=t.tabs.length<d.MAX_TABS;return s.jsxs("div",{className:"tabs-block__header",contentEditable:!1,onMouseDown:k,onClick:k,children:[s.jsx("div",{className:"tabs-block__tabs","data-testid":"tabs-header",children:t.tabs.map(l=>s.jsx(E,{tab:l,isActive:l.id===t.activeTabId,containerKey:t.containerKey,onActivate:()=>p(l.id),readOnly:o},l.id))}),!o&&s.jsx(w,{onAdd:f,label:c("editor.menu.other.tabs.actions.add"),disabled:!b,tooltip:b?void 0:c("editor.menu.other.tabs.actions.maxReached",{max:d.MAX_TABS})})]})}exports.default=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),a=require("react"),g=require("react-i18next"),T=require("@lexical/react/LexicalComposerContext"),P=require("lexical"),d=require("./layers.VmviAeJV.js"),u=require("@mantine/core");function w({onAdd:e,label:n,disabled:c,tooltip:r}){const o=s.jsx(u.ActionIcon,{variant:"subtle",color:"gray",size:"sm",radius:"sm",className:"tabs-block__add","data-testid":"tabs-add","aria-label":n,"aria-disabled":c?"true":void 0,"data-disabled":c||void 0,onMouseDown:t=>t.preventDefault(),onClick:t=>{if(c){t.preventDefault();return}e()},children:s.jsx(d.HugeiconsIcon,{icon:d.T6,size:14})});return r?s.jsx(u.Tooltip,{label:r,position:"top",withArrow:!0,openDelay:300,children:o}):o}function E({tab:e,isActive:n,containerKey:c,onActivate:r,readOnly:o}){const[t]=T.useLexicalComposerContext(),{t:m}=g.useTranslation(),[f,p]=a.useState(!1),[b,l]=a.useState(e.title),[_,h]=a.useState(!1);a.useEffect(()=>{l(e.title)},[e.title]);const x=a.useCallback(()=>{const i=b.trim();i&&i!==e.title?d.dispatchRenameTab(t,c,e.id,i):l(e.title),p(!1)},[t,c,e.id,e.title,b]),C=a.useCallback(()=>{l(e.title),p(!1)},[e.title]),j=a.useCallback(i=>{i.key==="Enter"?(i.preventDefault(),x()):i.key==="Escape"&&(i.preventDefault(),C())},[x,C]),y=a.useCallback(()=>{f||r()},[f,r]),A=a.useCallback(i=>{o||(i.stopPropagation(),p(!0))},[o]),S=a.useCallback(i=>{o||(i.preventDefault(),i.stopPropagation(),h(!0))},[o]),N=a.useCallback(()=>{h(!1),p(!0)},[]),D=a.useCallback(()=>{h(!1),d.dispatchRemoveTab(t,c,e.id)},[t,c,e.id]);return s.jsxs(u.Popover,{opened:_,onChange:h,position:"bottom-start",shadow:"md",withinPortal:!0,trapFocus:!1,closeOnClickOutside:!0,closeOnEscape:!0,children:[s.jsx(u.Popover.Target,{children:s.jsx("span",{className:"tabs-block__tab","data-active":n,"data-testid":"tabs-tab","data-tab-id":e.id,onClick:y,onDoubleClick:A,onContextMenu:S,children:f?s.jsx(u.TextInput,{size:"xs",variant:"unstyled",value:b,onChange:i=>l(i.currentTarget.value),onBlur:x,onKeyDown:j,autoFocus:!0,classNames:{input:"tabs-block__rename-input"},styles:{input:{width:`${Math.max(b.length,3)}ch`}},"data-testid":"tabs-rename-input"}):s.jsx("span",{className:"tabs-block__tab-label",children:e.title})})}),s.jsx(u.Popover.Dropdown,{p:4,children:s.jsxs("div",{className:"tabs-block__menu",children:[s.jsx(u.UnstyledButton,{className:"tabs-block__menu-item",onClick:N,"data-testid":"tabs-menu-rename",children:m("editor.menu.other.tabs.actions.rename")}),s.jsx(u.UnstyledButton,{className:"tabs-block__menu-item tabs-block__menu-item--danger",onClick:D,"data-testid":"tabs-menu-delete",children:m("editor.menu.other.tabs.actions.delete")})]})})]})}function v(e,n){let c={tabs:[],activeTabId:"",containerKey:""};return e.getEditorState().read(()=>{const r=P.$getNodeByKey(n);if(!r||!d.$isTabsHeaderNode(r))return;const o=r.getParent();d.$isTabsContainerNode(o)&&(c={tabs:o.getTabs(),activeTabId:o.getActiveTabId(),containerKey:o.getKey()})}),c}function k(e){e.stopPropagation()}function I({nodeKey:e}){const[n]=T.useLexicalComposerContext(),{t:c}=g.useTranslation(),{disable:r}=a.useContext(d.Context),o=!!r,[t,m]=a.useState(()=>v(n,e));a.useEffect(()=>(m(v(n,e)),n.registerUpdateListener(()=>{m(v(n,e))})),[n,e]);const f=a.useCallback(()=>{t.containerKey&&d.dispatchAddTab(n,t.containerKey)},[n,t.containerKey]),p=a.useCallback(l=>{t.containerKey&&d.dispatchSetActiveTab(n,t.containerKey,l)},[n,t.containerKey]);if(t.tabs.length===0||!t.containerKey)return null;const b=t.tabs.length<d.MAX_TABS;return s.jsxs("div",{className:"tabs-block__header",contentEditable:!1,onMouseDown:k,onClick:k,children:[s.jsx("div",{className:"tabs-block__tabs","data-testid":"tabs-header",children:t.tabs.map(l=>s.jsx(E,{tab:l,isActive:l.id===t.activeTabId,containerKey:t.containerKey,onActivate:()=>p(l.id),readOnly:o},l.id))}),!o&&s.jsx(w,{onAdd:f,label:c("editor.menu.other.tabs.actions.add"),disabled:!b,tooltip:b?void 0:c("editor.menu.other.tabs.actions.maxReached",{max:d.MAX_TABS})})]})}exports.default=I;
@@ -4,7 +4,7 @@ import { useTranslation as U } from "react-i18next";
4
4
  import { useLexicalComposerContext as z } from "@lexical/react/LexicalComposerContext";
5
5
  import { Menu as S, Flex as te, Stack as De, Button as H, Box as Oe, LoadingOverlay as Ae } from "@mantine/core";
6
6
  import { $getNodeByKey as O, COMMAND_PRIORITY_LOW as Ne, $setSelection as xe } from "lexical";
7
- import { x as Se, A as G, K as Te, H as T, y as se, m as de, z as ce, B as A, N as me, D as Ee, F as Pe, o as Me, C as ue, G as ke, J as Le, L as $, P as Ue, Q as ze, S as _e, U as Re, V as We, W as Fe, R as je, k as oe, O as He, j as ne, X as ie, n as $e } from "./layers.CXJoDk6D.js";
7
+ import { x as Se, A as G, K as Te, H as T, y as se, m as de, z as ce, B as A, N as me, D as Ee, F as Pe, o as Me, C as ue, G as ke, J as Le, L as $, P as Ue, Q as ze, S as _e, U as Re, V as We, W as Fe, R as je, k as oe, O as He, j as ne, X as ie, n as $e } from "./layers.D9YbM7ex.js";
8
8
  import { AttachmentsGalleryModal as ge, showErrorNotification as Be } from "@layers-app/shared";
9
9
  import { useLexicalEditable as Ve } from "@lexical/react/useLexicalEditable";
10
10
  import { useDisclosure as B } from "@mantine/hooks";
@@ -258,7 +258,7 @@ function Ye({ nodeKey: e, src: n, id: t }) {
258
258
  {
259
259
  id: !t || t === "0" ? "" : t,
260
260
  Url: n ?? "",
261
- contentType: "",
261
+ contentType: "image/*",
262
262
  originalFileName: "",
263
263
  fileSize: 0,
264
264
  storageType: "",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./layers.BoWTpFSJ.js");require("./layers.s_QJ2fp5.js");var e=typeof document<"u"?document.currentScript:null,n=(typeof document>"u"?require("url").pathToFileURL(__filename).href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("layers.BcszPjZC.js",document.baseURI).href)?new URL(typeof document>"u"?require("url").pathToFileURL(__filename).href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("layers.BcszPjZC.js",document.baseURI).href):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async r=>{switch(r.data.command){case a.CB.Subset:let t=await a.NQ(r.data.arrayBuffer,r.data.codePoints);self.postMessage(t,{transfer:[t]});break}});exports.WorkerUrl=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./layers.9enAZvnR.js");require("./layers.Cv8gm6DJ.js");var e=typeof document<"u"?document.currentScript:null,n=(typeof document>"u"?require("url").pathToFileURL(__filename).href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("layers.BtUYdWJi.js",document.baseURI).href)?new URL(typeof document>"u"?require("url").pathToFileURL(__filename).href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("layers.BtUYdWJi.js",document.baseURI).href):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async r=>{switch(r.data.command){case a.CB.Subset:let t=await a.NQ(r.data.arrayBuffer,r.data.codePoints);self.postMessage(t,{transfer:[t]});break}});exports.WorkerUrl=n;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.s_QJ2fp5.js");var u={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",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:"اضغط للتفاعل"},r={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.Cv8gm6DJ.js");var u={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",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:"اضغط للتفاعل"},r={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
2
2
 
3
3
  (إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:"تعذر إضافة العنصر للمكتبة",errorRemovingFromLibrary:"تعذر إزالة العنصر من المكتبة",confirmAddLibrary:"هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟",imageDoesNotContainScene:"يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟",cannotRestoreFromImage:"تعذر استعادة المشهد من ملف الصورة",invalidSceneUrl:"تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.",resetLibrary:"هذا سوف يمسح مكتبتك. هل أنت متأكد؟",removeItemsFromsLibrary:"حذف {{count}} عنصر (عناصر) من المكتبة؟",invalidEncryptionKey:"مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.",collabOfflineWarning:`لا يوجد اتصال بالانترنت.
4
4
  لن يتم حفظ التغييرات التي قمت بها!`},o={unsupportedFileType:"نوع الملف غير مدعوم.",imageInsertError:"تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...",fileTooBig:"الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.",svgImageInsertError:"تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.",failedToFetchImage:"",invalidSVGString:"SVG غير صالح.",cannotResolveCollabServer:"تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.",importLibraryError:"تعذر تحميل المكتبة",collabSaveFailed:"تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.",collabSaveFailed_sizeExceeded:"تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.",imageToolNotSupported:"",brave_measure_text_error:{line1:"يبدو أنك تستخدم متصفح Brave مع إعداد <bold>حظر صارم لتتبع البصمة</bold>.",line2:"قد يؤدي هذا إلى كسر <bold>عناصر النص</bold> في الرسومات الخاصة بك.",line3:"من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع <link>هذه الخطوات</link> لفعل ذلك.",line4:"إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة <issueLink>بلاغ</issueLink> على حسابنا في GitHub، أو راسلنا على <discordLink>Discord</discordLink>"},libraryElementTypeError:{embeddable:"لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.",iframe:"",image:"سوف يتم دعم إضافة صور إلى المكتبة قريباً!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},t={selection:"تحديد",image:"إدراج صورة",rectangle:"مستطيل",diamond:"مضلع",ellipse:"دائرة",arrow:"سهم",line:"خط",freedraw:"رسم",text:"نص",library:"مكتبة",lock:"الحفاظ على أداة التحديد نشطة بعد الرسم",penMode:"وضع القلم - امنع اللمس",link:"إضافة/تحديث الرابط للشكل المحدد",eraser:"ممحاة",frame:"أداة الإطار",magicframe:"",embeddable:"تضمين ويب",laser:"مؤشر ليزر",hand:"يد (أداة الإزاحة)",extraTools:"المزيد من أﻷدوات",mermaidToExcalidraw:"",magicSettings:""},a={canvasActions:"إجراءات اللوحة",selectedShapeActions:"إجراءات الشكل المحدد",shapes:"الأشكال"},i={canvasPanning:"لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد",linearElement:"انقر لبدء نقاط متعددة، اسحب لخط واحد",freeDraw:"انقر واسحب، افرج عند الانتهاء",text:"نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار",embeddable:"اضغط مع السحب لإنشاء موقع ويب مضمّن",text_selected:"انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص",text_editing:"اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل",linearElementMulti:"انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء",lockAngle:"يمكنك تقييد الزاوية بالضغط على SHIFT",resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم،
@@ -1,4 +1,4 @@
1
- import "./layers.C81SvY8r.js";
1
+ import "./layers.BxmXw7Yl.js";
2
2
  var i = { paste: "Įklijuoti", pasteAsPlaintext: "Įklijuoti kaip paprastą tekstą", pasteCharts: "Įklijuoti diagramas", selectAll: "Pažymėti viską", multiSelect: "Pridėkite elementą prie pasirinktų", moveCanvas: "Judinti drobę", cut: "Iškirpti", copy: "Kopijuoti", copyAsPng: "Kopijuoti į iškarpinę kaip PNG", copyAsSvg: "Kopijuoti į iškarpinę kaip SVG", copyText: "Kopijuoti į iškarpinę kaip tekstą", copySource: "", convertToCode: "", bringForward: "Kelti priekio link", sendToBack: "Nustumti į užnugarį", bringToFront: "Iškelti į priekį", sendBackward: "Nustumti link užnugario", delete: "Ištrinti", copyStyles: "Kopijuoti stilius", pasteStyles: "Įklijuoti stilius", stroke: "Linija", background: "Fonas", fill: "Užpildymas", strokeWidth: "Linijos storis", strokeStyle: "Linijos stilius", strokeStyle_solid: "Ištisinė", strokeStyle_dashed: "Brūkšniuota", strokeStyle_dotted: "Taškuota", sloppiness: "Netvarkingumas", opacity: "Nepermatomumas", textAlign: "Teksto lygiavimas", edges: "Kraštai", sharp: "Aštrus", round: "Užapvalintas", arrowheads: "Rodyklės viršūnės", arrowhead_none: "Jokios", arrowhead_arrow: "Rodyklė", arrowhead_bar: "Brukšnys", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Trikampis", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Šrifto dydis", fontFamily: "Šriftas", addWatermark: "Sukurta su Excalidraw", handDrawn: "Ranka rašytas", normal: "Normalus", code: "Kodas", small: "Mažas", medium: "Vidutinis", large: "Didelis", veryLarge: "Labai didelis", solid: "", hachure: "", zigzag: "", crossHatch: "", thin: "Plonas", bold: "Pastorintas", left: "Kairėje", center: "Centre", right: "Dešinėje", extraBold: "Labiau pastorintas", architect: "Architektas", artist: "Menininkas", cartoonist: "Karikatūristas", fileTitle: "Failo pavadinimas", colorPicker: "Spalvos parinkiklis", canvasColors: "", canvasBackground: "Drobės fonas", drawingCanvas: "", layers: "Sluoksniai", actions: "Veiksmai", language: "Kalba", liveCollaboration: "Bendradarbiavimas gyvai...", duplicateSelection: "", untitled: "", name: "", yourName: "Jūsų vardas", madeWithExcalidraw: "Sukurta su Excalidraw", group: "Grupuoti pasirinkimą", ungroup: "Išgrupuoti pasirinkimą", collaborators: "Bendradarbiautojai", showGrid: "Rodyti tinklelį", addToLibrary: "Pridėti į biblioteką", removeFromLibrary: "Pašalinti iš bibliotekos", libraryLoadingMessage: "", libraries: "Naršyti bibliotekas", loadingScene: "", align: "Lygiuoti", alignTop: "Lygiuoti viršuje", alignBottom: "Lygiuoti apačioje", alignLeft: "Lygiuoti kairėje", alignRight: "Lygiuoti dešinėje", centerVertically: "Centruoti vertikaliai", centerHorizontally: "Centruoti horizontaliai", distributeHorizontally: "", distributeVertically: "", flipHorizontal: "Apversti horizontaliai", flipVertical: "Apversti vertikaliai", viewMode: "", share: "Dalintis", showStroke: "", showBackground: "", toggleTheme: "", personalLib: "Asmeninė biblioteka", excalidrawLib: "Exaclidraw biblioteka", decreaseFontSize: "", increaseFontSize: "", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "Redeguoti nuorodą", editEmbed: "", create: "Sukurti nuorodą", createEmbed: "", label: "Nuoroda", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "Užrakinti", unlock: "Atrakinti", lockAll: "", unlockAll: "" }, statusPublished: "", sidebarLock: "", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, a = { noItems: "", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, e = { clearReset: "", exportJSON: "Eksportuoti į failą", exportImage: "", export: "", copyToClipboard: "Kopijuoti į iškarpinę", save: "", saveAs: "Išsaugoti kaip", load: "", getShareableLink: "Gauti nuorodą dalinimuisi", close: "Uždaryti", selectLanguage: "Pasirinkite kalbą", scrollBackToContent: "", zoomIn: "Priartinti", zoomOut: "Nutolinti", resetZoom: "", menu: "Meniu", done: "", edit: "Redaguoti", undo: "Anuliuoti", redo: "", resetLibrary: "Atstatyti biblioteką", createNewRoom: "Sukurti naują kambarį", fullScreen: "Visas ekranas", darkMode: "Tamsus režimas", lightMode: "Šviesus režimas", zenMode: "„Zen“ režimas", objectsSnapMode: "", exitZenMode: "Išeiti iš „Zen“ režimo", cancel: "Atšaukti", clear: "Išvalyti", remove: "Pašalinti", embed: "", publishLibrary: "Paskelbti", submit: "Pateikti", confirm: "Patvirtinti", embeddableInteractionButton: "" }, t = { clearReset: "", couldNotCreateShareableLink: "", couldNotCreateShareableLinkTooBig: "", couldNotLoadInvalidFile: "", importBackendFailed: "", cannotExportEmptyCanvas: "", couldNotCopyToClipboard: "", decryptFailed: "", uploadedSecurly: "", loadSceneOverridePrompt: "", collabStopOverridePrompt: `Sesijos nutraukimas perrašys ankstesnį, lokaliai išsaugotą piešinį. Ar tikrai to nori?
3
3
 
4
4
  (Jei nori išlaikyti lokalų piešinį, tiesiog uždaryk naršyklės skirtuką.)`, errorAddingToLibrary: "Nepavyko įtraukti elemento į biblioteką", errorRemovingFromLibrary: "Nepavyko pašalinti elemento iš bibliotekos", confirmAddLibrary: "Tai įtrauks {{numShapes}} figūrą/-as į tavo biblioteką. Ar tikrai to nori?", imageDoesNotContainScene: "Panašu, jog šis paveiksliukas neturi scenos duomenų. Ar yra įjuntas scenos įtraukimas ekportavimo metu?", cannotRestoreFromImage: "Nepavyko atstatyti scenos iš šio nuotraukos failo", invalidSceneUrl: "Nepavyko suimportuoti scenos iš pateiktos nuorodos (URL). Ji arba blogai suformatuota, arba savyje neturi teisingų Excalidraw JSON duomenų.", resetLibrary: "Tai išvalys tavo biblioteką. Ar tikrai to nori?", removeItemsFromsLibrary: "Ištrinti {{count}} elementą/-us iš bibliotekos?", invalidEncryptionKey: "Šifravimo raktas turi būti iš 22 simbolių. Redagavimas gyvai yra išjungtas.", collabOfflineWarning: "" }, o = { unsupportedFileType: "Nepalaikomas failo tipas.", imageInsertError: "Nepyko įkelti paveiksliuko. Pabandyk vėliau...", fileTooBig: "Per didelis failas. Didžiausias leidžiamas dydis yra {{maxSize}}.", svgImageInsertError: "Nepavyko įtraukti SVG paveiksliuko. Panašu, jog SVG yra nevalidus.", failedToFetchImage: "", invalidSVGString: "Nevalidus SVG.", cannotResolveCollabServer: "Nepavyko prisijungti prie serverio bendradarbiavimui. Perkrauk puslapį ir pabandyk prisijungti dar kartą.", importLibraryError: "Nepavyko įkelti bibliotekos", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, r = { selection: "Žymėjimas", image: "Įkelti paveiksliuką", rectangle: "Stačiakampis", diamond: "Deimantas", ellipse: "Elipsė", arrow: "Rodyklė", line: "Linija", freedraw: "Piešti", text: "Tekstas", library: "Biblioteka", lock: "Baigus piešti, išlaikyti pasirinktą įrankį", penMode: "Rašyklio režimas - neleisti prisilietimų", link: "Pridėti / Atnaujinti pasirinktos figūros nuorodą", eraser: "Trintukas", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, u = { canvasActions: "Veiksmai su drobe", selectedShapeActions: "Veiksmai su pasirinkta figūra", shapes: "Figūros" }, s = { canvasPanning: "", linearElement: "Paspaudimai sukurs papildomus taškus, nepertraukiamas tempimas sukurs liniją", freeDraw: "Spausk ir tempk, paleisk kai norėsi pabaigti", text: "Užuomina: tekstą taip pat galima pridėti bet kur su dvigubu pelės paspaudimu, kol parinkas žymėjimo įrankis", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "", lockAngle: "", resize: "", resizeImage: "", rotate: "", lineEditor_info: "", lineEditor_pointSelected: "", lineEditor_nothingSelected: "", placeImage: "", publishLibrary: "", bindTextToElement: "", deepBoxSelect: "", eraserRevert: "", firefox_clipboard_write: "", disableSnapping: "" }, l = { cannotShowPreview: "", canvasTooBig: "", canvasTooBigTip: "" }, n = { headingMain: "", clearCanvasMessage: "", clearCanvasCaveat: "", trackedToSentry: "", openIssueMessage: "", sceneContent: "" }, d = { desc_intro: "", desc_privacy: "", button_startSession: "Pradėti seansą", button_stopSession: "Sustabdyti seansą", desc_inProgressIntro: "", desc_shareLink: "", desc_exitSession: "", shareTitle: "" }, p = { title: "Klaida" }, k = { disk_title: "Įrašyti į diską", disk_details: "", disk_button: "Įrašyti į failą", link_title: "Nuoroda dalinimuisi", link_details: "", link_button: "", excalidrawplus_description: "", excalidrawplus_button: "Eksportuoti", excalidrawplus_exportError: "" }, m = { blog: "", click: "paspaudimas", deepSelect: "", deepBoxSelect: "", curvedArrow: "Banguota rodyklė", curvedLine: "Banguota linija", documentation: "Dokumentacija", doubleClick: "dvigubas paspaudimas", drag: "vilkti", editor: "Redaktorius", editLineArrowPoints: "", editText: "", github: "Radai klaidą? Pateik", howto: "Vadovaukis mūsų gidu", or: "arba", preventBinding: "", tools: "Įrankiai", shortcuts: "Spartieji klavišai", textFinish: "Baigti redagavimą (teksto redaktoriuje)", textNewLine: "Pridėti naują eilutę (tekto redaktoriuje)", title: "Pagalba", view: "", zoomToFit: "", zoomToSelection: "Priartinti iki pažymėtos vietos", toggleElementLock: "", movePageUpDown: "Pajudinti puslapį aukštyn/žemyn", movePageLeftRight: "Pajudinti puslapį kairėn/dešinėn" }, c = { title: "Išvalyti drobę" }, b = { title: "Paviešinti biblioteką", itemName: "Elemento pavadinimas", authorName: "Autoriaus vardas", githubUsername: "Github spalyvardis", twitterUsername: "Twitter slapyvardis", libraryName: "Bibliotekos pavadinimas", libraryDesc: "Bibliotekos aprašas", website: "Tinklalapis", placeholder: { authorName: "Tavo vardas arba spalyvardis", libraryName: "Tavo bibliotekos pavadinimas", libraryDesc: "Tavo bibliotekos aprašas, padėti žmonėms geriau suprasti jos paskirtį", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "Privalomas", website: "Įveskite teisingą nuorodą (URL)" }, noteDescription: "Pateik savo biblioteką, jog ji galėtų būti įtraukta į <link></link>jog kiti žmonės galėtų tai naudoti savo piešiniuose.", noteGuidelines: "Visų pirma, biblioteka turi būti rankiniu būdu patvirtinta. Prašome paskaityti <link>gairės</link>", noteLicense: "<link>MIT licencija, </link>", noteItems: "", atleastOneLibItem: "", republishWarning: "" }, g = { title: "Biblioteka pateikta", content: "Ačiū {{authorName}}. Tavo biblioteka buvo pateikta peržiūrai. Gali sekti būseną<link>čia</link>" }, y = { resetLibrary: "Atstatyti biblioteką", removeItemsFromLib: "Pašalinti pasirinktus elementus iš bibliotekos" }, v = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, h = { tooltip: "", link: "" }, S = { angle: "", element: "Elementas", elements: "Elementai", height: "Aukštis", scene: "Scena", selected: "Pasirinkta", storage: "Saugykla", title: "Informacija moksliukams", total: "", version: "", versionCopy: "", versionNotAvailable: "", width: "Plotis" }, E = { addedToLibrary: "Pridėta į biblioteką", copyStyles: "", copyToClipboard: "Nukopijuota į iškarpinę.", copyToClipboardAsPng: "", fileSaved: "Failas išsaugotas.", fileSavedToFilename: "Išsaugota į {filename}", canvas: "drobė", selection: "", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, F = { transparent: "Permatoma", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "", green: "", yellow: "", orange: "", bronze: "" }, T = { app: { center_heading: "", center_heading_plus: "", menuHint: "" }, defaults: { menuHint: "", center_heading: "", toolbarHint: "", helpHint: "" } }, P = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, w = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, x = { title: "", button: "", description: "", syntax: "", preview: "" }, j = { labels: i, library: a, buttons: e, alerts: t, errors: o, toolBar: r, headings: u, hints: s, canvasError: l, errorSplash: n, roomDialog: d, errorDialog: p, exportDialog: k, helpDialog: m, clearCanvasDialog: c, publishDialog: b, publishSuccessDialog: g, confirmDialog: y, imageExportDialog: v, encrypted: h, stats: S, toast: E, colors: F, welcomeScreen: T, colorPicker: P, overwriteConfirm: w, mermaid: x };
@@ -1,5 +1,5 @@
1
1
  import { w as ln, c as H } from "./layers.DLwuMfdd.js";
2
- import { B as rn, D as M, E as D, F as an, G as y, H as on, I as j, J as _, K as un, L as t, M as sn, N as tn, O as fn } from "./layers.CGx5Pud_.js";
2
+ import { B as rn, D as M, E as D, F as an, G as y, H as on, I as j, J as _, K as un, L as t, M as sn, N as tn, O as fn } from "./layers.BAIbvRIu.js";
3
3
  function cn(l) {
4
4
  return l.innerRadius;
5
5
  }
@@ -1,9 +1,9 @@
1
- import { s as vt, a as Lt, n as bt, o as Ct, b as zt, c as Et, g as yt, l as ot, d as gt, e as Dt, q as It, P as D, Q as Bt, i as wt } from "./layers.CGx5Pud_.js";
2
- import "./layers.C81SvY8r.js";
1
+ import { s as vt, a as Lt, n as bt, o as Ct, b as zt, c as Et, g as yt, l as ot, d as gt, e as Dt, q as It, P as D, Q as Bt, i as wt } from "./layers.BAIbvRIu.js";
2
+ import "./layers.BxmXw7Yl.js";
3
3
  import "lodash-es/memoize.js";
4
4
  import "lodash-es/merge.js";
5
5
  import "lodash-es/isEmpty.js";
6
- import { l as _t } from "./layers.BbOyTSta.js";
6
+ import { l as _t } from "./layers.CdOF5t07.js";
7
7
  var pt = (function() {
8
8
  var e = function(K, n, r, l) {
9
9
  for (r = r || {}, l = K.length; l--; r[K[l]] = n)
@@ -1,4 +1,4 @@
1
- import { g as il, i as Xi, Y as $v, Z as zv, _ as Fv, a0 as Bv, a1 as Hv, a2 as Xv, a3 as Wv, a4 as Gv, a5 as Vv } from "./layers.CXJoDk6D.js";
1
+ import { g as il, i as Xi, Y as $v, Z as zv, _ as Fv, a0 as Bv, a1 as Hv, a2 as Xv, a3 as Wv, a4 as Gv, a5 as Vv } from "./layers.D9YbM7ex.js";
2
2
  import * as W from "react";
3
3
  import K, { useCallback as Ye, useReducer as K6, useEffect as ne, useDebugValue as jv, useContext as _n, createContext as Wl, useRef as le, useState as ue, useMemo as ct, createElement as ht, forwardRef as Xt, Children as Vn, isValidElement as tr, cloneElement as Go, Fragment as a0, useLayoutEffect as Pn, memo as ss, useImperativeHandle as q6, version as Yv, useDeferredValue as Zv } from "react";
4
4
  import { jsx as p, jsxs as _, Fragment as re } from "react/jsx-runtime";
@@ -4579,7 +4579,7 @@ var AC = B(_("g", { children: [p("path", { stroke: "none", d: "M0 0h24v24H0z", f
4579
4579
  return nm = !1, Sk() && (r instanceof qb || r instanceof Jb) || console.error("Failed to use workers for subsetting, falling back to the main thread.", r), a(e, t);
4580
4580
  }
4581
4581
  }) : a(e, t);
4582
- }, Xh = null, Wh = null, WC = async () => (Xh || (Xh = import("./layers.CwLv2mg9.js")), Xh), GC = async () => (Wh || (Wh = import("./layers.Dokul8vJ.js")), Wh), Gh = null, VC = () => (Gh || (Gh = ar(async () => {
4582
+ }, Xh = null, Wh = null, WC = async () => (Xh || (Xh = import("./layers.DsTX778z.js")), Xh), GC = async () => (Wh || (Wh = import("./layers.BBPWQcJT.js")), Wh), Gh = null, VC = () => (Gh || (Gh = ar(async () => {
4583
4583
  let { WorkerUrl: e } = await WC();
4584
4584
  return HC.create(e);
4585
4585
  })), Gh), e8 = class lc {
@@ -9709,7 +9709,7 @@ var XP = w1, xi = XP, V = (e, t, n = !0, a) => {
9709
9709
  }, sN = (e) => e.filter((t) => !t.isDeleted && !tl(t)), et = (e) => e.filter((t) => !t.isDeleted), S1 = (e) => !e.isDeleted, K7 = (e) => et(e).map((t) => y0(t.type) ? { ...t, lastCommittedPoint: null } : t), oN = (e) => K7(e), q7 = (e) => K7(e), J7 = async (e) => {
9710
9710
  let t;
9711
9711
  if (e.type === se.png) try {
9712
- return await (await import("./layers.DnXRkvjC.js")).decodePngMetadata(e);
9712
+ return await (await import("./layers.D-fpEkux.js")).decodePngMetadata(e);
9713
9713
  } catch (n) {
9714
9714
  throw n.message === "INVALID" ? new Ar("Image doesn't contain scene", "IMAGE_NOT_CONTAINS_SCENE_DATA") : new Ar("Error: cannot restore image");
9715
9715
  }
@@ -9784,7 +9784,7 @@ var XP = w1, xi = XP, V = (e, t, n = !0, a) => {
9784
9784
  return new File([r], t, { type: i });
9785
9785
  }, fN = (e) => l3(e.slice(e.indexOf(",") + 1)), M1 = async (e, t) => {
9786
9786
  if (e.type === se.svg) return e;
9787
- let [n, a] = await Promise.all([import("./layers.D4ZZDhAa.js").then((r) => r.p).then((r) => r.default), import("./layers.B7K7JjK6.js").then((r) => r.default)]), i = a({ pica: n({ features: ["js", "wasm"] }) });
9787
+ let [n, a] = await Promise.all([import("./layers.qmQL-_GY.js").then((r) => r.p).then((r) => r.default), import("./layers.B7K7JjK6.js").then((r) => r.default)]), i = a({ pica: n({ features: ["js", "wasm"] }) });
9788
9788
  if (t.outputType) {
9789
9789
  let { outputType: r } = t;
9790
9790
  i._create_blob = function(l) {
@@ -13077,7 +13077,7 @@ Bi.defaults = {
13077
13077
  maxTailLength: 50
13078
13078
  };
13079
13079
  let su = Bi;
13080
- var E4 = m3(), { useAtom: St, useSetAtom: Qu, useAtomValue: x4, useStore: PV } = E4, sF = E4.Provider, pa = kp(), oF = ey({ "./locales/ar-SA.json": () => import("./layers.C6uf9i4D.js"), "./locales/az-AZ.json": () => import("./layers.Cqm1P0VP.js"), "./locales/bg-BG.json": () => import("./layers.BvkIjLBv.js"), "./locales/bn-BD.json": () => import("./layers.DrZ4R2sf.js"), "./locales/ca-ES.json": () => import("./layers.BvVu_tm9.js"), "./locales/cs-CZ.json": () => import("./layers.IBiEQPei.js"), "./locales/da-DK.json": () => import("./layers.Dza9tIiT.js"), "./locales/de-DE.json": () => import("./layers.CN7Nt4Qv.js"), "./locales/el-GR.json": () => import("./layers.Cpl4S5cb.js"), "./locales/en.json": () => import("./layers.vaVFPalT.js"), "./locales/es-ES.json": () => import("./layers.CqNeBn-h.js"), "./locales/eu-ES.json": () => import("./layers.ukB76BeP.js"), "./locales/fa-IR.json": () => import("./layers.CbRxlNVk.js"), "./locales/fi-FI.json": () => import("./layers.CKlEh2ph.js"), "./locales/fr-FR.json": () => import("./layers.CWcPMmYR.js"), "./locales/gl-ES.json": () => import("./layers.CxSYMI7C.js"), "./locales/he-IL.json": () => import("./layers.B86poEiX.js"), "./locales/hi-IN.json": () => import("./layers.DKM5lS-s.js"), "./locales/hu-HU.json": () => import("./layers.xv63P4WH.js"), "./locales/id-ID.json": () => import("./layers.q2xikkTk.js"), "./locales/it-IT.json": () => import("./layers.BsLagCWm.js"), "./locales/ja-JP.json": () => import("./layers.BOcegWRl.js"), "./locales/kaa.json": () => import("./layers.D6-JjCeY.js"), "./locales/kab-KAB.json": () => import("./layers.Do1Q1_ca.js"), "./locales/kk-KZ.json": () => import("./layers.DwhgM8bQ.js"), "./locales/km-KH.json": () => import("./layers.Cxj5_KIR.js"), "./locales/ko-KR.json": () => import("./layers.DWFgpkLn.js"), "./locales/ku-TR.json": () => import("./layers.B1yoIffp.js"), "./locales/lt-LT.json": () => import("./layers.DXxYy4VP.js"), "./locales/lv-LV.json": () => import("./layers.BzhVtNDe.js"), "./locales/mr-IN.json": () => import("./layers.CwQJpwvE.js"), "./locales/my-MM.json": () => import("./layers.B1AJaTd-.js"), "./locales/nb-NO.json": () => import("./layers.Dm1zvGhd.js"), "./locales/nl-NL.json": () => import("./layers.D4sN4GVZ.js"), "./locales/nn-NO.json": () => import("./layers.Oj1AH-Mx.js"), "./locales/oc-FR.json": () => import("./layers.CgvcqeQz.js"), "./locales/pa-IN.json": () => import("./layers.C3aqppsm.js"), "./locales/percentages.json": () => import("./layers.8PETqI7Q.js"), "./locales/pl-PL.json": () => import("./layers.AEWPBDqR.js"), "./locales/pt-BR.json": () => import("./layers.CGFJAlFx.js"), "./locales/pt-PT.json": () => import("./layers.MFRg8yf7.js"), "./locales/ro-RO.json": () => import("./layers.CSYaaida.js"), "./locales/ru-RU.json": () => import("./layers.BH9ItiJV.js"), "./locales/si-LK.json": () => import("./layers.D_en7wKa.js"), "./locales/sk-SK.json": () => import("./layers.CoKFS3u2.js"), "./locales/sl-SI.json": () => import("./layers.CV3cTP0n.js"), "./locales/sv-SE.json": () => import("./layers.DgMvUKvd.js"), "./locales/ta-IN.json": () => import("./layers.D32ac4vh.js"), "./locales/th-TH.json": () => import("./layers.D_2f8KII.js"), "./locales/tr-TR.json": () => import("./layers.D9tPVJKO.js"), "./locales/uk-UA.json": () => import("./layers.C1acoXJa.js"), "./locales/vi-VN.json": () => import("./layers.rJZkJZ5W.js"), "./locales/zh-CN.json": () => import("./layers.DIOPtBr5.js"), "./locales/zh-HK.json": () => import("./layers.C9uFxF_x.js"), "./locales/zh-TW.json": () => import("./layers.B7T5d2JK.js") }), dF = 85, dl = { code: "en", label: "English" }, eh = [dl, ...[{ code: "ar-SA", label: "العربية", rtl: !0 }, { code: "bg-BG", label: "Български" }, { code: "ca-ES", label: "Català" }, { code: "cs-CZ", label: "Česky" }, { code: "de-DE", label: "Deutsch" }, { code: "el-GR", label: "Ελληνικά" }, { code: "es-ES", label: "Español" }, { code: "eu-ES", label: "Euskara" }, { code: "fa-IR", label: "فارسی", rtl: !0 }, { code: "fi-FI", label: "Suomi" }, { code: "fr-FR", label: "Français" }, { code: "gl-ES", label: "Galego" }, { code: "he-IL", label: "עברית", rtl: !0 }, { code: "hi-IN", label: "हिन्दी" }, { code: "hu-HU", label: "Magyar" }, { code: "id-ID", label: "Bahasa Indonesia" }, { code: "it-IT", label: "Italiano" }, { code: "ja-JP", label: "日本語" }, { code: "kab-KAB", label: "Taqbaylit" }, { code: "kk-KZ", label: "Қазақ тілі" }, { code: "ko-KR", label: "한국어" }, { code: "ku-TR", label: "Kurdî" }, { code: "lt-LT", label: "Lietuvių" }, { code: "lv-LV", label: "Latviešu" }, { code: "my-MM", label: "Burmese" }, { code: "nb-NO", label: "Norsk bokmål" }, { code: "nl-NL", label: "Nederlands" }, { code: "nn-NO", label: "Norsk nynorsk" }, { code: "oc-FR", label: "Occitan" }, { code: "pa-IN", label: "ਪੰਜਾਬੀ" }, { code: "pl-PL", label: "Polski" }, { code: "pt-BR", label: "Português Brasileiro" }, { code: "pt-PT", label: "Português" }, { code: "ro-RO", label: "Română" }, { code: "ru-RU", label: "Русский" }, { code: "sk-SK", label: "Slovenčina" }, { code: "sv-SE", label: "Svenska" }, { code: "sl-SI", label: "Slovenščina" }, { code: "tr-TR", label: "Türkçe" }, { code: "uk-UA", label: "Українська" }, { code: "zh-CN", label: "简体中文" }, { code: "zh-TW", label: "繁體中文" }, { code: "vi-VN", label: "Tiếng Việt" }, { code: "mr-IN", label: "मराठी" }].filter((e) => nO[e.code] >= dF).sort((e, t) => e.label > t.label ? 1 : -1)], ou = "__test__";
13080
+ var E4 = m3(), { useAtom: St, useSetAtom: Qu, useAtomValue: x4, useStore: PV } = E4, sF = E4.Provider, pa = kp(), oF = ey({ "./locales/ar-SA.json": () => import("./layers.DLaPmPxU.js"), "./locales/az-AZ.json": () => import("./layers.Ba4IDUoA.js"), "./locales/bg-BG.json": () => import("./layers.BKa6QLc0.js"), "./locales/bn-BD.json": () => import("./layers.CJORJiBl.js"), "./locales/ca-ES.json": () => import("./layers.Cm5WH1rI.js"), "./locales/cs-CZ.json": () => import("./layers.B864NdoW.js"), "./locales/da-DK.json": () => import("./layers.CavtOq29.js"), "./locales/de-DE.json": () => import("./layers.DyOKRh92.js"), "./locales/el-GR.json": () => import("./layers.CQJ_fYu6.js"), "./locales/en.json": () => import("./layers.Ds-FL5yh.js"), "./locales/es-ES.json": () => import("./layers.DEEFaEr5.js"), "./locales/eu-ES.json": () => import("./layers.B3WvZBSV.js"), "./locales/fa-IR.json": () => import("./layers.DclkCnOV.js"), "./locales/fi-FI.json": () => import("./layers.8T0r3fsf.js"), "./locales/fr-FR.json": () => import("./layers.CGUxjm1S.js"), "./locales/gl-ES.json": () => import("./layers.CCI_NQSC.js"), "./locales/he-IL.json": () => import("./layers.DwLKjR05.js"), "./locales/hi-IN.json": () => import("./layers.CfCX5fqj.js"), "./locales/hu-HU.json": () => import("./layers.BROeMLEB.js"), "./locales/id-ID.json": () => import("./layers.BNQa_0LR.js"), "./locales/it-IT.json": () => import("./layers.xtcEE9BL.js"), "./locales/ja-JP.json": () => import("./layers.DuZIH_Er.js"), "./locales/kaa.json": () => import("./layers.DYiXn7hh.js"), "./locales/kab-KAB.json": () => import("./layers.ClWMdhin.js"), "./locales/kk-KZ.json": () => import("./layers.Bd6yYMWC.js"), "./locales/km-KH.json": () => import("./layers.DZtLq6Ye.js"), "./locales/ko-KR.json": () => import("./layers.Bh5N0H1n.js"), "./locales/ku-TR.json": () => import("./layers.BJgaB7_7.js"), "./locales/lt-LT.json": () => import("./layers.BuQqd2UB.js"), "./locales/lv-LV.json": () => import("./layers.B8yfd3vl.js"), "./locales/mr-IN.json": () => import("./layers.jKMtIWfg.js"), "./locales/my-MM.json": () => import("./layers.CgrKk06W.js"), "./locales/nb-NO.json": () => import("./layers.BAaFlP-4.js"), "./locales/nl-NL.json": () => import("./layers.BEZLsB_Z.js"), "./locales/nn-NO.json": () => import("./layers.DusJ2ojS.js"), "./locales/oc-FR.json": () => import("./layers.DN2eYMih.js"), "./locales/pa-IN.json": () => import("./layers.b87ArXXM.js"), "./locales/percentages.json": () => import("./layers.3hDA1b0k.js"), "./locales/pl-PL.json": () => import("./layers.DtTGrZyw.js"), "./locales/pt-BR.json": () => import("./layers.Y5I0Fxeh.js"), "./locales/pt-PT.json": () => import("./layers.D4OU-cCq.js"), "./locales/ro-RO.json": () => import("./layers.CIY2zomP.js"), "./locales/ru-RU.json": () => import("./layers.DyEyHZ80.js"), "./locales/si-LK.json": () => import("./layers.CKuYbNI8.js"), "./locales/sk-SK.json": () => import("./layers.U-JVOMc-.js"), "./locales/sl-SI.json": () => import("./layers.CTYuTTjO.js"), "./locales/sv-SE.json": () => import("./layers.DPOb85dK.js"), "./locales/ta-IN.json": () => import("./layers.BV6NI9TX.js"), "./locales/th-TH.json": () => import("./layers.CKyivm2c.js"), "./locales/tr-TR.json": () => import("./layers.D2Ez9Wlh.js"), "./locales/uk-UA.json": () => import("./layers.MaenQL5R.js"), "./locales/vi-VN.json": () => import("./layers.Bznt4nUs.js"), "./locales/zh-CN.json": () => import("./layers.YSgnWBGO.js"), "./locales/zh-HK.json": () => import("./layers.B2b0XeYH.js"), "./locales/zh-TW.json": () => import("./layers.C7toU4wi.js") }), dF = 85, dl = { code: "en", label: "English" }, eh = [dl, ...[{ code: "ar-SA", label: "العربية", rtl: !0 }, { code: "bg-BG", label: "Български" }, { code: "ca-ES", label: "Català" }, { code: "cs-CZ", label: "Česky" }, { code: "de-DE", label: "Deutsch" }, { code: "el-GR", label: "Ελληνικά" }, { code: "es-ES", label: "Español" }, { code: "eu-ES", label: "Euskara" }, { code: "fa-IR", label: "فارسی", rtl: !0 }, { code: "fi-FI", label: "Suomi" }, { code: "fr-FR", label: "Français" }, { code: "gl-ES", label: "Galego" }, { code: "he-IL", label: "עברית", rtl: !0 }, { code: "hi-IN", label: "हिन्दी" }, { code: "hu-HU", label: "Magyar" }, { code: "id-ID", label: "Bahasa Indonesia" }, { code: "it-IT", label: "Italiano" }, { code: "ja-JP", label: "日本語" }, { code: "kab-KAB", label: "Taqbaylit" }, { code: "kk-KZ", label: "Қазақ тілі" }, { code: "ko-KR", label: "한국어" }, { code: "ku-TR", label: "Kurdî" }, { code: "lt-LT", label: "Lietuvių" }, { code: "lv-LV", label: "Latviešu" }, { code: "my-MM", label: "Burmese" }, { code: "nb-NO", label: "Norsk bokmål" }, { code: "nl-NL", label: "Nederlands" }, { code: "nn-NO", label: "Norsk nynorsk" }, { code: "oc-FR", label: "Occitan" }, { code: "pa-IN", label: "ਪੰਜਾਬੀ" }, { code: "pl-PL", label: "Polski" }, { code: "pt-BR", label: "Português Brasileiro" }, { code: "pt-PT", label: "Português" }, { code: "ro-RO", label: "Română" }, { code: "ru-RU", label: "Русский" }, { code: "sk-SK", label: "Slovenčina" }, { code: "sv-SE", label: "Svenska" }, { code: "sl-SI", label: "Slovenščina" }, { code: "tr-TR", label: "Türkçe" }, { code: "uk-UA", label: "Українська" }, { code: "zh-CN", label: "简体中文" }, { code: "zh-TW", label: "繁體中文" }, { code: "vi-VN", label: "Tiếng Việt" }, { code: "mr-IN", label: "मराठी" }].filter((e) => nO[e.code] >= dF).sort((e, t) => e.label > t.label ? 1 : -1)], ou = "__test__";
13081
13081
  xe.DEV && eh.unshift({ code: ou, label: "test language" }, { code: `${ou}.rtl`, label: "‪test language (rtl)‬", rtl: !0 });
13082
13082
  var Nl = dl, gc = {}, S4 = async (e) => {
13083
13083
  if (Nl = e, document.documentElement.dir = Nl.rtl ? "rtl" : "ltr", document.documentElement.lang = Nl.code, e.code.startsWith(ou)) gc = {};
@@ -14135,7 +14135,7 @@ var oB = Z({ name: "toggleHandTool", label: "toolBar.hand", paletteName: "Toggle
14135
14135
  let o = w7(t, n, a, { exportBackground: i, viewBackgroundColor: l, exportPadding: r, exportingFrame: c });
14136
14136
  if (e === "png") {
14137
14137
  let u = Fo(o);
14138
- return n.exportEmbedScene && (u = u.then((h) => import("./layers.DnXRkvjC.js").then(({ encodePngMetadata: f }) => f({ blob: h, metadata: id(t, n, a, "local") })))), Qc(u, { description: "Export to PNG", name: s, extension: n.exportEmbedScene ? "excalidraw.png" : "png", mimeTypes: [Vl.png], fileHandle: d });
14138
+ return n.exportEmbedScene && (u = u.then((h) => import("./layers.D-fpEkux.js").then(({ encodePngMetadata: f }) => f({ blob: h, metadata: id(t, n, a, "local") })))), Qc(u, { description: "Export to PNG", name: s, extension: n.exportEmbedScene ? "excalidraw.png" : "png", mimeTypes: [Vl.png], fileHandle: d });
14139
14139
  } else if (e === "clipboard") try {
14140
14140
  let u = Fo(o);
14141
14141
  await _7(u);
@@ -16520,7 +16520,7 @@ TTD mermaid definition render errror: ${T.message}`, "color: yellow"), rt("ai",
16520
16520
  }
16521
16521
  }, g = le(m);
16522
16522
  g.current = m;
16523
- let [b, v] = ue({ loaded: !1, api: import("./layers.CGx5Pud_.js").then((k) => k.ap) });
16523
+ let [b, v] = ue({ loaded: !1, api: import("./layers.BAIbvRIu.js").then((k) => k.ap) });
16524
16524
  ne(() => {
16525
16525
  (async () => (await b.api, v((k) => ({ ...k, loaded: !0 }))))();
16526
16526
  }, [b.api]);
@@ -18054,7 +18054,7 @@ var ka = () => _n(Cv), fd = () => _n(Iv), Ot = () => _n(Jp), ei = () => _n(Qp),
18054
18054
  this.addElementsFromPasteOrLibrary({ elements: S, files: v.files || null, position: "cursor", retainSeed: u });
18055
18055
  } else if (v.text) {
18056
18056
  if (v.text && tV(v.text)) {
18057
- let E = await import("./layers.CGx5Pud_.js").then((C) => C.ap);
18057
+ let E = await import("./layers.BAIbvRIu.js").then((C) => C.ap);
18058
18058
  try {
18059
18059
  let { elements: C, files: I } = await E.parseMermaidToExcalidraw(v.text), T = mu(C, { regenerateIds: !0 });
18060
18060
  this.addElementsFromPasteOrLibrary({ elements: T, files: I, position: "cursor" });
@@ -1,4 +1,4 @@
1
- import "./layers.C81SvY8r.js";
1
+ import "./layers.BxmXw7Yl.js";
2
2
  var u = { paste: "Dán", pasteAsPlaintext: "Dán kiểu văn bản thuần", pasteCharts: "Dán biểu đồ", selectAll: "Chọn tất cả", multiSelect: "Thêm mới vào Select", moveCanvas: "Di chuyển canvas", cut: "Cắt", copy: "Sao chép", copyAsPng: "Sao chép vào bộ nhớ tạm dưới dạng PNG", copyAsSvg: "Sao chép vào bộ nhớ tạm dưới dạng SVG", copyText: "Sao chép vào bộ nhớ tạm dưới dạng chữ", copySource: "", convertToCode: "", bringForward: "Đưa ra trước", sendToBack: "Hạ xuống dưới", bringToFront: "Đưa ra đầu tiên", sendBackward: "Hạ xuống cuối", delete: "Xóa", copyStyles: "Sao chép định dạng", pasteStyles: "Dán định dạng", stroke: "Nét", background: "Nền", fill: "Fill", strokeWidth: "Độ dày nét", strokeStyle: "Kiểu nét", strokeStyle_solid: "Khối", strokeStyle_dashed: "Gạch ngang", strokeStyle_dotted: "Nhiều chấm", sloppiness: "Hoa văn nét", opacity: "Độ trong suốt", textAlign: "Căn chỉnh văn bản", edges: "Cạnh", sharp: "Nhọn", round: "Tròn", arrowheads: "Đầu mũi tên", arrowhead_none: "Không", arrowhead_arrow: "Mũi tên", arrowhead_bar: "Thanh", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Tam giác", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Cỡ chữ", fontFamily: "Phông chữ", addWatermark: 'Làm với Excalidraw"', handDrawn: "Vẽ tay", normal: "Bình thường", code: "Mã", small: "Nhỏ", medium: "Vừa", large: "Lớn", veryLarge: "Rất lớn", solid: "Đặc", hachure: "Nét gạch gạch", zigzag: "Zigzag", crossHatch: "Nét gạch chéo", thin: "Mỏng", bold: "In đậm", left: "Trái", center: "Giữa", right: "Phải", extraBold: "Nét siêu đậm", architect: "Kiến trúc sư", artist: "Nghệ sỹ", cartoonist: "Hoạt hình", fileTitle: "Tên tập tin", colorPicker: "Chọn màu", canvasColors: "Đã dùng trên canvas", canvasBackground: "Nền canvas", drawingCanvas: "Canvas vẽ", layers: "Lớp", actions: "Chức năng", language: "Ngôn ngữ", liveCollaboration: "Hợp tác trực tiếp...", duplicateSelection: "Tạo bản sao", untitled: "Không có tiêu đề", name: "Tên", yourName: "Tên của bạn", madeWithExcalidraw: "Làm với Excalidraw", group: "Gộp nhóm lại lựa chọn", ungroup: "Tách nhóm lựa chọn", collaborators: "Cộng tác viên", showGrid: "Hiển thị lưới", addToLibrary: "Thêm vào thư viện", removeFromLibrary: "Xóa khỏi thư viện", libraryLoadingMessage: "Đang tải thư viện…", libraries: "Xem thư viện", loadingScene: "Đang tải về…", align: "Căn chỉnh", alignTop: "Căn trên", alignBottom: "Căn dưới", alignLeft: "Canh trái", alignRight: "Canh phải", centerVertically: "Giữa theo chiều dọc", centerHorizontally: "Giữa theo chiều ngang", distributeHorizontally: "Phân bố theo chiều ngang", distributeVertically: "Phân bố theo chiều dọc", flipHorizontal: "Lật ngang", flipVertical: "Lật dọc", viewMode: "Chế độ xem", share: "Chia sẻ", showStroke: "Hiển thị chọn màu", showBackground: "Hiện thị chọn màu nền", toggleTheme: "", personalLib: "Thư viện cá nhân", excalidrawLib: "Thư viện Excalidraw", decreaseFontSize: "Giảm cỡ chữ", increaseFontSize: "Tăng cỡ chữ", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "Sửa liên kết", editEmbed: "", create: "Tạo liên kết", createEmbed: "", label: "Liên kết", labelEmbed: "", empty: "" }, lineEditor: { edit: "Điều chỉnh nét", exit: "Thoát chỉnh nét" }, elementLock: { lock: "Khoá", unlock: "Mở khoá", lockAll: "Khóa tất cả", unlockAll: "Mở khóa tất cả" }, statusPublished: "Đã đăng tải", sidebarLock: "Giữ thanh bên luôn mở", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, E = { noItems: "Chưa có món nào...", hint_emptyLibrary: "Chọn một món trên canvas để thêm nó vào đây, hoặc cài đặt thư viện từ kho lưu trữ công cộng, ở bên dưới.", hint_emptyPrivateLibrary: "Chọn một món trên canvas để thêm nó vào đây." }, n = { clearReset: "Reset canvas", exportJSON: "Xuất ra tập tin", exportImage: "Xuất file ảnh...", export: "Lưu vào...", copyToClipboard: "Sao chép vào bộ nhớ tạm", save: "Lưu vào tập tin hiện tại", saveAs: "Lưu thành", load: "Mở", getShareableLink: "Tạo liên kết để chia sẻ", close: "Đóng", selectLanguage: "Chọn ngôn ngữ", scrollBackToContent: "Cuộn về nội dung chính", zoomIn: "Phóng to", zoomOut: "Thu nhỏ", resetZoom: "Đặt lại thu phóng", menu: "Bảng chọn", done: "Xong", edit: "Chỉnh sửa", undo: "Hoàn tác", redo: "Làm lại", resetLibrary: "", createNewRoom: "Tạo phòng mới", fullScreen: "Toàn màn hình", darkMode: "Chế độ tối", lightMode: "Chế độ sáng", zenMode: "Chế độ zen", objectsSnapMode: "", exitZenMode: "Thoát chể độ zen", cancel: "Hủy", clear: "Làm sạch", remove: "Xóa", embed: "", publishLibrary: "Đăng tải", submit: "Gửi", confirm: "Xác nhận", embeddableInteractionButton: "" }, e = { clearReset: "Điều này sẽ dọn hết canvas. Bạn có chắc không?", couldNotCreateShareableLink: "Không thể tạo đường dẫn chia sẻ.", couldNotCreateShareableLinkTooBig: "Không thể tạo đường dẫn chia sẻ: bản vẽ quá lớn", couldNotLoadInvalidFile: "Không thể load tập tin không hợp lệ", importBackendFailed: "", cannotExportEmptyCanvas: "Không thể xuất canvas trống.", couldNotCopyToClipboard: "", decryptFailed: "Không thể giải mã dữ liệu.", uploadedSecurly: "", loadSceneOverridePrompt: "", collabStopOverridePrompt: `Dừng phiên sẽ ghi đè lên bản vẽ được lưu trữ cục bộ trước đó của bạn. Bạn có chắc không?
3
3
 
4
4
  (Nếu bạn muốn giữ bản vẽ cục bộ của mình, chỉ cần đóng tab trình duyệt.)`, errorAddingToLibrary: "Không thể thêm món vào thư viện", errorRemovingFromLibrary: "Không thể xoá món khỏi thư viện", confirmAddLibrary: "Hình {{numShapes}} sẽ được thêm vào thư viện. Bạn chắc chứ?", imageDoesNotContainScene: "Hình ảnh này dường như không chứa bất kỳ dữ liệu cảnh nào. Bạn đã bật tính năng nhúng cảnh khi xuất chưa?", cannotRestoreFromImage: "", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "Xoá {{count}} món từ thư viện?", invalidEncryptionKey: "Khóa mã hóa phải có 22 ký tự. Hợp tác trực tiếp bị vô hiệu hóa.", collabOfflineWarning: `Không có kết nối internet.
@@ -1,5 +1,5 @@
1
- import { n as vt, o as Ct, s as Ot, a as Pt, b as Gt, c as St, g as C, l as B, d as At, u as It, y as Nt, q as Ht, j as D, z as Bt } from "./layers.CGx5Pud_.js";
2
- import "./layers.C81SvY8r.js";
1
+ import { n as vt, o as Ct, s as Ot, a as Pt, b as Gt, c as St, g as C, l as B, d as At, u as It, y as Nt, q as Ht, j as D, z as Bt } from "./layers.BAIbvRIu.js";
2
+ import "./layers.BxmXw7Yl.js";
3
3
  import "lodash-es/memoize.js";
4
4
  import "lodash-es/merge.js";
5
5
  import "lodash-es/isEmpty.js";
@@ -1 +1 @@
1
- "use strict";const a=require("./layers.s_QJ2fp5.js"),c=require("./layers.B48wWDWF.js"),o=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},l=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};o(s,e).lower()},d=(s,t)=>{const e=t.text.replace(c.lineBreakRegex," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},x=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",i)},g=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",`#${i}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),y=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});exports.drawBackgroundRect=l;exports.drawEmbeddedImage=g;exports.drawImage=x;exports.drawRect=o;exports.drawText=d;exports.getNoteRect=h;exports.getTextObj=y;
1
+ "use strict";const a=require("./layers.Cv8gm6DJ.js"),c=require("./layers.BhuNgnUx.js"),o=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},l=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};o(s,e).lower()},d=(s,t)=>{const e=t.text.replace(c.lineBreakRegex," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},x=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",i)},g=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const i=a.distExports.sanitizeUrl(r);n.attr("xlink:href",`#${i}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),y=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});exports.drawBackgroundRect=l;exports.drawEmbeddedImage=g;exports.drawImage=x;exports.drawRect=o;exports.drawText=d;exports.getNoteRect=h;exports.getTextObj=y;
@@ -1,9 +1,9 @@
1
- import { a2 as gt, a3 as ft, a4 as mt, g as xt, l as E, d as G, Y as _t, a5 as bt, q as kt } from "./layers.CGx5Pud_.js";
2
- import "./layers.C81SvY8r.js";
1
+ import { a2 as gt, a3 as ft, a4 as mt, g as xt, l as E, d as G, Y as _t, a5 as bt, q as kt } from "./layers.BAIbvRIu.js";
2
+ import "./layers.BxmXw7Yl.js";
3
3
  import "lodash-es/memoize.js";
4
4
  import "lodash-es/merge.js";
5
5
  import "lodash-es/isEmpty.js";
6
- import { a as D } from "./layers.BwSCCl9n.js";
6
+ import { a as D } from "./layers.BwCaG3xq.js";
7
7
  var K = (function() {
8
8
  var n = function(f, i, r, c) {
9
9
  for (r = r || {}, c = f.length; c--; r[f[c]] = i)
@@ -1,4 +1,4 @@
1
- import "./layers.C81SvY8r.js";
1
+ import "./layers.BxmXw7Yl.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: `沒有可用的網路連線。