@neo4j-nvl/base 1.0.0-d3f03590 → 1.0.0-e87b42cc

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.
@@ -1,12 +1,8 @@
1
- import type { Channel } from '../../modules/dataset';
2
1
  import type { NvlState } from '../../modules/state/types';
3
2
  import type { Node } from '../../types/graph-element';
4
3
  import ImageCache from './shared/ImageCache';
5
4
  import ArrowBundler from './shared/arrows/ArrowBundler';
6
5
  import type { RelationshipToRender } from './shared/types';
7
- export type RendererOptions = {
8
- relationshipThreshold?: number;
9
- };
10
6
  /**
11
7
  * Base class for renderers (Canvas and SVG) that provides common functionality
12
8
  */
@@ -21,7 +17,7 @@ export default abstract class BaseRenderer {
21
17
  protected relVersion: number;
22
18
  protected waypointVersion: number;
23
19
  protected channelId: string;
24
- constructor(state: NvlState, channelId: string, options?: RendererOptions);
20
+ constructor(state: NvlState, relationshipThreshold: number, channelId: string);
25
21
  /**
26
22
  * Gets relationships to render, sorted by their rendering order
27
23
  * @param showCaptions - Whether to show relationship captions
@@ -50,7 +46,7 @@ export default abstract class BaseRenderer {
50
46
  * Hook for subclasses to handle node version updates.
51
47
  * Override this to add custom node update handling.
52
48
  */
53
- protected onNodeVersionUpdate(nodeChannel: Channel<Node>): void;
49
+ protected onNodeVersionUpdate(nodeChannel: any): void;
54
50
  /**
55
51
  * Checks if a bounding box is off screen
56
52
  * @param boundingBox - The bounding box to check
@@ -1,9 +1,8 @@
1
- import type { Channel } from '../../../modules/dataset';
2
1
  import type { NvlState } from '../../../modules/state/types';
3
2
  import type { Node } from '../../../types/graph-element';
4
3
  import type { Point } from '../../../utils/geometry';
5
4
  import type { HitTargetNode, HitTargetRelationship } from '../../../utils/hittest';
6
- import BaseRenderer, { RendererOptions } from '../BaseRenderer';
5
+ import BaseRenderer from '../BaseRenderer';
7
6
  export default class CanvasRenderer extends BaseRenderer {
8
7
  private activeNodes;
9
8
  private canvas;
@@ -16,9 +15,11 @@ export default class CanvasRenderer extends BaseRenderer {
16
15
  * @param canvas {HTMLCanvasElement} - The canvas to render on.
17
16
  * @param context {CanvasRenderingContext2D} - The canvas context.
18
17
  * @param state {NvlState} - The state.
19
- * @param options {RendererOptions} - The visualization options.
18
+ * @param options {{ relationshipThreshold: number }} - The visualization options.
20
19
  */
21
- constructor(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D | null, state: NvlState, options?: RendererOptions);
20
+ constructor(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D | null, state: NvlState, { relationshipThreshold }?: {
21
+ relationshipThreshold?: number;
22
+ });
22
23
  /**
23
24
  * Checks if the renderer needs to run.
24
25
  * @returns Whether the renderer needs to run.
@@ -27,7 +28,7 @@ export default class CanvasRenderer extends BaseRenderer {
27
28
  /**
28
29
  * Override to handle Canvas-specific node channel updates
29
30
  */
30
- protected onNodeVersionUpdate(nodeChannel: Channel<Node>): void;
31
+ protected onNodeVersionUpdate(nodeChannel: any): void;
31
32
  /**
32
33
  * Override processUpdates to add Canvas-specific shadow logic
33
34
  */
@@ -1,5 +1,4 @@
1
1
  import type { Node } from '../../../../types/graph-element';
2
- import type { TextSegment } from '../types';
3
2
  /**
4
3
  * Returns the caption font size that should be used
5
4
  * for the given info level and node diameter.
@@ -17,7 +16,7 @@ export declare const infoLevelToFontSize: (infoLevel: number, nodeRadius?: numbe
17
16
  * @returns Caption rendering data including lines, styles, positioning, and font info
18
17
  */
19
18
  export declare function prepareNodeCaptionData(node: Node, zoomLevel: number, ctx?: CanvasRenderingContext2D): {
20
- lines: TextSegment[];
19
+ lines: any[];
21
20
  stylesPerChar: string[][];
22
21
  fullCaption: string;
23
22
  fontSize: number;
@@ -1,10 +1,12 @@
1
1
  import type { NvlState } from '../../../modules/state/types';
2
2
  import type { Node } from '../../../types/graph-element';
3
- import BaseRenderer, { RendererOptions } from '../BaseRenderer';
3
+ import BaseRenderer from '../BaseRenderer';
4
4
  export default class SvgRenderer extends BaseRenderer {
5
5
  private svg;
6
6
  private measurementContext;
7
- constructor(svg: SVGSVGElement, state: NvlState, options?: RendererOptions);
7
+ constructor(svg: SVGSVGElement, state: NvlState, { relationshipThreshold }?: {
8
+ relationshipThreshold?: number;
9
+ });
8
10
  needsToRun(): boolean;
9
11
  render(positionArray: Node[], positionBoundaries?: {
10
12
  centerX: number;
@@ -12,7 +12,6 @@ export declare const DefaultNodeColor = "#FFDF81";
12
12
  export declare const DefaultRelColor = "#818790";
13
13
  export declare const DefaultRelWidth = 1;
14
14
  export declare const MaxFlatRelWidth = 20;
15
- export declare const DefaultRelationshipThreshold = 0;
16
15
  export declare const DisabledItemColor = "#EDEDED";
17
16
  export declare const DisabledItemFontColor = "#DDDDDD";
18
17
  export declare const DefaultShadowColor = "#CFD1D4";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neo4j-nvl/base",
3
- "version": "1.0.0-d3f03590",
3
+ "version": "1.0.0-e87b42cc",
4
4
  "license": "SEE LICENSE IN 'LICENSE.txt'",
5
5
  "homepage": "https://neo4j.com/docs/nvl/current/",
6
6
  "description": "Base library for the Neo4j Visualization Library",
@@ -29,7 +29,7 @@
29
29
  "postpack": "rm LICENSE.txt && rm CHANGELOG.md"
30
30
  },
31
31
  "dependencies": {
32
- "@neo4j-nvl/layout-workers": "1.0.0-d3f03590",
32
+ "@neo4j-nvl/layout-workers": "1.0.0-e87b42cc",
33
33
  "@segment/analytics-next": "1.81.1",
34
34
  "color-string": "1.9.1",
35
35
  "d3-force": "3.0.0",