layerchart 2.0.0-next.1 → 2.0.0-next.2
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/dist/actions/movable.d.ts +28 -0
- package/dist/actions/movable.js +91 -0
- package/dist/components/AnnotationLine.svelte +155 -0
- package/dist/components/AnnotationLine.svelte.d.ts +28 -0
- package/dist/components/AnnotationPoint.svelte +121 -0
- package/dist/components/AnnotationPoint.svelte.d.ts +32 -0
- package/dist/components/AnnotationRange.svelte +147 -0
- package/dist/components/AnnotationRange.svelte.d.ts +40 -0
- package/dist/components/Arc.svelte +344 -151
- package/dist/components/Arc.svelte.d.ts +138 -0
- package/dist/components/Area.svelte +165 -149
- package/dist/components/Area.svelte.d.ts +45 -0
- package/dist/components/Axis.svelte +287 -174
- package/dist/components/Axis.svelte.d.ts +116 -0
- package/dist/components/Bar.svelte +163 -107
- package/dist/components/Bar.svelte.d.ts +48 -0
- package/dist/components/Bars.svelte +54 -68
- package/dist/components/Bars.svelte.d.ts +27 -0
- package/dist/components/Blur.svelte +31 -7
- package/dist/components/Blur.svelte.d.ts +23 -21
- package/dist/components/Bounds.svelte +49 -19
- package/dist/components/Bounds.svelte.d.ts +24 -50
- package/dist/components/BrushContext.svelte +296 -168
- package/dist/components/BrushContext.svelte.d.ts +97 -65
- package/dist/components/Calendar.svelte +116 -59
- package/dist/components/Calendar.svelte.d.ts +50 -31
- package/dist/components/Chart.svelte +1289 -398
- package/dist/components/Chart.svelte.d.ts +535 -410
- package/dist/components/ChartClipPath.svelte +37 -15
- package/dist/components/ChartClipPath.svelte.d.ts +21 -19
- package/dist/components/Circle.svelte +124 -85
- package/dist/components/Circle.svelte.d.ts +52 -0
- package/dist/components/CircleClipPath.svelte +76 -16
- package/dist/components/CircleClipPath.svelte.d.ts +46 -0
- package/dist/components/ClipPath.svelte +60 -15
- package/dist/components/ClipPath.svelte.d.ts +40 -27
- package/dist/components/ColorRamp.svelte +75 -9
- package/dist/components/ColorRamp.svelte.d.ts +37 -19
- package/dist/components/ComputedStyles.svelte +17 -5
- package/dist/components/ComputedStyles.svelte.d.ts +11 -19
- package/dist/components/Connector.svelte +149 -0
- package/dist/components/Connector.svelte.d.ts +51 -0
- package/dist/components/Dagre.svelte +211 -122
- package/dist/components/Dagre.svelte.d.ts +119 -56
- package/dist/components/ForceSimulation.svelte +215 -90
- package/dist/components/ForceSimulation.svelte.d.ts +82 -35
- package/dist/components/Frame.svelte +33 -13
- package/dist/components/Frame.svelte.d.ts +13 -17
- package/dist/components/GeoCircle.svelte +29 -16
- package/dist/components/GeoCircle.svelte.d.ts +22 -24
- package/dist/components/GeoContext.svelte +113 -72
- package/dist/components/GeoContext.svelte.d.ts +49 -41
- package/dist/components/GeoEdgeFade.svelte +47 -12
- package/dist/components/GeoEdgeFade.svelte.d.ts +17 -19
- package/dist/components/GeoPath.svelte +157 -127
- package/dist/components/GeoPath.svelte.d.ts +48 -36
- package/dist/components/GeoPoint.svelte +52 -20
- package/dist/components/GeoPoint.svelte.d.ts +25 -22
- package/dist/components/GeoSpline.svelte +75 -26
- package/dist/components/GeoSpline.svelte.d.ts +29 -20
- package/dist/components/GeoTile.svelte +100 -49
- package/dist/components/GeoTile.svelte.d.ts +38 -23
- package/dist/components/GeoVisible.svelte +17 -9
- package/dist/components/GeoVisible.svelte.d.ts +10 -18
- package/dist/components/Graticule.svelte +28 -13
- package/dist/components/Graticule.svelte.d.ts +11 -52
- package/dist/components/Grid.svelte +226 -114
- package/dist/components/Grid.svelte.d.ts +70 -0
- package/dist/components/Group.svelte +132 -105
- package/dist/components/Group.svelte.d.ts +53 -0
- package/dist/components/Highlight.svelte +409 -307
- package/dist/components/Highlight.svelte.d.ts +107 -0
- package/dist/components/Hull.svelte +96 -45
- package/dist/components/Hull.svelte.d.ts +40 -30
- package/dist/components/Labels.svelte +125 -46
- package/dist/components/Labels.svelte.d.ts +70 -27
- package/dist/components/Legend.svelte +374 -190
- package/dist/components/Legend.svelte.d.ts +95 -44
- package/dist/components/Line.svelte +163 -125
- package/dist/components/Line.svelte.d.ts +75 -0
- package/dist/components/LinearGradient.svelte +153 -78
- package/dist/components/LinearGradient.svelte.d.ts +66 -31
- package/dist/components/Link.svelte +160 -104
- package/dist/components/Link.svelte.d.ts +54 -0
- package/dist/components/Marker.svelte +100 -39
- package/dist/components/Marker.svelte.d.ts +59 -27
- package/dist/components/MarkerWrapper.svelte +35 -0
- package/dist/components/MarkerWrapper.svelte.d.ts +18 -0
- package/dist/components/MonthPath.svelte +65 -20
- package/dist/components/MonthPath.svelte.d.ts +23 -17
- package/dist/components/MotionPath.svelte +80 -24
- package/dist/components/MotionPath.svelte.d.ts +46 -27
- package/dist/components/Pack.svelte +53 -17
- package/dist/components/Pack.svelte.d.ts +42 -21
- package/dist/components/Partition.svelte +64 -22
- package/dist/components/Partition.svelte.d.ts +49 -26
- package/dist/components/Pattern.svelte +297 -11
- package/dist/components/Pattern.svelte.d.ts +103 -19
- package/dist/components/Pie.svelte +122 -76
- package/dist/components/Pie.svelte.d.ts +65 -51
- package/dist/components/Point.svelte +20 -9
- package/dist/components/Point.svelte.d.ts +16 -20
- package/dist/components/Points.svelte +148 -137
- package/dist/components/Points.svelte.d.ts +45 -34
- package/dist/components/RadialGradient.svelte +143 -70
- package/dist/components/RadialGradient.svelte.d.ts +69 -31
- package/dist/components/Rect.svelte +121 -102
- package/dist/components/Rect.svelte.d.ts +36 -0
- package/dist/components/RectClipPath.svelte +82 -18
- package/dist/components/RectClipPath.svelte.d.ts +55 -0
- package/dist/components/Rule.svelte +105 -62
- package/dist/components/Rule.svelte.d.ts +40 -19
- package/dist/components/Sankey.svelte +132 -55
- package/dist/components/Sankey.svelte.d.ts +61 -31
- package/dist/components/Spline.svelte +281 -218
- package/dist/components/Spline.svelte.d.ts +95 -0
- package/dist/components/Text.svelte +437 -176
- package/dist/components/Text.svelte.d.ts +130 -0
- package/dist/components/Threshold.svelte +48 -16
- package/dist/components/Threshold.svelte.d.ts +29 -31
- package/dist/components/TileImage.svelte +103 -30
- package/dist/components/TileImage.svelte.d.ts +48 -23
- package/dist/components/TransformContext.svelte +365 -171
- package/dist/components/TransformControls.svelte +50 -26
- package/dist/components/TransformControls.svelte.d.ts +27 -19
- package/dist/components/Tree.svelte +74 -33
- package/dist/components/Tree.svelte.d.ts +42 -30
- package/dist/components/Treemap.svelte +119 -42
- package/dist/components/Treemap.svelte.d.ts +75 -27
- package/dist/components/Voronoi.svelte +106 -75
- package/dist/components/Voronoi.svelte.d.ts +40 -41
- package/dist/components/charts/ArcChart.svelte +464 -0
- package/dist/components/charts/ArcChart.svelte.d.ts +90 -0
- package/dist/components/charts/AreaChart.svelte +450 -393
- package/dist/components/charts/AreaChart.svelte.d.ts +61 -0
- package/dist/components/charts/BarChart.svelte +454 -389
- package/dist/components/charts/BarChart.svelte.d.ts +76 -0
- package/dist/components/charts/ChartAnnotations.svelte +37 -0
- package/dist/components/charts/ChartAnnotations.svelte.d.ts +10 -0
- package/dist/components/charts/DefaultTooltip.svelte +60 -0
- package/dist/components/charts/DefaultTooltip.svelte.d.ts +10 -0
- package/dist/components/charts/LineChart.svelte +369 -314
- package/dist/components/charts/LineChart.svelte.d.ts +53 -0
- package/dist/components/charts/PieChart.svelte +458 -316
- package/dist/components/charts/PieChart.svelte.d.ts +137 -353
- package/dist/components/charts/ScatterChart.svelte +334 -296
- package/dist/components/charts/ScatterChart.svelte.d.ts +39 -0
- package/dist/components/charts/index.d.ts +8 -0
- package/dist/components/charts/index.js +7 -0
- package/dist/components/charts/types.d.ts +253 -0
- package/dist/components/charts/utils.svelte.d.ts +30 -0
- package/dist/components/charts/utils.svelte.js +55 -0
- package/dist/components/index.d.ts +76 -4
- package/dist/components/index.js +76 -5
- package/dist/components/layout/Canvas.svelte +321 -155
- package/dist/components/layout/Canvas.svelte.d.ts +104 -55
- package/dist/components/layout/Html.svelte +82 -42
- package/dist/components/layout/Html.svelte.d.ts +39 -28
- package/dist/components/layout/Layer.svelte +39 -0
- package/dist/components/layout/Layer.svelte.d.ts +17 -0
- package/dist/components/layout/Svg.svelte +122 -70
- package/dist/components/layout/Svg.svelte.d.ts +53 -34
- package/dist/components/layout/WebGL.svelte +135 -0
- package/dist/components/layout/WebGL.svelte.d.ts +50 -0
- package/dist/components/tooltip/Tooltip.svelte +246 -78
- package/dist/components/tooltip/Tooltip.svelte.d.ts +149 -31
- package/dist/components/tooltip/TooltipContext.svelte +409 -271
- package/dist/components/tooltip/TooltipContext.svelte.d.ts +86 -55
- package/dist/components/tooltip/TooltipHeader.svelte +100 -11
- package/dist/components/tooltip/TooltipHeader.svelte.d.ts +43 -23
- package/dist/components/tooltip/TooltipItem.svelte +167 -27
- package/dist/components/tooltip/TooltipItem.svelte.d.ts +63 -31
- package/dist/components/tooltip/TooltipList.svelte +22 -3
- package/dist/components/tooltip/TooltipList.svelte.d.ts +6 -17
- package/dist/components/tooltip/TooltipSeparator.svelte +27 -1
- package/dist/components/tooltip/TooltipSeparator.svelte.d.ts +6 -15
- package/dist/components/tooltip/index.d.ts +6 -0
- package/dist/components/tooltip/index.js +6 -0
- package/dist/components/tooltip/tooltipMetaContext.d.ts +79 -0
- package/dist/components/tooltip/tooltipMetaContext.js +139 -0
- package/dist/components/types.d.ts +1 -0
- package/dist/components/types.js +1 -0
- package/dist/docs/Blockquote.svelte.d.ts +18 -14
- package/dist/docs/Code.svelte.d.ts +26 -22
- package/dist/docs/ConnectorSweepMenuField.svelte +17 -0
- package/dist/docs/ConnectorSweepMenuField.svelte.d.ts +7 -0
- package/dist/docs/ConnectorTypeMenuField.svelte +17 -0
- package/dist/docs/ConnectorTypeMenuField.svelte.d.ts +7 -0
- package/dist/docs/CurveMenuField.svelte +14 -3
- package/dist/docs/CurveMenuField.svelte.d.ts +9 -18
- package/dist/docs/GeoDebug.svelte +47 -42
- package/dist/docs/GeoDebug.svelte.d.ts +4 -16
- package/dist/docs/Header1.svelte.d.ts +27 -16
- package/dist/docs/Json.svelte.d.ts +20 -16
- package/dist/docs/Layout.svelte.d.ts +18 -13
- package/dist/docs/Link.svelte.d.ts +33 -21
- package/dist/docs/PathDataMenuField.svelte +14 -10
- package/dist/docs/PathDataMenuField.svelte.d.ts +8 -18
- package/dist/docs/Preview.svelte +20 -7
- package/dist/docs/Preview.svelte.d.ts +12 -22
- package/dist/docs/TilesetField.svelte.d.ts +21 -17
- package/dist/docs/TransformDebug.svelte +5 -6
- package/dist/docs/TransformDebug.svelte.d.ts +18 -14
- package/dist/docs/ViewSourceButton.svelte.d.ts +21 -17
- package/dist/types/d3-shape-extentions.d.ts +7 -0
- package/dist/utils/afterTick.d.ts +5 -0
- package/dist/utils/afterTick.js +8 -0
- package/dist/utils/arcText.svelte.d.ts +57 -0
- package/dist/utils/arcText.svelte.js +262 -0
- package/dist/utils/array.d.ts +9 -1
- package/dist/utils/array.js +13 -0
- package/dist/utils/attributes.d.ts +29 -0
- package/dist/utils/attributes.js +40 -0
- package/dist/utils/canvas.js +47 -10
- package/dist/utils/chart.d.ts +78 -0
- package/dist/utils/chart.js +512 -0
- package/dist/utils/color.d.ts +1 -0
- package/dist/utils/color.js +8 -0
- package/dist/utils/common.d.ts +3 -5
- package/dist/utils/common.js +3 -2
- package/dist/utils/connectorUtils.d.ts +21 -0
- package/dist/utils/connectorUtils.js +111 -0
- package/dist/utils/createId.d.ts +7 -0
- package/dist/utils/createId.js +9 -0
- package/dist/utils/debug.d.ts +1 -0
- package/dist/utils/debug.js +84 -0
- package/dist/utils/filterObject.d.ts +9 -0
- package/dist/utils/filterObject.js +12 -0
- package/dist/utils/graph/dagre.d.ts +34 -0
- package/dist/utils/graph/dagre.js +78 -0
- package/dist/utils/graph/dagre.test.d.ts +1 -0
- package/dist/utils/{graph.test.js → graph/dagre.test.js} +19 -33
- package/dist/utils/graph/sankey.d.ts +28 -0
- package/dist/utils/{graph.js → graph/sankey.js} +13 -41
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/key.svelte.d.ts +3 -0
- package/dist/utils/key.svelte.js +11 -0
- package/dist/utils/legendPayload.d.ts +7 -0
- package/dist/utils/legendPayload.js +8 -0
- package/dist/utils/motion.svelte.d.ts +140 -0
- package/dist/utils/motion.svelte.js +180 -0
- package/dist/utils/motion.test.d.ts +1 -0
- package/dist/utils/motion.test.js +213 -0
- package/dist/utils/{rect.d.ts → rect.svelte.d.ts} +7 -4
- package/dist/utils/rect.svelte.js +105 -0
- package/dist/utils/scales.svelte.d.ts +90 -0
- package/dist/utils/{scales.js → scales.svelte.js} +100 -39
- package/dist/utils/stack.d.ts +2 -3
- package/dist/utils/stack.js +1 -1
- package/dist/utils/string.js +87 -0
- package/dist/utils/ticks.d.ts +8 -2
- package/dist/utils/ticks.js +28 -0
- package/dist/utils/ticks.test.d.ts +1 -0
- package/dist/utils/ticks.test.js +67 -0
- package/dist/utils/types.d.ts +81 -0
- package/package.json +21 -19
- package/dist/components/ChartContext.svelte +0 -295
- package/dist/components/ChartContext.svelte.d.ts +0 -139
- package/dist/components/TransformContext.svelte.d.ts +0 -158
- package/dist/stores/motionStore.d.ts +0 -30
- package/dist/stores/motionStore.js +0 -62
- package/dist/utils/graph.d.ts +0 -37
- package/dist/utils/rect.js +0 -107
- package/dist/utils/scales.d.ts +0 -66
- /package/dist/{utils/graph.test.d.ts → components/charts/types.js} +0 -0
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
<script lang="ts"
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import { type Snippet } from 'svelte';
|
|
3
|
+
import dagre, { type Edge, type EdgeConfig, type GraphEdge } from '@dagrejs/dagre';
|
|
4
|
+
|
|
5
|
+
import { dagreGraph } from '../utils/graph/dagre.js';
|
|
6
|
+
|
|
2
7
|
export type DagreGraphData = {
|
|
3
8
|
nodes: Array<{ id: string; parent?: string; label?: string | dagre.Label }>;
|
|
4
9
|
edges: Array<{ source: string; target: string; label?: string }>;
|
|
@@ -24,129 +29,213 @@
|
|
|
24
29
|
center: 'c',
|
|
25
30
|
right: 'r',
|
|
26
31
|
};
|
|
32
|
+
|
|
33
|
+
export type DagreProps = {
|
|
34
|
+
/**
|
|
35
|
+
* Data of nodes and edges to build graph
|
|
36
|
+
*/
|
|
37
|
+
data: DagreGraphData;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Function to extract nodes from data
|
|
41
|
+
* @default (d: any) => d.nodes
|
|
42
|
+
*/
|
|
43
|
+
nodes?: (d: any) => any;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Function to extract node ID from node data
|
|
47
|
+
* @default (d: any) => d.id
|
|
48
|
+
*/
|
|
49
|
+
nodeId?: (d: any) => any;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Function to extract edges from data
|
|
53
|
+
* @default (d: any) => d.edges
|
|
54
|
+
*/
|
|
55
|
+
edges?: (d: any) => any;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Set graph as directed (true, default) or undirected (false),
|
|
59
|
+
* which does not treat the order of nodes in an edge as significant
|
|
60
|
+
* @default true
|
|
61
|
+
*/
|
|
62
|
+
directed?: boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Allow a graph to have multiple edges between the same pair of nodes
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
multigraph?: boolean;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Allow a graph to have compound nodes - nodes which can be the
|
|
72
|
+
* `parent` of other nodes
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
compound?: boolean;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Type of algorithm to assigns a rank to each node in the input graph
|
|
79
|
+
* @default 'network-simplex'
|
|
80
|
+
*/
|
|
81
|
+
ranker?: 'network-simplex' | 'tight-tree' | 'longest-path';
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Direction for rank nodes
|
|
85
|
+
* @default 'top-bottom'
|
|
86
|
+
*/
|
|
87
|
+
direction?: keyof typeof RankDir;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Alignment for rank nodes
|
|
91
|
+
* @default undefined
|
|
92
|
+
*/
|
|
93
|
+
align?: keyof typeof Align | undefined;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Number of pixels between each rank in the layout
|
|
97
|
+
* @default 50
|
|
98
|
+
*/
|
|
99
|
+
rankSeparation?: number;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Number of pixels that separate nodes horizontally in the layout
|
|
103
|
+
* @default 50
|
|
104
|
+
*/
|
|
105
|
+
nodeSeparation?: number;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Number of pixels that separate edges horizontally in the layout
|
|
109
|
+
* @default 10
|
|
110
|
+
*/
|
|
111
|
+
edgeSeparation?: number;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Default node width if not defined on node
|
|
115
|
+
* @default 100
|
|
116
|
+
*/
|
|
117
|
+
nodeWidth?: number;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Default node height if not defined on node
|
|
121
|
+
* @default 50
|
|
122
|
+
*/
|
|
123
|
+
nodeHeight?: number;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Default link label width if not defined on edge
|
|
127
|
+
* @default 100
|
|
128
|
+
*/
|
|
129
|
+
edgeLabelWidth?: number;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Default edge label height if not defined on edge
|
|
133
|
+
* @default 20
|
|
134
|
+
*/
|
|
135
|
+
edgeLabelHeight?: number;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Default edge label position
|
|
139
|
+
* @default 'center'
|
|
140
|
+
*/
|
|
141
|
+
edgeLabelPosition?: keyof typeof EdgeLabelPosition;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Default pixels to move the label away from the edge if not defined on edge
|
|
145
|
+
* Applies only when labelpos is l or r
|
|
146
|
+
* @default 10
|
|
147
|
+
*/
|
|
148
|
+
edgeLabelOffset?: number;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Filter nodes
|
|
152
|
+
* @default () => true
|
|
153
|
+
*/
|
|
154
|
+
filterNodes?: (nodeId: string, graph: dagre.graphlib.Graph) => boolean;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Exposed to access to Dagre Graph instance via `bind:graph`
|
|
158
|
+
*/
|
|
159
|
+
graph?: dagre.graphlib.Graph;
|
|
160
|
+
|
|
161
|
+
children?: Snippet<
|
|
162
|
+
[
|
|
163
|
+
{
|
|
164
|
+
nodes: Array<dagre.Node>;
|
|
165
|
+
edges: Array<Edge & EdgeConfig & GraphEdge>;
|
|
166
|
+
graph: dagre.graphlib.Graph;
|
|
167
|
+
},
|
|
168
|
+
]
|
|
169
|
+
>;
|
|
170
|
+
};
|
|
27
171
|
</script>
|
|
28
172
|
|
|
29
173
|
<script lang="ts">
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
rankdir: RankDir[direction],
|
|
95
|
-
align: align ? Align[align] : undefined,
|
|
96
|
-
ranksep: rankSeparation,
|
|
97
|
-
nodesep: nodeSeparation,
|
|
98
|
-
edgesep: edgeSeparation,
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
g.setDefaultEdgeLabel(() => {
|
|
102
|
-
return {};
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
nodes(data).forEach((n: any) => {
|
|
106
|
-
const id = nodeId(n);
|
|
107
|
-
|
|
108
|
-
g.setNode(nodeId(n), {
|
|
109
|
-
id,
|
|
110
|
-
label: typeof n.label === 'string' ? n.label : id,
|
|
111
|
-
width: nodeWidth,
|
|
112
|
-
height: nodeHeight,
|
|
113
|
-
...(typeof n.label === 'object' ? n.label : null),
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
if (n.parent) {
|
|
117
|
-
g.setParent(id, n.parent);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
edges(data).forEach((e: any) => {
|
|
122
|
-
const { source, target, label, ...rest } = e;
|
|
123
|
-
g.setEdge(
|
|
124
|
-
e.source,
|
|
125
|
-
e.target,
|
|
126
|
-
label
|
|
127
|
-
? {
|
|
128
|
-
label: label,
|
|
129
|
-
labelpos: EdgeLabelPosition[edgeLabelPosition],
|
|
130
|
-
labeloffset: edgeLabelOffset,
|
|
131
|
-
width: edgeLabelWidth,
|
|
132
|
-
height: edgeLabelHeight,
|
|
133
|
-
...rest,
|
|
134
|
-
}
|
|
135
|
-
: {}
|
|
136
|
-
);
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
g = filterNodes ? g.filterNodes((nodeId) => filterNodes(nodeId, graph!)) : graph!;
|
|
140
|
-
|
|
141
|
-
dagre.layout(g);
|
|
142
|
-
|
|
143
|
-
graph = g;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
$: graphNodes = graph!.nodes().map((id) => graph!.node(id));
|
|
147
|
-
$: graphEdges = graph!.edges().map((edge) => ({ ...edge, ...graph!.edge(edge) })) as Array<
|
|
148
|
-
Edge & EdgeConfig & GraphEdge // `EdgeConfig` is excluded when inferred from usage
|
|
149
|
-
>;
|
|
174
|
+
let {
|
|
175
|
+
data,
|
|
176
|
+
nodes = (d: any) => d.nodes,
|
|
177
|
+
nodeId = (d: any) => d.id,
|
|
178
|
+
edges = (d: any) => d.edges,
|
|
179
|
+
directed = true,
|
|
180
|
+
multigraph = false,
|
|
181
|
+
compound = false,
|
|
182
|
+
ranker = 'network-simplex',
|
|
183
|
+
direction = 'top-bottom',
|
|
184
|
+
align,
|
|
185
|
+
rankSeparation = 50,
|
|
186
|
+
nodeSeparation = 50,
|
|
187
|
+
edgeSeparation = 10,
|
|
188
|
+
nodeWidth = 100,
|
|
189
|
+
nodeHeight = 50,
|
|
190
|
+
edgeLabelWidth = 100,
|
|
191
|
+
edgeLabelHeight = 20,
|
|
192
|
+
edgeLabelPosition = 'center',
|
|
193
|
+
edgeLabelOffset = 10,
|
|
194
|
+
filterNodes = () => true,
|
|
195
|
+
graph: graphProp = $bindable(),
|
|
196
|
+
children,
|
|
197
|
+
}: DagreProps = $props();
|
|
198
|
+
|
|
199
|
+
const graph = $derived(
|
|
200
|
+
dagreGraph(data, {
|
|
201
|
+
nodes,
|
|
202
|
+
nodeId,
|
|
203
|
+
edges,
|
|
204
|
+
directed,
|
|
205
|
+
multigraph,
|
|
206
|
+
compound,
|
|
207
|
+
ranker,
|
|
208
|
+
direction,
|
|
209
|
+
align,
|
|
210
|
+
rankSeparation,
|
|
211
|
+
nodeSeparation,
|
|
212
|
+
edgeSeparation,
|
|
213
|
+
nodeWidth,
|
|
214
|
+
nodeHeight,
|
|
215
|
+
edgeLabelWidth,
|
|
216
|
+
edgeLabelHeight,
|
|
217
|
+
edgeLabelPosition,
|
|
218
|
+
edgeLabelOffset,
|
|
219
|
+
filterNodes,
|
|
220
|
+
})
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
$effect.pre(() => {
|
|
224
|
+
graphProp = graph;
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
const graphNodes = $derived.by(() => {
|
|
228
|
+
if (typeof document === 'undefined' || !graph) return [];
|
|
229
|
+
return graph!.nodes().map((id) => graph!.node(id));
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
const graphEdges = $derived.by(() => {
|
|
233
|
+
if (typeof document === 'undefined' || !graph) return [];
|
|
234
|
+
return graph!.edges().map((edge) => ({ ...edge, ...graph!.edge(edge) })) as Array<
|
|
235
|
+
Edge & EdgeConfig & GraphEdge // `EdgeConfig` is excluded when inferred from usage
|
|
236
|
+
>;
|
|
237
|
+
});
|
|
150
238
|
</script>
|
|
151
239
|
|
|
152
|
-
|
|
240
|
+
<!-- TODO: are we sure we want to force these types? -->
|
|
241
|
+
{@render children?.({ nodes: graphNodes, edges: graphEdges, graph: graph! })}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
|
+
import dagre, { type Edge, type EdgeConfig, type GraphEdge } from '@dagrejs/dagre';
|
|
2
3
|
export type DagreGraphData = {
|
|
3
4
|
nodes: Array<{
|
|
4
5
|
id: string;
|
|
@@ -29,59 +30,121 @@ export declare const EdgeLabelPosition: {
|
|
|
29
30
|
center: string;
|
|
30
31
|
right: string;
|
|
31
32
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
33
|
+
export type DagreProps = {
|
|
34
|
+
/**
|
|
35
|
+
* Data of nodes and edges to build graph
|
|
36
|
+
*/
|
|
37
|
+
data: DagreGraphData;
|
|
38
|
+
/**
|
|
39
|
+
* Function to extract nodes from data
|
|
40
|
+
* @default (d: any) => d.nodes
|
|
41
|
+
*/
|
|
42
|
+
nodes?: (d: any) => any;
|
|
43
|
+
/**
|
|
44
|
+
* Function to extract node ID from node data
|
|
45
|
+
* @default (d: any) => d.id
|
|
46
|
+
*/
|
|
47
|
+
nodeId?: (d: any) => any;
|
|
48
|
+
/**
|
|
49
|
+
* Function to extract edges from data
|
|
50
|
+
* @default (d: any) => d.edges
|
|
51
|
+
*/
|
|
52
|
+
edges?: (d: any) => any;
|
|
53
|
+
/**
|
|
54
|
+
* Set graph as directed (true, default) or undirected (false),
|
|
55
|
+
* which does not treat the order of nodes in an edge as significant
|
|
56
|
+
* @default true
|
|
57
|
+
*/
|
|
58
|
+
directed?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Allow a graph to have multiple edges between the same pair of nodes
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
multigraph?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Allow a graph to have compound nodes - nodes which can be the
|
|
66
|
+
* `parent` of other nodes
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
compound?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Type of algorithm to assigns a rank to each node in the input graph
|
|
72
|
+
* @default 'network-simplex'
|
|
73
|
+
*/
|
|
74
|
+
ranker?: 'network-simplex' | 'tight-tree' | 'longest-path';
|
|
75
|
+
/**
|
|
76
|
+
* Direction for rank nodes
|
|
77
|
+
* @default 'top-bottom'
|
|
78
|
+
*/
|
|
79
|
+
direction?: keyof typeof RankDir;
|
|
80
|
+
/**
|
|
81
|
+
* Alignment for rank nodes
|
|
82
|
+
* @default undefined
|
|
83
|
+
*/
|
|
84
|
+
align?: keyof typeof Align | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Number of pixels between each rank in the layout
|
|
87
|
+
* @default 50
|
|
88
|
+
*/
|
|
89
|
+
rankSeparation?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Number of pixels that separate nodes horizontally in the layout
|
|
92
|
+
* @default 50
|
|
93
|
+
*/
|
|
94
|
+
nodeSeparation?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Number of pixels that separate edges horizontally in the layout
|
|
97
|
+
* @default 10
|
|
98
|
+
*/
|
|
99
|
+
edgeSeparation?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Default node width if not defined on node
|
|
102
|
+
* @default 100
|
|
103
|
+
*/
|
|
104
|
+
nodeWidth?: number;
|
|
105
|
+
/**
|
|
106
|
+
* Default node height if not defined on node
|
|
107
|
+
* @default 50
|
|
108
|
+
*/
|
|
109
|
+
nodeHeight?: number;
|
|
110
|
+
/**
|
|
111
|
+
* Default link label width if not defined on edge
|
|
112
|
+
* @default 100
|
|
113
|
+
*/
|
|
114
|
+
edgeLabelWidth?: number;
|
|
115
|
+
/**
|
|
116
|
+
* Default edge label height if not defined on edge
|
|
117
|
+
* @default 20
|
|
118
|
+
*/
|
|
119
|
+
edgeLabelHeight?: number;
|
|
120
|
+
/**
|
|
121
|
+
* Default edge label position
|
|
122
|
+
* @default 'center'
|
|
123
|
+
*/
|
|
124
|
+
edgeLabelPosition?: keyof typeof EdgeLabelPosition;
|
|
125
|
+
/**
|
|
126
|
+
* Default pixels to move the label away from the edge if not defined on edge
|
|
127
|
+
* Applies only when labelpos is l or r
|
|
128
|
+
* @default 10
|
|
129
|
+
*/
|
|
130
|
+
edgeLabelOffset?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Filter nodes
|
|
133
|
+
* @default () => true
|
|
134
|
+
*/
|
|
135
|
+
filterNodes?: (nodeId: string, graph: dagre.graphlib.Graph) => boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Exposed to access to Dagre Graph instance via `bind:graph`
|
|
138
|
+
*/
|
|
139
|
+
graph?: dagre.graphlib.Graph;
|
|
140
|
+
children?: Snippet<[
|
|
141
|
+
{
|
|
142
|
+
nodes: Array<dagre.Node>;
|
|
143
|
+
edges: Array<Edge & EdgeConfig & GraphEdge>;
|
|
144
|
+
graph: dagre.graphlib.Graph;
|
|
145
|
+
}
|
|
146
|
+
]>;
|
|
81
147
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
export
|
|
85
|
-
export default class Dagre extends SvelteComponentTyped<DagreProps, DagreEvents, DagreSlots> {
|
|
86
|
-
}
|
|
87
|
-
export {};
|
|
148
|
+
declare const Dagre: import("svelte").Component<DagreProps, {}, "graph">;
|
|
149
|
+
type Dagre = ReturnType<typeof Dagre>;
|
|
150
|
+
export default Dagre;
|