@graphty/graph-io 0.3.43 → 0.3.45

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 (674) hide show
  1. package/dist/chunks/approximations-DJMHdDvv.js +40 -0
  2. package/dist/chunks/approximations-DJMHdDvv.js.map +1 -0
  3. package/dist/chunks/block-CPCHkX42.js +2777 -0
  4. package/dist/chunks/block-CPCHkX42.js.map +1 -0
  5. package/dist/chunks/{choose-DvpbdRuz.js → choose--jM0yYCo.js} +3 -2
  6. package/dist/chunks/{choose-DvpbdRuz.js.map → choose--jM0yYCo.js.map} +1 -1
  7. package/dist/chunks/{constants-fT3E8JYY.js → constants-BKwqelYD.js} +6 -2
  8. package/dist/chunks/constants-BKwqelYD.js.map +1 -0
  9. package/dist/chunks/convert-BcQ8_jMo.js +59 -0
  10. package/dist/chunks/convert-BcQ8_jMo.js.map +1 -0
  11. package/dist/chunks/emit-DZy6JgdA.js +3456 -0
  12. package/dist/chunks/emit-DZy6JgdA.js.map +1 -0
  13. package/dist/chunks/{escape-B62ZGM_a.js → escape-CgzxiYPg.js} +44 -21
  14. package/dist/chunks/escape-CgzxiYPg.js.map +1 -0
  15. package/dist/chunks/{export-rKLeGQMo.js → export-BvqAXCKh.js} +196 -792
  16. package/dist/chunks/export-BvqAXCKh.js.map +1 -0
  17. package/dist/chunks/{exporter-yLxKBvLE.js → exporter--Mk9gXCJ.js} +4 -3
  18. package/dist/chunks/{exporter-yLxKBvLE.js.map → exporter--Mk9gXCJ.js.map} +1 -1
  19. package/dist/chunks/{exporter-RVtXVetw.js → exporter-C-9cgZKa.js} +1805 -287
  20. package/dist/chunks/exporter-C-9cgZKa.js.map +1 -0
  21. package/dist/chunks/{exporter-8hLNemFk.js → exporter-DFqJhBnj.js} +133 -74
  22. package/dist/chunks/exporter-DFqJhBnj.js.map +1 -0
  23. package/dist/chunks/{exporter-BWwEuOPT.js → exporter-DteVeJki.js} +22 -12
  24. package/dist/chunks/exporter-DteVeJki.js.map +1 -0
  25. package/dist/chunks/format-BpQBx8MZ.js +676 -0
  26. package/dist/chunks/format-BpQBx8MZ.js.map +1 -0
  27. package/dist/chunks/generic-BGO71QBv.js +1347 -0
  28. package/dist/chunks/generic-BGO71QBv.js.map +1 -0
  29. package/dist/chunks/{importer-C98dpSH4.js → importer-B-9Rc1zO.js} +141 -82
  30. package/dist/chunks/importer-B-9Rc1zO.js.map +1 -0
  31. package/dist/chunks/{importer-D794XUTe.js → importer-BVVR740x.js} +31 -8
  32. package/dist/chunks/importer-BVVR740x.js.map +1 -0
  33. package/dist/chunks/{importer-WrGRZb0N.js → importer-C0AjA3Ax.js} +449 -102
  34. package/dist/chunks/importer-C0AjA3Ax.js.map +1 -0
  35. package/dist/chunks/{importer-BbNb7eNg.js → importer-C7pvJe1L.js} +1398 -129
  36. package/dist/chunks/importer-C7pvJe1L.js.map +1 -0
  37. package/dist/chunks/{importer-xZ-3suY1.js → importer-ClwoVx3O.js} +791 -135
  38. package/dist/chunks/importer-ClwoVx3O.js.map +1 -0
  39. package/dist/chunks/{importer-Ht7LNg8L.js → importer-D0sC_6bO.js} +116 -296
  40. package/dist/chunks/importer-D0sC_6bO.js.map +1 -0
  41. package/dist/chunks/{importer-Dz7tI8Sa.js → importer-EHQk1jbM.js} +617 -115
  42. package/dist/chunks/importer-EHQk1jbM.js.map +1 -0
  43. package/dist/chunks/{json-elements-DKSqpNW1.js → json-elements-DJZRZ6jd.js} +123 -32
  44. package/dist/chunks/json-elements-DJZRZ6jd.js.map +1 -0
  45. package/dist/chunks/lexicon-WMsNddyU.js +509 -0
  46. package/dist/chunks/lexicon-WMsNddyU.js.map +1 -0
  47. package/dist/chunks/{ontology-export-CtRXjg_i.js → ontology-export-G4MqRdux.js} +3 -2
  48. package/dist/chunks/{ontology-export-CtRXjg_i.js.map → ontology-export-G4MqRdux.js.map} +1 -1
  49. package/dist/chunks/{records-Cu4bxYOm.js → records-CiaWZrFH.js} +2 -2
  50. package/dist/chunks/{records-Cu4bxYOm.js.map → records-CiaWZrFH.js.map} +1 -1
  51. package/dist/chunks/styles-DvoFBKCK.js +690 -0
  52. package/dist/chunks/styles-DvoFBKCK.js.map +1 -0
  53. package/dist/chunks/styles-yed-Cz9rLBCP.js +842 -0
  54. package/dist/chunks/styles-yed-Cz9rLBCP.js.map +1 -0
  55. package/dist/chunks/styles-zNTmz5R7.js +2102 -0
  56. package/dist/chunks/styles-zNTmz5R7.js.map +1 -0
  57. package/dist/chunks/{text-DHOJXnED.js → text-CzJNFOS9.js} +2 -2
  58. package/dist/chunks/{text-DHOJXnED.js.map → text-CzJNFOS9.js.map} +1 -1
  59. package/dist/chunks/units-XMZFIFe1.js +19 -0
  60. package/dist/chunks/units-XMZFIFe1.js.map +1 -0
  61. package/dist/chunks/writer-gQ8kx99H.js +448 -0
  62. package/dist/chunks/writer-gQ8kx99H.js.map +1 -0
  63. package/dist/csv.js +5 -4
  64. package/dist/csv.js.map +1 -1
  65. package/dist/cx.js +1 -1
  66. package/dist/cx2.js +2 -2
  67. package/dist/cys.js +1 -1
  68. package/dist/dot.js +5 -2
  69. package/dist/dot.js.map +1 -1
  70. package/dist/gexf.js +292 -412
  71. package/dist/gexf.js.map +1 -1
  72. package/dist/gml.js +927 -74
  73. package/dist/gml.js.map +1 -1
  74. package/dist/graph-io.js +351 -236
  75. package/dist/graph-io.js.map +1 -1
  76. package/dist/graphml.js +4 -2
  77. package/dist/graphml.js.map +1 -1
  78. package/dist/json.js +1 -1
  79. package/dist/neo4j.js +4 -3
  80. package/dist/neo4j.js.map +1 -1
  81. package/dist/obo.js +1 -1
  82. package/dist/pajek.js +4 -2
  83. package/dist/positions.d.ts +1 -0
  84. package/dist/positions.js +427 -0
  85. package/dist/positions.js.map +1 -0
  86. package/dist/src/common/codes.d.ts +6 -0
  87. package/dist/src/common/codes.d.ts.map +1 -1
  88. package/dist/src/common/codes.js +6 -0
  89. package/dist/src/common/codes.js.map +1 -1
  90. package/dist/src/common/escape.d.ts.map +1 -1
  91. package/dist/src/common/escape.js +4 -2
  92. package/dist/src/common/escape.js.map +1 -1
  93. package/dist/src/common/export.d.ts +10 -0
  94. package/dist/src/common/export.d.ts.map +1 -1
  95. package/dist/src/common/export.js +123 -100
  96. package/dist/src/common/export.js.map +1 -1
  97. package/dist/src/common/input.d.ts.map +1 -1
  98. package/dist/src/common/input.js +8 -1
  99. package/dist/src/common/input.js.map +1 -1
  100. package/dist/src/common/json-elements.d.ts +12 -9
  101. package/dist/src/common/json-elements.d.ts.map +1 -1
  102. package/dist/src/common/json-elements.js +160 -37
  103. package/dist/src/common/json-elements.js.map +1 -1
  104. package/dist/src/common/notes.d.ts +42 -0
  105. package/dist/src/common/notes.d.ts.map +1 -0
  106. package/dist/src/common/notes.js +72 -0
  107. package/dist/src/common/notes.js.map +1 -0
  108. package/dist/src/common/report.d.ts +18 -0
  109. package/dist/src/common/report.d.ts.map +1 -1
  110. package/dist/src/common/report.js +36 -1
  111. package/dist/src/common/report.js.map +1 -1
  112. package/dist/src/common/units.d.ts +24 -0
  113. package/dist/src/common/units.d.ts.map +1 -0
  114. package/dist/src/common/units.js +26 -0
  115. package/dist/src/common/units.js.map +1 -0
  116. package/dist/src/common/xml.d.ts +18 -0
  117. package/dist/src/common/xml.d.ts.map +1 -1
  118. package/dist/src/common/xml.js +42 -5
  119. package/dist/src/common/xml.js.map +1 -1
  120. package/dist/src/formats/cx/exporter.d.ts +6 -0
  121. package/dist/src/formats/cx/exporter.d.ts.map +1 -1
  122. package/dist/src/formats/cx/exporter.js +71 -8
  123. package/dist/src/formats/cx/exporter.js.map +1 -1
  124. package/dist/src/formats/cx/importer.d.ts +5 -2
  125. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  126. package/dist/src/formats/cx/importer.js +102 -72
  127. package/dist/src/formats/cx/importer.js.map +1 -1
  128. package/dist/src/formats/cx/styles.d.ts +102 -0
  129. package/dist/src/formats/cx/styles.d.ts.map +1 -0
  130. package/dist/src/formats/cx/styles.js +225 -0
  131. package/dist/src/formats/cx/styles.js.map +1 -0
  132. package/dist/src/formats/cx2/exporter.d.ts +5 -0
  133. package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
  134. package/dist/src/formats/cx2/exporter.js +181 -71
  135. package/dist/src/formats/cx2/exporter.js.map +1 -1
  136. package/dist/src/formats/cx2/importer.d.ts +4 -1
  137. package/dist/src/formats/cx2/importer.d.ts.map +1 -1
  138. package/dist/src/formats/cx2/importer.js +19 -1
  139. package/dist/src/formats/cx2/importer.js.map +1 -1
  140. package/dist/src/formats/cx2/styles.d.ts +18 -0
  141. package/dist/src/formats/cx2/styles.d.ts.map +1 -0
  142. package/dist/src/formats/cx2/styles.js +24 -0
  143. package/dist/src/formats/cx2/styles.js.map +1 -0
  144. package/dist/src/formats/cys/constants.d.ts +2 -0
  145. package/dist/src/formats/cys/constants.d.ts.map +1 -1
  146. package/dist/src/formats/cys/constants.js +2 -0
  147. package/dist/src/formats/cys/constants.js.map +1 -1
  148. package/dist/src/formats/cys/exporter.d.ts +6 -2
  149. package/dist/src/formats/cys/exporter.d.ts.map +1 -1
  150. package/dist/src/formats/cys/exporter.js +215 -53
  151. package/dist/src/formats/cys/exporter.js.map +1 -1
  152. package/dist/src/formats/cys/importer.d.ts +2 -1
  153. package/dist/src/formats/cys/importer.d.ts.map +1 -1
  154. package/dist/src/formats/cys/importer.js +119 -6
  155. package/dist/src/formats/cys/importer.js.map +1 -1
  156. package/dist/src/formats/cys/session.d.ts +2 -0
  157. package/dist/src/formats/cys/session.d.ts.map +1 -1
  158. package/dist/src/formats/cys/session.js +5 -0
  159. package/dist/src/formats/cys/session.js.map +1 -1
  160. package/dist/src/formats/cys/styles.d.ts +38 -0
  161. package/dist/src/formats/cys/styles.d.ts.map +1 -0
  162. package/dist/src/formats/cys/styles.js +213 -0
  163. package/dist/src/formats/cys/styles.js.map +1 -0
  164. package/dist/src/formats/cys/tables.d.ts +8 -3
  165. package/dist/src/formats/cys/tables.d.ts.map +1 -1
  166. package/dist/src/formats/cys/tables.js +88 -34
  167. package/dist/src/formats/cys/tables.js.map +1 -1
  168. package/dist/src/formats/dot/exporter.d.ts +2 -0
  169. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  170. package/dist/src/formats/dot/exporter.js +195 -81
  171. package/dist/src/formats/dot/exporter.js.map +1 -1
  172. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  173. package/dist/src/formats/dot/importer.js +100 -20
  174. package/dist/src/formats/dot/importer.js.map +1 -1
  175. package/dist/src/formats/dot/index.d.ts +1 -0
  176. package/dist/src/formats/dot/index.d.ts.map +1 -1
  177. package/dist/src/formats/dot/index.js +1 -0
  178. package/dist/src/formats/dot/index.js.map +1 -1
  179. package/dist/src/formats/dot/positions.d.ts +14 -0
  180. package/dist/src/formats/dot/positions.d.ts.map +1 -0
  181. package/dist/src/formats/dot/positions.js +70 -0
  182. package/dist/src/formats/dot/positions.js.map +1 -0
  183. package/dist/src/formats/dot/styles.d.ts +82 -0
  184. package/dist/src/formats/dot/styles.d.ts.map +1 -0
  185. package/dist/src/formats/dot/styles.js +1496 -0
  186. package/dist/src/formats/dot/styles.js.map +1 -0
  187. package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
  188. package/dist/src/formats/gexf/exporter.js +20 -5
  189. package/dist/src/formats/gexf/exporter.js.map +1 -1
  190. package/dist/src/formats/gexf/importer.d.ts +8 -1
  191. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  192. package/dist/src/formats/gexf/importer.js +251 -131
  193. package/dist/src/formats/gexf/importer.js.map +1 -1
  194. package/dist/src/formats/gexf/index.d.ts +8 -0
  195. package/dist/src/formats/gexf/index.d.ts.map +1 -1
  196. package/dist/src/formats/gexf/index.js +10 -2
  197. package/dist/src/formats/gexf/index.js.map +1 -1
  198. package/dist/src/formats/gexf/schema.d.ts +5 -0
  199. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  200. package/dist/src/formats/gexf/schema.js +5 -0
  201. package/dist/src/formats/gexf/schema.js.map +1 -1
  202. package/dist/src/formats/gexf/styles.d.ts +74 -0
  203. package/dist/src/formats/gexf/styles.d.ts.map +1 -0
  204. package/dist/src/formats/gexf/styles.js +604 -0
  205. package/dist/src/formats/gexf/styles.js.map +1 -0
  206. package/dist/src/formats/gml/exporter.d.ts +1 -5
  207. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  208. package/dist/src/formats/gml/exporter.js +19 -8
  209. package/dist/src/formats/gml/exporter.js.map +1 -1
  210. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  211. package/dist/src/formats/gml/importer.js +4 -0
  212. package/dist/src/formats/gml/importer.js.map +1 -1
  213. package/dist/src/formats/gml/index.d.ts +2 -1
  214. package/dist/src/formats/gml/index.d.ts.map +1 -1
  215. package/dist/src/formats/gml/index.js +2 -1
  216. package/dist/src/formats/gml/index.js.map +1 -1
  217. package/dist/src/formats/gml/positions.d.ts +14 -0
  218. package/dist/src/formats/gml/positions.d.ts.map +1 -0
  219. package/dist/src/formats/gml/positions.js +46 -0
  220. package/dist/src/formats/gml/positions.js.map +1 -0
  221. package/dist/src/formats/gml/styles.d.ts +59 -0
  222. package/dist/src/formats/gml/styles.d.ts.map +1 -0
  223. package/dist/src/formats/gml/styles.js +1056 -0
  224. package/dist/src/formats/gml/styles.js.map +1 -0
  225. package/dist/src/formats/gml/syntax.d.ts +11 -0
  226. package/dist/src/formats/gml/syntax.d.ts.map +1 -1
  227. package/dist/src/formats/gml/syntax.js +151 -62
  228. package/dist/src/formats/gml/syntax.js.map +1 -1
  229. package/dist/src/formats/graphml/constants.d.ts +4 -0
  230. package/dist/src/formats/graphml/constants.d.ts.map +1 -1
  231. package/dist/src/formats/graphml/constants.js +5 -1
  232. package/dist/src/formats/graphml/constants.js.map +1 -1
  233. package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
  234. package/dist/src/formats/graphml/exporter.js +133 -65
  235. package/dist/src/formats/graphml/exporter.js.map +1 -1
  236. package/dist/src/formats/graphml/importer.d.ts +4 -1
  237. package/dist/src/formats/graphml/importer.d.ts.map +1 -1
  238. package/dist/src/formats/graphml/importer.js +100 -44
  239. package/dist/src/formats/graphml/importer.js.map +1 -1
  240. package/dist/src/formats/graphml/index.d.ts +1 -0
  241. package/dist/src/formats/graphml/index.d.ts.map +1 -1
  242. package/dist/src/formats/graphml/index.js +1 -0
  243. package/dist/src/formats/graphml/index.js.map +1 -1
  244. package/dist/src/formats/graphml/styles-plain.d.ts +19 -0
  245. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -0
  246. package/dist/src/formats/graphml/styles-plain.js +187 -0
  247. package/dist/src/formats/graphml/styles-plain.js.map +1 -0
  248. package/dist/src/formats/graphml/styles-yed.d.ts +179 -0
  249. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -0
  250. package/dist/src/formats/graphml/styles-yed.js +1086 -0
  251. package/dist/src/formats/graphml/styles-yed.js.map +1 -0
  252. package/dist/src/formats/graphml/styles-yfiles3.d.ts +19 -0
  253. package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -0
  254. package/dist/src/formats/graphml/styles-yfiles3.js +508 -0
  255. package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -0
  256. package/dist/src/formats/graphml/tree.d.ts.map +1 -1
  257. package/dist/src/formats/graphml/tree.js +34 -19
  258. package/dist/src/formats/graphml/tree.js.map +1 -1
  259. package/dist/src/formats/graphml/yfiles.d.ts +16 -2
  260. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
  261. package/dist/src/formats/graphml/yfiles.js +83 -12
  262. package/dist/src/formats/graphml/yfiles.js.map +1 -1
  263. package/dist/src/formats/json/exporter.d.ts +5 -0
  264. package/dist/src/formats/json/exporter.d.ts.map +1 -1
  265. package/dist/src/formats/json/exporter.js +68 -25
  266. package/dist/src/formats/json/exporter.js.map +1 -1
  267. package/dist/src/formats/json/importer.d.ts +22 -3
  268. package/dist/src/formats/json/importer.d.ts.map +1 -1
  269. package/dist/src/formats/json/importer.js +439 -264
  270. package/dist/src/formats/json/importer.js.map +1 -1
  271. package/dist/src/formats/json/positions.d.ts +16 -0
  272. package/dist/src/formats/json/positions.d.ts.map +1 -0
  273. package/dist/src/formats/json/positions.js +44 -0
  274. package/dist/src/formats/json/positions.js.map +1 -0
  275. package/dist/src/formats/json/styles.d.ts +102 -0
  276. package/dist/src/formats/json/styles.d.ts.map +1 -0
  277. package/dist/src/formats/json/styles.js +1753 -0
  278. package/dist/src/formats/json/styles.js.map +1 -0
  279. package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
  280. package/dist/src/formats/neo4j/exporter.js +2 -1
  281. package/dist/src/formats/neo4j/exporter.js.map +1 -1
  282. package/dist/src/formats/pajek/exporter.d.ts +2 -0
  283. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  284. package/dist/src/formats/pajek/exporter.js +142 -76
  285. package/dist/src/formats/pajek/exporter.js.map +1 -1
  286. package/dist/src/formats/pajek/importer.d.ts +4 -0
  287. package/dist/src/formats/pajek/importer.d.ts.map +1 -1
  288. package/dist/src/formats/pajek/importer.js +60 -6
  289. package/dist/src/formats/pajek/importer.js.map +1 -1
  290. package/dist/src/formats/pajek/index.d.ts +2 -0
  291. package/dist/src/formats/pajek/index.d.ts.map +1 -1
  292. package/dist/src/formats/pajek/index.js +2 -0
  293. package/dist/src/formats/pajek/index.js.map +1 -1
  294. package/dist/src/formats/pajek/styles.d.ts +50 -0
  295. package/dist/src/formats/pajek/styles.d.ts.map +1 -0
  296. package/dist/src/formats/pajek/styles.js +569 -0
  297. package/dist/src/formats/pajek/styles.js.map +1 -0
  298. package/dist/src/formats/pajek/syntax.d.ts +6 -0
  299. package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
  300. package/dist/src/formats/pajek/syntax.js +6 -0
  301. package/dist/src/formats/pajek/syntax.js.map +1 -1
  302. package/dist/src/formats/xgmml/columns.d.ts.map +1 -1
  303. package/dist/src/formats/xgmml/columns.js +34 -9
  304. package/dist/src/formats/xgmml/columns.js.map +1 -1
  305. package/dist/src/formats/xgmml/constants.d.ts +2 -0
  306. package/dist/src/formats/xgmml/constants.d.ts.map +1 -1
  307. package/dist/src/formats/xgmml/constants.js +3 -1
  308. package/dist/src/formats/xgmml/constants.js.map +1 -1
  309. package/dist/src/formats/xgmml/document.d.ts +12 -8
  310. package/dist/src/formats/xgmml/document.d.ts.map +1 -1
  311. package/dist/src/formats/xgmml/document.js +56 -13
  312. package/dist/src/formats/xgmml/document.js.map +1 -1
  313. package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
  314. package/dist/src/formats/xgmml/emit.js +12 -6
  315. package/dist/src/formats/xgmml/emit.js.map +1 -1
  316. package/dist/src/formats/xgmml/exporter.d.ts +3 -1
  317. package/dist/src/formats/xgmml/exporter.d.ts.map +1 -1
  318. package/dist/src/formats/xgmml/exporter.js +22 -9
  319. package/dist/src/formats/xgmml/exporter.js.map +1 -1
  320. package/dist/src/formats/xgmml/importer.d.ts +2 -1
  321. package/dist/src/formats/xgmml/importer.d.ts.map +1 -1
  322. package/dist/src/formats/xgmml/importer.js +31 -24
  323. package/dist/src/formats/xgmml/importer.js.map +1 -1
  324. package/dist/src/formats/xgmml/styles.d.ts +104 -0
  325. package/dist/src/formats/xgmml/styles.d.ts.map +1 -0
  326. package/dist/src/formats/xgmml/styles.js +310 -0
  327. package/dist/src/formats/xgmml/styles.js.map +1 -0
  328. package/dist/src/index.d.ts +9 -7
  329. package/dist/src/index.d.ts.map +1 -1
  330. package/dist/src/index.js +7 -7
  331. package/dist/src/index.js.map +1 -1
  332. package/dist/src/positions/codes.d.ts +31 -0
  333. package/dist/src/positions/codes.d.ts.map +1 -0
  334. package/dist/src/positions/codes.js +26 -0
  335. package/dist/src/positions/codes.js.map +1 -0
  336. package/dist/src/positions/convert.d.ts +58 -0
  337. package/dist/src/positions/convert.d.ts.map +1 -0
  338. package/dist/src/positions/convert.js +107 -0
  339. package/dist/src/positions/convert.js.map +1 -0
  340. package/dist/src/positions/extract.d.ts +27 -0
  341. package/dist/src/positions/extract.d.ts.map +1 -0
  342. package/dist/src/positions/extract.js +526 -0
  343. package/dist/src/positions/extract.js.map +1 -0
  344. package/dist/src/positions/index.d.ts +10 -0
  345. package/dist/src/positions/index.d.ts.map +1 -0
  346. package/dist/src/positions/index.js +9 -0
  347. package/dist/src/positions/index.js.map +1 -0
  348. package/dist/src/positions/types.d.ts +208 -0
  349. package/dist/src/positions/types.d.ts.map +1 -0
  350. package/dist/src/positions/types.js +10 -0
  351. package/dist/src/positions/types.js.map +1 -0
  352. package/dist/src/registry.d.ts +30 -0
  353. package/dist/src/registry.d.ts.map +1 -1
  354. package/dist/src/registry.js +130 -9
  355. package/dist/src/registry.js.map +1 -1
  356. package/dist/src/styles/annotations.d.ts +132 -0
  357. package/dist/src/styles/annotations.d.ts.map +1 -0
  358. package/dist/src/styles/annotations.js +320 -0
  359. package/dist/src/styles/annotations.js.map +1 -0
  360. package/dist/src/styles/budget.d.ts +45 -0
  361. package/dist/src/styles/budget.d.ts.map +1 -0
  362. package/dist/src/styles/budget.js +58 -0
  363. package/dist/src/styles/budget.js.map +1 -0
  364. package/dist/src/styles/canon/bends.d.ts +32 -0
  365. package/dist/src/styles/canon/bends.d.ts.map +1 -0
  366. package/dist/src/styles/canon/bends.js +74 -0
  367. package/dist/src/styles/canon/bends.js.map +1 -0
  368. package/dist/src/styles/canon/color-tables.d.ts +22 -0
  369. package/dist/src/styles/canon/color-tables.d.ts.map +1 -0
  370. package/dist/src/styles/canon/color-tables.js +369 -0
  371. package/dist/src/styles/canon/color-tables.js.map +1 -0
  372. package/dist/src/styles/canon/color.d.ts +66 -0
  373. package/dist/src/styles/canon/color.d.ts.map +1 -0
  374. package/dist/src/styles/canon/color.js +548 -0
  375. package/dist/src/styles/canon/color.js.map +1 -0
  376. package/dist/src/styles/canon/enums.d.ts +25 -0
  377. package/dist/src/styles/canon/enums.d.ts.map +1 -0
  378. package/dist/src/styles/canon/enums.js +187 -0
  379. package/dist/src/styles/canon/enums.js.map +1 -0
  380. package/dist/src/styles/canon/graphviz.d.ts +48 -0
  381. package/dist/src/styles/canon/graphviz.d.ts.map +1 -0
  382. package/dist/src/styles/canon/graphviz.js +160 -0
  383. package/dist/src/styles/canon/graphviz.js.map +1 -0
  384. package/dist/src/styles/canon/index.d.ts +13 -0
  385. package/dist/src/styles/canon/index.d.ts.map +1 -0
  386. package/dist/src/styles/canon/index.js +13 -0
  387. package/dist/src/styles/canon/index.js.map +1 -0
  388. package/dist/src/styles/canon/number.d.ts +59 -0
  389. package/dist/src/styles/canon/number.d.ts.map +1 -0
  390. package/dist/src/styles/canon/number.js +142 -0
  391. package/dist/src/styles/canon/number.js.map +1 -0
  392. package/dist/src/styles/canon/site.d.ts +51 -0
  393. package/dist/src/styles/canon/site.d.ts.map +1 -0
  394. package/dist/src/styles/canon/site.js +63 -0
  395. package/dist/src/styles/canon/site.js.map +1 -0
  396. package/dist/src/styles/canon/text.d.ts +61 -0
  397. package/dist/src/styles/canon/text.d.ts.map +1 -0
  398. package/dist/src/styles/canon/text.js +199 -0
  399. package/dist/src/styles/canon/text.js.map +1 -0
  400. package/dist/src/styles/codes.d.ts +95 -0
  401. package/dist/src/styles/codes.d.ts.map +1 -0
  402. package/dist/src/styles/codes.js +97 -0
  403. package/dist/src/styles/codes.js.map +1 -0
  404. package/dist/src/styles/cyjs/cascade.d.ts +134 -0
  405. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -0
  406. package/dist/src/styles/cyjs/cascade.js +2252 -0
  407. package/dist/src/styles/cyjs/cascade.js.map +1 -0
  408. package/dist/src/styles/cyjs/defaults-table.d.ts +25 -0
  409. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -0
  410. package/dist/src/styles/cyjs/defaults-table.js +76 -0
  411. package/dist/src/styles/cyjs/defaults-table.js.map +1 -0
  412. package/dist/src/styles/cyjs/emit.d.ts +82 -0
  413. package/dist/src/styles/cyjs/emit.d.ts.map +1 -0
  414. package/dist/src/styles/cyjs/emit.js +791 -0
  415. package/dist/src/styles/cyjs/emit.js.map +1 -0
  416. package/dist/src/styles/cyjs/index.d.ts +13 -0
  417. package/dist/src/styles/cyjs/index.d.ts.map +1 -0
  418. package/dist/src/styles/cyjs/index.js +13 -0
  419. package/dist/src/styles/cyjs/index.js.map +1 -0
  420. package/dist/src/styles/cyjs/live.d.ts +46 -0
  421. package/dist/src/styles/cyjs/live.d.ts.map +1 -0
  422. package/dist/src/styles/cyjs/live.js +108 -0
  423. package/dist/src/styles/cyjs/live.js.map +1 -0
  424. package/dist/src/styles/cyjs/mappers.d.ts +147 -0
  425. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -0
  426. package/dist/src/styles/cyjs/mappers.js +744 -0
  427. package/dist/src/styles/cyjs/mappers.js.map +1 -0
  428. package/dist/src/styles/cyjs/selector.d.ts +113 -0
  429. package/dist/src/styles/cyjs/selector.d.ts.map +1 -0
  430. package/dist/src/styles/cyjs/selector.js +611 -0
  431. package/dist/src/styles/cyjs/selector.js.map +1 -0
  432. package/dist/src/styles/cyjs/stylesheet-text.d.ts +37 -0
  433. package/dist/src/styles/cyjs/stylesheet-text.d.ts.map +1 -0
  434. package/dist/src/styles/cyjs/stylesheet-text.js +181 -0
  435. package/dist/src/styles/cyjs/stylesheet-text.js.map +1 -0
  436. package/dist/src/styles/cytoscape/emit.d.ts +125 -0
  437. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -0
  438. package/dist/src/styles/cytoscape/emit.js +1025 -0
  439. package/dist/src/styles/cytoscape/emit.js.map +1 -0
  440. package/dist/src/styles/cytoscape/index.d.ts +10 -0
  441. package/dist/src/styles/cytoscape/index.d.ts.map +1 -0
  442. package/dist/src/styles/cytoscape/index.js +10 -0
  443. package/dist/src/styles/cytoscape/index.js.map +1 -0
  444. package/dist/src/styles/cytoscape/lexicon.d.ts +49 -0
  445. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -0
  446. package/dist/src/styles/cytoscape/lexicon.js +605 -0
  447. package/dist/src/styles/cytoscape/lexicon.js.map +1 -0
  448. package/dist/src/styles/cytoscape/mappings.d.ts +171 -0
  449. package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -0
  450. package/dist/src/styles/cytoscape/mappings.js +460 -0
  451. package/dist/src/styles/cytoscape/mappings.js.map +1 -0
  452. package/dist/src/styles/cytoscape/resolve.d.ts +137 -0
  453. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -0
  454. package/dist/src/styles/cytoscape/resolve.js +381 -0
  455. package/dist/src/styles/cytoscape/resolve.js.map +1 -0
  456. package/dist/src/styles/cytoscape/translate.d.ts +50 -0
  457. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -0
  458. package/dist/src/styles/cytoscape/translate.js +156 -0
  459. package/dist/src/styles/cytoscape/translate.js.map +1 -0
  460. package/dist/src/styles/defaults.d.ts +90 -0
  461. package/dist/src/styles/defaults.d.ts.map +1 -0
  462. package/dist/src/styles/defaults.js +414 -0
  463. package/dist/src/styles/defaults.js.map +1 -0
  464. package/dist/src/styles/index.d.ts +15 -0
  465. package/dist/src/styles/index.d.ts.map +1 -0
  466. package/dist/src/styles/index.js +14 -0
  467. package/dist/src/styles/index.js.map +1 -0
  468. package/dist/src/styles/internal.d.ts +17 -0
  469. package/dist/src/styles/internal.d.ts.map +1 -0
  470. package/dist/src/styles/internal.js +16 -0
  471. package/dist/src/styles/internal.js.map +1 -0
  472. package/dist/src/styles/io/approximations.d.ts +24 -0
  473. package/dist/src/styles/io/approximations.d.ts.map +1 -0
  474. package/dist/src/styles/io/approximations.js +51 -0
  475. package/dist/src/styles/io/approximations.js.map +1 -0
  476. package/dist/src/styles/io/block.d.ts +166 -0
  477. package/dist/src/styles/io/block.d.ts.map +1 -0
  478. package/dist/src/styles/io/block.js +930 -0
  479. package/dist/src/styles/io/block.js.map +1 -0
  480. package/dist/src/styles/io/generic.d.ts +88 -0
  481. package/dist/src/styles/io/generic.d.ts.map +1 -0
  482. package/dist/src/styles/io/generic.js +516 -0
  483. package/dist/src/styles/io/generic.js.map +1 -0
  484. package/dist/src/styles/io/index.d.ts +8 -0
  485. package/dist/src/styles/io/index.d.ts.map +1 -0
  486. package/dist/src/styles/io/index.js +7 -0
  487. package/dist/src/styles/io/index.js.map +1 -0
  488. package/dist/src/styles/io/writer.d.ts +89 -0
  489. package/dist/src/styles/io/writer.d.ts.map +1 -0
  490. package/dist/src/styles/io/writer.js +626 -0
  491. package/dist/src/styles/io/writer.js.map +1 -0
  492. package/dist/src/styles/notes.d.ts +47 -0
  493. package/dist/src/styles/notes.d.ts.map +1 -0
  494. package/dist/src/styles/notes.js +140 -0
  495. package/dist/src/styles/notes.js.map +1 -0
  496. package/dist/src/styles/plan/classes.d.ts +31 -0
  497. package/dist/src/styles/plan/classes.d.ts.map +1 -0
  498. package/dist/src/styles/plan/classes.js +139 -0
  499. package/dist/src/styles/plan/classes.js.map +1 -0
  500. package/dist/src/styles/plan/continuous.d.ts +32 -0
  501. package/dist/src/styles/plan/continuous.d.ts.map +1 -0
  502. package/dist/src/styles/plan/continuous.js +165 -0
  503. package/dist/src/styles/plan/continuous.js.map +1 -0
  504. package/dist/src/styles/plan/discrete.d.ts +39 -0
  505. package/dist/src/styles/plan/discrete.d.ts.map +1 -0
  506. package/dist/src/styles/plan/discrete.js +127 -0
  507. package/dist/src/styles/plan/discrete.js.map +1 -0
  508. package/dist/src/styles/plan/families.d.ts +31 -0
  509. package/dist/src/styles/plan/families.d.ts.map +1 -0
  510. package/dist/src/styles/plan/families.js +95 -0
  511. package/dist/src/styles/plan/families.js.map +1 -0
  512. package/dist/src/styles/plan/features.d.ts +58 -0
  513. package/dist/src/styles/plan/features.d.ts.map +1 -0
  514. package/dist/src/styles/plan/features.js +185 -0
  515. package/dist/src/styles/plan/features.js.map +1 -0
  516. package/dist/src/styles/plan/index.d.ts +7 -0
  517. package/dist/src/styles/plan/index.d.ts.map +1 -0
  518. package/dist/src/styles/plan/index.js +7 -0
  519. package/dist/src/styles/plan/index.js.map +1 -0
  520. package/dist/src/styles/plan/plan.d.ts +71 -0
  521. package/dist/src/styles/plan/plan.d.ts.map +1 -0
  522. package/dist/src/styles/plan/plan.js +893 -0
  523. package/dist/src/styles/plan/plan.js.map +1 -0
  524. package/dist/src/styles/plan/resolve.d.ts +137 -0
  525. package/dist/src/styles/plan/resolve.d.ts.map +1 -0
  526. package/dist/src/styles/plan/resolve.js +587 -0
  527. package/dist/src/styles/plan/resolve.js.map +1 -0
  528. package/dist/src/styles/types.d.ts +702 -0
  529. package/dist/src/styles/types.d.ts.map +1 -0
  530. package/dist/src/styles/types.js +10 -0
  531. package/dist/src/styles/types.js.map +1 -0
  532. package/dist/src/styles/vocabulary.d.ts +41 -0
  533. package/dist/src/styles/vocabulary.d.ts.map +1 -0
  534. package/dist/src/styles/vocabulary.js +140 -0
  535. package/dist/src/styles/vocabulary.js.map +1 -0
  536. package/dist/src/types.d.ts +64 -1
  537. package/dist/src/types.d.ts.map +1 -1
  538. package/dist/src/types.js.map +1 -1
  539. package/dist/styles.d.ts +1 -0
  540. package/dist/styles.js +322 -0
  541. package/dist/styles.js.map +1 -0
  542. package/dist/xgmml.js +5 -4
  543. package/dist/xgmml.js.map +1 -1
  544. package/package.json +13 -2
  545. package/src/common/codes.ts +7 -0
  546. package/src/common/escape.ts +5 -2
  547. package/src/common/export.ts +179 -140
  548. package/src/common/input.ts +8 -4
  549. package/src/common/json-elements.ts +169 -38
  550. package/src/common/notes.ts +94 -0
  551. package/src/common/report.ts +41 -1
  552. package/src/common/units.ts +42 -0
  553. package/src/common/xml.ts +45 -5
  554. package/src/formats/cx/exporter.ts +95 -11
  555. package/src/formats/cx/importer.ts +126 -90
  556. package/src/formats/cx/styles.ts +304 -0
  557. package/src/formats/cx2/exporter.ts +234 -77
  558. package/src/formats/cx2/importer.ts +19 -1
  559. package/src/formats/cx2/styles.ts +29 -0
  560. package/src/formats/cys/constants.ts +3 -0
  561. package/src/formats/cys/exporter.ts +246 -60
  562. package/src/formats/cys/importer.ts +125 -9
  563. package/src/formats/cys/session.ts +6 -0
  564. package/src/formats/cys/styles.ts +254 -0
  565. package/src/formats/cys/tables.ts +117 -48
  566. package/src/formats/dot/exporter.ts +262 -126
  567. package/src/formats/dot/importer.ts +111 -20
  568. package/src/formats/dot/index.ts +1 -0
  569. package/src/formats/dot/positions.ts +77 -0
  570. package/src/formats/dot/styles.ts +1755 -0
  571. package/src/formats/gexf/exporter.ts +27 -11
  572. package/src/formats/gexf/importer.ts +308 -158
  573. package/src/formats/gexf/index.ts +10 -0
  574. package/src/formats/gexf/schema.ts +5 -0
  575. package/src/formats/gexf/styles.ts +719 -0
  576. package/src/formats/gml/exporter.ts +33 -14
  577. package/src/formats/gml/importer.ts +4 -0
  578. package/src/formats/gml/index.ts +2 -1
  579. package/src/formats/gml/positions.ts +52 -0
  580. package/src/formats/gml/styles.ts +1248 -0
  581. package/src/formats/gml/syntax.ts +173 -62
  582. package/src/formats/graphml/constants.ts +5 -0
  583. package/src/formats/graphml/exporter.ts +163 -71
  584. package/src/formats/graphml/importer.ts +119 -45
  585. package/src/formats/graphml/index.ts +1 -0
  586. package/src/formats/graphml/styles-plain.ts +236 -0
  587. package/src/formats/graphml/styles-yed.ts +1221 -0
  588. package/src/formats/graphml/styles-yfiles3.ts +573 -0
  589. package/src/formats/graphml/tree.ts +36 -20
  590. package/src/formats/graphml/yfiles.ts +89 -13
  591. package/src/formats/json/exporter.ts +76 -26
  592. package/src/formats/json/importer.ts +541 -322
  593. package/src/formats/json/positions.ts +50 -0
  594. package/src/formats/json/styles.ts +2082 -0
  595. package/src/formats/neo4j/exporter.ts +2 -1
  596. package/src/formats/pajek/exporter.ts +195 -106
  597. package/src/formats/pajek/importer.ts +78 -9
  598. package/src/formats/pajek/index.ts +2 -0
  599. package/src/formats/pajek/styles.ts +685 -0
  600. package/src/formats/pajek/syntax.ts +7 -0
  601. package/src/formats/xgmml/columns.ts +39 -9
  602. package/src/formats/xgmml/constants.ts +3 -0
  603. package/src/formats/xgmml/document.ts +54 -12
  604. package/src/formats/xgmml/emit.ts +11 -6
  605. package/src/formats/xgmml/exporter.ts +32 -13
  606. package/src/formats/xgmml/importer.ts +43 -29
  607. package/src/formats/xgmml/styles.ts +400 -0
  608. package/src/index.ts +16 -0
  609. package/src/positions/codes.ts +32 -0
  610. package/src/positions/convert.ts +123 -0
  611. package/src/positions/extract.ts +619 -0
  612. package/src/positions/index.ts +23 -0
  613. package/src/positions/types.ts +221 -0
  614. package/src/registry.ts +179 -8
  615. package/src/styles/annotations.ts +478 -0
  616. package/src/styles/budget.ts +60 -0
  617. package/src/styles/canon/bends.ts +84 -0
  618. package/src/styles/canon/color-tables.ts +386 -0
  619. package/src/styles/canon/color.ts +624 -0
  620. package/src/styles/canon/enums.ts +211 -0
  621. package/src/styles/canon/graphviz.ts +189 -0
  622. package/src/styles/canon/index.ts +13 -0
  623. package/src/styles/canon/number.ts +152 -0
  624. package/src/styles/canon/site.ts +87 -0
  625. package/src/styles/canon/text.ts +221 -0
  626. package/src/styles/codes.ts +104 -0
  627. package/src/styles/cyjs/cascade.ts +2670 -0
  628. package/src/styles/cyjs/defaults-table.ts +82 -0
  629. package/src/styles/cyjs/emit.ts +952 -0
  630. package/src/styles/cyjs/index.ts +37 -0
  631. package/src/styles/cyjs/live.ts +147 -0
  632. package/src/styles/cyjs/mappers.ts +879 -0
  633. package/src/styles/cyjs/selector.ts +778 -0
  634. package/src/styles/cyjs/stylesheet-text.ts +214 -0
  635. package/src/styles/cytoscape/emit.ts +1264 -0
  636. package/src/styles/cytoscape/index.ts +40 -0
  637. package/src/styles/cytoscape/lexicon.ts +658 -0
  638. package/src/styles/cytoscape/mappings.ts +603 -0
  639. package/src/styles/cytoscape/resolve.ts +521 -0
  640. package/src/styles/cytoscape/translate.ts +237 -0
  641. package/src/styles/defaults.ts +504 -0
  642. package/src/styles/index.ts +57 -0
  643. package/src/styles/internal.ts +17 -0
  644. package/src/styles/io/approximations.ts +47 -0
  645. package/src/styles/io/block.ts +1138 -0
  646. package/src/styles/io/generic.ts +687 -0
  647. package/src/styles/io/index.ts +18 -0
  648. package/src/styles/io/writer.ts +780 -0
  649. package/src/styles/notes.ts +165 -0
  650. package/src/styles/plan/classes.ts +166 -0
  651. package/src/styles/plan/continuous.ts +218 -0
  652. package/src/styles/plan/discrete.ts +165 -0
  653. package/src/styles/plan/families.ts +115 -0
  654. package/src/styles/plan/features.ts +234 -0
  655. package/src/styles/plan/index.ts +7 -0
  656. package/src/styles/plan/plan.ts +1129 -0
  657. package/src/styles/plan/resolve.ts +685 -0
  658. package/src/styles/types.ts +814 -0
  659. package/src/styles/vocabulary.ts +172 -0
  660. package/src/types.ts +76 -1
  661. package/dist/chunks/constants-fT3E8JYY.js.map +0 -1
  662. package/dist/chunks/escape-B62ZGM_a.js.map +0 -1
  663. package/dist/chunks/export-rKLeGQMo.js.map +0 -1
  664. package/dist/chunks/exporter-8hLNemFk.js.map +0 -1
  665. package/dist/chunks/exporter-BWwEuOPT.js.map +0 -1
  666. package/dist/chunks/exporter-RVtXVetw.js.map +0 -1
  667. package/dist/chunks/importer-BbNb7eNg.js.map +0 -1
  668. package/dist/chunks/importer-C98dpSH4.js.map +0 -1
  669. package/dist/chunks/importer-D794XUTe.js.map +0 -1
  670. package/dist/chunks/importer-Dz7tI8Sa.js.map +0 -1
  671. package/dist/chunks/importer-Ht7LNg8L.js.map +0 -1
  672. package/dist/chunks/importer-WrGRZb0N.js.map +0 -1
  673. package/dist/chunks/importer-xZ-3suY1.js.map +0 -1
  674. package/dist/chunks/json-elements-DKSqpNW1.js.map +0 -1
