@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,516 @@
1
+ /**
2
+ * Reading a file's styles after an import: the importer's own `styles()` (the simple path, canonicalized and planned
3
+ * here, or the advanced path), the generic reader of the style roles (`color`, `size`, `shape`, `thickness`,
4
+ * `hidden`) for an importer without one, and the `graphty.styles` block when a file graphty wrote carries it as a
5
+ * graph attribute.
6
+ */
7
+ import { keptForStyles } from "../../common/report.js";
8
+ import { StyleBudget } from "../budget.js";
9
+ import { canonColor, colorOpacity } from "../canon/color.js";
10
+ import { canonEnum } from "../canon/enums.js";
11
+ import { canonBoolean, canonNumber, canonOpacity, DOT_POINTS_PER_INCH, styleLengthUnit } from "../canon/number.js";
12
+ import { canonText } from "../canon/text.js";
13
+ import { STYLE_ISSUE } from "../codes.js";
14
+ import { StyleNotes } from "../notes.js";
15
+ import { featuresOf, styleFingerprint } from "../plan/features.js";
16
+ import { planStyles } from "../plan/plan.js";
17
+ import { plainCell } from "../plan/resolve.js";
18
+ import { STYLE_PROPERTIES } from "../vocabulary.js";
19
+ import { blockStyles, parseStyleBlock, STYLE_BLOCK_NAME } from "./block.js";
20
+ const TARGETS = ["node", "edge"];
21
+ const ENUM_KINDS = new Set(["shape", "borderStyle", "lineStyle", "arrow", "weight", "position"]);
22
+ /**
23
+ * Reads the styles of a file after its import: the reading importer's own `styles()` (with what its `import()` kept
24
+ * for it), or the columns whose role is a style role when it has none; a `graphty.styles` block carried as a graph
25
+ * attribute gives the rules, with the importer's values as the truth. Called by `importGraph()` when styles are
26
+ * requested; a caller that drives an importer itself (into its own builder) calls it with the report `import()`
27
+ * returned.
28
+ * @param importer - the importer that read the file
29
+ * @param snapshot - the graph it built
30
+ * @param report - the report its `import()` returned
31
+ * @param options - tool defaults and a cancel signal
32
+ * @returns the styles, or null when the file has none
33
+ * @category Styles
34
+ */
35
+ export function extractStyles(importer, snapshot, report, options = {}) {
36
+ const signal = options.signal ?? undefined;
37
+ const notes = new StyleNotes();
38
+ const budget = options.budget ?? new StyleBudget();
39
+ const canonical = readStyleValues(importer, snapshot, report, { notes, budget, signal });
40
+ const fingerprint = styleFingerprint(snapshot);
41
+ const blockText = canonical?.block ?? graphValue(snapshot, STYLE_BLOCK_NAME);
42
+ if (blockText !== undefined) {
43
+ const parsed = parseStyleBlock(blockText, fingerprint);
44
+ if (parsed.ok) {
45
+ const truth = canonical === null ? {} : { node: canonical.node.values, edge: canonical.edge.values };
46
+ const fromBlock = blockStyles(parsed.block, snapshot, importer.format, truth, canonical?.notes ?? [], canonical?.tool ?? null, canonical?.opacityInColor === true);
47
+ if (fromBlock !== null) {
48
+ return fromBlock;
49
+ }
50
+ notes.add(STYLE_ISSUE.BLOCK_IGNORED, null, null, { sample: "INVALID" });
51
+ }
52
+ else {
53
+ notes.add(STYLE_ISSUE.BLOCK_IGNORED, null, null, { sample: parsed.reason });
54
+ }
55
+ }
56
+ if (canonical === null) {
57
+ const list = notes.list();
58
+ return list.length === 0 ? null : emptyStyles(importer.format, list, snapshot, fingerprint);
59
+ }
60
+ const raw = { node: new Set(canonical.raw.node), edge: new Set(canonical.raw.edge) };
61
+ const features = {
62
+ node: featuresOf(snapshot, "node").filter((f) => !("data" in f.ref && raw.node.has(f.ref.data))),
63
+ edge: featuresOf(snapshot, "edge").filter((f) => !("data" in f.ref && raw.edge.has(f.ref.data))),
64
+ };
65
+ const planned = planStyles({
66
+ format: importer.format,
67
+ dialect: canonical.dialect,
68
+ tool: canonical.tool,
69
+ units: canonical.units,
70
+ graph: canonical.graph,
71
+ node: canonical.node,
72
+ edge: canonical.edge,
73
+ fingerprint,
74
+ }, features, {
75
+ toolDefaults: options.toolDefaults,
76
+ budget,
77
+ notes,
78
+ rawColumns: { node: canonical.raw.node, edge: canonical.raw.edge },
79
+ signal,
80
+ });
81
+ if (canonical.notes.length === 0) {
82
+ return planned;
83
+ }
84
+ return { ...planned, styles: { ...planned.styles, notes: [...canonical.notes, ...planned.styles.notes] } };
85
+ }
86
+ /**
87
+ * What a file's styles are before planning: each element's canonical value per property, as the importer's own
88
+ * `styles()` gives them (the simple path canonicalized) or, for an importer without one, as the generic reader reads
89
+ * the columns with a style role. The truth the planned rules must reproduce; not part of the published entry.
90
+ * @param importer - the importer that read the file
91
+ * @param snapshot - the graph it built
92
+ * @param report - the report its `import()` returned
93
+ * @param context - where problems are noted, the work budget and a cancel signal
94
+ * @param context.notes - where problems are noted
95
+ * @param context.budget - the work budget
96
+ * @param context.signal - cancels the work
97
+ * @returns the canonical values, or null when the file has no styles
98
+ */
99
+ export function readStyleValues(importer, snapshot, report, context) {
100
+ const { notes, budget, signal } = context;
101
+ signal?.throwIfAborted();
102
+ let canonical;
103
+ if (importer.styles === undefined) {
104
+ canonical = roleStyles(snapshot, importer.format, notes, budget);
105
+ }
106
+ else {
107
+ const got = importer.styles(snapshot, { signal, budget, kept: keptForStyles(report) });
108
+ canonical = got === null ? null : canonicalOf(got, snapshot, notes, budget, signal);
109
+ }
110
+ signal?.throwIfAborted();
111
+ return canonical === null ? null : withPairedHalves(canonical, snapshot);
112
+ }
113
+ /**
114
+ * The values with the second half of each undirected edge of a directed graph given its first half's value: the file
115
+ * holds the edge once, its program draws it once, and the import read the element's values onto the first half.
116
+ * @param truth - the values read
117
+ * @param snapshot - the graph
118
+ * @returns the values
119
+ */
120
+ function withPairedHalves(truth, snapshot) {
121
+ const pair = snapshot.edges.byRole("pair");
122
+ if (pair === null) {
123
+ return truth;
124
+ }
125
+ const values = {};
126
+ for (const [property, col] of Object.entries(truth.edge.values)) {
127
+ if (col === undefined) {
128
+ continue;
129
+ }
130
+ const out = [...col];
131
+ for (let e = 0; e < out.length; e++) {
132
+ const first = pair.isSet(e) ? pair.value(e) : e;
133
+ if (first < e) {
134
+ out[e] = col[first] ?? null;
135
+ }
136
+ }
137
+ values[property] = out;
138
+ }
139
+ return { ...truth, edge: { ...truth.edge, values } };
140
+ }
141
+ /**
142
+ * A graph attribute's value, or undefined.
143
+ * @param snapshot - the graph
144
+ * @param name - the attribute
145
+ * @returns its value
146
+ */
147
+ function graphValue(snapshot, name) {
148
+ return snapshot.graph.has(name) ? plainCell(snapshot.graph.value(name, 0)) : undefined;
149
+ }
150
+ /**
151
+ * Styles holding nothing but notes.
152
+ * @param format - the format
153
+ * @param notes - the notes
154
+ * @param snapshot - the graph
155
+ * @param fingerprint - its fingerprint
156
+ * @returns the styles
157
+ */
158
+ function emptyStyles(format, notes, snapshot, fingerprint) {
159
+ return {
160
+ styles: {
161
+ version: 1,
162
+ source: { format, dialect: null, tool: null },
163
+ units: { length: "px" },
164
+ graph: {},
165
+ rules: [],
166
+ notes,
167
+ },
168
+ columns: { node: new Map(), edge: new Map() },
169
+ features: { node: featuresOf(snapshot, "node"), edge: featuresOf(snapshot, "edge") },
170
+ fingerprint,
171
+ };
172
+ }
173
+ /**
174
+ * An importer's styles as canonical values: the advanced path as it is, the simple path read and canonicalized.
175
+ * @param got - what the importer's `styles()` returned
176
+ * @param snapshot - the graph
177
+ * @param notes - where problems are noted
178
+ * @param budget - the work budget
179
+ * @param signal - cancels the work
180
+ * @returns the canonical values
181
+ */
182
+ function canonicalOf(got, snapshot, notes, budget, signal) {
183
+ if ("canonical" in got) {
184
+ return {
185
+ dialect: got.dialect ?? null,
186
+ tool: got.tool ?? null,
187
+ units: got.units ?? "px",
188
+ graph: got.graph ?? {},
189
+ node: got.node ?? { values: {} },
190
+ edge: got.edge ?? { values: {} },
191
+ raw: { node: got.readFrom?.node ?? [], edge: got.readFrom?.edge ?? [] },
192
+ notes: got.notes ?? [],
193
+ block: got.block ?? null,
194
+ opacityInColor: got.opacityInColor === true,
195
+ };
196
+ }
197
+ const { dialect } = got;
198
+ const raw = { node: [], edge: [] };
199
+ const out = { node: { values: {} }, edge: { values: {} } };
200
+ for (const target of TARGETS) {
201
+ const given = got[target];
202
+ if (given === undefined) {
203
+ continue;
204
+ }
205
+ const columns = new Map();
206
+ for (const [property, source] of Object.entries(given)) {
207
+ signal?.throwIfAborted();
208
+ const values = rawValues(snapshot, target, property, source, notes, raw[target]);
209
+ if (values !== null) {
210
+ columns.set(property, values);
211
+ }
212
+ }
213
+ out[target] = { values: canonicalize(target, columns, dialect, count(snapshot, target), notes, budget) };
214
+ }
215
+ return {
216
+ dialect,
217
+ tool: null,
218
+ units: styleLengthUnit(dialect),
219
+ graph: {},
220
+ node: out.node,
221
+ edge: out.edge,
222
+ raw,
223
+ notes: [],
224
+ };
225
+ }
226
+ /**
227
+ * The element count of a target.
228
+ * @param snapshot - the graph
229
+ * @param target - nodes or edges
230
+ * @returns the count
231
+ */
232
+ function count(snapshot, target) {
233
+ return target === "node" ? snapshot.nodeCount : snapshot.edgeCount;
234
+ }
235
+ /**
236
+ * The raw values of one property on the simple path: a snapshot column by name, or an array by element index.
237
+ * @param snapshot - the graph
238
+ * @param target - nodes or edges
239
+ * @param property - the property
240
+ * @param source - `{ data: "<column>" }` or an array
241
+ * @param notes - where a missing column is noted
242
+ * @param raw - collects the names of the columns read
243
+ * @returns the values, or null
244
+ */
245
+ function rawValues(snapshot, target, property, source, notes, raw) {
246
+ if (Array.isArray(source)) {
247
+ return source;
248
+ }
249
+ if (source === null || typeof source !== "object" || typeof source.data !== "string") {
250
+ notes.add(STYLE_ISSUE.BAD_MAPPING, target, property, { sample: source });
251
+ return null;
252
+ }
253
+ const name = source.data;
254
+ const table = target === "node" ? snapshot.nodes : snapshot.edges;
255
+ if (!table.has(name)) {
256
+ notes.add(STYLE_ISSUE.MAPPING_COLUMN_MISSING, target, property, { sample: name });
257
+ return null;
258
+ }
259
+ raw.push(name);
260
+ const n = count(snapshot, target);
261
+ const out = new Array(n);
262
+ for (let i = 0; i < n; i++) {
263
+ out[i] = plainCell(table.value(name, i));
264
+ }
265
+ return out;
266
+ }
267
+ /**
268
+ * Canonical values of every property of one target. A list value is read as its first item. A color's alpha moves
269
+ * into the fill's or the edge's opacity (multiplied with an opacity the file also states) or is dropped with a note.
270
+ * @param target - nodes or edges
271
+ * @param columns - the raw values per property
272
+ * @param dialect - how they are spelled
273
+ * @param n - the element count
274
+ * @param notes - where problems are noted
275
+ * @param budget - the work budget
276
+ * @returns the canonical values per property
277
+ */
278
+ function canonicalize(target, columns, dialect, n, notes, budget) {
279
+ const cx = { target, dialect, n, notes, budget };
280
+ // keyed by the importer's property names: no prototype, so `__proto__` is a property like any other
281
+ const out = Object.create(null);
282
+ const alphas = new Map();
283
+ for (const [property, raws] of columns) {
284
+ const { col, alpha } = canonicalColumn(cx, property, raws);
285
+ out[property] = col;
286
+ if (alpha !== null) {
287
+ alphas.set(property, alpha);
288
+ }
289
+ }
290
+ for (const [property, alpha] of alphas) {
291
+ moveAlpha(cx, out, property, alpha);
292
+ }
293
+ return out;
294
+ }
295
+ /**
296
+ * Canonical values of one property; a color's alpha below 1 is kept apart.
297
+ * @param cx - the target being read
298
+ * @param property - the property
299
+ * @param raws - its raw values
300
+ * @returns the values, and the alphas (null when every color is opaque)
301
+ */
302
+ function canonicalColumn(cx, property, raws) {
303
+ const { target, dialect, n, notes, budget } = cx;
304
+ const kind = STYLE_PROPERTIES[target].get(property);
305
+ const col = new Array(n).fill(null);
306
+ let alpha = null;
307
+ for (let i = 0; i < n && i < raws.length; i++) {
308
+ const site = { notes, target, property, element: i, budget };
309
+ const v = firstItem(raws[i], site);
310
+ if (v === null || v === undefined) {
311
+ continue;
312
+ }
313
+ if (kind !== "color") {
314
+ col[i] = canonValue(kind, property, v, dialect, site);
315
+ continue;
316
+ }
317
+ const c = canonColor(v, dialect, site, { use: colorUse(target, property) });
318
+ col[i] = c?.color ?? null;
319
+ if (c !== null && c.alpha < 1) {
320
+ alpha ?? (alpha = new Array(n).fill(null));
321
+ alpha[i] = c.alpha;
322
+ }
323
+ }
324
+ return { col, alpha };
325
+ }
326
+ /**
327
+ * A raw value, a list read as its first item (a longer list noted).
328
+ * @param v - the raw value
329
+ * @param site - where it was read
330
+ * @returns the value
331
+ */
332
+ function firstItem(v, site) {
333
+ if (!Array.isArray(v)) {
334
+ return v;
335
+ }
336
+ if (v.length > 1) {
337
+ site.notes.add(STYLE_ISSUE.BAD_VALUE, site.target, site.property, { sample: v, element: site.element });
338
+ }
339
+ return v.length === 0 ? null : v[0];
340
+ }
341
+ /**
342
+ * Moves a color property's alphas into its opacity (multiplied with an opacity the file also states), or drops them
343
+ * with a note where the property has none.
344
+ * @param cx - the target being read
345
+ * @param out - the canonical values, changed in place
346
+ * @param property - the color property
347
+ * @param alpha - its alphas
348
+ */
349
+ function moveAlpha(cx, out, property, alpha) {
350
+ const { target, n, notes, budget } = cx;
351
+ const carrier = OPACITY_OF.get(`${target}.${property}`) ?? null;
352
+ let opacity = null;
353
+ if (carrier !== null) {
354
+ out[carrier] ?? (out[carrier] = new Array(n).fill(null));
355
+ opacity = out[carrier];
356
+ }
357
+ for (let i = 0; i < n; i++) {
358
+ const a = alpha[i];
359
+ if (a === null) {
360
+ continue;
361
+ }
362
+ const site = { notes, target, property, element: i, budget };
363
+ const stated = opacity === null ? null : opacity[i];
364
+ const merged = colorOpacity({ color: out[property][i], alpha: a }, stated, site, opacity !== null);
365
+ if (opacity !== null) {
366
+ opacity[i] = merged;
367
+ }
368
+ }
369
+ }
370
+ /** The opacity property that carries a color's alpha: a node's fill and an edge's line. */
371
+ const OPACITY_OF = new Map([
372
+ ["node.fill", "fillOpacity"],
373
+ ["edge.color", "opacity"],
374
+ ]);
375
+ /**
376
+ * How a color is drawn, which decides how a Graphviz color list is read.
377
+ * @param target - nodes or edges
378
+ * @param property - the property
379
+ * @returns the use
380
+ */
381
+ function colorUse(target, property) {
382
+ if (property === "fill") {
383
+ return "fill";
384
+ }
385
+ return target === "edge" && property === "color" ? "edge" : "line";
386
+ }
387
+ /**
388
+ * The canonical value of a property that is not a color.
389
+ * @param kind - the property's value kind, or undefined for a property outside the vocabulary
390
+ * @param property - the property
391
+ * @param raw - the raw value
392
+ * @param dialect - how it is spelled
393
+ * @param site - where it was read
394
+ * @returns the value, or null
395
+ */
396
+ function canonValue(kind, property, raw, dialect, site) {
397
+ switch (kind) {
398
+ case "number":
399
+ return canonNumber(raw, site, dialect === "graphviz" && (property === "width" || property === "height") ? DOT_POINTS_PER_INCH : 1);
400
+ case "opacity":
401
+ return canonOpacity(raw, dialect, site);
402
+ case "boolean":
403
+ return canonBoolean(raw, site);
404
+ case "text":
405
+ return canonText(raw, site);
406
+ case undefined:
407
+ // a property only one consumer draws (graphty:<channel>) is carried as it is
408
+ return typeof raw === "string" ||
409
+ typeof raw === "boolean" ||
410
+ (typeof raw === "number" && Number.isFinite(raw))
411
+ ? raw
412
+ : null;
413
+ default:
414
+ return ENUM_KINDS.has(kind) ? canonEnum(kind, raw, dialect, site) : null;
415
+ }
416
+ }
417
+ /** The style roles and the property each sets, per target; `size` sets a node's width and height. */
418
+ const ROLE_PROPERTIES = {
419
+ node: [
420
+ ["color", ["fill"]],
421
+ ["size", ["width", "height"]],
422
+ ["shape", ["shape"]],
423
+ ["hidden", ["visible"]],
424
+ ],
425
+ edge: [
426
+ ["color", ["color"]],
427
+ ["thickness", ["width"]],
428
+ ["shape", ["lineStyle"]],
429
+ ["hidden", ["visible"]],
430
+ ],
431
+ };
432
+ /**
433
+ * The generic reader: the styles of the columns whose role is `color`, `size`, `shape`, `thickness` or `hidden`, so a
434
+ * format that tags its style columns needs no reader of its own. A color column holds CSS text or channel numbers
435
+ * (0..1 in a float column, 0..255 otherwise, with an optional alpha); a hidden column holds booleans.
436
+ * @param snapshot - the graph
437
+ * @param dialect - how text values are spelled (the format's name; CSS for a format with no dialect of its own)
438
+ * @param notes - where problems are noted
439
+ * @param budget - the work budget
440
+ * @returns the canonical values, or null when no column has a style role
441
+ */
442
+ function roleStyles(snapshot, dialect, notes, budget) {
443
+ const raw = { node: [], edge: [] };
444
+ const out = { node: { values: {} }, edge: { values: {} } };
445
+ for (const target of TARGETS) {
446
+ const table = target === "node" ? snapshot.nodes : snapshot.edges;
447
+ const n = count(snapshot, target);
448
+ const columns = new Map();
449
+ for (const [role, properties] of ROLE_PROPERTIES[target]) {
450
+ const col = table.byRole(role);
451
+ if (col === null) {
452
+ continue;
453
+ }
454
+ raw[target].push(col.meta.name);
455
+ const vals = roleValues(table, col.meta, role, n);
456
+ for (const p of properties) {
457
+ columns.set(p, vals);
458
+ }
459
+ }
460
+ out[target] = { values: canonicalize(target, columns, dialect, n, notes, budget) };
461
+ }
462
+ if (raw.node.length === 0 && raw.edge.length === 0) {
463
+ return null;
464
+ }
465
+ return {
466
+ dialect,
467
+ tool: null,
468
+ units: styleLengthUnit(dialect),
469
+ graph: {},
470
+ node: out.node,
471
+ edge: out.edge,
472
+ raw,
473
+ notes: [],
474
+ };
475
+ }
476
+ /**
477
+ * A role column's raw values: a color as text, a hidden flag as the visibility it says the opposite of.
478
+ * @param table - the node or edge table
479
+ * @param meta - the column's name and dtype
480
+ * @param meta.name - the column's name
481
+ * @param meta.dtype - its dtype
482
+ * @param role - its role
483
+ * @param n - the element count
484
+ * @returns the values
485
+ */
486
+ function roleValues(table, meta, role, n) {
487
+ return Array.from({ length: n }, (_, i) => {
488
+ const v = plainCell(table.value(meta.name, i));
489
+ if (role === "color") {
490
+ return channelsColor(v, meta.dtype);
491
+ }
492
+ if (role === "hidden") {
493
+ return typeof v === "boolean" ? !v : null;
494
+ }
495
+ return v;
496
+ });
497
+ }
498
+ /**
499
+ * A color cell as text: channel numbers become `rgba()` (floats 0..1, integers 0..255); text stays as it is.
500
+ * @param v - the cell
501
+ * @param dtype - the column's dtype
502
+ * @returns the color's text, or the cell unchanged
503
+ */
504
+ function channelsColor(v, dtype) {
505
+ if (!Array.isArray(v) ||
506
+ (v.length !== 3 && v.length !== 4) ||
507
+ !v.every((x) => typeof x === "number" && Number.isFinite(x))) {
508
+ return v;
509
+ }
510
+ const scale = dtype === "f32" || dtype === "f64" ? 255 : 1;
511
+ const [r, g, b] = v.map((x) => Math.round(x * scale));
512
+ const alphaScale = scale === 255 ? 1 : 255;
513
+ const a = v.length === 4 ? v[3] / alphaScale : 1;
514
+ return `rgba(${String(r)}, ${String(g)}, ${String(b)}, ${String(a)})`;
515
+ }
516
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/styles/io/generic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6B5E,MAAM,OAAO,GAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzD,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAkBtH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CACzB,QAAuB,EACvB,QAAuB,EACvB,MAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,SAAS,EAAE,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrG,MAAM,SAAS,GAAG,WAAW,CACzB,MAAM,CAAC,KAAK,EACZ,QAAQ,EACR,QAAQ,CAAC,MAAM,EACf,KAAK,EACL,SAAS,EAAE,KAAK,IAAI,EAAE,EACtB,SAAS,EAAE,IAAI,IAAI,IAAI,EACvB,SAAS,EAAE,cAAc,KAAK,IAAI,CACrC,CAAC;YACF,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IACD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrF,MAAM,QAAQ,GAAG;QACb,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAChG,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;KACnG,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CACtB;QACI,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,WAAW;KACd,EACD,QAAQ,EACR;QACI,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM;QACN,KAAK;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;QAClE,MAAM;KACT,CACJ,CAAC;IACF,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAC/G,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC3B,QAAuB,EACvB,QAAuB,EACvB,MAAoB,EACpB,OAAgH;IAEhH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,SAA4B,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvF,SAAS,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAiB,EAAE,QAAuB;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAgD,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAA+C,EAAE,CAAC;QAC5G,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,SAAS;QACb,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;YAChC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,QAAuB,EAAE,IAAY;IACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAChB,MAAc,EACd,KAA2B,EAC3B,QAAuB,EACvB,WAA2C;IAE3C,OAAO;QACH,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACvB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK;SACR;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QACpF,WAAW;KACd,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAChB,GAAmB,EACnB,QAAuB,EACvB,KAAiB,EACjB,MAAmB,EACnB,MAA+B;IAE/B,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO;YACH,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAChC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE;YACvE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,cAAc,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;SAC9C,CAAC;IACN,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACxB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,EAAc,EAAE,IAAI,EAAE,EAAc,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAkB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAkB,EAAE,CAAC;IAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACjF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7G,CAAC;IACD,OAAO;QACH,OAAO;QACP,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC;QAC/B,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG;QACH,KAAK,EAAE,EAAE;KACZ,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,QAAuB,EAAE,MAAmB;IACvD,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,SAAS,CACd,QAAuB,EACvB,MAAmB,EACnB,QAAgB,EAChB,MAAe,EACf,KAAiB,EACjB,GAAa;IAEb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAmB,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3G,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAI,MAA2B,CAAC,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAU,CAAC,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CACjB,MAAmB,EACnB,OAAgD,EAChD,OAAqB,EACrB,CAAS,EACT,KAAiB,EACjB,MAAmB;IAEnB,MAAM,EAAE,GAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/D,oGAAoG;IACpG,MAAM,GAAG,GAA0C,MAAM,CAAC,MAAM,CAAC,IAAI,CAA0C,CAAC;IAChH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;QACpB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAYD;;;;;;GAMG;AACH,SAAS,eAAe,CACpB,EAAgB,EAChB,QAAgB,EAChB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,KAAK,GAA6B,IAAI,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACxE,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAChC,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtD,SAAS;QACb,CAAC;QACD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,KAAL,KAAK,GAAK,IAAI,KAAK,CAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;YACjD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAU,EAAE,IAAe;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CACd,EAAgB,EAChB,GAA0C,EAC1C,QAAgB,EAChB,KAAiC;IAEjC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC;IAChE,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,MAAX,GAAG,CAAC,OAAO,IAAM,IAAI,KAAK,CAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QAC5D,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACb,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAmB,CAAC;QACvE,MAAM,MAAM,GAAG,YAAY,CACvB,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EACrD,MAAM,EACN,IAAI,EACJ,OAAO,KAAK,IAAI,CACnB,CAAC;QACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACxB,CAAC;IACL,CAAC;AACL,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,GAAgC,IAAI,GAAG,CAAC;IACpD,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,YAAY,EAAE,SAAS,CAAC;CAC5B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,MAAmB,EAAE,QAAgB;IACnD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CACf,IAAwB,EACxB,QAAgB,EAChB,GAAY,EACZ,OAAqB,EACrB,IAAe;IAEf,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ;YACT,OAAO,WAAW,CACd,GAAG,EACH,IAAI,EACJ,OAAO,KAAK,UAAU,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CACtG,CAAC;QACN,KAAK,SAAS;YACV,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,SAAS;YACV,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM;YACP,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,KAAK,SAAS;YACV,6EAA6E;YAC7E,OAAO,OAAO,GAAG,KAAK,QAAQ;gBAC1B,OAAO,GAAG,KAAK,SAAS;gBACxB,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,CAAC;QACf;YACI,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;AACL,CAAC;AAED,qGAAqG;AACrG,MAAM,eAAe,GAAqF;IACtG,IAAI,EAAE;QACF,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;KAC1B;IACD,IAAI,EAAE;QACF,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;KAC1B;CACJ,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,UAAU,CACf,QAAuB,EACvB,OAAqB,EACrB,KAAiB,EACjB,MAAmB;IAEnB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,EAAc,EAAE,IAAI,EAAE,EAAc,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAkB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAkB,EAAE,CAAC;IAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACf,SAAS;YACb,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACH,OAAO;QACP,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC;QAC/B,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG;QACH,KAAK,EAAE,EAAE;KACZ,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CACf,KAA6B,EAC7B,IAAuD,EACvD,IAAY,EACZ,CAAS;IAET,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAU,EAAE,KAAa;IAC5C,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC9D,CAAC;QACC,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAI,CAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Reading and writing styles through the importer and exporter contracts: the `graphty.styles` block, the generic
3
+ * reader of style roles, and what an exporter receives when styles are written.
4
+ */
5
+ export { blockStyles, MAX_STYLE_BLOCK_LENGTH, type ParsedStyleBlock, parseStyleBlock, STYLE_BLOCK_NAME, type StyleBlock, styleTag, writeStyleBlock, type WriteStyleBlockOptions, } from "./block.js";
6
+ export { extractStyles, type ExtractStylesOptions, type StyleImportOptions } from "./generic.js";
7
+ export { type ExporterStyleInput, type ExporterStyleOptions } from "./writer.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/io/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,WAAW,EACX,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,eAAe,EACf,gBAAgB,EAChB,KAAK,UAAU,EACf,QAAQ,EACR,eAAe,EACf,KAAK,sBAAsB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Reading and writing styles through the importer and exporter contracts: the `graphty.styles` block, the generic
3
+ * reader of style roles, and what an exporter receives when styles are written.
4
+ */
5
+ export { blockStyles, MAX_STYLE_BLOCK_LENGTH, parseStyleBlock, STYLE_BLOCK_NAME, styleTag, writeStyleBlock, } from "./block.js";
6
+ export { extractStyles } from "./generic.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/styles/io/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,WAAW,EACX,sBAAsB,EAEtB,eAAe,EACf,gBAAgB,EAEhB,QAAQ,EACR,eAAe,GAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAsD,MAAM,cAAc,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Writing a graph's styles: what `exportGraph(snapshot, format, { styles })` hands a format's exporter, the losses
3
+ * reported before anything is written, and, for an exporter whose block goes into attributes, the snapshot with the
4
+ * `graphty.styles` block and the tagged per-element values added as attributes.
5
+ */
6
+ import type { GraphSnapshot } from "@graphty/graph-format";
7
+ import type { GraphExporter, LossNote } from "../../types.js";
8
+ import type { ExtractedStyles, StyleColumn, StyleProperty, StyleRule, StyleTarget, StyleValue } from "../types.js";
9
+ /**
10
+ * What an exporter with a `styles` member receives as `options.styles` when styles are being written.
11
+ * @category Styles
12
+ */
13
+ export interface ExporterStyleInput {
14
+ /**
15
+ * Each element's value of one property, by element index (null where no rule gives one): what graphty draws, to
16
+ * write into the format's own style slots.
17
+ * @param target - nodes or edges
18
+ * @param property - the property
19
+ * @returns the values
20
+ */
21
+ picture(target: StyleTarget, property: StyleProperty): readonly (StyleValue | null)[];
22
+ /** The `graphty.styles` block (JSON text) to place where the format keeps extra data. */
23
+ readonly block: string;
24
+ /** The per-element style values the block's rules read, by attribute name (`graphty.style.<target>.<key>`). */
25
+ readonly tags: {
26
+ /** Node values. */
27
+ readonly node: ReadonlyMap<string, StyleColumn>;
28
+ /** Edge values. */
29
+ readonly edge: ReadonlyMap<string, StyleColumn>;
30
+ };
31
+ /** The styles themselves, for a format with a style language of its own. */
32
+ readonly rules: ExtractedStyles;
33
+ }
34
+ /**
35
+ * The options an exporter with a `styles` member reads its styles from: type its options as `Opts &
36
+ * ExporterStyleOptions`.
37
+ * @category Styles
38
+ */
39
+ export interface ExporterStyleOptions {
40
+ /** Present when styles are being written. */
41
+ readonly styles?: ExporterStyleInput | undefined;
42
+ }
43
+ /** What an export with styles writes and loses, worked out before writing. */
44
+ interface PreparedStyleExport {
45
+ /** The snapshot to hand the exporter: style roles removed, and the block and tagged values added as attributes. */
46
+ readonly snapshot: GraphSnapshot;
47
+ /** The exporter's `options.styles`, or null for an exporter without a `styles` member. */
48
+ readonly input: ExporterStyleInput | null;
49
+ /** W_STYLE_ notes: every property not written natively, and the rules when they are not kept. */
50
+ readonly notes: readonly LossNote[];
51
+ /** E_STYLES_MISMATCH when the styles belong to a different graph; nothing is then written. */
52
+ readonly refusal: LossNote | null;
53
+ }
54
+ /**
55
+ * Works out an export with styles: the refusal when the styles belong to another graph, the losses, the exporter's
56
+ * `options.styles`, and the snapshot to write.
57
+ * @param snapshot - the graph being written
58
+ * @param exporter - the format's exporter
59
+ * @param given - the styles
60
+ * @param plain - the export's other options, which decide what the format loses of the graph's data
61
+ * @returns what to write and what is lost
62
+ */
63
+ export declare function prepareStyleExport(snapshot: GraphSnapshot, exporter: GraphExporter, given: ExtractedStyles, plain?: Readonly<Record<string, unknown>>): PreparedStyleExport;
64
+ /**
65
+ * Work an exporter does from its styles input once per export call: the registry checks before it writes, with the
66
+ * same input, graph and options. Outside an export call (an input the caller made) it is done every time.
67
+ * @param input - the exporter's `options.styles`
68
+ * @param key - what else the work reads (the graph, options), compared by identity
69
+ * @param compute - the work
70
+ * @returns its result
71
+ */
72
+ export declare function sharedInExportCall<T>(input: ExporterStyleInput, key: readonly unknown[], compute: () => T): T;
73
+ /**
74
+ * Whether a loss note is about a property only graphty draws (`graphty:<channel>`) in a file that keeps the block:
75
+ * the block carries it, and no other program would draw it, so nothing is lost.
76
+ * @param note - the note
77
+ * @param exporter - the exporter writing the file
78
+ * @returns true when the note names nothing lost
79
+ */
80
+ export declare function isKeptGraphtyProperty(note: LossNote, exporter: GraphExporter): boolean;
81
+ /**
82
+ * The data columns the rules of one target read.
83
+ * @param rules - the rules
84
+ * @param target - nodes or edges
85
+ * @returns the column names
86
+ */
87
+ export declare function dataRead(rules: readonly StyleRule[], target: StyleTarget): Set<string>;
88
+ export {};
89
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../../src/styles/io/writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9D,OAAO,KAAK,EACR,eAAe,EAEf,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EAEb,MAAM,aAAa,CAAC;AAGrB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IACtF,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,EAAE;QACX,mBAAmB;QACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChD,mBAAmB;QACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACnD,CAAC;IACF,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACpD;AAED,8EAA8E;AAC9E,UAAU,mBAAmB;IACzB,mHAAmH;IACnH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;CACrC;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC1C,mBAAmB,CAqCrB;AAYD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAW7G;AA2SD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAEtF;AA8QD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAatF"}