@layers-app/editor 0.3.11 → 0.4.1-progress-bar.2

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 (246) hide show
  1. package/README.md +215 -1
  2. package/dist/index.cjs +2 -2
  3. package/dist/index.d.ts +3 -2
  4. package/dist/index.js +6 -6
  5. package/dist/layers.-81wcqwR.js +41 -0
  6. package/dist/layers.0GG-c34P.js +36 -0
  7. package/dist/layers.0dm3eLYv.js +1265 -0
  8. package/dist/layers.0nFmx-Nl.js +1 -0
  9. package/dist/layers.1Z2fyz6H.js +7 -0
  10. package/dist/layers.2b70kvMG.js +9 -0
  11. package/dist/layers.3Vvyhk66.js +904 -0
  12. package/dist/layers.475BZq-C.js +4 -0
  13. package/dist/layers.52famHy6.js +1 -0
  14. package/dist/layers.6F0lZyGr.js +1 -0
  15. package/dist/layers.6iBZ8vbZ.js +7 -0
  16. package/dist/layers.7JqFgE4-.js +15 -0
  17. package/dist/layers.7Q7ZqlHQ.js +1 -0
  18. package/dist/layers.9QK1wiQj.js +1 -0
  19. package/dist/layers.9pNaFvaX.js +1 -0
  20. package/dist/layers.AhhllI1F.js +1088 -0
  21. package/dist/layers.B0UW1RmX.js +10 -0
  22. package/dist/layers.B19hGmey.js +1 -0
  23. package/dist/layers.B1jSvo4Q.js +282 -0
  24. package/dist/layers.B2QmFAKW.js +1 -0
  25. package/dist/layers.B3D4g2HH.js +1 -0
  26. package/dist/layers.B4KbvY3e.js +2235 -0
  27. package/dist/layers.B4b5hMwb.js +40 -0
  28. package/dist/layers.B4kpLyJz.js +39 -0
  29. package/dist/layers.B6ZNsH3T.js +21763 -0
  30. package/dist/layers.B6_dw_8p.js +7 -0
  31. package/dist/layers.B7X5RC-0.js +41 -0
  32. package/dist/layers.B9u9oq3T.js +5 -0
  33. package/dist/layers.BALYUkwP.js +139 -0
  34. package/dist/layers.BAtv1CM7.js +1 -0
  35. package/dist/layers.BBJp9IW9.js +39 -0
  36. package/dist/layers.BChOvfAr.js +33 -0
  37. package/dist/layers.BE8bNWW6.js +423 -0
  38. package/dist/layers.BEfOaBAZ.js +8 -0
  39. package/dist/layers.BHRWU6d9.js +32 -0
  40. package/dist/layers.BIeVwYKL.js +1 -0
  41. package/dist/layers.BJHPodZD.js +5 -0
  42. package/dist/layers.BJml6l4c.js +1619 -0
  43. package/dist/layers.BP5yLKDB.js +40 -0
  44. package/dist/layers.BSTBZrFn.js +1 -0
  45. package/dist/layers.BXFaNlXe.js +10 -0
  46. package/dist/layers.BY2fzSoa.js +320 -0
  47. package/dist/layers.BZ9Uzt2l.js +52 -0
  48. package/dist/layers.BbCfEXyj.js +55 -0
  49. package/dist/layers.BcAVvZP0.js +8 -0
  50. package/dist/layers.BddeOe_0.js +41 -0
  51. package/dist/layers.Bde9z6ba.js +9 -0
  52. package/dist/layers.Bdvy9kzf.js +37 -0
  53. package/dist/layers.Bf9MFDYo.js +37 -0
  54. package/dist/layers.BgOa2ZQq.js +7 -0
  55. package/dist/layers.BglhCs7Q.js +42 -0
  56. package/dist/layers.BhHN_OCL.js +41 -0
  57. package/dist/layers.BhOVSyoa.js +116 -0
  58. package/dist/layers.BiJ8hfRt.js +1510 -0
  59. package/dist/layers.Bk6BXLzz.js +425 -0
  60. package/dist/layers.Bm9nXP7b.js +4 -0
  61. package/dist/layers.BncZBAFy.js +4 -0
  62. package/dist/layers.BpilXLfW.js +6 -0
  63. package/dist/{layers.YZkXZvVS.js → layers.Bq-5GZP6.js} +20995 -19802
  64. package/dist/layers.BtlLD-Rz.js +11 -0
  65. package/dist/layers.BtpIOF4Z.js +9 -0
  66. package/dist/layers.Bu56Qesy.js +10 -0
  67. package/dist/layers.BxIw0gJL.js +11 -0
  68. package/dist/layers.ByYR4L98.js +8 -0
  69. package/dist/layers.C-pbN-0O.js +34 -0
  70. package/dist/layers.C0DJ9ilm.js +1 -0
  71. package/dist/layers.C0Lgw_Sx.js +11688 -0
  72. package/dist/layers.C2gAR4en.js +6 -0
  73. package/dist/layers.C4ceUEtT.js +6 -0
  74. package/dist/layers.C5RRQdrQ.js +39 -0
  75. package/dist/layers.C5U5RNdV.js +38 -0
  76. package/dist/layers.C5hVV8XE.js +10 -0
  77. package/dist/layers.C6jxjtyC.js +8 -0
  78. package/dist/layers.C7lIplJU.js +247 -0
  79. package/dist/layers.C83RWXIj.js +2966 -0
  80. package/dist/layers.C8_lu5UH.js +23 -0
  81. package/dist/layers.C9yHqpLC.js +1 -0
  82. package/dist/layers.CATiNc07.js +37 -0
  83. package/dist/layers.CCoKbqGZ.js +32 -0
  84. package/dist/layers.CCwQVeNG.js +96 -0
  85. package/dist/layers.CG1igXgx.js +65 -0
  86. package/dist/layers.CGE7HTrP.js +790 -0
  87. package/dist/layers.CGmH2sSj.js +160 -0
  88. package/dist/layers.CHZsXQcr.js +1 -0
  89. package/dist/layers.CJWyW1s7.js +33 -0
  90. package/dist/layers.CK2uPIaB.js +9 -0
  91. package/dist/layers.CKVT6drc.js +6 -0
  92. package/dist/layers.COAF7f8g.js +1 -0
  93. package/dist/layers.COS6XeQZ.js +8 -0
  94. package/dist/layers.CP5YFYP0.js +185 -0
  95. package/dist/layers.CQefO3zC.js +960 -0
  96. package/dist/layers.CRMWsjPz.js +6 -0
  97. package/dist/layers.CXXPElSu.js +40 -0
  98. package/dist/layers.CZ9XE70C.js +10 -0
  99. package/dist/layers.CZtDXioS.js +44 -0
  100. package/dist/layers.C_BxYlPZ.js +1580 -0
  101. package/dist/layers.C_UcfwnG.js +6 -0
  102. package/dist/layers.CaLgCU_I.js +32 -0
  103. package/dist/layers.CavVjyC7.js +32 -0
  104. package/dist/layers.Cd4UYQEy.js +5 -0
  105. package/dist/layers.CeERe4hA.js +803 -0
  106. package/dist/layers.CgTtEOpk.js +2479 -0
  107. package/dist/layers.CgYKHJl1.js +437 -0
  108. package/dist/layers.Cgmo79x3.js +11 -0
  109. package/dist/layers.CjMeAmJX.js +1034 -0
  110. package/dist/layers.Ck0n4XD7.js +1 -0
  111. package/dist/layers.CkJ9q_L1.js +1 -0
  112. package/dist/layers.Cl-Lwb04.js +8 -0
  113. package/dist/layers.CnZce7UZ.js +59 -0
  114. package/dist/layers.Co5PaFBV.js +257 -0
  115. package/dist/layers.CoC4j3uL.js +230 -0
  116. package/dist/layers.CopJUlxy.js +42 -0
  117. package/dist/layers.Cp-0WnDT.js +122 -0
  118. package/dist/layers.Cpwze_cl.js +40 -0
  119. package/dist/layers.CqVTtuYm.js +6 -0
  120. package/dist/layers.CrqG-Duk.js +5 -0
  121. package/dist/layers.Crw1IGs-.js +42 -0
  122. package/dist/layers.CsPue_MQ.js +51 -0
  123. package/dist/layers.Cs_T7j-N.js +1283 -0
  124. package/dist/layers.CtLZ9mwp.js +2 -0
  125. package/dist/layers.CukiNGgZ.js +186 -0
  126. package/dist/layers.CvbXz5-5.js +39 -0
  127. package/dist/layers.CxjTeNJ7.js +40 -0
  128. package/dist/layers.Cxopck3h.js +13 -0
  129. package/dist/layers.CyE3jBBZ.js +1126 -0
  130. package/dist/layers.Cy_IG1Gv.js +7 -0
  131. package/dist/layers.Cz1nKHwt.js +7 -0
  132. package/dist/layers.CzRcgWY1.js +21938 -0
  133. package/dist/layers.D0CU4TN8.js +8 -0
  134. package/dist/layers.D0_MMsE9.js +42 -0
  135. package/dist/layers.D0zn4_Mx.js +1 -0
  136. package/dist/layers.D2U67Gni.js +9 -0
  137. package/dist/layers.D34e2jIm.js +2 -0
  138. package/dist/layers.D3QNp_mQ.js +40 -0
  139. package/dist/layers.D4ZUbUXz.js +10 -0
  140. package/dist/layers.D4fGb2cV.js +1272 -0
  141. package/dist/layers.D7Lv0jOC.js +39 -0
  142. package/dist/layers.D7jGxypv.js +8 -0
  143. package/dist/layers.DA80zVTT.js +32 -0
  144. package/dist/layers.DAhZhj49.js +220 -0
  145. package/dist/layers.DC76pGI6.js +36 -0
  146. package/dist/layers.DCm28WHr.js +1 -0
  147. package/dist/layers.DEBlIxtT.js +1 -0
  148. package/dist/layers.DEHlDscq.js +8 -0
  149. package/dist/layers.DEiI3uTS.js +1 -0
  150. package/dist/layers.DFO1fD9L.js +6 -0
  151. package/dist/layers.DFVmKOXm.js +118 -0
  152. package/dist/layers.DGgRL8Nc.js +39 -0
  153. package/dist/layers.DHpypOQI.js +84 -0
  154. package/dist/layers.DJLV698B.js +793 -0
  155. package/dist/layers.DKZkGAQ_.js +202 -0
  156. package/dist/layers.DKeh-lZI.js +1 -0
  157. package/dist/layers.DLB4eAfo.js +1089 -0
  158. package/dist/layers.DLRyMrlf.js +10 -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.DND9ZxpV.js +40 -0
  163. package/dist/layers.DOYs_uMx.js +802 -0
  164. package/dist/layers.DOrgOHBr.js +1 -0
  165. package/dist/layers.DRGpaHAX.js +41 -0
  166. package/dist/layers.D_AP_tA5.js +9 -0
  167. package/dist/layers.D_MmQzRm.js +207 -0
  168. package/dist/layers.D_sfrDwe.js +70 -0
  169. package/dist/layers.DaUhvLRp.js +10 -0
  170. package/dist/layers.DaoO_UDV.js +9 -0
  171. package/dist/layers.DbaKVP5e.js +1 -0
  172. package/dist/layers.Dbdn8XSd.js +1 -0
  173. package/dist/layers.DfR442P5.js +40 -0
  174. package/dist/layers.DfoJ9Kxs.js +1 -0
  175. package/dist/layers.DgpXAlfL.js +373 -0
  176. package/dist/layers.Dh54vG6t.js +268 -0
  177. package/dist/layers.DhcjxJPA.js +501 -0
  178. package/dist/layers.DhzzXhmQ.js +1359 -0
  179. package/dist/layers.Dixyg94K.js +36 -0
  180. package/dist/layers.Dj3HYSyh.js +7 -0
  181. package/dist/layers.DjUOC4st.js +16 -0
  182. package/dist/layers.DkLyYgOg.js +38 -0
  183. package/dist/layers.DkT2sxcJ.js +931 -0
  184. package/dist/layers.DkleVc4L.js +5 -0
  185. package/dist/layers.DoAq7C3B.js +139 -0
  186. package/dist/layers.Dr3N180D.js +35 -0
  187. package/dist/layers.Drb2mcdd.js +2 -0
  188. package/dist/layers.DtDMtcjv.js +84 -0
  189. package/dist/layers.DtOlJEpj.js +39 -0
  190. package/dist/layers.Dut27cU5.js +42 -0
  191. package/dist/layers.Dx5j_aMV.js +7 -0
  192. package/dist/layers.DxA6ocdw.js +70 -0
  193. package/dist/layers.Dy-AuShh.js +9 -0
  194. package/dist/layers.Dy1naDTQ.js +14 -0
  195. package/dist/layers.DyJZaSCk.js +40 -0
  196. package/dist/layers.DyU8JNlG.js +41 -0
  197. package/dist/layers.DytwjiIF.js +8 -0
  198. package/dist/layers.DyyemvLl.js +36 -0
  199. package/dist/layers.DzphOPQJ.js +19 -0
  200. package/dist/layers.J1ihPiBi.js +7 -0
  201. package/dist/layers.JWCLFILJ.js +1 -0
  202. package/dist/layers.JcQwzHu2.js +9 -0
  203. package/dist/layers.JnLVZ-1W.js +61 -0
  204. package/dist/layers.MfBuwYip.js +39 -0
  205. package/dist/layers.OMZyjZaa.js +1 -0
  206. package/dist/layers.OZhDjtkp.js +1 -0
  207. package/dist/layers.SNwJ50Yh.js +769 -0
  208. package/dist/layers.X930Wyd9.js +9 -0
  209. package/dist/layers.YBnRzjtX.js +1 -0
  210. package/dist/{layers.BnjxHNDK.js → layers.YE5h1RJ0.js} +84 -84
  211. package/dist/layers.YhDm2Yt0.js +37 -0
  212. package/dist/layers.ZE7W-HjF.js +10 -0
  213. package/dist/layers._ZR3qWqZ.js +41 -0
  214. package/dist/layers.b0h5ZBmD.js +61 -0
  215. package/dist/layers.b4ac2O9O.js +35 -0
  216. package/dist/layers.bzxdqd7a.js +11 -0
  217. package/dist/{layers.C125HTat.js → layers.fjeoVipI.js} +1 -1
  218. package/dist/layers.hEiS_6X7.js +1 -0
  219. package/dist/layers.hweLqW3I.js +261 -0
  220. package/dist/layers.iK5LSRjJ.js +11 -0
  221. package/dist/layers.ipZc_UQ4.js +8 -0
  222. package/dist/layers.itQhFK_P.js +48146 -0
  223. package/dist/layers.ix2kR4vq.js +9165 -0
  224. package/dist/layers.jLGyr7oL.js +3 -0
  225. package/dist/layers.k60iEoD4.js +41 -0
  226. package/dist/layers.l06k9Lu3.js +1 -0
  227. package/dist/layers.lCMwJpWR.js +4 -0
  228. package/dist/layers.lCpg7dOn.js +21 -0
  229. package/dist/layers.lPp5HcdT.js +40 -0
  230. package/dist/layers.lUeeFrHR.js +10 -0
  231. package/dist/layers.os9El-5G.js +39 -0
  232. package/dist/layers.pSPpASHH.js +35 -0
  233. package/dist/layers.s006AAsW.js +1 -0
  234. package/dist/layers.sFiVxDwP.js +1 -0
  235. package/dist/layers.sWO0agP4.js +295 -0
  236. package/dist/layers.tSiLqPQw.js +1 -0
  237. package/dist/layers.uZTzmOsK.js +38 -0
  238. package/dist/layers.uzGJX2RJ.js +14 -0
  239. package/dist/layers.vZPmwsoq.js +32 -0
  240. package/dist/layers.wBjmBWfX.js +1 -0
  241. package/package.json +33 -17
  242. package/dist/layers.Cjs5EBWM.js +0 -343
  243. package/dist/layers.DPccTctI.js +0 -285
  244. package/dist/layers.DZ8DrrVn.js +0 -53491
  245. package/dist/layers.QVaGPbs3.js +0 -161
  246. package/dist/layers.VK3NB7Nd.js +0 -1
