@graphty/graph-io 0.3.48 → 0.3.49

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 (570) hide show
  1. package/dist/chunks/{approximations-C2riR4NT.js → approximations-Bzn3L-je.js} +2 -2
  2. package/dist/chunks/{approximations-C2riR4NT.js.map → approximations-Bzn3L-je.js.map} +1 -1
  3. package/dist/chunks/bends-BGXjv_U4.js +129 -0
  4. package/dist/chunks/bends-BGXjv_U4.js.map +1 -0
  5. package/dist/chunks/{block-Cu22ewuS.js → block-iptrlMBb.js} +906 -164
  6. package/dist/chunks/block-iptrlMBb.js.map +1 -0
  7. package/dist/chunks/choose-CczZJaX_.js +717 -0
  8. package/dist/chunks/choose-CczZJaX_.js.map +1 -0
  9. package/dist/chunks/{codes-CV_Bhcyi.js → codes-BE2xir2k.js} +6 -2
  10. package/dist/chunks/codes-BE2xir2k.js.map +1 -0
  11. package/dist/chunks/{constants-D0LqcsLJ.js → constants-CKkYLPtt.js} +2 -2
  12. package/dist/chunks/{constants-D0LqcsLJ.js.map → constants-CKkYLPtt.js.map} +1 -1
  13. package/dist/chunks/{context-cgmmOxZ2.js → context-C3p0RQxR.js} +5 -4
  14. package/dist/chunks/{context-cgmmOxZ2.js.map → context-C3p0RQxR.js.map} +1 -1
  15. package/dist/chunks/{convert-BcQ8_jMo.js → convert-Ct2zelbQ.js} +7 -2
  16. package/dist/chunks/convert-Ct2zelbQ.js.map +1 -0
  17. package/dist/chunks/{credentials-BiQsnMTb.js → credentials-DXHx7nwR.js} +16 -14
  18. package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
  19. package/dist/chunks/{cx-export-BEeF6ymo.js → cx-export-Bt6NoqTQ.js} +3 -3
  20. package/dist/chunks/{cx-export-BEeF6ymo.js.map → cx-export-Bt6NoqTQ.js.map} +1 -1
  21. package/dist/chunks/descriptor-B28U25x4.js +60 -0
  22. package/dist/chunks/descriptor-B28U25x4.js.map +1 -0
  23. package/dist/chunks/{descriptor-BJ-W0Jd-.js → descriptor-DLA5kINx.js} +7 -2
  24. package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
  25. package/dist/chunks/{emit-CD8xnY8s.js → emit-BwHQkZle.js} +1660 -133
  26. package/dist/chunks/emit-BwHQkZle.js.map +1 -0
  27. package/dist/chunks/{escape-DH2Egt-l.js → escape-CuCIzNMB.js} +8 -8
  28. package/dist/chunks/{escape-DH2Egt-l.js.map → escape-CuCIzNMB.js.map} +1 -1
  29. package/dist/chunks/{export-CZ7VRm4I.js → export-Cha4dRFz.js} +45 -387
  30. package/dist/chunks/export-Cha4dRFz.js.map +1 -0
  31. package/dist/chunks/{exporter-Dcw7Ldtq.js → exporter-BP6otMO6.js} +6 -6
  32. package/dist/chunks/{exporter-Dcw7Ldtq.js.map → exporter-BP6otMO6.js.map} +1 -1
  33. package/dist/chunks/{exporter-bxxjOrDZ.js → exporter-D2CETOMK.js} +1222 -156
  34. package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
  35. package/dist/chunks/{exporter-BIdaoIgh.js → exporter-D9yMtocA.js} +7 -7
  36. package/dist/chunks/{exporter-BIdaoIgh.js.map → exporter-D9yMtocA.js.map} +1 -1
  37. package/dist/chunks/{exporter-DtVU80Fa.js → exporter-_jrBTnos.js} +9 -8
  38. package/dist/chunks/{exporter-DtVU80Fa.js.map → exporter-_jrBTnos.js.map} +1 -1
  39. package/dist/chunks/{exporter-ChjL5fmP.js → exporter-nDfxIK5D.js} +9 -8
  40. package/dist/chunks/{exporter-ChjL5fmP.js.map → exporter-nDfxIK5D.js.map} +1 -1
  41. package/dist/chunks/format-BXiAb-1h.js +408 -0
  42. package/dist/chunks/format-BXiAb-1h.js.map +1 -0
  43. package/dist/chunks/{generic-CP6YD34u.js → generic-ymWCETAJ.js} +387 -31
  44. package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
  45. package/dist/chunks/{importer-e3huMZbm.js → importer-B92x1xY5.js} +14 -10
  46. package/dist/chunks/importer-B92x1xY5.js.map +1 -0
  47. package/dist/chunks/{importer-B87_fmVx.js → importer-CT9mJ1nn.js} +326 -84
  48. package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
  49. package/dist/chunks/{importer-CB_zV5_L.js → importer-DaLTjbds.js} +116 -1102
  50. package/dist/chunks/importer-DaLTjbds.js.map +1 -0
  51. package/dist/chunks/{importer-DPZDN40-.js → importer-GREKMdIf.js} +25 -17
  52. package/dist/chunks/importer-GREKMdIf.js.map +1 -0
  53. package/dist/chunks/{importer-Bji2MeWr.js → importer-PqaaKKnY.js} +13 -10
  54. package/dist/chunks/{importer-Bji2MeWr.js.map → importer-PqaaKKnY.js.map} +1 -1
  55. package/dist/chunks/{importer-Cyy6UseH.js → importer-Vn5QvmmJ.js} +66 -13
  56. package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
  57. package/dist/chunks/{importer-CVT-JyDE.js → importer-vRq4h3j5.js} +1469 -356
  58. package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
  59. package/dist/chunks/{input-Ccg9I22A.js → input-CAxt_aV-.js} +4 -4
  60. package/dist/chunks/{input-Ccg9I22A.js.map → input-CAxt_aV-.js.map} +1 -1
  61. package/dist/chunks/{json-elements-By172SVq.js → json-elements-Cq76WjnZ.js} +4 -4
  62. package/dist/chunks/{json-elements-By172SVq.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
  63. package/dist/chunks/{lexicon-u2SI5xcx.js → lexicon-Clf4QIyl.js} +282 -74
  64. package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
  65. package/dist/chunks/{ontology-export-BwgMyuF0.js → ontology-export-OMo91mb0.js} +4 -4
  66. package/dist/chunks/{ontology-export-BwgMyuF0.js.map → ontology-export-OMo91mb0.js.map} +1 -1
  67. package/dist/chunks/{records-Cgvxz-Vx.js → records-NJiYvekn.js} +2 -2
  68. package/dist/chunks/{records-Cgvxz-Vx.js.map → records-NJiYvekn.js.map} +1 -1
  69. package/dist/chunks/{report-CgdsL9Hb.js → report-CwMfYa9J.js} +23 -23
  70. package/dist/chunks/{report-CgdsL9Hb.js.map → report-CwMfYa9J.js.map} +1 -1
  71. package/dist/chunks/round-trip-Zm3_ivgq.js +79 -0
  72. package/dist/chunks/round-trip-Zm3_ivgq.js.map +1 -0
  73. package/dist/chunks/{sigv4-LkAzsLAu.js → sigv4-EokFic1V.js} +5 -5
  74. package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
  75. package/dist/chunks/{styles-CaABMoO1.js → styles-CCs214_3.js} +1237 -138
  76. package/dist/chunks/styles-CCs214_3.js.map +1 -0
  77. package/dist/chunks/styles-Cm62yyQX.js +2812 -0
  78. package/dist/chunks/styles-Cm62yyQX.js.map +1 -0
  79. package/dist/chunks/styles-DPQQIig4.js +1928 -0
  80. package/dist/chunks/styles-DPQQIig4.js.map +1 -0
  81. package/dist/chunks/{styles-yed-Cs1nmrjn.js → styles-yed-UMFdNqze.js} +503 -172
  82. package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
  83. package/dist/chunks/{text-BuKQVMz2.js → text-ystE2bYi.js} +2 -2
  84. package/dist/chunks/{text-BuKQVMz2.js.map → text-ystE2bYi.js.map} +1 -1
  85. package/dist/csv.js +7 -7
  86. package/dist/cx.js +2 -2
  87. package/dist/cx2.js +2 -2
  88. package/dist/cys.js +1 -1
  89. package/dist/dot.js +5 -4
  90. package/dist/dot.js.map +1 -1
  91. package/dist/gexf.js +42 -12
  92. package/dist/gexf.js.map +1 -1
  93. package/dist/gml.js +847 -193
  94. package/dist/gml.js.map +1 -1
  95. package/dist/graph-io.js +232 -220
  96. package/dist/graph-io.js.map +1 -1
  97. package/dist/graphml.js +3 -3
  98. package/dist/json.js +3 -2
  99. package/dist/neo4j.js +6 -6
  100. package/dist/obo.js +1 -1
  101. package/dist/pajek.js +1 -1
  102. package/dist/positions.js +45 -3
  103. package/dist/positions.js.map +1 -1
  104. package/dist/sources-cypher.js +138 -23
  105. package/dist/sources-cypher.js.map +1 -1
  106. package/dist/sources-ndex.js +2 -2
  107. package/dist/sources-rest.js +16 -6
  108. package/dist/sources-rest.js.map +1 -1
  109. package/dist/sources-sparql.d.ts +1 -0
  110. package/dist/sources-sparql.js +405 -0
  111. package/dist/sources-sparql.js.map +1 -0
  112. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  113. package/dist/src/formats/cx/importer.js +5 -1
  114. package/dist/src/formats/cx/importer.js.map +1 -1
  115. package/dist/src/formats/cx/styles.d.ts +24 -1
  116. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  117. package/dist/src/formats/cx/styles.js +117 -11
  118. package/dist/src/formats/cx/styles.js.map +1 -1
  119. package/dist/src/formats/cx2/importer.d.ts.map +1 -1
  120. package/dist/src/formats/cx2/importer.js +1 -0
  121. package/dist/src/formats/cx2/importer.js.map +1 -1
  122. package/dist/src/formats/cx2/styles.d.ts.map +1 -1
  123. package/dist/src/formats/cx2/styles.js +3 -1
  124. package/dist/src/formats/cx2/styles.js.map +1 -1
  125. package/dist/src/formats/cys/importer.d.ts.map +1 -1
  126. package/dist/src/formats/cys/importer.js +1 -0
  127. package/dist/src/formats/cys/importer.js.map +1 -1
  128. package/dist/src/formats/cys/styles.d.ts +2 -0
  129. package/dist/src/formats/cys/styles.d.ts.map +1 -1
  130. package/dist/src/formats/cys/styles.js +15 -7
  131. package/dist/src/formats/cys/styles.js.map +1 -1
  132. package/dist/src/formats/dot/drawing.d.ts +98 -0
  133. package/dist/src/formats/dot/drawing.d.ts.map +1 -0
  134. package/dist/src/formats/dot/drawing.js +734 -0
  135. package/dist/src/formats/dot/drawing.js.map +1 -0
  136. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  137. package/dist/src/formats/dot/importer.js +108 -31
  138. package/dist/src/formats/dot/importer.js.map +1 -1
  139. package/dist/src/formats/dot/label-places.d.ts +34 -0
  140. package/dist/src/formats/dot/label-places.d.ts.map +1 -0
  141. package/dist/src/formats/dot/label-places.js +179 -0
  142. package/dist/src/formats/dot/label-places.js.map +1 -0
  143. package/dist/src/formats/dot/record.d.ts +50 -0
  144. package/dist/src/formats/dot/record.d.ts.map +1 -0
  145. package/dist/src/formats/dot/record.js +275 -0
  146. package/dist/src/formats/dot/record.js.map +1 -0
  147. package/dist/src/formats/dot/styles.d.ts +62 -2
  148. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  149. package/dist/src/formats/dot/styles.js +1454 -119
  150. package/dist/src/formats/dot/styles.js.map +1 -1
  151. package/dist/src/formats/gexf/dialog-metrics.d.ts +15 -0
  152. package/dist/src/formats/gexf/dialog-metrics.d.ts.map +1 -0
  153. package/dist/src/formats/gexf/dialog-metrics.js +59 -0
  154. package/dist/src/formats/gexf/dialog-metrics.js.map +1 -0
  155. package/dist/src/formats/gexf/importer.d.ts +7 -0
  156. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  157. package/dist/src/formats/gexf/importer.js +41 -5
  158. package/dist/src/formats/gexf/importer.js.map +1 -1
  159. package/dist/src/formats/gexf/preview.d.ts +77 -0
  160. package/dist/src/formats/gexf/preview.d.ts.map +1 -0
  161. package/dist/src/formats/gexf/preview.js +191 -0
  162. package/dist/src/formats/gexf/preview.js.map +1 -0
  163. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  164. package/dist/src/formats/gexf/schema.js +2 -1
  165. package/dist/src/formats/gexf/schema.js.map +1 -1
  166. package/dist/src/formats/gexf/styles.d.ts +58 -31
  167. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  168. package/dist/src/formats/gexf/styles.js +848 -225
  169. package/dist/src/formats/gexf/styles.js.map +1 -1
  170. package/dist/src/formats/gml/importer.d.ts +5 -2
  171. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  172. package/dist/src/formats/gml/importer.js +258 -71
  173. package/dist/src/formats/gml/importer.js.map +1 -1
  174. package/dist/src/formats/gml/index.d.ts +1 -1
  175. package/dist/src/formats/gml/index.d.ts.map +1 -1
  176. package/dist/src/formats/gml/index.js +1 -1
  177. package/dist/src/formats/gml/index.js.map +1 -1
  178. package/dist/src/formats/gml/positions.d.ts +7 -0
  179. package/dist/src/formats/gml/positions.d.ts.map +1 -1
  180. package/dist/src/formats/gml/positions.js +29 -7
  181. package/dist/src/formats/gml/positions.js.map +1 -1
  182. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  183. package/dist/src/formats/gml/styles.js +753 -101
  184. package/dist/src/formats/gml/styles.js.map +1 -1
  185. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  186. package/dist/src/formats/graphml/styles-plain.js +6 -10
  187. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  188. package/dist/src/formats/graphml/styles-yed.d.ts +21 -15
  189. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  190. package/dist/src/formats/graphml/styles-yed.js +692 -161
  191. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  192. package/dist/src/formats/graphml/styles-yfiles3.d.ts +1 -1
  193. package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
  194. package/dist/src/formats/graphml/styles-yfiles3.js +429 -64
  195. package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
  196. package/dist/src/formats/graphml/yfiles.d.ts +3 -3
  197. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
  198. package/dist/src/formats/graphml/yfiles.js +16 -6
  199. package/dist/src/formats/graphml/yfiles.js.map +1 -1
  200. package/dist/src/formats/json/dialect.d.ts +3 -2
  201. package/dist/src/formats/json/dialect.d.ts.map +1 -1
  202. package/dist/src/formats/json/dialect.js +39 -5
  203. package/dist/src/formats/json/dialect.js.map +1 -1
  204. package/dist/src/formats/json/importer.d.ts +13 -2
  205. package/dist/src/formats/json/importer.d.ts.map +1 -1
  206. package/dist/src/formats/json/importer.js +42 -6
  207. package/dist/src/formats/json/importer.js.map +1 -1
  208. package/dist/src/formats/json/index.d.ts +1 -1
  209. package/dist/src/formats/json/index.d.ts.map +1 -1
  210. package/dist/src/formats/json/index.js +1 -1
  211. package/dist/src/formats/json/index.js.map +1 -1
  212. package/dist/src/formats/json/positions.d.ts +5 -2
  213. package/dist/src/formats/json/positions.d.ts.map +1 -1
  214. package/dist/src/formats/json/positions.js +20 -4
  215. package/dist/src/formats/json/positions.js.map +1 -1
  216. package/dist/src/formats/json/styles.d.ts +12 -1
  217. package/dist/src/formats/json/styles.d.ts.map +1 -1
  218. package/dist/src/formats/json/styles.js +1755 -136
  219. package/dist/src/formats/json/styles.js.map +1 -1
  220. package/dist/src/formats/pajek/draw.d.ts +96 -0
  221. package/dist/src/formats/pajek/draw.d.ts.map +1 -0
  222. package/dist/src/formats/pajek/draw.js +372 -0
  223. package/dist/src/formats/pajek/draw.js.map +1 -0
  224. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  225. package/dist/src/formats/pajek/exporter.js +70 -51
  226. package/dist/src/formats/pajek/exporter.js.map +1 -1
  227. package/dist/src/formats/pajek/importer.d.ts +9 -0
  228. package/dist/src/formats/pajek/importer.d.ts.map +1 -1
  229. package/dist/src/formats/pajek/importer.js +233 -102
  230. package/dist/src/formats/pajek/importer.js.map +1 -1
  231. package/dist/src/formats/pajek/index.d.ts +1 -0
  232. package/dist/src/formats/pajek/index.d.ts.map +1 -1
  233. package/dist/src/formats/pajek/index.js.map +1 -1
  234. package/dist/src/formats/pajek/styles.d.ts +15 -7
  235. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  236. package/dist/src/formats/pajek/styles.js +1278 -114
  237. package/dist/src/formats/pajek/styles.js.map +1 -1
  238. package/dist/src/formats/pajek/syntax.d.ts +10 -1
  239. package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
  240. package/dist/src/formats/pajek/syntax.js +26 -2
  241. package/dist/src/formats/pajek/syntax.js.map +1 -1
  242. package/dist/src/formats/xgmml/emit.d.ts +1 -0
  243. package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
  244. package/dist/src/formats/xgmml/emit.js +65 -5
  245. package/dist/src/formats/xgmml/emit.js.map +1 -1
  246. package/dist/src/formats/xgmml/styles.d.ts +23 -3
  247. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  248. package/dist/src/formats/xgmml/styles.js +277 -60
  249. package/dist/src/formats/xgmml/styles.js.map +1 -1
  250. package/dist/src/index.d.ts +4 -3
  251. package/dist/src/index.d.ts.map +1 -1
  252. package/dist/src/index.js +4 -3
  253. package/dist/src/index.js.map +1 -1
  254. package/dist/src/positions/convert.d.ts.map +1 -1
  255. package/dist/src/positions/convert.js +11 -1
  256. package/dist/src/positions/convert.js.map +1 -1
  257. package/dist/src/positions/extract.d.ts.map +1 -1
  258. package/dist/src/positions/extract.js +53 -1
  259. package/dist/src/positions/extract.js.map +1 -1
  260. package/dist/src/positions/index.d.ts +1 -1
  261. package/dist/src/positions/index.d.ts.map +1 -1
  262. package/dist/src/positions/types.d.ts +59 -0
  263. package/dist/src/positions/types.d.ts.map +1 -1
  264. package/dist/src/sources/builtins.d.ts +1 -1
  265. package/dist/src/sources/builtins.d.ts.map +1 -1
  266. package/dist/src/sources/builtins.js +8 -2
  267. package/dist/src/sources/builtins.js.map +1 -1
  268. package/dist/src/sources/context.d.ts.map +1 -1
  269. package/dist/src/sources/context.js +1 -0
  270. package/dist/src/sources/context.js.map +1 -1
  271. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -1
  272. package/dist/src/sources/cypher/descriptor.js +5 -0
  273. package/dist/src/sources/cypher/descriptor.js.map +1 -1
  274. package/dist/src/sources/cypher/index.d.ts.map +1 -1
  275. package/dist/src/sources/cypher/index.js +124 -18
  276. package/dist/src/sources/cypher/index.js.map +1 -1
  277. package/dist/src/sources/cypher/params.d.ts +1 -1
  278. package/dist/src/sources/cypher/params.d.ts.map +1 -1
  279. package/dist/src/sources/cypher/query-builder.d.ts +17 -0
  280. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -1
  281. package/dist/src/sources/cypher/query-builder.js +31 -0
  282. package/dist/src/sources/cypher/query-builder.js.map +1 -1
  283. package/dist/src/sources/ids.d.ts +5 -0
  284. package/dist/src/sources/ids.d.ts.map +1 -1
  285. package/dist/src/sources/ids.js +5 -0
  286. package/dist/src/sources/ids.js.map +1 -1
  287. package/dist/src/sources/params.d.ts +3 -0
  288. package/dist/src/sources/params.d.ts.map +1 -1
  289. package/dist/src/sources/rest/descriptor.d.ts.map +1 -1
  290. package/dist/src/sources/rest/descriptor.js +5 -0
  291. package/dist/src/sources/rest/descriptor.js.map +1 -1
  292. package/dist/src/sources/rest/source.d.ts.map +1 -1
  293. package/dist/src/sources/rest/source.js +15 -0
  294. package/dist/src/sources/rest/source.js.map +1 -1
  295. package/dist/src/sources/sigv4.d.ts +5 -3
  296. package/dist/src/sources/sigv4.d.ts.map +1 -1
  297. package/dist/src/sources/sigv4.js +6 -4
  298. package/dist/src/sources/sigv4.js.map +1 -1
  299. package/dist/src/sources/sparql/descriptor.d.ts +10 -0
  300. package/dist/src/sources/sparql/descriptor.d.ts.map +1 -0
  301. package/dist/src/sources/sparql/descriptor.js +64 -0
  302. package/dist/src/sources/sparql/descriptor.js.map +1 -0
  303. package/dist/src/sources/sparql/index.d.ts +28 -0
  304. package/dist/src/sources/sparql/index.d.ts.map +1 -0
  305. package/dist/src/sources/sparql/index.js +314 -0
  306. package/dist/src/sources/sparql/index.js.map +1 -0
  307. package/dist/src/sources/sparql/ntriples.d.ts +69 -0
  308. package/dist/src/sources/sparql/ntriples.d.ts.map +1 -0
  309. package/dist/src/sources/sparql/ntriples.js +180 -0
  310. package/dist/src/sources/sparql/ntriples.js.map +1 -0
  311. package/dist/src/sources/sparql/params.d.ts +27 -0
  312. package/dist/src/sources/sparql/params.d.ts.map +1 -0
  313. package/dist/src/sources/sparql/params.js +5 -0
  314. package/dist/src/sources/sparql/params.js.map +1 -0
  315. package/dist/src/sources/sparql/query.d.ts +72 -0
  316. package/dist/src/sources/sparql/query.d.ts.map +1 -0
  317. package/dist/src/sources/sparql/query.js +113 -0
  318. package/dist/src/sources/sparql/query.js.map +1 -0
  319. package/dist/src/sources/types.d.ts +31 -0
  320. package/dist/src/sources/types.d.ts.map +1 -1
  321. package/dist/src/styles/annotations.d.ts +61 -5
  322. package/dist/src/styles/annotations.d.ts.map +1 -1
  323. package/dist/src/styles/annotations.js +130 -22
  324. package/dist/src/styles/annotations.js.map +1 -1
  325. package/dist/src/styles/canon/bends.d.ts +46 -0
  326. package/dist/src/styles/canon/bends.d.ts.map +1 -1
  327. package/dist/src/styles/canon/bends.js +123 -0
  328. package/dist/src/styles/canon/bends.js.map +1 -1
  329. package/dist/src/styles/canon/color-tables.d.ts +6 -1
  330. package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
  331. package/dist/src/styles/canon/color-tables.js +10 -4
  332. package/dist/src/styles/canon/color-tables.js.map +1 -1
  333. package/dist/src/styles/canon/color.d.ts +3 -1
  334. package/dist/src/styles/canon/color.d.ts.map +1 -1
  335. package/dist/src/styles/canon/color.js +103 -3
  336. package/dist/src/styles/canon/color.js.map +1 -1
  337. package/dist/src/styles/canon/enums.d.ts +2 -2
  338. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  339. package/dist/src/styles/canon/enums.js +81 -7
  340. package/dist/src/styles/canon/enums.js.map +1 -1
  341. package/dist/src/styles/canon/graphviz.d.ts +12 -3
  342. package/dist/src/styles/canon/graphviz.d.ts.map +1 -1
  343. package/dist/src/styles/canon/graphviz.js +57 -9
  344. package/dist/src/styles/canon/graphviz.js.map +1 -1
  345. package/dist/src/styles/canon/number.d.ts +8 -0
  346. package/dist/src/styles/canon/number.d.ts.map +1 -1
  347. package/dist/src/styles/canon/number.js +18 -0
  348. package/dist/src/styles/canon/number.js.map +1 -1
  349. package/dist/src/styles/canon/text.d.ts +29 -2
  350. package/dist/src/styles/canon/text.d.ts.map +1 -1
  351. package/dist/src/styles/canon/text.js +156 -16
  352. package/dist/src/styles/canon/text.js.map +1 -1
  353. package/dist/src/styles/codes.d.ts +2 -0
  354. package/dist/src/styles/codes.d.ts.map +1 -1
  355. package/dist/src/styles/codes.js +2 -0
  356. package/dist/src/styles/codes.js.map +1 -1
  357. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  358. package/dist/src/styles/cyjs/cascade.js +1015 -79
  359. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  360. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  361. package/dist/src/styles/cyjs/defaults-table.js +3 -0
  362. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  363. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  364. package/dist/src/styles/cyjs/emit.js +202 -9
  365. package/dist/src/styles/cyjs/emit.js.map +1 -1
  366. package/dist/src/styles/cyjs/face.d.ts +20 -0
  367. package/dist/src/styles/cyjs/face.d.ts.map +1 -0
  368. package/dist/src/styles/cyjs/face.js +332 -0
  369. package/dist/src/styles/cyjs/face.js.map +1 -0
  370. package/dist/src/styles/cyjs/mappers.d.ts +44 -1
  371. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  372. package/dist/src/styles/cyjs/mappers.js +461 -26
  373. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  374. package/dist/src/styles/cyjs/routes.d.ts +53 -0
  375. package/dist/src/styles/cyjs/routes.d.ts.map +1 -0
  376. package/dist/src/styles/cyjs/routes.js +360 -0
  377. package/dist/src/styles/cyjs/routes.js.map +1 -0
  378. package/dist/src/styles/cytoscape/charts.d.ts +23 -0
  379. package/dist/src/styles/cytoscape/charts.d.ts.map +1 -0
  380. package/dist/src/styles/cytoscape/charts.js +560 -0
  381. package/dist/src/styles/cytoscape/charts.js.map +1 -0
  382. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  383. package/dist/src/styles/cytoscape/emit.js +156 -48
  384. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  385. package/dist/src/styles/cytoscape/lexicon.d.ts +91 -3
  386. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  387. package/dist/src/styles/cytoscape/lexicon.js +387 -77
  388. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  389. package/dist/src/styles/cytoscape/mappings.d.ts +30 -0
  390. package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -1
  391. package/dist/src/styles/cytoscape/mappings.js +92 -0
  392. package/dist/src/styles/cytoscape/mappings.js.map +1 -1
  393. package/dist/src/styles/cytoscape/resolve.d.ts +42 -2
  394. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  395. package/dist/src/styles/cytoscape/resolve.js +623 -17
  396. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  397. package/dist/src/styles/defaults.d.ts +46 -26
  398. package/dist/src/styles/defaults.d.ts.map +1 -1
  399. package/dist/src/styles/defaults.js +308 -71
  400. package/dist/src/styles/defaults.js.map +1 -1
  401. package/dist/src/styles/index.d.ts +4 -3
  402. package/dist/src/styles/index.d.ts.map +1 -1
  403. package/dist/src/styles/index.js +3 -2
  404. package/dist/src/styles/index.js.map +1 -1
  405. package/dist/src/styles/internal.d.ts +1 -0
  406. package/dist/src/styles/internal.d.ts.map +1 -1
  407. package/dist/src/styles/internal.js +1 -0
  408. package/dist/src/styles/internal.js.map +1 -1
  409. package/dist/src/styles/io/generic.d.ts.map +1 -1
  410. package/dist/src/styles/io/generic.js +56 -16
  411. package/dist/src/styles/io/generic.js.map +1 -1
  412. package/dist/src/styles/io/round-trip.d.ts +56 -0
  413. package/dist/src/styles/io/round-trip.d.ts.map +1 -0
  414. package/dist/src/styles/io/round-trip.js +138 -0
  415. package/dist/src/styles/io/round-trip.js.map +1 -0
  416. package/dist/src/styles/io/writer.d.ts.map +1 -1
  417. package/dist/src/styles/io/writer.js +6 -1
  418. package/dist/src/styles/io/writer.js.map +1 -1
  419. package/dist/src/styles/notes.d.ts.map +1 -1
  420. package/dist/src/styles/notes.js +1 -0
  421. package/dist/src/styles/notes.js.map +1 -1
  422. package/dist/src/styles/plan/features.d.ts +1 -1
  423. package/dist/src/styles/plan/features.d.ts.map +1 -1
  424. package/dist/src/styles/plan/features.js +22 -2
  425. package/dist/src/styles/plan/features.js.map +1 -1
  426. package/dist/src/styles/plan/index.d.ts +1 -1
  427. package/dist/src/styles/plan/index.d.ts.map +1 -1
  428. package/dist/src/styles/plan/index.js +1 -1
  429. package/dist/src/styles/plan/index.js.map +1 -1
  430. package/dist/src/styles/plan/plan.d.ts.map +1 -1
  431. package/dist/src/styles/plan/plan.js +61 -4
  432. package/dist/src/styles/plan/plan.js.map +1 -1
  433. package/dist/src/styles/plan/resolve.d.ts +11 -0
  434. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  435. package/dist/src/styles/plan/resolve.js +40 -4
  436. package/dist/src/styles/plan/resolve.js.map +1 -1
  437. package/dist/src/styles/slots.d.ts +14 -0
  438. package/dist/src/styles/slots.d.ts.map +1 -0
  439. package/dist/src/styles/slots.js +20 -0
  440. package/dist/src/styles/slots.js.map +1 -0
  441. package/dist/src/styles/types.d.ts +622 -6
  442. package/dist/src/styles/types.d.ts.map +1 -1
  443. package/dist/src/styles/vocabulary.d.ts +3 -2
  444. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  445. package/dist/src/styles/vocabulary.js +203 -0
  446. package/dist/src/styles/vocabulary.js.map +1 -1
  447. package/dist/styles.js +30 -239
  448. package/dist/styles.js.map +1 -1
  449. package/dist/xgmml.js +3 -3
  450. package/package.json +27 -7
  451. package/src/formats/cx/importer.ts +6 -1
  452. package/src/formats/cx/styles.ts +143 -9
  453. package/src/formats/cx2/importer.ts +1 -0
  454. package/src/formats/cx2/styles.ts +3 -1
  455. package/src/formats/cys/importer.ts +1 -0
  456. package/src/formats/cys/styles.ts +27 -5
  457. package/src/formats/dot/drawing.ts +799 -0
  458. package/src/formats/dot/importer.ts +120 -35
  459. package/src/formats/dot/label-places.ts +228 -0
  460. package/src/formats/dot/record.ts +336 -0
  461. package/src/formats/dot/styles.ts +1654 -153
  462. package/src/formats/gexf/dialog-metrics.ts +61 -0
  463. package/src/formats/gexf/importer.ts +50 -5
  464. package/src/formats/gexf/preview.ts +217 -0
  465. package/src/formats/gexf/schema.ts +2 -1
  466. package/src/formats/gexf/styles.ts +1099 -245
  467. package/src/formats/gml/importer.ts +291 -76
  468. package/src/formats/gml/index.ts +1 -1
  469. package/src/formats/gml/positions.ts +29 -7
  470. package/src/formats/gml/styles.ts +851 -109
  471. package/src/formats/graphml/styles-plain.ts +6 -15
  472. package/src/formats/graphml/styles-yed.ts +762 -173
  473. package/src/formats/graphml/styles-yfiles3.ts +485 -63
  474. package/src/formats/graphml/yfiles.ts +19 -6
  475. package/src/formats/json/dialect.ts +41 -5
  476. package/src/formats/json/importer.ts +59 -7
  477. package/src/formats/json/index.ts +1 -0
  478. package/src/formats/json/positions.ts +22 -5
  479. package/src/formats/json/styles.ts +2041 -185
  480. package/src/formats/pajek/draw.ts +458 -0
  481. package/src/formats/pajek/exporter.ts +81 -49
  482. package/src/formats/pajek/importer.ts +278 -103
  483. package/src/formats/pajek/index.ts +1 -0
  484. package/src/formats/pajek/styles.ts +1381 -133
  485. package/src/formats/pajek/syntax.ts +27 -2
  486. package/src/formats/xgmml/emit.ts +73 -5
  487. package/src/formats/xgmml/styles.ts +330 -71
  488. package/src/index.ts +5 -1
  489. package/src/positions/convert.ts +12 -1
  490. package/src/positions/extract.ts +55 -1
  491. package/src/positions/index.ts +1 -0
  492. package/src/positions/types.ts +60 -0
  493. package/src/sources/builtins.ts +8 -1
  494. package/src/sources/context.ts +1 -0
  495. package/src/sources/cypher/descriptor.ts +7 -1
  496. package/src/sources/cypher/index.ts +148 -18
  497. package/src/sources/cypher/params.ts +1 -1
  498. package/src/sources/cypher/query-builder.ts +33 -0
  499. package/src/sources/ids.ts +6 -0
  500. package/src/sources/params.ts +3 -0
  501. package/src/sources/rest/descriptor.ts +5 -0
  502. package/src/sources/rest/source.ts +16 -0
  503. package/src/sources/sigv4.ts +6 -4
  504. package/src/sources/sparql/descriptor.ts +67 -0
  505. package/src/sources/sparql/index.ts +356 -0
  506. package/src/sources/sparql/ntriples.ts +219 -0
  507. package/src/sources/sparql/params.ts +28 -0
  508. package/src/sources/sparql/query.ts +162 -0
  509. package/src/sources/types.ts +35 -0
  510. package/src/styles/annotations.ts +201 -27
  511. package/src/styles/canon/bends.ts +137 -0
  512. package/src/styles/canon/color-tables.ts +10 -4
  513. package/src/styles/canon/color.ts +105 -3
  514. package/src/styles/canon/enums.ts +98 -8
  515. package/src/styles/canon/graphviz.ts +71 -10
  516. package/src/styles/canon/number.ts +19 -0
  517. package/src/styles/canon/text.ts +187 -16
  518. package/src/styles/codes.ts +2 -0
  519. package/src/styles/cyjs/cascade.ts +1160 -84
  520. package/src/styles/cyjs/defaults-table.ts +3 -0
  521. package/src/styles/cyjs/emit.ts +233 -13
  522. package/src/styles/cyjs/face.ts +372 -0
  523. package/src/styles/cyjs/mappers.ts +492 -27
  524. package/src/styles/cyjs/routes.ts +432 -0
  525. package/src/styles/cytoscape/charts.ts +684 -0
  526. package/src/styles/cytoscape/emit.ts +170 -48
  527. package/src/styles/cytoscape/lexicon.ts +431 -78
  528. package/src/styles/cytoscape/mappings.ts +108 -0
  529. package/src/styles/cytoscape/resolve.ts +741 -17
  530. package/src/styles/defaults.ts +417 -108
  531. package/src/styles/index.ts +5 -0
  532. package/src/styles/internal.ts +1 -0
  533. package/src/styles/io/generic.ts +79 -23
  534. package/src/styles/io/round-trip.ts +202 -0
  535. package/src/styles/io/writer.ts +6 -1
  536. package/src/styles/notes.ts +1 -0
  537. package/src/styles/plan/features.ts +23 -2
  538. package/src/styles/plan/index.ts +1 -1
  539. package/src/styles/plan/plan.ts +69 -5
  540. package/src/styles/plan/resolve.ts +47 -4
  541. package/src/styles/slots.ts +25 -0
  542. package/src/styles/types.ts +633 -5
  543. package/src/styles/vocabulary.ts +211 -2
  544. package/dist/chunks/block-Cu22ewuS.js.map +0 -1
  545. package/dist/chunks/choose-Cdx6Enl2.js +0 -57
  546. package/dist/chunks/choose-Cdx6Enl2.js.map +0 -1
  547. package/dist/chunks/codes-CV_Bhcyi.js.map +0 -1
  548. package/dist/chunks/convert-BcQ8_jMo.js.map +0 -1
  549. package/dist/chunks/credentials-BiQsnMTb.js.map +0 -1
  550. package/dist/chunks/descriptor-BJ-W0Jd-.js.map +0 -1
  551. package/dist/chunks/emit-CD8xnY8s.js.map +0 -1
  552. package/dist/chunks/export-CZ7VRm4I.js.map +0 -1
  553. package/dist/chunks/exporter-bxxjOrDZ.js.map +0 -1
  554. package/dist/chunks/format-BMS-1Nxb.js +0 -64
  555. package/dist/chunks/format-BMS-1Nxb.js.map +0 -1
  556. package/dist/chunks/generic-CP6YD34u.js.map +0 -1
  557. package/dist/chunks/importer-B87_fmVx.js.map +0 -1
  558. package/dist/chunks/importer-CB_zV5_L.js.map +0 -1
  559. package/dist/chunks/importer-CVT-JyDE.js.map +0 -1
  560. package/dist/chunks/importer-Cyy6UseH.js.map +0 -1
  561. package/dist/chunks/importer-DPZDN40-.js.map +0 -1
  562. package/dist/chunks/importer-e3huMZbm.js.map +0 -1
  563. package/dist/chunks/lexicon-u2SI5xcx.js.map +0 -1
  564. package/dist/chunks/sigv4-LkAzsLAu.js.map +0 -1
  565. package/dist/chunks/styles-CaABMoO1.js.map +0 -1
  566. package/dist/chunks/styles-P_gmFAOi.js +0 -770
  567. package/dist/chunks/styles-P_gmFAOi.js.map +0 -1
  568. package/dist/chunks/styles-yed-Cs1nmrjn.js.map +0 -1
  569. package/dist/chunks/writer-DvHTl36J.js +0 -449
  570. package/dist/chunks/writer-DvHTl36J.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { g as canonColor, h as canonNumber, n as noteAt, a as STYLE_ISSUE, i as num6, j as canonOpacity, k as scalarText, l as canonEnum, m as canonBoolean, o as canonText, q as isStyleValue } from "./block-Cu22ewuS.js";
1
+ import { d as canonColor, n as noteAt, b as STYLE_ISSUE, s as scalarText, c as canonNumber, i as num6, j as canonOpacity, a as canonEnum, k as canonBoolean, f as canonText, l as isStyleValue } from "./block-iptrlMBb.js";
2
2
  const color = (raw, site) => canonColor(raw, "cytoscape", site)?.color ?? null;
3
3
  const opacity255 = (raw, site) => {
4
4
  const v = canonNumber(raw, site);
@@ -13,6 +13,18 @@ const opacity255 = (raw, site) => {
13
13
  };
14
14
  const opacity01 = (raw, site) => canonOpacity(raw, "css", site);
15
15
  const length = (raw, site) => canonNumber(raw, site);
16
+ const arrowSizeParser = (raw, site) => {
17
+ const v = canonNumber(raw, site);
18
+ return v === null ? null : num6(v / 6);
19
+ };
20
+ const rotation = (raw, site) => {
21
+ const v = typeof raw === "number" ? raw : Number(scalarText(raw, site)?.trim() ?? Number.NaN);
22
+ if (!Number.isFinite(v)) {
23
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, String(raw));
24
+ return null;
25
+ }
26
+ return num6((v % 360 + 360) % 360);
27
+ };
16
28
  const fontSize = (raw, site) => {
17
29
  const v = canonNumber(raw, site);
18
30
  return v === null ? null : Math.round(v);
@@ -43,29 +55,34 @@ const shape = (raw, site) => {
43
55
  const CY_ARROWS = /* @__PURE__ */ new Map([
44
56
  ["none", "none"],
45
57
  ["delta", "triangle"],
46
- ["arrow", "vee"],
58
+ // a filled delta with a shallow notch in its back, as long and wide as DELTA (Cytoscape 3.10.5 SVG export)
59
+ ["arrow", "triangle"],
47
60
  ["diamond", "diamond"],
48
61
  ["circle", "circle"],
49
62
  ["t", "tee"],
50
63
  ["half_top", "half"],
51
- ["half_bottom", "half"],
64
+ // the half arrow on the line's other side from HALF_TOP's
65
+ ["half_bottom", "other:half-bottom"],
52
66
  ["square", "square"],
53
67
  ["delta_short_1", "triangle"],
54
68
  ["delta_short_2", "triangle"],
55
- ["arrow_short", "vee"],
69
+ // a short arrow whose notch is too shallow to show: drawn as the triangle it reads as
70
+ ["arrow_short", "triangle"],
56
71
  ["diamond_short_1", "diamond"],
57
72
  ["diamond_short_2", "diamond"],
58
73
  ["open_delta", "triangle-open"],
59
74
  ["open_circle", "circle-open"],
60
75
  ["open_diamond", "diamond-open"],
61
76
  ["open_square", "other:open-square"],
62
- ["cross_delta", "vee"],
63
- ["cross_open_delta", "triangle-open"],
77
+ // a delta with a bar across the line behind it
78
+ ["cross_delta", "other:cross-delta"],
79
+ ["cross_open_delta", "other:cross-open-delta"],
64
80
  ["open_half_circle", "other:open-half-circle"],
65
81
  ["half_circle", "other:half-circle"],
66
82
  ["triangle", "triangle"],
67
83
  ["triangle-tee", "tee"],
68
- ["triangle-cross", "vee"],
84
+ // CX2's spelling of CROSS_DELTA
85
+ ["triangle-cross", "other:cross-delta"],
69
86
  ["triangle-backcurve", "triangle"],
70
87
  ["tee", "tee"],
71
88
  ["vee", "vee"],
@@ -75,7 +92,30 @@ const CY_ARROWS = /* @__PURE__ */ new Map([
75
92
  ["open-square", "other:open-square"],
76
93
  ["open-delta", "triangle-open"],
77
94
  ["half-top", "half"],
78
- ["half-bottom", "half"]
95
+ ["half-bottom", "other:half-bottom"]
96
+ ]);
97
+ const CY_ARROW_PROPORTIONS = /* @__PURE__ */ new Map([
98
+ ["delta_short_1", { length: 0.5, width: 1 }],
99
+ ["delta_short_2", { length: 0.25, width: 1 }],
100
+ ["arrow_short", { length: 0.6, width: 0.8 }],
101
+ ["diamond_short_1", { length: 0.5, width: 1 }],
102
+ ["diamond_short_2", { length: 0.25, width: 1 }],
103
+ ["cross_delta", { length: 1.5, width: 1.5 }],
104
+ ["cross_open_delta", { length: 1.5, width: 1.5 }],
105
+ ["triangle-cross", { length: 1.5, width: 1.5 }]
106
+ ]);
107
+ const CY_ARROW_GAPS = /* @__PURE__ */ new Map([
108
+ ["t", 4],
109
+ ["tee", 4],
110
+ ["half_circle", 1],
111
+ ["open_half_circle", 1],
112
+ ["half_top", 0.3 / 1.135],
113
+ ["half_bottom", 0.3 / 1.135],
114
+ ["half-top", 0.3 / 1.135],
115
+ ["half-bottom", 0.3 / 1.135],
116
+ ["square", 0.25],
117
+ ["open_square", 0.25],
118
+ ["open-square", 0.25]
79
119
  ]);
80
120
  const LEGACY_ARROW = [
81
121
  "none",
@@ -97,16 +137,34 @@ const LEGACY_ARROW = [
97
137
  "half_top",
98
138
  "half_bottom"
99
139
  ];
140
+ function arrowKey(s) {
141
+ const key = s.trim().toLowerCase();
142
+ return /^\d{1,2}$/.test(key) ? LEGACY_ARROW.at(Number(key)) ?? key : key;
143
+ }
100
144
  const arrow = (raw, site) => {
101
145
  const s = scalarText(raw, site);
102
146
  if (s === null) {
103
147
  return null;
104
148
  }
105
- let key = s.trim().toLowerCase();
106
- if (/^\d{1,2}$/.test(key)) {
107
- key = LEGACY_ARROW.at(Number(key)) ?? key;
149
+ return caseless(CY_ARROWS.get(arrowKey(s)) ?? canonEnum("arrow", s, "cytoscape", site));
150
+ };
151
+ function arrowProportion(side) {
152
+ return (raw, site) => {
153
+ const s = scalarText(raw, site);
154
+ if (s === null) {
155
+ return null;
156
+ }
157
+ const key = arrowKey(s);
158
+ return CY_ARROW_PROPORTIONS.get(key)?.[side] ?? (CY_ARROWS.has(key) ? 1 : null);
159
+ };
160
+ }
161
+ const arrowGap = (raw, site) => {
162
+ const s = scalarText(raw, site);
163
+ if (s === null) {
164
+ return null;
108
165
  }
109
- return caseless(CY_ARROWS.get(key) ?? canonEnum("arrow", s, "cytoscape", site));
166
+ const key = arrowKey(s);
167
+ return CY_ARROW_GAPS.get(key) ?? (CY_ARROWS.has(key) ? 0 : null);
110
168
  };
111
169
  const CY_LINES = /* @__PURE__ */ new Map([
112
170
  ["solid", "solid"],
@@ -146,7 +204,24 @@ function lineOf(kind) {
146
204
  if (v === null || isStyleValue("node", kind, v) || kind === "lineStyle") {
147
205
  return v;
148
206
  }
149
- return `other:${key}`;
207
+ return v.startsWith("other:") ? v : `other:${v}`;
208
+ };
209
+ }
210
+ function javaFace(name) {
211
+ const m = /\.(bold|italic|plain|bolditalic)$/i.exec(name);
212
+ const suffix = m?.[1].toLowerCase() ?? "";
213
+ return {
214
+ family: m === null ? name : name.slice(0, m.index),
215
+ weight: suffix.includes("bold") ? "bold" : "normal",
216
+ italic: suffix.includes("italic")
217
+ };
218
+ }
219
+ function withSuffix(family, bold, italic) {
220
+ const own = javaFace(family.trim());
221
+ return {
222
+ family: own.family,
223
+ weight: bold || own.weight === "bold" ? "bold" : "normal",
224
+ italic: italic || own.italic
150
225
  };
151
226
  }
152
227
  function fontFace(raw, site) {
@@ -159,31 +234,22 @@ function fontFace(raw, site) {
159
234
  }
160
235
  const parts = s.split(",");
161
236
  if (parts.length >= 2) {
162
- const st = parts[1].trim().toLowerCase();
163
- return {
164
- family: parts[0].trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, ""),
165
- weight: st.includes("bold") ? "bold" : "normal",
166
- italic: st.includes("italic")
167
- };
237
+ return withSuffix(parts[0], false, false);
168
238
  }
169
- return legacyFontFace(s) ?? { family: s.trim(), weight: "normal", italic: false };
239
+ return legacyFontFace(s) ?? withSuffix(s, false, false);
170
240
  }
171
241
  function cx2FontFace(o, site) {
172
242
  const name = Object.hasOwn(o, "FONT_NAME") ? scalarText(o.FONT_NAME, site) : null;
173
243
  let family = Object.hasOwn(o, "FONT_FAMILY") ? scalarText(o.FONT_FAMILY, site) : null;
174
244
  if (name !== null && name.trim() !== "") {
175
- family = name.trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, "");
245
+ family = name;
176
246
  }
177
247
  if (family === null) {
178
248
  return null;
179
249
  }
180
250
  const weight = Object.hasOwn(o, "FONT_WEIGHT") ? String(o.FONT_WEIGHT) : "";
181
251
  const style = Object.hasOwn(o, "FONT_STYLE") ? String(o.FONT_STYLE) : "";
182
- return {
183
- family: family.trim(),
184
- weight: /bold/i.test(weight.slice(0, 32)) ? "bold" : "normal",
185
- italic: /italic/i.test(style.slice(0, 32))
186
- };
252
+ return withSuffix(family, /bold/i.test(weight.slice(0, 32)), /italic/i.test(style.slice(0, 32)));
187
253
  }
188
254
  function legacyFontFace(s) {
189
255
  const dash = s.split("-");
@@ -198,70 +264,155 @@ function legacyFontFace(s) {
198
264
  family = family.slice(0, -"-bold".length);
199
265
  bold = true;
200
266
  }
201
- return { family: family.replace(/\.bold$/i, ""), weight: bold ? "bold" : "normal", italic: (bits & 2) !== 0 };
267
+ return withSuffix(family, bold, (bits & 2) !== 0);
202
268
  }
269
+ const JAVA_SANS = "DejaVu Sans, sans-serif";
270
+ const JAVA_SERIF = "DejaVu Serif, serif";
271
+ const JAVA_MONO = "DejaVu Sans Mono, monospace";
203
272
  const JAVA_FONTS = /* @__PURE__ */ new Map([
204
- ["sansserif", "sans-serif"],
205
- ["dialog", "sans-serif"],
206
- ["default", "sans-serif"],
207
- ["dialoginput", "monospace"],
208
- ["monospaced", "monospace"],
209
- ["serif", "serif"]
273
+ // CX2's CSS generic families too: Cytoscape desktop hands them to Java, which draws them as these
274
+ ["sans-serif", JAVA_SANS],
275
+ ["monospace", JAVA_MONO],
276
+ ["sansserif", JAVA_SANS],
277
+ ["dialog", JAVA_SANS],
278
+ ["default", JAVA_SANS],
279
+ ["dialoginput", JAVA_MONO],
280
+ ["monospaced", JAVA_MONO],
281
+ ["serif", JAVA_SERIF]
210
282
  ]);
211
283
  const fontFamily = (raw, site) => {
212
284
  const family = fontFace(raw, site)?.family ?? null;
213
- return family === null ? null : JAVA_FONTS.get(family.toLowerCase()) ?? family;
285
+ return family === null ? null : javaFamily(family);
214
286
  };
287
+ const CSS_GENERIC = /* @__PURE__ */ new Set([
288
+ "sans-serif",
289
+ "serif",
290
+ "monospace",
291
+ "cursive",
292
+ "fantasy",
293
+ "system-ui"
294
+ ]);
295
+ function javaFamily(family) {
296
+ const logical = JAVA_FONTS.get(family.toLowerCase());
297
+ if (logical !== void 0) {
298
+ return logical;
299
+ }
300
+ return family.includes(",") || CSS_GENERIC.has(family.toLowerCase()) ? family : `${family}, ${JAVA_SANS}`;
301
+ }
215
302
  const fontWeight = (raw, site) => fontFace(raw, site)?.weight ?? null;
216
303
  const fontItalic = (raw, site) => fontFace(raw, site)?.italic ?? null;
217
304
  const ANCHOR = /* @__PURE__ */ new Map([
218
- ["C", "center"],
219
- ["N", "top"],
220
- ["S", "bottom"],
221
- ["E", "right"],
222
- ["W", "left"],
223
- ["NE", "top-right"],
224
- ["NW", "top-left"],
225
- ["SE", "bottom-right"],
226
- ["SW", "bottom-left"],
227
- ["NONE", "center"]
305
+ ["C", [0, 0]],
306
+ ["N", [0, -1]],
307
+ ["S", [0, 1]],
308
+ ["E", [1, 0]],
309
+ ["W", [-1, 0]],
310
+ ["NE", [1, -1]],
311
+ ["NW", [-1, -1]],
312
+ ["SE", [1, 1]],
313
+ ["SW", [-1, 1]],
314
+ ["NONE", [0, 0]]
228
315
  ]);
229
- const CX2_ANCHOR = /* @__PURE__ */ new Map([
230
- ["center,center", "center"],
231
- ["center,top", "top"],
232
- ["center,bottom", "bottom"],
233
- ["right,center", "right"],
234
- ["left,center", "left"],
235
- ["right,top", "top-right"],
236
- ["left,top", "top-left"],
237
- ["right,bottom", "bottom-right"],
238
- ["left,bottom", "bottom-left"]
316
+ const CX2_SIDE = /* @__PURE__ */ new Map([
317
+ ["center", 0],
318
+ ["left", -1],
319
+ ["right", 1],
320
+ ["top", -1],
321
+ ["bottom", 1]
239
322
  ]);
240
- const labelPosition = (raw, site) => {
241
- let key;
242
- let found;
323
+ const JUSTIFY = /* @__PURE__ */ new Map([
324
+ ["l", "left"],
325
+ ["left", "left"],
326
+ ["c", "center"],
327
+ ["center", "center"],
328
+ ["r", "right"],
329
+ ["right", "right"]
330
+ ]);
331
+ function cx2EdgeAnchors(o, site) {
332
+ const letter = (key) => ANCHOR.get((scalarText(Object.hasOwn(o, key) ? o[key] : "C", site) ?? "").trim().toUpperCase());
333
+ return [
334
+ ...letter("EDGE_ANCHOR") ?? [void 0, void 0],
335
+ ...letter("LABEL_ANCHOR") ?? [void 0, void 0]
336
+ ];
337
+ }
338
+ function cytoscapeLabelPlace(raw, site) {
243
339
  if (raw !== null && typeof raw === "object" && !Array.isArray(raw)) {
244
340
  const o = raw;
245
- const h = scalarText(Object.hasOwn(o, "HORIZONTAL_ANCHOR") ? o.HORIZONTAL_ANCHOR : "center", site);
246
- const v = scalarText(Object.hasOwn(o, "VERTICAL_ANCHOR") ? o.VERTICAL_ANCHOR : "center", site);
247
- if (h === null || v === null) {
248
- return null;
249
- }
250
- key = `${h.trim().toLowerCase()},${v.trim().toLowerCase()}`;
251
- found = CX2_ANCHOR.get(key);
252
- } else {
253
- const s = scalarText(raw, site);
254
- if (s === null) {
341
+ const word = (key) => {
342
+ const v = Object.hasOwn(o, key) ? scalarText(o[key], site) : null;
343
+ return (v ?? "center").trim().toLowerCase();
344
+ };
345
+ const num = (key) => {
346
+ const v = Object.hasOwn(o, key) ? Number(o[key]) : 0;
347
+ return Number.isFinite(v) ? v : 0;
348
+ };
349
+ const sides = Object.hasOwn(o, "EDGE_ANCHOR") ? cx2EdgeAnchors(o, site) : ["HORIZONTAL_ANCHOR", "VERTICAL_ANCHOR", "HORIZONTAL_ALIGN", "VERTICAL_ALIGN"].map(
350
+ (k) => CX2_SIDE.get(word(k))
351
+ );
352
+ if (sides.includes(void 0)) {
353
+ noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, JSON.stringify(raw).slice(0, 64));
255
354
  return null;
256
355
  }
257
- key = s;
258
- found = ANCHOR.get(s.split(",")[0].trim().toUpperCase());
356
+ const [nx, ny, lx, ly] = sides;
357
+ return {
358
+ node: [nx, ny],
359
+ label: [lx, ly],
360
+ justify: JUSTIFY.get(word("JUSTIFICATION")) ?? "center",
361
+ offset: [num("MARGIN_X"), num("MARGIN_Y")]
362
+ };
363
+ }
364
+ const s = scalarText(raw, site);
365
+ if (s === null) {
366
+ return null;
259
367
  }
260
- if (found === void 0) {
261
- noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, key);
368
+ const parts = s.split(",").map((p) => p.trim());
369
+ const node = ANCHOR.get(parts[0].toUpperCase());
370
+ const label = parts.length > 1 ? ANCHOR.get(parts[1].toUpperCase()) : node?.map((v) => -v);
371
+ if (node === void 0 || label === void 0) {
372
+ noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, s);
262
373
  return null;
263
374
  }
264
- return found;
375
+ const at = (i) => {
376
+ const v = Number(parts[i] ?? 0);
377
+ return Number.isFinite(v) ? v : 0;
378
+ };
379
+ return {
380
+ node,
381
+ label: [label[0], label[1]],
382
+ justify: JUSTIFY.get((parts[2] ?? "c").toLowerCase()) ?? "center",
383
+ offset: [at(3), at(4)]
384
+ };
385
+ }
386
+ const INSIDE = /* @__PURE__ */ new Map([
387
+ ["0,0", "center"],
388
+ ["0,-1", "inside-top"],
389
+ ["0,1", "inside-bottom"],
390
+ ["-1,0", "inside-left"],
391
+ ["1,0", "inside-right"],
392
+ ["-1,-1", "inside-top-left"],
393
+ ["1,-1", "inside-top-right"],
394
+ ["-1,1", "inside-bottom-left"],
395
+ ["1,1", "inside-bottom-right"]
396
+ ]);
397
+ function cytoscapeLabelBase(place) {
398
+ const inside = place.node[0] === place.label[0] && place.node[1] === place.label[1];
399
+ return inside ? INSIDE.get(`${place.node[0]},${place.node[1]}`) ?? "center" : "center";
400
+ }
401
+ function cytoscapeLabelMove(place, width, height) {
402
+ if (cytoscapeLabelBase(place) !== "center" || place.node[0] === 0 && place.node[1] === 0 && place.label[0] === 0 && place.label[1] === 0) {
403
+ return { offset: place.offset, shift: [0, 0] };
404
+ }
405
+ return {
406
+ offset: [place.node[0] * width / 2 + place.offset[0], place.node[1] * height / 2 + place.offset[1]],
407
+ shift: [halfBack(place.label[0]), halfBack(place.label[1])]
408
+ };
409
+ }
410
+ function halfBack(side) {
411
+ return side === 0 ? 0 : -side / 2;
412
+ }
413
+ const labelPosition = (raw, site) => {
414
+ const place = cytoscapeLabelPlace(raw, site);
415
+ return place === null ? null : cytoscapeLabelBase(place);
265
416
  };
266
417
  const CYTOSCAPE_LEXICON = Object.freeze({
267
418
  node: /* @__PURE__ */ new Map([
@@ -287,6 +438,13 @@ const CYTOSCAPE_LEXICON = Object.freeze({
287
438
  ["NODE_BORDER_COLOR", color]
288
439
  ]
289
440
  ],
441
+ [
442
+ "borderOpacity",
443
+ [
444
+ ["NODE_BORDER_TRANSPARENCY", opacity255],
445
+ ["NODE_BORDER_OPACITY", opacity01]
446
+ ]
447
+ ],
290
448
  ["borderWidth", [["NODE_BORDER_WIDTH", length]]],
291
449
  [
292
450
  "borderStyle",
@@ -302,10 +460,25 @@ const CYTOSCAPE_LEXICON = Object.freeze({
302
460
  ["label", [["NODE_LABEL", text]]],
303
461
  ["labelColor", [["NODE_LABEL_COLOR", color]]],
304
462
  ["labelSize", [["NODE_LABEL_FONT_SIZE", fontSize]]],
463
+ [
464
+ "labelWrapWidth",
465
+ [
466
+ ["NODE_LABEL_WIDTH", length],
467
+ ["NODE_LABEL_MAX_WIDTH", length]
468
+ ]
469
+ ],
305
470
  ["labelFont", [["NODE_LABEL_FONT_FACE", fontFamily]]],
306
471
  ["labelWeight", [["NODE_LABEL_FONT_FACE", fontWeight]]],
307
472
  ["labelItalic", [["NODE_LABEL_FONT_FACE", fontItalic]]],
308
473
  ["labelPosition", [["NODE_LABEL_POSITION", labelPosition]]],
474
+ ["labelRotation", [["NODE_LABEL_ROTATION", rotation]]],
475
+ [
476
+ "labelOpacity",
477
+ [
478
+ ["NODE_LABEL_TRANSPARENCY", opacity255],
479
+ ["NODE_LABEL_OPACITY", opacity01]
480
+ ]
481
+ ],
309
482
  ["tooltip", [["NODE_TOOLTIP", text]]],
310
483
  [
311
484
  "visible",
@@ -342,6 +515,14 @@ const CYTOSCAPE_LEXICON = Object.freeze({
342
515
  ],
343
516
  ["sourceArrow", [["EDGE_SOURCE_ARROW_SHAPE", arrow]]],
344
517
  ["targetArrow", [["EDGE_TARGET_ARROW_SHAPE", arrow]]],
518
+ // One neutral size for both ends: the target's, else the source's.
519
+ [
520
+ "arrowSize",
521
+ [
522
+ ["EDGE_TARGET_ARROW_SIZE", arrowSizeParser],
523
+ ["EDGE_SOURCE_ARROW_SIZE", arrowSizeParser]
524
+ ]
525
+ ],
345
526
  [
346
527
  "sourceArrowColor",
347
528
  [
@@ -363,6 +544,21 @@ const CYTOSCAPE_LEXICON = Object.freeze({
363
544
  ["labelFont", [["EDGE_LABEL_FONT_FACE", fontFamily]]],
364
545
  ["labelWeight", [["EDGE_LABEL_FONT_FACE", fontWeight]]],
365
546
  ["labelItalic", [["EDGE_LABEL_FONT_FACE", fontItalic]]],
547
+ [
548
+ "labelWrapWidth",
549
+ [
550
+ ["EDGE_LABEL_WIDTH", length],
551
+ ["EDGE_LABEL_MAX_WIDTH", length]
552
+ ]
553
+ ],
554
+ ["labelRotation", [["EDGE_LABEL_ROTATION", rotation]]],
555
+ [
556
+ "labelOpacity",
557
+ [
558
+ ["EDGE_LABEL_TRANSPARENCY", opacity255],
559
+ ["EDGE_LABEL_OPACITY", opacity01]
560
+ ]
561
+ ],
366
562
  ["tooltip", [["EDGE_TOOLTIP", text]]],
367
563
  [
368
564
  "visible",
@@ -376,6 +572,7 @@ const CYTOSCAPE_LEXICON = Object.freeze({
376
572
  const NODE_SIZE_VP = "NODE_SIZE";
377
573
  const sizeParser = length;
378
574
  const colorParser = color;
575
+ const opacityParser = (vp) => vp.endsWith("_OPACITY") ? opacity01 : opacity255;
379
576
  const KNOWN_VPS = /* @__PURE__ */ new Set([
380
577
  NODE_SIZE_VP,
381
578
  ...Object.values(CYTOSCAPE_LEXICON).flatMap(
@@ -512,12 +709,23 @@ function vpStep(vp) {
512
709
  }
513
710
  export {
514
711
  CYTOSCAPE_LEXICON as C,
515
- JAVA_FONTS as J,
712
+ JAVA_MONO as J,
516
713
  NODE_SIZE_VP as N,
714
+ JAVA_SERIF as a,
715
+ JAVA_SANS as b,
517
716
  colorParser as c,
717
+ cytoscapeLabelPlace as d,
718
+ arrowSizeParser as e,
719
+ arrowProportion as f,
720
+ arrowGap as g,
721
+ cytoscapeLabelMove as h,
518
722
  isUncarriedVp as i,
723
+ javaFamily as j,
724
+ cytoscapeLabelBase as k,
725
+ halfBack as l,
519
726
  normalizeVisualProperties as n,
727
+ opacityParser as o,
520
728
  sizeParser as s,
521
729
  vpStep as v
522
730
  };
523
- //# sourceMappingURL=lexicon-u2SI5xcx.js.map
731
+ //# sourceMappingURL=lexicon-Clf4QIyl.js.map