@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.
Files changed (158) hide show
  1. package/README.md +56 -0
  2. package/dist/constants.d.ts +23 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +25 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/layout/hierarchical.d.ts +12 -39
  11. package/dist/layout/hierarchical.d.ts.map +1 -1
  12. package/dist/layout/hierarchical.js +697 -1015
  13. package/dist/layout/hierarchical.js.map +1 -1
  14. package/dist/models/types.d.ts +30 -0
  15. package/dist/models/types.d.ts.map +1 -1
  16. package/dist/models/types.js.map +1 -1
  17. package/dist/renderer/svg.d.ts +31 -5
  18. package/dist/renderer/svg.d.ts.map +1 -1
  19. package/dist/renderer/svg.js +312 -85
  20. package/dist/renderer/svg.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/constants.ts +35 -0
  23. package/src/index.ts +3 -0
  24. package/src/layout/hierarchical.ts +805 -1127
  25. package/src/models/types.ts +37 -0
  26. package/src/renderer/svg.ts +368 -88
  27. package/dist/renderer/components/index.d.ts +0 -8
  28. package/dist/renderer/components/index.d.ts.map +0 -1
  29. package/dist/renderer/components/index.js +0 -8
  30. package/dist/renderer/components/index.js.map +0 -1
  31. package/dist/renderer/components/link-renderer.d.ts +0 -11
  32. package/dist/renderer/components/link-renderer.d.ts.map +0 -1
  33. package/dist/renderer/components/link-renderer.js +0 -340
  34. package/dist/renderer/components/link-renderer.js.map +0 -1
  35. package/dist/renderer/components/node-renderer.d.ts +0 -14
  36. package/dist/renderer/components/node-renderer.d.ts.map +0 -1
  37. package/dist/renderer/components/node-renderer.js +0 -242
  38. package/dist/renderer/components/node-renderer.js.map +0 -1
  39. package/dist/renderer/components/port-renderer.d.ts +0 -8
  40. package/dist/renderer/components/port-renderer.d.ts.map +0 -1
  41. package/dist/renderer/components/port-renderer.js +0 -85
  42. package/dist/renderer/components/port-renderer.js.map +0 -1
  43. package/dist/renderer/components/subgraph-renderer.d.ts +0 -13
  44. package/dist/renderer/components/subgraph-renderer.d.ts.map +0 -1
  45. package/dist/renderer/components/subgraph-renderer.js +0 -85
  46. package/dist/renderer/components/subgraph-renderer.js.map +0 -1
  47. package/dist/renderer/icon-registry/index.d.ts +0 -6
  48. package/dist/renderer/icon-registry/index.d.ts.map +0 -1
  49. package/dist/renderer/icon-registry/index.js +0 -5
  50. package/dist/renderer/icon-registry/index.js.map +0 -1
  51. package/dist/renderer/icon-registry/registry.d.ts +0 -25
  52. package/dist/renderer/icon-registry/registry.d.ts.map +0 -1
  53. package/dist/renderer/icon-registry/registry.js +0 -85
  54. package/dist/renderer/icon-registry/registry.js.map +0 -1
  55. package/dist/renderer/icon-registry/types.d.ts +0 -44
  56. package/dist/renderer/icon-registry/types.d.ts.map +0 -1
  57. package/dist/renderer/icon-registry/types.js +0 -5
  58. package/dist/renderer/icon-registry/types.js.map +0 -1
  59. package/dist/renderer/render-model/builder.d.ts +0 -43
  60. package/dist/renderer/render-model/builder.d.ts.map +0 -1
  61. package/dist/renderer/render-model/builder.js +0 -646
  62. package/dist/renderer/render-model/builder.js.map +0 -1
  63. package/dist/renderer/render-model/index.d.ts +0 -6
  64. package/dist/renderer/render-model/index.d.ts.map +0 -1
  65. package/dist/renderer/render-model/index.js +0 -5
  66. package/dist/renderer/render-model/index.js.map +0 -1
  67. package/dist/renderer/render-model/types.d.ts +0 -216
  68. package/dist/renderer/render-model/types.d.ts.map +0 -1
  69. package/dist/renderer/render-model/types.js +0 -6
  70. package/dist/renderer/render-model/types.js.map +0 -1
  71. package/dist/renderer/renderer-types.d.ts +0 -55
  72. package/dist/renderer/renderer-types.d.ts.map +0 -1
  73. package/dist/renderer/renderer-types.js +0 -5
  74. package/dist/renderer/renderer-types.js.map +0 -1
  75. package/dist/renderer/svg-builder.d.ts +0 -152
  76. package/dist/renderer/svg-builder.d.ts.map +0 -1
  77. package/dist/renderer/svg-builder.js +0 -176
  78. package/dist/renderer/svg-builder.js.map +0 -1
  79. package/dist/renderer/svg-dom/builders/defs.d.ts +0 -10
  80. package/dist/renderer/svg-dom/builders/defs.d.ts.map +0 -1
  81. package/dist/renderer/svg-dom/builders/defs.js +0 -82
  82. package/dist/renderer/svg-dom/builders/defs.js.map +0 -1
  83. package/dist/renderer/svg-dom/builders/index.d.ts +0 -9
  84. package/dist/renderer/svg-dom/builders/index.d.ts.map +0 -1
  85. package/dist/renderer/svg-dom/builders/index.js +0 -9
  86. package/dist/renderer/svg-dom/builders/index.js.map +0 -1
  87. package/dist/renderer/svg-dom/builders/link.d.ts +0 -18
  88. package/dist/renderer/svg-dom/builders/link.d.ts.map +0 -1
  89. package/dist/renderer/svg-dom/builders/link.js +0 -188
  90. package/dist/renderer/svg-dom/builders/link.js.map +0 -1
  91. package/dist/renderer/svg-dom/builders/node.d.ts +0 -15
  92. package/dist/renderer/svg-dom/builders/node.d.ts.map +0 -1
  93. package/dist/renderer/svg-dom/builders/node.js +0 -262
  94. package/dist/renderer/svg-dom/builders/node.js.map +0 -1
  95. package/dist/renderer/svg-dom/builders/subgraph.d.ts +0 -14
  96. package/dist/renderer/svg-dom/builders/subgraph.d.ts.map +0 -1
  97. package/dist/renderer/svg-dom/builders/subgraph.js +0 -63
  98. package/dist/renderer/svg-dom/builders/subgraph.js.map +0 -1
  99. package/dist/renderer/svg-dom/builders/utils.d.ts +0 -40
  100. package/dist/renderer/svg-dom/builders/utils.d.ts.map +0 -1
  101. package/dist/renderer/svg-dom/builders/utils.js +0 -79
  102. package/dist/renderer/svg-dom/builders/utils.js.map +0 -1
  103. package/dist/renderer/svg-dom/index.d.ts +0 -9
  104. package/dist/renderer/svg-dom/index.d.ts.map +0 -1
  105. package/dist/renderer/svg-dom/index.js +0 -7
  106. package/dist/renderer/svg-dom/index.js.map +0 -1
  107. package/dist/renderer/svg-dom/interaction.d.ts +0 -69
  108. package/dist/renderer/svg-dom/interaction.d.ts.map +0 -1
  109. package/dist/renderer/svg-dom/interaction.js +0 -296
  110. package/dist/renderer/svg-dom/interaction.js.map +0 -1
  111. package/dist/renderer/svg-dom/renderer.d.ts +0 -47
  112. package/dist/renderer/svg-dom/renderer.d.ts.map +0 -1
  113. package/dist/renderer/svg-dom/renderer.js +0 -188
  114. package/dist/renderer/svg-dom/renderer.js.map +0 -1
  115. package/dist/renderer/svg-string/builders/defs.d.ts +0 -10
  116. package/dist/renderer/svg-string/builders/defs.d.ts.map +0 -1
  117. package/dist/renderer/svg-string/builders/defs.js +0 -43
  118. package/dist/renderer/svg-string/builders/defs.js.map +0 -1
  119. package/dist/renderer/svg-string/builders/link.d.ts +0 -10
  120. package/dist/renderer/svg-string/builders/link.d.ts.map +0 -1
  121. package/dist/renderer/svg-string/builders/link.js +0 -149
  122. package/dist/renderer/svg-string/builders/link.js.map +0 -1
  123. package/dist/renderer/svg-string/builders/node.d.ts +0 -10
  124. package/dist/renderer/svg-string/builders/node.d.ts.map +0 -1
  125. package/dist/renderer/svg-string/builders/node.js +0 -134
  126. package/dist/renderer/svg-string/builders/node.js.map +0 -1
  127. package/dist/renderer/svg-string/builders/subgraph.d.ts +0 -10
  128. package/dist/renderer/svg-string/builders/subgraph.d.ts.map +0 -1
  129. package/dist/renderer/svg-string/builders/subgraph.js +0 -59
  130. package/dist/renderer/svg-string/builders/subgraph.js.map +0 -1
  131. package/dist/renderer/svg-string/index.d.ts +0 -5
  132. package/dist/renderer/svg-string/index.d.ts.map +0 -1
  133. package/dist/renderer/svg-string/index.js +0 -5
  134. package/dist/renderer/svg-string/index.js.map +0 -1
  135. package/dist/renderer/svg-string/renderer.d.ts +0 -17
  136. package/dist/renderer/svg-string/renderer.d.ts.map +0 -1
  137. package/dist/renderer/svg-string/renderer.js +0 -53
  138. package/dist/renderer/svg-string/renderer.js.map +0 -1
  139. package/dist/renderer/text-measurer/browser-measurer.d.ts +0 -25
  140. package/dist/renderer/text-measurer/browser-measurer.d.ts.map +0 -1
  141. package/dist/renderer/text-measurer/browser-measurer.js +0 -85
  142. package/dist/renderer/text-measurer/browser-measurer.js.map +0 -1
  143. package/dist/renderer/text-measurer/fallback-measurer.d.ts +0 -22
  144. package/dist/renderer/text-measurer/fallback-measurer.d.ts.map +0 -1
  145. package/dist/renderer/text-measurer/fallback-measurer.js +0 -113
  146. package/dist/renderer/text-measurer/fallback-measurer.js.map +0 -1
  147. package/dist/renderer/text-measurer/index.d.ts +0 -13
  148. package/dist/renderer/text-measurer/index.d.ts.map +0 -1
  149. package/dist/renderer/text-measurer/index.js +0 -35
  150. package/dist/renderer/text-measurer/index.js.map +0 -1
  151. package/dist/renderer/text-measurer/types.d.ts +0 -30
  152. package/dist/renderer/text-measurer/types.d.ts.map +0 -1
  153. package/dist/renderer/text-measurer/types.js +0 -5
  154. package/dist/renderer/text-measurer/types.js.map +0 -1
  155. package/dist/renderer/theme.d.ts +0 -29
  156. package/dist/renderer/theme.d.ts.map +0 -1
  157. package/dist/renderer/theme.js +0 -80
  158. 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
