@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
|
@@ -17,6 +17,7 @@ export const CYJS_PROPERTY_DEFAULTS: ReadonlyMap<string, string> = new Map([
|
|
|
17
17
|
["background-opacity", "1"],
|
|
18
18
|
["opacity", "1"],
|
|
19
19
|
["border-color", "rgb(0,0,0)"],
|
|
20
|
+
["border-opacity", "1"],
|
|
20
21
|
["border-width", "0px"],
|
|
21
22
|
["border-style", "solid"],
|
|
22
23
|
["shape", "ellipse"],
|
|
@@ -32,6 +33,8 @@ export const CYJS_PROPERTY_DEFAULTS: ReadonlyMap<string, string> = new Map([
|
|
|
32
33
|
["display", "element"],
|
|
33
34
|
["text-valign", "top"],
|
|
34
35
|
["text-halign", "center"],
|
|
36
|
+
["text-wrap", "none"],
|
|
37
|
+
["text-max-width", "9999px"],
|
|
35
38
|
["line-color", "rgb(153,153,153)"],
|
|
36
39
|
["line-style", "solid"],
|
|
37
40
|
["target-arrow-shape", "none"],
|
package/src/styles/cyjs/emit.ts
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* defaults as Cytoscape.js's own; they are not written again.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
+
import { num6 } from "../canon/number.js";
|
|
20
21
|
import { STYLE_ISSUE } from "../codes.js";
|
|
21
22
|
import { StyleNotes } from "../notes.js";
|
|
22
23
|
import { matches, refSource, resolveRules } from "../plan/resolve.js";
|
|
@@ -33,7 +34,13 @@ import type {
|
|
|
33
34
|
} from "../types.js";
|
|
34
35
|
import { STYLE_PROPERTIES } from "../vocabulary.js";
|
|
35
36
|
import { evaluateCytoscapeJs } from "./cascade.js";
|
|
36
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
CYJS_EDGE_PROPERTIES,
|
|
39
|
+
CYJS_NODE_PROPERTIES,
|
|
40
|
+
type CyjsPropertySpec,
|
|
41
|
+
isFontFamily,
|
|
42
|
+
neutralPointsToCyjs,
|
|
43
|
+
} from "./mappers.js";
|
|
37
44
|
import { parseCyjsSelector } from "./selector.js";
|
|
38
45
|
|
|
39
46
|
/** One rule of a Cytoscape.js stylesheet. */
|
|
@@ -111,6 +118,7 @@ const SHAPES_TO_CYJS: ReadonlyMap<string, string> = new Map([
|
|
|
111
118
|
["parallelogram", "rhomboid"],
|
|
112
119
|
["star", "star"],
|
|
113
120
|
["vee", "vee"],
|
|
121
|
+
["polygon", "polygon"],
|
|
114
122
|
]);
|
|
115
123
|
const ARROWS_TO_CYJS: ReadonlyMap<string, string> = new Map([
|
|
116
124
|
["none", "none"],
|
|
@@ -121,6 +129,21 @@ const ARROWS_TO_CYJS: ReadonlyMap<string, string> = new Map([
|
|
|
121
129
|
["circle", "circle"],
|
|
122
130
|
["square", "square"],
|
|
123
131
|
]);
|
|
132
|
+
/** Cytoscape.js's `line-fill` for each neutral gradient kind. */
|
|
133
|
+
const LINE_FILLS: ReadonlyMap<string, string> = new Map([
|
|
134
|
+
["none", "solid"],
|
|
135
|
+
["linear", "linear-gradient"],
|
|
136
|
+
["radial", "radial-gradient"],
|
|
137
|
+
]);
|
|
138
|
+
|
|
139
|
+
/** The Cytoscape.js property each neutral arrow is written to. */
|
|
140
|
+
const ARROW_PROPERTY = {
|
|
141
|
+
sourceArrow: "source-arrow-shape",
|
|
142
|
+
targetArrow: "target-arrow-shape",
|
|
143
|
+
midSourceArrow: "mid-source-arrow-shape",
|
|
144
|
+
midTargetArrow: "mid-target-arrow-shape",
|
|
145
|
+
} as const;
|
|
146
|
+
|
|
124
147
|
/** The open arrows: their shape, drawn hollow. */
|
|
125
148
|
const ARROWS_OPEN: ReadonlyMap<string, string> = new Map([
|
|
126
149
|
["triangle-open", "triangle"],
|
|
@@ -145,6 +168,8 @@ function toCyjs(target: StyleTarget, property: string, value: StyleValue): Writt
|
|
|
145
168
|
switch (property) {
|
|
146
169
|
case "visible":
|
|
147
170
|
return exact({ display: value === false ? "none" : "element" });
|
|
171
|
+
case "shapePoints":
|
|
172
|
+
return pointsToCyjs(String(value));
|
|
148
173
|
case "labelItalic":
|
|
149
174
|
return exact({ "font-style": value === true ? "italic" : "normal" });
|
|
150
175
|
case "curved":
|
|
@@ -152,6 +177,24 @@ function toCyjs(target: StyleTarget, property: string, value: StyleValue): Writt
|
|
|
152
177
|
return exact({ "curve-style": value === true ? "unbundled-bezier" : "straight" });
|
|
153
178
|
case "labelPosition":
|
|
154
179
|
return labelPositionToCyjs(String(value));
|
|
180
|
+
case "fanSpacing":
|
|
181
|
+
case "labelWrapWidth":
|
|
182
|
+
return ifNumber(value, (v) => numberToCyjs(property, v));
|
|
183
|
+
case "gradientKind":
|
|
184
|
+
return gradientKindToCyjs(String(value));
|
|
185
|
+
case "gradientStops":
|
|
186
|
+
return exact({
|
|
187
|
+
"line-gradient-stop-positions": String(value)
|
|
188
|
+
.trim()
|
|
189
|
+
.split(/\s+/)
|
|
190
|
+
.map((s) => `${num6(Number(s) * 100)}%`)
|
|
191
|
+
.join(" "),
|
|
192
|
+
});
|
|
193
|
+
case "outerBorderOffset":
|
|
194
|
+
// drawn half its value out (see the reader)
|
|
195
|
+
return ifNumber(value, (v) => exact({ "outline-offset": num6(v * 2) }));
|
|
196
|
+
case "outerBorderStyle":
|
|
197
|
+
return outerBorderStyleToCyjs(String(value));
|
|
155
198
|
case "shape":
|
|
156
199
|
return enumToCyjs("shape", String(value), SHAPES_TO_CYJS, specs);
|
|
157
200
|
case "borderStyle":
|
|
@@ -160,18 +203,84 @@ function toCyjs(target: StyleTarget, property: string, value: StyleValue): Writt
|
|
|
160
203
|
return lineStyleToCyjs(String(value));
|
|
161
204
|
case "sourceArrow":
|
|
162
205
|
case "targetArrow":
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
specs,
|
|
167
|
-
);
|
|
206
|
+
case "midSourceArrow":
|
|
207
|
+
case "midTargetArrow":
|
|
208
|
+
return arrowToCyjs(ARROW_PROPERTY[property], String(value), specs);
|
|
168
209
|
case "labelFont":
|
|
169
210
|
return isFontFamily(String(value)) ? exact({ "font-family": String(value) }) : null;
|
|
211
|
+
// a label's box draws only at an opacity above 0, which is 0 unset
|
|
212
|
+
case "labelBackground":
|
|
213
|
+
return exact({ "text-background-color": String(value), "text-background-opacity": 1 });
|
|
214
|
+
// the outline is drawn as a stroke twice text-outline-width (see the reader)
|
|
215
|
+
case "labelOutlineColor":
|
|
216
|
+
return exact({ "text-outline-color": String(value) });
|
|
217
|
+
case "labelOutlineWidth":
|
|
218
|
+
return ifNumber(value, (v) => exact({ "text-outline-width": num6(v / 2) }));
|
|
219
|
+
case "labelPadding":
|
|
220
|
+
return ifNumber(value, (v) => exact({ "text-background-padding": v }));
|
|
221
|
+
// the line round a label's box draws only at an opacity above 0, which is 0 unset
|
|
222
|
+
case "labelBorderColor":
|
|
223
|
+
return exact({ "text-border-color": String(value), "text-border-opacity": 1 });
|
|
224
|
+
case "labelBorderWidth":
|
|
225
|
+
return ifNumber(value, (v) => exact({ "text-border-width": v, "text-border-opacity": 1 }));
|
|
170
226
|
default:
|
|
171
227
|
return propertyToCyjs(property, value, specs);
|
|
172
228
|
}
|
|
173
229
|
}
|
|
174
230
|
|
|
231
|
+
/**
|
|
232
|
+
* A value written only when it is a number.
|
|
233
|
+
* @param value - the value
|
|
234
|
+
* @param write - writes the number
|
|
235
|
+
* @returns the written value, or null when it is not a number
|
|
236
|
+
*/
|
|
237
|
+
function ifNumber(value: StyleValue, write: (v: number) => Written | null): Written | null {
|
|
238
|
+
return typeof value === "number" ? write(value) : null;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* A gradient kind as Cytoscape.js's `line-fill`.
|
|
243
|
+
* @param kind - the neutral kind
|
|
244
|
+
* @returns the written value, or null when Cytoscape.js has no such fill
|
|
245
|
+
*/
|
|
246
|
+
function gradientKindToCyjs(kind: string): Written | null {
|
|
247
|
+
const fill = LINE_FILLS.get(kind);
|
|
248
|
+
return fill === undefined ? null : exact({ "line-fill": fill });
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* An outline's style as Cytoscape.js's `outline-style`, read as a border style is.
|
|
253
|
+
* @param style - the neutral style
|
|
254
|
+
* @returns the written value, or null
|
|
255
|
+
*/
|
|
256
|
+
function outerBorderStyleToCyjs(style: string): Written | null {
|
|
257
|
+
const written = borderStyleToCyjs(style);
|
|
258
|
+
return written === null ? null : { ...written, props: { "outline-style": written.props["border-style"] } };
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* A polygon's corners as Cytoscape.js's `shape-polygon-points`.
|
|
263
|
+
* @param points - the neutral corners
|
|
264
|
+
* @returns the written value, or null when they are not pairs of numbers
|
|
265
|
+
*/
|
|
266
|
+
function pointsToCyjs(points: string): Written | null {
|
|
267
|
+
const written = neutralPointsToCyjs(points);
|
|
268
|
+
return written === null ? null : exact({ "shape-polygon-points": written });
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* A length property: the fan spacing (Cytoscape.js steps between neighbors, twice the distance from the middle line)
|
|
273
|
+
* or the label wrap width.
|
|
274
|
+
* @param property - `fanSpacing` or `labelWrapWidth`
|
|
275
|
+
* @param value - the length
|
|
276
|
+
* @returns the written value
|
|
277
|
+
*/
|
|
278
|
+
function numberToCyjs(property: "fanSpacing" | "labelWrapWidth", value: number): Written {
|
|
279
|
+
return property === "fanSpacing"
|
|
280
|
+
? exact({ "control-point-step-size": num6(value * 2) })
|
|
281
|
+
: exact({ "text-wrap": "wrap", "text-max-width": value });
|
|
282
|
+
}
|
|
283
|
+
|
|
175
284
|
/**
|
|
176
285
|
* Properties written exactly.
|
|
177
286
|
* @param props - the properties
|
|
@@ -196,13 +305,12 @@ function near(props: Record<string, string | number>): Written {
|
|
|
196
305
|
* @returns the written value
|
|
197
306
|
*/
|
|
198
307
|
function labelPositionToCyjs(text: string): Written {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
return exact({ "text-valign": v, "text-halign": h });
|
|
308
|
+
const inside = text.startsWith("inside-");
|
|
309
|
+
const side = inside ? text.slice("inside-".length) : text;
|
|
310
|
+
const v = ["top", "bottom"].find((x) => side.startsWith(x)) ?? "center";
|
|
311
|
+
const h = ["left", "right"].find((x) => side.endsWith(x)) ?? "center";
|
|
312
|
+
const of = (a: string): string => (inside && a !== "center" ? `${a}-inside` : a);
|
|
313
|
+
return exact({ "text-valign": of(v), "text-halign": of(h) });
|
|
206
314
|
}
|
|
207
315
|
|
|
208
316
|
/**
|
|
@@ -905,11 +1013,123 @@ function exactness(e: Emit, rules: readonly StyleRule[]): CytoscapePerElement<st
|
|
|
905
1013
|
const want = resolveRules(rules, target, property, src);
|
|
906
1014
|
addBypasses(rows, target, property, want, drawn[target].values[property]);
|
|
907
1015
|
}
|
|
1016
|
+
const want = (p: string): readonly (StyleValue | null)[] => resolveRules(rules, target, p, src);
|
|
1017
|
+
if (target === "node") {
|
|
1018
|
+
labelSizedBypasses(rows, want, drawn.node.values);
|
|
1019
|
+
}
|
|
1020
|
+
labelOpacityBypasses(rows, want, drawn[target].values);
|
|
1021
|
+
// each part with the property it is drawn only with: a label's box, line or outline only where it has one
|
|
1022
|
+
const parts: (readonly [string, string, string, string | null])[] = [
|
|
1023
|
+
["labelBackgroundOpacity", "text-background-opacity", "opacity", "labelBackground"],
|
|
1024
|
+
["labelBorderOpacity", "text-border-opacity", "opacity", "labelBorderWidth"],
|
|
1025
|
+
["labelOutlineOpacity", "text-outline-opacity", "labelOpacity", "labelOutlineWidth"],
|
|
1026
|
+
];
|
|
1027
|
+
if (target === "node") {
|
|
1028
|
+
parts.push(
|
|
1029
|
+
["borderOpacity", "border-opacity", "opacity", null],
|
|
1030
|
+
["outerBorderOpacity", "outline-opacity", "opacity", null],
|
|
1031
|
+
);
|
|
1032
|
+
}
|
|
1033
|
+
for (const part of parts) {
|
|
1034
|
+
partOpacityBypasses(rows, want, drawn[target].values, part);
|
|
1035
|
+
}
|
|
908
1036
|
out[target] = rows;
|
|
909
1037
|
}
|
|
910
1038
|
return out;
|
|
911
1039
|
}
|
|
912
1040
|
|
|
1041
|
+
/**
|
|
1042
|
+
* A label's opacity as Cytoscape.js's `text-opacity`, which it draws times the element's `opacity`, where what is
|
|
1043
|
+
* drawn differs; an edge whose label is less faint than its line is written at the label's opacity with a fainter
|
|
1044
|
+
* `line-opacity`.
|
|
1045
|
+
* @param rows - the bypasses, changed in place
|
|
1046
|
+
* @param want - the styles' values of a property
|
|
1047
|
+
* @param got - what is drawn
|
|
1048
|
+
*/
|
|
1049
|
+
function labelOpacityBypasses(
|
|
1050
|
+
rows: (Record<string, string | number> | null)[],
|
|
1051
|
+
want: (property: string) => readonly (StyleValue | null)[],
|
|
1052
|
+
got: Readonly<Partial<Record<string, readonly (StyleValue | null)[]>>>,
|
|
1053
|
+
): void {
|
|
1054
|
+
const label = want("labelOpacity");
|
|
1055
|
+
const whole = want("opacity");
|
|
1056
|
+
const at = (v: StyleValue | null | undefined): number => (typeof v === "number" ? v : 1);
|
|
1057
|
+
for (let i = 0; i < rows.length; i++) {
|
|
1058
|
+
const [l, o] = [at(label[i]), at(whole[i])];
|
|
1059
|
+
// a bypass of the opacity written above changes the label's too
|
|
1060
|
+
const rewritten = rows[i]?.opacity !== undefined;
|
|
1061
|
+
if ((l === at(got.labelOpacity?.[i]) && !rewritten) || Number.isNaN(o) || o <= 0) {
|
|
1062
|
+
continue;
|
|
1063
|
+
}
|
|
1064
|
+
if (l === o && rewritten) {
|
|
1065
|
+
continue;
|
|
1066
|
+
}
|
|
1067
|
+
if (l <= o) {
|
|
1068
|
+
rows[i] = { ...rows[i], "text-opacity": num6(l / o) };
|
|
1069
|
+
} else if (l > 0) {
|
|
1070
|
+
// an edge's line fainter than its label: the element at the label's opacity, the line fainter still
|
|
1071
|
+
rows[i] = { ...rows[i], opacity: num6(l), "line-opacity": num6(o / l), "text-opacity": 1 };
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* The opacity of one part of an element (a node's border or outline, a label's box, line or outline) as the
|
|
1078
|
+
* Cytoscape.js property that carries it, which Cytoscape.js draws times the element's `opacity` (a label's outline
|
|
1079
|
+
* times the words' opacity), where what is drawn differs.
|
|
1080
|
+
* @param rows - the bypasses, changed in place
|
|
1081
|
+
* @param want - the styles' values of a property
|
|
1082
|
+
* @param got - what is drawn
|
|
1083
|
+
* @param part - the neutral property, the Cytoscape.js property, the neutral property it is drawn times, and the one
|
|
1084
|
+
* it is drawn only with (null: always)
|
|
1085
|
+
*/
|
|
1086
|
+
function partOpacityBypasses(
|
|
1087
|
+
rows: (Record<string, string | number> | null)[],
|
|
1088
|
+
want: (property: string) => readonly (StyleValue | null)[],
|
|
1089
|
+
got: Readonly<Partial<Record<string, readonly (StyleValue | null)[]>>>,
|
|
1090
|
+
part: readonly [string, string, string, string | null],
|
|
1091
|
+
): void {
|
|
1092
|
+
const [property, name, by, drawnBy] = part;
|
|
1093
|
+
const own = want(property);
|
|
1094
|
+
const whole = want(by);
|
|
1095
|
+
const shown = drawnBy === null ? null : want(drawnBy);
|
|
1096
|
+
const at = (v: StyleValue | null | undefined): number => (typeof v === "number" ? v : 1);
|
|
1097
|
+
for (let i = 0; i < rows.length; i++) {
|
|
1098
|
+
if (shown !== null && shown[i] === null) {
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
const [r, o] = [at(own[i]), at(whole[i])];
|
|
1102
|
+
const rewritten = rows[i]?.opacity !== undefined || rows[i]?.["text-opacity"] !== undefined;
|
|
1103
|
+
if ((r === at(got[property]?.[i]) && !rewritten) || Number.isNaN(o) || o <= 0 || r > o) {
|
|
1104
|
+
continue;
|
|
1105
|
+
}
|
|
1106
|
+
rows[i] = { ...rows[i], [name]: num6(r / o) };
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
/**
|
|
1111
|
+
* A node sized to its label (`labelFit` `bounds`, the label's side 0) as Cytoscape.js's `width: label` or
|
|
1112
|
+
* `height: label`, where what is drawn does not size it so already.
|
|
1113
|
+
* @param rows - the bypasses, changed in place
|
|
1114
|
+
* @param want - the styles' values of a property
|
|
1115
|
+
* @param got - what is drawn
|
|
1116
|
+
*/
|
|
1117
|
+
function labelSizedBypasses(
|
|
1118
|
+
rows: (Record<string, string | number> | null)[],
|
|
1119
|
+
want: (property: string) => readonly (StyleValue | null)[],
|
|
1120
|
+
got: Readonly<Partial<Record<string, readonly (StyleValue | null)[]>>>,
|
|
1121
|
+
): void {
|
|
1122
|
+
const fit = want("labelFit");
|
|
1123
|
+
for (const p of ["width", "height"]) {
|
|
1124
|
+
const size = want(p);
|
|
1125
|
+
for (let i = 0; i < rows.length; i++) {
|
|
1126
|
+
if (fit[i] === "bounds" && size[i] === 0 && !(got.labelFit?.[i] === "bounds" && got[p]?.[i] === 0)) {
|
|
1127
|
+
rows[i] = { ...rows[i], [p]: "label" };
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
|
|
913
1133
|
/**
|
|
914
1134
|
* A bypass of one property for every element whose drawn value differs from the styles' and that Cytoscape.js can
|
|
915
1135
|
* hold exactly.
|