@dpuse/dpuse-tool-d3 0.0.2 → 0.0.4

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.
@@ -0,0 +1,29 @@
1
+ export type ErdDiagramNodeTypeId = 'child' | 'primary';
2
+ export interface ErdDiagramNode {
3
+ id: string;
4
+ label: string;
5
+ typeId: ErdDiagramNodeTypeId;
6
+ }
7
+ export interface ErdDiagramEdge {
8
+ source: string;
9
+ target: string;
10
+ }
11
+ export interface ErdDiagramData {
12
+ edges: ErdDiagramEdge[];
13
+ nodes: ErdDiagramNode[];
14
+ }
15
+ export interface ErdDiagramOptions {
16
+ nodeColors?: Record<ErdDiagramNodeTypeId, {
17
+ fill: string;
18
+ stroke: string;
19
+ }>;
20
+ nodeHeight?: number;
21
+ nodeWidth?: number;
22
+ padding?: number;
23
+ selfEdgeSize?: number;
24
+ }
25
+ export interface ErdDiagramHandle {
26
+ resize: () => void;
27
+ svg: SVGSVGElement;
28
+ }
29
+ export declare function renderErdDiagram(data: ErdDiagramData, renderTo: HTMLElement, options?: ErdDiagramOptions): ErdDiagramHandle;
@@ -1,9 +1,22 @@
1
1
  import { PresentationView } from '@dpuse/dpuse-shared/component/presentation';
2
+ import { ErdDiagramData, ErdDiagramOptions } from './erdDiagram';
3
+ import { NetworkDiagramData, NetworkDiagramOptions } from './networkDiagram';
2
4
  import { SankeyDiagramData, SankeyDiagramOptions } from './sankeyDiagram';
5
+ import { TreeDiagramNode, TreeDiagramOptions } from './treeDiagram';
6
+ export type { ErdDiagramData, ErdDiagramEdge, ErdDiagramNode, ErdDiagramNodeTypeId, ErdDiagramOptions } from './erdDiagram';
7
+ export type { NetworkDiagramData, NetworkDiagramLink, NetworkDiagramNode, NetworkDiagramOptions } from './networkDiagram';
3
8
  export type { SankeyDiagramData, SankeyDiagramLink, SankeyDiagramNode, SankeyDiagramOptions } from './sankeyDiagram';
9
+ export type { TreeDiagramNode, TreeDiagramNodeRoleId, TreeDiagramOptions } from './treeDiagram';
4
10
  export interface D3View extends PresentationView {
5
11
  svg: SVGSVGElement;
6
12
  }
13
+ export interface D3NetworkView extends D3View {
14
+ destroy: () => void;
15
+ triggerAutoLayout: () => void;
16
+ }
7
17
  export declare class D3Tool {
18
+ renderErdDiagram(data: ErdDiagramData, renderTo: HTMLElement, options?: ErdDiagramOptions, callback?: () => void): D3View;
19
+ renderNetworkDiagram(data: NetworkDiagramData, renderTo: HTMLElement, options?: NetworkDiagramOptions, callback?: () => void): D3NetworkView;
8
20
  renderSankeyDiagram(data: SankeyDiagramData, renderTo: HTMLElement, options?: SankeyDiagramOptions, callback?: () => void): D3View;
21
+ renderTreeDiagram(data: TreeDiagramNode, renderTo: HTMLElement, options?: TreeDiagramOptions, callback?: () => void): D3View;
9
22
  }
