@shumoku/core 0.1.0 → 0.2.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.
- package/README.md +56 -0
- package/dist/constants.d.ts +23 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +25 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/layout/hierarchical.d.ts +12 -39
- package/dist/layout/hierarchical.d.ts.map +1 -1
- package/dist/layout/hierarchical.js +697 -1015
- package/dist/layout/hierarchical.js.map +1 -1
- package/dist/models/types.d.ts +30 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/renderer/svg.d.ts +31 -5
- package/dist/renderer/svg.d.ts.map +1 -1
- package/dist/renderer/svg.js +312 -85
- package/dist/renderer/svg.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +35 -0
- package/src/index.ts +3 -0
- package/src/layout/hierarchical.ts +805 -1127
- package/src/models/types.ts +37 -0
- package/src/renderer/svg.ts +368 -88
- package/dist/renderer/components/index.d.ts +0 -8
- package/dist/renderer/components/index.d.ts.map +0 -1
- package/dist/renderer/components/index.js +0 -8
- package/dist/renderer/components/index.js.map +0 -1
- package/dist/renderer/components/link-renderer.d.ts +0 -11
- package/dist/renderer/components/link-renderer.d.ts.map +0 -1
- package/dist/renderer/components/link-renderer.js +0 -340
- package/dist/renderer/components/link-renderer.js.map +0 -1
- package/dist/renderer/components/node-renderer.d.ts +0 -14
- package/dist/renderer/components/node-renderer.d.ts.map +0 -1
- package/dist/renderer/components/node-renderer.js +0 -242
- package/dist/renderer/components/node-renderer.js.map +0 -1
- package/dist/renderer/components/port-renderer.d.ts +0 -8
- package/dist/renderer/components/port-renderer.d.ts.map +0 -1
- package/dist/renderer/components/port-renderer.js +0 -85
- package/dist/renderer/components/port-renderer.js.map +0 -1
- package/dist/renderer/components/subgraph-renderer.d.ts +0 -13
- package/dist/renderer/components/subgraph-renderer.d.ts.map +0 -1
- package/dist/renderer/components/subgraph-renderer.js +0 -85
- package/dist/renderer/components/subgraph-renderer.js.map +0 -1
- package/dist/renderer/icon-registry/index.d.ts +0 -6
- package/dist/renderer/icon-registry/index.d.ts.map +0 -1
- package/dist/renderer/icon-registry/index.js +0 -5
- package/dist/renderer/icon-registry/index.js.map +0 -1
- package/dist/renderer/icon-registry/registry.d.ts +0 -25
- package/dist/renderer/icon-registry/registry.d.ts.map +0 -1
- package/dist/renderer/icon-registry/registry.js +0 -85
- package/dist/renderer/icon-registry/registry.js.map +0 -1
- package/dist/renderer/icon-registry/types.d.ts +0 -44
- package/dist/renderer/icon-registry/types.d.ts.map +0 -1
- package/dist/renderer/icon-registry/types.js +0 -5
- package/dist/renderer/icon-registry/types.js.map +0 -1
- package/dist/renderer/render-model/builder.d.ts +0 -43
- package/dist/renderer/render-model/builder.d.ts.map +0 -1
- package/dist/renderer/render-model/builder.js +0 -646
- package/dist/renderer/render-model/builder.js.map +0 -1
- package/dist/renderer/render-model/index.d.ts +0 -6
- package/dist/renderer/render-model/index.d.ts.map +0 -1
- package/dist/renderer/render-model/index.js +0 -5
- package/dist/renderer/render-model/index.js.map +0 -1
- package/dist/renderer/render-model/types.d.ts +0 -216
- package/dist/renderer/render-model/types.d.ts.map +0 -1
- package/dist/renderer/render-model/types.js +0 -6
- package/dist/renderer/render-model/types.js.map +0 -1
- package/dist/renderer/renderer-types.d.ts +0 -55
- package/dist/renderer/renderer-types.d.ts.map +0 -1
- package/dist/renderer/renderer-types.js +0 -5
- package/dist/renderer/renderer-types.js.map +0 -1
- package/dist/renderer/svg-builder.d.ts +0 -152
- package/dist/renderer/svg-builder.d.ts.map +0 -1
- package/dist/renderer/svg-builder.js +0 -176
- package/dist/renderer/svg-builder.js.map +0 -1
- package/dist/renderer/svg-dom/builders/defs.d.ts +0 -10
- package/dist/renderer/svg-dom/builders/defs.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/defs.js +0 -82
- package/dist/renderer/svg-dom/builders/defs.js.map +0 -1
- package/dist/renderer/svg-dom/builders/index.d.ts +0 -9
- package/dist/renderer/svg-dom/builders/index.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/index.js +0 -9
- package/dist/renderer/svg-dom/builders/index.js.map +0 -1
- package/dist/renderer/svg-dom/builders/link.d.ts +0 -18
- package/dist/renderer/svg-dom/builders/link.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/link.js +0 -188
- package/dist/renderer/svg-dom/builders/link.js.map +0 -1
- package/dist/renderer/svg-dom/builders/node.d.ts +0 -15
- package/dist/renderer/svg-dom/builders/node.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/node.js +0 -262
- package/dist/renderer/svg-dom/builders/node.js.map +0 -1
- package/dist/renderer/svg-dom/builders/subgraph.d.ts +0 -14
- package/dist/renderer/svg-dom/builders/subgraph.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/subgraph.js +0 -63
- package/dist/renderer/svg-dom/builders/subgraph.js.map +0 -1
- package/dist/renderer/svg-dom/builders/utils.d.ts +0 -40
- package/dist/renderer/svg-dom/builders/utils.d.ts.map +0 -1
- package/dist/renderer/svg-dom/builders/utils.js +0 -79
- package/dist/renderer/svg-dom/builders/utils.js.map +0 -1
- package/dist/renderer/svg-dom/index.d.ts +0 -9
- package/dist/renderer/svg-dom/index.d.ts.map +0 -1
- package/dist/renderer/svg-dom/index.js +0 -7
- package/dist/renderer/svg-dom/index.js.map +0 -1
- package/dist/renderer/svg-dom/interaction.d.ts +0 -69
- package/dist/renderer/svg-dom/interaction.d.ts.map +0 -1
- package/dist/renderer/svg-dom/interaction.js +0 -296
- package/dist/renderer/svg-dom/interaction.js.map +0 -1
- package/dist/renderer/svg-dom/renderer.d.ts +0 -47
- package/dist/renderer/svg-dom/renderer.d.ts.map +0 -1
- package/dist/renderer/svg-dom/renderer.js +0 -188
- package/dist/renderer/svg-dom/renderer.js.map +0 -1
- package/dist/renderer/svg-string/builders/defs.d.ts +0 -10
- package/dist/renderer/svg-string/builders/defs.d.ts.map +0 -1
- package/dist/renderer/svg-string/builders/defs.js +0 -43
- package/dist/renderer/svg-string/builders/defs.js.map +0 -1
- package/dist/renderer/svg-string/builders/link.d.ts +0 -10
- package/dist/renderer/svg-string/builders/link.d.ts.map +0 -1
- package/dist/renderer/svg-string/builders/link.js +0 -149
- package/dist/renderer/svg-string/builders/link.js.map +0 -1
- package/dist/renderer/svg-string/builders/node.d.ts +0 -10
- package/dist/renderer/svg-string/builders/node.d.ts.map +0 -1
- package/dist/renderer/svg-string/builders/node.js +0 -134
- package/dist/renderer/svg-string/builders/node.js.map +0 -1
- package/dist/renderer/svg-string/builders/subgraph.d.ts +0 -10
- package/dist/renderer/svg-string/builders/subgraph.d.ts.map +0 -1
- package/dist/renderer/svg-string/builders/subgraph.js +0 -59
- package/dist/renderer/svg-string/builders/subgraph.js.map +0 -1
- package/dist/renderer/svg-string/index.d.ts +0 -5
- package/dist/renderer/svg-string/index.d.ts.map +0 -1
- package/dist/renderer/svg-string/index.js +0 -5
- package/dist/renderer/svg-string/index.js.map +0 -1
- package/dist/renderer/svg-string/renderer.d.ts +0 -17
- package/dist/renderer/svg-string/renderer.d.ts.map +0 -1
- package/dist/renderer/svg-string/renderer.js +0 -53
- package/dist/renderer/svg-string/renderer.js.map +0 -1
- package/dist/renderer/text-measurer/browser-measurer.d.ts +0 -25
- package/dist/renderer/text-measurer/browser-measurer.d.ts.map +0 -1
- package/dist/renderer/text-measurer/browser-measurer.js +0 -85
- package/dist/renderer/text-measurer/browser-measurer.js.map +0 -1
- package/dist/renderer/text-measurer/fallback-measurer.d.ts +0 -22
- package/dist/renderer/text-measurer/fallback-measurer.d.ts.map +0 -1
- package/dist/renderer/text-measurer/fallback-measurer.js +0 -113
- package/dist/renderer/text-measurer/fallback-measurer.js.map +0 -1
- package/dist/renderer/text-measurer/index.d.ts +0 -13
- package/dist/renderer/text-measurer/index.d.ts.map +0 -1
- package/dist/renderer/text-measurer/index.js +0 -35
- package/dist/renderer/text-measurer/index.js.map +0 -1
- package/dist/renderer/text-measurer/types.d.ts +0 -30
- package/dist/renderer/text-measurer/types.d.ts.map +0 -1
- package/dist/renderer/text-measurer/types.js +0 -5
- package/dist/renderer/text-measurer/types.js.map +0 -1
- package/dist/renderer/theme.d.ts +0 -29
- package/dist/renderer/theme.d.ts.map +0 -1
- package/dist/renderer/theme.js +0 -80
- package/dist/renderer/theme.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @shumoku/core
|
|
2
|
+
|
|
3
|
+
Core library for Shumoku network topology visualization.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @shumoku/core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- **Data models** - Type-safe network topology models (Device, Port, Link, Module)
|
|
14
|
+
- **Layout engines** - Automatic positioning with ELK.js (hierarchical layout)
|
|
15
|
+
- **SVG renderer** - High-quality vector output
|
|
16
|
+
- **Themes** - Built-in modern and dark themes
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { NetworkGraph, HierarchicalLayoutEngine, SvgRenderer } from '@shumoku/core'
|
|
22
|
+
|
|
23
|
+
// Create a network graph
|
|
24
|
+
const graph: NetworkGraph = {
|
|
25
|
+
version: '1.0.0',
|
|
26
|
+
devices: [
|
|
27
|
+
{ id: 'router1', name: 'Router', type: 'router' },
|
|
28
|
+
{ id: 'switch1', name: 'Switch', type: 'l2-switch' }
|
|
29
|
+
],
|
|
30
|
+
links: [
|
|
31
|
+
{ id: 'link1', source: 'router1', target: 'switch1' }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Layout the graph
|
|
36
|
+
const engine = new HierarchicalLayoutEngine()
|
|
37
|
+
const layout = await engine.layout(graph)
|
|
38
|
+
|
|
39
|
+
// Render to SVG
|
|
40
|
+
const renderer = new SvgRenderer()
|
|
41
|
+
const svg = renderer.render(layout)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Related Packages
|
|
45
|
+
|
|
46
|
+
- [`@shumoku/parser-yaml`](https://www.npmjs.com/package/@shumoku/parser-yaml) - YAML parser for network definitions
|
|
47
|
+
- [`@shumoku/icons`](https://www.npmjs.com/package/@shumoku/icons) - Vendor-specific icons (Yamaha, Aruba, AWS, Juniper)
|
|
48
|
+
|
|
49
|
+
## Documentation
|
|
50
|
+
|
|
51
|
+
- [Playground](https://shumoku.packof.me/) - Interactive demo
|
|
52
|
+
- [GitHub](https://github.com/konoe-akitoshi/shumoku)
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Default icon size in pixels (both width and height for square icons) */
|
|
2
|
+
export declare const DEFAULT_ICON_SIZE = 40;
|
|
3
|
+
/** Gap between icon and label in pixels */
|
|
4
|
+
export declare const ICON_LABEL_GAP = 8;
|
|
5
|
+
/** Line height for node labels in pixels */
|
|
6
|
+
export declare const LABEL_LINE_HEIGHT = 16;
|
|
7
|
+
/** Vertical padding inside node box in pixels */
|
|
8
|
+
export declare const NODE_VERTICAL_PADDING = 16;
|
|
9
|
+
/** Horizontal padding inside node box in pixels */
|
|
10
|
+
export declare const NODE_HORIZONTAL_PADDING = 16;
|
|
11
|
+
/** Minimum spacing between ports in pixels (fallback when no labels) */
|
|
12
|
+
export declare const MIN_PORT_SPACING = 48;
|
|
13
|
+
/** Port label font size in pixels */
|
|
14
|
+
export declare const PORT_LABEL_FONT_SIZE = 9;
|
|
15
|
+
/** Character width ratio relative to font size (for proportional fonts ~0.55, monospace ~0.6) */
|
|
16
|
+
export declare const CHAR_WIDTH_RATIO = 0.55;
|
|
17
|
+
/** Padding around port label for spacing calculation */
|
|
18
|
+
export declare const PORT_LABEL_PADDING = 16;
|
|
19
|
+
/** Maximum icon width as percentage of node width (0.0 - 1.0) */
|
|
20
|
+
export declare const MAX_ICON_WIDTH_RATIO = 0.6;
|
|
21
|
+
/** Estimated character width for node label width calculation (larger font) */
|
|
22
|
+
export declare const ESTIMATED_CHAR_WIDTH = 7;
|
|
23
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,2CAA2C;AAC3C,eAAO,MAAM,cAAc,IAAI,CAAA;AAE/B,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,iDAAiD;AACjD,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,mDAAmD;AACnD,eAAO,MAAM,uBAAuB,KAAK,CAAA;AAEzC,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,qCAAqC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAErC,iGAAiG;AACjG,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,IAAI,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Layout and rendering constants
|
|
2
|
+
// These values are shared between layout engines and renderers to ensure consistency
|
|
3
|
+
/** Default icon size in pixels (both width and height for square icons) */
|
|
4
|
+
export const DEFAULT_ICON_SIZE = 40;
|
|
5
|
+
/** Gap between icon and label in pixels */
|
|
6
|
+
export const ICON_LABEL_GAP = 8;
|
|
7
|
+
/** Line height for node labels in pixels */
|
|
8
|
+
export const LABEL_LINE_HEIGHT = 16;
|
|
9
|
+
/** Vertical padding inside node box in pixels */
|
|
10
|
+
export const NODE_VERTICAL_PADDING = 16;
|
|
11
|
+
/** Horizontal padding inside node box in pixels */
|
|
12
|
+
export const NODE_HORIZONTAL_PADDING = 16;
|
|
13
|
+
/** Minimum spacing between ports in pixels (fallback when no labels) */
|
|
14
|
+
export const MIN_PORT_SPACING = 48;
|
|
15
|
+
/** Port label font size in pixels */
|
|
16
|
+
export const PORT_LABEL_FONT_SIZE = 9;
|
|
17
|
+
/** Character width ratio relative to font size (for proportional fonts ~0.55, monospace ~0.6) */
|
|
18
|
+
export const CHAR_WIDTH_RATIO = 0.55;
|
|
19
|
+
/** Padding around port label for spacing calculation */
|
|
20
|
+
export const PORT_LABEL_PADDING = 16;
|
|
21
|
+
/** Maximum icon width as percentage of node width (0.0 - 1.0) */
|
|
22
|
+
export const MAX_ICON_WIDTH_RATIO = 0.6;
|
|
23
|
+
/** Estimated character width for node label width calculation (larger font) */
|
|
24
|
+
export const ESTIMATED_CHAR_WIDTH = 7;
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,qFAAqF;AAErF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAEnC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAE/B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAEnC,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,mDAAmD;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAEzC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,qCAAqC;AACrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAErC,iGAAiG;AACjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAEpC,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAEpC,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,kBAAkB,CAAA;AAGhC,cAAc,qBAAqB,CAAA;AAGnC,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,kBAAkB,CAAA;AAGhC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,gBAAgB,CAAA;AAG9B,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,8 @@ export * from './themes/index.js';
|
|
|
11
11
|
export * from './icons/index.js';
|
|
12
12
|
// Renderer
|
|
13
13
|
export * from './renderer/index.js';
|
|
14
|
+
// Constants
|
|
15
|
+
export * from './constants.js';
|
|
14
16
|
// Version
|
|
15
17
|
export const version = '0.0.0';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,QAAQ;AACR,cAAc,kBAAkB,CAAA;AAEhC,WAAW;AACX,cAAc,qBAAqB,CAAA;AAEnC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,QAAQ;AACR,cAAc,kBAAkB,CAAA;AAEhC,WAAW;AACX,cAAc,qBAAqB,CAAA;AAEnC,YAAY;AACZ,cAAc,gBAAgB,CAAA;AAE9B,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
@@ -17,57 +17,30 @@ export declare class HierarchicalLayout {
|
|
|
17
17
|
private elk;
|
|
18
18
|
constructor(options?: HierarchicalLayoutOptions);
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Calculate dynamic spacing based on graph complexity
|
|
21
21
|
*/
|
|
22
|
+
private calculateDynamicSpacing;
|
|
22
23
|
private getEffectiveOptions;
|
|
23
24
|
layoutAsync(graph: NetworkGraph): Promise<LayoutResult>;
|
|
24
25
|
/**
|
|
25
|
-
* Build ELK graph
|
|
26
|
+
* Build ELK graph - uses container nodes for HA pairs
|
|
26
27
|
*/
|
|
27
|
-
private
|
|
28
|
+
private buildElkGraph;
|
|
28
29
|
/**
|
|
29
|
-
* Extract layout result
|
|
30
|
+
* Extract layout result from ELK output - uses ELK's edge routing directly
|
|
30
31
|
*/
|
|
31
|
-
private
|
|
32
|
-
/**
|
|
33
|
-
* Reorder ports on each node based on connected node positions to minimize edge crossings
|
|
34
|
-
*/
|
|
35
|
-
private reorderPortsByConnectedNodePositions;
|
|
32
|
+
private extractLayoutResult;
|
|
36
33
|
layout(graph: NetworkGraph): LayoutResult;
|
|
37
34
|
private toElkDirection;
|
|
38
35
|
private calculateNodeHeight;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* Port positions are from ELK - lines connect FROM the ports
|
|
42
|
-
*/
|
|
43
|
-
private calculateEdgePathWithPorts;
|
|
44
|
-
/**
|
|
45
|
-
* Get control point position based on port side
|
|
46
|
-
*/
|
|
47
|
-
private getControlPointForSide;
|
|
48
|
-
private calculateFallbackLayout;
|
|
36
|
+
private calculatePortSpacing;
|
|
37
|
+
private calculateNodeWidth;
|
|
49
38
|
private calculateTotalBounds;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* Returns array of [nodeA, nodeB] pairs that should be placed on the same layer
|
|
53
|
-
*/
|
|
39
|
+
private calculateFallbackLayout;
|
|
40
|
+
/** Detect HA pairs from redundancy links */
|
|
54
41
|
private detectHAPairs;
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
*/
|
|
58
|
-
private adjustLinkDistances;
|
|
59
|
-
/**
|
|
60
|
-
* Calculate edge path with offset for multiple connections
|
|
61
|
-
*/
|
|
62
|
-
private calculateEdgePathWithOffset;
|
|
63
|
-
/**
|
|
64
|
-
* Recalculate all edge paths with port offset distribution
|
|
65
|
-
*/
|
|
66
|
-
private recalculateAllEdges;
|
|
67
|
-
/**
|
|
68
|
-
* Recalculate subgraph bounds to contain all child nodes after adjustments
|
|
69
|
-
*/
|
|
70
|
-
private recalculateSubgraphBounds;
|
|
42
|
+
/** Generate orthogonal path between two points */
|
|
43
|
+
private generateOrthogonalPath;
|
|
71
44
|
}
|
|
72
45
|
export declare const hierarchicalLayout: HierarchicalLayout;
|
|
73
46
|
//# sourceMappingURL=hierarchical.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchical.d.ts","sourceRoot":"","sources":["../../src/layout/hierarchical.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,YAAY,EAGjB,KAAK,YAAY,EAMjB,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"hierarchical.d.ts","sourceRoot":"","sources":["../../src/layout/hierarchical.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,YAAY,EAGjB,KAAK,YAAY,EAMjB,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAA;AAmH3B,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAgBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,GAAG,CAA0B;gBAEzB,OAAO,CAAC,EAAE,yBAAyB;IAK/C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,mBAAmB;IAarB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IA8B7D;;OAEG;IACH,OAAO,CAAC,aAAa;IAuXrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqR3B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IAYzC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,mBAAmB;IA6D3B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,uBAAuB;IAsE/B,4CAA4C;IAC5C,OAAO,CAAC,aAAa;IAmBrB,kDAAkD;IAClD,OAAO,CAAC,sBAAsB;CAsB/B;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAA"}
|