@graphty/graph-io 0.3.47 → 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-wWjCRzKj.js → approximations-Bzn3L-je.js} +2 -2
- package/dist/chunks/{approximations-wWjCRzKj.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-DiGq58c3.js → block-iptrlMBb.js} +947 -134
- 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-BE2xir2k.js +157 -0
- package/dist/chunks/codes-BE2xir2k.js.map +1 -0
- package/dist/chunks/{constants-BKwqelYD.js → constants-CKkYLPtt.js} +2 -2
- package/dist/chunks/{constants-BKwqelYD.js.map → constants-CKkYLPtt.js.map} +1 -1
- package/dist/chunks/context-C3p0RQxR.js +664 -0
- package/dist/chunks/context-C3p0RQxR.js.map +1 -0
- 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-DXHx7nwR.js +349 -0
- package/dist/chunks/credentials-DXHx7nwR.js.map +1 -0
- package/dist/chunks/cx-export-Bt6NoqTQ.js +259 -0
- package/dist/chunks/cx-export-Bt6NoqTQ.js.map +1 -0
- package/dist/chunks/descriptor-B28U25x4.js +60 -0
- package/dist/chunks/descriptor-B28U25x4.js.map +1 -0
- package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
- package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
- package/dist/chunks/descriptor-DLA5kINx.js +142 -0
- package/dist/chunks/descriptor-DLA5kINx.js.map +1 -0
- package/dist/chunks/{emit-CwU8cUmG.js → emit-BwHQkZle.js} +1690 -103
- package/dist/chunks/emit-BwHQkZle.js.map +1 -0
- package/dist/chunks/{escape-CgzxiYPg.js → escape-CuCIzNMB.js} +12 -12
- package/dist/chunks/{escape-CgzxiYPg.js.map → escape-CuCIzNMB.js.map} +1 -1
- package/dist/chunks/{export-BvqAXCKh.js → export-Cha4dRFz.js} +48 -1780
- package/dist/chunks/export-Cha4dRFz.js.map +1 -0
- package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-BP6otMO6.js} +6 -4
- package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-BP6otMO6.js.map} +1 -1
- package/dist/chunks/{exporter-CrDWIyiq.js → exporter-D2CETOMK.js} +1222 -154
- package/dist/chunks/exporter-D2CETOMK.js.map +1 -0
- package/dist/chunks/{exporter-DndFlGSa.js → exporter-D9yMtocA.js} +7 -6
- package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-D9yMtocA.js.map} +1 -1
- package/dist/chunks/exporter-_jrBTnos.js +1009 -0
- package/dist/chunks/exporter-_jrBTnos.js.map +1 -0
- package/dist/chunks/{exporter-CJgfhF-l.js → exporter-nDfxIK5D.js} +9 -7
- package/dist/chunks/{exporter-CJgfhF-l.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-Dq1ntt9q.js → generic-ymWCETAJ.js} +387 -31
- package/dist/chunks/generic-ymWCETAJ.js.map +1 -0
- package/dist/chunks/{importer-CMmeMWlC.js → importer-B92x1xY5.js} +15 -263
- package/dist/chunks/importer-B92x1xY5.js.map +1 -0
- package/dist/chunks/{importer-DiZRmOQG.js → importer-CT9mJ1nn.js} +328 -90
- package/dist/chunks/importer-CT9mJ1nn.js.map +1 -0
- package/dist/chunks/{importer-COTK9Tsl.js → importer-DaLTjbds.js} +116 -1099
- package/dist/chunks/importer-DaLTjbds.js.map +1 -0
- package/dist/chunks/{importer-iFYPEKaJ.js → importer-GREKMdIf.js} +28 -16
- package/dist/chunks/importer-GREKMdIf.js.map +1 -0
- package/dist/chunks/{importer-BSvfrX_h.js → importer-PqaaKKnY.js} +23 -1016
- package/dist/chunks/importer-PqaaKKnY.js.map +1 -0
- package/dist/chunks/{importer-yh_aBCU6.js → importer-Vn5QvmmJ.js} +66 -12
- package/dist/chunks/importer-Vn5QvmmJ.js.map +1 -0
- package/dist/chunks/{importer-e6LGpqHB.js → importer-vRq4h3j5.js} +1470 -354
- package/dist/chunks/importer-vRq4h3j5.js.map +1 -0
- package/dist/chunks/input-CAxt_aV-.js +1397 -0
- package/dist/chunks/input-CAxt_aV-.js.map +1 -0
- package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-Cq76WjnZ.js} +4 -4
- package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-Cq76WjnZ.js.map} +1 -1
- package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-Clf4QIyl.js} +299 -77
- package/dist/chunks/lexicon-Clf4QIyl.js.map +1 -0
- package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-OMo91mb0.js} +4 -3
- package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-OMo91mb0.js.map} +1 -1
- package/dist/chunks/{records-CiaWZrFH.js → records-NJiYvekn.js} +2 -2
- package/dist/chunks/{records-CiaWZrFH.js.map → records-NJiYvekn.js.map} +1 -1
- package/dist/chunks/{format-BpQBx8MZ.js → report-CwMfYa9J.js} +70 -127
- package/dist/chunks/report-CwMfYa9J.js.map +1 -0
- 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-EokFic1V.js +247 -0
- package/dist/chunks/sigv4-EokFic1V.js.map +1 -0
- package/dist/chunks/{styles-BQnsga7p.js → styles-CCs214_3.js} +1300 -168
- 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-UMFdNqze.js +1213 -0
- package/dist/chunks/styles-yed-UMFdNqze.js.map +1 -0
- package/dist/chunks/{text-CzJNFOS9.js → text-ystE2bYi.js} +2 -2
- package/dist/chunks/{text-CzJNFOS9.js.map → text-ystE2bYi.js.map} +1 -1
- package/dist/csv.js +7 -5
- package/dist/csv.js.map +1 -1
- package/dist/cx.js +5 -4
- package/dist/cx.js.map +1 -1
- 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 -10
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +850 -193
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +1189 -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 -4
- package/dist/neo4j.js.map +1 -1
- 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.d.ts +1 -0
- package/dist/sources-cypher.js +1351 -0
- package/dist/sources-cypher.js.map +1 -0
- package/dist/sources-ndex.d.ts +1 -0
- package/dist/sources-ndex.js +278 -0
- package/dist/sources-ndex.js.map +1 -0
- package/dist/sources-rest.d.ts +1 -0
- package/dist/sources-rest.js +1377 -0
- package/dist/sources-rest.js.map +1 -0
- 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/common/report.d.ts +6 -3
- package/dist/src/common/report.d.ts.map +1 -1
- package/dist/src/common/report.js +15 -9
- package/dist/src/common/report.js.map +1 -1
- 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 +118 -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 +1457 -120
- 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 +60 -16
- package/dist/src/formats/gexf/styles.d.ts.map +1 -1
- package/dist/src/formats/gexf/styles.js +883 -131
- 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 +756 -103
- 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 +8 -12
- 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 +749 -148
- 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 +1279 -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 +278 -60
- package/dist/src/formats/xgmml/styles.js.map +1 -1
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -2
- 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/registry.d.ts +173 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +196 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/sources/builtins.d.ts +11 -0
- package/dist/src/sources/builtins.d.ts.map +1 -0
- package/dist/src/sources/builtins.js +53 -0
- package/dist/src/sources/builtins.js.map +1 -0
- package/dist/src/sources/codes.d.ts +230 -0
- package/dist/src/sources/codes.d.ts.map +1 -0
- package/dist/src/sources/codes.js +58 -0
- package/dist/src/sources/codes.js.map +1 -0
- package/dist/src/sources/context.d.ts +112 -0
- package/dist/src/sources/context.d.ts.map +1 -0
- package/dist/src/sources/context.js +740 -0
- package/dist/src/sources/context.js.map +1 -0
- package/dist/src/sources/credentials.d.ts +179 -0
- package/dist/src/sources/credentials.d.ts.map +1 -0
- package/dist/src/sources/credentials.js +301 -0
- package/dist/src/sources/credentials.js.map +1 -0
- package/dist/src/sources/cypher/descriptor.d.ts +21 -0
- package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
- package/dist/src/sources/cypher/descriptor.js +124 -0
- package/dist/src/sources/cypher/descriptor.js.map +1 -0
- package/dist/src/sources/cypher/flatten.d.ts +72 -0
- package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
- package/dist/src/sources/cypher/flatten.js +279 -0
- package/dist/src/sources/cypher/flatten.js.map +1 -0
- package/dist/src/sources/cypher/index.d.ts +33 -0
- package/dist/src/sources/cypher/index.d.ts.map +1 -0
- package/dist/src/sources/cypher/index.js +511 -0
- package/dist/src/sources/cypher/index.js.map +1 -0
- package/dist/src/sources/cypher/params.d.ts +40 -0
- package/dist/src/sources/cypher/params.d.ts.map +1 -0
- package/dist/src/sources/cypher/params.js +6 -0
- package/dist/src/sources/cypher/params.js.map +1 -0
- package/dist/src/sources/cypher/profiles.d.ts +44 -0
- package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
- package/dist/src/sources/cypher/profiles.js +61 -0
- package/dist/src/sources/cypher/profiles.js.map +1 -0
- package/dist/src/sources/cypher/query-builder.d.ts +123 -0
- package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
- package/dist/src/sources/cypher/query-builder.js +267 -0
- package/dist/src/sources/cypher/query-builder.js.map +1 -0
- package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
- package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/bolt.js +185 -0
- package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
- package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
- package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
- package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
- package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
- package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/query-api.js +80 -0
- package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
- package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
- package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
- package/dist/src/sources/cypher/transports/transport.js +77 -0
- package/dist/src/sources/cypher/transports/transport.js.map +1 -0
- package/dist/src/sources/cypher/types-map.d.ts +91 -0
- package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
- package/dist/src/sources/cypher/types-map.js +306 -0
- package/dist/src/sources/cypher/types-map.js.map +1 -0
- package/dist/src/sources/define.d.ts +47 -0
- package/dist/src/sources/define.d.ts.map +1 -0
- package/dist/src/sources/define.js +173 -0
- package/dist/src/sources/define.js.map +1 -0
- package/dist/src/sources/fail.d.ts +33 -0
- package/dist/src/sources/fail.d.ts.map +1 -0
- package/dist/src/sources/fail.js +49 -0
- package/dist/src/sources/fail.js.map +1 -0
- package/dist/src/sources/ids.d.ts +69 -0
- package/dist/src/sources/ids.d.ts.map +1 -0
- package/dist/src/sources/ids.js +69 -0
- package/dist/src/sources/ids.js.map +1 -0
- package/dist/src/sources/ndex/client.d.ts +31 -0
- package/dist/src/sources/ndex/client.d.ts.map +1 -0
- package/dist/src/sources/ndex/client.js +90 -0
- package/dist/src/sources/ndex/client.js.map +1 -0
- package/dist/src/sources/ndex/descriptor.d.ts +10 -0
- package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
- package/dist/src/sources/ndex/descriptor.js +55 -0
- package/dist/src/sources/ndex/descriptor.js.map +1 -0
- package/dist/src/sources/ndex/expand.d.ts +20 -0
- package/dist/src/sources/ndex/expand.d.ts.map +1 -0
- package/dist/src/sources/ndex/expand.js +87 -0
- package/dist/src/sources/ndex/expand.js.map +1 -0
- package/dist/src/sources/ndex/index.d.ts +25 -0
- package/dist/src/sources/ndex/index.d.ts.map +1 -0
- package/dist/src/sources/ndex/index.js +191 -0
- package/dist/src/sources/ndex/index.js.map +1 -0
- package/dist/src/sources/ndex/params.d.ts +17 -0
- package/dist/src/sources/ndex/params.d.ts.map +1 -0
- package/dist/src/sources/ndex/params.js +6 -0
- package/dist/src/sources/ndex/params.js.map +1 -0
- package/dist/src/sources/ndex/share-url.d.ts +40 -0
- package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
- package/dist/src/sources/ndex/share-url.js +64 -0
- package/dist/src/sources/ndex/share-url.js.map +1 -0
- package/dist/src/sources/params.d.ts +31 -0
- package/dist/src/sources/params.d.ts.map +1 -0
- package/dist/src/sources/params.js +6 -0
- package/dist/src/sources/params.js.map +1 -0
- package/dist/src/sources/registry.d.ts +118 -0
- package/dist/src/sources/registry.d.ts.map +1 -0
- package/dist/src/sources/registry.js +193 -0
- package/dist/src/sources/registry.js.map +1 -0
- package/dist/src/sources/rest/descriptor.d.ts +16 -0
- package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
- package/dist/src/sources/rest/descriptor.js +76 -0
- package/dist/src/sources/rest/descriptor.js.map +1 -0
- package/dist/src/sources/rest/index.d.ts +14 -0
- package/dist/src/sources/rest/index.d.ts.map +1 -0
- package/dist/src/sources/rest/index.js +13 -0
- package/dist/src/sources/rest/index.js.map +1 -0
- package/dist/src/sources/rest/mapping.d.ts +30 -0
- package/dist/src/sources/rest/mapping.d.ts.map +1 -0
- package/dist/src/sources/rest/mapping.js +362 -0
- package/dist/src/sources/rest/mapping.js.map +1 -0
- package/dist/src/sources/rest/openalex.d.ts +27 -0
- package/dist/src/sources/rest/openalex.d.ts.map +1 -0
- package/dist/src/sources/rest/openalex.js +269 -0
- package/dist/src/sources/rest/openalex.js.map +1 -0
- package/dist/src/sources/rest/paging.d.ts +53 -0
- package/dist/src/sources/rest/paging.d.ts.map +1 -0
- package/dist/src/sources/rest/paging.js +138 -0
- package/dist/src/sources/rest/paging.js.map +1 -0
- package/dist/src/sources/rest/params.d.ts +216 -0
- package/dist/src/sources/rest/params.d.ts.map +1 -0
- package/dist/src/sources/rest/params.js +7 -0
- package/dist/src/sources/rest/params.js.map +1 -0
- package/dist/src/sources/rest/records.d.ts +41 -0
- package/dist/src/sources/rest/records.d.ts.map +1 -0
- package/dist/src/sources/rest/records.js +240 -0
- package/dist/src/sources/rest/records.js.map +1 -0
- package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
- package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
- package/dist/src/sources/rest/samples/deps-dev.js +47 -0
- package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
- package/dist/src/sources/rest/samples/string.d.ts +9 -0
- package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
- package/dist/src/sources/rest/samples/string.js +42 -0
- package/dist/src/sources/rest/samples/string.js.map +1 -0
- package/dist/src/sources/rest/selectors.d.ts +41 -0
- package/dist/src/sources/rest/selectors.d.ts.map +1 -0
- package/dist/src/sources/rest/selectors.js +81 -0
- package/dist/src/sources/rest/selectors.js.map +1 -0
- package/dist/src/sources/rest/source.d.ts +67 -0
- package/dist/src/sources/rest/source.d.ts.map +1 -0
- package/dist/src/sources/rest/source.js +650 -0
- package/dist/src/sources/rest/source.js.map +1 -0
- package/dist/src/sources/rest/templates.d.ts +38 -0
- package/dist/src/sources/rest/templates.d.ts.map +1 -0
- package/dist/src/sources/rest/templates.js +125 -0
- package/dist/src/sources/rest/templates.js.map +1 -0
- package/dist/src/sources/run.d.ts +93 -0
- package/dist/src/sources/run.d.ts.map +1 -0
- package/dist/src/sources/run.js +673 -0
- package/dist/src/sources/run.js.map +1 -0
- package/dist/src/sources/sha256.d.ts +12 -0
- package/dist/src/sources/sha256.d.ts.map +1 -0
- package/dist/src/sources/sha256.js +95 -0
- package/dist/src/sources/sha256.js.map +1 -0
- package/dist/src/sources/sigv4.d.ts +26 -0
- package/dist/src/sources/sigv4.d.ts.map +1 -0
- package/dist/src/sources/sigv4.js +184 -0
- package/dist/src/sources/sigv4.js.map +1 -0
- 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/testing.d.ts +96 -0
- package/dist/src/sources/testing.d.ts.map +1 -0
- package/dist/src/sources/testing.js +138 -0
- package/dist/src/sources/testing.js.map +1 -0
- package/dist/src/sources/types.d.ts +696 -0
- package/dist/src/sources/types.d.ts.map +1 -0
- package/dist/src/sources/types.js +10 -0
- package/dist/src/sources/types.js.map +1 -0
- 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 +82 -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 +1037 -35
- 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 +5 -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 +216 -12
- 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 +48 -2
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
- package/dist/src/styles/cyjs/mappers.js +463 -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 +204 -44
- package/dist/src/styles/cytoscape/emit.js.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.d.ts +97 -3
- package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/lexicon.js +413 -79
- 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 +46 -3
- package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/resolve.js +632 -22
- package/dist/src/styles/cytoscape/resolve.js.map +1 -1
- package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
- package/dist/src/styles/cytoscape/translate.js +10 -10
- package/dist/src/styles/cytoscape/translate.js.map +1 -1
- package/dist/src/styles/defaults.d.ts +50 -0
- package/dist/src/styles/defaults.d.ts.map +1 -1
- package/dist/src/styles/defaults.js +315 -37
- 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/block.d.ts.map +1 -1
- package/dist/src/styles/io/block.js +9 -0
- package/dist/src/styles/io/block.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 +13 -4
- 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 +13 -1
- package/dist/src/styles/plan/resolve.d.ts.map +1 -1
- package/dist/src/styles/plan/resolve.js +53 -6
- 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 +638 -5
- 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 +218 -1
- package/dist/src/styles/vocabulary.js.map +1 -1
- package/dist/src/types.d.ts +19 -5
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/styles.js +29 -238
- package/dist/styles.js.map +1 -1
- package/dist/xgmml.js +3 -3
- package/docs/samples/people.json +6 -0
- package/package.json +53 -8
- package/src/common/report.ts +27 -7
- package/src/formats/cx/importer.ts +6 -1
- package/src/formats/cx/styles.ts +144 -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 +1657 -154
- 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 +1144 -142
- 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 +854 -111
- package/src/formats/graphml/styles-plain.ts +8 -23
- package/src/formats/graphml/styles-yed.ts +821 -159
- 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 +1382 -133
- package/src/formats/pajek/syntax.ts +27 -2
- package/src/formats/xgmml/emit.ts +73 -5
- package/src/formats/xgmml/styles.ts +331 -71
- package/src/index.ts +94 -0
- 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/registry.ts +326 -1
- package/src/sources/builtins.ts +63 -0
- package/src/sources/codes.ts +235 -0
- package/src/sources/context.ts +894 -0
- package/src/sources/credentials.ts +409 -0
- package/src/sources/cypher/descriptor.ts +131 -0
- package/src/sources/cypher/flatten.ts +323 -0
- package/src/sources/cypher/index.ts +628 -0
- package/src/sources/cypher/params.ts +41 -0
- package/src/sources/cypher/profiles.ts +78 -0
- package/src/sources/cypher/query-builder.ts +327 -0
- package/src/sources/cypher/transports/bolt.ts +228 -0
- package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
- package/src/sources/cypher/transports/neptune-https.ts +122 -0
- package/src/sources/cypher/transports/query-api.ts +100 -0
- package/src/sources/cypher/transports/transport.ts +139 -0
- package/src/sources/cypher/types-map.ts +418 -0
- package/src/sources/define.ts +195 -0
- package/src/sources/fail.ts +70 -0
- package/src/sources/ids.ts +80 -0
- package/src/sources/ndex/client.ts +102 -0
- package/src/sources/ndex/descriptor.ts +64 -0
- package/src/sources/ndex/expand.ts +100 -0
- package/src/sources/ndex/index.ts +235 -0
- package/src/sources/ndex/params.ts +17 -0
- package/src/sources/ndex/share-url.ts +84 -0
- package/src/sources/params.ts +32 -0
- package/src/sources/registry.ts +325 -0
- package/src/sources/rest/descriptor.ts +79 -0
- package/src/sources/rest/index.ts +22 -0
- package/src/sources/rest/mapping.ts +401 -0
- package/src/sources/rest/openalex.ts +288 -0
- package/src/sources/rest/paging.ts +180 -0
- package/src/sources/rest/params.ts +243 -0
- package/src/sources/rest/records.ts +289 -0
- package/src/sources/rest/samples/deps-dev.ts +49 -0
- package/src/sources/rest/samples/string.ts +44 -0
- package/src/sources/rest/selectors.ts +91 -0
- package/src/sources/rest/source.ts +776 -0
- package/src/sources/rest/templates.ts +151 -0
- package/src/sources/run.ts +793 -0
- package/src/sources/sha256.ts +99 -0
- package/src/sources/sigv4.ts +209 -0
- 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/testing.ts +210 -0
- package/src/sources/types.ts +776 -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 +99 -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 +1193 -38
- package/src/styles/cyjs/defaults-table.ts +5 -0
- package/src/styles/cyjs/emit.ts +247 -16
- package/src/styles/cyjs/face.ts +372 -0
- package/src/styles/cyjs/mappers.ts +498 -28
- package/src/styles/cyjs/routes.ts +432 -0
- package/src/styles/cytoscape/charts.ts +684 -0
- package/src/styles/cytoscape/emit.ts +220 -44
- package/src/styles/cytoscape/lexicon.ts +459 -80
- package/src/styles/cytoscape/mappings.ts +108 -0
- package/src/styles/cytoscape/resolve.ts +763 -23
- package/src/styles/cytoscape/translate.ts +11 -11
- package/src/styles/defaults.ts +436 -38
- package/src/styles/index.ts +5 -0
- package/src/styles/internal.ts +1 -0
- package/src/styles/io/block.ts +10 -0
- package/src/styles/io/generic.ts +79 -23
- package/src/styles/io/round-trip.ts +202 -0
- package/src/styles/io/writer.ts +14 -4
- 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 +61 -6
- package/src/styles/slots.ts +25 -0
- package/src/styles/types.ts +658 -4
- package/src/styles/vocabulary.ts +226 -3
- package/src/types.ts +19 -5
- package/dist/chunks/block-DiGq58c3.js.map +0 -1
- package/dist/chunks/choose--jM0yYCo.js +0 -57
- package/dist/chunks/choose--jM0yYCo.js.map +0 -1
- package/dist/chunks/convert-BcQ8_jMo.js.map +0 -1
- package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
- package/dist/chunks/export-BvqAXCKh.js.map +0 -1
- package/dist/chunks/exporter-CrDWIyiq.js.map +0 -1
- package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
- package/dist/chunks/generic-Dq1ntt9q.js.map +0 -1
- package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
- package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
- package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
- package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
- package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
- package/dist/chunks/importer-iFYPEKaJ.js.map +0 -1
- package/dist/chunks/importer-yh_aBCU6.js.map +0 -1
- package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
- package/dist/chunks/styles-BQnsga7p.js.map +0 -1
- package/dist/chunks/styles-D3fRphrO.js +0 -690
- package/dist/chunks/styles-D3fRphrO.js.map +0 -1
- package/dist/chunks/styles-yed-BF5x3_Y5.js +0 -842
- package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
- package/dist/chunks/writer-DMKvthQE.js +0 -448
- package/dist/chunks/writer-DMKvthQE.js.map +0 -1
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The routes Cytoscape.js 3.34 draws for edges that do not run straight between their nodes, as neutral `bends`:
|
|
3
|
+
* `segments` and `taxi` edges through their corner points, and `unbundled-bezier` edges and loops as the quadratic
|
|
4
|
+
* splines Cytoscape.js draws through their control points, sampled into points (cytoscape.js 3.34.3
|
|
5
|
+
* dist/cytoscape.cjs.js: `findSegmentsPoints` 23774, `findTaxiPoints` 23919, `findBezierPoints` 23878,
|
|
6
|
+
* `findLoopPoints` 23806, the pair geometry 24400-24470).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { type BendPoint, canonBends, canonNodeOffsets, flattenQuadSpline } from "../canon/bends.js";
|
|
10
|
+
|
|
11
|
+
/** One node as Cytoscape.js measures it for routing. */
|
|
12
|
+
export interface CyjsRouteNode {
|
|
13
|
+
/** Its center, y down. */
|
|
14
|
+
readonly center: BendPoint;
|
|
15
|
+
/** Its outer width and height (the border included), which routes are measured against. */
|
|
16
|
+
readonly size: BendPoint;
|
|
17
|
+
/** Its width and height as drawn, which a loop's points are written relative to. */
|
|
18
|
+
readonly box: BendPoint;
|
|
19
|
+
/** Whether its shape is an ellipse (any other shape is measured as its box). */
|
|
20
|
+
readonly ellipse: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** One edge's routing settings, as Cytoscape.js spells them (null where unset: Cytoscape.js's default). */
|
|
24
|
+
export interface CyjsRouteEdge {
|
|
25
|
+
readonly curveStyle: string;
|
|
26
|
+
readonly segmentDistances: string | null;
|
|
27
|
+
readonly segmentWeights: string | null;
|
|
28
|
+
readonly controlPointDistances: string | null;
|
|
29
|
+
readonly controlPointWeights: string | null;
|
|
30
|
+
readonly controlPointStepSize: number | null;
|
|
31
|
+
readonly taxiDirection: string | null;
|
|
32
|
+
readonly taxiTurn: string | null;
|
|
33
|
+
readonly taxiTurnMinDistance: number | null;
|
|
34
|
+
readonly edgeDistances: string | null;
|
|
35
|
+
readonly loopDirection: string | null;
|
|
36
|
+
readonly loopSweep: string | null;
|
|
37
|
+
/** A `round-segments` edge's corner radii (`segment-radii`). */
|
|
38
|
+
readonly segmentRadii?: string | null;
|
|
39
|
+
/** A `round-taxi` edge's corner radius (`taxi-radius`). */
|
|
40
|
+
readonly taxiRadius?: string | null;
|
|
41
|
+
/** Whether a radius is the arc's (`arc-radius`, the default) or how far back the arc starts (`influence-radius`). */
|
|
42
|
+
readonly radiusType?: string | null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** An edge's route: its neutral `bends`, or null when Cytoscape.js draws it some other way. */
|
|
46
|
+
type CyjsRoute = string | null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A list of lengths (`20px -20px`, numbers in pixels).
|
|
50
|
+
* @param text - the value
|
|
51
|
+
* @returns the numbers, none when one is not a number
|
|
52
|
+
*/
|
|
53
|
+
function lengths(text: string): number[] {
|
|
54
|
+
const out = text
|
|
55
|
+
.trim()
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.map((t) => Number.parseFloat(t));
|
|
58
|
+
return out.every((n) => Number.isFinite(n)) ? out : [];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* A Cytoscape.js angle in radians (`-45deg`, `0.5rad`, or radians with no unit).
|
|
63
|
+
* @param text - the value
|
|
64
|
+
* @returns the radians, or NaN
|
|
65
|
+
*/
|
|
66
|
+
function radians(text: string): number {
|
|
67
|
+
const t = text.trim();
|
|
68
|
+
const x = Number.parseFloat(t);
|
|
69
|
+
return t.endsWith("deg") ? (x * Math.PI) / 180 : x;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Where the ray from a node's center toward a point leaves the node: its ellipse, or its box.
|
|
74
|
+
* @param node - the node
|
|
75
|
+
* @param toward - the point
|
|
76
|
+
* @returns the point on the node's outline
|
|
77
|
+
*/
|
|
78
|
+
function outlinePoint(node: CyjsRouteNode, toward: BendPoint): BendPoint {
|
|
79
|
+
const [cx, cy] = node.center;
|
|
80
|
+
const dx = toward[0] - cx;
|
|
81
|
+
const dy = toward[1] - cy;
|
|
82
|
+
const [hw, hh] = [node.size[0] / 2, node.size[1] / 2];
|
|
83
|
+
if ((dx === 0 && dy === 0) || hw <= 0 || hh <= 0) {
|
|
84
|
+
return node.center;
|
|
85
|
+
}
|
|
86
|
+
// ponytail: every shape but the ellipse is measured as its box; the polygons' own outlines if a route needs them
|
|
87
|
+
const t = node.ellipse ? 1 / Math.hypot(dx / hw, dy / hh) : Math.min(axisReach(dx, hw), axisReach(dy, hh));
|
|
88
|
+
return [cx + dx * t, cy + dy * t];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* How many steps of a direction reach a box's side along one axis.
|
|
93
|
+
* @param d - the step along the axis
|
|
94
|
+
* @param half - the box's half size along it
|
|
95
|
+
* @returns the steps, Infinity for a step of 0
|
|
96
|
+
*/
|
|
97
|
+
function axisReach(d: number, half: number): number {
|
|
98
|
+
return d === 0 ? Infinity : half / Math.abs(d);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The line distances along a route are measured on: the two outline points (`edge-distances: intersection`, the
|
|
103
|
+
* default) or the two centers (`node-position`).
|
|
104
|
+
* @param edge - the edge's settings
|
|
105
|
+
* @param src - its source
|
|
106
|
+
* @param tgt - its target
|
|
107
|
+
* @returns the two points and the unit normal Cytoscape.js offsets by (to the right of the line, y down)
|
|
108
|
+
*/
|
|
109
|
+
function measureLine(
|
|
110
|
+
edge: CyjsRouteEdge,
|
|
111
|
+
src: CyjsRouteNode,
|
|
112
|
+
tgt: CyjsRouteNode,
|
|
113
|
+
): { a: BendPoint; b: BendPoint; normal: BendPoint } {
|
|
114
|
+
const a0 = outlinePoint(src, tgt.center);
|
|
115
|
+
const b0 = outlinePoint(tgt, src.center);
|
|
116
|
+
const dx = b0[0] - a0[0];
|
|
117
|
+
const dy = b0[1] - a0[1];
|
|
118
|
+
const l = Math.hypot(dx, dy) || 1;
|
|
119
|
+
const normal: BendPoint = [-dy / l, dx / l];
|
|
120
|
+
return edge.edgeDistances === "node-position" ? { a: src.center, b: tgt.center, normal } : { a: a0, b: b0, normal };
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Points at weights along a line, each offset across it by a distance.
|
|
125
|
+
* @param line - the line and its normal
|
|
126
|
+
* @param line.a - its start
|
|
127
|
+
* @param line.b - its end
|
|
128
|
+
* @param line.normal - the unit normal
|
|
129
|
+
* @param weights - the weights, 0 at the start
|
|
130
|
+
* @param distances - the distances
|
|
131
|
+
* @returns the points (as many as the shorter list)
|
|
132
|
+
*/
|
|
133
|
+
function offsetPoints(
|
|
134
|
+
line: { a: BendPoint; b: BendPoint; normal: BendPoint },
|
|
135
|
+
weights: readonly number[],
|
|
136
|
+
distances: readonly number[],
|
|
137
|
+
): BendPoint[] {
|
|
138
|
+
const n = Math.min(weights.length, distances.length);
|
|
139
|
+
return Array.from({ length: n }, (_, s): BendPoint => {
|
|
140
|
+
const w = weights[s];
|
|
141
|
+
const d = distances[s];
|
|
142
|
+
return [
|
|
143
|
+
line.a[0] * (1 - w) + line.b[0] * w + line.normal[0] * d,
|
|
144
|
+
line.a[1] * (1 - w) + line.b[1] * w + line.normal[1] * d,
|
|
145
|
+
];
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* A taxi edge's corner points (`findTaxiPoints`).
|
|
151
|
+
* @param edge - the edge's settings
|
|
152
|
+
* @param src - its source
|
|
153
|
+
* @param tgt - its target
|
|
154
|
+
* @returns the corners
|
|
155
|
+
*/
|
|
156
|
+
function taxiPoints(edge: CyjsRouteEdge, src: CyjsRouteNode, tgt: CyjsRouteNode): BendPoint[] {
|
|
157
|
+
const body = edge.edgeDistances !== "node-position";
|
|
158
|
+
const [x1, y1] = src.center;
|
|
159
|
+
const [x2, y2] = tgt.center;
|
|
160
|
+
const [srcW, srcH] = src.size;
|
|
161
|
+
const [tgtW, tgtH] = tgt.size;
|
|
162
|
+
const pdx = x2 - x1;
|
|
163
|
+
const pdy = y2 - y1;
|
|
164
|
+
const dx = towardZero(pdx, body ? (srcW + tgtW) / 2 : 0);
|
|
165
|
+
const dy = towardZero(pdy, body ? (srcH + tgtH) / 2 : 0);
|
|
166
|
+
const raw = edge.taxiDirection ?? "auto";
|
|
167
|
+
const vertical =
|
|
168
|
+
raw === "auto" ? Math.abs(dx) <= Math.abs(dy) : raw === "vertical" || raw === "upward" || raw === "downward";
|
|
169
|
+
const [along, pl] = vertical ? [dy, pdy] : [dx, pdx];
|
|
170
|
+
const { d, l, sgn, forced } = taxiTurn(edge, raw, along, pl);
|
|
171
|
+
const minD = edge.taxiTurnMinDistance ?? 10;
|
|
172
|
+
const tooClose = (v: number): boolean => Math.abs(v) < minD || Math.abs(v) >= Math.abs(l);
|
|
173
|
+
if ((tooClose(d) || tooClose(Math.abs(l) - Math.abs(d))) && !forced) {
|
|
174
|
+
return taxiFallback(vertical, { x1, y1, x2, y2, pl, pdx, pdy }, src.size, tgt.size);
|
|
175
|
+
}
|
|
176
|
+
const srcAlong = vertical ? srcH : srcW;
|
|
177
|
+
const out = body ? (srcAlong / 2) * sgn : 0;
|
|
178
|
+
if (vertical) {
|
|
179
|
+
const y = y1 + d + out;
|
|
180
|
+
return [
|
|
181
|
+
[x1, y],
|
|
182
|
+
[x2, y],
|
|
183
|
+
];
|
|
184
|
+
}
|
|
185
|
+
const x = x1 + d + out;
|
|
186
|
+
return [
|
|
187
|
+
[x, y1],
|
|
188
|
+
[x, y2],
|
|
189
|
+
];
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* A difference less a gap, toward 0 and no further.
|
|
194
|
+
* @param v - the difference
|
|
195
|
+
* @param gap - the gap
|
|
196
|
+
* @returns what is left
|
|
197
|
+
*/
|
|
198
|
+
function towardZero(v: number, gap: number): number {
|
|
199
|
+
return v > 0 ? Math.max(v - gap, 0) : Math.min(v + gap, 0);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Where a taxi edge turns (`findTaxiPoints`): `taxi-turn` along its direction, a percentage of the gap between the
|
|
204
|
+
* nodes or a distance from the source, a negative one from the target. A direction the nodes run against turns it
|
|
205
|
+
* round (forced) unless an explicit direction is given with a percentage or a negative turn.
|
|
206
|
+
* @param edge - the edge's settings
|
|
207
|
+
* @param raw - its `taxi-direction`
|
|
208
|
+
* @param along - the gap between the nodes along its direction
|
|
209
|
+
* @param pl - the difference between the centers along its direction
|
|
210
|
+
* @returns the turn's distance from the source, the gap and its sign as turned, and whether it was turned round
|
|
211
|
+
*/
|
|
212
|
+
function taxiTurn(
|
|
213
|
+
edge: CyjsRouteEdge,
|
|
214
|
+
raw: string,
|
|
215
|
+
along: number,
|
|
216
|
+
pl: number,
|
|
217
|
+
): { d: number; l: number; sgn: number; forced: boolean } {
|
|
218
|
+
const explicit = raw !== "auto" && raw !== "vertical" && raw !== "horizontal";
|
|
219
|
+
const turnText = (edge.taxiTurn ?? "50%").trim();
|
|
220
|
+
const percent = turnText.endsWith("%");
|
|
221
|
+
const turn = percent ? Number.parseFloat(turnText) / 100 : Number.parseFloat(turnText);
|
|
222
|
+
const forced = !(explicit && (percent || turn < 0)) && runsAgainst(raw, pl);
|
|
223
|
+
const sgn = forced ? -Math.sign(pl) : Math.sign(pl);
|
|
224
|
+
const l = forced ? sgn * Math.abs(along) : along;
|
|
225
|
+
if (percent) {
|
|
226
|
+
return { d: (turn < 0 ? 1 + turn : turn) * l, l, sgn, forced };
|
|
227
|
+
}
|
|
228
|
+
return { d: (turn < 0 ? l : 0) + turn * sgn, l, sgn, forced };
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Whether the nodes run against a taxi edge's explicit direction.
|
|
233
|
+
* @param raw - its `taxi-direction`
|
|
234
|
+
* @param pl - the difference between the centers along it
|
|
235
|
+
* @returns whether they do
|
|
236
|
+
*/
|
|
237
|
+
function runsAgainst(raw: string, pl: number): boolean {
|
|
238
|
+
return (
|
|
239
|
+
(raw === "downward" && pl < 0) ||
|
|
240
|
+
(raw === "upward" && pl > 0) ||
|
|
241
|
+
(raw === "leftward" && pl > 0) ||
|
|
242
|
+
(raw === "rightward" && pl < 0)
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* A taxi edge's corners when its turn would fall too close to a node: a Z or an L shape (`findTaxiPoints`).
|
|
248
|
+
* @param vertical - whether the taxi runs vertically
|
|
249
|
+
* @param p - the centers and their differences
|
|
250
|
+
* @param p.x1 - the source's x
|
|
251
|
+
* @param p.y1 - the source's y
|
|
252
|
+
* @param p.x2 - the target's x
|
|
253
|
+
* @param p.y2 - the target's y
|
|
254
|
+
* @param p.pl - the difference along the taxi's direction
|
|
255
|
+
* @param p.pdx - the difference in x
|
|
256
|
+
* @param p.pdy - the difference in y
|
|
257
|
+
* @param srcSize - the source's outer size
|
|
258
|
+
* @param tgtSize - the target's outer size
|
|
259
|
+
* @returns the corners
|
|
260
|
+
*/
|
|
261
|
+
function taxiFallback(
|
|
262
|
+
vertical: boolean,
|
|
263
|
+
p: { x1: number; y1: number; x2: number; y2: number; pl: number; pdx: number; pdy: number },
|
|
264
|
+
srcSize: BendPoint,
|
|
265
|
+
tgtSize: BendPoint,
|
|
266
|
+
): BendPoint[] {
|
|
267
|
+
const { x1, y1, x2, y2, pl, pdx, pdy } = p;
|
|
268
|
+
const midX = (x1 + x2) / 2;
|
|
269
|
+
const midY = (y1 + y2) / 2;
|
|
270
|
+
if (vertical) {
|
|
271
|
+
if (Math.abs(pl) <= srcSize[1] / 2) {
|
|
272
|
+
return [
|
|
273
|
+
[midX, y1],
|
|
274
|
+
[midX, y2],
|
|
275
|
+
];
|
|
276
|
+
}
|
|
277
|
+
if (Math.abs(pdx) <= tgtSize[0] / 2) {
|
|
278
|
+
return [
|
|
279
|
+
[x1, midY],
|
|
280
|
+
[x2, midY],
|
|
281
|
+
];
|
|
282
|
+
}
|
|
283
|
+
return [[x1, y2]];
|
|
284
|
+
}
|
|
285
|
+
if (Math.abs(pl) <= srcSize[0] / 2) {
|
|
286
|
+
return [
|
|
287
|
+
[x1, midY],
|
|
288
|
+
[x2, midY],
|
|
289
|
+
];
|
|
290
|
+
}
|
|
291
|
+
if (Math.abs(pdy) <= tgtSize[1] / 2) {
|
|
292
|
+
return [
|
|
293
|
+
[midX, y1],
|
|
294
|
+
[midX, y2],
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
return [[x2, y1]];
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* The points between an edge's two ends of the quadratic spline Cytoscape.js draws through control points: from the
|
|
302
|
+
* node's outline toward the first control point to the other node's outline toward the last.
|
|
303
|
+
* @param src - the source
|
|
304
|
+
* @param tgt - the target
|
|
305
|
+
* @param controls - the control points
|
|
306
|
+
* @returns the sampled points, the ends left out
|
|
307
|
+
*/
|
|
308
|
+
function splinePoints(src: CyjsRouteNode, tgt: CyjsRouteNode, controls: readonly BendPoint[]): BendPoint[] {
|
|
309
|
+
const start = outlinePoint(src, controls[0]);
|
|
310
|
+
const end = outlinePoint(tgt, controls.at(-1) ?? tgt.center);
|
|
311
|
+
return flattenQuadSpline([start, ...controls, end], 0).slice(1, -1);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* The route of one edge, as neutral `bends`.
|
|
316
|
+
* @param edge - the edge's settings
|
|
317
|
+
* @param src - its source
|
|
318
|
+
* @param tgt - its target
|
|
319
|
+
* @param loopIndex - for a loop, how many loops of the same direction and sweep on its node come before it
|
|
320
|
+
* @returns the bends, or null when Cytoscape.js draws the edge straight or as a bundle's bezier
|
|
321
|
+
*/
|
|
322
|
+
export function cyjsRoute(edge: CyjsRouteEdge, src: CyjsRouteNode, tgt: CyjsRouteNode, loopIndex: number): CyjsRoute {
|
|
323
|
+
const style = edge.curveStyle;
|
|
324
|
+
if (style === "haystack") {
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
if (src === tgt) {
|
|
328
|
+
return loopRoute(edge, src, loopIndex);
|
|
329
|
+
}
|
|
330
|
+
let points: BendPoint[] = [];
|
|
331
|
+
if (style.endsWith("segments")) {
|
|
332
|
+
const distances = lengths(edge.segmentDistances ?? "20");
|
|
333
|
+
const weights = lengths(edge.segmentWeights ?? "0.5");
|
|
334
|
+
points = offsetPoints(measureLine(edge, src, tgt), weights, distances);
|
|
335
|
+
} else if (style.endsWith("taxi")) {
|
|
336
|
+
points = taxiPoints(edge, src, tgt);
|
|
337
|
+
} else if (style === "unbundled-bezier") {
|
|
338
|
+
// with no control-point-distances, its one control point is the step size out (cytoscape.js 3.34.3
|
|
339
|
+
// `findBezierPoints`: "fall back on step size")
|
|
340
|
+
const distances = lengths(edge.controlPointDistances ?? String(edge.controlPointStepSize ?? 40));
|
|
341
|
+
const weights = lengths(edge.controlPointWeights ?? "0.5");
|
|
342
|
+
const controls = offsetPoints(measureLine(edge, src, tgt), weights, distances);
|
|
343
|
+
points = controls.length === 0 ? [] : splinePoints(src, tgt, controls);
|
|
344
|
+
}
|
|
345
|
+
if (points.length > 0 && style.startsWith("round-")) {
|
|
346
|
+
const radii = lengths((style === "round-taxi" ? edge.taxiRadius : edge.segmentRadii) ?? "15");
|
|
347
|
+
const types = (edge.radiusType ?? "arc-radius").trim().split(/\s+/);
|
|
348
|
+
const start = outlinePoint(src, points[0]);
|
|
349
|
+
const end = outlinePoint(tgt, points.at(-1) ?? tgt.center);
|
|
350
|
+
points = roundedCorners([start, ...points, end], radii, types).slice(1, -1);
|
|
351
|
+
}
|
|
352
|
+
return points.length === 0 ? null : canonBends(src.center, tgt.center, points, true);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/** How many points each rounded corner's arc is drawn with. */
|
|
356
|
+
const ARC_STEPS = 8;
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* A polyline's corners rounded as Cytoscape.js rounds a `round-segments` or `round-taxi` edge's (cytoscape.js 3.34.3
|
|
360
|
+
* `calcCornerArc`): an arc tangent to both sides, its radius the corner's (the last given for the corners after it),
|
|
361
|
+
* or for `influence-radius` starting that far back along each side; never reaching past either side's middle.
|
|
362
|
+
* @param line - the points, ends included
|
|
363
|
+
* @param radii - the corners' radii
|
|
364
|
+
* @param types - each corner's radius type
|
|
365
|
+
* @returns the points with each corner replaced by its arc
|
|
366
|
+
*/
|
|
367
|
+
function roundedCorners(line: readonly BendPoint[], radii: readonly number[], types: readonly string[]): BendPoint[] {
|
|
368
|
+
const out: BendPoint[] = [line[0]];
|
|
369
|
+
for (let i = 1; i < line.length - 1; i++) {
|
|
370
|
+
const [p, a, b] = [line[i], line[i - 1], line[i + 1]];
|
|
371
|
+
const r = radii[Math.min(i - 1, radii.length - 1)] ?? 15;
|
|
372
|
+
const arc = (types[Math.min(i - 1, types.length - 1)] ?? "arc-radius") !== "influence-radius";
|
|
373
|
+
const l1 = Math.hypot(a[0] - p[0], a[1] - p[1]);
|
|
374
|
+
const l2 = Math.hypot(b[0] - p[0], b[1] - p[1]);
|
|
375
|
+
const u1: BendPoint = [(a[0] - p[0]) / l1, (a[1] - p[1]) / l1];
|
|
376
|
+
const u2: BendPoint = [(b[0] - p[0]) / l2, (b[1] - p[1]) / l2];
|
|
377
|
+
// the angle between the two sides at the corner
|
|
378
|
+
const angle = Math.acos(Math.max(-1, Math.min(1, u1[0] * u2[0] + u1[1] * u2[1])));
|
|
379
|
+
const half = angle / 2;
|
|
380
|
+
// a radius that is not a number, like one of 0, rounds nothing
|
|
381
|
+
const rounds = r > 0 && l1 > 0 && l2 > 0;
|
|
382
|
+
if (!rounds || Math.abs(Math.PI - angle) < 1e-6) {
|
|
383
|
+
out.push(p);
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
386
|
+
const limit = Math.min(l1 / 2, l2 / 2);
|
|
387
|
+
const back = Math.min(limit, arc ? r / Math.tan(half) : r);
|
|
388
|
+
const radius = back * Math.tan(half);
|
|
389
|
+
const bis: BendPoint = [u1[0] + u2[0], u1[1] + u2[1]];
|
|
390
|
+
const bl = Math.hypot(bis[0], bis[1]);
|
|
391
|
+
const reach = Math.hypot(back, radius);
|
|
392
|
+
const c: BendPoint = [p[0] + (bis[0] / bl) * reach, p[1] + (bis[1] / bl) * reach];
|
|
393
|
+
const from = Math.atan2(p[1] + u1[1] * back - c[1], p[0] + u1[0] * back - c[0]);
|
|
394
|
+
const to = Math.atan2(p[1] + u2[1] * back - c[1], p[0] + u2[0] * back - c[0]);
|
|
395
|
+
// the short way round
|
|
396
|
+
let sweep = to - from;
|
|
397
|
+
sweep -= 2 * Math.PI * Math.round(sweep / (2 * Math.PI));
|
|
398
|
+
for (let k = 0; k <= ARC_STEPS; k++) {
|
|
399
|
+
const t = from + (sweep * k) / ARC_STEPS;
|
|
400
|
+
out.push([c[0] + Math.cos(t) * radius, c[1] + Math.sin(t) * radius]);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
out.push(line.at(-1) ?? line[0]);
|
|
404
|
+
return out;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* A loop's route (`findLoopPoints`): two control points out from the node's center along the loop's direction, half
|
|
409
|
+
* its sweep to either side, as far as 1.4 times the step size (the control point distance for an unbundled bezier),
|
|
410
|
+
* further for each loop before it; written relative to the node's size.
|
|
411
|
+
* @param edge - the edge's settings
|
|
412
|
+
* @param node - its node
|
|
413
|
+
* @param loopIndex - how many loops of the same direction and sweep come before it
|
|
414
|
+
* @returns the bends
|
|
415
|
+
*/
|
|
416
|
+
function loopRoute(edge: CyjsRouteEdge, node: CyjsRouteNode, loopIndex: number): CyjsRoute {
|
|
417
|
+
const unbundled = edge.curveStyle === "unbundled-bezier";
|
|
418
|
+
const dist = unbundled
|
|
419
|
+
? (lengths(edge.controlPointDistances ?? "").at(0) ?? Number.NaN)
|
|
420
|
+
: (edge.controlPointStepSize ?? 40);
|
|
421
|
+
const dir = radians(edge.loopDirection ?? "-45deg");
|
|
422
|
+
const sweep = radians(edge.loopSweep ?? "-90deg");
|
|
423
|
+
if (!Number.isFinite(dist + dir + sweep)) {
|
|
424
|
+
return null;
|
|
425
|
+
}
|
|
426
|
+
const angle = dir - Math.PI / 2;
|
|
427
|
+
const reach = 1.4 * dist * (loopIndex / 3 + 1);
|
|
428
|
+
const [cx, cy] = node.center;
|
|
429
|
+
const at = (a: number): BendPoint => [cx + Math.cos(a) * reach, cy + Math.sin(a) * reach];
|
|
430
|
+
const points = splinePoints(node, node, [at(angle - sweep / 2), at(angle + sweep / 2)]);
|
|
431
|
+
return canonNodeOffsets(node.center, node.box, points, true);
|
|
432
|
+
}
|