@@ -0,0 +1,605 @@
1
+ /**
2
+ * Cytoscape desktop's visual lexicon (CX, CX2, sessions, XGMML): which visual properties set each neutral
3
+ * property, and how each value is read. Cytoscape states opacities two ways (`NODE_TRANSPARENCY` 0..255 in the
4
+ * desktop and CX version 1, `NODE_BACKGROUND_OPACITY` 0..1 in CX2); both are read here.
5
+ */
6
+ import { canonColor } from "../canon/color.js";
7
+ import { canonEnum } from "../canon/enums.js";
8
+ import { canonBoolean, canonNumber, canonOpacity, num6 } from "../canon/number.js";
9
+ import { noteAt, scalarText } from "../canon/site.js";
10
+ import { canonText } from "../canon/text.js";
11
+ import { STYLE_ISSUE } from "../codes.js";
12
+ import { isStyleValue } from "../vocabulary.js";
13
+ // A color; its alpha is dropped (Cytoscape keeps opacity in separate properties).
14
+ const color = (raw, site) => canonColor(raw, "cytoscape", site)?.color ?? null;
15
+ // Cytoscape desktop's 0..255 transparency.
16
+ const opacity255 = (raw, site) => {
17
+ const v = canonNumber(raw, site);
18
+ if (v === null) {
19
+ return null;
20
+ }
21
+ if (v > 255) {
22
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, String(raw));
23
+ return null;
24
+ }
25
+ return num6(Math.round(v) / 255);
26
+ };
27
+ // CX2's 0..1 opacity.
28
+ const opacity01 = (raw, site) => canonOpacity(raw, "css", site);
29
+ const length = (raw, site) => canonNumber(raw, site);
30
+ const text = (raw, site) => canonText(raw, site);
31
+ const bool = (raw, site) => canonBoolean(raw, site);
32
+ // CX2's `element` / `none`, or a boolean.
33
+ const visibility = (raw, site) => {
34
+ if (typeof raw === "string") {
35
+ const t = raw.trim().toLowerCase();
36
+ if (t === "element" || t === "visible") {
37
+ return true;
38
+ }
39
+ if (t === "none" || t === "hidden") {
40
+ return false;
41
+ }
42
+ }
43
+ return canonBoolean(raw, site);
44
+ };
45
+ /** Cytoscape spellings the common shape table does not hold. */
46
+ const CY_SHAPES = new Map([["rounded_rectangle", "round-rectangle"]]);
47
+ /**
48
+ * Cytoscape reads its enumeration names whatever their case, so a name it does not know is kept lowercase and
49
+ * hyphenated, the form of the names it knows: `Bogus` and the `BOGUS` a writer spells it as read the same.
50
+ * @param v - a canonical value
51
+ * @returns the value, an `other:` one in that form
52
+ */
53
+ const caseless = (v) => typeof v === "string" && v.startsWith("other:") ? `other:${v.slice(6).toLowerCase().replaceAll("_", "-")}` : v;
54
+ const shape = (raw, site) => {
55
+ const s = scalarText(raw, site);
56
+ if (s === null) {
57
+ return null;
58
+ }
59
+ return caseless(CY_SHAPES.get(s.trim().toLowerCase()) ?? canonEnum("shape", s, "cytoscape", site));
60
+ };
61
+ /** Cytoscape's arrow names, desktop (`DELTA`) and CX2 (`triangle`), lowercase. */
62
+ const CY_ARROWS = new Map([
63
+ ["none", "none"],
64
+ ["delta", "triangle"],
65
+ ["arrow", "vee"],
66
+ ["diamond", "diamond"],
67
+ ["circle", "circle"],
68
+ ["t", "tee"],
69
+ ["half_top", "half"],
70
+ ["half_bottom", "half"],
71
+ ["square", "square"],
72
+ ["delta_short_1", "triangle"],
73
+ ["delta_short_2", "triangle"],
74
+ ["arrow_short", "vee"],
75
+ ["diamond_short_1", "diamond"],
76
+ ["diamond_short_2", "diamond"],
77
+ ["open_delta", "triangle-open"],
78
+ ["open_circle", "circle-open"],
79
+ ["open_diamond", "diamond-open"],
80
+ ["open_square", "other:open-square"],
81
+ ["cross_delta", "vee"],
82
+ ["cross_open_delta", "triangle-open"],
83
+ ["open_half_circle", "other:open-half-circle"],
84
+ ["half_circle", "other:half-circle"],
85
+ ["triangle", "triangle"],
86
+ ["triangle-tee", "tee"],
87
+ ["triangle-cross", "vee"],
88
+ ["triangle-backcurve", "triangle"],
89
+ ["tee", "tee"],
90
+ ["vee", "vee"],
91
+ ["open-circle", "circle-open"],
92
+ ["open-triangle", "triangle-open"],
93
+ ["open-diamond", "diamond-open"],
94
+ ["open-square", "other:open-square"],
95
+ ["open-delta", "triangle-open"],
96
+ ["half-top", "half"],
97
+ ["half-bottom", "half"],
98
+ ]);
99
+ /** Cytoscape 2.x numbered arrow codes. */
100
+ const LEGACY_ARROW = [
101
+ "none",
102
+ "delta",
103
+ "delta",
104
+ "delta",
105
+ "arrow",
106
+ "arrow",
107
+ "arrow",
108
+ "diamond",
109
+ "diamond",
110
+ "diamond",
111
+ "circle",
112
+ "circle",
113
+ "circle",
114
+ "t",
115
+ "t",
116
+ "t",
117
+ "half_top",
118
+ "half_bottom",
119
+ ];
120
+ const arrow = (raw, site) => {
121
+ const s = scalarText(raw, site);
122
+ if (s === null) {
123
+ return null;
124
+ }
125
+ let key = s.trim().toLowerCase();
126
+ if (/^\d{1,2}$/.test(key)) {
127
+ key = LEGACY_ARROW.at(Number(key)) ?? key;
128
+ }
129
+ return caseless(CY_ARROWS.get(key) ?? canonEnum("arrow", s, "cytoscape", site));
130
+ };
131
+ /** Cytoscape's line types, lowercase. */
132
+ const CY_LINES = new Map([
133
+ ["solid", "solid"],
134
+ ["dot", "dotted"],
135
+ ["dots", "dotted"],
136
+ ["equal_dash", "dashed"],
137
+ ["long_dash", "dashed"],
138
+ ["dash_dot", "dash-dot"],
139
+ ["sinewave", "sinewave"],
140
+ ["zigzag", "zigzag"],
141
+ ["parallel_lines", "double"],
142
+ ["marquee_dash", "dashed"],
143
+ ["marquee_equal", "dashed"],
144
+ ["marquee_dash_dot", "dash-dot"],
145
+ ["backward_slash", "other:backward-slash"],
146
+ ["forward_slash", "other:forward-slash"],
147
+ ["vertical_slash", "other:vertical-slash"],
148
+ ["separate_arrow", "other:separate-arrow"],
149
+ ["contiguous_arrow", "other:contiguous-arrow"],
150
+ ["double", "double"],
151
+ ]);
152
+ /**
153
+ * A line type read for an edge line or a node border.
154
+ * @param kind - which enumeration the value belongs to
155
+ * @returns the parser
156
+ */
157
+ function lineOf(kind) {
158
+ return (raw, site) => {
159
+ const s = scalarText(raw, site);
160
+ if (s === null) {
161
+ return null;
162
+ }
163
+ const key = s.trim().toLowerCase();
164
+ let v;
165
+ if (/^line_\d{1,3}$/.test(key)) {
166
+ v = "solid";
167
+ }
168
+ else if (/^dashed_\d{1,3}$/.test(key)) {
169
+ v = "dashed";
170
+ }
171
+ else {
172
+ v = CY_LINES.get(key) ?? canonEnum(kind, s, "cytoscape", site);
173
+ }
174
+ if (v === null || isStyleValue("node", kind, v) || kind === "lineStyle") {
175
+ return v;
176
+ }
177
+ // a line type a border does not have is kept as other:
178
+ return `other:${key}`;
179
+ };
180
+ }
181
+ /**
182
+ * A font face: `SansSerif,plain,12`, `Dialog.bold,bold,12`, the legacy `SansSerif-0-12` (style bits 1 bold,
183
+ * 2 italic) or CX2's `{ FONT_FAMILY, FONT_STYLE, FONT_WEIGHT }`, whose `FONT_NAME` (the font Cytoscape desktop
184
+ * wrote it from, which its own import restores) wins over the CSS family when present.
185
+ * @param raw - the value
186
+ * @param site - where it was read
187
+ * @returns the face, or null
188
+ */
189
+ function fontFace(raw, site) {
190
+ if (raw !== null && typeof raw === "object" && !Array.isArray(raw)) {
191
+ return cx2FontFace(raw, site);
192
+ }
193
+ const s = scalarText(raw, site);
194
+ if (s === null) {
195
+ return null;
196
+ }
197
+ const parts = s.split(",");
198
+ if (parts.length >= 2) {
199
+ const st = parts[1].trim().toLowerCase();
200
+ return {
201
+ family: parts[0].trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, ""),
202
+ weight: st.includes("bold") ? "bold" : "normal",
203
+ italic: st.includes("italic"),
204
+ };
205
+ }
206
+ return legacyFontFace(s) ?? { family: s.trim(), weight: "normal", italic: false };
207
+ }
208
+ /**
209
+ * CX2's font face object.
210
+ * @param o - the object
211
+ * @param site - where it was read
212
+ * @returns the face, or null without a family
213
+ */
214
+ function cx2FontFace(o, site) {
215
+ const name = Object.hasOwn(o, "FONT_NAME") ? scalarText(o.FONT_NAME, site) : null;
216
+ let family = Object.hasOwn(o, "FONT_FAMILY") ? scalarText(o.FONT_FAMILY, site) : null;
217
+ if (name !== null && name.trim() !== "") {
218
+ family = name.trim().replace(/\.(?:bold|italic|plain|bolditalic)$/i, "");
219
+ }
220
+ if (family === null) {
221
+ return null;
222
+ }
223
+ const weight = Object.hasOwn(o, "FONT_WEIGHT") ? String(o.FONT_WEIGHT) : "";
224
+ const style = Object.hasOwn(o, "FONT_STYLE") ? String(o.FONT_STYLE) : "";
225
+ return {
226
+ family: family.trim(),
227
+ weight: /bold/i.test(weight.slice(0, 32)) ? "bold" : "normal",
228
+ italic: /italic/i.test(style.slice(0, 32)),
229
+ };
230
+ }
231
+ /**
232
+ * The legacy `Family-style-size` face: the last two dash parts are numbers, the style's bits 1 bold and 2 italic.
233
+ * @param s - the value
234
+ * @returns the face, or null when it is not one
235
+ */
236
+ function legacyFontFace(s) {
237
+ const dash = s.split("-");
238
+ const numeric = (t) => /^\d+(?:\.\d+)?$/.test(t ?? "");
239
+ if (dash.length < 3 || !numeric(dash.at(-1)) || !numeric(dash.at(-2))) {
240
+ return null;
241
+ }
242
+ const bits = Math.trunc(Number(dash.at(-2)));
243
+ let family = dash.slice(0, -2).join("-");
244
+ let bold = (bits & 1) !== 0;
245
+ if (/-bold$/i.test(family)) {
246
+ family = family.slice(0, -"-bold".length);
247
+ bold = true;
248
+ }
249
+ return { family: family.replace(/\.bold$/i, ""), weight: bold ? "bold" : "normal", italic: (bits & 2) !== 0 };
250
+ }
251
+ /** Java's logical font names, which Cytoscape desktop writes, as the CSS generic families they stand for. */
252
+ /** The family a Java logical font name is read as (`Dialog` is drawn as a sans-serif font). */
253
+ export const JAVA_FONTS = new Map([
254
+ ["sansserif", "sans-serif"],
255
+ ["dialog", "sans-serif"],
256
+ ["default", "sans-serif"],
257
+ ["dialoginput", "monospace"],
258
+ ["monospaced", "monospace"],
259
+ ["serif", "serif"],
260
+ ]);
261
+ const fontFamily = (raw, site) => {
262
+ const family = fontFace(raw, site)?.family ?? null;
263
+ return family === null ? null : (JAVA_FONTS.get(family.toLowerCase()) ?? family);
264
+ };
265
+ const fontWeight = (raw, site) => fontFace(raw, site)?.weight ?? null;
266
+ const fontItalic = (raw, site) => fontFace(raw, site)?.italic ?? null;
267
+ /** The node anchor of a desktop label position `C,C,c,0.00,0.00`. */
268
+ const ANCHOR = new Map([
269
+ ["C", "center"],
270
+ ["N", "top"],
271
+ ["S", "bottom"],
272
+ ["E", "right"],
273
+ ["W", "left"],
274
+ ["NE", "top-right"],
275
+ ["NW", "top-left"],
276
+ ["SE", "bottom-right"],
277
+ ["SW", "bottom-left"],
278
+ ["NONE", "center"],
279
+ ]);
280
+ /** CX2's `HORIZONTAL_ANCHOR,VERTICAL_ANCHOR`, lowercase. */
281
+ const CX2_ANCHOR = new Map([
282
+ ["center,center", "center"],
283
+ ["center,top", "top"],
284
+ ["center,bottom", "bottom"],
285
+ ["right,center", "right"],
286
+ ["left,center", "left"],
287
+ ["right,top", "top-right"],
288
+ ["left,top", "top-left"],
289
+ ["right,bottom", "bottom-right"],
290
+ ["left,bottom", "bottom-left"],
291
+ ]);
292
+ const labelPosition = (raw, site) => {
293
+ let key;
294
+ let found;
295
+ if (raw !== null && typeof raw === "object" && !Array.isArray(raw)) {
296
+ const o = raw;
297
+ const h = scalarText(Object.hasOwn(o, "HORIZONTAL_ANCHOR") ? o.HORIZONTAL_ANCHOR : "center", site);
298
+ const v = scalarText(Object.hasOwn(o, "VERTICAL_ANCHOR") ? o.VERTICAL_ANCHOR : "center", site);
299
+ if (h === null || v === null) {
300
+ return null;
301
+ }
302
+ key = `${h.trim().toLowerCase()},${v.trim().toLowerCase()}`;
303
+ found = CX2_ANCHOR.get(key);
304
+ }
305
+ else {
306
+ const s = scalarText(raw, site);
307
+ if (s === null) {
308
+ return null;
309
+ }
310
+ key = s;
311
+ found = ANCHOR.get(s.split(",")[0].trim().toUpperCase());
312
+ }
313
+ if (found === undefined) {
314
+ noteAt(site, STYLE_ISSUE.UNKNOWN_VALUE, key);
315
+ return null;
316
+ }
317
+ return found;
318
+ };
319
+ /**
320
+ * The visual properties that set each neutral property, in the order Cytoscape prefers them: the first one a style
321
+ * or any bypass mentions is the one read. Cytoscape draws a node's fill from `NODE_FILL_COLOR`; `NODE_PAINT` is its
322
+ * parent and only counts when the child is absent everywhere.
323
+ * @category Styles
324
+ */
325
+ export const CYTOSCAPE_LEXICON = Object.freeze({
326
+ node: new Map([
327
+ [
328
+ "fill",
329
+ [
330
+ ["NODE_FILL_COLOR", color],
331
+ ["NODE_BACKGROUND_COLOR", color],
332
+ ["NODE_PAINT", color],
333
+ ],
334
+ ],
335
+ [
336
+ "fillOpacity",
337
+ [
338
+ ["NODE_TRANSPARENCY", opacity255],
339
+ ["NODE_BACKGROUND_OPACITY", opacity01],
340
+ ],
341
+ ],
342
+ [
343
+ "borderColor",
344
+ [
345
+ ["NODE_BORDER_PAINT", color],
346
+ ["NODE_BORDER_COLOR", color],
347
+ ],
348
+ ],
349
+ ["borderWidth", [["NODE_BORDER_WIDTH", length]]],
350
+ [
351
+ "borderStyle",
352
+ [
353
+ ["NODE_BORDER_STROKE", lineOf("borderStyle")],
354
+ ["NODE_BORDER_LINE_TYPE", lineOf("borderStyle")],
355
+ ["NODE_BORDER_STYLE", lineOf("borderStyle")],
356
+ ],
357
+ ],
358
+ ["shape", [["NODE_SHAPE", shape]]],
359
+ ["width", [["NODE_WIDTH", length]]],
360
+ ["height", [["NODE_HEIGHT", length]]],
361
+ ["label", [["NODE_LABEL", text]]],
362
+ ["labelColor", [["NODE_LABEL_COLOR", color]]],
363
+ ["labelSize", [["NODE_LABEL_FONT_SIZE", length]]],
364
+ ["labelFont", [["NODE_LABEL_FONT_FACE", fontFamily]]],
365
+ ["labelWeight", [["NODE_LABEL_FONT_FACE", fontWeight]]],
366
+ ["labelItalic", [["NODE_LABEL_FONT_FACE", fontItalic]]],
367
+ ["labelPosition", [["NODE_LABEL_POSITION", labelPosition]]],
368
+ ["tooltip", [["NODE_TOOLTIP", text]]],
369
+ [
370
+ "visible",
371
+ [
372
+ ["NODE_VISIBLE", bool],
373
+ ["NODE_VISIBILITY", visibility],
374
+ ],
375
+ ],
376
+ ]),
377
+ edge: new Map([
378
+ [
379
+ "color",
380
+ [
381
+ ["EDGE_STROKE_UNSELECTED_PAINT", color],
382
+ ["EDGE_LINE_COLOR", color],
383
+ ["EDGE_UNSELECTED_PAINT", color],
384
+ ["EDGE_PAINT", color],
385
+ ],
386
+ ],
387
+ [
388
+ "opacity",
389
+ [
390
+ ["EDGE_TRANSPARENCY", opacity255],
391
+ ["EDGE_OPACITY", opacity01],
392
+ ],
393
+ ],
394
+ ["width", [["EDGE_WIDTH", length]]],
395
+ [
396
+ "lineStyle",
397
+ [
398
+ ["EDGE_LINE_TYPE", lineOf("lineStyle")],
399
+ ["EDGE_LINE_STYLE", lineOf("lineStyle")],
400
+ ],
401
+ ],
402
+ ["sourceArrow", [["EDGE_SOURCE_ARROW_SHAPE", arrow]]],
403
+ ["targetArrow", [["EDGE_TARGET_ARROW_SHAPE", arrow]]],
404
+ [
405
+ "sourceArrowColor",
406
+ [
407
+ ["EDGE_SOURCE_ARROW_UNSELECTED_PAINT", color],
408
+ ["EDGE_SOURCE_ARROW_COLOR", color],
409
+ ],
410
+ ],
411
+ [
412
+ "targetArrowColor",
413
+ [
414
+ ["EDGE_TARGET_ARROW_UNSELECTED_PAINT", color],
415
+ ["EDGE_TARGET_ARROW_COLOR", color],
416
+ ],
417
+ ],
418
+ ["curved", [["EDGE_CURVED", bool]]],
419
+ ["label", [["EDGE_LABEL", text]]],
420
+ ["labelColor", [["EDGE_LABEL_COLOR", color]]],
421
+ ["labelSize", [["EDGE_LABEL_FONT_SIZE", length]]],
422
+ ["labelFont", [["EDGE_LABEL_FONT_FACE", fontFamily]]],
423
+ ["labelWeight", [["EDGE_LABEL_FONT_FACE", fontWeight]]],
424
+ ["labelItalic", [["EDGE_LABEL_FONT_FACE", fontItalic]]],
425
+ ["tooltip", [["EDGE_TOOLTIP", text]]],
426
+ [
427
+ "visible",
428
+ [
429
+ ["EDGE_VISIBLE", bool],
430
+ ["EDGE_VISIBILITY", visibility],
431
+ ],
432
+ ],
433
+ ]),
434
+ });
435
+ /** A node's size when `nodeSizeLocked` makes `NODE_SIZE` drive width and height. */
436
+ export const NODE_SIZE_VP = "NODE_SIZE";
437
+ /** The parser of node sizes, for `NODE_SIZE`. */
438
+ export const sizeParser = length;
439
+ /** The parser of colors, for the network background and `arrowColorMatchesEdge`. */
440
+ export const colorParser = color;
441
+ /** Every visual property the lexicon reads. */
442
+ const KNOWN_VPS = new Set([
443
+ NODE_SIZE_VP,
444
+ ...Object.values(CYTOSCAPE_LEXICON).flatMap((byProp) => Array.from(byProp.values()).flatMap((list) => list.map(([vp]) => vp))),
445
+ ]);
446
+ /** Geometry, selection state and paint that is not a style: dropped without a note. */
447
+ const IGNORED_VP = /^(?:NODE|EDGE|NETWORK)_[XYZ]_LOCATION$|_SELECTED|SELECTION|^NETWORK_(?!BACKGROUND)|_DEPTH$|^COMPOUND_|EDGE_BEND|EDGE_CONTROL_POINTS|NODE_NESTED_NETWORK|_Z_ORDER$|EDGE_STACKING|_LABEL_WIDTH$|_HEIGHT$|_WIDTH$/;
448
+ /**
449
+ * Whether a visual property is one no neutral property carries and that is worth a note.
450
+ * @param vp - the visual property
451
+ * @returns true when it is neither read nor ignored
452
+ */
453
+ export function isUncarriedVp(vp) {
454
+ return !KNOWN_VPS.has(vp) && !IGNORED_VP.test(vp);
455
+ }
456
+ /** Cytoscape's old identifiers (2.x XGMML graphics attributes and session properties), lowercase. */
457
+ const IDENTIFIERS = {
458
+ node: new Map([
459
+ ["fill", "NODE_FILL_COLOR"],
460
+ ["w", "NODE_WIDTH"],
461
+ ["h", "NODE_HEIGHT"],
462
+ ["size", "NODE_SIZE"],
463
+ ["type", "NODE_SHAPE"],
464
+ ["outline", "NODE_BORDER_PAINT"],
465
+ ["width", "NODE_BORDER_WIDTH"],
466
+ ["borderlinetype", "NODE_BORDER_LINE_TYPE"],
467
+ ["nodelabelfont", "NODE_LABEL_FONT_FACE"],
468
+ ["nodetransparency", "NODE_TRANSPARENCY_01"],
469
+ ["nodelabelposition", "NODE_LABEL_POSITION"],
470
+ ["nodefillcolor", "NODE_FILL_COLOR"],
471
+ ["nodesize", "NODE_SIZE"],
472
+ ["nodewidth", "NODE_WIDTH"],
473
+ ["nodehight", "NODE_HEIGHT"],
474
+ ["nodeheight", "NODE_HEIGHT"],
475
+ ["nodeopacity", "NODE_TRANSPARENCY"],
476
+ ["nodebordercolor", "NODE_BORDER_PAINT"],
477
+ ["nodelinewidth", "NODE_BORDER_WIDTH"],
478
+ ["nodelinestyle", "NODE_BORDER_LINE_TYPE"],
479
+ ["nodeshape", "NODE_SHAPE"],
480
+ ["nodefont", "NODE_LABEL_FONT_FACE"],
481
+ ["nodefontsize", "NODE_LABEL_FONT_SIZE"],
482
+ ["nodelabel", "NODE_LABEL"],
483
+ ["nodelabelcolor", "NODE_LABEL_COLOR"],
484
+ ["nodetooltip", "NODE_TOOLTIP"],
485
+ ]),
486
+ edge: new Map([
487
+ ["width", "EDGE_WIDTH"],
488
+ ["fill", "EDGE_STROKE_UNSELECTED_PAINT"],
489
+ ["edgelinetype", "EDGE_LINE_TYPE"],
490
+ ["edgelabelfont", "EDGE_LABEL_FONT_FACE"],
491
+ ["sourcearrowcolor", "EDGE_SOURCE_ARROW_UNSELECTED_PAINT"],
492
+ ["targetarrowcolor", "EDGE_TARGET_ARROW_UNSELECTED_PAINT"],
493
+ ["edgesourcearrowcolor", "EDGE_SOURCE_ARROW_UNSELECTED_PAINT"],
494
+ ["edgetargetarrowcolor", "EDGE_TARGET_ARROW_UNSELECTED_PAINT"],
495
+ ["edgelinewidth", "EDGE_WIDTH"],
496
+ ["edgecolor", "EDGE_STROKE_UNSELECTED_PAINT"],
497
+ ["edgelinestyle", "EDGE_LINE_TYPE"],
498
+ ["edgeopacity", "EDGE_TRANSPARENCY"],
499
+ ["sourcearrow", "EDGE_SOURCE_ARROW_SHAPE"],
500
+ ["targetarrow", "EDGE_TARGET_ARROW_SHAPE"],
501
+ ["edgesourcearrowshape", "EDGE_SOURCE_ARROW_SHAPE"],
502
+ ["edgetargetarrowshape", "EDGE_TARGET_ARROW_SHAPE"],
503
+ ["edgelabel", "EDGE_LABEL"],
504
+ ["edgefont", "EDGE_LABEL_FONT_FACE"],
505
+ ["edgelabelcolor", "EDGE_LABEL_COLOR"],
506
+ ["edgefontsize", "EDGE_LABEL_FONT_SIZE"],
507
+ ["edgetooltip", "EDGE_TOOLTIP"],
508
+ ["curved", "EDGE_CURVED_LEGACY"],
509
+ ["edgecurved", "EDGE_CURVED"],
510
+ ["edgebend", "EDGE_BEND"],
511
+ ]),
512
+ };
513
+ /** Objects nested deeper than this inside one element's graphics are not read. */
514
+ const MAX_VP_DEPTH = 8;
515
+ const VP_NAME = /^[A-Z][A-Z_0-9]+$/;
516
+ /**
517
+ * One graphics key as a visual property: its name (`?<key>` for one with none) and its value, a legacy encoding
518
+ * converted.
519
+ * @param target - nodes or edges
520
+ * @param k - the key
521
+ * @param v - its value
522
+ * @returns the name and the value
523
+ */
524
+ function visualProperty(target, k, v) {
525
+ const name = VP_NAME.test(k) ? k : IDENTIFIERS[target].get(k.toLowerCase().replace(/^cy:/, ""));
526
+ if (name === undefined) {
527
+ return [`?${k}`, v];
528
+ }
529
+ if (name === "NODE_TRANSPARENCY_01") {
530
+ let f = Number.NaN;
531
+ if (typeof v === "number") {
532
+ f = v;
533
+ }
534
+ else if (typeof v === "string") {
535
+ f = Number(v.trim());
536
+ }
537
+ return ["NODE_TRANSPARENCY", Number.isFinite(f) ? Math.round(f * 255) : null];
538
+ }
539
+ if (name === "EDGE_CURVED_LEGACY") {
540
+ return ["EDGE_CURVED", typeof v === "string" && v.toUpperCase() === "CURVED_LINES"];
541
+ }
542
+ return [name, v];
543
+ }
544
+ /**
545
+ * Normalizes the keys of one object of an element's graphics; a nested object is pushed onto the stack.
546
+ * @param target - nodes or edges
547
+ * @param top - the object and its depth
548
+ * @param stack - the objects still to walk
549
+ * @param out - visual property name to raw value, added to
550
+ * @returns how many nested objects were too deep to walk
551
+ */
552
+ function normalizeObject(target, top, stack, out) {
553
+ const [obj, depth] = top;
554
+ let deep = 0;
555
+ for (const k of Object.keys(obj)) {
556
+ const v = obj[k];
557
+ if (k === "lockedVisualProperties" || v === null || v === undefined) {
558
+ continue;
559
+ }
560
+ // a 2.x edgeBend of one handle is a record: kept whole, as its handles
561
+ if (typeof v === "object" && !Array.isArray(v) && !/^[A-Z_0-9]+$/.test(k) && k.toLowerCase() !== "edgebend") {
562
+ if (depth + 1 > MAX_VP_DEPTH) {
563
+ deep++;
564
+ }
565
+ else {
566
+ stack.push([v, depth + 1]);
567
+ }
568
+ continue;
569
+ }
570
+ const [name, value] = visualProperty(target, k, v);
571
+ // visual-property-named keys come first in 3.x graphics and win
572
+ if (!out.has(name)) {
573
+ out.set(name, value);
574
+ }
575
+ }
576
+ return deep;
577
+ }
578
+ /**
579
+ * One element's raw visual properties, normalized: Cytoscape's old identifiers renamed to visual property names and
580
+ * the legacy encodings converted (`nodeTransparency` 0..1 to `NODE_TRANSPARENCY` 0..255, `curved` to
581
+ * `EDGE_CURVED`). Nested objects (`cytoscapeNodeGraphicsAttributes` and the like) are walked with an explicit stack
582
+ * and a depth limit, never by recursion on the file's nesting. A key with no visual property name is kept as
583
+ * `?<key>`, so a caller can note it.
584
+ * @param target - nodes or edges
585
+ * @param raw - the element's graphics object
586
+ * @param notes - where a too-deep nesting is noted
587
+ * @returns visual property name to raw value
588
+ * @category Styles
589
+ */
590
+ export function normalizeVisualProperties(target, raw, notes) {
591
+ if (raw === null || typeof raw !== "object") {
592
+ return new Map();
593
+ }
594
+ const out = new Map();
595
+ const stack = [[raw, 0]];
596
+ let deep = 0;
597
+ for (let top = stack.pop(); top !== undefined; top = stack.pop()) {
598
+ deep += normalizeObject(target, top, stack, out);
599
+ }
600
+ if (deep > 0) {
601
+ notes?.add(STYLE_ISSUE.NESTING, target, "graphics", { sample: `deeper than ${MAX_VP_DEPTH}`, count: deep });
602
+ }
603
+ return out;
604
+ }
605
+ //# sourceMappingURL=lexicon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../../../src/styles/cytoscape/lexicon.ts"],"names":[],"mappings":"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"}