@kgdiff/g6 0.0.0-stage → 0.1.0

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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -2
  3. package/dist/color.d.ts +24 -0
  4. package/dist/color.d.ts.map +1 -0
  5. package/dist/color.js +95 -0
  6. package/dist/color.js.map +1 -0
  7. package/dist/constants.d.ts +81 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +81 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/controller.d.ts +126 -0
  12. package/dist/controller.d.ts.map +1 -0
  13. package/dist/controller.js +422 -0
  14. package/dist/controller.js.map +1 -0
  15. package/dist/geometry.d.ts +19 -0
  16. package/dist/geometry.d.ts.map +1 -0
  17. package/dist/geometry.js +43 -0
  18. package/dist/geometry.js.map +1 -0
  19. package/dist/index.d.ts +101 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +99 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/locator.d.ts +24 -0
  24. package/dist/locator.d.ts.map +1 -0
  25. package/dist/locator.js +69 -0
  26. package/dist/locator.js.map +1 -0
  27. package/dist/map-context.d.ts +70 -0
  28. package/dist/map-context.d.ts.map +1 -0
  29. package/dist/map-context.js +44 -0
  30. package/dist/map-context.js.map +1 -0
  31. package/dist/map-edge.d.ts +19 -0
  32. package/dist/map-edge.d.ts.map +1 -0
  33. package/dist/map-edge.js +399 -0
  34. package/dist/map-edge.js.map +1 -0
  35. package/dist/map-node.d.ts +10 -0
  36. package/dist/map-node.d.ts.map +1 -0
  37. package/dist/map-node.js +243 -0
  38. package/dist/map-node.js.map +1 -0
  39. package/dist/map.d.ts +47 -0
  40. package/dist/map.d.ts.map +1 -0
  41. package/dist/map.js +92 -0
  42. package/dist/map.js.map +1 -0
  43. package/dist/node.d.ts +68 -0
  44. package/dist/node.d.ts.map +1 -0
  45. package/dist/node.js +189 -0
  46. package/dist/node.js.map +1 -0
  47. package/dist/options.d.ts +33 -0
  48. package/dist/options.d.ts.map +1 -0
  49. package/dist/options.js +172 -0
  50. package/dist/options.js.map +1 -0
  51. package/dist/patch.d.ts +45 -0
  52. package/dist/patch.d.ts.map +1 -0
  53. package/dist/patch.js +120 -0
  54. package/dist/patch.js.map +1 -0
  55. package/dist/replay.d.ts +20 -0
  56. package/dist/replay.d.ts.map +1 -0
  57. package/dist/replay.js +36 -0
  58. package/dist/replay.js.map +1 -0
  59. package/package.json +54 -3
  60. package/src/color.ts +101 -0
  61. package/src/constants.ts +96 -0
  62. package/src/controller.ts +517 -0
  63. package/src/geometry.ts +44 -0
  64. package/src/index.ts +140 -0
  65. package/src/locator.ts +72 -0
  66. package/src/map-context.ts +119 -0
  67. package/src/map-edge.ts +481 -0
  68. package/src/map-node.ts +272 -0
  69. package/src/map.ts +130 -0
  70. package/src/node.ts +240 -0
  71. package/src/options.ts +215 -0
  72. package/src/patch.ts +133 -0
  73. package/src/replay.ts +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-node.js","sourceRoot":"","sources":["../src/map-node.ts"],"names":[],"mappings":"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"}
