@layers-app/editor 0.5.5-optimization → 0.5.6-comment.1

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 (256) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.d.ts +38 -157
  3. package/dist/index.js +10 -12
  4. package/dist/layers.0K7nH1On.js +904 -0
  5. package/dist/layers.1gm16E7h.js +37 -0
  6. package/dist/layers.1hvUGbY-.js +1283 -0
  7. package/dist/layers.4IbajZJw.js +8 -0
  8. package/dist/layers.52famHy6.js +1 -0
  9. package/dist/layers.55ZV6uDK.js +9 -0
  10. package/dist/layers.5tOkPx7s.js +36 -0
  11. package/dist/layers.7JqFgE4-.js +15 -0
  12. package/dist/layers.82WQNqep.js +10 -0
  13. package/dist/layers.8bT9YhoW.js +40 -0
  14. package/dist/layers.9pNaFvaX.js +1 -0
  15. package/dist/layers.A9tLMZ8-.js +40 -0
  16. package/dist/layers.B0ZshcMy.js +1 -0
  17. package/dist/layers.B0nQD_wz.js +7 -0
  18. package/dist/layers.B19hGmey.js +1 -0
  19. package/dist/layers.B1FmrtMP.js +39 -0
  20. package/dist/layers.B1HzFISh.js +1088 -0
  21. package/dist/layers.B1PoF4L1.js +70 -0
  22. package/dist/layers.B3D4g2HH.js +1 -0
  23. package/dist/layers.B5liBCLx.js +39 -0
  24. package/dist/layers.B6IBrXtu.js +5 -0
  25. package/dist/layers.B7K7JjK6.js +1510 -0
  26. package/dist/layers.B7Yn0OVk.js +96 -0
  27. package/dist/layers.B7lNLCab.js +39 -0
  28. package/dist/layers.B8PRHxCR.js +320 -0
  29. package/dist/layers.B91u9JPQ.js +40 -0
  30. package/dist/layers.BABSzoq-.js +42 -0
  31. package/dist/layers.BAo6PQrP.js +1 -0
  32. package/dist/layers.BAtv1CM7.js +1 -0
  33. package/dist/layers.BBD_K_ab.js +1 -0
  34. package/dist/layers.BC2IC9re.js +14 -0
  35. package/dist/layers.BChuXthZ.js +39 -0
  36. package/dist/layers.BG3lYrA2.js +803 -0
  37. package/dist/layers.BGu96O_x.js +116 -0
  38. package/dist/layers.BHqeqsf3.js +1265 -0
  39. package/dist/layers.BIeVwYKL.js +1 -0
  40. package/dist/layers.BJDrjORS.js +244 -0
  41. package/dist/layers.BL4sjw8S.js +38 -0
  42. package/dist/layers.BLEaVcCS.js +9 -0
  43. package/dist/layers.BLICHEgt.js +38 -0
  44. package/dist/layers.BLd2spTm.js +1 -0
  45. package/dist/layers.BLz21b5-.js +10 -0
  46. package/dist/layers.BODsfVZd.js +11 -0
  47. package/dist/layers.BPSqP4Y-.js +791 -0
  48. package/dist/layers.BSFjYVJ-.js +425 -0
  49. package/dist/layers.BSTBZrFn.js +1 -0
  50. package/dist/layers.BUwedZAG.js +40 -0
  51. package/dist/layers.BWxww11_.js +11 -0
  52. package/dist/layers.BXbWKt4k.js +6 -0
  53. package/dist/layers.BYx79WgM.js +7 -0
  54. package/dist/layers.BYxiLVKM.js +8 -0
  55. package/dist/layers.BaFLCLv5.js +1126 -0
  56. package/dist/layers.BbCfEXyj.js +55 -0
  57. package/dist/layers.BckXM8uh.js +41 -0
  58. package/dist/layers.Bdk5wm_r.js +5 -0
  59. package/dist/layers.Bf-y1I96.js +41 -0
  60. package/dist/layers.BhPd38Q_.js +7 -0
  61. package/dist/layers.Bihyr17C.js +769 -0
  62. package/dist/layers.Bj2_tuLO.js +65 -0
  63. package/dist/layers.BjgjTO8U.js +257 -0
  64. package/dist/layers.Bl7UAGKH.js +196 -0
  65. package/dist/layers.BlRrLmIh.js +1 -0
  66. package/dist/layers.BlmZbkh-.js +11 -0
  67. package/dist/layers.BpilXLfW.js +6 -0
  68. package/dist/layers.Bs1T_aIc.js +1 -0
  69. package/dist/layers.BsG1LFwT.js +40 -0
  70. package/dist/layers.Bv3xQjwp.js +84 -0
  71. package/dist/layers.Bvv7vdux.js +9 -0
  72. package/dist/layers.BzYjlGyp.js +8 -0
  73. package/dist/layers.C01ZNdhS.js +41 -0
  74. package/dist/layers.C0Lgw_Sx.js +11688 -0
  75. package/dist/layers.C3CZhlGl.js +8 -0
  76. package/dist/layers.C3tRluQ4.js +5 -0
  77. package/dist/layers.C4n5AHBC.js +11 -0
  78. package/dist/layers.C6I-Rtda.js +1580 -0
  79. package/dist/layers.C7hR0KBX.js +39 -0
  80. package/dist/layers.C8TCYhyA.js +6 -0
  81. package/dist/layers.C8_lu5UH.js +23 -0
  82. package/dist/layers.CANR02Nl.js +160 -0
  83. package/dist/layers.CApJqtTy.js +6 -0
  84. package/dist/layers.CDo0xU9O.js +2235 -0
  85. package/dist/layers.CE5aKrYe.js +40 -0
  86. package/dist/layers.CEbqhrCP.js +32 -0
  87. package/dist/layers.CGyLNMmf.js +39 -0
  88. package/dist/layers.CHZsXQcr.js +1 -0
  89. package/dist/layers.CHpeyQBr.js +7 -0
  90. package/dist/layers.CJp4lFvS.js +1 -0
  91. package/dist/layers.CKbii_Fm.js +52 -0
  92. package/dist/layers.CL2c0de9.js +4 -0
  93. package/dist/layers.CMumGCgO.js +1089 -0
  94. package/dist/layers.CQBi5l87.js +2 -0
  95. package/dist/layers.CRwctr1A.js +39 -0
  96. package/dist/layers.CSsKJLBG.js +9 -0
  97. package/dist/layers.CTBkLJZK.js +44 -0
  98. package/dist/layers.CVZE9_ua.js +41 -0
  99. package/dist/layers.CZ4DsPko.js +2 -0
  100. package/dist/layers.CZL9fnL3.js +2 -0
  101. package/dist/layers.C_Hdlxhz.js +423 -0
  102. package/dist/layers.C_IvrzZ3.js +7 -0
  103. package/dist/layers.C_TXB-Fm.js +6 -0
  104. package/dist/layers.C_n5zuE8.js +19 -0
  105. package/dist/layers.C_yEZmO3.js +1 -0
  106. package/dist/layers.Ca26eURR.js +8 -0
  107. package/dist/layers.CaBWPEUi.js +8 -0
  108. package/dist/layers.Cbip3kA9.js +61 -0
  109. package/dist/layers.CeUJQ0zl.js +6 -0
  110. package/dist/layers.CedEPfAP.js +1 -0
  111. package/dist/layers.CfLOzJzF.js +42 -0
  112. package/dist/layers.ChhuzqF0.js +230 -0
  113. package/dist/layers.CiXhWjbj.js +7 -0
  114. package/dist/layers.Cin_kImi.js +10 -0
  115. package/dist/layers.ClntPIOA.js +1 -0
  116. package/dist/layers.CmsJlpTQ.js +32 -0
  117. package/dist/layers.CnE-E-JL.js +1 -0
  118. package/dist/layers.CovEFG6q.js +7 -0
  119. package/dist/layers.CpP3DoN0.js +1359 -0
  120. package/dist/layers.Cq-aeNdr.js +268 -0
  121. package/dist/layers.CqVTtuYm.js +6 -0
  122. package/dist/layers.Ctfcx5MV.js +9 -0
  123. package/dist/layers.Cvu1R8i3.js +7 -0
  124. package/dist/layers.CvzgfrSj.js +1 -0
  125. package/dist/layers.Cy1JjAkL.js +10 -0
  126. package/dist/layers.Cym0ST1w.js +40 -0
  127. package/dist/layers.Cyzu9PKQ.js +1 -0
  128. package/dist/layers.CzFNEdQU.js +40 -0
  129. package/dist/layers.D05Sekr8.js +202 -0
  130. package/dist/layers.D0zn4_Mx.js +1 -0
  131. package/dist/layers.D13onkyK.js +1 -0
  132. package/dist/layers.D1NayJCn.js +931 -0
  133. package/dist/layers.D3DljblW.js +10 -0
  134. package/dist/layers.D4T8fTcj.js +1223 -0
  135. package/dist/layers.D6B4leTb.js +39 -0
  136. package/dist/layers.D6c0MkVX.js +35 -0
  137. package/dist/layers.D7jGxypv.js +8 -0
  138. package/dist/layers.D7vdNfrC.js +13 -0
  139. package/dist/layers.D8vmJCHk.js +11 -0
  140. package/dist/layers.DBXEiJMV.js +118 -0
  141. package/dist/layers.DCQPx7AD.js +42 -0
  142. package/dist/layers.DCdKAtNZ.js +40 -0
  143. package/dist/layers.DCsYvkeP.js +1 -0
  144. package/dist/layers.DE_Isi6B.js +8 -0
  145. package/dist/layers.DEcb22xR.js +304 -0
  146. package/dist/layers.DEjUqhpX.js +295 -0
  147. package/dist/layers.DFzPxfun.js +2966 -0
  148. package/dist/layers.DG2P8Gj3.js +10 -0
  149. package/dist/layers.DGYwM8PH.js +960 -0
  150. package/dist/layers.DGhfVanc.js +5 -0
  151. package/dist/layers.DHOiG985.js +42 -0
  152. package/dist/layers.DIlegck4.js +42 -0
  153. package/dist/layers.DIszQQxV.js +35 -0
  154. package/dist/layers.DKWQfzy-.js +8 -0
  155. package/dist/layers.DKZfnO7U.js +40 -0
  156. package/dist/layers.DL4oFlMV.js +802 -0
  157. package/dist/layers.DLWsJzru.js +84 -0
  158. package/dist/layers.DLs01ULg.js +39 -0
  159. package/dist/layers.DLwuMfdd.js +84 -0
  160. package/dist/layers.DMkBISW1.js +1 -0
  161. package/dist/layers.DN9HoVxI.js +18 -0
  162. package/dist/layers.DOrgOHBr.js +1 -0
  163. package/dist/layers.DU65xSYF.js +1619 -0
  164. package/dist/layers.DWnxgRuk.js +36 -0
  165. package/dist/layers.DXgo1Drt.js +35 -0
  166. package/dist/layers.DY1I07VU.js +4 -0
  167. package/dist/layers.DZHl6axY.js +10 -0
  168. package/dist/layers.Da-ciHQm.js +793 -0
  169. package/dist/layers.DbaKVP5e.js +1 -0
  170. package/dist/layers.DcTMCznr.js +10 -0
  171. package/dist/layers.De1n0W8r.js +1034 -0
  172. package/dist/layers.DgMWKPPz.js +33 -0
  173. package/dist/layers.DhAFGerI.js +6 -0
  174. package/dist/layers.Dj7Sb4gM.js +33 -0
  175. package/dist/layers.DjTeOgMd.js +207 -0
  176. package/dist/layers.DjUOC4st.js +16 -0
  177. package/dist/layers.DmkPWSQY.js +1 -0
  178. package/dist/layers.Dt8URlt7.js +46051 -0
  179. package/dist/layers.DthXXXVJ.js +7 -0
  180. package/dist/layers.DuM1ysX6.js +36 -0
  181. package/dist/layers.DwG2v97l.js +139 -0
  182. package/dist/layers.Dwk2gG9L.js +9166 -0
  183. package/dist/layers.DxA6ocdw.js +70 -0
  184. package/dist/layers.Dxon_SpH.js +437 -0
  185. package/dist/layers.Dxv8e90o.js +34 -0
  186. package/dist/layers.Dy1naDTQ.js +14 -0
  187. package/dist/layers.Dy9Ae6ye.js +32 -0
  188. package/dist/layers.DyBo3wCO.js +9 -0
  189. package/dist/layers.Er0Yxkpp.js +10 -0
  190. package/dist/layers.Fv-Yf9nu.js +139 -0
  191. package/dist/layers.H8_UdVel.js +186 -0
  192. package/dist/layers.IeyYHv3-.js +1 -0
  193. package/dist/layers.JWCLFILJ.js +1 -0
  194. package/dist/layers.Kk33fmYB.js +1 -0
  195. package/dist/layers.NMvDHXOi.js +3 -0
  196. package/dist/layers.NisZX3oz.js +9 -0
  197. package/dist/layers.OJRwPbTb.js +51 -0
  198. package/dist/layers.PxLIa0D9.js +9 -0
  199. package/dist/layers.SDGJaT4i.js +8 -0
  200. package/dist/layers.TB0kcmT1.js +9 -0
  201. package/dist/layers.TRk5qM88.js +4 -0
  202. package/dist/layers.VHr4X3Bl.js +36 -0
  203. package/dist/layers.W2b5CJ53.js +41 -0
  204. package/dist/layers.YmJMGuL6.js +501 -0
  205. package/dist/layers.YuQYdfgw.js +1 -0
  206. package/dist/layers._aTgLW5P.js +1 -0
  207. package/dist/layers._w72bWjP.js +1 -0
  208. package/dist/layers._z96be1r.js +373 -0
  209. package/dist/layers.aNq3Aoz_.js +1 -0
  210. package/dist/layers.b0h5ZBmD.js +61 -0
  211. package/dist/layers.bxln61RT.js +1 -0
  212. package/dist/layers.cFjqiC8n.js +4 -0
  213. package/dist/layers.cfvpgx5k.js +220 -0
  214. package/dist/layers.csejPfBA.js +1 -0
  215. package/dist/layers.dQr3-Z-a.js +32 -0
  216. package/dist/layers.fCvSPAGO.js +282 -0
  217. package/dist/layers.fresRNdv.js +37 -0
  218. package/dist/layers.hweLqW3I.js +261 -0
  219. package/dist/layers.il5QgiwT.js +41 -0
  220. package/dist/layers.jAiLqRNH.js +38 -0
  221. package/dist/layers.jOg9HQjO.js +32 -0
  222. package/dist/layers.kldsO2Gk.js +41 -0
  223. package/dist/layers.lCpg7dOn.js +21 -0
  224. package/dist/layers.ng4ZQgam.js +10 -0
  225. package/dist/layers.oUgqEjka.js +21938 -0
  226. package/dist/layers.od048jSt.js +21763 -0
  227. package/dist/layers.qfBgI37V.js +48146 -0
  228. package/dist/layers.qpJTJjGB.js +5 -0
  229. package/dist/layers.r5_AAPug.js +1 -0
  230. package/dist/layers.rbM030Pg.js +37 -0
  231. package/dist/layers.rqs7i__i.js +59 -0
  232. package/dist/layers.sVUulQAX.js +41 -0
  233. package/dist/layers.tvXlPGuZ.js +32 -0
  234. package/dist/layers.ujoBmjI9.js +9 -0
  235. package/dist/layers.vNkQnMGw.js +1 -0
  236. package/dist/layers.vai0zC-y.js +2479 -0
  237. package/dist/layers.xAfqQ9El.js +122 -0
  238. package/dist/layers.xpxtBlob.js +37 -0
  239. package/dist/layers.zWXxVCvZ.js +8 -0
  240. package/package.json +18 -76
  241. package/dist/layers.B10sB-Vy.js +0 -1
  242. package/dist/layers.BDsvvINb.js +0 -6774
  243. package/dist/layers.BFJ7oQiY.js +0 -7723
  244. package/dist/layers.BwyONivc.js +0 -864
  245. package/dist/layers.C2lacXcg.js +0 -2511
  246. package/dist/layers.C69TrYD7.js +0 -7
  247. package/dist/layers.CEMW9z_P.js +0 -4
  248. package/dist/layers.Cwao1pOZ.js +0 -6
  249. package/dist/layers.CzNz0Zya.js +0 -1
  250. package/dist/layers.D0Z-zLAV.js +0 -530
  251. package/dist/layers.DNCgFYS7.js +0 -27
  252. package/dist/layers.EKDSoJm1.js +0 -2227
  253. package/dist/layers.QjAkD17S.js +0 -3677
  254. package/dist/layers.ahDFHQXD.js +0 -341
  255. package/dist/layers.eLiGm-eZ.js +0 -3
  256. package/dist/layers.hgliNTDV.js +0 -2