@@ -0,0 +1,40 @@
1
+ import "./layers.B6ZNsH3T.js";
2
+ var e = { paste: "Pegar", pasteAsPlaintext: "Pegar como texto sin formato", pasteCharts: "Pegar gráficos", selectAll: "Seleccionar todo", multiSelect: "Añadir elemento a la selección", moveCanvas: "Mover el lienzo", cut: "Cortar", copy: "Copiar", copyAsPng: "Copiar al portapapeles como PNG", copyAsSvg: "Copiar al portapapeles como SVG", copyText: "Copiar al portapapeles como texto", copySource: "Copiar fuente al portapapeles", convertToCode: "Convertir a código", bringForward: "Traer hacia delante", sendToBack: "Enviar al fondo", bringToFront: "Traer al frente", sendBackward: "Enviar atrás", delete: "Borrar", copyStyles: "Copiar estilos", pasteStyles: "Pegar estilos", stroke: "Trazo", background: "Fondo", fill: "Rellenar", strokeWidth: "Grosor del trazo", strokeStyle: "Estilo del trazo", strokeStyle_solid: "Sólido", strokeStyle_dashed: "Discontinua", strokeStyle_dotted: "Punteado", sloppiness: "Estilo de trazo", opacity: "Opacidad", textAlign: "Alineado de texto", edges: "Bordes", sharp: "Afilado", round: "Redondo", arrowheads: "Puntas de flecha", arrowhead_none: "Ninguna", arrowhead_arrow: "Flecha", arrowhead_bar: "Barra", arrowhead_circle: "Círculo", arrowhead_circle_outline: "Círculo (contorno)", arrowhead_triangle: "Triángulo", arrowhead_triangle_outline: "Triángulo (contorno)", arrowhead_diamond: "Diamante", arrowhead_diamond_outline: "Diamante (contorno)", fontSize: "Tamaño de la fuente", fontFamily: "Tipo de fuente", addWatermark: 'Agregar "Hecho con Excalidraw"', handDrawn: "Dibujado a mano", normal: "Normal", code: "Código", small: "Pequeña", medium: "Mediana", large: "Grande", veryLarge: "Muy grande", solid: "Sólido", hachure: "Folleto", zigzag: "Zigzag", crossHatch: "Rayado transversal", thin: "Fino", bold: "Grueso", left: "Izquierda", center: "Centrado", right: "Derecha", extraBold: "Extra negrita", architect: "Arquitecto", artist: "Artista", cartoonist: "Caricatura", fileTitle: "Nombre del archivo", colorPicker: "Selector de color", canvasColors: "Usado en lienzo", canvasBackground: "Fondo del lienzo", drawingCanvas: "Lienzo de dibujo", layers: "Capas", actions: "Acciones", language: "Idioma", liveCollaboration: "Colaboración en directo...", duplicateSelection: "Duplicar", untitled: "Sin título", name: "Nombre", yourName: "Tu nombre", madeWithExcalidraw: "Hecho con Excalidraw", group: "Agrupar selección", ungroup: "Desagrupar selección", collaborators: "Colaboradores", showGrid: "Mostrar cuadrícula", addToLibrary: "Añadir a la biblioteca", removeFromLibrary: "Eliminar de la biblioteca", libraryLoadingMessage: "Cargando biblioteca…", libraries: "Explorar bibliotecas", loadingScene: "Cargando escena…", align: "Alinear", alignTop: "Alineación superior", alignBottom: "Alineación inferior", alignLeft: "Alinear a la izquierda", alignRight: "Alinear a la derecha", centerVertically: "Centrar verticalmente", centerHorizontally: "Centrar horizontalmente", distributeHorizontally: "Distribuir horizontalmente", distributeVertically: "Distribuir verticalmente", flipHorizontal: "Girar horizontalmente", flipVertical: "Girar verticalmente", viewMode: "Modo presentación", share: "Compartir", showStroke: "Mostrar selector de color de trazo", showBackground: "Mostrar el selector de color de fondo", toggleTheme: "Cambiar tema", personalLib: "Biblioteca personal", excalidrawLib: "Biblioteca Excalidraw", decreaseFontSize: "Disminuir tamaño de letra", increaseFontSize: "Aumentar el tamaño de letra", unbindText: "Desvincular texto", bindText: "Vincular texto al contenedor", createContainerFromText: "Envolver el texto en un contenedor", link: { edit: "Editar enlace", editEmbed: "Editar enlace e incrustar", create: "Crear enlace", createEmbed: "Crear enlace e incrustar", label: "Enlace", labelEmbed: "Enlazar e incrustar", empty: "No se ha establecido un enlace" }, lineEditor: { edit: "Editar línea", exit: "Salir del editor en línea" }, elementLock: { lock: "Bloquear", unlock: "Desbloquear", lockAll: "Bloquear todo", unlockAll: "Desbloquear todo" }, statusPublished: "Publicado", sidebarLock: "Mantener barra lateral abierta", selectAllElementsInFrame: "Seleccionar todos los elementos en el marco", removeAllElementsFromFrame: "Eliminar todos los elementos del marco", eyeDropper: "Seleccionar un color del lienzo", textToDiagram: "Texto a diagrama", prompt: "Sugerencia" }, a = { noItems: "No hay elementos añadidos todavía...", hint_emptyLibrary: "Seleccione un elemento en el lienzo para añadirlo aquí, o instale una biblioteca del repositorio público, a continuación.", hint_emptyPrivateLibrary: "Seleccione un elemento del lienzo para añadirlo aquí." }, o = { clearReset: "Limpiar lienzo y reiniciar el color de fondo", exportJSON: "Exportar a archivo", exportImage: "Exportar imagen...", export: "Guardar en...", copyToClipboard: "Copiar al portapapeles", save: "Guardar en archivo actual", saveAs: "Guardar como", load: "Abrir", getShareableLink: "Obtener enlace para compartir", close: "Cerrar", selectLanguage: "Elegir idioma", scrollBackToContent: "Volver al contenido", zoomIn: "Acercarse", zoomOut: "Alejarse", resetZoom: "Restablecer zoom", menu: "Menú", done: "Hecho", edit: "Editar", undo: "Deshacer", redo: "Rehacer", resetLibrary: "Reiniciar biblioteca", createNewRoom: "Crear nueva sala", fullScreen: "Pantalla completa", darkMode: "Modo oscuro", lightMode: "Modo claro", zenMode: "Modo Zen", objectsSnapMode: "Ajustar a los objetos", exitZenMode: "Salir del modo Zen", cancel: "Cancelar", clear: "Borrar", remove: "Eliminar", embed: "", publishLibrary: "Publicar", submit: "Enviar", confirm: "Confirmar", embeddableInteractionButton: "Pulsa para interactuar" }, r = { clearReset: "Esto limpiará todo el lienzo. Estás seguro?", couldNotCreateShareableLink: "No se pudo crear un enlace para compartir.", couldNotCreateShareableLinkTooBig: "No se pudo crear el enlace para compartir: la escena es demasiado grande", couldNotLoadInvalidFile: "No se pudo cargar el archivo no válido", importBackendFailed: "La importación falló.", cannotExportEmptyCanvas: "No se puede exportar un lienzo vació", couldNotCopyToClipboard: "No se pudo copiar al portapapeles.", decryptFailed: "No se pudieron descifrar los datos.", uploadedSecurly: "La carga ha sido asegurada con cifrado de principio a fin, lo que significa que el servidor de Excalidraw y terceros no pueden leer el contenido.", loadSceneOverridePrompt: "Si carga este dibujo externo, reemplazará el que tiene. ¿Desea continuar?", collabStopOverridePrompt: `Detener la sesión sobrescribirá su dibujo anterior almacenado localmente. ¿Está seguro?
3
+
4
+ (Si desea mantener su dibujo local, simplemente cierre la pestaña del navegador.)`, errorAddingToLibrary: "No se pudo agregar el elemento a la biblioteca", errorRemovingFromLibrary: "No se pudo quitar el elemento de la biblioteca", confirmAddLibrary: "Esto añadirá {{numShapes}} forma(s) a tu biblioteca. ¿Estás seguro?", imageDoesNotContainScene: "Esta imagen no parece contener datos de escena. ¿Ha habilitado la inserción de la escena durante la exportación?", cannotRestoreFromImage: "No se pudo restaurar la escena desde este archivo de imagen", invalidSceneUrl: "No se ha podido importar la escena desde la URL proporcionada. Está mal formada, o no contiene datos de Excalidraw JSON válidos.", resetLibrary: "Esto borrará tu biblioteca. ¿Estás seguro?", removeItemsFromsLibrary: "¿Eliminar {{count}} elemento(s) de la biblioteca?", invalidEncryptionKey: "La clave de cifrado debe tener 22 caracteres. La colaboración en vivo está deshabilitada.", collabOfflineWarning: `No hay conexión a internet disponible.
5
+ ¡No se guardarán los cambios!` }, i = { unsupportedFileType: "Tipo de archivo no admitido.", imageInsertError: "No se pudo insertar la imagen. Inténtelo de nuevo más tarde...", fileTooBig: "Archivo demasiado grande. El tamaño máximo permitido es {{maxSize}}.", svgImageInsertError: "No se pudo insertar la imagen SVG. El código SVG parece inválido.", failedToFetchImage: "Error al obtener la imagen.", invalidSVGString: "SVG no válido.", cannotResolveCollabServer: "No se pudo conectar al servidor colaborador. Por favor, vuelva a cargar la página y vuelva a intentarlo.", importLibraryError: "No se pudo cargar la librería", collabSaveFailed: "No se pudo guardar en la base de datos del backend. Si los problemas persisten, debería guardar su archivo localmente para asegurarse de que no pierde su trabajo.", collabSaveFailed_sizeExceeded: "No se pudo guardar en la base de datos del backend, el lienzo parece ser demasiado grande. Debería guardar el archivo localmente para asegurarse de que no pierde su trabajo.", imageToolNotSupported: "", brave_measure_text_error: { line1: "Parece que estás usando el navegador Brave con el ajuste <bold>Forzar el bloqueo de huellas digitales</bold> habilitado.", line2: "Esto podría resultar en errores en los <bold>Elementos de Texto</bold> en tus dibujos.", line3: "Recomendamos fuertemente deshabilitar esta configuración. Puedes seguir <link>estos pasos</link> sobre cómo hacerlo.", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "Los elementos IFrame no se pueden agregar a la biblioteca.", image: "" }, asyncPasteFailedOnRead: "No se pudo pegar (no se pudo leer desde el portapapeles del sistema).", asyncPasteFailedOnParse: "No se pudo pegar.", copyToSystemClipboardFailed: "No se pudo copiar al portapapeles." }, n = { selection: "Selección", image: "Insertar imagen", rectangle: "Rectángulo", diamond: "Diamante", ellipse: "Elipse", arrow: "Flecha", line: "Línea", freedraw: "Dibujar", text: "Texto", library: "Biblioteca", lock: "Mantener la herramienta seleccionada activa después de dibujar", penMode: "Modo Lápiz - previene toque", link: "Añadir/Actualizar enlace para una forma seleccionada", eraser: "Borrar", frame: "", magicframe: "Esquema a código", embeddable: "Incrustar Web", laser: "Puntero láser", hand: "Mano (herramienta de panoramización)", extraTools: "Más herramientas", mermaidToExcalidraw: "Mermaid a Excalidraw", magicSettings: "Ajustes AI" }, t = { canvasActions: "Acciones del lienzo", selectedShapeActions: "Acciones de la forma seleccionada", shapes: "Formas" }, l = { canvasPanning: "Para mover el lienzo, mantenga la rueda del ratón o la barra espaciadora mientras arrastra o utilice la herramienta de mano", linearElement: "Haz clic para dibujar múltiples puntos, arrastrar para solo una línea", freeDraw: "Haz clic y arrastra, suelta al terminar", text: "Consejo: también puedes añadir texto haciendo doble clic en cualquier lugar con la herramienta de selección", embeddable: "Haga clic y arrastre para crear un sitio web incrustado", text_selected: "Doble clic o pulse ENTER para editar el texto", text_editing: "Pulse Escape o Ctrl/Cmd + ENTER para terminar de editar", linearElementMulti: "Haz clic en el último punto o presiona Escape o Enter para finalizar", lockAngle: "Puedes restringir el ángulo manteniendo presionado el botón SHIFT", resize: `Para mantener las proporciones mantén SHIFT presionado mientras modificas el tamaño,
6
+ mantén presionado ALT para modificar el tamaño desde el centro`, resizeImage: `Puede redimensionar libremente pulsando SHIFT,
7
+ pulse ALT para redimensionar desde el centro`, rotate: "Puedes restringir los ángulos manteniendo presionado SHIFT mientras giras", lineEditor_info: "Mantenga pulsado CtrlOrCmd y haga doble click o presione CtrlOrCmd + Enter para editar puntos", lineEditor_pointSelected: "Presione Suprimir para eliminar el/los punto(s), CtrlOrCmd+D para duplicarlo, o arrástrelo para moverlo", lineEditor_nothingSelected: `Seleccione un punto a editar (mantenga MAYÚSCULAS para seleccionar múltiples),
8
+ o mantenga pulsado Alt y haga click para añadir nuevos puntos`, placeImage: "Haga clic para colocar la imagen o haga click y arrastre para establecer su tamaño manualmente", publishLibrary: "Publica tu propia biblioteca", bindTextToElement: "Presione Entrar para agregar", deepBoxSelect: "Mantén CtrlOrCmd para seleccionar en profundidad, y para evitar arrastrar", eraserRevert: "Mantenga pulsado Alt para revertir los elementos marcados para su eliminación", firefox_clipboard_write: 'Esta característica puede ser habilitada estableciendo la bandera "dom.events.asyncClipboard.clipboardItem" a "true". Para cambiar las banderas del navegador en Firefox, visite la página "about:config".', disableSnapping: "Mantén pulsado CtrlOrCmd para desactivar el ajuste" }, s = { cannotShowPreview: "No se puede mostrar la vista previa", canvasTooBig: "El lienzo podría ser demasiado grande.", canvasTooBigTip: "Sugerencia: intenta acercar un poco más los elementos más lejanos." }, d = { headingMain: "Se encontró un error. Intente <button>recargando la página.</button>", clearCanvasMessage: "Si la recarga no funciona, intente <button>limpiando el lienzo.</button>", clearCanvasCaveat: " Esto provocará la pérdida de su trabajo ", trackedToSentry: "El error con el identificador {{eventId}} fue rastreado en nuestro sistema.", openIssueMessage: "Fuimos muy cautelosos de no incluir la información de tu escena en el error. Si tu escena no es privada, por favor considera seguir nuestro <button>rastreador de errores.</button> Por favor, incluya la siguiente información copiándola y pegándola en el issue de GitHub.", sceneContent: "Contenido de la escena:" }, c = { desc_intro: "Puede invitar a otras personas a tu actual escena para que colaboren contigo.", desc_privacy: "No te preocupes, la sesión usa encriptación de punta a punta, por lo que todo lo que se dibuje se mantendrá privadamente. Ni siquiera nuestro servidor podrá ver lo que haces.", button_startSession: "Iniciar sesión", button_stopSession: "Detener sesión", desc_inProgressIntro: "La sesión de colaboración en vivo está ahora en progreso.", desc_shareLink: "Comparte este enlace con cualquier persona con quien quieras colaborar:", desc_exitSession: "Detener la sesión te desconectará de la sala, pero podrás seguir trabajando con la escena en su computadora, esto es de modo local. Ten en cuenta que esto no afectará a otras personas, y que las mismas seguirán siendo capaces de colaborar en tu escena.", shareTitle: "Únase a una sesión colaborativa en vivo en Excalidraw" }, u = { title: "Error" }, p = { disk_title: "Guardar en disco", disk_details: "Exportar los datos de la escena a un archivo desde el cual pueda importar más tarde.", disk_button: "Guardar en archivo", link_title: "Enlace para compartir", link_details: "Exportar como enlace de sólo lectura.", link_button: "Exportar a Link", excalidrawplus_description: "Guarde la escena en su espacio de trabajo de Excalidraw+.", excalidrawplus_button: "Exportar", excalidrawplus_exportError: "No se pudo exportar a Excalidraw+ en este momento..." }, m = { blog: "Lea nuestro blog", click: "click", deepSelect: "Selección profunda", deepBoxSelect: "Seleccione en profundidad dentro de la caja, y evite arrastrar", curvedArrow: "Flecha curva", curvedLine: "Línea curva", documentation: "Documentación", doubleClick: "doble clic", drag: "arrastrar", editor: "Editor", editLineArrowPoints: "Editar puntos de línea/flecha", editText: "Editar texto / añadir etiqueta", github: "¿Ha encontrado un problema? Envíelo", howto: "Siga nuestras guías", or: "o", preventBinding: "Evitar enlace de flechas", tools: "Herramientas", shortcuts: "Atajos del teclado", textFinish: "Finalizar edición (editor de texto)", textNewLine: "Añadir nueva linea (editor de texto)", title: "Ayuda", view: "Vista", zoomToFit: "Ajustar la vista para mostrar todos los elementos", zoomToSelection: "Ampliar selección", toggleElementLock: "Bloquear/desbloquear selección", movePageUpDown: "Mover página hacia arriba/abajo", movePageLeftRight: "Mover página hacia la izquierda/derecha" }, b = { title: "Borrar lienzo" }, x = { title: "Publicar biblioteca", itemName: "Nombre del artículo", authorName: "Nombre del autor", githubUsername: "Nombre de usuario de GitHub", twitterUsername: "Nombre de usuario de Twitter", libraryName: "Nombre de la biblioteca", libraryDesc: "Descripción de la biblioteca", website: "Sitio Web", placeholder: { authorName: "Nombre o nombre de usuario", libraryName: "Nombre de tu biblioteca", libraryDesc: "Descripción de su biblioteca para ayudar a la gente a entender su uso", githubHandle: "Nombre de usuario de GitHub (opcional), así podrá editar la biblioteca una vez enviada para su revisión", twitterHandle: "Nombre de usuario de Twitter (opcional), así sabemos a quién acreditar cuando se promociona en Twitter", website: "Enlace a su sitio web personal o en cualquier otro lugar (opcional)" }, errors: { required: "Requerido", website: "Introduce una URL válida" }, noteDescription: "Envía tu biblioteca para ser incluida en el <link>repositorio de librería pública</link>para que otras personas utilicen en sus dibujos.", noteGuidelines: "La biblioteca debe ser aprobada manualmente primero. Por favor, lea la <link>pautas</link> antes de enviar. Necesitará una cuenta de GitHub para comunicarse y hacer cambios si se solicita, pero no es estrictamente necesario.", noteLicense: "Al enviar, usted acepta que la biblioteca se publicará bajo el <link>Licencia MIT </link>que en breve significa que cualquiera puede utilizarlos sin restricciones.", noteItems: "Cada elemento de la biblioteca debe tener su propio nombre para que sea filtrable. Los siguientes elementos de la biblioteca serán incluidos:", atleastOneLibItem: "Por favor, seleccione al menos un elemento de la biblioteca para empezar", republishWarning: "Nota: algunos de los elementos seleccionados están marcados como ya publicados/enviados. Sólo debería volver a enviar elementos cuando se actualice una biblioteca o envío." }, g = { title: "Biblioteca enviada", content: "Gracias {{authorName}}. Su biblioteca ha sido enviada para ser revisada. Puede seguir el estado<link>aquí</link>" }, E = { resetLibrary: "Reiniciar biblioteca", removeItemsFromLib: "Eliminar elementos seleccionados de la biblioteca" }, v = { header: "Exportar imagen", label: { withBackground: "Fondo", onlySelected: "Sólo seleccionados", darkMode: "Modo oscuro", embedScene: "Incrustar escena", scale: "Escalar", padding: "Espaciado" }, tooltip: { embedScene: "" }, title: { exportToPng: "Exportar a PNG", exportToSvg: "Exportar a SVG", copyPngToClipboard: "Copiar PNG al portapapeles" }, button: { exportToPng: "PNG", exportToSvg: "SVG", copyPngToClipboard: "Copiar al portapapeles" } }, h = { tooltip: "Tus dibujos están cifrados de punto a punto, por lo que los servidores de Excalidraw nunca los verán.", link: "Entrada en el blog sobre cifrado de extremo a extremo" }, F = { angle: "Ángulo", element: "Elemento", elements: "Elementos", height: "Alto", scene: "Escena", selected: "Seleccionado", storage: "Almacenamiento", title: "Estadísticas para nerds", total: "Total", version: "Versión", versionCopy: "Click para copiar", versionNotAvailable: "Versión no disponible", width: "Ancho" }, S = { addedToLibrary: "Añadido a la biblioteca", copyStyles: "Estilos copiados.", copyToClipboard: "Copiado en el portapapeles.", copyToClipboardAsPng: `Copiado {{exportSelection}} al portapapeles como PNG
9
+ ({{exportColorScheme}})`, fileSaved: "Archivo guardado.", fileSavedToFilename: "Guardado en {filename}", canvas: "lienzo", selection: "selección", pasteAsSingleElement: `Usa {{shortcut}} para pegar como un solo elemento,
10
+ o pegar en un editor de texto existente`, unableToEmbed: "", unrecognizedLinkFormat: "" }, y = { transparent: "Transparente", black: "Negro", white: "Blanco", red: "Rojo", pink: "Rosa", grape: "Uva", violet: "Violeta", gray: "Gris", blue: "Azul", cyan: "Cian", teal: "Turquesa", green: "Verde", yellow: "Amarillo", orange: "Naranja", bronze: "Bronce" }, C = { app: { center_heading: "Toda su información es guardada localmente en su navegador.", center_heading_plus: "¿Quieres ir a Excalidraw+?", menuHint: "Exportar, preferencias, idiomas, ..." }, defaults: { menuHint: "Exportar, preferencias y más...", center_heading: "Diagramas. Hecho. Simplemente.", toolbarHint: "¡Elige una herramienta y empieza a dibujar!", helpHint: "Atajos y ayuda" } }, f = { mostUsedCustomColors: "Colores personalizados más utilizados", colors: "Colores", shades: "", hexCode: "Código Hexadecimal", noShades: "" }, D = { action: { exportToImage: { title: "Exportar como imagen", button: "Exportar como imagen", description: "" }, saveToDisk: { title: "Guardar en el disco", button: "Guardar en el disco", description: "Exporta los datos de la escena a un archivo desde el cual podrás importar más tarde." }, excalidrawPlus: { title: "", button: "Exportar a Excalidraw+", description: "" } }, modal: { loadFromFile: { title: "Cargar desde un archivo", button: "Cargar desde un archivo", description: "" }, shareableLink: { title: "Cargar desde un enlace", button: "Reemplazar mi contenido", description: "Cargar un dibujo externo <bold>reemplazará tu contenido existente</bold>.<br></br>Puedes primero hacer una copia de seguridad de tu dibujo usando una de las opciones de abajo." } } }, T = { title: "Mermaid a Excalidraw", button: "Insertar", description: "Actualmente sólo <flowchartLink>Flowchart</flowchartLink>,<sequenceLink> Secuencia, </sequenceLink> y <classLink>Class </classLink>Diagramas son soportados. Los otros tipos se renderizarán como imagen en Excalidraw.", syntax: "Sintaxis Mermaid", preview: "Vista previa" }, k = { labels: e, library: a, buttons: o, alerts: r, errors: i, toolBar: n, headings: t, hints: l, canvasError: s, errorSplash: d, roomDialog: c, errorDialog: u, exportDialog: p, helpDialog: m, clearCanvasDialog: b, publishDialog: x, publishSuccessDialog: g, confirmDialog: E, imageExportDialog: v, encrypted: h, stats: F, toast: S, colors: y, welcomeScreen: C, colorPicker: f, overwriteConfirm: D, mermaid: T };
11
+ export {
12
+ r as alerts,
13
+ o as buttons,
14
+ s as canvasError,
15
+ b as clearCanvasDialog,
16
+ f as colorPicker,
17
+ y as colors,
18
+ E as confirmDialog,
19
+ k as default,
20
+ h as encrypted,
21
+ u as errorDialog,
22
+ d as errorSplash,
23
+ i as errors,
24
+ p as exportDialog,
25
+ t as headings,
26
+ m as helpDialog,
27
+ l as hints,
28
+ v as imageExportDialog,
29
+ e as labels,
30
+ a as library,
31
+ T as mermaid,
32
+ D as overwriteConfirm,
33
+ x as publishDialog,
34
+ g as publishSuccessDialog,
35
+ c as roomDialog,
36
+ F as stats,
37
+ S as toast,
38
+ n as toolBar,
39
+ C as welcomeScreen
40
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var s=async(t=[{}])=>(Array.isArray(t)||(t=[t]),new Promise((n,c)=>{const e=document.createElement("input");e.type="file";const r=[...t.map(i=>i.mimeTypes||[]),...t.map(i=>i.extensions||[])].join();e.multiple=t[0].multiple||!1,e.accept=r||"";const a=i=>{typeof l=="function"&&l(),n(i)},l=t[0].legacySetup&&t[0].legacySetup(a,()=>l(c),e);e.addEventListener("change",()=>{a(e.multiple?Array.from(e.files):e.files[0])}),e.click()}));exports.default=s;
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.CoC4j3uL.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
+
3
+ (如果您想保持本地绘图,只需关闭浏览器选项卡。)`,errorAddingToLibrary:"无法将项目添加到素材库中",errorRemovingFromLibrary:"无法从素材库中移除项目",confirmAddLibrary:"这将添加 {{numShapes}} 个形状到您的素材库中。您确定吗?",imageDoesNotContainScene:"此图像似乎不包含任何画布数据。您是否在导出时启用了画布嵌入功能?",cannotRestoreFromImage:"无法从此图像文件恢复画布",invalidSceneUrl:"无法从提供的 URL 导入场景。它或者格式不正确,或者不包含有效的 Excalidraw JSON 数据。",resetLibrary:"这将会清除你的素材库。你确定要这么做吗?",removeItemsFromsLibrary:"确定要从素材库中删除 {{count}} 个项目吗?",invalidEncryptionKey:"密钥必须包含22个字符。实时协作已被禁用。",collabOfflineWarning:`无网络连接。
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来限制比例大小,
5
+ 按住ALT来调整中心大小`,resizeImage:`按住SHIFT可以自由缩放,
6
+ 按住ALT可以从中间缩放`,rotate:"旋转时可以按住 Shift 来约束角度",lineEditor_info:"按住 CtrlOrCmd 并双击或按 CtrlOrCmd + Enter 来编辑点",lineEditor_pointSelected:"按下 Delete 移除点,CtrlOrCmd+D 以复制,拖动以移动",lineEditor_nothingSelected:`选择要编辑的点 (按住 SHIFT 选择多个),
7
+ 或按住 Alt 并点击以添加新点`,placeImage:"点击放置图像,或者点击并拖动以手动设置图像大小",publishLibrary:"发布您自己的素材库",bindTextToElement:"按下 Enter 以添加文本",deepBoxSelect:"按住 CtrlOrCmd 以深度选择,并避免拖拽",eraserRevert:"按住 Alt 以反选被标记删除的元素",firefox_clipboard_write:"将高级配置首选项“dom.events.asyncClipboard.clipboardItem”设置为“true”可以启用此功能。要更改 Firefox 的高级配置首选项,请前往“about:config”页面。",disableSnapping:"按住 Ctrl 或 Cmd 以禁用吸附"},A={cannotShowPreview:"无法显示预览",canvasTooBig:"画布可能过大。",canvasTooBigTip:"提示:尝试将最远的元素移动到和其它元素更近一些。"},t={headingMain:"遇到异常。请尝试<button>重新加载页面</button>。",clearCanvasMessage:"如果重新加载页面无效,请尝试<button>清除画布</button>。",clearCanvasCaveat:"这会造成当前工作丢失",trackedToSentry:"标识符为{{eventId}}的错误已在我们的系统中被记录",openIssueMessage:"我们非常谨慎地处理错误信息,您的画布内容不会被包含在错误报告中。如果您的画布内容不需要保持私密,请考虑在我们的 <button>bug 跟踪系统</button>上提供更多信息。请复制粘贴以下信息到 GitHub Issue 中。",sceneContent:"画布内容:"},o={desc_intro:"你可以邀请其他人到目前的画面中与你协作。",desc_privacy:"别担心,该会话使用端到端加密,无论绘制什么都将保持私密,甚至连我们的服务器也无法查看。",button_startSession:"开始会话",button_stopSession:"结束会话",desc_inProgressIntro:"实时协作会话进行中。",desc_shareLink:"分享此链接给你要协作的用户",desc_exitSession:"停止会话将中断您与房间的连接,但您依然可以在本地继续使用画布。请注意,这不会影响到其他用户,他们仍可以在他们的版本上继续协作。",shareTitle:"加入 Excalidraw 实时协作会话"},a={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 用户名(可选),填写后,您可以编辑已提交待审的素材库",twitterHandle:"Twitter 用户名(可选),填写后,当我们在Twitter发布推广信息时便可提及您",website:"您个人网站的或任意的链接(可选)"},errors:{required:"必填",website:"输入一个有效的URL"},noteDescription:"提交后,您的素材库将被包含在<link>公共素材库广场</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:"您的绘图采用端到端加密,其内容对于 Excalidraw 服务器是不可见的。",link:"Excalidraw 中关于端到端加密的博客"},p={angle:"角度",element:"元素",elements:"元素",height:"高度",scene:"画布",selected:"选中",storage:"存储",title:"详细统计信息",total:"总计",version:"版本",versionCopy:"点击复制",versionNotAvailable:"版本不可用",width:"宽度"},g={addedToLibrary:"添加到素材库中",copyStyles:"样式已拷贝。",copyToClipboard:"已复制到剪切板。",copyToClipboardAsPng:`已将 {{exportSelection}} 作为 PNG 复制到剪贴板
9
+ ({{exportColorScheme}})`,fileSaved:"文件已保存。",fileSavedToFilename:"保存到 {filename}",canvas:"画布",selection:"所选项",pasteAsSingleElement:`使用 {{shortcut}} 粘贴为单个元素,
10
+ 或粘贴到现有的文本编辑器里`,unableToEmbed:"目前不允许嵌入此网址。请在 GitHub 上提 issue 请求将此网址加入白名单",unrecognizedLinkFormat:"您嵌入的链接不符合格式要求。请尝试粘贴源网站提供的“嵌入 (embed)”字符串"},h={transparent:"透明",black:"黑",white:"白",red:"红",pink:"粉红",grape:"紫红",violet:"蓝紫",gray:"灰",blue:"蓝",cyan:"青",teal:"蓝绿",green:"绿",yellow:"黄",orange:"橙",bronze:"古铜"},S={app:{center_heading:"您的所有数据都储存在浏览器本地。",center_heading_plus:"是否前往 Excalidraw+ ?",menuHint:"导出、首选项、语言……"},defaults:{menuHint:"导出、首选项……",center_heading:"图,化繁为简。",toolbarHint:"选择工具并开始绘图!",helpHint:"快捷键和帮助"}},y={mostUsedCustomColors:"常用自定义颜色",colors:"颜色",shades:"色调明暗",hexCode:"十六进制值",noShades:"此颜色没有可用的明暗变化"},w={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>您可以先使用下列方式备份您的绘图。"}}},v={title:"Mermaid 至 Excalidraw",button:"插入",description:"目前仅支持<flowchartLink>流程图</flowchartLink>、<sequenceLink>序列图</sequenceLink>和<classLink>类图</classLink>。其他类型在 Excalidraw 中将以图像呈现。",syntax:"Mermaid 语法",preview:"预览"},k={labels:u,library:F,buttons:E,alerts:e,errors:D,toolBar:B,headings:C,hints:r,canvasError:A,errorSplash:t,roomDialog:o,errorDialog:a,exportDialog:i,helpDialog:l,clearCanvasDialog:n,publishDialog:s,publishSuccessDialog:d,confirmDialog:c,imageExportDialog:m,encrypted:b,stats:p,toast:g,colors:h,welcomeScreen:S,colorPicker:y,overwriteConfirm:w,mermaid:v};exports.alerts=e;exports.buttons=E;exports.canvasError=A;exports.clearCanvasDialog=n;exports.colorPicker=y;exports.colors=h;exports.confirmDialog=c;exports.default=k;exports.encrypted=b;exports.errorDialog=a;exports.errorSplash=t;exports.errors=D;exports.exportDialog=i;exports.headings=C;exports.helpDialog=l;exports.hints=r;exports.imageExportDialog=m;exports.labels=u;exports.library=F;exports.mermaid=v;exports.overwriteConfirm=w;exports.publishDialog=s;exports.publishSuccessDialog=d;exports.roomDialog=o;exports.stats=p;exports.toast=g;exports.toolBar=B;exports.welcomeScreen=S;
@@ -0,0 +1,320 @@
1
+ import { l as Y, A as D, e as M } from "./layers.ix2kR4vq.js";
2
+ import "./layers.B6ZNsH3T.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,52 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./layers.CCwQVeNG.js");require("lodash-es");const Ve=require("./layers.COAF7f8g.js"),Oe=require("./layers.9QK1wiQj.js");require("./layers.CoC4j3uL.js");const Le=require("./layers.0nFmx-Nl.js");var ce=(function(){var e=function(V,i,r,a){for(r=r||{},a=V.length;a--;r[V[a]]=i);return r},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],v=[1,25],N=[1,26],x=[1,27],$=[1,20],S=[1,28],A=[1,29],M=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],ye=[1,48],fe=[1,49],_e=[1,50],ge=[1,51],Ee=[1,52],Re=[1,53],L=[53,54],D=[1,64],P=[1,60],Y=[1,61],U=[1,62],B=[1,63],Q=[1,65],z=[1,69],X=[1,70],J=[1,67],Z=[1,68],I=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ne={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,r,a,n,y,s,K){var _=s.length-1;switch(y){case 4:this.$=s[_].trim(),n.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),n.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:n.addRequirement(s[_-3],s[_-4]);break;case 14:n.setNewReqId(s[_-2]);break;case 15:n.setNewReqText(s[_-2]);break;case 16:n.setNewReqRisk(s[_-2]);break;case 17:n.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=n.RequirementType.REQUIREMENT;break;case 21:this.$=n.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=n.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=n.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=n.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=n.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=n.RiskLevel.LOW_RISK;break;case 27:this.$=n.RiskLevel.MED_RISK;break;case 28:this.$=n.RiskLevel.HIGH_RISK;break;case 29:this.$=n.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=n.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=n.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=n.VerifyType.VERIFY_TEST;break;case 33:n.addElement(s[_-3]);break;case 34:n.setNewElementType(s[_-2]);break;case 35:n.setNewElementDocRef(s[_-2]);break;case 38:n.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:n.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=n.Relationships.CONTAINS;break;case 41:this.$=n.Relationships.COPIES;break;case 42:this.$=n.Relationships.DERIVES;break;case 43:this.$=n.Relationships.SATISFIES;break;case 44:this.$=n.Relationships.VERIFIES;break;case 45:this.$=n.Relationships.REFINES;break;case 46:this.$=n.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:v,35:N,36:x,44:$,62:S,63:A},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(M,[2,20]),e(M,[2,21]),e(M,[2,22]),e(M,[2,23]),e(M,[2,24]),e(M,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:ye,57:fe,58:_e,59:ge,60:Ee,61:Re},{52:54,55:pe,56:ye,57:fe,58:_e,59:ge,60:Ee,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(L,[2,40]),e(L,[2,41]),e(L,[2,42]),e(L,[2,43]),e(L,[2,44]),e(L,[2,45]),e(L,[2,46]),{54:[1,58]},{5:D,20:59,21:P,24:Y,26:U,28:B,30:Q},{5:z,30:X,46:66,47:J,49:Z},{23:71,62:S,63:A},{23:72,62:S,63:A},e(I,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:D,20:77,21:P,24:Y,26:U,28:B,30:Q},e(I,[2,19]),e(I,[2,33]),{22:[1,78]},{22:[1,79]},{5:z,30:X,46:80,47:J,49:Z},e(I,[2,37]),e(I,[2,38]),e(I,[2,39]),{23:81,62:S,63:A},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(I,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(I,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:D,20:106,21:P,24:Y,26:U,28:B,30:Q},{5:D,20:107,21:P,24:Y,26:U,28:B,30:Q},{5:D,20:108,21:P,24:Y,26:U,28:B,30:Q},{5:D,20:109,21:P,24:Y,26:U,28:B,30:Q},{5:z,30:X,46:110,47:J,49:Z},{5:z,30:X,46:111,47:J,49:Z},e(I,[2,14]),e(I,[2,15]),e(I,[2,16]),e(I,[2,17]),e(I,[2,34]),e(I,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=r,a}},parse:function(i){var r=this,a=[0],n=[],y=[null],s=[],K=this.table,_="",ee=0,me=0,ve=2,Ie=1,$e=s.slice.call(arguments,1),E=Object.create(this.lexer),C={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(C.yy[se]=this.yy[se]);E.setInput(i,C.yy),C.yy.lexer=E,C.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ae=E.yylloc;s.push(ae);var we=E.options&&E.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qe(){var q;return q=n.pop()||E.lex()||Ie,typeof q!="number"&&(q instanceof Array&&(n=q,q=n.pop()),q=r.symbols_[q]||q),q}for(var b,F,T,le,H={},te,w,be,ie;;){if(F=a[a.length-1],this.defaultActions[F]?T=this.defaultActions[F]:((b===null||typeof b>"u")&&(b=qe()),T=K[F]&&K[F][b]),typeof T>"u"||!T.length||!T[0]){var oe="";ie=[];for(te in K[F])this.terminals_[te]&&te>ve&&ie.push("'"+this.terminals_[te]+"'");E.showPosition?oe="Parse error on line "+(ee+1)+`:
2
+ `+E.showPosition()+`
3
+ Expecting `+ie.join(", ")+", got '"+(this.terminals_[b]||b)+"'":oe="Parse error on line "+(ee+1)+": Unexpected "+(b==Ie?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(oe,{text:E.match,token:this.terminals_[b]||b,line:E.yylineno,loc:ae,expected:ie})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+b);switch(T[0]){case 1:a.push(b),y.push(E.yytext),s.push(E.yylloc),a.push(T[1]),b=null,me=E.yyleng,_=E.yytext,ee=E.yylineno,ae=E.yylloc;break;case 2:if(w=this.productions_[T[1]][1],H.$=y[y.length-w],H._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},we&&(H._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),le=this.performAction.apply(H,[_,me,ee,C.yy,T[1],y,s].concat($e)),typeof le<"u")return le;w&&(a=a.slice(0,-1*w*2),y=y.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[T[1]][0]),y.push(H.$),s.push(H._$),be=K[a[a.length-2]][a[a.length-1]],a.push(be);break;case 3:return!0}}return!0}},Ae=(function(){var V={EOF:1,parseError:function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===n.length?this.yylloc.first_column:0)+n[n.length-a.length].length-a[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
5
+ `+r+"^"},test_match:function(i,r){var a,n,y;if(this.options.backtrack_lexer&&(y={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(y.yylloc.range=this.yylloc.range.slice(0))),n=i[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,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(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in y)this[s]=y[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,r,a,n;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),s=0;s<y.length;s++)if(a=this._input.match(this.rules[y[s]]),a&&(!r||a[0].length>r[0].length)){if(r=a,n=s,this.options.backtrack_lexer){if(i=this.test_match(a,y[s]),i!==!1)return i;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(i=this.test_match(r,y[n]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,a,n,y){switch(n){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return a.yytext=a.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return V})();ne.lexer=Ae;function re(){this.yy={}}return re.prototype=ne,ne.Parser=re,new re})();ce.parser=ce;const Ce=ce;let ue=[],k={},G={},O={},j={};const Fe={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Me={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},De={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Pe={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Ye=(e,t)=>(G[e]===void 0&&(G[e]={name:e,type:t,id:k.id,text:k.text,risk:k.risk,verifyMethod:k.verifyMethod}),k={},G[e]),Ue=()=>G,Be=e=>{k!==void 0&&(k.id=e)},Qe=e=>{k!==void 0&&(k.text=e)},He=e=>{k!==void 0&&(k.risk=e)},We=e=>{k!==void 0&&(k.verifyMethod=e)},Ke=e=>(j[e]===void 0&&(j[e]={name:e,type:O.type,docRef:O.docRef},m.log$1.info("Added new requirement: ",e)),O={},j[e]),Ge=()=>j,je=e=>{O!==void 0&&(O.type=e)},ze=e=>{O!==void 0&&(O.docRef=e)},Xe=(e,t,l)=>{ue.push({type:e,src:t,dst:l})},Je=()=>ue,Ze=()=>{ue=[],k={},G={},O={},j={},m.clear()},et={RequirementType:Fe,RiskLevel:Me,VerifyType:De,Relationships:Pe,getConfig:()=>m.getConfig().req,addRequirement:Ye,getRequirements:Ue,setNewReqId:Be,setNewReqText:Qe,setNewReqRisk:He,setNewReqVerifyMethod:We,setAccTitle:m.setAccTitle,getAccTitle:m.getAccTitle,setAccDescription:m.setAccDescription,getAccDescription:m.getAccDescription,addElement:Ke,getElements:Ge,setNewElementType:je,setNewElementDocRef:ze,addRelationship:Xe,getRelationships:Je,clear:Ze},tt=e=>`
7
+
8
+ marker {
9
+ fill: ${e.relationColor};
10
+ stroke: ${e.relationColor};
11
+ }
12
+
13
+ marker.cross {
14
+ stroke: ${e.lineColor};
15
+ }
16
+
17
+ svg {
18
+ font-family: ${e.fontFamily};
19
+ font-size: ${e.fontSize};
20
+ }
21
+
22
+ .reqBox {
23
+ fill: ${e.requirementBackground};
24
+ fill-opacity: 1.0;
25
+ stroke: ${e.requirementBorderColor};
26
+ stroke-width: ${e.requirementBorderSize};
27
+ }
28
+
29
+ .reqTitle, .reqLabel{
30
+ fill: ${e.requirementTextColor};
31
+ }
32
+ .reqLabelBox {
33
+ fill: ${e.relationLabelBackground};
34
+ fill-opacity: 1.0;
35
+ }
36
+
37
+ .req-title-line {
38
+ stroke: ${e.requirementBorderColor};
39
+ stroke-width: ${e.requirementBorderSize};
40
+ }
41
+ .relationshipLine {
42
+ stroke: ${e.relationColor};
43
+ stroke-width: 1;
44
+ }
45
+ .relationshipLabel {
46
+ fill: ${e.relationLabelColor};
47
+ }
48
+
49
+ `,it=tt,he={CONTAINS:"contains",ARROW:"arrow"},nt=(e,t)=>{let l=e.append("defs").append("marker").attr("id",he.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");l.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),l.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),l.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",he.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0
50
+ L${t.line_height},${t.line_height/2}
51
+ M${t.line_height},${t.line_height/2}
52
+ L0,${t.line_height}`).attr("stroke-width",1)},Se={ReqMarkers:he,insertLineEndings:nt};let f={},ke=0;const Te=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",f.rect_min_width+"px").attr("height",f.rect_min_height+"px"),Ne=(e,t,l)=>{let c=f.rect_min_width/2,u=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",c).attr("y",f.rect_padding).attr("dominant-baseline","hanging"),d=0;l.forEach(g=>{d==0?u.append("tspan").attr("text-anchor","middle").attr("x",f.rect_min_width/2).attr("dy",0).text(g):u.append("tspan").attr("text-anchor","middle").attr("x",f.rect_min_width/2).attr("dy",f.line_height*.75).text(g),d++});let p=1.5*f.rect_padding,h=d*f.line_height*.75,o=p+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",f.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:u,y:o}},xe=(e,t,l,c)=>{let u=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",f.rect_padding).attr("y",c).attr("dominant-baseline","hanging"),d=0;const p=30;let h=[];return l.forEach(o=>{let g=o.length;for(;g>p&&d<3;){let R=o.substring(0,p);o=o.substring(p,o.length),g=o.length,h[h.length]=R,d++}if(d==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;d=0}),h.forEach(o=>{u.append("tspan").attr("x",f.rect_padding).attr("dy",f.line_height).text(o)}),u},rt=(e,t,l,c)=>{const u=t.node().getTotalLength(),d=t.node().getPointAtLength(u*.5),p="rel"+ke;ke++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",p).attr("x",d.x).attr("y",d.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(c).node().getBBox();e.insert("rect","#"+p).attr("class","req reqLabelBox").attr("x",d.x-o.width/2).attr("y",d.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},st=function(e,t,l,c,u){const d=l.edge(W(t.src),W(t.dst)),p=Le.line().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+c).attr("class","er relationshipLine").attr("d",p(d.points)).attr("fill","none");t.type==u.db.Relationships.CONTAINS?h.attr("marker-start","url("+m.common$1.getUrl(f.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+m.common$1.getUrl(f.arrowMarkerAbsolute)+"#"+Se.ReqMarkers.ARROW+"_line_ending)")),rt(e,h,f,`<<${t.type}>>`)},at=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];c=W(c),m.log$1.info("Added new requirement: ",c);const d=l.append("g").attr("id",c),p="req-"+c,h=Te(d,p);let o=Ne(d,c+"_title",[`<<${u.type}>>`,`${u.name}`]);xe(d,c+"_body",[`Id: ${u.id}`,`Text: ${u.text}`,`Risk: ${u.risk}`,`Verification: ${u.verifyMethod}`],o.y);const g=h.node().getBBox();t.setNode(c,{width:g.width,height:g.height,shape:"rect",id:c})})},lt=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];const d=W(c),p=l.append("g").attr("id",d),h="element-"+d,o=Te(p,h);let g=Ne(p,h+"_title",["<<Element>>",`${c}`]);xe(p,h+"_body",[`Type: ${u.type||"Not Specified"}`,`Doc Ref: ${u.docRef||"None"}`],g.y);const R=o.node().getBBox();t.setNode(d,{width:R.width,height:R.height,shape:"rect",id:d})})},ot=(e,t)=>(e.forEach(function(l){let c=W(l.src),u=W(l.dst);t.setEdge(c,u,{relationship:l})}),e),ct=function(e,t){t.nodes().forEach(function(l){l!==void 0&&t.node(l)!==void 0&&(e.select("#"+l),e.select("#"+l).attr("transform","translate("+(t.node(l).x-t.node(l).width/2)+","+(t.node(l).y-t.node(l).height/2)+" )"))})},W=e=>e.replace(/\s/g,"").replace(/\./g,"_"),ht=(e,t,l,c)=>{f=m.getConfig().requirement;const u=f.securityLevel;let d;u==="sandbox"&&(d=m.select("#i"+t));const h=(u==="sandbox"?m.select(d.nodes()[0].contentDocument.body):m.select("body")).select(`[id='${t}']`);Se.insertLineEndings(h,f);const o=new Oe.Graph({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:f.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let g=c.db.getRequirements(),R=c.db.getElements(),v=c.db.getRelationships();at(g,o,h),lt(R,o,h),ot(v,o),Ve.layout(o),ct(h,o),v.forEach(function(A){st(h,A,o,t,c)});const N=f.rect_padding,x=h.node().getBBox(),$=x.width+N*2,S=x.height+N*2;m.configureSvgSize(h,S,$,f.useMaxWidth),h.attr("viewBox",`${x.x-N} ${x.y-N} ${$} ${S}`)},ut={draw:ht},dt={parser:Ce,db:et,renderer:ut,styles:it};exports.diagram=dt;
@@ -0,0 +1,55 @@
1
+ function u(t) {
2
+ function i(r) {
3
+ if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
4
+ var n = r.done;
5
+ return Promise.resolve(r.value).then(function(s) {
6
+ return { value: s, done: n };
7
+ });
8
+ }
9
+ return u = function(r) {
10
+ this.s = r, this.n = r.next;
11
+ }, u.prototype = { s: null, n: null, next: function() {
12
+ return i(this.n.apply(this.s, arguments));
13
+ }, return: function(r) {
14
+ var n = this.s.return;
15
+ return n === void 0 ? Promise.resolve({ value: r, done: !0 }) : i(n.apply(this.s, arguments));
16
+ }, throw: function(r) {
17
+ var n = this.s.return;
18
+ return n === void 0 ? Promise.reject(r) : i(n.apply(this.s, arguments));
19
+ } }, new u(t);
20
+ }
21
+ const p = async (t, i, r = t.name, n) => {
22
+ const s = [], y = [];
23
+ var v, c = !1, d = !1;
24
+ try {
25
+ for (var h, f = (function(e) {
26
+ var o, a, l, w = 2;
27
+ for (typeof Symbol < "u" && (a = Symbol.asyncIterator, l = Symbol.iterator); w--; ) {
28
+ if (a && (o = e[a]) != null) return o.call(e);
29
+ if (l && (o = e[l]) != null) return new u(o.call(e));
30
+ a = "@@asyncIterator", l = "@@iterator";
31
+ }
32
+ throw new TypeError("Object is not async iterable");
33
+ })(t.values()); c = !(h = await f.next()).done; c = !1) {
34
+ const e = h.value, o = `${r}/${e.name}`;
35
+ e.kind === "file" ? y.push(e.getFile().then((a) => (a.directoryHandle = t, a.handle = e, Object.defineProperty(a, "webkitRelativePath", { configurable: !0, enumerable: !0, get: () => o })))) : e.kind !== "directory" || !i || n && n(e) || s.push(p(e, i, o, n));
36
+ }
37
+ } catch (e) {
38
+ d = !0, v = e;
39
+ } finally {
40
+ try {
41
+ c && f.return != null && await f.return();
42
+ } finally {
43
+ if (d) throw v;
44
+ }
45
+ }
46
+ return [...(await Promise.all(s)).flat(), ...await Promise.all(y)];
47
+ };
48
+ var m = async (t = {}) => {
49
+ t.recursive = t.recursive || !1;
50
+ const i = await window.showDirectoryPicker({ id: t.id, startIn: t.startIn });
51
+ return p(i, t.recursive, void 0, t.skipDirectory);
52
+ };
53
+ export {
54
+ m as default
55
+ };