@graphty/graph-io 0.3.42 → 0.3.44

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-3Q4TsdTh.js +40 -0
  2. package/dist/chunks/approximations-3Q4TsdTh.js.map +1 -0
  3. package/dist/chunks/block-JQiwViEt.js +2777 -0
  4. package/dist/chunks/block-JQiwViEt.js.map +1 -0
  5. package/dist/chunks/{choose-DvpbdRuz.js → choose-BemygfH8.js} +3 -2
  6. package/dist/chunks/{choose-DvpbdRuz.js.map → choose-BemygfH8.js.map} +1 -1
  7. package/dist/chunks/{constants-fT3E8JYY.js → constants-BFUR_CtU.js} +6 -2
  8. package/dist/chunks/constants-BFUR_CtU.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-DCwFLts5.js +3456 -0
  12. package/dist/chunks/emit-DCwFLts5.js.map +1 -0
  13. package/dist/chunks/{escape-B62ZGM_a.js → escape-B1rMftd9.js} +43 -20
  14. package/dist/chunks/escape-B1rMftd9.js.map +1 -0
  15. package/dist/chunks/{export-rKLeGQMo.js → export-D7IGzTG4.js} +196 -792
  16. package/dist/chunks/export-D7IGzTG4.js.map +1 -0
  17. package/dist/chunks/{exporter-BWwEuOPT.js → exporter-BtnqYuuj.js} +22 -12
  18. package/dist/chunks/exporter-BtnqYuuj.js.map +1 -0
  19. package/dist/chunks/{exporter-yLxKBvLE.js → exporter-ChPyhBOv.js} +4 -3
  20. package/dist/chunks/{exporter-yLxKBvLE.js.map → exporter-ChPyhBOv.js.map} +1 -1
  21. package/dist/chunks/{exporter-8hLNemFk.js → exporter-KEPxYUXD.js} +133 -74
  22. package/dist/chunks/exporter-KEPxYUXD.js.map +1 -0
  23. package/dist/chunks/{exporter-CpRyHZ3H.js → exporter-quPUCBiC.js} +1807 -288
  24. package/dist/chunks/exporter-quPUCBiC.js.map +1 -0
  25. package/dist/chunks/format-GDmO6m6Q.js +676 -0
  26. package/dist/chunks/format-GDmO6m6Q.js.map +1 -0
  27. package/dist/chunks/generic-BL06jrJf.js +1347 -0
  28. package/dist/chunks/generic-BL06jrJf.js.map +1 -0
  29. package/dist/chunks/{importer-WrGRZb0N.js → importer-B7r2owVf.js} +449 -102
  30. package/dist/chunks/importer-B7r2owVf.js.map +1 -0
  31. package/dist/chunks/{importer-Ht7LNg8L.js → importer-BFmOP96W.js} +116 -296
  32. package/dist/chunks/importer-BFmOP96W.js.map +1 -0
  33. package/dist/chunks/{importer-BbNb7eNg.js → importer-C2nzGhdV.js} +1390 -129
  34. package/dist/chunks/importer-C2nzGhdV.js.map +1 -0
  35. package/dist/chunks/{importer-Dz7tI8Sa.js → importer-CbX2_rNF.js} +617 -115
  36. package/dist/chunks/importer-CbX2_rNF.js.map +1 -0
  37. package/dist/chunks/{importer-D794XUTe.js → importer-CdzeN6X4.js} +31 -8
  38. package/dist/chunks/importer-CdzeN6X4.js.map +1 -0
  39. package/dist/chunks/{importer-xZ-3suY1.js → importer-ChKNC_GN.js} +791 -135
  40. package/dist/chunks/importer-ChKNC_GN.js.map +1 -0
  41. package/dist/chunks/{importer-C98dpSH4.js → importer-dwoYpSqb.js} +141 -82
  42. package/dist/chunks/importer-dwoYpSqb.js.map +1 -0
  43. package/dist/chunks/index-B9fdNpTA.js +4310 -0
  44. package/dist/chunks/index-B9fdNpTA.js.map +1 -0
  45. package/dist/chunks/{json-elements-DKSqpNW1.js → json-elements-C4FwgnH5.js} +123 -32
  46. package/dist/chunks/json-elements-C4FwgnH5.js.map +1 -0
  47. package/dist/chunks/lexicon-B-knUi-l.js +508 -0
  48. package/dist/chunks/lexicon-B-knUi-l.js.map +1 -0
  49. package/dist/chunks/{ontology-export-CtRXjg_i.js → ontology-export-BSpbY5FL.js} +3 -2
  50. package/dist/chunks/{ontology-export-CtRXjg_i.js.map → ontology-export-BSpbY5FL.js.map} +1 -1
  51. package/dist/chunks/{records-Cu4bxYOm.js → records-Nwz_rbNt.js} +2 -2
  52. package/dist/chunks/{records-Cu4bxYOm.js.map → records-Nwz_rbNt.js.map} +1 -1
  53. package/dist/chunks/styles-Brt9JMfs.js +690 -0
  54. package/dist/chunks/styles-Brt9JMfs.js.map +1 -0
  55. package/dist/chunks/styles-_N-C8S-U.js +2102 -0
  56. package/dist/chunks/styles-_N-C8S-U.js.map +1 -0
  57. package/dist/chunks/styles-yed-DAfcIkf7.js +842 -0
  58. package/dist/chunks/styles-yed-DAfcIkf7.js.map +1 -0
  59. package/dist/chunks/{text-DHOJXnED.js → text-CgzMqHQb.js} +2 -2
  60. package/dist/chunks/{text-DHOJXnED.js.map → text-CgzMqHQb.js.map} +1 -1
  61. package/dist/chunks/units-XMZFIFe1.js +19 -0
  62. package/dist/chunks/units-XMZFIFe1.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 +295 -414
  71. package/dist/gexf.js.map +1 -1
  72. package/dist/gml.js +8 -3031
  73. package/dist/gml.js.map +1 -1
  74. package/dist/graph-io.js +354 -240
  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 +1484 -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 +23 -7
  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 +441 -265
  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 +790 -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 +603 -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 +80 -0
  489. package/dist/src/styles/io/writer.d.ts.map +1 -0
  490. package/dist/src/styles/io/writer.js +596 -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 +1741 -0
  571. package/src/formats/gexf/exporter.ts +30 -13
  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 +543 -323
  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 +951 -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 +656 -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 +745 -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-CpRyHZ3H.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,142 @@