@@ -0,0 +1,39 @@
1
+ import "./layers.od048jSt.js";
2
+ var e = { paste: "Senṭeḍ", pasteAsPlaintext: "", pasteCharts: "Senṭeḍ udlifen", selectAll: "Fren akk", multiSelect: "Rnu aferdis ɣer tefrayt", moveCanvas: "Smutti taɣzut n usuneɣ", cut: "Gzem", copy: "Nɣel", copyAsPng: "Nɣel ɣer tecfawit am PNG", copyAsSvg: "Nɣel ɣer tecfawit am SVG", copyText: "Nɣel ɣer tecfawit am uḍris", copySource: "", convertToCode: "", bringForward: "Awi ɣer sdat", sendToBack: "Awi s agilal", bringToFront: "Err ɣer deffir", sendBackward: "Awi ɣer deffir", delete: "Kkes", copyStyles: "Nɣel iɣunab", pasteStyles: "Senṭeḍ iɣunab", stroke: "Azizdew", background: "Agilal", fill: "Taččart", strokeWidth: "Tehri n yizirig", strokeStyle: "Aɣanib n tizirig", strokeStyle_solid: "Aččuran", strokeStyle_dashed: "S tjerriḍin", strokeStyle_dotted: "S tenqiḍin", sloppiness: "Astehzi", opacity: "Tiḍullest", textAlign: "Areyyec n uḍris", edges: "Leryuf", sharp: "Yemsed", round: "Imdewer", arrowheads: "Ixfawen n tenccabt", arrowhead_none: "Ulac", arrowhead_arrow: "Taneccabt", arrowhead_bar: "Afeggag", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Akerdis", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Tiddi n tsefsit", fontFamily: "Tawacult n tsefsiyin", addWatermark: 'Seddu "Yettwaxdem s Excalidraw"', handDrawn: "Asuneɣ s ufus", normal: "Amagnu", code: "Tangalt", small: "Meẓẓi", medium: "Alemmas", large: "Ameqran", veryLarge: "Meqqer aṭas", solid: "Aččuran", hachure: "Azerreg", zigzag: "", crossHatch: "Azerreg anmidag", thin: "Arqaq", bold: "Azuran", left: "Azelmaḍ", center: "Talemmast", right: "Ayfus", extraBold: "Azuran aṭas", architect: "Amasdag", artist: "Anaẓur", cartoonist: "Amefɣul", fileTitle: "Isem n ufaylu", colorPicker: "Amafran n yini", canvasColors: "Yettwaseqdec di teɣzut n usuneɣ", canvasBackground: "Agilal n teɣzut n usuneɣ", drawingCanvas: "Taɣzut n usuneɣ", layers: "Tissiyin", actions: "Tigawin", language: "Tutlayt", liveCollaboration: "Amɛiwen s srid...", duplicateSelection: "Sisleg", untitled: "War azwel", name: "Isem", yourName: "Isem-ik (im)", madeWithExcalidraw: "Yettwaxdem s Excalidraw", group: "Segrew tafrayt", ungroup: "Kkess asegrew i tefrayt", collaborators: "Imɛiwnen", showGrid: "Beqqeḍ aferrug", addToLibrary: "Rnu ɣer temkarḍit", removeFromLibrary: "Kkes si temkarḍit", libraryLoadingMessage: "Asali n temkarḍit…", libraries: "Snirem timkarḍiyin", loadingScene: "Asali n usayes…", align: "Reyyec", alignTop: "Areyyec uksawen", alignBottom: "Areyyec ukessar", alignLeft: "Reyyec s azelmaḍ", alignRight: "Areyyec s ayfus", centerVertically: "Di tlemmast s ibeddi", centerHorizontally: "Di tlemmast s uglawi", distributeHorizontally: "Freq s uglawi", distributeVertically: "Freq s yibeddi", flipHorizontal: "Tuttya taglawant", flipVertical: "Tuttya tubdidt", viewMode: "Askar n tmuɣli", share: "Bḍu", showStroke: "Beqqeḍ amelqaḍ n yini n yizirig", showBackground: "Beqqeḍ amelqaḍ n yini n ugilal", toggleTheme: "Snifel asentel", personalLib: "Tamkarḍit tudmawant", excalidrawLib: "Tamkarḍit n Excalidraw", decreaseFontSize: "Senqes tiddi n tsefsit", increaseFontSize: "Sali tiddi n tsefsit", unbindText: "Serreḥ iweḍris", bindText: "Arez aḍris s anagbar", createContainerFromText: "", link: { edit: "Ẓreg aseɣwen", editEmbed: "", create: "Snulfu-d aseɣwen", createEmbed: "", label: "Aseɣwen", labelEmbed: "", empty: "" }, lineEditor: { edit: "Ẓreg izirig", exit: "Ffeɣ seg umaẓrag n yizirig" }, elementLock: { lock: "Sekkeṛ", unlock: "Serreḥ", lockAll: "Sekkeṛ akk", unlockAll: "Serreḥ akk" }, statusPublished: "Yeffeɣ-d", sidebarLock: "Eǧǧ afeggag n yidis yeldi", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, a = { noItems: "Ulac iferdisen yettwarnan yakan...", hint_emptyLibrary: "Fren aferdis di teɣzut nusuneɣ akken at-ternuḍ dagi, neɣ sbedd tamkarḍit seg usarsay azayez, ukessar-agi.", hint_emptyPrivateLibrary: "Fren aferdis di teɣzut nusuneɣ akken at-ternuḍ dagi." }, u = { clearReset: "Ales awennez n teɣzut n usuneɣ", exportJSON: "Sifeḍ afaylu", exportImage: "Sifeḍ tugna...", export: "Sekles di...", copyToClipboard: "Nɣel ɣer tecfawit", save: "Sekles deg ufaylu amiran", saveAs: "Sekles am", load: "Ldi", getShareableLink: "Awi-d aseɣwen n beṭṭu", close: "Mdel", selectLanguage: "Fren tutlayt", scrollBackToContent: "Uɣal s agbur", zoomIn: "Simɣur", zoomOut: "Simẓi", resetZoom: "Ales awennez n usemɣer", menu: "Umuɣ", done: "Ifukk", edit: "Ẓreg", undo: "Sefsex", redo: "Err-d", resetLibrary: "Ales awennez n temkarḍit", createNewRoom: "Snulfu-d taxxamt tamaynutt", fullScreen: "Agdil aččuran", darkMode: "Askar imsulles", lightMode: "Askar afaw", zenMode: "Askar Zen", objectsSnapMode: "", exitZenMode: "Ffeɣ seg uskar Zen", cancel: "Sefsex", clear: "Sfeḍ", remove: "Kkes", embed: "", publishLibrary: "Ẓreg", submit: "Azen", confirm: "Sentem", embeddableInteractionButton: "" }, t = { clearReset: "Ayagi ad isfeḍ akk taɣzut n usuneɣ. Tetḥeqqeḍ?", couldNotCreateShareableLink: "D awezɣi asnulfu n useɣwen n beṭṭu.", couldNotCreateShareableLinkTooBig: "D awezɣi asnulfu n useɣwen n beṭṭu. Asayes ɣezzif aṭas", couldNotLoadInvalidFile: "D awezɣi asali n ufaylu armeɣtu", importBackendFailed: "Takterḍ seg uɣawas n deffir ur teddi ara.", cannotExportEmptyCanvas: "D awezɣi asifeḍ n teɣzut n usuneɣ tilemt.", couldNotCopyToClipboard: "Ulamek anɣal ɣer tecfawit.", decryptFailed: "D awezɣi tukksa n uwgelhen i yisefka.", uploadedSecurly: "Asili yettwasɣelles s uwgelhen ixef s ixef, ayagi yebɣa ad d-yini belli aqeddac n Excalidraw akked medden ur zmiren ara ad ɣren agbur.", loadSceneOverridePrompt: "Asali n wunuɣ uffiɣ ad isemselsi agbur-inek (m) yellan. Tebɣiḍ ad tkemmeleḍ?", collabStopOverridePrompt: `Aḥbas n tɣimit ad yesefsex unuɣ-inek (m) yettwaḥerzen yakan s wudem adigan. Tetḥeqqeḍ?
3
+ (Ma tebɣiḍ ad teǧǧeḍ unuɣ-inek (m) adigan, mdel iccer n yiminig, deg umḍiq.)`, errorAddingToLibrary: "Ulamek ara yettwarnu uferdis ɣer temkarḍit", errorRemovingFromLibrary: "Ulamek ara yettwakkes uferdis si temkarḍit", confirmAddLibrary: "Ayagi adirnu talɣa (win) {{numShapes}} ɣer temkarḍit-inek (m). Tetḥeqqeḍ?", imageDoesNotContainScene: "Tugna-agi tettban-d ur tesɛi ara isefka n usayes. Tesremdeḍ aseddu n usayes deg usifeḍ?", cannotRestoreFromImage: "Asayes ulamek ara d-yettwarr seg ufaylu-agi n tugna", invalidSceneUrl: "Ulamek taktert n usayes seg URL i d-ittunefken. Ahat mačči d tameɣtut neɣ ur tegbir ara isefka JSON n Excalidraw.", resetLibrary: "Ayagi ad isfeḍ tamkarḍit-inek•m. Tetḥeqqeḍ?", removeItemsFromsLibrary: "Ad tekkseḍ {{count}} n uferdis (en) si temkarḍit?", invalidEncryptionKey: "Tasarut n uwgelhen isefk ad tesɛu 22 n yiekkilen. Amɛiwen srid yensa.", collabOfflineWarning: `Ulac tuqqna n internet.
4
+ Ibedilen-ik ur ttwaklasen ara!` }, i = { unsupportedFileType: "Anaw n ufaylu ur yettwasefrak ara.", imageInsertError: "D awezɣi tugra n tugna. Eɛreḍ tikkelt-nniḍen ardeqqal...", fileTooBig: "Afaylu meqqer aṭas. Tiddi tafellayt yurgen d {{maxSize}}.", svgImageInsertError: "D awezɣi tugra n tugna SVG. Acraḍ SVG yettban-d d armeɣtu.", failedToFetchImage: "", invalidSVGString: "SVG armeɣtu.", cannotResolveCollabServer: "Ulamek tuqqna s aqeddac n umyalel. Ma ulac uɣilif ales asali n usebter sakin eɛreḍ tikkelt-nniḍen.", importLibraryError: "Ur d-ssalay ara tamkarḍit", collabSaveFailed: "Ulamek asekles deg uzadur n yisefka deg ugilal. Ma ikemmel wugur, isefk ad teskelseḍ afaylu s wudem adigan akken ad tetḥeqqeḍ ur tesruḥuyeḍ ara amahil-inek•inem.", collabSaveFailed_sizeExceeded: "Ulamek asekles deg uzadur n yisefka deg ugilal, taɣzut n usuneɣ tettban-d temqer aṭas. Isefk ad teskelseḍ afaylu s wudem adigan akken ad tetḥeqqeḍ ur tesruḥuyeḍ ara amahil-inek•inem.", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "Ayagi yezmer ad d-iglu s truẓi n<bold>Iferdisen n uḍris</bold>deg wunuɣen-inek.", line3: "Ad k-nsemter ad tsexsiḍ aɣewwar-agi. Tzemreḍ ad tḍefreḍ<link>isurifen-agi</link> ɣef wamek ara txedmeḍ.", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, n = { selection: "Tafrayt", image: "Ger tugna", rectangle: "Asrem", diamond: "Ameɣṛun", ellipse: "Taglayt", arrow: "Taneccabt", line: "Izirig", freedraw: "Suneɣ", text: "Aḍris", library: "Tamkarḍit", lock: "Eǧǧ afecku n tefrayt yermed mbaɛd asuneɣ", penMode: "Askar n yimru - gdel tanalit", link: "Rnu/leqqem aseɣwen i talɣa yettwafernen", eraser: "Sfeḍ", frame: "", magicframe: "", embeddable: "", laser: "", hand: "Afus (afecku n usmutti n tmuɣli)", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, r = { canvasActions: "Tigawin n teɣzut n usuneɣ", selectedShapeActions: "Tigawin n talɣa yettwafernen", shapes: "Talɣiwin" }, s = { canvasPanning: "Akken ad tesmuttiḍ taɣzut n usuneɣ, ṭṭef ṛṛuda n umumed, neɣ seqdec afecku Afus", linearElement: "Ssit akken ad tebduḍ aṭas n tenqiḍin, zuɣer i yiwen n yizirig", freeDraw: "Ssit yerna zuɣer, serreḥ ticki tfukeḍ", text: "Tixidest: tzemreḍ daɣen ad ternuḍ aḍris s usiti snat n tikkal anida tebɣiḍ s ufecku n tefrayt", embeddable: "", text_selected: "Ssit snat n tikkal neɣ ssed taqeffalt Kcem akken ad tẓergeḍ aḍris", text_editing: "Ssit Escape neɣ CtrlOrCmd+ENTER akken ad tfakkeḍ asiẓreg", linearElementMulti: "Ssit ɣef tenqiḍt taneggarut neɣ ssed taqeffalt Escape neɣ taqeffalt Kcem akken ad tfakkeḍ", lockAngle: "Tzemreḍ ad tḥettmeḍ tiɣmert s tuṭṭfa n tqeffalt SHIFT", resize: `Tzemreḍ ad tḥettemeḍ assaɣ s tuṭṭfa n tqeffalt SHIFT mi ara tettbeddileḍ tiddi,
5
+ ma teṭṭfeḍ ALT abeddel n tiddi ad yili si tlemmast`, resizeImage: `Tzemreḍ ad talseḍ tiddi s tilelli s tuṭṭfa n SHIFT,
6
+ ṭṭef ALT akken ad talseḍ tiddi si tlemmast`, rotate: "Tzemreḍ ad tḥettemeḍ tiɣemmar s tuṭṭfa n SHIFT di tuzzya", lineEditor_info: "Ssed ɣef CtrlOrCmd yerna ssit snat n tikkal neɣ ssed ɣef CtrlOrCmd + Kcem akken ad tẓergeḍ tineqqiḍin", lineEditor_pointSelected: `Ssed taqeffalt kkes akken ad tekkseḍ tanqiḍ (tinqiḍin),
7
+ CtrlOrCmd+D akken ad tsiselgeḍ, neɣ zuɣer akken ad tesmuttiḍ`, lineEditor_nothingSelected: `Fren tanqiḍt akken ad tẓergeḍ (ṭṭef SHIFT akken ad tferneḍ aṭas),
8
+ neɣ ṭṭef Alt akken ad ternuḍ tinqiḍin timaynutin`, placeImage: "Ssit akken ad tserseḍ tugna, neɣ ssit u zuɣer akken ad tesbaduḍ tiddi-ines s ufus", publishLibrary: "Siẓreg tamkarḍit-inek•inem", bindTextToElement: "Ssed ɣef kcem akken ad ternuḍ aḍris", deepBoxSelect: "Ṭṭef CtrlOrCmd akken ad tferneḍ s telqey, yerna ad trewleḍ i uzuɣer", eraserRevert: "Ssed Alt akken ad tsefsxeḍ iferdisen yettwacerḍen i tukksa", firefox_clipboard_write: "", disableSnapping: "" }, l = { cannotShowPreview: "Ulamek abeqqeḍ n teskant", canvasTooBig: "Taɣzut n usuneɣ tezmer ad tili temeqqer aṭas.", canvasTooBigTip: "Tixidest: eɛreḍ ad tesqerbeḍ ciṭ iferdisen yembaɛaden." }, d = { headingMain: "Teḍra-d tuccḍa. Eɛreḍ <button>asali n usebter tikkelt-nniḍen.</button>", clearCanvasMessage: "Ma yella tulsa n usali ur tefri ara ugur, eɛreḍ <button>asfaḍ n teɣzut n usuneɣ.</button>", clearCanvasCaveat: " Ayagi ad d-iglu s usṛuḥu n umahil ", trackedToSentry: "Tuccḍa akked umesmagi {{eventId}} tettwasekles deg unagraw-nneɣ.", openIssueMessage: "Nḥuder aṭas akken ur nseddu ara talɣut n usayes-inek (m) di tuccḍa. Ma yella asayes-inek (m) mačči d amaẓlay, ttxil-k (m) xemmem ad ḍefreḍ <button>afecku n weḍfar n yibugen.</button> Ma ulac uɣilif seddu talɣut ukessar-agi s wenɣal akked usenṭeḍ di GitHub issue.", sceneContent: "Agbur n usayes:" }, o = { desc_intro: "Tzemreḍ ad d-teɛerḍeḍ medden ɣer usayes-inek (m) amiran akken ad ttekkin yid-k.", desc_privacy: "Ur tqelliq ara, tiɣimit tsseqdac awgelhen ixef s ixef, dɣa ayen ara tsunɣeḍ ad iqqim d amaẓlay. Ula d aqeddac-nneɣ ur yezmir ara ad iwali acu txeddemeḍ.", button_startSession: "Bdu tiɣimit", button_stopSession: "Ḥbes tiɣimit", desc_inProgressIntro: "Tiɣimit n umɛawen s srid tetteddu akka tura.", desc_shareLink: "Bḍu aseɣwen-agi akked medden ukud tebɣiḍ ad temɛawaneḍ:", desc_exitSession: "Aḥbas n tɣimit ad k (m) yesenser si texxamt, maca ad tizmireḍ ad tkemmeleḍ amahil s usayes, s wudem adigan. Ẓer belli ayagi ur yettḥaz ara imdanen-nniḍen, yerna ad izmiren ad kemmelen ad mɛawanen di tsuffeɣt-nnsen.", shareTitle: "Rnu ɣer tɣimit n umɛiwen s srid n Excalidraw" }, m = { title: "Tuccḍa" }, E = { disk_title: "Sekles deg uḍebsi", disk_details: "Sekles isefka n usayes deg ufaylu ansi ara tizmireḍ ad d-tketreḍ areḍqal.", disk_button: "Sekles deg ufaylu", link_title: "Aseɣwen n beṭṭu", link_details: "Sifeḍ am useɣwen n tɣuri kan.", link_button: "Sifeḍ deg useɣwen", excalidrawplus_description: "Sekles asayes-inek•inem di tallunt n umahil Excalidraw+.", excalidrawplus_button: "Sifeḍ", excalidrawplus_exportError: "Ulamek asifeḍ ɣer Excalidraw+ akka tura..." }, k = { blog: "Ɣeṛ ablug-nneɣ", click: "ssit", deepSelect: "Afran s telqey", deepBoxSelect: "Afran s telqey s tnaka, yerna ad tyrewleḍ i uzuɣer", curvedArrow: "Taneccabt izelgen", curvedLine: "Izirig izelgen", documentation: "Tasemlit", doubleClick: "ssit snat n tikkal", drag: "zuɣer", editor: "Amaẓrag", editLineArrowPoints: "Ẓreg tinqiḍin n yizirig/taneccabt", editText: "Ẓreg aḍris/rnu tabzimt", github: "Tufiḍ-d ugur? Azen-aɣ-d", howto: "Ḍfer imniren-nneɣ", or: "neɣ", preventBinding: "Seḥbes tuqqna n tneccabin", tools: "Ifecka", shortcuts: "Inegzumen n unasiw", textFinish: "Fak asiẓreg (amaẓrag n uḍris)", textNewLine: "Rnu ajerriḍ amaynut (amaẓrag n uḍris)", title: "Tallelt", view: "Tamuɣli", zoomToFit: "Simɣur akken ad twliḍ akk iferdisen", zoomToSelection: "Simɣur ɣer tefrayt", toggleElementLock: "Sekkeṛ/kkes asekker i tefrayt", movePageUpDown: "Smutti asebter d asawen/akessar", movePageLeftRight: "Smutti asebter s azelmaḍ/ayfus" }, D = { title: "Sfeḍ taɣzut n usuneɣ" }, c = { title: "Suffeɣ-d tamkarḍit", itemName: "Isem n uferdis", authorName: "Isem n umeskar", githubUsername: "Isem n useqdac n GitHub", twitterUsername: "Isem n useqdac n Twitter", libraryName: "Isem n temkarḍit", libraryDesc: "Aglam n temkarḍit", website: "Asmel n web", placeholder: { authorName: "Isem neɣ isem n useqdac inek•inem", libraryName: "Isem n temkarḍit-inek•inem", libraryDesc: "Aglam n temkarḍit-inek•inem akken ad tɛiwneḍ medden ad fehmen aseqdec-inec", githubHandle: "Isem n useqdac n GitHub ( d anefrunan) akken ad tizmireḍ ad tisẓrigeḍ tamkarḍit ticki tuzneḍ-tt i uselken", twitterHandle: "Isem n useqdac n Twitter (d anefrunan) akken ad nẓer anwa ara nsenmer deg udellel di Twitter", website: "Aseɣwen ɣer usmel-inek•inem neɣ wayeḍ (d anefrunan)" }, errors: { required: "Yettwasra", website: "Sekcem URL ameɣtu" }, noteDescription: "Azen tamkarḍit-inek•inem akken ad teddu di <link>akaram azayez n temkarḍit</link>i yimdanen-nniḍen ara isqedcen deg wunuɣen-nnsen.", noteGuidelines: "Tamkarḍit teḥwaǧ ad tettwaqbel s ufus qbel. Ma ulac uɣilif ɣer <link>iwellihen</link> send ad tazneḍ. Tesriḍ amiḍan n GitHub akken ad tmmeslayeḍ yerna ad tgeḍ ibeddilen ma yelaq, maca mačči d ayen yettwaḥetmen.", noteLicense: "Mi tuzneḍ ad tqebleḍ akken tamkarḍit ad d-teffeɣ s <link>Turagt MIT, </link>ayen yebɣan ad d-yini belli yal yiwen izmer ad ten-iseqdec war tilist.", noteItems: "Yal aferdis n temkarḍit isefk ad isɛu isem-is i yiman-is akken ad yili wamek ara yettusizdeg. Iferdisen-agi n temkarḍit ad ddun:", atleastOneLibItem: "Ma ulac uɣilif fern ma drus yiwen n uferdis n temkarḍit akken ad tebduḍ", republishWarning: "Tamawt: kra n yiferdisen yettwafernen ttwacerḍen ffeɣen-d/ttwaznen. Isefk ad talseḍ tuzzna n yiferdisen anagar mi ara tleqqemeḍ tamkarḍit neɣ tuzzna yellan." }, g = { title: "Tamkarḍit tettwazen", content: "Tanemmirt-ik•im {{authorName}}. Tamkarḍit-inek•inem tettwazen i weselken. Tzemreḍ ad tḍefreḍ aẓayer<link>dagi</link>" }, y = { resetLibrary: "Ales awennez n temkarḍit", removeItemsFromLib: "Kkes iferdisen yettafernen si temkarḍit" }, f = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, w = { tooltip: "Unuɣen-inek (m) ttuwgelhnen seg yixef s ixef dɣa iqeddacen n Excalidraw werǧin ad ten-walin. ", link: "Amagrad ɣef uwgelhen ixef s ixef di Excalidraw" }, b = { angle: "Tiɣmeṛt", element: "Aferdis", elements: "Iferdisen", height: "Tattayt", scene: "Asayes", selected: "Yettwafren", storage: "Aḥraz", title: "", total: "Aɣrud", version: "Alqem", versionCopy: "Sit ad tneɣleḍ", versionNotAvailable: "Ur inuḥ ulqem", width: "Tehri" }, S = { addedToLibrary: "Yettwarna ɣer temkarḍit", copyStyles: "Iɣunab yettwaneɣlen.", copyToClipboard: "Yettwaɣel ɣer tecfawit.", copyToClipboardAsPng: `{{exportSelection}} yettwanɣel ɣer tecfawit am PNG
9
+ ({{exportColorScheme}})`, fileSaved: "Afaylu yettwasekles.", fileSavedToFilename: "Yettwasekles di {filename}", canvas: "taɣzut n usuneɣ", selection: "tafrayt", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, p = { transparent: "Afrawan", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "", green: "", yellow: "", orange: "", bronze: "" }, z = { app: { center_heading: "Akk isefka-inek•inem ttwakelsen s wudem adigan deg yiminig-inek•inem.", center_heading_plus: "Tebɣiḍ ad tedduḍ ɣer Excalidraw+ deg umḍiq?", menuHint: "Asifeḍ, ismenyifen, tutlayin, ..." }, defaults: { menuHint: "Asifeḍ, ismenyifen, d wayen-nniḍen...", center_heading: "", toolbarHint: "Fren afecku tebduḍ asuneɣ!", helpHint: "Inegzumen akked tallelt" } }, T = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, A = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, h = { title: "", button: "", description: "", syntax: "", preview: "" }, x = { labels: e, library: a, buttons: u, alerts: t, errors: i, toolBar: n, headings: r, hints: s, canvasError: l, errorSplash: d, roomDialog: o, errorDialog: m, exportDialog: E, helpDialog: k, clearCanvasDialog: D, publishDialog: c, publishSuccessDialog: g, confirmDialog: y, imageExportDialog: f, encrypted: w, stats: b, toast: S, colors: p, welcomeScreen: z, colorPicker: T, overwriteConfirm: A, mermaid: h };
10
+ export {
11
+ t as alerts,
12
+ u as buttons,
13
+ l as canvasError,
14
+ D as clearCanvasDialog,
15
+ T as colorPicker,
16
+ p as colors,
17
+ y as confirmDialog,
18
+ x as default,
19
+ w as encrypted,
20
+ m as errorDialog,
21
+ d as errorSplash,
22
+ i as errors,
23
+ E as exportDialog,
24
+ r as headings,
25
+ k as helpDialog,
26
+ s as hints,
27
+ f as imageExportDialog,
28
+ e as labels,
29
+ a as library,
30
+ h as mermaid,
31
+ A as overwriteConfirm,
32
+ c as publishDialog,
33
+ g as publishSuccessDialog,
34
+ o as roomDialog,
35
+ b as stats,
36
+ S as toast,
37
+ n as toolBar,
38
+ z as welcomeScreen
39
+ };
@@ -0,0 +1,320 @@
1
+ import { l as Y, A as D, e as M } from "./layers.Dwk2gG9L.js";
2
+ import "./layers.od048jSt.js";
3
+ var O = (function() {
4
+ var a = function(u, t, e, n) {
5
+ for (e = e || {}, n = u.length; n--; e[u[n]] = t)
6
+ ;
7
+ return e;
8
+ }, f = [6, 9, 10], m = {
9
+ trace: function() {
10
+ },
11
+ yy: {},
12
+ symbols_: { error: 2, start: 3, info: 4, document: 5, EOF: 6, line: 7, statement: 8, NL: 9, showInfo: 10, $accept: 0, $end: 1 },
13
+ terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" },
14
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],
15
+ performAction: function(t, e, n, s, r, i, d) {
16
+ switch (i.length - 1, r) {
17
+ case 1:
18
+ return s;
19
+ case 4:
20
+ break;
21
+ case 6:
22
+ s.setInfo(!0);
23
+ break;
24
+ }
25
+ },
26
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, a(f, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, a(f, [2, 3]), a(f, [2, 4]), a(f, [2, 5]), a(f, [2, 6])],
27
+ defaultActions: { 4: [2, 1] },
28
+ parseError: function(t, e) {
29
+ if (e.recoverable)
30
+ this.trace(t);
31
+ else {
32
+ var n = new Error(t);
33
+ throw n.hash = e, n;
34
+ }
35
+ },
36
+ parse: function(t) {
37
+ var e = this, n = [0], s = [], r = [null], i = [], d = this.table, P = "", v = 0, L = 0, N = 2, T = 1, R = i.slice.call(arguments, 1), o = Object.create(this.lexer), p = { yy: {} };
38
+ for (var E in this.yy)
39
+ Object.prototype.hasOwnProperty.call(this.yy, E) && (p.yy[E] = this.yy[E]);
40
+ o.setInput(t, p.yy), p.yy.lexer = o, p.yy.parser = this, typeof o.yylloc > "u" && (o.yylloc = {});
41
+ var I = o.yylloc;
42
+ i.push(I);
43
+ var z = o.options && o.options.ranges;
44
+ typeof p.yy.parseError == "function" ? this.parseError = p.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
45
+ function U() {
46
+ var y;
47
+ return y = s.pop() || o.lex() || T, typeof y != "number" && (y instanceof Array && (s = y, y = s.pop()), y = e.symbols_[y] || y), y;
48
+ }
49
+ for (var l, g, h, w, _ = {}, b, c, F, S; ; ) {
50
+ if (g = n[n.length - 1], this.defaultActions[g] ? h = this.defaultActions[g] : ((l === null || typeof l > "u") && (l = U()), h = d[g] && d[g][l]), typeof h > "u" || !h.length || !h[0]) {
51
+ var A = "";
52
+ S = [];
53
+ for (b in d[g])
54
+ this.terminals_[b] && b > N && S.push("'" + this.terminals_[b] + "'");
55
+ o.showPosition ? A = "Parse error on line " + (v + 1) + `:
56
+ ` + o.showPosition() + `
57
+ Expecting ` + S.join(", ") + ", got '" + (this.terminals_[l] || l) + "'" : A = "Parse error on line " + (v + 1) + ": Unexpected " + (l == T ? "end of input" : "'" + (this.terminals_[l] || l) + "'"), this.parseError(A, {
58
+ text: o.match,
59
+ token: this.terminals_[l] || l,
60
+ line: o.yylineno,
61
+ loc: I,
62
+ expected: S
63
+ });
64
+ }
65
+ if (h[0] instanceof Array && h.length > 1)
66
+ throw new Error("Parse Error: multiple actions possible at state: " + g + ", token: " + l);
67
+ switch (h[0]) {
68
+ case 1:
69
+ n.push(l), r.push(o.yytext), i.push(o.yylloc), n.push(h[1]), l = null, L = o.yyleng, P = o.yytext, v = o.yylineno, I = o.yylloc;
70
+ break;
71
+ case 2:
72
+ if (c = this.productions_[h[1]][1], _.$ = r[r.length - c], _._$ = {
73
+ first_line: i[i.length - (c || 1)].first_line,
74
+ last_line: i[i.length - 1].last_line,
75
+ first_column: i[i.length - (c || 1)].first_column,
76
+ last_column: i[i.length - 1].last_column
77
+ }, z && (_._$.range = [
78
+ i[i.length - (c || 1)].range[0],
79
+ i[i.length - 1].range[1]
80
+ ]), w = this.performAction.apply(_, [
81
+ P,
82
+ L,
83
+ v,
84
+ p.yy,
85
+ h[1],
86
+ r,
87
+ i
88
+ ].concat(R)), typeof w < "u")
89
+ return w;
90
+ c && (n = n.slice(0, -1 * c * 2), r = r.slice(0, -1 * c), i = i.slice(0, -1 * c)), n.push(this.productions_[h[1]][0]), r.push(_.$), i.push(_._$), F = d[n[n.length - 2]][n[n.length - 1]], n.push(F);
91
+ break;
92
+ case 3:
93
+ return !0;
94
+ }
95
+ }
96
+ return !0;
97
+ }
98
+ }, k = /* @__PURE__ */ (function() {
99
+ var u = {
100
+ EOF: 1,
101
+ parseError: function(e, n) {
102
+ if (this.yy.parser)
103
+ this.yy.parser.parseError(e, n);
104
+ else
105
+ throw new Error(e);
106
+ },
107
+ // resets the lexer, sets new input
108
+ setInput: function(t, e) {
109
+ return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
110
+ first_line: 1,
111
+ first_column: 0,
112
+ last_line: 1,
113
+ last_column: 0
114
+ }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
115
+ },
116
+ // consumes and returns one char from the input
117
+ input: function() {
118
+ var t = this._input[0];
119
+ this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t;
120
+ var e = t.match(/(?:\r\n?|\n).*/g);
121
+ return e ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t;
122
+ },
123
+ // unshifts one char (or a string) into the input
124
+ unput: function(t) {
125
+ var e = t.length, n = t.split(/(?:\r\n?|\n)/g);
126
+ this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e;
127
+ var s = this.match.split(/(?:\r\n?|\n)/g);
128
+ this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1);
129
+ var r = this.yylloc.range;
130
+ return this.yylloc = {
131
+ first_line: this.yylloc.first_line,
132
+ last_line: this.yylineno + 1,
133
+ first_column: this.yylloc.first_column,
134
+ last_column: n ? (n.length === s.length ? this.yylloc.first_column : 0) + s[s.length - n.length].length - n[0].length : this.yylloc.first_column - e
135
+ }, this.options.ranges && (this.yylloc.range = [r[0], r[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this;
136
+ },
137
+ // When called from action, caches matched text and appends it on next action
138
+ more: function() {
139
+ return this._more = !0, this;
140
+ },
141
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
142
+ reject: function() {
143
+ if (this.options.backtrack_lexer)
144
+ this._backtrack = !0;
145
+ else
146
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
147
+ ` + this.showPosition(), {
148
+ text: "",
149
+ token: null,
150
+ line: this.yylineno
151
+ });
152
+ return this;
153
+ },
154
+ // retain first n characters of the match
155
+ less: function(t) {
156
+ this.unput(this.match.slice(t));
157
+ },
158
+ // displays already matched input, i.e. for error messages
159
+ pastInput: function() {
160
+ var t = this.matched.substr(0, this.matched.length - this.match.length);
161
+ return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "");
162
+ },
163
+ // displays upcoming input, i.e. for error messages
164
+ upcomingInput: function() {
165
+ var t = this.match;
166
+ return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "");
167
+ },
168
+ // displays the character position where the lexing error occurred, i.e. for error messages
169
+ showPosition: function() {
170
+ var t = this.pastInput(), e = new Array(t.length + 1).join("-");
171
+ return t + this.upcomingInput() + `
172
+ ` + e + "^";
173
+ },
174
+ // test the lexed token: return FALSE when not a match, otherwise return token
175
+ test_match: function(t, e) {
176
+ var n, s, r;
177
+ if (this.options.backtrack_lexer && (r = {
178
+ yylineno: this.yylineno,
179
+ yylloc: {
180
+ first_line: this.yylloc.first_line,
181
+ last_line: this.last_line,
182
+ first_column: this.yylloc.first_column,
183
+ last_column: this.yylloc.last_column
184
+ },
185
+ yytext: this.yytext,
186
+ match: this.match,
187
+ matches: this.matches,
188
+ matched: this.matched,
189
+ yyleng: this.yyleng,
190
+ offset: this.offset,
191
+ _more: this._more,
192
+ _input: this._input,
193
+ yy: this.yy,
194
+ conditionStack: this.conditionStack.slice(0),
195
+ done: this.done
196
+ }, this.options.ranges && (r.yylloc.range = this.yylloc.range.slice(0))), s = t[0].match(/(?:\r\n?|\n).*/g), s && (this.yylineno += s.length), this.yylloc = {
197
+ first_line: this.yylloc.last_line,
198
+ last_line: this.yylineno + 1,
199
+ first_column: this.yylloc.last_column,
200
+ last_column: s ? s[s.length - 1].length - s[s.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length
201
+ }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n)
202
+ return n;
203
+ if (this._backtrack) {
204
+ for (var i in r)
205
+ this[i] = r[i];
206
+ return !1;
207
+ }
208
+ return !1;
209
+ },
210
+ // return next match in input
211
+ next: function() {
212
+ if (this.done)
213
+ return this.EOF;
214
+ this._input || (this.done = !0);
215
+ var t, e, n, s;
216
+ this._more || (this.yytext = "", this.match = "");
217
+ for (var r = this._currentRules(), i = 0; i < r.length; i++)
218
+ if (n = this._input.match(this.rules[r[i]]), n && (!e || n[0].length > e[0].length)) {
219
+ if (e = n, s = i, this.options.backtrack_lexer) {
220
+ if (t = this.test_match(n, r[i]), t !== !1)
221
+ return t;
222
+ if (this._backtrack) {
223
+ e = !1;
224
+ continue;
225
+ } else
226
+ return !1;
227
+ } else if (!this.options.flex)
228
+ break;
229
+ }
230
+ return e ? (t = this.test_match(e, r[s]), t !== !1 ? t : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
231
+ ` + this.showPosition(), {
232
+ text: "",
233
+ token: null,
234
+ line: this.yylineno
235
+ });
236
+ },
237
+ // return next match that has a token
238
+ lex: function() {
239
+ var e = this.next();
240
+ return e || this.lex();
241
+ },
242
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
243
+ begin: function(e) {
244
+ this.conditionStack.push(e);
245
+ },
246
+ // pop the previously active lexer condition state off the condition stack
247
+ popState: function() {
248
+ var e = this.conditionStack.length - 1;
249
+ return e > 0 ? this.conditionStack.pop() : this.conditionStack[0];
250
+ },
251
+ // produce the lexer rule set which is active for the currently active lexer condition state
252
+ _currentRules: function() {
253
+ return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
254
+ },
255
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
256
+ topState: function(e) {
257
+ return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL";
258
+ },
259
+ // alias for begin(condition)
260
+ pushState: function(e) {
261
+ this.begin(e);
262
+ },
263
+ // return the number of states currently on the stack
264
+ stateStackSize: function() {
265
+ return this.conditionStack.length;
266
+ },
267
+ options: { "case-insensitive": !0 },
268
+ performAction: function(e, n, s, r) {
269
+ switch (s) {
270
+ case 0:
271
+ return 4;
272
+ case 1:
273
+ return 9;
274
+ case 2:
275
+ return "space";
276
+ case 3:
277
+ return 10;
278
+ case 4:
279
+ return 6;
280
+ case 5:
281
+ return "TXT";
282
+ }
283
+ },
284
+ rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i],
285
+ conditions: { INITIAL: { rules: [0, 1, 2, 3, 4, 5], inclusive: !0 } }
286
+ };
287
+ return u;
288
+ })();
289
+ m.lexer = k;
290
+ function x() {
291
+ this.yy = {};
292
+ }
293
+ return x.prototype = m, m.Parser = x, new x();
294
+ })();
295
+ O.parser = O;
296
+ const B = O, j = {
297
+ info: !1
298
+ };
299
+ let $ = j.info;
300
+ const V = (a) => {
301
+ $ = a;
302
+ }, X = () => $, q = () => {
303
+ $ = j.info;
304
+ }, C = {
305
+ clear: q,
306
+ setInfo: V,
307
+ getInfo: X
308
+ }, G = (a, f, m) => {
309
+ Y.debug(`rendering info diagram
310
+ ` + a);
311
+ const k = D(f);
312
+ M(k, 100, 400, !0), k.append("g").append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${m}`);
313
+ }, H = { draw: G }, Q = {
314
+ parser: B,
315
+ db: C,
316
+ renderer: H
317
+ };
318
+ export {
319
+ Q as diagram
320
+ };
@@ -0,0 +1,40 @@
1
+ import "./layers.od048jSt.js";
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
+
4
+ (如要保留原有的本機繪圖進度,直接關閉瀏覽器分頁即可。)`, errorAddingToLibrary: "無法於此資料庫加入項目", errorRemovingFromLibrary: "無法由此資料庫移除項目", confirmAddLibrary: "這將會將 {{numShapes}} 個圖形加入你的資料庫,你確定嗎?", imageDoesNotContainScene: "此圖檔中未包含場景資料。輸出檔案時是否有包含場景資料?", cannotRestoreFromImage: "無法由此檔案回復場景。", invalidSceneUrl: "無法由提供的 URL 匯入場景。可能是發生異常,或未包含有效的 Excalidraw JSON 資料。", resetLibrary: "這會清除您的資料庫,是否確定?", removeItemsFromsLibrary: "從資料庫刪除 {{count}} 項?", invalidEncryptionKey: "加密鍵必須為22字元。即時協作已停用。", collabOfflineWarning: `沒有可用的網路連線。
5
+ 變更無法儲存!` }, C = { unsupportedFileType: "不支援的檔案類型。", imageInsertError: "無法插入圖片。請稍後再試…", fileTooBig: "檔案過大。可接受的最大尺寸為 {{maxSize}} 。", svgImageInsertError: "無法插入 SVG 圖片。此 SVG 檔案有問題。", failedToFetchImage: "無法獲取圖片。", invalidSVGString: "無效的 SVG。", cannotResolveCollabServer: "無法連結至 collab 伺服器。請重新整理後再試一次。", importLibraryError: "無法載入資料庫", collabSaveFailed: "無法儲存至後端資料庫。若此問題持續發生,請將檔案儲存於本機以確保資料不會遺失。", collabSaveFailed_sizeExceeded: "無法儲存至後端資料庫,可能的原因為畫布尺寸過大。請將檔案儲存於本機以確保資料不會遺失。", imageToolNotSupported: "圖片已停用", brave_measure_text_error: { line1: "看起來您開啟了 Brave 瀏覽器的 <bold>Aggressively Block Fingerprinting</bold> 設定。", line2: "這可能造成您畫布中 <bold>文字元素</bold> 的異常。", line3: "我們強烈建議您關閉此設定。您可以依照 <link>這些步驟</link> 來進行。", line4: "若關閉此設定並未修復文字元素的顯示問題,請回報於我們 GitHub 上的 <issueLink>issue</issueLink>,或在 <discordLink>Discord</discordLink> 上告訴我們。" }, libraryElementTypeError: { embeddable: "可嵌入元素無法加入資料庫", iframe: "IFrame 元素無法加入資料庫", image: "即將支援加入圖片至資料庫!" }, asyncPasteFailedOnRead: "無法貼上(無法由系統剪貼簿讀入)", asyncPasteFailedOnParse: "無法貼上", copyToSystemClipboardFailed: "無法複製至剪貼簿" }, A = { selection: "選取", image: "插入圖片", rectangle: "長方形", diamond: "菱形", ellipse: "橢圓", arrow: "箭頭", line: "線條", freedraw: "繪圖", text: "文字", library: "資料庫", lock: "可連續使用選取的工具", penMode: "筆模式 - 避免觸摸", link: "為所選的形狀增加\b/更新連結", eraser: "橡皮擦", frame: "框架工具", magicframe: "線框稿轉為程式碼", embeddable: "嵌入網站", laser: "雷射筆", hand: "手形(平移工具)", extraTools: "更多工具", mermaidToExcalidraw: "Mermaid 至 Excalidraw", magicSettings: "AI 設定" }, D = { canvasActions: "canvas 動作", selectedShapeActions: "選取圖形動作", shapes: "形狀" }, B = { canvasPanning: "若要移動畫布,請在拖曳時按住滑鼠滾輪或空白鍵,或使用手形工具", linearElement: "點擊以繪製多點曲線;或拖曳以繪製直線", freeDraw: "點擊並拖曳來繪圖,放開即結束", text: "提示:亦可使用選取工具在任何地方雙擊來加入文字", embeddable: "點擊並拖移以建立嵌入網站", text_selected: "雙擊滑鼠或按 Enter 以編輯文字", text_editing: "按跳脫鍵或 Ctrl 或 Cmd + Enter 以結束編輯", linearElementMulti: "按下 Escape 或 Enter 以結束繪製", lockAngle: "按住 SHIFT 可限制旋轉角度", resize: "縮放時按住 Shift 可保持原比例縮放;\\n按住 Alt 可由中心點進行縮放", resizeImage: "按住 SHIFT 可任意縮放,按住 ALT 可由中央縮放。", rotate: "旋轉時按住 Shift 可限制旋轉角度", lineEditor_info: "按住 Ctrl 或 Cmd 並雙擊或按住 Ctrl 或 Cmd + Enter 來編輯控制點", lineEditor_pointSelected: "按下 Delete 可移除錨點;Ctrl 或 Cmd + D 可複製;或可拖曳來移動", lineEditor_nothingSelected: `選擇要編輯的錨點(按住 SHIFT 可多選),
6
+ 或按住 Alt 並點擊以增加新錨點。`, placeImage: "點擊以放置圖片,或點擊並拖曳以手動調整其尺寸。", publishLibrary: "發布個人資料庫", bindTextToElement: "按下 Enter 以加入文字。", deepBoxSelect: "按住 Ctrl 或 Cmd 以深度選取並避免拖曳", eraserRevert: "按住 Alt 以反選取已標記待刪除的元素", firefox_clipboard_write: `此功能有機會透過將 "dom.events.asyncClipboard.clipboardItem" 設定為 "true" 來開啟。
7
+ 若要變更 Firefox 瀏覽器的此設定值,請至 "about:config" 頁面。`, disableSnapping: "按住 Ctrl 或 Cmd 以禁用吸附" }, a = { cannotShowPreview: "無法顯示預覽", canvasTooBig: "畫布可能過大", canvasTooBigTip: "提示:可嘗試將最遠的元素移動至較集中的位置" }, r = { headingMain: "發生錯誤,嘗試<button>重新載入頁面。</button>", clearCanvasMessage: "若重新載入仍無法解決問題,嘗試<button>清除 canvas。</button>", clearCanvasCaveat: "此動作將造成目前的作品被移除。", trackedToSentry: "此錯誤與其識別碼{{eventId}}將由系統記錄。", openIssueMessage: "我們將謹慎處理,你的作品內容不會被包含在錯誤報告中。若你的作品不需保持私密,請考慮使用我們的<button>bug tracker。</button>請將下列資訊複製貼上至 GitHub issue 中。", sceneContent: "作品內容:" }, t = { desc_intro: "你可以邀請其他人一起協作目前的作品。", desc_privacy: "連線使用 end-to-end 加密故無須擔心作品的安全性。即使是我們的伺服器也無法取得其內容。", button_startSession: "開始連線", button_stopSession: "停止連線", desc_inProgressIntro: "即時協作連線正在進行中。", desc_shareLink: "將此連結分享給欲協作的對象:", desc_exitSession: "停止連線將中斷你與協作會議室的連結,但你仍可於本機編輯此作品。意指停止連線後你的編輯不會被先前共同協作的人看見,且他們可繼續共同協作另一個版本。", shareTitle: "加入 Excalidraw 上的即時協作會議室" }, o = { title: "錯誤" }, i = { disk_title: "儲存至硬碟", disk_details: "將場景匯出為可供匯入之檔案", disk_button: "儲存至檔案", link_title: "可共享連結", link_details: "匯出為唯讀連結", link_button: "匯出為連結", excalidrawplus_description: "將此場景儲存至你的 Excalidraw+ 工作區", excalidrawplus_button: "輸出", excalidrawplus_exportError: "目前無法輸出至 Excalidraw+" }, l = { blog: "閱讀部落格", click: "點擊", deepSelect: "深度選取", deepBoxSelect: "在容器內深度選取並避免拖曳", curvedArrow: "曲箭頭", curvedLine: "曲線", documentation: "文件", doubleClick: "雙擊", drag: "拖曳", editor: "編輯器", editLineArrowPoints: "編輯線/箭頭控制點", editText: "編輯文字/增加標籤", github: "發現異常?回報問題", howto: "參照我們的說明", or: "或", preventBinding: "避免箭號連結", tools: "工具", shortcuts: "鍵盤快速鍵", textFinish: "完成編輯(文字編輯器)", textNewLine: "換行(文字編輯器)", title: "說明", view: "檢視", zoomToFit: "放大至填滿畫面", zoomToSelection: "縮放至選取區", toggleElementLock: "鎖定/解鎖已選的項目", movePageUpDown: "向上/下移動頁面", movePageLeftRight: "向左/右移動頁面" }, n = { title: "清除畫布" }, s = { title: "發布資料庫", itemName: "項目名稱", authorName: "作者名稱", githubUsername: "GitHub 帳號", twitterUsername: "Twitter 帳號", libraryName: "資料庫名稱", libraryDesc: "資料庫說明", website: "網站", placeholder: { authorName: "您的名稱或帳號", libraryName: "您的資料庫名稱", libraryDesc: "提供您的資料庫說明以利他人理解其用途", githubHandle: "Github handle(選填),填寫後您可編輯已送出待審查的資料庫", twitterHandle: "Twitter 帳號(選填),填寫後若我們在 Twitter 推廣時可提及您", website: "您個人網站或其他網站的連結(選填)" }, errors: { required: "必填", website: "請輸入有效的 URL" }, noteDescription: "送出您的資料庫後將被包含於<link>公開資料庫 repository</link>以利他人在其繪圖中使用。", noteGuidelines: "資料庫需先經人工審查。請閱讀<link>說明文件</link>再送出。若需溝通與修改時要透過 GitHub 帳號來進行,但並非強制需求。", noteLicense: "送出即代表您同意此資料庫將發布時使用 <link>MIT 授權,</link>簡單來說是指任何人都能不受限制的使用。", noteItems: "每個資料庫項目都有獨立的名稱故可篩選。會包含下列資料庫項目:", atleastOneLibItem: "請選擇至少一項資料庫項目", republishWarning: "注意:部分選取中的物件先前已發布/送出過。建議僅在要更新現存資料庫或已送出的物件時才重新送出這些物件。" }, d = { title: "資料庫已送出", content: "感謝 {{authorName}} 。您的資料庫已送出待審查。您可查看目前狀態<link>在此</link>" }, c = { resetLibrary: "重設資料庫", removeItemsFromLib: "從資料庫移除所選的項目" }, m = { header: "匯出圖片", label: { withBackground: "背景", onlySelected: "僅選取物件", darkMode: "深色模式", embedScene: "嵌入場景", scale: "縮放比例", padding: "內間距" }, tooltip: { embedScene: `用於回復場景的場景資料會被包含在輸出的 PNG/SVG 檔案中。
8
+ 會增加輸出的檔案大小。` }, title: { exportToPng: "輸出成 PNG", exportToSvg: "輸出成 SVG", copyPngToClipboard: "複製 PNG 至剪貼簿" }, button: { exportToPng: "PNG", exportToSvg: "SVG", copyPngToClipboard: "複製至剪貼簿" } }, b = { tooltip: "你的作品已使用 end-to-end 方式加密,Excalidraw 的伺服器也無法取得其內容。", link: "Excalidraw 端到端加密的相關部落格文章" }, p = { angle: "角度", element: "元素", elements: "元素", height: "高度", scene: "場景", selected: "已選", storage: "儲存", title: "詳細統計", total: "合計", version: "版本", versionCopy: "點擊複製", versionNotAvailable: "無法取得版本", width: "寬度" }, g = { addedToLibrary: "加入資料庫", copyStyles: "已複製樣式", copyToClipboard: "複製至剪貼簿。", copyToClipboardAsPng: `以 PNG 格式將 {{exportSelection}} 複製至剪貼簿
9
+ ({{exportColorScheme}})`, fileSaved: "已儲存檔案。", fileSavedToFilename: "儲存為 {filename}", canvas: "畫布", selection: "已選項目", pasteAsSingleElement: `使用 {{shortcut}} 以做為單一物件貼上,
10
+ 或貼上至現有的文字編輯器`, unableToEmbed: "目前不允許嵌入此網址。您可至 GitHub 提出 issue 以要求將此網址加入合格名單。", unrecognizedLinkFormat: "您嵌入的連結格式不符。請嘗試貼入原網站所提供的「嵌入」字串。" }, h = { transparent: "透明", black: "黑", white: "白", red: "紅", pink: "粉紅", grape: "深紫", violet: "藍紫", gray: "灰", blue: "藍", cyan: "青", teal: "藍綠", green: "綠", yellow: "黃", orange: "橘", bronze: "銅" }, y = { app: { center_heading: "所有資料皆已在瀏覽器中儲存於本機", center_heading_plus: "您是否是要前往 Excalidraw+ ?", menuHint: "輸出、偏好設定、語言..." }, defaults: { menuHint: "輸出、偏好設定及其他...", center_heading: "圖表。製作。超簡單。", toolbarHint: "選個工具開始畫圖吧!", helpHint: "快速鍵與說明" } }, S = { mostUsedCustomColors: "最常使用的自訂顏色", colors: "顏色", shades: "漸變色", hexCode: "Hex 碼", noShades: "沒有此顏色的漸變色" }, v = { action: { exportToImage: { title: "匯出為圖片", button: "匯出為圖片", description: "將場景匯出為可供匯入的圖片檔案" }, saveToDisk: { title: "儲存至硬碟", button: "儲存至硬碟", description: "將場景匯出為可供匯入的檔案" }, excalidrawPlus: { title: "Excalidraw+", button: "匯出至 Excalidraw+", description: "將此場景儲存至您的 Excalidraw+ 工作區" } }, modal: { loadFromFile: { title: "從檔案載入", button: "從檔案載入", description: "從檔案載入將<bold>取代您目前的內容</bold>。<br></br>可先使用下方的選項備份您的繪圖。" }, shareableLink: { title: "從連結載入", button: "取代我的內容", description: "載入外部繪圖將<bold>取代您目前的內容</bold>。<br></br>可先使用下方的選項備份您的繪圖。" } } }, w = { title: "Mermaid 至 Excalidraw", button: "插入", description: "目前僅支援 <flowchartLink>Flowchart</flowchartLink> 、 <sequenceLink>Sequence</sequenceLink> 及 <classLink>Class </classLink> 圖表。其餘檔案類型在 Excalidraw 將會以圖像呈現。", syntax: "Mermaid 語法", preview: "預覽" }, x = { labels: u, library: F, buttons: e, alerts: E, errors: C, toolBar: A, headings: D, hints: B, canvasError: a, errorSplash: r, roomDialog: t, errorDialog: o, exportDialog: i, helpDialog: l, clearCanvasDialog: n, publishDialog: s, publishSuccessDialog: d, confirmDialog: c, imageExportDialog: m, encrypted: b, stats: p, toast: g, colors: h, welcomeScreen: y, colorPicker: S, overwriteConfirm: v, mermaid: w };
11
+ export {
12
+ E as alerts,
13
+ e as buttons,
14
+ a as canvasError,
15
+ n as clearCanvasDialog,
16
+ S as colorPicker,
17
+ h as colors,
18
+ c as confirmDialog,
19
+ x as default,
20
+ b as encrypted,
21
+ o as errorDialog,
22
+ r as errorSplash,
23
+ C as errors,
24
+ i as exportDialog,
25
+ D as headings,
26
+ l as helpDialog,
27
+ B as hints,
28
+ m as imageExportDialog,
29
+ u as labels,
30
+ F as library,
31
+ w as mermaid,
32
+ v as overwriteConfirm,
33
+ s as publishDialog,
34
+ d as publishSuccessDialog,
35
+ t as roomDialog,
36
+ p as stats,
37
+ g as toast,
38
+ A as toolBar,
39
+ y as welcomeScreen
40
+ };
@@ -0,0 +1,42 @@
1
+ import "./layers.od048jSt.js";
2
+ var e = { paste: "Lipire", pasteAsPlaintext: "Inserare ca text simplu", pasteCharts: "Lipire diagrame", selectAll: "Selectare totală", multiSelect: "Adaugă element la selecție", moveCanvas: "Mutare pânză", cut: "Decupare", copy: "Copiere", copyAsPng: "Copiere în memoria temporară ca PNG", copyAsSvg: "Copiere în memoria temporară ca SVG", copyText: "Copiere în memoria temporară ca text", copySource: "Copiere sursă în memoria temporară", convertToCode: "Convertire în cod", bringForward: "Aducere în plan apropiat", sendToBack: "Trimitere în ultimul plan", bringToFront: "Aducere în prim plan", sendBackward: "Trimitere în plan secundar", delete: "Ștergere", copyStyles: "Copiere stiluri", pasteStyles: "Lipire stiluri", stroke: "Contur", background: "Fundal", fill: "Umplere", strokeWidth: "Lățimea conturului", strokeStyle: "Stilul conturului", strokeStyle_solid: "Neîntrerupt", strokeStyle_dashed: "Liniuțe", strokeStyle_dotted: "Punctat", sloppiness: "Aspectul trasării", opacity: "Opacitate", textAlign: "Alinierea textului", edges: "Margini", sharp: "Ascuțite", round: "Rotunde", arrowheads: "Vârfuri de săgeată", arrowhead_none: "Niciunul", arrowhead_arrow: "Săgeată", arrowhead_bar: "Bară", arrowhead_circle: "Cerc", arrowhead_circle_outline: "Cerc (contur)", arrowhead_triangle: "Triunghi", arrowhead_triangle_outline: "Triunghi (contur)", arrowhead_diamond: "Romb", arrowhead_diamond_outline: "Romb (contur)", fontSize: "Dimensiune font", fontFamily: "Familia de fonturi", addWatermark: "Adaugă „Realizat cu Excalidraw”", handDrawn: "Scris de mână", normal: "Normal", code: "Cod", small: "Mică", medium: "Medie", large: "Mare", veryLarge: "Foarte mare", solid: "Plină", hachure: "Hașură", zigzag: "Zigzag", crossHatch: "Hașură transversală", thin: "Subțire", bold: "Îngroșată", left: "Stânga", center: "Centru", right: "Dreapta", extraBold: "Extra îngroșată", architect: "Arhitect", artist: "Artist", cartoonist: "Caricaturist", fileTitle: "Nume de fișier", colorPicker: "Selector de culoare", canvasColors: "Folosite pe pânză", canvasBackground: "Fundalul pânzei", drawingCanvas: "Pânză pentru desenat", layers: "Straturi", actions: "Acțiuni", language: "Limbă", liveCollaboration: "Colaborare în direct...", duplicateSelection: "Duplicare", untitled: "Nedenumit", name: "Nume", yourName: "Numele tău", madeWithExcalidraw: "Realizat cu Excalidraw", group: "Grupare selecție", ungroup: "Degrupare selecție", collaborators: "Colaboratori", showGrid: "Afișare grilă", addToLibrary: "Adăugare la bibliotecă", removeFromLibrary: "Eliminare din bibliotecă", libraryLoadingMessage: "Se încarcă biblioteca…", libraries: "Răsfoiește bibliotecile", loadingScene: "Se încarcă scena…", align: "Aliniere", alignTop: "Aliniere sus", alignBottom: "Aliniere jos", alignLeft: "Aliniere la stânga", alignRight: "Aliniere la dreapta", centerVertically: "Centrare verticală", centerHorizontally: "Centrare orizontală", distributeHorizontally: "Distribuie orizontal", distributeVertically: "Distribuie vertical", flipHorizontal: "Răsturnare orizontală", flipVertical: "Răsturnare verticală", viewMode: "Mod de vizualizare", share: "Distribuie", showStroke: "Afișare selector culoare contur", showBackground: "Afișare selector culoare fundal", toggleTheme: "Comutare temă", personalLib: "Biblioteca personală", excalidrawLib: "Biblioteca Excalidraw", decreaseFontSize: "Micșorează dimensiunea fontului", increaseFontSize: "Mărește dimensiunea fontului", unbindText: "Deconectare text", bindText: "Legare text de container", createContainerFromText: "Încadrare text într-un container", link: { edit: "Editare URL", editEmbed: "Editare URL și încorporare", create: "Creare URL", createEmbed: "Creare URL și încorporare", label: "URL", labelEmbed: "URL și încorporare", empty: "Nu este setat niciun URL" }, lineEditor: { edit: "Editare linie", exit: "Părăsire editor de linii" }, elementLock: { lock: "Blocare", unlock: "Deblocare", lockAll: "Blocare toate", unlockAll: "Deblocare toate" }, statusPublished: "Publicat", sidebarLock: "Păstrează deschisă bara laterală", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "Alegere culoare din pânză", textToDiagram: "Text la diagramă", prompt: "Solicitare" }, a = { noItems: "Niciun element adăugat încă...", hint_emptyLibrary: "Selectează un element de pe pânză pentru a-l adăuga aici sau instalează o bibliotecă din depozitul public, de mai jos.", hint_emptyPrivateLibrary: "Selectează un element de pe pânză pentru a-l adăuga aici." }, i = { clearReset: "Resetare pânză", exportJSON: "Exportare la fișiere", exportImage: "Exportare imagine...", export: "Salvare în...", copyToClipboard: "Copiere în memoria temporară", save: "Salvare în fișierul curent", saveAs: "Salvare ca", load: "Deschidere", getShareableLink: "Obține URL partajabil", close: "Închidere", selectLanguage: "Selectare limbă", scrollBackToContent: "Derulare înapoi la conținut", zoomIn: "Apropiere", zoomOut: "Depărtare", resetZoom: "Resetare transfocare", menu: "Meniu", done: "Efectuat", edit: "Edit", undo: "Anulare", redo: "Refacere", resetLibrary: "Resetare bibliotecă", createNewRoom: "Creare cameră nouă", fullScreen: "Ecran complet", darkMode: "Mod întunecat", lightMode: "Mod luminos", zenMode: "Mod zen", objectsSnapMode: "Ancorare la obiecte", exitZenMode: "Ieșire din modul zen", cancel: "Anulare", clear: "Ștergere", remove: "Eliminare", embed: "Comutare încorporare", publishLibrary: "Publicare", submit: "Trimitere", confirm: "Confirmare", embeddableInteractionButton: "Clic pentru interacționare" }, r = { clearReset: "Această opțiune va șterge întreaga pânză. Confirmi?", couldNotCreateShareableLink: "Nu s-a putut crea un URL partajabil.", couldNotCreateShareableLinkTooBig: "Nu s-a putut crea un URL partajabil: scena este prea mare", couldNotLoadInvalidFile: "Fișierul invalid nu a putut fi încărcat", importBackendFailed: "Importarea de la nivel de server a eșuat.", cannotExportEmptyCanvas: "Nu se poate exporta pânza goală.", couldNotCopyToClipboard: "Nu s-a putut copia în memoria temporară.", decryptFailed: "Datele nu au putut fi decriptate.", uploadedSecurly: "Încărcarea a fost securizată prin criptare integrală, însemnând că serverul Excalidraw și terții nu pot citi conținutul.", loadSceneOverridePrompt: "Încărcarea desenului extern va înlocui conținutul existent. Dorești să continui?", collabStopOverridePrompt: `Oprirea sesiunii va suprascrie desenul anterior stocat local. Confirmi alegerea?
3
+
4
+ (Dacă vrei să păstrezi desenul local, pur și simplu închide fila navigatorului în schimb.)`, errorAddingToLibrary: "Elementul nu a putut fi adăugat în bibliotecă", errorRemovingFromLibrary: "Elementul nu a putut fi eliminat din bibliotecă", confirmAddLibrary: "Această acțiune va adăuga {{numShapes}} formă(e) la biblioteca ta. Confirmi?", imageDoesNotContainScene: "Această imagine nu pare să conțină date de scenă. Ai activat încorporarea scenei în timpul exportului?", cannotRestoreFromImage: "Scena nu a putut fi restaurată din acest fișier de imagine", invalidSceneUrl: "Scena nu a putut fi importată din URL-ul furnizat. Este fie incorect formată, fie nu conține date JSON Excalidraw valide.", resetLibrary: "Această opțiune va elimina conținutul din bibliotecă. Confirmi?", removeItemsFromsLibrary: "Ștergi {{count}} element(e) din bibliotecă?", invalidEncryptionKey: "Cheia de criptare trebuie să aibă 22 de caractere. Colaborarea în direct este dezactivată.", collabOfflineWarning: `Nu este disponibilă nicio conexiune la internet.
5
+ Modificările nu vor fi salvate!` }, t = { unsupportedFileType: "Tip de fișier neacceptat.", imageInsertError: "Imaginea nu a putut fi introdusă. Reîncearcă mai târziu...", fileTooBig: "Fișierul este prea mare. Dimensiunea maximă permisă este de {{maxSize}}.", svgImageInsertError: "Imaginea SVG nu a putut fi introdus. Marcajul SVG pare invalid.", failedToFetchImage: "Preluarea imaginii a eșuat.", invalidSVGString: "SVG invalid.", cannotResolveCollabServer: "Nu a putut fi realizată conexiunea la serverul de colaborare. Reîncarcă pagina și încearcă din nou.", importLibraryError: "Biblioteca nu a putut fi încărcată", collabSaveFailed: "Nu s-a putut salva în baza de date la nivel de server. Dacă problemele persistă, ar trebui să salvezi fișierul la nivel local pentru a te asigura că nu îți pierzi munca.", collabSaveFailed_sizeExceeded: "Nu s-a putut salva în baza de date la nivel de server, întrucât se pare că pânza este prea mare. Ar trebui să salvezi fișierul la nivel local pentru a te asigura că nu îți pierzi munca.", imageToolNotSupported: "Imaginile sunt dezactivate.", brave_measure_text_error: { line1: "Se pare că folosești navigatorul Brave cu opțiunea <bold>strictă pentru blocarea amprentării</bold>.", line2: "Acest lucru poate duce la întreruperea <bold>elementelor text</bold> din desene.", line3: "Îți recomandăm ferm să dezactivezi această setare. Poți urma <link>acești pași</link> pentru a face acest lucru.", line4: "Dacă dezactivarea acestei setări nu duce la remedierea afișării elementelor text, deschide un tichet de <issueLink>problemă</issueLink> pe pagina noastră de GitHub sau scrie-ne pe <discordLink>Discord</discordLink>" }, libraryElementTypeError: { embeddable: "Elementele încorporabile nu pot fi adăugate la bibliotecă.", iframe: "Elementele iFrame nu pot fi adăugate la bibliotecă.", image: "În curând vor putea fi adăugate imagini în bibliotecă!" }, asyncPasteFailedOnRead: "Lipirea nu a putut fi efectuată (nu s-a putut citit din memoria temporară a sistemului).", asyncPasteFailedOnParse: "Lipirea nu a putut fi efectuată.", copyToSystemClipboardFailed: "Nu s-a putut copia în memoria temporară." }, u = { selection: "Selecție", image: "Introducere imagine", rectangle: "Dreptunghi", diamond: "Romb", ellipse: "Elipsă", arrow: "Săgeată", line: "Linie", freedraw: "Desenare", text: "Text", library: "Bibliotecă", lock: "Menține activ instrumentul selectat după desenare", penMode: "Mod stilou – împiedică atingerea", link: "Adăugare/actualizare URL pentru forma selectată", eraser: "Radieră", frame: "", magicframe: "Structură-de-fire la cod", embeddable: "Încorporare web", laser: "Indicator laser", hand: "Mână (instrument de panoramare)", extraTools: "", mermaidToExcalidraw: "Mermaid la Excalidraw", magicSettings: "Setări IA" }, n = { canvasActions: "Acțiuni pentru pânză", selectedShapeActions: "Acțiuni pentru forma selectată", shapes: "Forme" }, o = { canvasPanning: "Pentru a muta pânză, ține apăsată rotița mausului sau bara de spațiu sau folosește instrumentul în formă de mână", linearElement: "Dă clic pentru a crea mai multe puncte, glisează pentru a forma o singură linie", freeDraw: "Dă clic pe pânză și glisează cursorul, apoi eliberează-l când ai terminat", text: "Sfat: poți adăuga text și dând dublu clic oriunde cu instrumentul de selecție", embeddable: "Dă clic și trage pentru a crea un cod de încorporare de pagină web", text_selected: "Dă dublu clic sau apasă tasta Enter pentru a edita textul", text_editing: "Apasă tasta Escape sau Ctrl sau Cmd + Enter pentru a finaliza editarea", linearElementMulti: "Dă clic pe ultimul punct sau apasă tasta Escape sau tasta Enter pentru a termina", lockAngle: "Poți constrânge unghiul prin ținerea apăsată a tastei SHIFT", resize: `Poți constrânge proporțiile, ținând apăsată tasta SHIFT în timp ce redimensionezi,
6
+ ține apăsată tasta ALT pentru a redimensiona de la centru`, resizeImage: `Poți redimensiona liber ținând apăsată tasta SHIFT,
7
+ ține apăsată tasta ALT pentru a redimensiona din centru`, rotate: "Poți constrânge unghiurile, ținând apăsată tasta SHIFT în timp ce rotești", lineEditor_info: "Ține apăsată tasta Ctrl sau Cmd și dă dublu clic sau apasă tasta Ctrl sau Cmd + Enter pentru a edita puncte", lineEditor_pointSelected: `Apasă tasta Delete pentru a elimina punctele,
8
+ combinația de taste Ctrl sau Cmd + D pentru a le duplica sau glisează-le pentru a le schimba poziția`, lineEditor_nothingSelected: `Selectează un punct pentru a-l edita (ține apăsată tasta SHIFT pentru a selecta mai multe),
9
+ sau ține apăsată tasta Alt și dă clic pentru a adăuga puncte noi`, placeImage: "Dă clic pentru a poziționa imaginea sau dă clic și glisează pentru a seta manual dimensiunea imaginii", publishLibrary: "Publică propria bibliotecă", bindTextToElement: "Apasă tasta Enter pentru a adăuga text", deepBoxSelect: "Ține apăsată tasta Ctrl sau Cmd pentru a efectua selectarea de adâncime și pentru a preveni glisarea", eraserRevert: "Ține apăsată tasta Alt pentru a anula elementele marcate pentru ștergere", firefox_clipboard_write: "Această caracteristică poate fi probabil activată prin setarea preferinței „dom.events.asyncClipboard.clipboardItem” ca „true”. Pentru a schimba preferințele navigatorului în Firefox, accesează pagina „about:config”.", disableSnapping: "Ține apăsat CtrlOrCmd pentru a dezactiva ancorarea" }, l = { cannotShowPreview: "Nu se poate afișa previzualizarea", canvasTooBig: "Pânza poate fi prea mare.", canvasTooBigTip: "Sfat: încearcă să apropii puțin mai mult elementele cele mai îndepărtate." }, c = { headingMain: "A apărut o eroare. Încearcă <button>să reîncarci pagina</button>.", clearCanvasMessage: "Dacă reîncărcarea nu funcționează, încearcă <button>să ștergi pânza</button>.", clearCanvasCaveat: " Acest lucru va duce la pierderea progresului ", trackedToSentry: "Eroarea cu identificatorul {{eventId}} a fost urmărită în sistemul nostru.", openIssueMessage: "Am luat măsuri de precauție pentru a nu include informații despre scenă în eroare. Dacă scena nu este privată, oferă-ne mai multe informații în <button>monitorul nostru pentru erori</button>. Include informațiile de mai jos copiindu-le și lipindu-le în tichetul cu problemă de pe GitHub.", sceneContent: "Conținutul scenei:" }, s = { desc_intro: "Poți invita alte persoane pentru a colabora la scena actuală.", desc_privacy: "Nu te îngrijora. Sesiunea utilizează criptarea integrală, astfel încât orice desenezi va rămâne privat. Nici măcar serverul nostru nu va putea vedea pe ce ai lucrat.", button_startSession: "Pornire sesiune", button_stopSession: "Oprire sesiune", desc_inProgressIntro: "Sesiunea de colaborare în direct este în curs de desfășurare.", desc_shareLink: "Distribuie acest URL persoanelor cu care dorești să colaborezi:", desc_exitSession: "Oprirea sesiunii te va deconecta de la sală, însă vei putea lucra în continuare, pe plan local, cu scena. Reține că această opțiune nu va afecta alte persoane, iar acestea vor putea să colaboreze în continuare pe versiunea lor.", shareTitle: "Alătură-te unei sesiuni de colaborare în direct pe Excalidraw" }, d = { title: "Eroare" }, p = { disk_title: "Salvare pe disc", disk_details: "Exportă datele scenei pe un fișier din care poți importa mai târziu.", disk_button: "Salvare în fișier", link_title: "URL partajabil", link_details: "Exportă ca URL doar în citire.", link_button: "Exportare în URL", excalidrawplus_description: "Salvează scena în spațiul de lucru Excalidraw+.", excalidrawplus_button: "Exportare", excalidrawplus_exportError: "Excalidraw+ nu a putut fi exportat în acest moment..." }, m = { blog: "Citește blogul nostru", click: "clic", deepSelect: "Selectare de adâncime", deepBoxSelect: "Selectare de adâncime în casetă și prevenire glisare", curvedArrow: "Săgeată curbată", curvedLine: "Linie curbată", documentation: "Documentație", doubleClick: "dublu clic", drag: "glisare", editor: "Editor", editLineArrowPoints: "Editare puncte de săgeată/rând", editText: "Editare text/adăugare etichetă", github: "Ai întâmpinat o problemă? Trimite un raport", howto: "Urmărește ghidurile noastre", or: "sau", preventBinding: "Împiedică legarea săgeții", tools: "Instrumente", shortcuts: "Comenzi rapide de la tastatură", textFinish: "Finalizează editarea (editor de text)", textNewLine: "Adaugă o linie nouă (editor de text)", title: "Ajutor", view: "Vizualizare", zoomToFit: "Transfocare pentru a cuprinde totul", zoomToSelection: "Transfocare la selecție", toggleElementLock: "Blocare/deblocare selecție", movePageUpDown: "Deplasare pagină sus/jos", movePageLeftRight: "Deplasare pagină stânga/dreapta" }, E = { title: "Ștergere pânză" }, x = { title: "Publicare bibliotecă", itemName: "Denumirea elementului", authorName: "Numele autorului", githubUsername: "Numele de utilizator GitHub", twitterUsername: "Numele de utilizator Twitter", libraryName: "Denumirea bibliotecii", libraryDesc: "Descrierea bibliotecii", website: "Pagină de internet", placeholder: { authorName: "Numele sau numele tău de utilizator", libraryName: "Numele bibliotecii tale", libraryDesc: "Descrierea bibliotecii tale pentru a ajuta oamenii să înțeleagă utilizarea acesteia", githubHandle: "Numele de utilizator GitHub (opțional), pentru a putea edita biblioteca odată ce este trimisă spre revizuire", twitterHandle: "Numele de utilizator Twitter (opțional), pentru a indica sursa la promovarea pe Twitter", website: "Trimitere către pagina ta personală de internet sau altundeva (opțional)" }, errors: { required: "Obligatoriu", website: "Introdu un URL valid" }, noteDescription: "Trimite-ți biblioteca pentru a fi inclusă în <link>depozitul de biblioteci publice</link> în vederea utilizării de către alte persoane în desenele lor.", noteGuidelines: "Biblioteca trebuie aprobată manual mai întâi. Citește <link>orientările</link> înainte de trimitere. Vei avea nevoie de un cont GitHub pentru a comunica și efectua modificări, dacă este cazul, însă nu este strict necesar.", noteLicense: "Prin trimiterea bibliotecii, ești de acord că aceasta va fi publicată sub <link>Licența MIT, </link>care, pe scurt, înseamnă că oricine o poate folosi fără restricții.", noteItems: "Fiecare element din bibliotecă trebuie să aibă propriul nume astfel încât să fie filtrabil. Următoarele elemente din bibliotecă vor fi incluse:", atleastOneLibItem: "Selectează cel puțin un element din bibliotecă pentru a începe", republishWarning: "Observație: unele dintre elementele selectate sunt marcate ca fiind deja publicate/trimise. Ar trebui să retrimiți elemente numai atunci când actualizezi o trimitere sau o bibliotecă existentă." }, b = { title: "Bibliotecă trimisă", content: "Îți mulțumim, {{authorName}}. Biblioteca a fost trimisă spre revizuire. Poți urmări starea <link>aici</link>" }, g = { resetLibrary: "Resetare bibliotecă", removeItemsFromLib: "Elimină elementele selectate din bibliotecă" }, v = { header: "Exportare imagine", label: { withBackground: "Fundal", onlySelected: "Numai selecția", darkMode: "Mod întunecat", embedScene: "Încorporare scenă", scale: "Scală", padding: "Spațiere" }, tooltip: { embedScene: `Datele scenei vor fi salvate în fișierul PNG/SVG exportat, astfel că scena va putea fi restaurată din acesta.
10
+ Va crește dimensiunea fișierului exportat.` }, title: { exportToPng: "Exportare ca PNG", exportToSvg: "Exportare ca SVG", copyPngToClipboard: "Copiere PNG în memoria temporară" }, button: { exportToPng: "PNG", exportToSvg: "SVG", copyPngToClipboard: "Copiere în memoria temporară" } }, f = { tooltip: "Desenele tale sunt criptate integral, astfel că serverele Excalidraw nu le vor vedea niciodată.", link: "Articol de blog pe criptarea integrală din Excalidraw" }, B = { angle: "Unghi", element: "Element", elements: "Elemente", height: "Înălțime", scene: "Scenă", selected: "Selectate", storage: "Stocare", title: "Statistici pentru pasionați", total: "Total", version: "Versiune", versionCopy: "Clic pentru copiere", versionNotAvailable: "Versiune indisponibilă", width: "Lățime" }, S = { addedToLibrary: "Adăugat în bibliotecă", copyStyles: "Stiluri copiate.", copyToClipboard: "Copiat în memoria temporară.", copyToClipboardAsPng: `S-a copiat {{exportSelection}} în memoria temporară sub formă de PNG
11
+ ({{exportColorScheme}})`, fileSaved: "Fișier salvat.", fileSavedToFilename: "Salvat în {filename}", canvas: "pânza", selection: "selecția", pasteAsSingleElement: `Folosește {{shortcut}} pentru a insera ca un singur element
12
+ sau insera într-un editor de text existent`, unableToEmbed: "Încorporarea acestui URL nu este permisă momentan. Deschideți un tichet cu probleme pe GitHub pentru a solicita adăugarea acestui URL în lista albă", unrecognizedLinkFormat: "URL-ul pe care l-ai încorporat nu coincide cu formatul așteptat. Încearcă să lipești șirul „de încorporat” furnizat de pagina sursă" }, z = { transparent: "Transparent", black: "Negru", white: "Alb", red: "Roșu", pink: "Roz", grape: "Struguriu", violet: "Violet", gray: "Gri", blue: "Albastru", cyan: "Cyan", teal: "Cyan-verde", green: "Verde", yellow: "Galben", orange: "Portocaliu", bronze: "Bronz" }, C = { app: { center_heading: "Toate datele tale sunt salvate local în navigatorul tău.", center_heading_plus: "Ai vrut să mergi în schimb la Excalidraw+?", menuHint: "Exportare, preferințe, limbi, ..." }, defaults: { menuHint: "Exportare, preferințe și mai multe...", center_heading: "Diagrame. Făcute. Simple.", toolbarHint: "Alege un instrument și începe să desenezi!", helpHint: "Comenzi rapide și ajutor" } }, h = { mostUsedCustomColors: "Cele mai utilizate culori personalizate", colors: "Culori", shades: "Nuanțe", hexCode: "Cod hexa", noShades: "Nu este disponibilă nicio nuanță pentru această culoare" }, L = { action: { exportToImage: { title: "Exportare ca imagine", button: "Exportare ca imagine", description: "Exportă datele scenei ca fișier din care poți importa mai târziu." }, saveToDisk: { title: "Salvare pe disc", button: "Salvare pe disc", description: "Exportă datele scenei pe un fișier din care poți importa mai târziu." }, excalidrawPlus: { title: "Excalidraw+", button: "Exportare în Excalidraw+", description: "Salvează scena în spațiul de lucru Excalidraw+." } }, modal: { loadFromFile: { title: "Încărcare din fișier", button: "Încărcare din fișier", description: "Încărcarea dintr-un fișier va <bold>înlocui conținutul existent</bold>.<br></br>Poți face mai întâi o copie de rezervă a desenului folosind una dintre opțiunile de mai jos." }, shareableLink: { title: "Încărcare din lnk", button: "Înlocuiește conținutul meu", description: "Încărcarea unui desen extern va <bold>înlocui conținutul existent</bold>.<br></br>Poți face mai întâi o copie de rezervă a desenului folosind una dintre opțiunile de mai jos." } } }, y = { title: "Mermaid la Excalidraw", button: "Introducere", description: "În prezent, numai <flowchartLink>Organigramele</flowchartLink>, <sequenceLink>Diagramele de secvență</sequenceLink> și <classLink>Diagramele de clasă</classLink> sunt acceptate. Celelalte tipuri vor fi redate ca imagine în Excalidraw.", syntax: "Sintaxă Mermaid", preview: "Previzualizare" }, D = { labels: e, library: a, buttons: i, alerts: r, errors: t, toolBar: u, headings: n, hints: o, canvasError: l, errorSplash: c, roomDialog: s, errorDialog: d, exportDialog: p, helpDialog: m, clearCanvasDialog: E, publishDialog: x, publishSuccessDialog: b, confirmDialog: g, imageExportDialog: v, encrypted: f, stats: B, toast: S, colors: z, welcomeScreen: C, colorPicker: h, overwriteConfirm: L, mermaid: y };
13
+ export {
14
+ r as alerts,
15
+ i as buttons,
16
+ l as canvasError,
17
+ E as clearCanvasDialog,
18
+ h as colorPicker,
19
+ z as colors,
20
+ g as confirmDialog,
21
+ D as default,
22
+ f as encrypted,
23
+ d as errorDialog,
24
+ c as errorSplash,
25
+ t as errors,
26
+ p as exportDialog,
27
+ n as headings,
28
+ m as helpDialog,
29
+ o as hints,
30
+ v as imageExportDialog,
31
+ e as labels,
32
+ a as library,
33
+ y as mermaid,
34
+ L as overwriteConfirm,
35
+ x as publishDialog,
36
+ b as publishSuccessDialog,
37
+ s as roomDialog,
38
+ B as stats,
39
+ S as toast,
40
+ u as toolBar,
41
+ C as welcomeScreen
42
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),n=require("react"),V=require("react-i18next"),i=require("./layers.Bl7UAGKH.js"),J=require("@mantine/core"),Q=require("@layers-app/shared"),$=t=>{const{width:c,height:r,isLoading:h,isError:S,src:f,id:m,altText:p,imageRef:x,maxWidth:g}=t;return u.jsxs("div",{className:"media-wrapper",style:{width:c,height:r,display:"inline-flex",position:"relative"},children:[u.jsx(J.LoadingOverlay,{visible:h,zIndex:1e3,overlayProps:{backgroundOpacity:.5},loaderProps:{size:24,color:"black"}}),u.jsx(X,{className:null,src:f,altText:p,imageRef:x,width:"inherit",height:"inherit",maxWidth:g||"auto",id:m})]})};function X({altText:t,className:c,imageRef:r,src:h,width:S,height:f,maxWidth:m,id:p}){const[x,g]=n.useState(!1);return u.jsx("img",{className:`${c||void 0} ${x?"":"loading"}`,src:h,alt:t,ref:r,style:{height:f,maxWidth:m,width:S},onLoad:()=>{h.includes("splash")?setTimeout(()=>{g(!0)},100):g(!0)},draggable:"false","data-id":p})}function Y({src:t,altText:c,nodeKey:r,width:h,height:S,maxWidth:f,showCaption:m,caption:p,id:x,create:g,alignment:k}){var q,U;const M=n.useRef(null),[C,I]=n.useState(!0),[l]=i.o(),[w,j]=n.useState(!0),[d,y]=n.useState({width:0,height:0}),{start:H,cancel:D}=i.useCancelUpload(),[T,z]=n.useState(0),{fetchUploadMedia:L,fetchDeleteMedia:W,maxFileSize:Z}=n.useContext(i.Context),v=i.mediaMap.has(t)&&(((q=i.mediaMap.get(t))==null?void 0:q.mediaNodeKeys.length)===0||((U=i.mediaMap.get(t))==null?void 0:U.mediaNodeKeys.length)===void 0||t.trim()===""),{t:N}=V.useTranslation(),[K,_]=n.useState(0);n.useEffect(()=>l.registerDecoratorListener(()=>{_(e=>e+1)}),[v]),n.useEffect(()=>{if(!t||t.startsWith("data:image/")||!t.trim()){I(!1);return}const e=new Image;e.src=t,e.onload=()=>I(!1),e.onerror=()=>{I(!1)}},[t,v]);const F=(e,s)=>{l.update(()=>{i.wo(null);const o=i.xo(r);i.$isImageNode(o)&&o.setWidthAndHeight(e,s)})},{historyState:P}=i.useSharedHistoryContext(),{settings:{showNestedEditorTreeView:A}}=i.useSettings(),[b,E]=n.useState(!1);function B(e){return e.endsWith(".svg")||e.includes("image/svg+xml")}function G(e){return new Promise((s,o)=>{if(B(e)){s(0);return}const a=new Image;a.src=e,a.onload=()=>{s(a.width)},a.onerror=()=>{o(new Error("Failed to load image"))}})}n.useEffect(()=>{g&&E(!0)},[g]),n.useEffect(()=>{let e=h,s=S,o=100;(t.includes("unsplash")?t.trim():!v&&t.trim()||t.includes("upload-src-editor"))&&t!=="upload"&&G(t).then(a=>{typeof e=="number"&&e<o&&a<o?(j(!0),y({width:e,height:s})):a<o?(j(!0),y({width:"auto",height:"auto"})):(y({width:a,height:a}),j(!1))}).catch(a=>{console.warn("Ошибка при загрузке изображения:",a.message)})},[t,v]),n.useEffect(()=>{d.width&&d.height&&w&&l.update(()=>{const e=i.xo(r);i.$isImageNode(e)&&e.setWidthAndHeight(d.width,d.height)})},[d.width,d.height,w]),n.useEffect(()=>{const e=document.documentElement;i.toggleLockScroll(b,e)},[b]),n.useEffect(()=>l.registerCommand(i.UPLOAD_IMAGE_COMMAND,e=>(t==="upload"&&O(e),!1),i.zi),[t,C]);const R=(e,s)=>{I(!1),l.update(()=>{const o=i.xo(r);i.$isImageNode(o)&&(o.setSrc(e),o.setId(s))})},O=e=>{I(!0);const s=H();L&&L(e[0],(o,a)=>{R(o,a),z(0)},o=>{o&&Q.showErrorNotification({message:N("editor.gallery.errorFile")}),z(0),R("","")},s,o=>{z(o)})};return!t||t==="upload"?u.jsx(i.ImagePicker,{uploading:!1,onUpload:e=>{!L||!e.length||(O(e),E(!1))},popoverProps:{opened:b,position:"bottom",onChange:E},onChange:e=>{E(!1),l.update(()=>{const s=i.xo(r);i.$isImageNode(s)&&s.setSrc(e)})},children:u.jsx(i.EmptyNodeButton,{title:N("editor.image.add_photo"),icon:"photo",onClick:()=>E(!b),isLoading:C,progress:T,onAfterCancel:()=>{D(),I(!1)}})}):w?u.jsx($,{width:d.width,height:d.height,isLoading:C,isError:!1,isIcon:w,src:t,id:x,editor:l,nodeKey:r,fetchDeleteMedia:W,altText:c,imageRef:M,maxWidth:f,showCaption:m,caption:p,isCollabActive:!1,historyState:P,showNestedEditorTreeView:A,t:N}):u.jsx(i.ResizableContainer,{editor:l,isIcon:w,width:i.parseContainerSize(h),height:i.parseContainerSize(S),initialWidth:d.width||"",initialHeight:d.height||"",onResizeEnd:F,alignment:k,children:u.jsx($,{width:"inherit",height:"inherit",isLoading:C,isError:!1,isIcon:w,src:t,id:x,editor:l,nodeKey:r,fetchDeleteMedia:W,altText:c,imageRef:M,maxWidth:f,showCaption:m,caption:p,isCollabActive:!1,historyState:P,showNestedEditorTreeView:A,t:N})})}exports.default=Y;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var o=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((l,s)=>{const r=document.createElement("input");r.type="file",r.webkitdirectory=!0;const a=t=>{typeof i=="function"&&i(),l(t)},i=e[0].legacySetup&&e[0].legacySetup(a,()=>i(s),r);r.addEventListener("change",()=>{let t=Array.from(r.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(c=>c.webkitRelativePath.split("/").every(n=>!e[0].skipDirectory({name:n,kind:"directory"})))):t=t.filter(c=>c.webkitRelativePath.split("/").length===2),a(t)}),r.click()}));exports.default=o;