@graphty/graph-io 0.3.49 → 0.3.50
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-Bzn3L-je.js → approximations-BRXsll0T.js} +2 -2
- package/dist/chunks/{approximations-Bzn3L-je.js.map → approximations-BRXsll0T.js.map} +1 -1
- package/dist/chunks/{block-iptrlMBb.js → block-yl0f_qLO.js} +27 -2
- package/dist/chunks/block-yl0f_qLO.js.map +1 -0
- package/dist/chunks/{context-C3p0RQxR.js → context-DizmppHy.js} +2 -2
- package/dist/chunks/{context-C3p0RQxR.js.map → context-DizmppHy.js.map} +1 -1
- package/dist/chunks/{credentials-DXHx7nwR.js → credentials-CmvJXYeH.js} +58 -9
- package/dist/chunks/credentials-CmvJXYeH.js.map +1 -0
- package/dist/chunks/{descriptor-DLA5kINx.js → descriptor-Dhez_Cew.js} +5 -1
- package/dist/chunks/{descriptor-DLA5kINx.js.map → descriptor-Dhez_Cew.js.map} +1 -1
- package/dist/chunks/{emit-BwHQkZle.js → emit-7Jkpg0yd.js} +132 -4
- package/dist/chunks/emit-7Jkpg0yd.js.map +1 -0
- package/dist/chunks/{exporter-nDfxIK5D.js → exporter-1Ajud15J.js} +4 -4
- package/dist/chunks/{exporter-nDfxIK5D.js.map → exporter-1Ajud15J.js.map} +1 -1
- package/dist/chunks/{exporter-D9yMtocA.js → exporter-B6yvL3wy.js} +3 -3
- package/dist/chunks/{exporter-D9yMtocA.js.map → exporter-B6yvL3wy.js.map} +1 -1
- package/dist/chunks/{exporter-_jrBTnos.js → exporter-CA5q8ROP.js} +4 -4
- package/dist/chunks/{exporter-_jrBTnos.js.map → exporter-CA5q8ROP.js.map} +1 -1
- package/dist/chunks/{exporter-D2CETOMK.js → exporter-CQQZFJ2v.js} +72 -10
- package/dist/chunks/exporter-CQQZFJ2v.js.map +1 -0
- package/dist/chunks/{generic-ymWCETAJ.js → generic-Dc21MAdg.js} +3 -3
- package/dist/chunks/{generic-ymWCETAJ.js.map → generic-Dc21MAdg.js.map} +1 -1
- package/dist/chunks/{importer-CT9mJ1nn.js → importer-C6NVpCXp.js} +7 -6
- package/dist/chunks/importer-C6NVpCXp.js.map +1 -0
- package/dist/chunks/{importer-GREKMdIf.js → importer-CKFe4q54.js} +4 -4
- package/dist/chunks/{importer-GREKMdIf.js.map → importer-CKFe4q54.js.map} +1 -1
- package/dist/chunks/{importer-PqaaKKnY.js → importer-CKbUbsJA.js} +4 -4
- package/dist/chunks/{importer-PqaaKKnY.js.map → importer-CKbUbsJA.js.map} +1 -1
- package/dist/chunks/{importer-DaLTjbds.js → importer-ClCsdgTJ.js} +97 -7
- package/dist/chunks/importer-ClCsdgTJ.js.map +1 -0
- package/dist/chunks/{importer-B92x1xY5.js → importer-CyVZTrf0.js} +3 -3
- package/dist/chunks/{importer-B92x1xY5.js.map → importer-CyVZTrf0.js.map} +1 -1
- package/dist/chunks/{importer-vRq4h3j5.js → importer-DgG4v1Ms.js} +89 -20
- package/dist/chunks/importer-DgG4v1Ms.js.map +1 -0
- package/dist/chunks/{importer-Vn5QvmmJ.js → importer-asFUrIsj.js} +2 -2
- package/dist/chunks/{importer-Vn5QvmmJ.js.map → importer-asFUrIsj.js.map} +1 -1
- package/dist/chunks/{lexicon-Clf4QIyl.js → lexicon-IVRq2Uoo.js} +2 -2
- package/dist/chunks/{lexicon-Clf4QIyl.js.map → lexicon-IVRq2Uoo.js.map} +1 -1
- package/dist/chunks/{round-trip-Zm3_ivgq.js → round-trip-Cy3_SHRZ.js} +2 -2
- package/dist/chunks/{round-trip-Zm3_ivgq.js.map → round-trip-Cy3_SHRZ.js.map} +1 -1
- package/dist/chunks/{sigv4-EokFic1V.js → sigv4-BXwVbza3.js} +3 -3
- package/dist/chunks/{sigv4-EokFic1V.js.map → sigv4-BXwVbza3.js.map} +1 -1
- package/dist/chunks/{styles-CCs214_3.js → styles-CAVmBLgp.js} +4 -4
- package/dist/chunks/{styles-CCs214_3.js.map → styles-CAVmBLgp.js.map} +1 -1
- package/dist/chunks/{styles-DPQQIig4.js → styles-CPczw1Jz.js} +4 -4
- package/dist/chunks/{styles-DPQQIig4.js.map → styles-CPczw1Jz.js.map} +1 -1
- package/dist/chunks/{styles-Cm62yyQX.js → styles-boK6Ln54.js} +65 -30
- package/dist/chunks/styles-boK6Ln54.js.map +1 -0
- package/dist/chunks/{styles-yed-UMFdNqze.js → styles-yed-XeFBQ6VS.js} +8 -8
- package/dist/chunks/{styles-yed-UMFdNqze.js.map → styles-yed-XeFBQ6VS.js.map} +1 -1
- package/dist/cx.js +2 -2
- package/dist/cx2.js +2 -2
- package/dist/cys.js +1 -1
- package/dist/dot.js +7 -4
- package/dist/gexf.js +2 -2
- package/dist/gml.js +8 -8
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +129 -104
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +2 -2
- package/dist/json.js +1 -1
- package/dist/pajek.js +1 -1
- package/dist/sources-cypher.js +25 -22
- package/dist/sources-cypher.js.map +1 -1
- package/dist/sources-ndex.js +2 -2
- package/dist/sources-rest.js +20 -4
- package/dist/sources-rest.js.map +1 -1
- package/dist/sources-sparql.js +40 -6
- package/dist/sources-sparql.js.map +1 -1
- package/dist/src/formats/dot/exporter.d.ts.map +1 -1
- package/dist/src/formats/dot/exporter.js +34 -2
- package/dist/src/formats/dot/exporter.js.map +1 -1
- package/dist/src/formats/dot/importer.d.ts +6 -1
- package/dist/src/formats/dot/importer.d.ts.map +1 -1
- package/dist/src/formats/dot/importer.js +65 -5
- package/dist/src/formats/dot/importer.js.map +1 -1
- package/dist/src/formats/dot/index.d.ts +3 -1
- package/dist/src/formats/dot/index.d.ts.map +1 -1
- package/dist/src/formats/dot/index.js +2 -1
- package/dist/src/formats/dot/index.js.map +1 -1
- package/dist/src/formats/dot/label-places.d.ts +7 -0
- package/dist/src/formats/dot/label-places.d.ts.map +1 -1
- package/dist/src/formats/dot/label-places.js +9 -3
- package/dist/src/formats/dot/label-places.js.map +1 -1
- package/dist/src/formats/dot/names.d.ts +13 -0
- package/dist/src/formats/dot/names.d.ts.map +1 -1
- package/dist/src/formats/dot/names.js +13 -0
- package/dist/src/formats/dot/names.js.map +1 -1
- package/dist/src/formats/dot/styles.d.ts +10 -0
- package/dist/src/formats/dot/styles.d.ts.map +1 -1
- package/dist/src/formats/dot/styles.js +49 -3
- package/dist/src/formats/dot/styles.js.map +1 -1
- package/dist/src/formats/gml/styles.js +1 -1
- package/dist/src/formats/gml/styles.js.map +1 -1
- package/dist/src/formats/graphml/styles-yed.js +3 -3
- package/dist/src/formats/graphml/styles-yed.js.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
- package/dist/src/formats/graphml/styles-yfiles3.js +6 -4
- package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
- package/dist/src/formats/json/styles.d.ts.map +1 -1
- package/dist/src/formats/json/styles.js +94 -6
- package/dist/src/formats/json/styles.js.map +1 -1
- package/dist/src/formats/pajek/draw.d.ts +8 -0
- package/dist/src/formats/pajek/draw.d.ts.map +1 -1
- package/dist/src/formats/pajek/draw.js +10 -0
- package/dist/src/formats/pajek/draw.js.map +1 -1
- package/dist/src/formats/pajek/styles.d.ts.map +1 -1
- package/dist/src/formats/pajek/styles.js +142 -25
- package/dist/src/formats/pajek/styles.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/sources/credentials.d.ts +50 -1
- package/dist/src/sources/credentials.d.ts.map +1 -1
- package/dist/src/sources/credentials.js +69 -0
- package/dist/src/sources/credentials.js.map +1 -1
- package/dist/src/sources/cypher/index.d.ts.map +1 -1
- package/dist/src/sources/cypher/index.js +12 -11
- package/dist/src/sources/cypher/index.js.map +1 -1
- package/dist/src/sources/cypher/query-builder.d.ts +6 -6
- package/dist/src/sources/cypher/query-builder.d.ts.map +1 -1
- package/dist/src/sources/cypher/query-builder.js +15 -15
- package/dist/src/sources/cypher/query-builder.js.map +1 -1
- package/dist/src/sources/rest/descriptor.d.ts.map +1 -1
- package/dist/src/sources/rest/descriptor.js +4 -0
- package/dist/src/sources/rest/descriptor.js.map +1 -1
- package/dist/src/sources/rest/openalex.d.ts +4 -2
- package/dist/src/sources/rest/openalex.d.ts.map +1 -1
- package/dist/src/sources/rest/openalex.js +4 -2
- package/dist/src/sources/rest/openalex.js.map +1 -1
- package/dist/src/sources/rest/source.d.ts.map +1 -1
- package/dist/src/sources/rest/source.js +23 -0
- package/dist/src/sources/rest/source.js.map +1 -1
- package/dist/src/sources/run.d.ts +2 -0
- package/dist/src/sources/run.d.ts.map +1 -1
- package/dist/src/sources/run.js +30 -3
- package/dist/src/sources/run.js.map +1 -1
- package/dist/src/sources/sparql/index.d.ts.map +1 -1
- package/dist/src/sources/sparql/index.js +14 -1
- package/dist/src/sources/sparql/index.js.map +1 -1
- package/dist/src/sources/sparql/query.d.ts +2 -1
- package/dist/src/sources/sparql/query.d.ts.map +1 -1
- package/dist/src/sources/sparql/query.js +55 -4
- package/dist/src/sources/sparql/query.js.map +1 -1
- package/dist/src/sources/types.d.ts +29 -0
- package/dist/src/sources/types.d.ts.map +1 -1
- package/dist/src/styles/canon/enums.d.ts.map +1 -1
- package/dist/src/styles/canon/enums.js +8 -0
- package/dist/src/styles/canon/enums.js.map +1 -1
- package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
- package/dist/src/styles/cyjs/cascade.js +124 -0
- 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 +1 -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 +30 -1
- package/dist/src/styles/cyjs/emit.js.map +1 -1
- package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
- package/dist/src/styles/cyjs/mappers.js +14 -0
- package/dist/src/styles/cyjs/mappers.js.map +1 -1
- package/dist/src/styles/types.d.ts +65 -0
- package/dist/src/styles/types.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.d.ts.map +1 -1
- package/dist/src/styles/vocabulary.js +21 -0
- package/dist/src/styles/vocabulary.js.map +1 -1
- package/dist/styles.js +6 -6
- package/dist/xgmml.js +3 -3
- package/package.json +2 -2
- package/src/formats/dot/exporter.ts +37 -1
- package/src/formats/dot/importer.ts +75 -4
- package/src/formats/dot/index.ts +3 -1
- package/src/formats/dot/label-places.ts +16 -3
- package/src/formats/dot/names.ts +15 -0
- package/src/formats/dot/styles.ts +55 -3
- package/src/formats/gml/styles.ts +1 -1
- package/src/formats/graphml/styles-yed.ts +3 -3
- package/src/formats/graphml/styles-yfiles3.ts +6 -4
- package/src/formats/json/styles.ts +102 -6
- package/src/formats/pajek/draw.ts +11 -0
- package/src/formats/pajek/styles.ts +151 -26
- package/src/index.ts +7 -0
- package/src/sources/credentials.ts +90 -1
- package/src/sources/cypher/index.ts +12 -11
- package/src/sources/cypher/query-builder.ts +15 -15
- package/src/sources/rest/descriptor.ts +4 -0
- package/src/sources/rest/openalex.ts +4 -2
- package/src/sources/rest/source.ts +25 -0
- package/src/sources/run.ts +35 -3
- package/src/sources/sparql/index.ts +16 -1
- package/src/sources/sparql/query.ts +58 -4
- package/src/sources/types.ts +33 -0
- package/src/styles/canon/enums.ts +9 -0
- package/src/styles/cyjs/cascade.ts +143 -0
- package/src/styles/cyjs/defaults-table.ts +1 -0
- package/src/styles/cyjs/emit.ts +35 -1
- package/src/styles/cyjs/mappers.ts +14 -0
- package/src/styles/types.ts +65 -0
- package/src/styles/vocabulary.ts +21 -0
- package/dist/chunks/block-iptrlMBb.js.map +0 -1
- package/dist/chunks/credentials-DXHx7nwR.js.map +0 -1
- package/dist/chunks/emit-BwHQkZle.js.map +0 -1
- package/dist/chunks/exporter-D2CETOMK.js.map +0 -1
- package/dist/chunks/importer-CT9mJ1nn.js.map +0 -1
- package/dist/chunks/importer-DaLTjbds.js.map +0 -1
- package/dist/chunks/importer-vRq4h3j5.js.map +0 -1
- package/dist/chunks/styles-Cm62yyQX.js.map +0 -1
|
@@ -1110,6 +1110,7 @@ function evaluateTarget(kind, graph, sheet, matcher, input, env) {
|
|
|
1110
1110
|
if (kind === "node") {
|
|
1111
1111
|
const read = { kind, els, cells, order, rendered: input.rendered, notes };
|
|
1112
1112
|
nodeSizes(graph, read, drawn);
|
|
1113
|
+
groupBoxes(graph, read, drawn);
|
|
1113
1114
|
mixedLabelPlaces(graph, read, drawn);
|
|
1114
1115
|
}
|
|
1115
1116
|
if (kind === "edge") {
|
|
@@ -1474,6 +1475,8 @@ const CYJS_EDGE_ONLY = new Set([
|
|
|
1474
1475
|
"target-text-margin-y",
|
|
1475
1476
|
"source-text-rotation",
|
|
1476
1477
|
"target-text-rotation",
|
|
1478
|
+
"source-distance-from-node",
|
|
1479
|
+
"target-distance-from-node",
|
|
1477
1480
|
]);
|
|
1478
1481
|
/**
|
|
1479
1482
|
* The elements of a target a selector matches, in order.
|
|
@@ -2385,6 +2388,127 @@ function nodeSizes(graph, read, values) {
|
|
|
2385
2388
|
}
|
|
2386
2389
|
}
|
|
2387
2390
|
}
|
|
2391
|
+
/** The words of a compound parent's sizing properties. */
|
|
2392
|
+
const PADDING_OF_PART = {
|
|
2393
|
+
property: "_paddingOf",
|
|
2394
|
+
type: "enum",
|
|
2395
|
+
enums: ["width", "height", "average", "min", "max"],
|
|
2396
|
+
};
|
|
2397
|
+
const LABELS_PART = { property: "_compoundLabels", type: "enum", enums: ["include", "exclude"] };
|
|
2398
|
+
/**
|
|
2399
|
+
* A length or a percentage as Cytoscape.js spells it.
|
|
2400
|
+
* @param text - the value, or null
|
|
2401
|
+
* @returns the number and whether it is a percentage, or null for none or a non-number
|
|
2402
|
+
*/
|
|
2403
|
+
function measureOf(text) {
|
|
2404
|
+
if (typeof text !== "string" && typeof text !== "number") {
|
|
2405
|
+
return null;
|
|
2406
|
+
}
|
|
2407
|
+
const value = Number.parseFloat(String(text));
|
|
2408
|
+
return Number.isFinite(value) ? { value, percent: String(text).trim().endsWith("%") } : null;
|
|
2409
|
+
}
|
|
2410
|
+
/**
|
|
2411
|
+
* The share of a minimum's growth on the near side (left, top), as Cytoscape.js 3.34.3 `updateCompoundBounds`
|
|
2412
|
+
* splits it: each bias a percentage, a length read as its percentage of the minimum, the near side's share of
|
|
2413
|
+
* their sum; no bias on either side grows both sides alike.
|
|
2414
|
+
* @param near - the near side's bias
|
|
2415
|
+
* @param far - the far side's bias
|
|
2416
|
+
* @param min - the minimum
|
|
2417
|
+
* @returns the near side's share, or null for half
|
|
2418
|
+
*/
|
|
2419
|
+
function biasShare(near, far, min) {
|
|
2420
|
+
const percent = (text) => {
|
|
2421
|
+
const m = measureOf(text);
|
|
2422
|
+
if (m === null || m.value <= 0) {
|
|
2423
|
+
return 0;
|
|
2424
|
+
}
|
|
2425
|
+
return m.percent ? m.value : (m.value * 100) / min;
|
|
2426
|
+
};
|
|
2427
|
+
const a = percent(near);
|
|
2428
|
+
const total = a + percent(far);
|
|
2429
|
+
return total > 0 ? a / total : null;
|
|
2430
|
+
}
|
|
2431
|
+
/**
|
|
2432
|
+
* How Cytoscape.js sizes a compound parent round its children (cytoscape.js 3.34.3 `updateCompoundBounds`): its
|
|
2433
|
+
* `padding` past their box (a percentage is of the box, `padding-relative-to`), at least `min-width` by `min-height`
|
|
2434
|
+
* before the padding, grown by the biases' shares, its children's labels counted unless `compound-sizing-wrt-labels`
|
|
2435
|
+
* is `exclude`. Written for every compound parent, so the group is drawn as Cytoscape.js draws it.
|
|
2436
|
+
* @param graph - the core's elements
|
|
2437
|
+
* @param read - the nodes' cells
|
|
2438
|
+
* @param values - the nodes' values; changed in place
|
|
2439
|
+
*/
|
|
2440
|
+
function groupBoxes(graph, read, values) {
|
|
2441
|
+
const word = (name, spec = TEXT_PART) => drawnColumn(read, name, spec);
|
|
2442
|
+
const padding = word("padding");
|
|
2443
|
+
const paddingOf = word("padding-relative-to", PADDING_OF_PART);
|
|
2444
|
+
const labels = word("compound-sizing-wrt-labels", LABELS_PART);
|
|
2445
|
+
const axes = [
|
|
2446
|
+
{ min: word("min-width"), near: word("min-width-bias-left"), far: word("min-width-bias-right") },
|
|
2447
|
+
{ min: word("min-height"), near: word("min-height-bias-top"), far: word("min-height-bias-bottom") },
|
|
2448
|
+
];
|
|
2449
|
+
const names = [
|
|
2450
|
+
["groupMinWidth", "groupMinWidthBiasLeft"],
|
|
2451
|
+
["groupMinHeight", "groupMinHeightBiasTop"],
|
|
2452
|
+
];
|
|
2453
|
+
const n = read.order.length;
|
|
2454
|
+
const put = (p, k, v) => {
|
|
2455
|
+
const column = values[p] ?? new Array(n).fill(null);
|
|
2456
|
+
values[p] = column;
|
|
2457
|
+
column[k] = v;
|
|
2458
|
+
};
|
|
2459
|
+
for (let k = 0; k < n; k++) {
|
|
2460
|
+
const core = read.order[k];
|
|
2461
|
+
if (core < 0 || graph.children[core].length === 0) {
|
|
2462
|
+
continue;
|
|
2463
|
+
}
|
|
2464
|
+
for (const [p, v] of groupPaddingValues(padding[k], paddingOf[k])) {
|
|
2465
|
+
put(p, k, v);
|
|
2466
|
+
}
|
|
2467
|
+
put("groupIncludeLabels", k, labels[k] !== "exclude");
|
|
2468
|
+
axes.forEach((axis, a) => {
|
|
2469
|
+
for (const [p, v] of groupMinValues(axis.min[k], axis.near[k], axis.far[k], names[a])) {
|
|
2470
|
+
put(p, k, v);
|
|
2471
|
+
}
|
|
2472
|
+
});
|
|
2473
|
+
}
|
|
2474
|
+
}
|
|
2475
|
+
/**
|
|
2476
|
+
* A compound parent's padding as neutral values: a length, or a fraction of the side `padding-relative-to` names.
|
|
2477
|
+
* @param padding - the padding as Cytoscape.js spells it
|
|
2478
|
+
* @param of - its `padding-relative-to`
|
|
2479
|
+
* @returns the properties and their values
|
|
2480
|
+
*/
|
|
2481
|
+
function groupPaddingValues(padding, of) {
|
|
2482
|
+
const pad = measureOf(padding);
|
|
2483
|
+
if (pad?.percent !== true) {
|
|
2484
|
+
return [["groupPadding", Math.max(0, pad?.value ?? 0)]];
|
|
2485
|
+
}
|
|
2486
|
+
return [
|
|
2487
|
+
["groupPaddingRatio", Math.max(0, pad.value / 100)],
|
|
2488
|
+
["groupPaddingOf", typeof of === "string" ? of : "width"],
|
|
2489
|
+
];
|
|
2490
|
+
}
|
|
2491
|
+
/**
|
|
2492
|
+
* A compound parent's minimum size on one axis and the share of its growth on the near side, as neutral values.
|
|
2493
|
+
* @param min - the minimum as Cytoscape.js spells it
|
|
2494
|
+
* @param near - the near side's bias (left, top)
|
|
2495
|
+
* @param far - the far side's bias
|
|
2496
|
+
* @param names - the neutral names of the minimum and of the near side's share
|
|
2497
|
+
* @returns the properties and their values; none without a minimum
|
|
2498
|
+
*/
|
|
2499
|
+
function groupMinValues(min, near, far, names) {
|
|
2500
|
+
const m = measureOf(min);
|
|
2501
|
+
if (m === null || m.percent || m.value <= 0) {
|
|
2502
|
+
return [];
|
|
2503
|
+
}
|
|
2504
|
+
const share = biasShare(near, far, m.value);
|
|
2505
|
+
return share === null
|
|
2506
|
+
? [[names[0], m.value]]
|
|
2507
|
+
: [
|
|
2508
|
+
[names[0], m.value],
|
|
2509
|
+
[names[1], share],
|
|
2510
|
+
];
|
|
2511
|
+
}
|
|
2388
2512
|
/** The label alignments read as Cytoscape.js's words. */
|
|
2389
2513
|
const VALIGN_PART = {
|
|
2390
2514
|
property: "_valign",
|