@graphty/graph-io 0.3.48 → 0.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{approximations-C2riR4NT.js → approximations-Bzn3L-je.js} +2 -2
- package/dist/chunks/{approximations-C2riR4NT.js.map → approximations-Bzn3L-je.js.map} +1 -1
- package/dist/chunks/bends-BGXjv_U4.js +129 -0
- package/dist/chunks/bends-BGXjv_U4.js.map +1 -0
- package/dist/chunks/{block-Cu22ewuS.js → block-iptrlMBb.js} +906 -164
- package/dist/chunks/block-iptrlMBb.js.map +1 -0
- package/dist/chunks/choose-CczZJaX_.js +717 -0
- package/dist/chunks/choose-CczZJaX_.js.map +1 -0
- package/dist/chunks/{codes-CV_Bhcyi.js → codes-BE2xir2k.js} +6 -2
- package/dist/chunks/codes-BE2xir2k.js.map +1 -0
- package/dist/chunks/{constants-D0LqcsLJ.js → constants-CKkYLPtt.js} +2 -2
- package/dist/chunks/{constants-D0LqcsLJ.js.map → constants-CKkYLPtt.js.map} +1 -1
- package/dist/chunks/{context-cgmmOxZ2.js → context-C3p0RQxR.js} +5 -4
- package/dist/chunks/{context-cgmmOxZ2.js.map → context-C3p0RQxR.js.map} +1 -1
- package/dist/chunks/{convert-BcQ8_jMo.js → convert-Ct2zelbQ.js} +7 -2
- package/dist/chunks/convert-Ct2zelbQ.js.map +1 -0
- package/dist/chunks/{credentials-BiQsnMTb.js → credentials-DXHx7nwR.js} +16 -14
- package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
- package/dist/chunks/{cx-export-BEeF6ymo.js → cx-export-Bt6NoqTQ.js} +3 -3
- package/dist/chunks/{cx-export-BEeF6ymo.js.map → cx-export-Bt6NoqTQ.js.map} +1 -1
- package/dist/chunks/descriptor-B28U25x4.js +60 -0
- package/dist/chunks/descriptor-B28U25x4.js.map +1 -0
- package/dist/chunks/{descriptor-BJ-W0Jd-.js → descriptor-DLA5kINx.js} +7 -2
- package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
- package/dist/chunks/{emit-CD8xnY8s.js → emit-BwHQkZle.js} +1660 -133
- package/dist/chunks/emit-BwHQkZle.js.map +1 -0
- package/dist/chunks/{escape-DH2Egt-l.js → escape-CuCIzNMB.js} +8 -8
- package/dist/chunks/{escape-DH2Egt-l.js.map → escape-CuCIzNMB.js.map} +1 -1
- package/dist/chunks/{export-CZ7VRm4I.js → export-Cha4dRFz.js} +45 -387
- package/dist/chunks/export-Cha4dRFz.js.map +1 -0
- package/dist/chunks/{exporter-Dcw7Ldtq.js → exporter-BP6otMO6.js} +6 -6
- package/dist/chunks/{exporter-Dcw7Ldtq.js.map → exporter-BP6otMO6.js.map} +1 -1
- package/dist/chunks/{exporter-bxxjOrDZ.js → exporter-D2CETOMK.js} +1222 -156
- package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
- package/dist/chunks/{exporter-BIdaoIgh.js → exporter-D9yMtocA.js} +7 -7
- package/dist/chunks/{exporter-BIdaoIgh.js.map → exporter-D9yMtocA.js.map} +1 -1
- package/dist/chunks/{exporter-DtVU80Fa.js → exporter-_jrBTnos.js} +9 -8
- package/dist/chunks/{exporter-DtVU80Fa.js.map → exporter-_jrBTnos.js.map} +1 -1
- package/dist/chunks/{exporter-ChjL5fmP.js → exporter-nDfxIK5D.js} +9 -8
- package/dist/chunks/{exporter-ChjL5fmP.js.map → exporter-nDfxIK5D.js.map} +1 -1
- package/dist/chunks/format-BXiAb-1h.js +408 -0
- package/dist/chunks/format-BXiAb-1h.js.map +1 -0
- package/dist/chunks/{generic-CP6YD34u.js → generic-ymWCETAJ.js} +387 -31
- package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
- package/dist/chunks/{importer-e3huMZbm.js → importer-B92x1xY5.js} +14 -10
- package/dist/chunks/importer-B92x1xY5.js.map +1 -0
- package/dist/chunks/{importer-B87_fmVx.js → importer-CT9mJ1nn.js} +326 -84
- package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
- package/dist/chunks/{importer-CB_zV5_L.js → importer-DaLTjbds.js} +116 -1102
- package/dist/chunks/importer-DaLTjbds.js.map +1 -0
- package/dist/chunks/{importer-DPZDN40-.js → importer-GREKMdIf.js} +25 -17
- package/dist/chunks/importer-GREKMdIf.js.map +1 -0
- package/dist/chunks/{importer-Bji2MeWr.js → importer-PqaaKKnY.js} +13 -10
- package/dist/chunks/{importer-Bji2MeWr.js.map → importer-PqaaKKnY.js.map} +1 -1
- package/dist/chunks/{importer-Cyy6UseH.js → importer-Vn5QvmmJ.js} +66 -13
- package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
- package/dist/chunks/{importer-CVT-JyDE.js → importer-vRq4h3j5.js} +1469 -356
- package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
- package/dist/chunks/{input-Ccg9I22A.js → input-CAxt_aV-.js} +4 -4
- package/dist/chunks/{input-Ccg9I22A.js.map → input-CAxt_aV-.js.map} +1 -1
- package/dist/chunks/{json-elements-By172SVq.js → json-elements-Cq76WjnZ.js} +4 -4
- package/dist/chunks/{json-elements-By172SVq.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
- package/dist/chunks/{lexicon-u2SI5xcx.js → lexicon-Clf4QIyl.js} +282 -74
- package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
- package/dist/chunks/{ontology-export-BwgMyuF0.js → ontology-export-OMo91mb0.js} +4 -4
- package/dist/chunks/{ontology-export-BwgMyuF0.js.map → ontology-export-OMo91mb0.js.map} +1 -1
- package/dist/chunks/{records-Cgvxz-Vx.js → records-NJiYvekn.js} +2 -2
- package/dist/chunks/{records-Cgvxz-Vx.js.map → records-NJiYvekn.js.map} +1 -1
- package/dist/chunks/{report-CgdsL9Hb.js → report-CwMfYa9J.js} +23 -23
- package/dist/chunks/{report-CgdsL9Hb.js.map → report-CwMfYa9J.js.map} +1 -1
- package/dist/chunks/round-trip-Zm3_ivgq.js +79 -0
- package/dist/chunks/round-trip-Zm3_ivgq.js.map +1 -0
- package/dist/chunks/{sigv4-LkAzsLAu.js → sigv4-EokFic1V.js} +5 -5
- package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
- package/dist/chunks/{styles-CaABMoO1.js → styles-CCs214_3.js} +1237 -138
- package/dist/chunks/styles-CCs214_3.js.map +1 -0
- package/dist/chunks/styles-Cm62yyQX.js +2812 -0
- package/dist/chunks/styles-Cm62yyQX.js.map +1 -0
- package/dist/chunks/styles-DPQQIig4.js +1928 -0
- package/dist/chunks/styles-DPQQIig4.js.map +1 -0
- package/dist/chunks/{styles-yed-Cs1nmrjn.js → styles-yed-UMFdNqze.js} +503 -172
- package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
- package/dist/chunks/{text-BuKQVMz2.js → text-ystE2bYi.js} +2 -2
- package/dist/chunks/{text-BuKQVMz2.js.map → text-ystE2bYi.js.map} +1 -1
- package/dist/csv.js +7 -7
- package/dist/cx.js +2 -2
- package/dist/cx2.js +2 -2
- package/dist/cys.js +1 -1
- package/dist/dot.js +5 -4
- package/dist/dot.js.map +1 -1
- package/dist/gexf.js +42 -12
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +847 -193
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +232 -220
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +3 -3
- package/dist/json.js +3 -2
- package/dist/neo4j.js +6 -6
- package/dist/obo.js +1 -1
- package/dist/pajek.js +1 -1
- package/dist/positions.js +45 -3
- package/dist/positions.js.map +1 -1
- package/dist/sources-cypher.js +138 -23
- package/dist/sources-cypher.js.map +1 -1
- package/dist/sources-ndex.js +2 -2
- package/dist/sources-rest.js +16 -6
- package/dist/sources-rest.js.map +1 -1
- package/dist/sources-sparql.d.ts +1 -0
- package/dist/sources-sparql.js +405 -0
- package/dist/sources-sparql.js.map +1 -0
- package/dist/src/formats/cx/importer.d.ts.map +1 -1
- package/dist/src/formats/cx/importer.js +5 -1
- package/dist/src/formats/cx/importer.js.map +1 -1
- package/dist/src/formats/cx/styles.d.ts +24 -1
- package/dist/src/formats/cx/styles.d.ts.map +1 -1
- package/dist/src/formats/cx/styles.js +117 -11
- package/dist/src/formats/cx/styles.js.map +1 -1
- package/dist/src/formats/cx2/importer.d.ts.map +1 -1
- package/dist/src/formats/cx2/importer.js +1 -0
- package/dist/src/formats/cx2/importer.js.map +1 -1
- package/dist/src/formats/cx2/styles.d.ts.map +1 -1
- package/dist/src/formats/cx2/styles.js +3 -1
- package/dist/src/formats/cx2/styles.js.map +1 -1
- package/dist/src/formats/cys/importer.d.ts.map +1 -1
- package/dist/src/formats/cys/importer.js +1 -0
- package/dist/src/formats/cys/importer.js.map +1 -1
- package/dist/src/formats/cys/styles.d.ts +2 -0
- package/dist/src/formats/cys/styles.d.ts.map +1 -1
- package/dist/src/formats/cys/styles.js +15 -7
- package/dist/src/formats/cys/styles.js.map +1 -1
- package/dist/src/formats/dot/drawing.d.ts +98 -0
- package/dist/src/formats/dot/drawing.d.ts.map +1 -0
- package/dist/src/formats/dot/drawing.js +734 -0
- package/dist/src/formats/dot/drawing.js.map +1 -0
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +108 -31
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/label-places.d.ts +34 -0
- package/dist/src/formats/dot/label-places.d.ts.map +1 -0
- package/dist/src/formats/dot/label-places.js +179 -0
- package/dist/src/formats/dot/label-places.js.map +1 -0
- package/dist/src/formats/dot/record.d.ts +50 -0
- package/dist/src/formats/dot/record.d.ts.map +1 -0
- package/dist/src/formats/dot/record.js +275 -0
- package/dist/src/formats/dot/record.js.map +1 -0
- package/dist/src/formats/dot/styles.d.ts +62 -2
- package/dist/src/formats/dot/styles.d.ts.map +1 -1
- package/dist/src/formats/dot/styles.js +1454 -119
- package/dist/src/formats/dot/styles.js.map +1 -1
- package/dist/src/formats/gexf/dialog-metrics.d.ts +15 -0
- package/dist/src/formats/gexf/dialog-metrics.d.ts.map +1 -0
- package/dist/src/formats/gexf/dialog-metrics.js +59 -0
- package/dist/src/formats/gexf/dialog-metrics.js.map +1 -0
- package/dist/src/formats/gexf/importer.d.ts +7 -0
- package/dist/src/formats/gexf/importer.d.ts.map +1 -1
- package/dist/src/formats/gexf/importer.js +41 -5
- package/dist/src/formats/gexf/importer.js.map +1 -1
- package/dist/src/formats/gexf/preview.d.ts +77 -0
- package/dist/src/formats/gexf/preview.d.ts.map +1 -0
- package/dist/src/formats/gexf/preview.js +191 -0
- package/dist/src/formats/gexf/preview.js.map +1 -0
- package/dist/src/formats/gexf/schema.d.ts.map +1 -1
- package/dist/src/formats/gexf/schema.js +2 -1
- package/dist/src/formats/gexf/schema.js.map +1 -1
- package/dist/src/formats/gexf/styles.d.ts +58 -31
- package/dist/src/formats/gexf/styles.d.ts.map +1 -1
- package/dist/src/formats/gexf/styles.js +848 -225
- package/dist/src/formats/gexf/styles.js.map +1 -1
- package/dist/src/formats/gml/importer.d.ts +5 -2
- package/dist/src/formats/gml/importer.d.ts.map +1 -1
- package/dist/src/formats/gml/importer.js +258 -71
- package/dist/src/formats/gml/importer.js.map +1 -1
- package/dist/src/formats/gml/index.d.ts +1 -1
- package/dist/src/formats/gml/index.d.ts.map +1 -1
- package/dist/src/formats/gml/index.js +1 -1
- package/dist/src/formats/gml/index.js.map +1 -1
- package/dist/src/formats/gml/positions.d.ts +7 -0
- package/dist/src/formats/gml/positions.d.ts.map +1 -1
- package/dist/src/formats/gml/positions.js +29 -7
- package/dist/src/formats/gml/positions.js.map +1 -1
- package/dist/src/formats/gml/styles.d.ts.map +1 -1
- package/dist/src/formats/gml/styles.js +753 -101
- package/dist/src/formats/gml/styles.js.map +1 -1
- package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-plain.js +6 -10
- package/dist/src/formats/graphml/styles-plain.js.map +1 -1
- package/dist/src/formats/graphml/styles-yed.d.ts +21 -15
- package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yed.js +692 -161
- package/dist/src/formats/graphml/styles-yed.js.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.d.ts +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.js +429 -64
- package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
- package/dist/src/formats/graphml/yfiles.d.ts +3 -3
- package/dist/src/formats/graphml/yfiles.d.ts.map +1 -1
- package/dist/src/formats/graphml/yfiles.js +16 -6
- package/dist/src/formats/graphml/yfiles.js.map +1 -1
- package/dist/src/formats/json/dialect.d.ts +3 -2
- package/dist/src/formats/json/dialect.d.ts.map +1 -1
- package/dist/src/formats/json/dialect.js +39 -5
- package/dist/src/formats/json/dialect.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +13 -2
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +42 -6
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/index.d.ts +1 -1
- package/dist/src/formats/json/index.d.ts.map +1 -1
- package/dist/src/formats/json/index.js +1 -1
- package/dist/src/formats/json/index.js.map +1 -1
- package/dist/src/formats/json/positions.d.ts +5 -2
- package/dist/src/formats/json/positions.d.ts.map +1 -1
- package/dist/src/formats/json/positions.js +20 -4
- package/dist/src/formats/json/positions.js.map +1 -1
- package/dist/src/formats/json/styles.d.ts +12 -1
- package/dist/src/formats/json/styles.d.ts.map +1 -1
- package/dist/src/formats/json/styles.js +1755 -136
- package/dist/src/formats/json/styles.js.map +1 -1
- package/dist/src/formats/pajek/draw.d.ts +96 -0
- package/dist/src/formats/pajek/draw.d.ts.map +1 -0
- package/dist/src/formats/pajek/draw.js +372 -0
- package/dist/src/formats/pajek/draw.js.map +1 -0
- package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
- package/dist/src/formats/pajek/exporter.js +70 -51
- package/dist/src/formats/pajek/exporter.js.map +1 -1
- package/dist/src/formats/pajek/importer.d.ts +9 -0
- package/dist/src/formats/pajek/importer.d.ts.map +1 -1
- package/dist/src/formats/pajek/importer.js +233 -102
- package/dist/src/formats/pajek/importer.js.map +1 -1
- package/dist/src/formats/pajek/index.d.ts +1 -0
- package/dist/src/formats/pajek/index.d.ts.map +1 -1
- package/dist/src/formats/pajek/index.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts +15 -7
- package/dist/src/formats/pajek/styles.d.ts.map +1 -1
- package/dist/src/formats/pajek/styles.js +1278 -114
- package/dist/src/formats/pajek/styles.js.map +1 -1
- package/dist/src/formats/pajek/syntax.d.ts +10 -1
- package/dist/src/formats/pajek/syntax.d.ts.map +1 -1
- package/dist/src/formats/pajek/syntax.js +26 -2
- package/dist/src/formats/pajek/syntax.js.map +1 -1
- package/dist/src/formats/xgmml/emit.d.ts +1 -0
- package/dist/src/formats/xgmml/emit.d.ts.map +1 -1
- package/dist/src/formats/xgmml/emit.js +65 -5
- package/dist/src/formats/xgmml/emit.js.map +1 -1
- package/dist/src/formats/xgmml/styles.d.ts +23 -3
- package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
- package/dist/src/formats/xgmml/styles.js +277 -60
- package/dist/src/formats/xgmml/styles.js.map +1 -1
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/positions/convert.d.ts.map +1 -1
- package/dist/src/positions/convert.js +11 -1
- package/dist/src/positions/convert.js.map +1 -1
- package/dist/src/positions/extract.d.ts.map +1 -1
- package/dist/src/positions/extract.js +53 -1
- package/dist/src/positions/extract.js.map +1 -1
- package/dist/src/positions/index.d.ts +1 -1
- package/dist/src/positions/index.d.ts.map +1 -1
- package/dist/src/positions/types.d.ts +59 -0
- package/dist/src/positions/types.d.ts.map +1 -1
- package/dist/src/sources/builtins.d.ts +1 -1
- package/dist/src/sources/builtins.d.ts.map +1 -1
- package/dist/src/sources/builtins.js +8 -2
- package/dist/src/sources/builtins.js.map +1 -1
- package/dist/src/sources/context.d.ts.map +1 -1
- package/dist/src/sources/context.js +1 -0
- package/dist/src/sources/context.js.map +1 -1
- package/dist/src/sources/cypher/descriptor.d.ts.map +1 -1
- package/dist/src/sources/cypher/descriptor.js +5 -0
- package/dist/src/sources/cypher/descriptor.js.map +1 -1
- package/dist/src/sources/cypher/index.d.ts.map +1 -1
- package/dist/src/sources/cypher/index.js +124 -18
- package/dist/src/sources/cypher/index.js.map +1 -1
- package/dist/src/sources/cypher/params.d.ts +1 -1
- package/dist/src/sources/cypher/params.d.ts.map +1 -1
- package/dist/src/sources/cypher/query-builder.d.ts +17 -0
- package/dist/src/sources/cypher/query-builder.d.ts.map +1 -1
- package/dist/src/sources/cypher/query-builder.js +31 -0
- package/dist/src/sources/cypher/query-builder.js.map +1 -1
- package/dist/src/sources/ids.d.ts +5 -0
- package/dist/src/sources/ids.d.ts.map +1 -1
- package/dist/src/sources/ids.js +5 -0
- package/dist/src/sources/ids.js.map +1 -1
- package/dist/src/sources/params.d.ts +3 -0
- package/dist/src/sources/params.d.ts.map +1 -1
- package/dist/src/sources/rest/descriptor.d.ts.map +1 -1
- package/dist/src/sources/rest/descriptor.js +5 -0
- package/dist/src/sources/rest/descriptor.js.map +1 -1
- package/dist/src/sources/rest/source.d.ts.map +1 -1
- package/dist/src/sources/rest/source.js +15 -0
- package/dist/src/sources/rest/source.js.map +1 -1
- package/dist/src/sources/sigv4.d.ts +5 -3
- package/dist/src/sources/sigv4.d.ts.map +1 -1
- package/dist/src/sources/sigv4.js +6 -4
- package/dist/src/sources/sigv4.js.map +1 -1
- package/dist/src/sources/sparql/descriptor.d.ts +10 -0
- package/dist/src/sources/sparql/descriptor.d.ts.map +1 -0
- package/dist/src/sources/sparql/descriptor.js +64 -0
- package/dist/src/sources/sparql/descriptor.js.map +1 -0
- package/dist/src/sources/sparql/index.d.ts +28 -0
- package/dist/src/sources/sparql/index.d.ts.map +1 -0
- package/dist/src/sources/sparql/index.js +314 -0
- package/dist/src/sources/sparql/index.js.map +1 -0
- package/dist/src/sources/sparql/ntriples.d.ts +69 -0
- package/dist/src/sources/sparql/ntriples.d.ts.map +1 -0
- package/dist/src/sources/sparql/ntriples.js +180 -0
- package/dist/src/sources/sparql/ntriples.js.map +1 -0
- package/dist/src/sources/sparql/params.d.ts +27 -0
- package/dist/src/sources/sparql/params.d.ts.map +1 -0
- package/dist/src/sources/sparql/params.js +5 -0
- package/dist/src/sources/sparql/params.js.map +1 -0
- package/dist/src/sources/sparql/query.d.ts +72 -0
- package/dist/src/sources/sparql/query.d.ts.map +1 -0
- package/dist/src/sources/sparql/query.js +113 -0
- package/dist/src/sources/sparql/query.js.map +1 -0
- package/dist/src/sources/types.d.ts +31 -0
- package/dist/src/sources/types.d.ts.map +1 -1
- package/dist/src/styles/annotations.d.ts +61 -5
- package/dist/src/styles/annotations.d.ts.map +1 -1
- package/dist/src/styles/annotations.js +130 -22
- package/dist/src/styles/annotations.js.map +1 -1
- package/dist/src/styles/canon/bends.d.ts +46 -0
- package/dist/src/styles/canon/bends.d.ts.map +1 -1
- package/dist/src/styles/canon/bends.js +123 -0
- package/dist/src/styles/canon/bends.js.map +1 -1
- package/dist/src/styles/canon/color-tables.d.ts +6 -1
- package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
- package/dist/src/styles/canon/color-tables.js +10 -4
- package/dist/src/styles/canon/color-tables.js.map +1 -1
- package/dist/src/styles/canon/color.d.ts +3 -1
- package/dist/src/styles/canon/color.d.ts.map +1 -1
- package/dist/src/styles/canon/color.js +103 -3
- package/dist/src/styles/canon/color.js.map +1 -1
- package/dist/src/styles/canon/enums.d.ts +2 -2
- package/dist/src/styles/canon/enums.d.ts.map +1 -1
- package/dist/src/styles/canon/enums.js +81 -7
- package/dist/src/styles/canon/enums.js.map +1 -1
- package/dist/src/styles/canon/graphviz.d.ts +12 -3
- package/dist/src/styles/canon/graphviz.d.ts.map +1 -1
- package/dist/src/styles/canon/graphviz.js +57 -9
- package/dist/src/styles/canon/graphviz.js.map +1 -1
- package/dist/src/styles/canon/number.d.ts +8 -0
- package/dist/src/styles/canon/number.d.ts.map +1 -1
- package/dist/src/styles/canon/number.js +18 -0
- package/dist/src/styles/canon/number.js.map +1 -1
- package/dist/src/styles/canon/text.d.ts +29 -2
- package/dist/src/styles/canon/text.d.ts.map +1 -1
- package/dist/src/styles/canon/text.js +156 -16
- package/dist/src/styles/canon/text.js.map +1 -1
- package/dist/src/styles/codes.d.ts +2 -0
- package/dist/src/styles/codes.d.ts.map +1 -1
- package/dist/src/styles/codes.js +2 -0
- package/dist/src/styles/codes.js.map +1 -1
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
- package/dist/src/styles/cyjs/cascade.js +1015 -79
- package/dist/src/styles/cyjs/cascade.js.map +1 -1
- package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
- package/dist/src/styles/cyjs/defaults-table.js +3 -0
- package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
- package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
- package/dist/src/styles/cyjs/emit.js +202 -9
- package/dist/src/styles/cyjs/emit.js.map +1 -1
- package/dist/src/styles/cyjs/face.d.ts +20 -0
- package/dist/src/styles/cyjs/face.d.ts.map +1 -0
- package/dist/src/styles/cyjs/face.js +332 -0
- package/dist/src/styles/cyjs/face.js.map +1 -0
- package/dist/src/styles/cyjs/mappers.d.ts +44 -1
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
- package/dist/src/styles/cyjs/mappers.js +461 -26
- package/dist/src/styles/cyjs/mappers.js.map +1 -1
- package/dist/src/styles/cyjs/routes.d.ts +53 -0
- package/dist/src/styles/cyjs/routes.d.ts.map +1 -0
- package/dist/src/styles/cyjs/routes.js +360 -0
- package/dist/src/styles/cyjs/routes.js.map +1 -0
- package/dist/src/styles/cytoscape/charts.d.ts +23 -0
- package/dist/src/styles/cytoscape/charts.d.ts.map +1 -0
- package/dist/src/styles/cytoscape/charts.js +560 -0
- package/dist/src/styles/cytoscape/charts.js.map +1 -0
- package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/emit.js +156 -48
- package/dist/src/styles/cytoscape/emit.js.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.d.ts +91 -3
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.js +387 -77
- package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
- package/dist/src/styles/cytoscape/mappings.d.ts +30 -0
- package/dist/src/styles/cytoscape/mappings.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/mappings.js +92 -0
- package/dist/src/styles/cytoscape/mappings.js.map +1 -1
- package/dist/src/styles/cytoscape/resolve.d.ts +42 -2
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/resolve.js +623 -17
- package/dist/src/styles/cytoscape/resolve.js.map +1 -1
- package/dist/src/styles/defaults.d.ts +46 -26
- package/dist/src/styles/defaults.d.ts.map +1 -1
- package/dist/src/styles/defaults.js +308 -71
- package/dist/src/styles/defaults.js.map +1 -1
- package/dist/src/styles/index.d.ts +4 -3
- package/dist/src/styles/index.d.ts.map +1 -1
- package/dist/src/styles/index.js +3 -2
- package/dist/src/styles/index.js.map +1 -1
- package/dist/src/styles/internal.d.ts +1 -0
- package/dist/src/styles/internal.d.ts.map +1 -1
- package/dist/src/styles/internal.js +1 -0
- package/dist/src/styles/internal.js.map +1 -1
- package/dist/src/styles/io/generic.d.ts.map +1 -1
- package/dist/src/styles/io/generic.js +56 -16
- package/dist/src/styles/io/generic.js.map +1 -1
- package/dist/src/styles/io/round-trip.d.ts +56 -0
- package/dist/src/styles/io/round-trip.d.ts.map +1 -0
- package/dist/src/styles/io/round-trip.js +138 -0
- package/dist/src/styles/io/round-trip.js.map +1 -0
- package/dist/src/styles/io/writer.d.ts.map +1 -1
- package/dist/src/styles/io/writer.js +6 -1
- package/dist/src/styles/io/writer.js.map +1 -1
- package/dist/src/styles/notes.d.ts.map +1 -1
- package/dist/src/styles/notes.js +1 -0
- package/dist/src/styles/notes.js.map +1 -1
- package/dist/src/styles/plan/features.d.ts +1 -1
- package/dist/src/styles/plan/features.d.ts.map +1 -1
- package/dist/src/styles/plan/features.js +22 -2
- package/dist/src/styles/plan/features.js.map +1 -1
- package/dist/src/styles/plan/index.d.ts +1 -1
- package/dist/src/styles/plan/index.d.ts.map +1 -1
- package/dist/src/styles/plan/index.js +1 -1
- package/dist/src/styles/plan/index.js.map +1 -1
- package/dist/src/styles/plan/plan.d.ts.map +1 -1
- package/dist/src/styles/plan/plan.js +61 -4
- package/dist/src/styles/plan/plan.js.map +1 -1
- package/dist/src/styles/plan/resolve.d.ts +11 -0
- package/dist/src/styles/plan/resolve.d.ts.map +1 -1
- package/dist/src/styles/plan/resolve.js +40 -4
- package/dist/src/styles/plan/resolve.js.map +1 -1
- package/dist/src/styles/slots.d.ts +14 -0
- package/dist/src/styles/slots.d.ts.map +1 -0
- package/dist/src/styles/slots.js +20 -0
- package/dist/src/styles/slots.js.map +1 -0
- package/dist/src/styles/types.d.ts +622 -6
- package/dist/src/styles/types.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.d.ts +3 -2
- package/dist/src/styles/vocabulary.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.js +203 -0
- package/dist/src/styles/vocabulary.js.map +1 -1
- package/dist/styles.js +30 -239
- package/dist/styles.js.map +1 -1
- package/dist/xgmml.js +3 -3
- package/package.json +27 -7
- package/src/formats/cx/importer.ts +6 -1
- package/src/formats/cx/styles.ts +143 -9
- package/src/formats/cx2/importer.ts +1 -0
- package/src/formats/cx2/styles.ts +3 -1
- package/src/formats/cys/importer.ts +1 -0
- package/src/formats/cys/styles.ts +27 -5
- package/src/formats/dot/drawing.ts +799 -0
- package/src/formats/dot/importer.ts +120 -35
- package/src/formats/dot/label-places.ts +228 -0
- package/src/formats/dot/record.ts +336 -0
- package/src/formats/dot/styles.ts +1654 -153
- package/src/formats/gexf/dialog-metrics.ts +61 -0
- package/src/formats/gexf/importer.ts +50 -5
- package/src/formats/gexf/preview.ts +217 -0
- package/src/formats/gexf/schema.ts +2 -1
- package/src/formats/gexf/styles.ts +1099 -245
- package/src/formats/gml/importer.ts +291 -76
- package/src/formats/gml/index.ts +1 -1
- package/src/formats/gml/positions.ts +29 -7
- package/src/formats/gml/styles.ts +851 -109
- package/src/formats/graphml/styles-plain.ts +6 -15
- package/src/formats/graphml/styles-yed.ts +762 -173
- package/src/formats/graphml/styles-yfiles3.ts +485 -63
- package/src/formats/graphml/yfiles.ts +19 -6
- package/src/formats/json/dialect.ts +41 -5
- package/src/formats/json/importer.ts +59 -7
- package/src/formats/json/index.ts +1 -0
- package/src/formats/json/positions.ts +22 -5
- package/src/formats/json/styles.ts +2041 -185
- package/src/formats/pajek/draw.ts +458 -0
- package/src/formats/pajek/exporter.ts +81 -49
- package/src/formats/pajek/importer.ts +278 -103
- package/src/formats/pajek/index.ts +1 -0
- package/src/formats/pajek/styles.ts +1381 -133
- package/src/formats/pajek/syntax.ts +27 -2
- package/src/formats/xgmml/emit.ts +73 -5
- package/src/formats/xgmml/styles.ts +330 -71
- package/src/index.ts +5 -1
- package/src/positions/convert.ts +12 -1
- package/src/positions/extract.ts +55 -1
- package/src/positions/index.ts +1 -0
- package/src/positions/types.ts +60 -0
- package/src/sources/builtins.ts +8 -1
- package/src/sources/context.ts +1 -0
- package/src/sources/cypher/descriptor.ts +7 -1
- package/src/sources/cypher/index.ts +148 -18
- package/src/sources/cypher/params.ts +1 -1
- package/src/sources/cypher/query-builder.ts +33 -0
- package/src/sources/ids.ts +6 -0
- package/src/sources/params.ts +3 -0
- package/src/sources/rest/descriptor.ts +5 -0
- package/src/sources/rest/source.ts +16 -0
- package/src/sources/sigv4.ts +6 -4
- package/src/sources/sparql/descriptor.ts +67 -0
- package/src/sources/sparql/index.ts +356 -0
- package/src/sources/sparql/ntriples.ts +219 -0
- package/src/sources/sparql/params.ts +28 -0
- package/src/sources/sparql/query.ts +162 -0
- package/src/sources/types.ts +35 -0
- package/src/styles/annotations.ts +201 -27
- package/src/styles/canon/bends.ts +137 -0
- package/src/styles/canon/color-tables.ts +10 -4
- package/src/styles/canon/color.ts +105 -3
- package/src/styles/canon/enums.ts +98 -8
- package/src/styles/canon/graphviz.ts +71 -10
- package/src/styles/canon/number.ts +19 -0
- package/src/styles/canon/text.ts +187 -16
- package/src/styles/codes.ts +2 -0
- package/src/styles/cyjs/cascade.ts +1160 -84
- package/src/styles/cyjs/defaults-table.ts +3 -0
- package/src/styles/cyjs/emit.ts +233 -13
- package/src/styles/cyjs/face.ts +372 -0
- package/src/styles/cyjs/mappers.ts +492 -27
- package/src/styles/cyjs/routes.ts +432 -0
- package/src/styles/cytoscape/charts.ts +684 -0
- package/src/styles/cytoscape/emit.ts +170 -48
- package/src/styles/cytoscape/lexicon.ts +431 -78
- package/src/styles/cytoscape/mappings.ts +108 -0
- package/src/styles/cytoscape/resolve.ts +741 -17
- package/src/styles/defaults.ts +417 -108
- package/src/styles/index.ts +5 -0
- package/src/styles/internal.ts +1 -0
- package/src/styles/io/generic.ts +79 -23
- package/src/styles/io/round-trip.ts +202 -0
- package/src/styles/io/writer.ts +6 -1
- package/src/styles/notes.ts +1 -0
- package/src/styles/plan/features.ts +23 -2
- package/src/styles/plan/index.ts +1 -1
- package/src/styles/plan/plan.ts +69 -5
- package/src/styles/plan/resolve.ts +47 -4
- package/src/styles/slots.ts +25 -0
- package/src/styles/types.ts +633 -5
- package/src/styles/vocabulary.ts +211 -2
- package/dist/chunks/block-Cu22ewuS.js.map +0 -1
- package/dist/chunks/choose-Cdx6Enl2.js +0 -57
- package/dist/chunks/choose-Cdx6Enl2.js.map +0 -1
- package/dist/chunks/codes-CV_Bhcyi.js.map +0 -1
- package/dist/chunks/convert-BcQ8_jMo.js.map +0 -1
- package/dist/chunks/credentials-BiQsnMTb.js.map +0 -1
- package/dist/chunks/descriptor-BJ-W0Jd-.js.map +0 -1
- package/dist/chunks/emit-CD8xnY8s.js.map +0 -1
- package/dist/chunks/export-CZ7VRm4I.js.map +0 -1
- package/dist/chunks/exporter-bxxjOrDZ.js.map +0 -1
- package/dist/chunks/format-BMS-1Nxb.js +0 -64
- package/dist/chunks/format-BMS-1Nxb.js.map +0 -1
- package/dist/chunks/generic-CP6YD34u.js.map +0 -1
- package/dist/chunks/importer-B87_fmVx.js.map +0 -1
- package/dist/chunks/importer-CB_zV5_L.js.map +0 -1
- package/dist/chunks/importer-CVT-JyDE.js.map +0 -1
- package/dist/chunks/importer-Cyy6UseH.js.map +0 -1
- package/dist/chunks/importer-DPZDN40-.js.map +0 -1
- package/dist/chunks/importer-e3huMZbm.js.map +0 -1
- package/dist/chunks/lexicon-u2SI5xcx.js.map +0 -1
- package/dist/chunks/sigv4-LkAzsLAu.js.map +0 -1
- package/dist/chunks/styles-CaABMoO1.js.map +0 -1
- package/dist/chunks/styles-P_gmFAOi.js +0 -770
- package/dist/chunks/styles-P_gmFAOi.js.map +0 -1
- package/dist/chunks/styles-yed-Cs1nmrjn.js.map +0 -1
- package/dist/chunks/writer-DvHTl36J.js +0 -449
- package/dist/chunks/writer-DvHTl36J.js.map +0 -1
|
@@ -23,7 +23,7 @@ import type {
|
|
|
23
23
|
StyleValue,
|
|
24
24
|
} from "../types.js";
|
|
25
25
|
import { STYLE_PROPERTIES } from "../vocabulary.js";
|
|
26
|
-
import {
|
|
26
|
+
import { JAVA_MONO, JAVA_SANS, JAVA_SERIF, javaFamily, vpStep } from "./lexicon.js";
|
|
27
27
|
import {
|
|
28
28
|
type CytoscapeContinuousPoint,
|
|
29
29
|
type CytoscapeMapping,
|
|
@@ -130,6 +130,31 @@ function enumOut(
|
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/** Where a node's border sits: Cytoscape's own place for it is inside the node's size, which it always draws. */
|
|
134
|
+
const BORDER_POSITION = "borderPosition";
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* What Cytoscape always draws and no file can change, per target: where a border sits, how far its zigzag and
|
|
138
|
+
* sine-wave strokes swing and how often they repeat (`ding-presentation-impl` `ZigzagStroke`, `SineWaveStroke`), and
|
|
139
|
+
* a label's box round its words alone, its lines one font tall. Nothing is written for them, and any other value is
|
|
140
|
+
* drawn as Cytoscape's.
|
|
141
|
+
*/
|
|
142
|
+
const FIXED: Readonly<Record<"node" | "edge", ReadonlyMap<string, string | number>>> = {
|
|
143
|
+
node: new Map<string, string | number>([
|
|
144
|
+
[BORDER_POSITION, "inside"],
|
|
145
|
+
["borderWaveAmplitude", 10],
|
|
146
|
+
["borderWavePeriod", 20],
|
|
147
|
+
["labelPadding", 0],
|
|
148
|
+
["labelLineHeight", 1],
|
|
149
|
+
]),
|
|
150
|
+
edge: new Map<string, string | number>([
|
|
151
|
+
["waveAmplitude", 10],
|
|
152
|
+
["wavePeriod", 20],
|
|
153
|
+
["labelPadding", 0],
|
|
154
|
+
["labelLineHeight", 1],
|
|
155
|
+
]),
|
|
156
|
+
};
|
|
157
|
+
|
|
133
158
|
const DESKTOP_SHAPES = {
|
|
134
159
|
ellipse: "ELLIPSE",
|
|
135
160
|
rectangle: "RECTANGLE",
|
|
@@ -171,7 +196,6 @@ const NEAR_LINES = { "dash-dot": "dashed", "long-dash": "dashed", zigzag: "solid
|
|
|
171
196
|
const DESKTOP_ARROWS = {
|
|
172
197
|
none: "NONE",
|
|
173
198
|
triangle: "DELTA",
|
|
174
|
-
vee: "ARROW",
|
|
175
199
|
tee: "T",
|
|
176
200
|
diamond: "DIAMOND",
|
|
177
201
|
circle: "CIRCLE",
|
|
@@ -180,6 +204,8 @@ const DESKTOP_ARROWS = {
|
|
|
180
204
|
"diamond-open": "OPEN_DIAMOND",
|
|
181
205
|
"circle-open": "OPEN_CIRCLE",
|
|
182
206
|
half: "HALF_TOP",
|
|
207
|
+
"other:cross-delta": "CROSS_DELTA",
|
|
208
|
+
"other:cross-open-delta": "CROSS_OPEN_DELTA",
|
|
183
209
|
};
|
|
184
210
|
const CX2_ARROWS = {
|
|
185
211
|
none: "none",
|
|
@@ -193,11 +219,16 @@ const CX2_ARROWS = {
|
|
|
193
219
|
"diamond-open": "open-diamond",
|
|
194
220
|
"circle-open": "open-circle",
|
|
195
221
|
half: "half-top",
|
|
222
|
+
// as Cytoscape 3.10.5 writes CROSS_DELTA and CROSS_OPEN_DELTA in CX2
|
|
223
|
+
"other:cross-delta": "triangle-cross",
|
|
224
|
+
"other:cross-open-delta": "cross_open_delta",
|
|
196
225
|
};
|
|
197
226
|
const NEAR_ARROWS = { crow: "vee", inverted: "triangle" };
|
|
227
|
+
// desktop has no open vee: its ARROW, the nearest, is drawn as a filled delta and read back as one
|
|
228
|
+
const DESKTOP_NEAR_ARROWS = { crow: "ARROW", inverted: "DELTA", vee: "ARROW" };
|
|
198
229
|
|
|
199
230
|
/** The Cytoscape arrow names no canonical arrow names, which Cytoscape's readers keep as `other:` values. */
|
|
200
|
-
const CY_OTHER_ARROWS: ReadonlySet<string> = new Set(["open-square", "open-half-circle", "half-circle"]);
|
|
231
|
+
const CY_OTHER_ARROWS: ReadonlySet<string> = new Set(["open-square", "open-half-circle", "half-circle", "half-bottom"]);
|
|
201
232
|
/** The Cytoscape line types no canonical line style names. */
|
|
202
233
|
const CY_OTHER_LINES: ReadonlySet<string> = new Set([
|
|
203
234
|
"backward-slash",
|
|
@@ -209,29 +240,43 @@ const CY_OTHER_LINES: ReadonlySet<string> = new Set([
|
|
|
209
240
|
/** The Cytoscape line types a border can take that no canonical border style names. */
|
|
210
241
|
const CY_OTHER_BORDERS: ReadonlySet<string> = new Set([...CY_OTHER_LINES, "zigzag", "sinewave"]);
|
|
211
242
|
|
|
212
|
-
/**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
"
|
|
223
|
-
"
|
|
243
|
+
/**
|
|
244
|
+
* A label position as the point of the node and the point of the label's box pinned to it, in desktop's anchor
|
|
245
|
+
* letters: beside the node, the label's opposite point; inside it, the same point.
|
|
246
|
+
*/
|
|
247
|
+
const POSITION_ANCHORS: Readonly<Record<string, readonly [node: string, label: string]>> = {
|
|
248
|
+
center: ["C", "C"],
|
|
249
|
+
top: ["N", "S"],
|
|
250
|
+
bottom: ["S", "N"],
|
|
251
|
+
left: ["W", "E"],
|
|
252
|
+
right: ["E", "W"],
|
|
253
|
+
"top-left": ["NW", "SE"],
|
|
254
|
+
"top-right": ["NE", "SW"],
|
|
255
|
+
"bottom-left": ["SW", "NE"],
|
|
256
|
+
"bottom-right": ["SE", "NW"],
|
|
257
|
+
"inside-top": ["N", "N"],
|
|
258
|
+
"inside-bottom": ["S", "S"],
|
|
259
|
+
"inside-left": ["W", "W"],
|
|
260
|
+
"inside-right": ["E", "E"],
|
|
261
|
+
"inside-top-left": ["NW", "NW"],
|
|
262
|
+
"inside-top-right": ["NE", "NE"],
|
|
263
|
+
"inside-bottom-left": ["SW", "SW"],
|
|
264
|
+
"inside-bottom-right": ["SE", "SE"],
|
|
224
265
|
};
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
266
|
+
const DESKTOP_POSITIONS: Readonly<Record<string, string>> = Object.fromEntries(
|
|
267
|
+
Object.entries(POSITION_ANCHORS).map(([k, [node, label]]) => [k, `${node},${label},c,0.00,0.00`]),
|
|
268
|
+
);
|
|
269
|
+
/** A desktop anchor letter as CX2's horizontal and vertical words. */
|
|
270
|
+
const CX2_WORDS: Readonly<Record<string, readonly [string, string]>> = {
|
|
271
|
+
C: ["center", "center"],
|
|
272
|
+
N: ["center", "top"],
|
|
273
|
+
S: ["center", "bottom"],
|
|
274
|
+
W: ["left", "center"],
|
|
275
|
+
E: ["right", "center"],
|
|
276
|
+
NW: ["left", "top"],
|
|
277
|
+
NE: ["right", "top"],
|
|
278
|
+
SW: ["left", "bottom"],
|
|
279
|
+
SE: ["right", "bottom"],
|
|
235
280
|
};
|
|
236
281
|
|
|
237
282
|
const desktopNumber: Write = String;
|
|
@@ -268,6 +313,7 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
268
313
|
["fill", { vp: "NODE_FILL_COLOR", write: colorOut }],
|
|
269
314
|
["fillOpacity", { vp: "NODE_TRANSPARENCY", write: opacity255 }],
|
|
270
315
|
["borderColor", { vp: "NODE_BORDER_PAINT", write: colorOut }],
|
|
316
|
+
["borderOpacity", { vp: "NODE_BORDER_TRANSPARENCY", write: opacity255 }],
|
|
271
317
|
["borderWidth", { vp: "NODE_BORDER_WIDTH", write: desktopNumber }],
|
|
272
318
|
[
|
|
273
319
|
"borderStyle",
|
|
@@ -282,7 +328,9 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
282
328
|
["label", { vp: "NODE_LABEL", write: textOut }],
|
|
283
329
|
["labelColor", { vp: "NODE_LABEL_COLOR", write: colorOut }],
|
|
284
330
|
["labelSize", { vp: "NODE_LABEL_FONT_SIZE", write: whole(desktopNumber) }],
|
|
331
|
+
["labelWrapWidth", { vp: "NODE_LABEL_WIDTH", write: desktopNumber }],
|
|
285
332
|
["labelPosition", { vp: "NODE_LABEL_POSITION", write: enumOut(DESKTOP_POSITIONS, {}, false) }],
|
|
333
|
+
["labelRotation", { vp: "NODE_LABEL_ROTATION", write: desktopNumber }],
|
|
286
334
|
["tooltip", { vp: "NODE_TOOLTIP", write: textOut }],
|
|
287
335
|
["visible", { vp: "NODE_VISIBLE", write: desktopBool }],
|
|
288
336
|
]),
|
|
@@ -301,14 +349,14 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
301
349
|
"sourceArrow",
|
|
302
350
|
{
|
|
303
351
|
vp: "EDGE_SOURCE_ARROW_SHAPE",
|
|
304
|
-
write: enumOut(DESKTOP_ARROWS,
|
|
352
|
+
write: enumOut(DESKTOP_ARROWS, DESKTOP_NEAR_ARROWS, true, CY_OTHER_ARROWS),
|
|
305
353
|
},
|
|
306
354
|
],
|
|
307
355
|
[
|
|
308
356
|
"targetArrow",
|
|
309
357
|
{
|
|
310
358
|
vp: "EDGE_TARGET_ARROW_SHAPE",
|
|
311
|
-
write: enumOut(DESKTOP_ARROWS,
|
|
359
|
+
write: enumOut(DESKTOP_ARROWS, DESKTOP_NEAR_ARROWS, true, CY_OTHER_ARROWS),
|
|
312
360
|
},
|
|
313
361
|
],
|
|
314
362
|
["sourceArrowColor", { vp: "EDGE_SOURCE_ARROW_UNSELECTED_PAINT", write: colorOut }],
|
|
@@ -326,6 +374,7 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
326
374
|
["fill", { vp: "NODE_BACKGROUND_COLOR", write: colorOut }],
|
|
327
375
|
["fillOpacity", { vp: "NODE_BACKGROUND_OPACITY", write: cx2Number }],
|
|
328
376
|
["borderColor", { vp: "NODE_BORDER_COLOR", write: colorOut }],
|
|
377
|
+
["borderOpacity", { vp: "NODE_BORDER_OPACITY", write: cx2Number }],
|
|
329
378
|
["borderWidth", { vp: "NODE_BORDER_WIDTH", write: cx2Number }],
|
|
330
379
|
[
|
|
331
380
|
"borderStyle",
|
|
@@ -346,7 +395,9 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
346
395
|
["label", { vp: "NODE_LABEL", write: textOut }],
|
|
347
396
|
["labelColor", { vp: "NODE_LABEL_COLOR", write: colorOut }],
|
|
348
397
|
["labelSize", { vp: "NODE_LABEL_FONT_SIZE", write: whole(cx2Number) }],
|
|
398
|
+
["labelWrapWidth", { vp: "NODE_LABEL_MAX_WIDTH", write: cx2Number }],
|
|
349
399
|
["labelPosition", { vp: "NODE_LABEL_POSITION", write: cx2Position }],
|
|
400
|
+
["labelRotation", { vp: "NODE_LABEL_ROTATION", write: cx2Number }],
|
|
350
401
|
["visible", { vp: "NODE_VISIBILITY", write: (v) => (v === true ? "element" : "none") }],
|
|
351
402
|
]),
|
|
352
403
|
edge: new Map<string, Writer>([
|
|
@@ -386,20 +437,17 @@ const WRITERS: Readonly<Record<CytoscapeDialect, Readonly<Record<StyleTarget, Re
|
|
|
386
437
|
};
|
|
387
438
|
|
|
388
439
|
/**
|
|
389
|
-
* CX2's label position object
|
|
440
|
+
* CX2's label position object.
|
|
390
441
|
* @param v - a canonical position
|
|
391
|
-
* @param approx - records the approximation
|
|
392
442
|
* @returns the object
|
|
393
443
|
*/
|
|
394
|
-
function cx2Position(v: StyleValue
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}
|
|
399
|
-
const [h, vert] = Object.hasOwn(CX2_ANCHORS, String(v)) ? CX2_ANCHORS[String(v)] : ["center", "center"];
|
|
444
|
+
function cx2Position(v: StyleValue): unknown {
|
|
445
|
+
const [node, label] = Object.hasOwn(POSITION_ANCHORS, String(v)) ? POSITION_ANCHORS[String(v)] : ["C", "C"];
|
|
446
|
+
const [h, vert] = CX2_WORDS[node];
|
|
447
|
+
const [ha, va] = CX2_WORDS[label];
|
|
400
448
|
return {
|
|
401
|
-
HORIZONTAL_ALIGN:
|
|
402
|
-
VERTICAL_ALIGN:
|
|
449
|
+
HORIZONTAL_ALIGN: ha,
|
|
450
|
+
VERTICAL_ALIGN: va,
|
|
403
451
|
HORIZONTAL_ANCHOR: h,
|
|
404
452
|
VERTICAL_ANCHOR: vert,
|
|
405
453
|
MARGIN_X: 0,
|
|
@@ -411,10 +459,12 @@ function cx2Position(v: StyleValue, approx: () => void): unknown {
|
|
|
411
459
|
/** The font properties, written together into one font face. */
|
|
412
460
|
const FONT_PROPS = ["labelFont", "labelWeight", "labelItalic"] as const;
|
|
413
461
|
const FONT_VP: Readonly<Record<StyleTarget, string>> = { node: "NODE_LABEL_FONT_FACE", edge: "EDGE_LABEL_FONT_FACE" };
|
|
462
|
+
// A CSS generic family is written as it is: Java draws a name it does not know in Dialog, and reads it back the same.
|
|
414
463
|
const CSS_TO_JAVA: Readonly<Record<string, string>> = {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
464
|
+
// the families the reader gives Java's logical fonts
|
|
465
|
+
[JAVA_SANS]: "SansSerif",
|
|
466
|
+
[JAVA_SERIF]: "Serif",
|
|
467
|
+
[JAVA_MONO]: "Monospaced",
|
|
418
468
|
};
|
|
419
469
|
|
|
420
470
|
/**
|
|
@@ -443,11 +493,16 @@ function fontOut(
|
|
|
443
493
|
return { FONT_FAMILY: fam, FONT_STYLE: it ? "italic" : "normal", FONT_WEIGHT: bold ? "bold" : "normal" };
|
|
444
494
|
}
|
|
445
495
|
const first = fam.includes(",") ? fam.split(",")[0].trim() : fam;
|
|
446
|
-
const
|
|
496
|
+
const asWritten = Object.hasOwn(CSS_TO_JAVA, first) ? CSS_TO_JAVA[first] : first;
|
|
497
|
+
const java = Object.hasOwn(CSS_TO_JAVA, fam) ? CSS_TO_JAVA[fam] : asWritten;
|
|
447
498
|
if (fontReadsAs(java) !== fam) {
|
|
448
499
|
approx();
|
|
449
500
|
}
|
|
450
|
-
|
|
501
|
+
// desktop reads the face from the name alone: bold and italic go on it as a Java face suffix, as desktop itself
|
|
502
|
+
// writes them (`SansSerif.bold,bold,12`); the style word after it is not read (`FontVisualProperty`)
|
|
503
|
+
const style = javaFontStyle(bold, it);
|
|
504
|
+
const face = style === "plain" ? java : `${java}.${style}`;
|
|
505
|
+
return `${face},${bold ? "bold" : "plain"},12`;
|
|
451
506
|
}
|
|
452
507
|
|
|
453
508
|
/**
|
|
@@ -470,8 +525,7 @@ function javaFontStyle(bold: boolean, italic: boolean): string {
|
|
|
470
525
|
* @returns the family
|
|
471
526
|
*/
|
|
472
527
|
function fontReadsAs(name: string): string {
|
|
473
|
-
|
|
474
|
-
return JAVA_FONTS.get(family.toLowerCase()) ?? family;
|
|
528
|
+
return javaFamily(name.replace(/\.(?:bold|italic|plain|bolditalic)$/i, ""));
|
|
475
529
|
}
|
|
476
530
|
|
|
477
531
|
/**
|
|
@@ -600,6 +654,25 @@ function targetEmit(
|
|
|
600
654
|
};
|
|
601
655
|
}
|
|
602
656
|
|
|
657
|
+
/** The properties Cytoscape draws one way only, with that way: what is drawn so needs nothing written. */
|
|
658
|
+
const DRAWN_SO: ReadonlyMap<string, StyleValue> = new Map<string, StyleValue>([
|
|
659
|
+
// it measures each word with a space after it when it wraps a label
|
|
660
|
+
["labelWrapTrailingSpace", true],
|
|
661
|
+
// it curves an edge through its bends' midpoints
|
|
662
|
+
["bendCurve", "midpoints"],
|
|
663
|
+
]);
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Whether every element's value of a property is how Cytoscape draws it anyway, so there is nothing to write.
|
|
667
|
+
* @param p - the property
|
|
668
|
+
* @param values - each element's value
|
|
669
|
+
* @returns true when nothing is lost by not writing it
|
|
670
|
+
*/
|
|
671
|
+
function drawnSo(p: string, values: readonly (StyleValue | null)[]): boolean {
|
|
672
|
+
const way = DRAWN_SO.get(p);
|
|
673
|
+
return way !== undefined && values.every((v) => v === null || v === way);
|
|
674
|
+
}
|
|
675
|
+
|
|
603
676
|
/**
|
|
604
677
|
* Emits one target.
|
|
605
678
|
* @param e - the target's emission
|
|
@@ -616,7 +689,15 @@ function emitTarget(
|
|
|
616
689
|
const { target, notes, truth } = e;
|
|
617
690
|
const writers = WRITERS[e.options.dialect][target];
|
|
618
691
|
for (const [p, values] of truth) {
|
|
619
|
-
|
|
692
|
+
const fixed = FIXED[target].get(p);
|
|
693
|
+
if (fixed !== undefined) {
|
|
694
|
+
// Cytoscape draws every border inside its node's size and every wave alike: nothing to write, and any
|
|
695
|
+
// other value is lost
|
|
696
|
+
const other = values.filter((v) => v !== null && v !== fixed).length;
|
|
697
|
+
if (other > 0) {
|
|
698
|
+
notes.add(STYLE_ISSUE.APPROXIMATED, target, p, { count: other });
|
|
699
|
+
}
|
|
700
|
+
} else if (!writers.has(p) && !(FONT_PROPS as readonly string[]).includes(p) && !drawnSo(p, values)) {
|
|
620
701
|
const count = values.filter((v) => v !== null).length;
|
|
621
702
|
notes.add(STYLE_ISSUE.NOT_WRITTEN, target, p, { count: Math.max(count, 1) });
|
|
622
703
|
}
|
|
@@ -856,7 +937,11 @@ function cytoscapeMapping(
|
|
|
856
937
|
return {
|
|
857
938
|
kind: "discrete",
|
|
858
939
|
column,
|
|
859
|
-
type:
|
|
940
|
+
type: keyType(
|
|
941
|
+
e,
|
|
942
|
+
m.by,
|
|
943
|
+
m.table.map(([k]) => k),
|
|
944
|
+
),
|
|
860
945
|
table: m.table.map(([k, v]) => [k, write(v)]),
|
|
861
946
|
};
|
|
862
947
|
}
|
|
@@ -936,7 +1021,16 @@ function passthroughMapping(
|
|
|
936
1021
|
}
|
|
937
1022
|
}
|
|
938
1023
|
const table = Array.from(seen);
|
|
939
|
-
return {
|
|
1024
|
+
return {
|
|
1025
|
+
kind: "discrete",
|
|
1026
|
+
column,
|
|
1027
|
+
type: keyType(
|
|
1028
|
+
e,
|
|
1029
|
+
by,
|
|
1030
|
+
table.map(([k]) => k),
|
|
1031
|
+
),
|
|
1032
|
+
table,
|
|
1033
|
+
};
|
|
940
1034
|
}
|
|
941
1035
|
|
|
942
1036
|
/**
|
|
@@ -971,6 +1065,28 @@ function isScalar(v: unknown): v is Scalar {
|
|
|
971
1065
|
return typeof v === "string" || typeof v === "boolean" || (typeof v === "number" && Number.isFinite(v));
|
|
972
1066
|
}
|
|
973
1067
|
|
|
1068
|
+
/**
|
|
1069
|
+
* The type a discrete mapping's keys are written with: `double` over a column the exporter writes as Double
|
|
1070
|
+
* (Cytoscape compares an Integer key with a Double cell and finds no match), else the keys' own type.
|
|
1071
|
+
* @param e - the target's emission
|
|
1072
|
+
* @param by - the column the mapping reads
|
|
1073
|
+
* @param keys - the keys
|
|
1074
|
+
* @returns the type
|
|
1075
|
+
*/
|
|
1076
|
+
function keyType(e: TargetEmit, by: ColumnRef, keys: readonly unknown[]): string {
|
|
1077
|
+
const type = typeOf(keys);
|
|
1078
|
+
if (type !== "integer") {
|
|
1079
|
+
return type;
|
|
1080
|
+
}
|
|
1081
|
+
if (!("data" in by)) {
|
|
1082
|
+
// a column the exporter adds holds numbers as Double
|
|
1083
|
+
return "double";
|
|
1084
|
+
}
|
|
1085
|
+
const meta = (e.target === "node" ? e.snapshot.nodes : e.snapshot.edges).get(by.data)?.meta;
|
|
1086
|
+
const floating = (meta?.dtype === "f32" || meta?.dtype === "f64") && meta.origin?.type !== "long";
|
|
1087
|
+
return floating ? "double" : type;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
974
1090
|
/**
|
|
975
1091
|
* Cytoscape's attribute type of a set of values: `integer`, `double`, `boolean` or `string`.
|
|
976
1092
|
* @param values - the values
|
|
@@ -1275,7 +1391,13 @@ function mappingXml(m: CytoscapeMapping): string[] {
|
|
|
1275
1391
|
* @returns the properties
|
|
1276
1392
|
*/
|
|
1277
1393
|
export function cytoscapeWritableProperties(target: StyleTarget, dialect: CytoscapeDialect): string[] {
|
|
1278
|
-
|
|
1394
|
+
// a label wrapped as Cytoscape wraps it needs nothing written: emitTarget notes any other value
|
|
1395
|
+
return [
|
|
1396
|
+
...WRITERS[dialect][target].keys(),
|
|
1397
|
+
...FONT_PROPS,
|
|
1398
|
+
...FIXED[target].keys(),
|
|
1399
|
+
...(target === "node" ? ["labelWrapTrailingSpace"] : ["bendCurve"]),
|
|
1400
|
+
];
|
|
1279
1401
|
}
|
|
1280
1402
|
|
|
1281
1403
|
/**
|