package/dist/map.d.ts ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Resolved frame → G6 v5 `GraphData`. Pure: no G6 runtime, no DOM, no shared mutable state.
3
+ *
4
+ * Every element always carries the full set of style keys it can ever use (switched off with
5
+ * `false` / 0 / ''), because G6's `setData` / `updateData` *merge* an update into the previous
6
+ * style: a key that is merely omitted would keep its old value. `datum.data` holds flat
7
+ * primitives only, so G6's shallow equality check can skip unchanged elements.
8
+ *
9
+ * Sizes the scene gives in screen px are emitted as world units (exact at zoom 1); level of
10
+ * detail (`minZoom`, `arrowMinZoom`) is applied for the zoom passed in `zoom`.
11
+ */
12
+ import type { EdgeData, GraphData, NodeData } from '@antv/g6';
13
+ import type { FrameVisuals, Scene } from '@kgdiff/scene';
14
+ import { type KgdiffDatumData } from './map-context.js';
15
+ export type { ElementKind, KgdiffDatumData } from './map-context.js';
16
+ export interface MapOptions {
17
+ readonly idPrefix: string;
18
+ readonly keepHidden: boolean;
19
+ /** Camera zoom the level of detail is evaluated at. */
20
+ readonly zoom: number;
21
+ }
22
+ export interface MappedFrame {
23
+ readonly data: {
24
+ nodes: NodeData[];
25
+ edges: EdgeData[];
26
+ };
27
+ /**
28
+ * Distinct positive LOD thresholds present in the frame (sorted): the zooms at which the
29
+ * mapping would change. Crossing one calls for a re-map.
30
+ */
31
+ readonly lod: readonly number[];
32
+ }
33
+ /**
34
+ * Map a resolved frame. Output order: scene nodes (by index), collapsed pills, then glyph anchors
35
+ * and pivot dots; scene edges (by index), then glyph arcs (frame order). O(N + E + G), plus O(N)
36
+ * grids when the frame has glyphs.
37
+ *
38
+ * @throws KgdiffError(`invalid-input`) when the frame was not resolved for `scene`.
39
+ */
40
+ export declare function mapFrame(scene: Scene, frame: FrameVisuals, options: MapOptions): MappedFrame;
41
+ /** True when moving the camera from zoom `a` to `b` crosses one of the `lod` thresholds. */
42
+ export declare function crossesLod(lod: readonly number[], a: number, b: number): boolean;
43
+ /** The kgdiff part of a datum's `data`, or null for elements this package did not generate. */
44
+ export declare function kgdiffData(data: unknown): KgdiffDatumData | null;
45
+ /** Narrowing helper for consumers of `toG6Data`: the graph data with both arrays present. */
46
+ export type MappedGraphData = Required<Pick<GraphData, 'nodes' | 'edges'>>;
47
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,KAAK,EAEV,YAAY,EAEZ,KAAK,EAGN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIzE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAID;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,GAAG,WAAW,CAuD5F;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGhF;AAED,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAUhE;AAED,6FAA6F;AAC7F,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC"}
package/dist/map.js ADDED
@@ -0,0 +1,92 @@
1
+ import { KgdiffError } from '@kgdiff/core';
2
+ import { claim } from './map-context.js';
3
+ import { mapEdge, mapGlyph } from './map-edge.js';
4
+ import { mapCollapsed, mapNode } from './map-node.js';
5
+ // ─── Frame ──────────────────────────────────────────────────────────────────
6
+ /**
7
+ * Map a resolved frame. Output order: scene nodes (by index), collapsed pills, then glyph anchors
8
+ * and pivot dots; scene edges (by index), then glyph arcs (frame order). O(N + E + G), plus O(N)
9
+ * grids when the frame has glyphs.
10
+ *
11
+ * @throws KgdiffError(`invalid-input`) when the frame was not resolved for `scene`.
12
+ */
13
+ export function mapFrame(scene, frame, options) {
14
+ if (frame.nodes.length !== scene.nodes.length || frame.edges.length !== scene.edges.length) {
15
+ throw new KgdiffError('invalid-input', `The frame does not belong to this scene: it has ${frame.nodes.length} nodes / ${frame.edges.length} edges, the scene ${scene.nodes.length} / ${scene.edges.length}. Resolve it with createVisualResolver(scene).`);
16
+ }
17
+ if (typeof options.idPrefix !== 'string') {
18
+ throw new KgdiffError('invalid-input', 'idPrefix must be a string.');
19
+ }
20
+ const N = scene.nodes.length;
21
+ const ctx = {
22
+ scene,
23
+ frame,
24
+ theme: scene.theme,
25
+ bg: scene.theme.canvas.background,
26
+ prefix: options.idPrefix,
27
+ keepHidden: options.keepHidden,
28
+ zoom: options.zoom,
29
+ present: new Uint8Array(N),
30
+ nodeIds: new Array(N),
31
+ used: new Set(),
32
+ lod: new Set(),
33
+ locator: null,
34
+ anyLocator: null,
35
+ anchors: new Map(),
36
+ nodeBase: null,
37
+ edgeBase: null,
38
+ };
39
+ const nodes = [];
40
+ const edges = [];
41
+ for (let i = 0; i < N; i++) {
42
+ const sn = scene.nodes[i];
43
+ const v = frame.nodes[i];
44
+ ctx.nodeIds[i] = claim(ctx, options.idPrefix + sn.id);
45
+ const datum = mapNode(sn, v, ctx);
46
+ if (datum === null)
47
+ continue;
48
+ ctx.present[i] = 1;
49
+ nodes.push(datum);
50
+ }
51
+ frame.collapsed.forEach((g, i) => {
52
+ const datum = mapCollapsed(g, i, ctx);
53
+ if (datum !== null)
54
+ nodes.push(datum);
55
+ });
56
+ for (let j = 0; j < scene.edges.length; j++) {
57
+ const datum = mapEdge(scene.edges[j], frame.edges[j], ctx);
58
+ if (datum !== null)
59
+ edges.push(datum);
60
+ }
61
+ frame.glyphs.forEach((g, i) => {
62
+ const datum = mapGlyph(g, i, ctx, nodes);
63
+ if (datum === null)
64
+ return;
65
+ if ('edge' in datum)
66
+ edges.push(datum.edge);
67
+ else
68
+ nodes.push(datum.node);
69
+ });
70
+ return { data: { nodes, edges }, lod: [...ctx.lod].sort((a, b) => a - b) };
71
+ }
72
+ /** True when moving the camera from zoom `a` to `b` crosses one of the `lod` thresholds. */
73
+ export function crossesLod(lod, a, b) {
74
+ for (const m of lod)
75
+ if (a < m !== b < m)
76
+ return true;
77
+ return false;
78
+ }
79
+ /** The kgdiff part of a datum's `data`, or null for elements this package did not generate. */
80
+ export function kgdiffData(data) {
81
+ if (data === null || typeof data !== 'object')
82
+ return null;
83
+ const d = data;
84
+ return d.kgdiff === 'node' ||
85
+ d.kgdiff === 'edge' ||
86
+ d.kgdiff === 'glyph' ||
87
+ d.kgdiff === 'collapsed' ||
88
+ d.kgdiff === 'anchor'
89
+ ? d
90
+ : null;
91
+ }
92
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts ADDED
@@ -0,0 +1,68 @@
1
+ /**
2
+ * `kgdiff-node`: G6's built-in `circle` plus what it cannot express — a concentric ring, a replay
3
+ * pulse, a struck-through old name under the label and visible strike-throughs — and a halo drawn the way
4
+ * the visual language specifies it (a soft radial glow in dark themes, a crisp offset ring in
5
+ * light ones) instead of G6's flat band.
6
+ *
7
+ * It reads the extra keys `toG6Data` emits (`ring*`, `pulse*`, `sublabel*`, `haloGlow`,
8
+ * `haloRadius`); a plain `circle` ignores them, so the same data degrades gracefully. Every
9
+ * sub-shape has a `get<Name>Style` method, which is what G6 animates during updates.
10
+ */
11
+ import { Circle, type CircleStyleProps, type LabelStyleProps } from '@antv/g6';
12
+ /** Style keys of kgdiff-node beyond G6's circle (all optional; see map.ts for their meaning). */
13
+ export interface KgdiffNodeStyleProps extends CircleStyleProps {
14
+ haloGlow?: boolean;
15
+ haloRadius?: number;
16
+ ring?: boolean;
17
+ ringStroke?: string;
18
+ ringLineWidth?: number;
19
+ ringGap?: number;
20
+ /** Relative to the node's opacity. */
21
+ ringOpacity?: number;
22
+ /** Replay pulse progress in (0, 1); 0 = none. */
23
+ pulse?: number;
24
+ pulseStroke?: string;
25
+ sublabel?: boolean;
26
+ sublabelText?: string;
27
+ sublabelFill?: string;
28
+ sublabelFontSize?: number;
29
+ sublabelFontWeight?: number;
30
+ sublabelFontFamily?: string;
31
+ /** Absolute. */
32
+ sublabelOpacity?: number;
33
+ sublabelOffsetY?: number;
34
+ sublabelTextDecorationLine?: 'none' | 'line-through';
35
+ sublabelStroke?: string;
36
+ sublabelStrokeOpacity?: number;
37
+ }
38
+ type Attrs = Required<CircleStyleProps>;
39
+ type Container = NonNullable<Parameters<Circle['render']>[1]>;
40
+ type ShapeStyle = Record<string, unknown>;
41
+ export declare class KgdiffNode extends Circle {
42
+ private extras;
43
+ private radius;
44
+ protected getKeyStyle(attributes: Attrs): ReturnType<Circle['getKeyStyle']>;
45
+ /** Dark: radial glow of radius max(haloRadius, 1.6·r). Light: 2-wide ring 5 outside r (or the ring). */
46
+ protected getHaloStyle(attributes: Attrs): false | ShapeStyle;
47
+ /** Concentric ring at r + gap. */
48
+ protected getRingStyle(attributes: Attrs): false | ShapeStyle;
49
+ /** One expanding ring that fades out as `pulse` goes 0 → 1 (native renderer geometry). */
50
+ protected getPulseStyle(attributes: Attrs): false | ShapeStyle;
51
+ /** The old name, struck through, `sublabelOffsetY` below the node (like the primary label). */
52
+ protected getSublabelStyle(attributes: Attrs): false | LabelStyleProps;
53
+ /**
54
+ * G 6.3 keeps `textDecorationColor` unparsed and then reads `.r/.g/.b` from it, so a
55
+ * `line-through` is drawn in whatever stroke style is current — the background-colored text
56
+ * halo, i.e. invisible. kgdiff-node turns G's decoration off and strikes with a line instead.
57
+ */
58
+ protected getLabelStyle(attributes: Attrs): false | LabelStyleProps;
59
+ /** A 1-wide line through the middle of a label shape's text, in node coordinates. */
60
+ private strike;
61
+ protected getStrikeStyle(attributes: Attrs): false | ShapeStyle;
62
+ protected getSubstrikeStyle(attributes: Attrs): false | ShapeStyle;
63
+ render(attributes?: Required<import("@antv/g6").BaseNodeStyleProps>, container?: Container): void;
64
+ }
65
+ /** Register `kgdiff-node` with G6 (once per module instance). */
66
+ export declare function registerKgdiffNode(): void;
67
+ export {};
68
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,MAAM,EACN,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EAErB,MAAM,UAAU,CAAC;AAWlB,iGAAiG;AACjG,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,KAAK,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAExC,KAAK,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAa1C,qBAAa,UAAW,SAAQ,MAAM;IACpC,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;IAId,UAAmB,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAInF;IAED,wGAAwG;IACxG,UAAmB,YAAY,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,CAyBrE;IAED,kCAAkC;IAClC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,CAa5D;IAED,0FAA0F;IAC1F,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,CAe7D;IAED,+FAA+F;IAC/F,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,eAAe,CA+BrE;IAED;;;;OAIG;IACH,UAAmB,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,eAAe,CAG3E;IAED,qFAAqF;IACrF,OAAO,CAAC,MAAM;IAad,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,CAM9D;IAED,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,CAIjE;IAEe,MAAM,CAAC,UAAU,kDAAwB,EAAE,SAAS,GAAE,SAAgB,GAAG,IAAI,CAQ5F;CACF;AAID,iEAAiE;AACjE,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
package/dist/node.js ADDED
@@ -0,0 +1,189 @@
1
+ /**
2
+ * `kgdiff-node`: G6's built-in `circle` plus what it cannot express — a concentric ring, a replay
3
+ * pulse, a struck-through old name under the label and visible strike-throughs — and a halo drawn the way
4
+ * the visual language specifies it (a soft radial glow in dark themes, a crisp offset ring in
5
+ * light ones) instead of G6's flat band.
6
+ *
7
+ * It reads the extra keys `toG6Data` emits (`ring*`, `pulse*`, `sublabel*`, `haloGlow`,
8
+ * `haloRadius`); a plain `circle` ignores them, so the same data degrades gracefully. Every
9
+ * sub-shape has a `get<Name>Style` method, which is what G6 animates during updates.
10
+ */
11
+ import { Circle, ExtensionCategory, Label, register, } from '@antv/g6';
12
+ import { glowGradient } from './color.js';
13
+ import { GLOW_MIN_SCALE, HALO_RING_OFFSET, HALO_RING_WIDTH, LABEL_MAX_WIDTH, NODE_TYPE, TEXT_HALO_WIDTH, } from './constants.js';
14
+ /** Keys of ours that must not leak onto the key circle. */
15
+ const OWN = /^(ring|pulse|sublabel)/;
16
+ function num(v, fallback) {
17
+ return typeof v === 'number' && Number.isFinite(v) ? v : fallback;
18
+ }
19
+ function str(v, fallback) {
20
+ return typeof v === 'string' && v.length > 0 ? v : fallback;
21
+ }
22
+ export class KgdiffNode extends Circle {
23
+ extras(attributes) {
24
+ // G6 stores every style key on the element; ours are simply not in its declared type.
25
+ return attributes;
26
+ }
27
+ radius(attributes) {
28
+ return Math.min(...this.getSize(attributes)) / 2;
29
+ }
30
+ getKeyStyle(attributes) {
31
+ const style = super.getKeyStyle(attributes);
32
+ for (const key of Object.keys(style))
33
+ if (OWN.test(key))
34
+ Reflect.deleteProperty(style, key);
35
+ return style;
36
+ }
37
+ /** Dark: radial glow of radius max(haloRadius, 1.6·r). Light: 2-wide ring 5 outside r (or the ring). */
38
+ getHaloStyle(attributes) {
39
+ if (attributes.halo === false)
40
+ return false;
41
+ const a = this.extras(attributes);
42
+ const r = this.radius(attributes);
43
+ const color = str(attributes.haloStroke, '#888');
44
+ const opacity = num(attributes.opacity, 1) * num(attributes.haloStrokeOpacity, 0);
45
+ const common = { opacity, pointerEvents: 'none', zIndex: -2, lineDash: 0 };
46
+ if (a.haloGlow !== false) {
47
+ return {
48
+ ...common,
49
+ r: Math.max(num(a.haloRadius, 0), GLOW_MIN_SCALE * r),
50
+ fill: glowGradient(color),
51
+ stroke: 'none',
52
+ lineWidth: 0,
53
+ };
54
+ }
55
+ const ringOuter = a.ring === true ? r + num(a.ringGap, 0) + num(a.ringLineWidth, 0) / 2 : 0;
56
+ const base = Math.max(num(a.haloRadius, r), 0);
57
+ return {
58
+ ...common,
59
+ r: Math.max(base + HALO_RING_OFFSET, ringOuter + 1.5 + HALO_RING_WIDTH / 2),
60
+ fill: 'none',
61
+ stroke: color,
62
+ lineWidth: HALO_RING_WIDTH,
63
+ };
64
+ }
65
+ /** Concentric ring at r + gap. */
66
+ getRingStyle(attributes) {
67
+ const a = this.extras(attributes);
68
+ const width = num(a.ringLineWidth, 0);
69
+ if (a.ring !== true || width <= 0)
70
+ return false;
71
+ return {
72
+ r: this.radius(attributes) + num(a.ringGap, 0),
73
+ fill: 'none',
74
+ stroke: str(a.ringStroke, '#888'),
75
+ lineWidth: width,
76
+ opacity: num(attributes.opacity, 1) * num(a.ringOpacity, 1),
77
+ pointerEvents: 'none',
78
+ zIndex: -1,
79
+ };
80
+ }
81
+ /** One expanding ring that fades out as `pulse` goes 0 → 1 (native renderer geometry). */
82
+ getPulseStyle(attributes) {
83
+ const a = this.extras(attributes);
84
+ const p = num(a.pulse, 0);
85
+ if (!(p > 0 && p < 1))
86
+ return false;
87
+ const r = this.radius(attributes);
88
+ const fade = 1 - p;
89
+ return {
90
+ r: r + 3 + p * (12 + r * 0.6),
91
+ fill: 'none',
92
+ stroke: str(a.pulseStroke, '#888'),
93
+ lineWidth: 0.75 + 1.75 * fade,
94
+ opacity: num(attributes.opacity, 1) * fade * fade * 0.85,
95
+ pointerEvents: 'none',
96
+ zIndex: -1,
97
+ };
98
+ }
99
+ /** The old name, struck through, `sublabelOffsetY` below the node (like the primary label). */
100
+ getSublabelStyle(attributes) {
101
+ const a = this.extras(attributes);
102
+ const text = typeof a.sublabelText === 'string' ? a.sublabelText : '';
103
+ if (a.sublabel !== true || text.length === 0)
104
+ return false;
105
+ const key = this.getShape('key');
106
+ const bottom = key ? key.getLocalBounds().max[1] : this.radius(attributes);
107
+ const opacity = num(a.sublabelOpacity, 1);
108
+ const fill = str(a.sublabelFill, '#888');
109
+ return {
110
+ text,
111
+ fill,
112
+ fontSize: num(a.sublabelFontSize, 11),
113
+ fontWeight: num(a.sublabelFontWeight, 400),
114
+ fontFamily: str(a.sublabelFontFamily, 'system-ui, sans-serif'),
115
+ opacity,
116
+ textAlign: 'center',
117
+ textBaseline: 'top',
118
+ // Struck by `getSubstrikeStyle`; G's own decoration ignores its color (see below).
119
+ textDecorationLine: 'none',
120
+ stroke: str(a.sublabelStroke, 'transparent'),
121
+ lineWidth: TEXT_HALO_WIDTH,
122
+ strokeOpacity: num(a.sublabelStrokeOpacity, 0),
123
+ lineJoin: 'round',
124
+ wordWrap: true,
125
+ wordWrapWidth: LABEL_MAX_WIDTH,
126
+ maxLines: 1,
127
+ textOverflow: '…',
128
+ transform: [['translate', 0, num(bottom, 0) + num(a.sublabelOffsetY, 0)]],
129
+ pointerEvents: 'none',
130
+ zIndex: 0,
131
+ };
132
+ }
133
+ /**
134
+ * G 6.3 keeps `textDecorationColor` unparsed and then reads `.r/.g/.b` from it, so a
135
+ * `line-through` is drawn in whatever stroke style is current — the background-colored text
136
+ * halo, i.e. invisible. kgdiff-node turns G's decoration off and strikes with a line instead.
137
+ */
138
+ getLabelStyle(attributes) {
139
+ const style = super.getLabelStyle(attributes);
140
+ return style === false ? false : { ...style, textDecorationLine: 'none' };
141
+ }
142
+ /** A 1-wide line through the middle of a label shape's text, in node coordinates. */
143
+ strike(shape, color, opacity) {
144
+ const label = this.getShape(shape);
145
+ if (!label)
146
+ return false;
147
+ // Local bounds include the text halo's stroke; G also shifts the text by half of it.
148
+ const b = label.getLocalBounds();
149
+ const inset = TEXT_HALO_WIDTH / 2;
150
+ const x1 = b.min[0] + inset;
151
+ const x2 = b.max[0] - inset;
152
+ const y = (b.min[1] + b.max[1]) / 2;
153
+ if (!(x2 > x1) || !Number.isFinite(y))
154
+ return false;
155
+ return { x1, y1: y, x2, y2: y, stroke: color, lineWidth: 1, opacity, pointerEvents: 'none' };
156
+ }
157
+ getStrikeStyle(attributes) {
158
+ if (attributes.label === false || attributes.labelTextDecorationLine !== 'line-through') {
159
+ return false;
160
+ }
161
+ const color = str(attributes.labelFill, '#888');
162
+ return this.strike('label', color, num(attributes.labelOpacity, num(attributes.opacity, 1)));
163
+ }
164
+ getSubstrikeStyle(attributes) {
165
+ const a = this.extras(attributes);
166
+ if (a.sublabel !== true || a.sublabelTextDecorationLine !== 'line-through')
167
+ return false;
168
+ return this.strike('sublabel', str(a.sublabelFill, '#888'), num(a.sublabelOpacity, 1));
169
+ }
170
+ render(attributes = this.parsedAttributes, container = this) {
171
+ super.render(attributes, container);
172
+ if (!this.getShape('key'))
173
+ return;
174
+ this.upsert('ring', 'circle', this.getRingStyle(attributes), container);
175
+ this.upsert('pulse', 'circle', this.getPulseStyle(attributes), container);
176
+ this.upsert('sublabel', Label, this.getSublabelStyle(attributes), container);
177
+ this.upsert('strike', 'line', this.getStrikeStyle(attributes), container);
178
+ this.upsert('substrike', 'line', this.getSubstrikeStyle(attributes), container);
179
+ }
180
+ }
181
+ let registered = false;
182
+ /** Register `kgdiff-node` with G6 (once per module instance). */
183
+ export function registerKgdiffNode() {
184
+ if (registered)
185
+ return;
186
+ register(ExtensionCategory.NODE, NODE_TYPE, KgdiffNode);
187
+ registered = true;
188
+ }
189
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,MAAM,EAEN,iBAAiB,EACjB,KAAK,EAEL,QAAQ,GACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAkCxB,2DAA2D;AAC3D,MAAM,GAAG,GAAG,wBAAwB,CAAC;AAErC,SAAS,GAAG,CAAC,CAAU,EAAE,QAAgB;IACvC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,SAAS,GAAG,CAAC,CAAU,EAAE,QAAgB;IACvC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC;AAED,MAAM,OAAO,UAAW,SAAQ,MAAM;IAC5B,MAAM,CAAC,UAAiB;QAC9B,sFAAsF;QACtF,OAAO,UAA4B,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,UAAiB;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAEkB,WAAW,CAAC,UAAiB;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wGAAwG;IACrF,YAAY,CAAC,UAAiB;QAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO;gBACL,GAAG,MAAM;gBACT,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;gBACrD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;gBACzB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO;YACL,GAAG,MAAM;YACT,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,gBAAgB,EAAE,SAAS,GAAG,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC;YAC3E,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;IAED,kCAAkC;IACxB,YAAY,CAAC,UAAiB;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;YACjC,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3D,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,CAAC,CAAC;SACX,CAAC;IACJ,CAAC;IAED,0FAA0F;IAChF,aAAa,CAAC,UAAiB;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO;YACL,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YAC7B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC;YAClC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;YAC7B,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;YACxD,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,CAAC,CAAC;SACX,CAAC;IACJ,CAAC;IAED,+FAA+F;IACrF,gBAAgB,CAAC,UAAiB;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,IAAI;YACJ,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACrC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC;YAC1C,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;YAC9D,OAAO;YACP,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,KAAK;YACnB,mFAAmF;YACnF,kBAAkB,EAAE,MAAM;YAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC;YAC5C,SAAS,EAAE,eAAe;YAC1B,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,eAAe;YAC9B,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACgB,aAAa,CAAC,UAAiB;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC5E,CAAC;IAED,qFAAqF;IAC7E,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,qFAAqF;QACrF,MAAM,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,GAAG,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC/F,CAAC;IAES,cAAc,CAAC,UAAiB;QACxC,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,IAAI,UAAU,CAAC,uBAAuB,KAAK,cAAc,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IAES,iBAAiB,CAAC,UAAiB;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,0BAA0B,KAAK,cAAc;YAAE,OAAO,KAAK,CAAC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAEe,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAc,IAAI;QACpF,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;IAClF,CAAC;CACF;AAED,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,iEAAiE;AACjE,MAAM,UAAU,kBAAkB;IAChC,IAAI,UAAU;QAAE,OAAO;IACvB,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The G6 options `createDiffGraph` generates: no G6 theme (so no theme state styles, palettes or
3
+ * default animations leak into kgdiff's encodings), a background plugin carrying the canvas
4
+ * color, kgdiff-node, private hover states, and update animations for the fields kgdiff changes.
5
+ */
6
+ import type { EdgeData, GraphOptions, IEvent, NodeData } from '@antv/g6';
7
+ import type { Theme } from '@kgdiff/scene';
8
+ type NodeStyle = NonNullable<NodeData['style']>;
9
+ type EdgeStyle = NonNullable<EdgeData['style']>;
10
+ /**
11
+ * Hover on a node, as the resolver does it: a 2-wide stroke in the family's strong color
12
+ * (secondary text color for context), drawn on top, label revealed even below its LOD zoom.
13
+ */
14
+ export declare function hoverNodeStyle(datum: NodeData, theme: Theme): NodeStyle;
15
+ /** Hover on an edge: at least 2.5 wide, arrowhead, on top, its label shown. */
16
+ export declare function hoverEdgeStyle(datum: EdgeData, theme: Theme): EdgeStyle;
17
+ export interface GeneratedOptionsInput {
18
+ readonly container: HTMLElement | string;
19
+ readonly data: NonNullable<GraphOptions['data']>;
20
+ readonly theme: () => Theme;
21
+ readonly interactive: boolean;
22
+ /** Whether a pointer event may activate the hover state. */
23
+ readonly hoverable: (event: IEvent) => boolean;
24
+ }
25
+ export declare function generatedOptions(input: GeneratedOptionsInput): GraphOptions;
26
+ /**
27
+ * User options over generated ones: `behaviors`, `plugins` and `transforms` are appended to the
28
+ * generated lists; plain objects (`node`, `edge`, `node.state`…) merge recursively; everything
29
+ * else (arrays, functions, primitives) from `user` replaces the generated value.
30
+ */
31
+ export declare function mergeG6Options(generated: GraphOptions, user: Readonly<Record<string, unknown>> | undefined): GraphOptions;
32
+ export {};
33
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAczD,KAAK,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,KAAK,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAchD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAiBvE;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAkBvE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAChD;AAiDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAkC3E;AAyBD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GAClD,YAAY,CAYd"}