@@ -6,5 +6,6 @@ export * from './layout/index.js';
6
6
  export * from './themes/index.js';
7
7
  export * from './icons/index.js';
8
8
  export * from './renderer/index.js';
9
+ export * from './constants.js';
9
10
  export declare const version = "0.0.0";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -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
- * Get effective options by merging graph settings with defaults
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 with HA pairs merged into single virtual nodes
26
+ * Build ELK graph - uses container nodes for HA pairs
26
27
  */
27
- private buildElkGraphWithHAMerge;
28
+ private buildElkGraph;
28
29
  /**
29
- * Extract layout result and expand HA virtual nodes back to original pairs
30
+ * Extract layout result from ELK output - uses ELK's edge routing directly
30
31
  */
31
- private extractLayoutResultWithHAExpand;
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
- * Calculate edge path using port positions when available
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
- * Detect redundancy pairs based on link.redundancy property
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
- * Adjust node distances based on link minLength property
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;AA+D3B,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,mBAAmB;IAYrB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAqC7D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8UhC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAoTvC;;OAEG;IACH,OAAO,CAAC,oCAAoC;IA4F5C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IA+BzC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,mBAAmB;IA0D3B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmFlC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,uBAAuB;IA+D/B,OAAO,CAAC,oBAAoB;IAmC5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAsEnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiF3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAoFlC;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,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"}