@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.
- package/dist/chunks/approximations-DJMHdDvv.js +40 -0
- package/dist/chunks/approximations-DJMHdDvv.js.map +1 -0
- package/dist/chunks/block-CPCHkX42.js +2777 -0
- package/dist/chunks/block-CPCHkX42.js.map +1 -0
- package/dist/chunks/{choose-DvpbdRuz.js → choose--jM0yYCo.js} +3 -2
- package/dist/chunks/{choose-DvpbdRuz.js.map → choose--jM0yYCo.js.map} +1 -1
- package/dist/chunks/{constants-fT3E8JYY.js → constants-BKwqelYD.js} +6 -2
- package/dist/chunks/constants-BKwqelYD.js.map +1 -0
- package/dist/chunks/convert-BcQ8_jMo.js +59 -0
- package/dist/chunks/convert-BcQ8_jMo.js.map +1 -0
- package/dist/chunks/emit-DZy6JgdA.js +3456 -0
- package/dist/chunks/emit-DZy6JgdA.js.map +1 -0
- package/dist/chunks/{escape-B62ZGM_a.js → escape-CgzxiYPg.js} +44 -21
- package/dist/chunks/escape-CgzxiYPg.js.map +1 -0
- package/dist/chunks/{export-rKLeGQMo.js → export-BvqAXCKh.js} +196 -792
- package/dist/chunks/export-BvqAXCKh.js.map +1 -0
- package/dist/chunks/{exporter-yLxKBvLE.js → exporter--Mk9gXCJ.js} +4 -3
- package/dist/chunks/{exporter-yLxKBvLE.js.map → exporter--Mk9gXCJ.js.map} +1 -1
- package/dist/chunks/{exporter-RVtXVetw.js → exporter-C-9cgZKa.js} +1805 -287
- package/dist/chunks/exporter-C-9cgZKa.js.map +1 -0
- package/dist/chunks/{exporter-8hLNemFk.js → exporter-DFqJhBnj.js} +133 -74
- package/dist/chunks/exporter-DFqJhBnj.js.map +1 -0
- package/dist/chunks/{exporter-BWwEuOPT.js → exporter-DteVeJki.js} +22 -12
- package/dist/chunks/exporter-DteVeJki.js.map +1 -0
- package/dist/chunks/format-BpQBx8MZ.js +676 -0
- package/dist/chunks/format-BpQBx8MZ.js.map +1 -0
- package/dist/chunks/generic-BGO71QBv.js +1347 -0
- package/dist/chunks/generic-BGO71QBv.js.map +1 -0
- package/dist/chunks/{importer-C98dpSH4.js → importer-B-9Rc1zO.js} +141 -82
- package/dist/chunks/importer-B-9Rc1zO.js.map +1 -0
- package/dist/chunks/{importer-D794XUTe.js → importer-BVVR740x.js} +31 -8
- package/dist/chunks/importer-BVVR740x.js.map +1 -0
- package/dist/chunks/{importer-WrGRZb0N.js → importer-C0AjA3Ax.js} +449 -102
- package/dist/chunks/importer-C0AjA3Ax.js.map +1 -0
- package/dist/chunks/{importer-BbNb7eNg.js → importer-C7pvJe1L.js} +1398 -129
- package/dist/chunks/importer-C7pvJe1L.js.map +1 -0
- package/dist/chunks/{importer-xZ-3suY1.js → importer-ClwoVx3O.js} +791 -135
- package/dist/chunks/importer-ClwoVx3O.js.map +1 -0
- package/dist/chunks/{importer-Ht7LNg8L.js → importer-D0sC_6bO.js} +116 -296
- package/dist/chunks/importer-D0sC_6bO.js.map +1 -0
- package/dist/chunks/{importer-Dz7tI8Sa.js → importer-EHQk1jbM.js} +617 -115
- package/dist/chunks/importer-EHQk1jbM.js.map +1 -0
- package/dist/chunks/{json-elements-DKSqpNW1.js → json-elements-DJZRZ6jd.js} +123 -32
- package/dist/chunks/json-elements-DJZRZ6jd.js.map +1 -0
- package/dist/chunks/lexicon-WMsNddyU.js +509 -0
- package/dist/chunks/lexicon-WMsNddyU.js.map +1 -0
- package/dist/chunks/{ontology-export-CtRXjg_i.js → ontology-export-G4MqRdux.js} +3 -2
- package/dist/chunks/{ontology-export-CtRXjg_i.js.map → ontology-export-G4MqRdux.js.map} +1 -1
- package/dist/chunks/{records-Cu4bxYOm.js → records-CiaWZrFH.js} +2 -2
- package/dist/chunks/{records-Cu4bxYOm.js.map → records-CiaWZrFH.js.map} +1 -1
- package/dist/chunks/styles-DvoFBKCK.js +690 -0
- package/dist/chunks/styles-DvoFBKCK.js.map +1 -0
- package/dist/chunks/styles-yed-Cz9rLBCP.js +842 -0
- package/dist/chunks/styles-yed-Cz9rLBCP.js.map +1 -0
- package/dist/chunks/styles-zNTmz5R7.js +2102 -0
- package/dist/chunks/styles-zNTmz5R7.js.map +1 -0
- package/dist/chunks/{text-DHOJXnED.js → text-CzJNFOS9.js} +2 -2
- package/dist/chunks/{text-DHOJXnED.js.map → text-CzJNFOS9.js.map} +1 -1
- package/dist/chunks/units-XMZFIFe1.js +19 -0
- package/dist/chunks/units-XMZFIFe1.js.map +1 -0
- package/dist/chunks/writer-gQ8kx99H.js +448 -0
- package/dist/chunks/writer-gQ8kx99H.js.map +1 -0
- package/dist/csv.js +5 -4
- package/dist/csv.js.map +1 -1
- package/dist/cx.js +1 -1
- package/dist/cx2.js +2 -2
- package/dist/cys.js +1 -1
- package/dist/dot.js +5 -2
- package/dist/dot.js.map +1 -1
- package/dist/gexf.js +292 -412
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +927 -74
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +351 -236
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +4 -2
- package/dist/graphml.js.map +1 -1
- package/dist/json.js +1 -1
- package/dist/neo4j.js +4 -3
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.js +1 -1
- package/dist/pajek.js +4 -2
- package/dist/positions.d.ts +1 -0
- package/dist/positions.js +427 -0
- package/dist/positions.js.map +1 -0
- package/dist/src/common/codes.d.ts +6 -0
- package/dist/src/common/codes.d.ts.map +1 -1
- package/dist/src/common/codes.js +6 -0
- package/dist/src/common/codes.js.map +1 -1
- package/dist/src/common/escape.d.ts.map +1 -1
- package/dist/src/common/escape.js +4 -2
- package/dist/src/common/escape.js.map +1 -1
- package/dist/src/common/export.d.ts +10 -0
- package/dist/src/common/export.d.ts.map +1 -1
- package/dist/src/common/export.js +123 -100
- package/dist/src/common/export.js.map +1 -1
- package/dist/src/common/input.d.ts.map +1 -1
- package/dist/src/common/input.js +8 -1
- package/dist/src/common/input.js.map +1 -1
- package/dist/src/common/json-elements.d.ts +12 -9
- package/dist/src/common/json-elements.d.ts.map +1 -1
- package/dist/src/common/json-elements.js +160 -37
- package/dist/src/common/json-elements.js.map +1 -1
- package/dist/src/common/notes.d.ts +42 -0
- package/dist/src/common/notes.d.ts.map +1 -0
- package/dist/src/common/notes.js +72 -0
- package/dist/src/common/notes.js.map +1 -0
- package/dist/src/common/report.d.ts +18 -0
- package/dist/src/common/report.d.ts.map +1 -1
- package/dist/src/common/report.js +36 -1
- package/dist/src/common/report.js.map +1 -1
- package/dist/src/common/units.d.ts +24 -0
- package/dist/src/common/units.d.ts.map +1 -0
- package/dist/src/common/units.js +26 -0
- package/dist/src/common/units.js.map +1 -0
- package/dist/src/common/xml.d.ts +18 -0
- package/dist/src/common/xml.d.ts.map +1 -1
- package/dist/src/common/xml.js +42 -5
- package/dist/src/common/xml.js.map +1 -1
- package/dist/src/formats/cx/exporter.d.ts +6 -0
- package/dist/src/formats/cx/exporter.d.ts.map +1 -1
- package/dist/src/formats/cx/exporter.js +71 -8
- package/dist/src/formats/cx/exporter.js.map +1 -1
- package/dist/src/formats/cx/importer.d.ts +5 -2
- package/dist/src/formats/cx/importer.d.ts.map +1 -1
- package/dist/src/formats/cx/importer.js +102 -72
- package/dist/src/formats/cx/importer.js.map +1 -1
- package/dist/src/formats/cx/styles.d.ts +102 -0
- package/dist/src/formats/cx/styles.d.ts.map +1 -0
- package/dist/src/formats/cx/styles.js +225 -0
- package/dist/src/formats/cx/styles.js.map +1 -0
- package/dist/src/formats/cx2/exporter.d.ts +5 -0
- package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
- package/dist/src/formats/cx2/exporter.js +181 -71
- package/dist/src/formats/cx2/exporter.js.map +1 -1
- package/dist/src/formats/cx2/importer.d.ts +4 -1
- package/dist/src/formats/cx2/importer.d.ts.map +1 -1
- package/dist/src/formats/cx2/importer.js +19 -1
- package/dist/src/formats/cx2/importer.js.map +1 -1
- package/dist/src/formats/cx2/styles.d.ts +18 -0
- package/dist/src/formats/cx2/styles.d.ts.map +1 -0
- package/dist/src/formats/cx2/styles.js +24 -0
- package/dist/src/formats/cx2/styles.js.map +1 -0
- package/dist/src/formats/cys/constants.d.ts +2 -0
- package/dist/src/formats/cys/constants.d.ts.map +1 -1
- package/dist/src/formats/cys/constants.js +2 -0
- package/dist/src/formats/cys/constants.js.map +1 -1
- package/dist/src/formats/cys/exporter.d.ts +6 -2
- package/dist/src/formats/cys/exporter.d.ts.map +1 -1
- package/dist/src/formats/cys/exporter.js +215 -53
- package/dist/src/formats/cys/exporter.js.map +1 -1
- package/dist/src/formats/cys/importer.d.ts +2 -1
- package/dist/src/formats/cys/importer.d.ts.map +1 -1
- package/dist/src/formats/cys/importer.js +119 -6
- package/dist/src/formats/cys/importer.js.map +1 -1
- package/dist/src/formats/cys/session.d.ts +2 -0
- package/dist/src/formats/cys/session.d.ts.map +1 -1
- package/dist/src/formats/cys/session.js +5 -0
- package/dist/src/formats/cys/session.js.map +1 -1
- package/dist/src/formats/cys/styles.d.ts +38 -0
- package/dist/src/formats/cys/styles.d.ts.map +1 -0
- package/dist/src/formats/cys/styles.js +213 -0
- package/dist/src/formats/cys/styles.js.map +1 -0
- package/dist/src/formats/cys/tables.d.ts +8 -3
- package/dist/src/formats/cys/tables.d.ts.map +1 -1
- package/dist/src/formats/cys/tables.js +88 -34
- package/dist/src/formats/cys/tables.js.map +1 -1
- package/dist/src/formats/dot/exporter.d.ts +2 -0
- package/dist/src/formats/dot/exporter.d.ts.map +1 -1
- package/dist/src/formats/dot/exporter.js +195 -81
- package/dist/src/formats/dot/exporter.js.map +1 -1
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +100 -20
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/index.d.ts +1 -0
- package/dist/src/formats/dot/index.d.ts.map +1 -1
- package/dist/src/formats/dot/index.js +1 -0
- package/dist/src/formats/dot/index.js.map +1 -1
- package/dist/src/formats/dot/positions.d.ts +14 -0
- package/dist/src/formats/dot/positions.d.ts.map +1 -0
- package/dist/src/formats/dot/positions.js +70 -0
- package/dist/src/formats/dot/positions.js.map +1 -0
- package/dist/src/formats/dot/styles.d.ts +82 -0
- package/dist/src/formats/dot/styles.d.ts.map +1 -0
- package/dist/src/formats/dot/styles.js +1496 -0
- package/dist/src/formats/dot/styles.js.map +1 -0
- package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
- package/dist/src/formats/gexf/exporter.js +20 -5
- package/dist/src/formats/gexf/exporter.js.map +1 -1
- package/dist/src/formats/gexf/importer.d.ts +8 -1
- package/dist/src/formats/gexf/importer.d.ts.map +1 -1
- package/dist/src/formats/gexf/importer.js +251 -131
- package/dist/src/formats/gexf/importer.js.map +1 -1
- package/dist/src/formats/gexf/index.d.ts +8 -0
- package/dist/src/formats/gexf/index.d.ts.map +1 -1
- package/dist/src/formats/gexf/index.js +10 -2
- package/dist/src/formats/gexf/index.js.map +1 -1
- package/dist/src/formats/gexf/schema.d.ts +5 -0
- package/dist/src/formats/gexf/schema.d.ts.map +1 -1
- package/dist/src/formats/gexf/schema.js +5 -0
- package/dist/src/formats/gexf/schema.js.map +1 -1
- package/dist/src/formats/gexf/styles.d.ts +74 -0
- package/dist/src/formats/gexf/styles.d.ts.map +1 -0
- package/dist/src/formats/gexf/styles.js +604 -0
- package/dist/src/formats/gexf/styles.js.map +1 -0
- package/dist/src/formats/gml/exporter.d.ts +1 -5
- package/dist/src/formats/gml/exporter.d.ts.map +1 -1
- package/dist/src/formats/gml/exporter.js +19 -8
- package/dist/src/formats/gml/exporter.js.map +1 -1
- package/dist/src/formats/gml/importer.d.ts.map +1 -1
- package/dist/src/formats/gml/importer.js +4 -0
- package/dist/src/formats/gml/importer.js.map +1 -1
- package/dist/src/formats/gml/index.d.ts +2 -1
- package/dist/src/formats/gml/index.d.ts.map +1 -1
- package/dist/src/formats/gml/index.js +2 -1
- package/dist/src/formats/gml/index.js.map +1 -1
- package/dist/src/formats/gml/positions.d.ts +14 -0
- package/dist/src/formats/gml/positions.d.ts.map +1 -0
- package/dist/src/formats/gml/positions.js +46 -0
- package/dist/src/formats/gml/positions.js.map +1 -0
- package/dist/src/formats/gml/styles.d.ts +59 -0
- package/dist/src/formats/gml/styles.d.ts.map +1 -0
- package/dist/src/formats/gml/styles.js +1056 -0
- package/dist/src/formats/gml/styles.js.map +1 -0
- package/dist/src/formats/gml/syntax.d.ts +11 -0
- package/dist/src/formats/gml/syntax.d.ts.map +1 -1
- package/dist/src/formats/gml/syntax.js +151 -62
- package/dist/src/formats/gml/syntax.js.map +1 -1
- package/dist/src/formats/graphml/constants.d.ts +4 -0
- package/dist/src/formats/graphml/constants.d.ts.map +1 -1
- package/dist/src/formats/graphml/constants.js +5 -1
- package/dist/src/formats/graphml/constants.js.map +1 -1
- package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
- package/dist/src/formats/graphml/exporter.js +133 -65
- package/dist/src/formats/graphml/exporter.js.map +1 -1
- package/dist/src/formats/graphml/importer.d.ts +4 -1
- package/dist/src/formats/graphml/importer.d.ts.map +1 -1
- package/dist/src/formats/graphml/importer.js +100 -44
- package/dist/src/formats/graphml/importer.js.map +1 -1
- package/dist/src/formats/graphml/index.d.ts +1 -0
- package/dist/src/formats/graphml/index.d.ts.map +1 -1
- package/dist/src/formats/graphml/index.js +1 -0
- package/dist/src/formats/graphml/index.js.map +1 -1
- package/dist/src/formats/graphml/styles-plain.d.ts +19 -0
- package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-plain.js +187 -0
- package/dist/src/formats/graphml/styles-plain.js.map +1 -0
- package/dist/src/formats/graphml/styles-yed.d.ts +179 -0
- package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-yed.js +1086 -0
- package/dist/src/formats/graphml/styles-yed.js.map +1 -0
- package/dist/src/formats/graphml/styles-yfiles3.d.ts +19 -0
- package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -0
- package/dist/src/formats/graphml/styles-yfiles3.js +508 -0
- package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -0
- package/dist/src/formats/graphml/tree.d.ts.map +1 -1
- package/dist/src/formats/graphml/tree.js +34 -19
- package/dist/src/formats/graphml/tree.js.map +1 -1
- package/dist/src/formats/graphml/yfiles.d.ts +16 -2
- package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
- package/dist/src/formats/graphml/yfiles.js +83 -12
- package/dist/src/formats/graphml/yfiles.js.map +1 -1
- package/dist/src/formats/json/exporter.d.ts +5 -0
- package/dist/src/formats/json/exporter.d.ts.map +1 -1
- package/dist/src/formats/json/exporter.js +68 -25
- package/dist/src/formats/json/exporter.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +22 -3
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +439 -264
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/positions.d.ts +16 -0
- package/dist/src/formats/json/positions.d.ts.map +1 -0
- package/dist/src/formats/json/positions.js +44 -0
- package/dist/src/formats/json/positions.js.map +1 -0
- package/dist/src/formats/json/styles.d.ts +102 -0
- package/dist/src/formats/json/styles.d.ts.map +1 -0
- package/dist/src/formats/json/styles.js +1753 -0
- package/dist/src/formats/json/styles.js.map +1 -0
- package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
- package/dist/src/formats/neo4j/exporter.js +2 -1
- package/dist/src/formats/neo4j/exporter.js.map +1 -1
- package/dist/src/formats/pajek/exporter.d.ts +2 -0
- package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
- package/dist/src/formats/pajek/exporter.js +142 -76
- package/dist/src/formats/pajek/exporter.js.map +1 -1
- package/dist/src/formats/pajek/importer.d.ts +4 -0
- package/dist/src/formats/pajek/importer.d.ts.map +1 -1
- package/dist/src/formats/pajek/importer.js +60 -6
- package/dist/src/formats/pajek/importer.js.map +1 -1
- package/dist/src/formats/pajek/index.d.ts +2 -0
- package/dist/src/formats/pajek/index.d.ts.map +1 -1
- package/dist/src/formats/pajek/index.js +2 -0
- package/dist/src/formats/pajek/index.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts +50 -0
- package/dist/src/formats/pajek/styles.d.ts.map +1 -0
- package/dist/src/formats/pajek/styles.js +569 -0
- package/dist/src/formats/pajek/styles.js.map +1 -0
- package/dist/src/formats/pajek/syntax.d.ts +6 -0
- package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
- package/dist/src/formats/pajek/syntax.js +6 -0
- package/dist/src/formats/pajek/syntax.js.map +1 -1
- package/dist/src/formats/xgmml/columns.d.ts.map +1 -1
- package/dist/src/formats/xgmml/columns.js +34 -9
- package/dist/src/formats/xgmml/columns.js.map +1 -1
- package/dist/src/formats/xgmml/constants.d.ts +2 -0
- package/dist/src/formats/xgmml/constants.d.ts.map +1 -1
- package/dist/src/formats/xgmml/constants.js +3 -1
- package/dist/src/formats/xgmml/constants.js.map +1 -1
- package/dist/src/formats/xgmml/document.d.ts +12 -8
- package/dist/src/formats/xgmml/document.d.ts.map +1 -1
- package/dist/src/formats/xgmml/document.js +56 -13
- package/dist/src/formats/xgmml/document.js.map +1 -1
- package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
- package/dist/src/formats/xgmml/emit.js +12 -6
- package/dist/src/formats/xgmml/emit.js.map +1 -1
- package/dist/src/formats/xgmml/exporter.d.ts +3 -1
- package/dist/src/formats/xgmml/exporter.d.ts.map +1 -1
- package/dist/src/formats/xgmml/exporter.js +22 -9
- package/dist/src/formats/xgmml/exporter.js.map +1 -1
- package/dist/src/formats/xgmml/importer.d.ts +2 -1
- package/dist/src/formats/xgmml/importer.d.ts.map +1 -1
- package/dist/src/formats/xgmml/importer.js +31 -24
- package/dist/src/formats/xgmml/importer.js.map +1 -1
- package/dist/src/formats/xgmml/styles.d.ts +104 -0
- package/dist/src/formats/xgmml/styles.d.ts.map +1 -0
- package/dist/src/formats/xgmml/styles.js +310 -0
- package/dist/src/formats/xgmml/styles.js.map +1 -0
- package/dist/src/index.d.ts +9 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/positions/codes.d.ts +31 -0
- package/dist/src/positions/codes.d.ts.map +1 -0
- package/dist/src/positions/codes.js +26 -0
- package/dist/src/positions/codes.js.map +1 -0
- package/dist/src/positions/convert.d.ts +58 -0
- package/dist/src/positions/convert.d.ts.map +1 -0
- package/dist/src/positions/convert.js +107 -0
- package/dist/src/positions/convert.js.map +1 -0
- package/dist/src/positions/extract.d.ts +27 -0
- package/dist/src/positions/extract.d.ts.map +1 -0
- package/dist/src/positions/extract.js +526 -0
- package/dist/src/positions/extract.js.map +1 -0
- package/dist/src/positions/index.d.ts +10 -0
- package/dist/src/positions/index.d.ts.map +1 -0
- package/dist/src/positions/index.js +9 -0
- package/dist/src/positions/index.js.map +1 -0
- package/dist/src/positions/types.d.ts +208 -0
- package/dist/src/positions/types.d.ts.map +1 -0
- package/dist/src/positions/types.js +10 -0
- package/dist/src/positions/types.js.map +1 -0
- package/dist/src/registry.d.ts +30 -0
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +130 -9
- package/dist/src/registry.js.map +1 -1
- package/dist/src/styles/annotations.d.ts +132 -0
- package/dist/src/styles/annotations.d.ts.map +1 -0
- package/dist/src/styles/annotations.js +320 -0
- package/dist/src/styles/annotations.js.map +1 -0
- package/dist/src/styles/budget.d.ts +45 -0
- package/dist/src/styles/budget.d.ts.map +1 -0
- package/dist/src/styles/budget.js +58 -0
- package/dist/src/styles/budget.js.map +1 -0
- package/dist/src/styles/canon/bends.d.ts +32 -0
- package/dist/src/styles/canon/bends.d.ts.map +1 -0
- package/dist/src/styles/canon/bends.js +74 -0
- package/dist/src/styles/canon/bends.js.map +1 -0
- package/dist/src/styles/canon/color-tables.d.ts +22 -0
- package/dist/src/styles/canon/color-tables.d.ts.map +1 -0
- package/dist/src/styles/canon/color-tables.js +369 -0
- package/dist/src/styles/canon/color-tables.js.map +1 -0
- package/dist/src/styles/canon/color.d.ts +66 -0
- package/dist/src/styles/canon/color.d.ts.map +1 -0
- package/dist/src/styles/canon/color.js +548 -0
- package/dist/src/styles/canon/color.js.map +1 -0
- package/dist/src/styles/canon/enums.d.ts +25 -0
- package/dist/src/styles/canon/enums.d.ts.map +1 -0
- package/dist/src/styles/canon/enums.js +187 -0
- package/dist/src/styles/canon/enums.js.map +1 -0
- package/dist/src/styles/canon/graphviz.d.ts +48 -0
- package/dist/src/styles/canon/graphviz.d.ts.map +1 -0
- package/dist/src/styles/canon/graphviz.js +160 -0
- package/dist/src/styles/canon/graphviz.js.map +1 -0
- package/dist/src/styles/canon/index.d.ts +13 -0
- package/dist/src/styles/canon/index.d.ts.map +1 -0
- package/dist/src/styles/canon/index.js +13 -0
- package/dist/src/styles/canon/index.js.map +1 -0
- package/dist/src/styles/canon/number.d.ts +59 -0
- package/dist/src/styles/canon/number.d.ts.map +1 -0
- package/dist/src/styles/canon/number.js +142 -0
- package/dist/src/styles/canon/number.js.map +1 -0
- package/dist/src/styles/canon/site.d.ts +51 -0
- package/dist/src/styles/canon/site.d.ts.map +1 -0
- package/dist/src/styles/canon/site.js +63 -0
- package/dist/src/styles/canon/site.js.map +1 -0
- package/dist/src/styles/canon/text.d.ts +61 -0
- package/dist/src/styles/canon/text.d.ts.map +1 -0
- package/dist/src/styles/canon/text.js +199 -0
- package/dist/src/styles/canon/text.js.map +1 -0
- package/dist/src/styles/codes.d.ts +95 -0
- package/dist/src/styles/codes.d.ts.map +1 -0
- package/dist/src/styles/codes.js +97 -0
- package/dist/src/styles/codes.js.map +1 -0
- package/dist/src/styles/cyjs/cascade.d.ts +134 -0
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -0
- package/dist/src/styles/cyjs/cascade.js +2252 -0
- package/dist/src/styles/cyjs/cascade.js.map +1 -0
- package/dist/src/styles/cyjs/defaults-table.d.ts +25 -0
- package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -0
- package/dist/src/styles/cyjs/defaults-table.js +76 -0
- package/dist/src/styles/cyjs/defaults-table.js.map +1 -0
- package/dist/src/styles/cyjs/emit.d.ts +82 -0
- package/dist/src/styles/cyjs/emit.d.ts.map +1 -0
- package/dist/src/styles/cyjs/emit.js +791 -0
- package/dist/src/styles/cyjs/emit.js.map +1 -0
- package/dist/src/styles/cyjs/index.d.ts +13 -0
- package/dist/src/styles/cyjs/index.d.ts.map +1 -0
- package/dist/src/styles/cyjs/index.js +13 -0
- package/dist/src/styles/cyjs/index.js.map +1 -0
- package/dist/src/styles/cyjs/live.d.ts +46 -0
- package/dist/src/styles/cyjs/live.d.ts.map +1 -0
- package/dist/src/styles/cyjs/live.js +108 -0
- package/dist/src/styles/cyjs/live.js.map +1 -0
- package/dist/src/styles/cyjs/mappers.d.ts +147 -0
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -0
- package/dist/src/styles/cyjs/mappers.js +744 -0
- package/dist/src/styles/cyjs/mappers.js.map +1 -0
- package/dist/src/styles/cyjs/selector.d.ts +113 -0
- package/dist/src/styles/cyjs/selector.d.ts.map +1 -0
- package/dist/src/styles/cyjs/selector.js +611 -0
- package/dist/src/styles/cyjs/selector.js.map +1 -0
- package/dist/src/styles/cyjs/stylesheet-text.d.ts +37 -0
- package/dist/src/styles/cyjs/stylesheet-text.d.ts.map +1 -0
- package/dist/src/styles/cyjs/stylesheet-text.js +181 -0
- package/dist/src/styles/cyjs/stylesheet-text.js.map +1 -0
- package/dist/src/styles/cytoscape/emit.d.ts +125 -0
- package/dist/src/styles/cytoscape/emit.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/emit.js +1025 -0
- package/dist/src/styles/cytoscape/emit.js.map +1 -0
- package/dist/src/styles/cytoscape/index.d.ts +10 -0
- package/dist/src/styles/cytoscape/index.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/index.js +10 -0
- package/dist/src/styles/cytoscape/index.js.map +1 -0
- package/dist/src/styles/cytoscape/lexicon.d.ts +49 -0
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/lexicon.js +605 -0
- package/dist/src/styles/cytoscape/lexicon.js.map +1 -0
- package/dist/src/styles/cytoscape/mappings.d.ts +171 -0
- package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/mappings.js +460 -0
- package/dist/src/styles/cytoscape/mappings.js.map +1 -0
- package/dist/src/styles/cytoscape/resolve.d.ts +137 -0
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/resolve.js +381 -0
- package/dist/src/styles/cytoscape/resolve.js.map +1 -0
- package/dist/src/styles/cytoscape/translate.d.ts +50 -0
- package/dist/src/styles/cytoscape/translate.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/translate.js +156 -0
- package/dist/src/styles/cytoscape/translate.js.map +1 -0
- package/dist/src/styles/defaults.d.ts +90 -0
- package/dist/src/styles/defaults.d.ts.map +1 -0
- package/dist/src/styles/defaults.js +414 -0
- package/dist/src/styles/defaults.js.map +1 -0
- package/dist/src/styles/index.d.ts +15 -0
- package/dist/src/styles/index.d.ts.map +1 -0
- package/dist/src/styles/index.js +14 -0
- package/dist/src/styles/index.js.map +1 -0
- package/dist/src/styles/internal.d.ts +17 -0
- package/dist/src/styles/internal.d.ts.map +1 -0
- package/dist/src/styles/internal.js +16 -0
- package/dist/src/styles/internal.js.map +1 -0
- package/dist/src/styles/io/approximations.d.ts +24 -0
- package/dist/src/styles/io/approximations.d.ts.map +1 -0
- package/dist/src/styles/io/approximations.js +51 -0
- package/dist/src/styles/io/approximations.js.map +1 -0
- package/dist/src/styles/io/block.d.ts +166 -0
- package/dist/src/styles/io/block.d.ts.map +1 -0
- package/dist/src/styles/io/block.js +930 -0
- package/dist/src/styles/io/block.js.map +1 -0
- package/dist/src/styles/io/generic.d.ts +88 -0
- package/dist/src/styles/io/generic.d.ts.map +1 -0
- package/dist/src/styles/io/generic.js +516 -0
- package/dist/src/styles/io/generic.js.map +1 -0
- package/dist/src/styles/io/index.d.ts +8 -0
- package/dist/src/styles/io/index.d.ts.map +1 -0
- package/dist/src/styles/io/index.js +7 -0
- package/dist/src/styles/io/index.js.map +1 -0
- package/dist/src/styles/io/writer.d.ts +89 -0
- package/dist/src/styles/io/writer.d.ts.map +1 -0
- package/dist/src/styles/io/writer.js +626 -0
- package/dist/src/styles/io/writer.js.map +1 -0
- package/dist/src/styles/notes.d.ts +47 -0
- package/dist/src/styles/notes.d.ts.map +1 -0
- package/dist/src/styles/notes.js +140 -0
- package/dist/src/styles/notes.js.map +1 -0
- package/dist/src/styles/plan/classes.d.ts +31 -0
- package/dist/src/styles/plan/classes.d.ts.map +1 -0
- package/dist/src/styles/plan/classes.js +139 -0
- package/dist/src/styles/plan/classes.js.map +1 -0
- package/dist/src/styles/plan/continuous.d.ts +32 -0
- package/dist/src/styles/plan/continuous.d.ts.map +1 -0
- package/dist/src/styles/plan/continuous.js +165 -0
- package/dist/src/styles/plan/continuous.js.map +1 -0
- package/dist/src/styles/plan/discrete.d.ts +39 -0
- package/dist/src/styles/plan/discrete.d.ts.map +1 -0
- package/dist/src/styles/plan/discrete.js +127 -0
- package/dist/src/styles/plan/discrete.js.map +1 -0
- package/dist/src/styles/plan/families.d.ts +31 -0
- package/dist/src/styles/plan/families.d.ts.map +1 -0
- package/dist/src/styles/plan/families.js +95 -0
- package/dist/src/styles/plan/families.js.map +1 -0
- package/dist/src/styles/plan/features.d.ts +58 -0
- package/dist/src/styles/plan/features.d.ts.map +1 -0
- package/dist/src/styles/plan/features.js +185 -0
- package/dist/src/styles/plan/features.js.map +1 -0
- package/dist/src/styles/plan/index.d.ts +7 -0
- package/dist/src/styles/plan/index.d.ts.map +1 -0
- package/dist/src/styles/plan/index.js +7 -0
- package/dist/src/styles/plan/index.js.map +1 -0
- package/dist/src/styles/plan/plan.d.ts +71 -0
- package/dist/src/styles/plan/plan.d.ts.map +1 -0
- package/dist/src/styles/plan/plan.js +893 -0
- package/dist/src/styles/plan/plan.js.map +1 -0
- package/dist/src/styles/plan/resolve.d.ts +137 -0
- package/dist/src/styles/plan/resolve.d.ts.map +1 -0
- package/dist/src/styles/plan/resolve.js +587 -0
- package/dist/src/styles/plan/resolve.js.map +1 -0
- package/dist/src/styles/types.d.ts +702 -0
- package/dist/src/styles/types.d.ts.map +1 -0
- package/dist/src/styles/types.js +10 -0
- package/dist/src/styles/types.js.map +1 -0
- package/dist/src/styles/vocabulary.d.ts +41 -0
- package/dist/src/styles/vocabulary.d.ts.map +1 -0
- package/dist/src/styles/vocabulary.js +140 -0
- package/dist/src/styles/vocabulary.js.map +1 -0
- package/dist/src/types.d.ts +64 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/styles.d.ts +1 -0
- package/dist/styles.js +322 -0
- package/dist/styles.js.map +1 -0
- package/dist/xgmml.js +5 -4
- package/dist/xgmml.js.map +1 -1
- package/package.json +13 -2
- package/src/common/codes.ts +7 -0
- package/src/common/escape.ts +5 -2
- package/src/common/export.ts +179 -140
- package/src/common/input.ts +8 -4
- package/src/common/json-elements.ts +169 -38
- package/src/common/notes.ts +94 -0
- package/src/common/report.ts +41 -1
- package/src/common/units.ts +42 -0
- package/src/common/xml.ts +45 -5
- package/src/formats/cx/exporter.ts +95 -11
- package/src/formats/cx/importer.ts +126 -90
- package/src/formats/cx/styles.ts +304 -0
- package/src/formats/cx2/exporter.ts +234 -77
- package/src/formats/cx2/importer.ts +19 -1
- package/src/formats/cx2/styles.ts +29 -0
- package/src/formats/cys/constants.ts +3 -0
- package/src/formats/cys/exporter.ts +246 -60
- package/src/formats/cys/importer.ts +125 -9
- package/src/formats/cys/session.ts +6 -0
- package/src/formats/cys/styles.ts +254 -0
- package/src/formats/cys/tables.ts +117 -48
- package/src/formats/dot/exporter.ts +262 -126
- package/src/formats/dot/importer.ts +111 -20
- package/src/formats/dot/index.ts +1 -0
- package/src/formats/dot/positions.ts +77 -0
- package/src/formats/dot/styles.ts +1755 -0
- package/src/formats/gexf/exporter.ts +27 -11
- package/src/formats/gexf/importer.ts +308 -158
- package/src/formats/gexf/index.ts +10 -0
- package/src/formats/gexf/schema.ts +5 -0
- package/src/formats/gexf/styles.ts +719 -0
- package/src/formats/gml/exporter.ts +33 -14
- package/src/formats/gml/importer.ts +4 -0
- package/src/formats/gml/index.ts +2 -1
- package/src/formats/gml/positions.ts +52 -0
- package/src/formats/gml/styles.ts +1248 -0
- package/src/formats/gml/syntax.ts +173 -62
- package/src/formats/graphml/constants.ts +5 -0
- package/src/formats/graphml/exporter.ts +163 -71
- package/src/formats/graphml/importer.ts +119 -45
- package/src/formats/graphml/index.ts +1 -0
- package/src/formats/graphml/styles-plain.ts +236 -0
- package/src/formats/graphml/styles-yed.ts +1221 -0
- package/src/formats/graphml/styles-yfiles3.ts +573 -0
- package/src/formats/graphml/tree.ts +36 -20
- package/src/formats/graphml/yfiles.ts +89 -13
- package/src/formats/json/exporter.ts +76 -26
- package/src/formats/json/importer.ts +541 -322
- package/src/formats/json/positions.ts +50 -0
- package/src/formats/json/styles.ts +2082 -0
- package/src/formats/neo4j/exporter.ts +2 -1
- package/src/formats/pajek/exporter.ts +195 -106
- package/src/formats/pajek/importer.ts +78 -9
- package/src/formats/pajek/index.ts +2 -0
- package/src/formats/pajek/styles.ts +685 -0
- package/src/formats/pajek/syntax.ts +7 -0
- package/src/formats/xgmml/columns.ts +39 -9
- package/src/formats/xgmml/constants.ts +3 -0
- package/src/formats/xgmml/document.ts +54 -12
- package/src/formats/xgmml/emit.ts +11 -6
- package/src/formats/xgmml/exporter.ts +32 -13
- package/src/formats/xgmml/importer.ts +43 -29
- package/src/formats/xgmml/styles.ts +400 -0
- package/src/index.ts +16 -0
- package/src/positions/codes.ts +32 -0
- package/src/positions/convert.ts +123 -0
- package/src/positions/extract.ts +619 -0
- package/src/positions/index.ts +23 -0
- package/src/positions/types.ts +221 -0
- package/src/registry.ts +179 -8
- package/src/styles/annotations.ts +478 -0
- package/src/styles/budget.ts +60 -0
- package/src/styles/canon/bends.ts +84 -0
- package/src/styles/canon/color-tables.ts +386 -0
- package/src/styles/canon/color.ts +624 -0
- package/src/styles/canon/enums.ts +211 -0
- package/src/styles/canon/graphviz.ts +189 -0
- package/src/styles/canon/index.ts +13 -0
- package/src/styles/canon/number.ts +152 -0
- package/src/styles/canon/site.ts +87 -0
- package/src/styles/canon/text.ts +221 -0
- package/src/styles/codes.ts +104 -0
- package/src/styles/cyjs/cascade.ts +2670 -0
- package/src/styles/cyjs/defaults-table.ts +82 -0
- package/src/styles/cyjs/emit.ts +952 -0
- package/src/styles/cyjs/index.ts +37 -0
- package/src/styles/cyjs/live.ts +147 -0
- package/src/styles/cyjs/mappers.ts +879 -0
- package/src/styles/cyjs/selector.ts +778 -0
- package/src/styles/cyjs/stylesheet-text.ts +214 -0
- package/src/styles/cytoscape/emit.ts +1264 -0
- package/src/styles/cytoscape/index.ts +40 -0
- package/src/styles/cytoscape/lexicon.ts +658 -0
- package/src/styles/cytoscape/mappings.ts +603 -0
- package/src/styles/cytoscape/resolve.ts +521 -0
- package/src/styles/cytoscape/translate.ts +237 -0
- package/src/styles/defaults.ts +504 -0
- package/src/styles/index.ts +57 -0
- package/src/styles/internal.ts +17 -0
- package/src/styles/io/approximations.ts +47 -0
- package/src/styles/io/block.ts +1138 -0
- package/src/styles/io/generic.ts +687 -0
- package/src/styles/io/index.ts +18 -0
- package/src/styles/io/writer.ts +780 -0
- package/src/styles/notes.ts +165 -0
- package/src/styles/plan/classes.ts +166 -0
- package/src/styles/plan/continuous.ts +218 -0
- package/src/styles/plan/discrete.ts +165 -0
- package/src/styles/plan/families.ts +115 -0
- package/src/styles/plan/features.ts +234 -0
- package/src/styles/plan/index.ts +7 -0
- package/src/styles/plan/plan.ts +1129 -0
- package/src/styles/plan/resolve.ts +685 -0
- package/src/styles/types.ts +814 -0
- package/src/styles/vocabulary.ts +172 -0
- package/src/types.ts +76 -1
- package/dist/chunks/constants-fT3E8JYY.js.map +0 -1
- package/dist/chunks/escape-B62ZGM_a.js.map +0 -1
- package/dist/chunks/export-rKLeGQMo.js.map +0 -1
- package/dist/chunks/exporter-8hLNemFk.js.map +0 -1
- package/dist/chunks/exporter-BWwEuOPT.js.map +0 -1
- package/dist/chunks/exporter-RVtXVetw.js.map +0 -1
- package/dist/chunks/importer-BbNb7eNg.js.map +0 -1
- package/dist/chunks/importer-C98dpSH4.js.map +0 -1
- package/dist/chunks/importer-D794XUTe.js.map +0 -1
- package/dist/chunks/importer-Dz7tI8Sa.js.map +0 -1
- package/dist/chunks/importer-Ht7LNg8L.js.map +0 -1
- package/dist/chunks/importer-WrGRZb0N.js.map +0 -1
- package/dist/chunks/importer-xZ-3suY1.js.map +0 -1
- 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"}
|