1
+ /**
2
+ * Canonical numbers, lengths, opacities and booleans: 6 significant digits, never negative, never NaN or Infinity.
3
+ */
4
+ import { STYLE_ISSUE } from "../codes.js";
5
+ import { noteAt, scalarText, spendAt } from "./site.js";
6
+ /**
7
+ * The largest length or factor a file may give; a larger one is noted as `W_STYLE_BAD_VALUE` and gives no value.
8
+ * @category Styles
9
+ */
10
+ export const MAX_STYLE_NUMBER = 1e6;
11
+ /**
12
+ * Points per inch: DOT gives node sizes in inches, and a canonical length is in points (pixels at 72 dpi).
13
+ * @category Styles
14
+ */
15
+ export const DOT_POINTS_PER_INCH = 72;
16
+ /** One way to read a decimal number, so a long run of digits fails or passes in one pass. */
17
+ const DECIMAL = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;
18
+ /**
19
+ * A number at 6 significant digits, with `-0` as `0`.
20
+ * @param value - a finite number
21
+ * @returns the canonical number
22
+ * @category Styles
23
+ */
24
+ export function num6(value) {
25
+ return Number(value.toPrecision(6)) + 0;
26
+ }
27
+ /**
28
+ * A finite number from a number or a decimal string, or null with a note.
29
+ * @param raw - the file's value
30
+ * @param site - where it was read
31
+ * @returns the number, or null
32
+ */
33
+ function finite(raw, site) {
34
+ if (typeof raw === "boolean") {
35
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, raw);
36
+ return null;
37
+ }
38
+ const text = scalarText(raw, site);
39
+ if (text === null) {
40
+ return null;
41
+ }
42
+ const trimmed = text.trim();
43
+ let value = Number.NaN;
44
+ if (typeof raw === "number") {
45
+ value = raw;
46
+ }
47
+ else if (DECIMAL.test(trimmed)) {
48
+ value = Number(trimmed);
49
+ }
50
+ if (!Number.isFinite(value)) {
51
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, text);
52
+ return null;
53
+ }
54
+ return value;
55
+ }
56
+ /**
57
+ * A length or factor: a finite number at least 0 and at most `MAX_STYLE_NUMBER` after multiplying by `factor`, at 6
58
+ * significant digits. Anything else is null with a `W_STYLE_BAD_VALUE` note.
59
+ * @param raw - the file's value: a number or a decimal string
60
+ * @param site - where it was read
61
+ * @param factor - multiplies the value first (`DOT_POINTS_PER_INCH` for DOT sizes); defaults to 1
62
+ * @returns the canonical number, or null
63
+ * @category Styles
64
+ */
65
+ export function canonNumber(raw, site, factor = 1) {
66
+ const value = finite(raw, site);
67
+ if (value === null) {
68
+ return null;
69
+ }
70
+ const scaled = value * factor;
71
+ if (!(scaled >= 0 && scaled <= MAX_STYLE_NUMBER)) {
72
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, typeof raw === "string" ? raw : String(raw));
73
+ return null;
74
+ }
75
+ return num6(scaled);
76
+ }
77
+ /**
78
+ * An opacity from 0 to 1. Cytoscape desktop states opacities from 0 to 255 and is divided by 255; every other
79
+ * dialect states 0 to 1. A value outside the dialect's range is null with a `W_STYLE_BAD_VALUE` note.
80
+ * @param raw - the file's value
81
+ * @param dialect - the file's dialect
82
+ * @param site - where it was read
83
+ * @returns the canonical opacity, or null
84
+ * @category Styles
85
+ */
86
+ export function canonOpacity(raw, dialect, site) {
87
+ const value = finite(raw, site);
88
+ if (value === null) {
89
+ return null;
90
+ }
91
+ const top = dialect === "cytoscape" ? 255 : 1;
92
+ if (!(value >= 0 && value <= top)) {
93
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, typeof raw === "string" ? raw : String(raw));
94
+ return null;
95
+ }
96
+ return num6(value / top);
97
+ }
98
+ /** Boolean spellings, lowercase. */
99
+ const BOOLEANS = new Map([
100
+ ["true", true],
101
+ ["yes", true],
102
+ ["on", true],
103
+ ["1", true],
104
+ ["false", false],
105
+ ["no", false],
106
+ ["off", false],
107
+ ["0", false],
108
+ ]);
109
+ /**
110
+ * A boolean from `true`/`false`, `yes`/`no`, `on`/`off` or `1`/`0` in any case; anything else is null with a note.
111
+ * @param raw - the file's value
112
+ * @param site - where it was read
113
+ * @returns the boolean, or null
114
+ * @category Styles
115
+ */
116
+ export function canonBoolean(raw, site) {
117
+ if (typeof raw === "boolean") {
118
+ spendAt(site, 1);
119
+ return raw;
120
+ }
121
+ const text = scalarText(raw, site);
122
+ if (text === null) {
123
+ return null;
124
+ }
125
+ const value = BOOLEANS.get(text.trim().toLowerCase());
126
+ if (value === undefined) {
127
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, text);
128
+ return null;
129
+ }
130
+ return value;
131
+ }
132
+ /**
133
+ * The unit of a dialect's lengths: GEXF and Pajek give size factors relative to their tool's normal size, every
134
+ * other dialect gives pixels (after DOT's inches are converted).
135
+ * @param dialect - the file's dialect
136
+ * @returns `"relative"` or `"px"`
137
+ * @category Styles
138
+ */
139
+ export function styleLengthUnit(dialect) {
140
+ return dialect === "gexf" || dialect === "dvips" ? "relative" : "px";
141
+ }
142
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../src/styles/canon/number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Where a raw value came from, so a canonicalizer can note a problem against the right target, property and element
3
+ * and spend the work it costs from the extraction's one budget.
4
+ */
5
+ import type { StyleNotes } from "../notes.js";
6
+ import type { StyleNoteCode, StyleTarget, StyleWorkBudget } from "../types.js";
7
+ /**
8
+ * A number, color, enumeration or mapper expression longer than this many characters is not parsed: it is noted as
9
+ * `W_STYLE_VALUE_TOO_LONG` and gives no value. Text is copied whatever its length.
10
+ * @category Styles
11
+ */
12
+ export declare const MAX_STYLE_VALUE_LENGTH = 256;
13
+ /**
14
+ * Where a raw value is read: the notes it reports to, the target and property it is for, the element it belongs to
15
+ * and the budget its work is spent from.
16
+ * @category Styles
17
+ */
18
+ export interface CanonSite {
19
+ /** Where problems are noted. */
20
+ readonly notes: StyleNotes;
21
+ /** Nodes, edges or the graph. */
22
+ readonly target: StyleTarget | "graph";
23
+ /** The neutral property the value is for. */
24
+ readonly property: string;
25
+ /** The element the value belongs to, by index; absent for a rule's value. */
26
+ readonly element?: number;
27
+ /** The work budget; each value spends one operation plus one per character it reads. */
28
+ readonly budget?: StyleWorkBudget;
29
+ }
30
+ /**
31
+ * Notes a problem with a value at its site.
32
+ * @param site - where the value was read
33
+ * @param code - the condition
34
+ * @param sample - the offending value
35
+ */
36
+ export declare function noteAt(site: CanonSite, code: StyleNoteCode, sample: unknown): void;
37
+ /**
38
+ * Spends operations from the site's budget; graph values count as node work.
39
+ * @param site - where the value was read
40
+ * @param operations - the work
41
+ */
42
+ export declare function spendAt(site: CanonSite, operations: number): void;
43
+ /**
44
+ * The text of a raw scalar, untrimmed, after the length limit: null for an absent value (no note), and null with a
45
+ * note for a value that is empty, too long, not finite or not a scalar. Spends at most 257 operations.
46
+ * @param raw - the file's value
47
+ * @param site - where it was read
48
+ * @returns the value's text, or null
49
+ */
50
+ export declare function scalarText(raw: unknown, site: CanonSite): string | null;
51
+ //# sourceMappingURL=site.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../../src/styles/canon/site.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACvC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAElF;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CA0BvE"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Where a raw value came from, so a canonicalizer can note a problem against the right target, property and element
3
+ * and spend the work it costs from the extraction's one budget.
4
+ */
5
+ import { STYLE_ISSUE } from "../codes.js";
6
+ /**
7
+ * A number, color, enumeration or mapper expression longer than this many characters is not parsed: it is noted as
8
+ * `W_STYLE_VALUE_TOO_LONG` and gives no value. Text is copied whatever its length.
9
+ * @category Styles
10
+ */
11
+ export const MAX_STYLE_VALUE_LENGTH = 256;
12
+ /**
13
+ * Notes a problem with a value at its site.
14
+ * @param site - where the value was read
15
+ * @param code - the condition
16
+ * @param sample - the offending value
17
+ */
18
+ export function noteAt(site, code, sample) {
19
+ site.notes.add(code, site.target, site.property, { sample, element: site.element });
20
+ }
21
+ /**
22
+ * Spends operations from the site's budget; graph values count as node work.
23
+ * @param site - where the value was read
24
+ * @param operations - the work
25
+ */
26
+ export function spendAt(site, operations) {
27
+ site.budget?.spend(site.target === "graph" ? "node" : site.target, operations);
28
+ }
29
+ /**
30
+ * The text of a raw scalar, untrimmed, after the length limit: null for an absent value (no note), and null with a
31
+ * note for a value that is empty, too long, not finite or not a scalar. Spends at most 257 operations.
32
+ * @param raw - the file's value
33
+ * @param site - where it was read
34
+ * @returns the value's text, or null
35
+ */
36
+ export function scalarText(raw, site) {
37
+ spendAt(site, 1);
38
+ if (raw === null || raw === undefined) {
39
+ return null;
40
+ }
41
+ if (typeof raw === "number") {
42
+ if (Number.isFinite(raw)) {
43
+ return String(raw);
44
+ }
45
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, String(raw));
46
+ return null;
47
+ }
48
+ if (typeof raw !== "string") {
49
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, typeof raw);
50
+ return null;
51
+ }
52
+ if (raw.length > MAX_STYLE_VALUE_LENGTH) {
53
+ noteAt(site, STYLE_ISSUE.VALUE_TOO_LONG, `${raw.length} characters`);
54
+ return null;
55
+ }
56
+ spendAt(site, raw.length);
57
+ if (raw.trim() === "") {
58
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, raw);
59
+ return null;
60
+ }
61
+ return raw;
62
+ }
63
+ //# sourceMappingURL=site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../../../../src/styles/canon/site.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAoB1C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAe,EAAE,IAAmB,EAAE,MAAe;IACxE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAe,EAAE,UAAkB;IACvD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,IAAe;IACpD,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Canonical text: the text a tool draws. Text is copied whatever its length and never matched with a pattern that
3
+ * can backtrack; every pass here is linear in the text's length and spends one operation per character.
4
+ */
5
+ import { type CanonSite } from "./site.js";
6
+ /**
7
+ * A text value: a string as it is, a finite number or a boolean as its text. Anything else is null with a
8
+ * `W_STYLE_BAD_VALUE` note; an absent value is null without one.
9
+ * @param raw - the file's value
10
+ * @param site - where it was read
11
+ * @returns the text, or null
12
+ * @category Styles
13
+ */
14
+ export declare function canonText(raw: unknown, site: CanonSite): string | null;
15
+ /**
16
+ * The names Graphviz substitutes for `\N`, `\G`, `\E`, `\T` and `\H` in a label; an absent name leaves its escape
17
+ * as written.
18
+ * @category Styles
19
+ */
20
+ export interface DotEscapeNames {
21
+ /** The node's name, for `\N`. */
22
+ readonly node?: string;
23
+ /** The graph's name, for `\G`. */
24
+ readonly graph?: string;
25
+ /** The edge's name (`a->b` or `a--b`), for `\E`. */
26
+ readonly edge?: string;
27
+ /** The edge's tail node, for `\T`. */
28
+ readonly tail?: string;
29
+ /** The edge's head node, for `\H`. */
30
+ readonly head?: string;
31
+ }
32
+ /**
33
+ * The text a DOT label draws, in Graphviz's two passes: first `\N`, `\G`, `\E`, `\T` and `\H` are replaced by the
34
+ * names and every other backslash pair is kept; then `\n`, `\l` and `\r` end a line (a final one adds no empty line)
35
+ * and any other escaped character stands for itself. So a node name holding `\n` breaks the line.
36
+ * @param text - the label as the file gives it
37
+ * @param names - the names to substitute
38
+ * @param site - where it was read, for the budget
39
+ * @returns the label's text
40
+ * @category Styles
41
+ */
42
+ export declare function dotLabelText(text: string, names: DotEscapeNames, site?: CanonSite): string;
43
+ /**
44
+ * The text an HTML-like label shows: tags dropped, `<br/>` as a line break, entities decoded, outer blanks trimmed.
45
+ * Notes `W_STYLE_HTML_LABEL` at the site, since the markup is lost.
46
+ * @param html - the label, with or without its outer `<` and `>`
47
+ * @param site - where it was read
48
+ * @returns the label's text
49
+ * @category Styles
50
+ */
51
+ export declare function htmlLabelText(html: string, site: CanonSite): string;
52
+ /**
53
+ * The text a Graphviz record label shows: its fields (`<f0> left|<f1> mid|{a|b}`) without their port names, trimmed,
54
+ * empty ones left out, joined with " | ". Notes `W_STYLE_RECORD_LABEL` at the site, since the boxes are lost.
55
+ * @param label - the record label
56
+ * @param site - where it was read
57
+ * @returns the fields' text
58
+ * @category Styles
59
+ */
60
+ export declare function recordLabelText(label: string, site: CanonSite): string;
61
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/styles/canon/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,WAAW,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CActE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAc1F;AAoDD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CA2BnE;AAgBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAmCtE"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Canonical text: the text a tool draws. Text is copied whatever its length and never matched with a pattern that
3
+ * can backtrack; every pass here is linear in the text's length and spends one operation per character.
4
+ */
5
+ import { STYLE_ISSUE } from "../codes.js";
6
+ import { noteAt, spendAt } from "./site.js";
7
+ /**
8
+ * A text value: a string as it is, a finite number or a boolean as its text. Anything else is null with a
9
+ * `W_STYLE_BAD_VALUE` note; an absent value is null without one.
10
+ * @param raw - the file's value
11
+ * @param site - where it was read
12
+ * @returns the text, or null
13
+ * @category Styles
14
+ */
15
+ export function canonText(raw, site) {
16
+ spendAt(site, 1);
17
+ if (raw === null || raw === undefined) {
18
+ return null;
19
+ }
20
+ if (typeof raw === "string") {
21
+ spendAt(site, raw.length);
22
+ return raw;
23
+ }
24
+ if ((typeof raw === "number" && Number.isFinite(raw)) || typeof raw === "boolean") {
25
+ return String(raw);
26
+ }
27
+ noteAt(site, STYLE_ISSUE.BAD_VALUE, typeof raw === "number" ? String(raw) : typeof raw);
28
+ return null;
29
+ }
30
+ /**
31
+ * The text a DOT label draws, in Graphviz's two passes: first `\N`, `\G`, `\E`, `\T` and `\H` are replaced by the
32
+ * names and every other backslash pair is kept; then `\n`, `\l` and `\r` end a line (a final one adds no empty line)
33
+ * and any other escaped character stands for itself. So a node name holding `\n` breaks the line.
34
+ * @param text - the label as the file gives it
35
+ * @param names - the names to substitute
36
+ * @param site - where it was read, for the budget
37
+ * @returns the label's text
38
+ * @category Styles
39
+ */
40
+ export function dotLabelText(text, names, site) {
41
+ if (site !== undefined) {
42
+ spendAt(site, text.length);
43
+ }
44
+ const subs = {
45
+ N: names.node,
46
+ G: names.graph,
47
+ E: names.edge,
48
+ T: names.tail,
49
+ H: names.head,
50
+ };
51
+ const first = replaceEscapes(text, (e) => (Object.hasOwn(subs, e) ? subs[e] : undefined) ?? `\\${e}`);
52
+ const out = replaceEscapes(first, (e) => (e === "n" || e === "l" || e === "r" ? "\n" : e));
53
+ return out.endsWith("\n") ? out.slice(0, -1) : out;
54
+ }
55
+ /**
56
+ * A text with every backslash escape (a backslash and the character after it) replaced; a backslash at the end stays.
57
+ * @param text - the text
58
+ * @param replace - the replacement of an escape, given the escaped character
59
+ * @returns the text
60
+ */
61
+ function replaceEscapes(text, replace) {
62
+ let out = "";
63
+ let i = 0;
64
+ while (i < text.length) {
65
+ const c = text[i];
66
+ if (c === "\\" && i + 1 < text.length) {
67
+ out += replace(text[i + 1]);
68
+ i += 2;
69
+ }
70
+ else {
71
+ out += c;
72
+ i++;
73
+ }
74
+ }
75
+ return out;
76
+ }
77
+ /** HTML entity names an HTML-like label may use. */
78
+ const ENTITIES = new Map([
79
+ ["amp", "&"],
80
+ ["lt", "<"],
81
+ ["gt", ">"],
82
+ ["quot", '"'],
83
+ ["apos", "'"],
84
+ ["nbsp", " "],
85
+ ]);
86
+ /**
87
+ * Decodes one entity body (`amp`, `#38`, `#x26`).
88
+ * @param body - the text between `&` and `;`
89
+ * @returns the character, or undefined when it is not an entity
90
+ */
91
+ function entity(body) {
92
+ if (body.startsWith("#")) {
93
+ const hex = body[1] === "x" || body[1] === "X";
94
+ const digits = body.slice(hex ? 2 : 1);
95
+ if (digits === "" || digits.length > 7 || !(hex ? /^[0-9a-f]+$/i : /^\d+$/).test(digits)) {
96
+ return undefined;
97
+ }
98
+ const cp = Number.parseInt(digits, hex ? 16 : 10);
99
+ return cp > 0 && cp <= 0x10ffff ? String.fromCodePoint(cp) : undefined;
100
+ }
101
+ return ENTITIES.get(body.toLowerCase());
102
+ }
103
+ /**
104
+ * The text an HTML-like label shows: tags dropped, `<br/>` as a line break, entities decoded, outer blanks trimmed.
105
+ * Notes `W_STYLE_HTML_LABEL` at the site, since the markup is lost.
106
+ * @param html - the label, with or without its outer `<` and `>`
107
+ * @param site - where it was read
108
+ * @returns the label's text
109
+ * @category Styles
110
+ */
111
+ export function htmlLabelText(html, site) {
112
+ spendAt(site, html.length);
113
+ noteAt(site, STYLE_ISSUE.HTML_LABEL, html);
114
+ const body = html.startsWith("<") && html.endsWith(">") ? html.slice(1, -1) : html;
115
+ let out = "";
116
+ let i = 0;
117
+ while (i < body.length) {
118
+ const c = body[i];
119
+ if (c === "<") {
120
+ const close = body.indexOf(">", i + 1);
121
+ if (close < 0) {
122
+ break;
123
+ }
124
+ if (/^<br\b/i.test(body.slice(i, i + 4))) {
125
+ out += "\n";
126
+ }
127
+ i = close + 1;
128
+ }
129
+ else if (c === "&") {
130
+ const [text, next] = entityAt(body, i);
131
+ out += text;
132
+ i = next;
133
+ }
134
+ else {
135
+ out += c;
136
+ i++;
137
+ }
138
+ }
139
+ return out.trim();
140
+ }
141
+ /**
142
+ * The entity starting at an `&`, decoded; an `&` that starts none is itself. An entity is at most 9 characters, so
143
+ * the search for its ";" stays short and the pass stays linear.
144
+ * @param body - the text
145
+ * @param i - the offset of the `&`
146
+ * @returns the text it stands for and the offset after it
147
+ */
148
+ function entityAt(body, i) {
149
+ const near = body.slice(i + 1, i + 10).indexOf(";");
150
+ const semi = near < 0 ? -1 : i + 1 + near;
151
+ const decoded = semi > i ? entity(body.slice(i + 1, semi)) : undefined;
152
+ return decoded === undefined ? ["&", i + 1] : [decoded, semi + 1];
153
+ }
154
+ /**
155
+ * The text a Graphviz record label shows: its fields (`<f0> left|<f1> mid|{a|b}`) without their port names, trimmed,
156
+ * empty ones left out, joined with " | ". Notes `W_STYLE_RECORD_LABEL` at the site, since the boxes are lost.
157
+ * @param label - the record label
158
+ * @param site - where it was read
159
+ * @returns the fields' text
160
+ * @category Styles
161
+ */
162
+ export function recordLabelText(label, site) {
163
+ spendAt(site, label.length);
164
+ noteAt(site, STYLE_ISSUE.RECORD_LABEL, label);
165
+ const fields = [];
166
+ let field = "";
167
+ const flush = () => {
168
+ const t = field.trim();
169
+ if (t !== "") {
170
+ fields.push(t);
171
+ }
172
+ field = "";
173
+ };
174
+ let i = 0;
175
+ while (i < label.length) {
176
+ const c = label[i];
177
+ if (c === "\\" && i + 1 < label.length && "|{}<> ".includes(label[i + 1])) {
178
+ field += label[i + 1];
179
+ i += 2;
180
+ continue;
181
+ }
182
+ if (c === "<") {
183
+ // a port name runs to its ">"
184
+ const close = label.indexOf(">", i + 1);
185
+ i = close < 0 ? label.length : close + 1;
186
+ continue;
187
+ }
188
+ if (c === "|" || c === "{" || c === "}") {
189
+ flush();
190
+ }
191
+ else {
192
+ field += c;
193
+ }
194
+ i++;
195
+ }
196
+ flush();
197
+ return fields.join(" | ");
198
+ }
199
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/styles/canon/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The codes of every style condition graph-io reports: the notes attached to a file's styles (`W_STYLE_*`), the
3
+ * import and export report codes about styles as a whole (`W_STYLES_*`), and the one error (`E_STYLES_MISMATCH`).
4
+ */
5
+ /**
6
+ * Every style code by name. A key is the code without its `E_` / `W_` and `STYLE_` / `STYLES_` prefixes. Every style
7
+ * condition is a warning except `MISMATCH`; none counts toward an import's `errorLimit`.
8
+ * @category Styles
9
+ */
10
+ export declare const STYLE_ISSUE: Readonly<{
11
+ /** A value longer than 256 characters was not parsed. */
12
+ VALUE_TOO_LONG: "W_STYLE_VALUE_TOO_LONG";
13
+ /** A value does not parse in the file's dialect (an unknown color name, a non-number, a negative length). */
14
+ BAD_VALUE: "W_STYLE_BAD_VALUE";
15
+ /** An enumeration value the vocabulary has no name for; kept as `other:<value>`. */
16
+ UNKNOWN_VALUE: "W_STYLE_UNKNOWN_VALUE";
17
+ /** A color's alpha was dropped because the property has no opacity to carry it. */
18
+ ALPHA_DROPPED: "W_STYLE_ALPHA_DROPPED";
19
+ /** A list of colors where one color is expected; the tool draws it its own way and the first is not taken. */
20
+ COLOR_LIST: "W_STYLE_COLOR_LIST";
21
+ /** A gradient fill; its first color is kept. */
22
+ GRADIENT: "W_STYLE_GRADIENT";
23
+ /** A node the tool draws unfilled although the file gives it a fill color. */
24
+ UNFILLED: "W_STYLE_UNFILLED";
25
+ /** A node fill the file marks as transparent or absent. */
26
+ NO_FILL: "W_STYLE_NO_FILL";
27
+ /** An edge stroke the file marks as absent. */
28
+ NO_STROKE: "W_STYLE_NO_STROKE";
29
+ /** The tool grows a node to fit its label, so the stated size is a minimum. */
30
+ SIZE_MINIMUM: "W_STYLE_SIZE_MINIMUM";
31
+ /** An HTML-like label: its text is kept and its markup dropped. */
32
+ HTML_LABEL: "W_STYLE_HTML_LABEL";
33
+ /** A record label: its fields are joined with " | ". */
34
+ RECORD_LABEL: "W_STYLE_RECORD_LABEL";
35
+ /** An element carries more than one label; the first is kept. */
36
+ EXTRA_LABELS: "W_STYLE_EXTRA_LABELS";
37
+ /** A color that inherits from the edge's ends in a way the vocabulary cannot express. */
38
+ INHERIT_COLOR: "W_STYLE_INHERIT_COLOR";
39
+ /** A style property the vocabulary has no counterpart for was not carried. */
40
+ NOT_CARRIED: "W_STYLE_NOT_CARRIED";
41
+ /** A declared mapping that cannot be read. */
42
+ BAD_MAPPING: "W_STYLE_BAD_MAPPING";
43
+ /** A declared mapping reads a column the file does not have. */
44
+ MAPPING_COLUMN_MISSING: "W_STYLE_MAPPING_COLUMN_MISSING";
45
+ /** References between style records that are circular or too deep; the rest are read. */
46
+ REFERENCE_CYCLE: "W_STYLE_REFERENCE_CYCLE";
47
+ /** A style reference that names nothing in the file. */
48
+ UNRESOLVED: "W_STYLE_UNRESOLVED";
49
+ /** Style structures nested deeper than graph-io reads. */
50
+ NESTING: "W_STYLE_NESTING";
51
+ /** A style section that cannot be read at all. */
52
+ UNREADABLE: "W_STYLE_UNREADABLE";
53
+ /** A Cytoscape session without its visual styles; the tool's fallbacks apply. */
54
+ NO_VIZMAP: "W_STYLE_NO_VIZMAP";
55
+ /** The view names a visual style the file does not hold. */
56
+ VIEW_STYLE_MISSING: "W_STYLE_VIEW_STYLE_MISSING";
57
+ /** The file holds more visual styles than the one its view uses; the others are not read. */
58
+ OTHER_STYLES: "W_STYLE_OTHER_STYLES";
59
+ /** The file holds more views than one; only the first view's styles are read. */
60
+ OTHER_VIEWS: "W_STYLE_OTHER_VIEWS";
61
+ /** A selector the tool treats as invalid, which matches every element there. */
62
+ SELECTOR: "W_STYLE_SELECTOR";
63
+ /** A selector a short predicate cannot express; its members are marked on the elements instead. */
64
+ SELECTOR_AS_COLUMN: "W_STYLE_SELECTOR_AS_COLUMN";
65
+ /** A selector state that changes while the tool runs (selected, hovered), evaluated as at load. */
66
+ STATE_ASSUMED: "W_STYLE_STATE_ASSUMED";
67
+ /** A continuous mapping matches the file's values only within the tool's rounding. */
68
+ RAMP_ROUNDED: "W_STYLE_RAMP_ROUNDED";
69
+ /** Rules were folded into a copy to keep the number of rules per kind bounded. */
70
+ LAYER_CAP: "W_STYLE_LAYER_CAP";
71
+ /** The counted work budget ran out; the values not yet explained are copied per element. */
72
+ BUDGET: "W_STYLE_BUDGET";
73
+ /** A `graphty.styles` block was ignored, with a reason code; the file is read like any other. */
74
+ BLOCK_IGNORED: "W_STYLE_BLOCK_IGNORED";
75
+ /** The format has no place for this property; it is not written. */
76
+ NOT_WRITTEN: "W_STYLE_NOT_WRITTEN";
77
+ /** Written as the nearest value the format allows. */
78
+ APPROXIMATED: "W_STYLE_APPROXIMATED";
79
+ /** Per-element values were written but not the rules; importing the file infers them again. */
80
+ RULES_NOT_KEPT: "W_STYLE_RULES_NOT_KEPT";
81
+ /** A style was written as its per-element values and lost its editable form, with a reason code. */
82
+ LAYER_FLATTENED: "W_STYLE_LAYER_FLATTENED";
83
+ /** The file holds styles that were not imported; import them with the `styles` option. */
84
+ NOT_IMPORTED: "W_STYLES_NOT_IMPORTED";
85
+ /** The graph has styles that were not exported; export them with the `styles` option. */
86
+ NOT_EXPORTED: "W_STYLES_NOT_EXPORTED";
87
+ /** The styles were read from or built for a different graph; nothing is written. */
88
+ MISMATCH: "E_STYLES_MISMATCH";
89
+ }>;
90
+ /**
91
+ * Any style code.
92
+ * @category Styles
93
+ */
94
+ export type StyleIssueCode = (typeof STYLE_ISSUE)[keyof typeof STYLE_ISSUE];
95
+ //# sourceMappingURL=codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../src/styles/codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,eAAO,MAAM,WAAW;IAEpB,yDAAyD;;IAEzD,6GAA6G;;IAE7G,oFAAoF;;IAEpF,mFAAmF;;IAEnF,8GAA8G;;IAE9G,gDAAgD;;IAEhD,8EAA8E;;IAE9E,2DAA2D;;IAE3D,+CAA+C;;IAE/C,+EAA+E;;IAE/E,mEAAmE;;IAEnE,wDAAwD;;IAExD,iEAAiE;;IAEjE,yFAAyF;;IAEzF,8EAA8E;;IAG9E,8CAA8C;;IAE9C,gEAAgE;;IAEhE,yFAAyF;;IAEzF,wDAAwD;;IAExD,0DAA0D;;IAE1D,kDAAkD;;IAElD,iFAAiF;;IAEjF,4DAA4D;;IAE5D,6FAA6F;;IAE7F,iFAAiF;;IAEjF,gFAAgF;;IAEhF,mGAAmG;;IAEnG,mGAAmG;;IAGnG,sFAAsF;;IAEtF,kFAAkF;;IAElF,4FAA4F;;IAG5F,iGAAiG;;IAGjG,oEAAoE;;IAEpE,sDAAsD;;IAEtD,+FAA+F;;IAE/F,oGAAoG;;IAGpG,0FAA0F;;IAE1F,yFAAyF;;IAEzF,oFAAoF;;EAEtF,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}