@@ -0,0 +1,22 @@
1
+ export interface NetworkDiagramNode {
2
+ id: string;
3
+ }
4
+ export interface NetworkDiagramLink {
5
+ source: string;
6
+ target: string;
7
+ }
8
+ export interface NetworkDiagramData {
9
+ links: NetworkDiagramLink[];
10
+ nodes: NetworkDiagramNode[];
11
+ }
12
+ export interface NetworkDiagramOptions {
13
+ chargeStrength?: number;
14
+ linkDistance?: number;
15
+ }
16
+ export interface NetworkDiagramHandle {
17
+ destroy: () => void;
18
+ resize: () => void;
19
+ svg: SVGSVGElement;
20
+ triggerAutoLayout: () => void;
21
+ }
22
+ export declare function renderNetworkDiagram(data: NetworkDiagramData, renderTo: HTMLElement, options?: NetworkDiagramOptions): NetworkDiagramHandle;
@@ -0,0 +1,22 @@
1
+ export type TreeDiagramNodeRoleId = 'branch' | 'leaf' | 'root';
2
+ export interface TreeDiagramNode {
3
+ children?: TreeDiagramNode[];
4
+ id: string;
5
+ label: string;
6
+ }
7
+ export interface TreeDiagramOptions {
8
+ levelGap?: number;
9
+ nodeColors?: Record<TreeDiagramNodeRoleId, {
10
+ fill: string;
11
+ stroke: string;
12
+ }>;
13
+ nodeHeight?: number;
14
+ nodeWidth?: number;
15
+ padding?: number;
16
+ siblingGap?: number;
17
+ }
18
+ export interface TreeDiagramHandle {
19
+ resize: () => void;
20
+ svg: SVGSVGElement;
21
+ }
22
+ export declare function renderTreeDiagram(data: TreeDiagramNode, renderTo: HTMLElement, options?: TreeDiagramOptions): TreeDiagramHandle;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dpuse/dpuse-tool-d3",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
- "description": "A TypeScript wrapper for D3 that implements the Data Positioning chart-rendering interface, starting with a Sankey diagram renderer built on d3-sankey.",
5
+ "description": "A TypeScript wrapper for D3 that implements the Data Positioning chart-rendering interface, providing ERD (dagre), Sankey (d3-sankey), network (d3-force), and tree (d3-hierarchy) diagram renderers.",
6
6
  "license": "MIT",
7
7
  "author": "Jonathan Terrell <terrell.jm@gmail.com>",
8
8
  "type": "module",
@@ -55,15 +55,26 @@
55
55
  "test": "node -e \"import('@dpuse/dpuse-development').then(m => m.testProject())\""
56
56
  },
57
57
  "dependencies": {
58
+ "@dagrejs/dagre": "^3.0.0",
58
59
  "@dpuse/dpuse-shared": "^0.3.758",
60
+ "d3-drag": "^3.0.0",
61
+ "d3-force": "^3.0.0",
62
+ "d3-hierarchy": "^3.1.2",
59
63
  "d3-sankey": "^0.12.3",
60
- "d3-selection": "^3.0.0"
64
+ "d3-selection": "^3.0.0",
65
+ "d3-shape": "^3.2.0",
66
+ "d3-zoom": "^3.0.0"
61
67
  },
62
68
  "devDependencies": {
63
69
  "@dpuse/dpuse-development": "^0.3.699",
64
70
  "@dpuse/eslint-config-dpuse": "^1.0.113",
71
+ "@types/d3-drag": "^3.0.7",
72
+ "@types/d3-force": "^3.0.10",
73
+ "@types/d3-hierarchy": "^3.1.7",
65
74
  "@types/d3-sankey": "^0.12.5",
66
75
  "@types/d3-selection": "^3.0.11",
76
+ "@types/d3-shape": "^3.1.8",
77
+ "@types/d3-zoom": "^3.0.8",
67
78
  "@types/node": "^26.1.2",
68
79
  "eslint": "^10.8.0",
69
80
  "happy-dom": "^20.11.1",
@@ -73,6 +84,6 @@
73
84
  "vite": "^8.2.0",
74
85
  "vite-plugin-dts": "^5.0.3",
75
86
  "vitest": "^4.1.10",
76
- "wrangler": "^4.116.0"
87
+ "wrangler": "^4.117.0"
77
88
  }
78
89
  }