layerchart 2.0.0-next.1 → 2.0.0-next.3
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 +143 -0
- package/dist/components/AnnotationLine.svelte.d.ts +30 -0
- package/dist/components/AnnotationPoint.svelte +119 -0
- package/dist/components/AnnotationPoint.svelte.d.ts +34 -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 +283 -180
- package/dist/components/Axis.svelte.d.ts +117 -0
- package/dist/components/Bar.svelte +166 -107
- package/dist/components/Bar.svelte.d.ts +51 -0
- package/dist/components/Bars.svelte +56 -67
- package/dist/components/Bars.svelte.d.ts +27 -0
- package/dist/components/Blur.svelte +42 -12
- 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 +71 -21
- 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 +49 -13
- 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 +30 -14
- package/dist/components/Graticule.svelte.d.ts +11 -52
- package/dist/components/Grid.svelte +230 -117
- package/dist/components/Grid.svelte.d.ts +71 -0
- package/dist/components/Group.svelte +173 -106
- package/dist/components/Group.svelte.d.ts +81 -0
- package/dist/components/Highlight.svelte +410 -308
- package/dist/components/Highlight.svelte.d.ts +107 -0
- package/dist/components/Hull.svelte +97 -46
- package/dist/components/Hull.svelte.d.ts +40 -30
- package/dist/components/Labels.svelte +127 -47
- 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 +107 -63
- 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 +108 -76
- 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,52 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
import { type PieArcDatum } from 'd3-shape';
|
|
2
|
+
export type PiePropsWithoutHTML = {
|
|
3
|
+
data?: any[];
|
|
4
|
+
/**
|
|
5
|
+
* Range [min,max] in degrees. See also startAngle/endAngle
|
|
6
|
+
*
|
|
7
|
+
* @default [0, 360]
|
|
8
|
+
*/
|
|
9
|
+
range?: [number, number] | number[];
|
|
10
|
+
/**
|
|
11
|
+
* Start angle in radians
|
|
12
|
+
*/
|
|
13
|
+
startAngle?: number;
|
|
14
|
+
/**
|
|
15
|
+
* End angle in radians
|
|
16
|
+
*/
|
|
17
|
+
endAngle?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Define innerRadius.
|
|
20
|
+
* value >= 1: discrete value
|
|
21
|
+
* value > 0: percent of `outerRadius`
|
|
22
|
+
* value < 0: offset of `outerRadius`
|
|
23
|
+
* default: yRange min
|
|
24
|
+
*/
|
|
25
|
+
innerRadius?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Define outerRadius. Defaults to yRange max/2 (ie. chart height / 2)
|
|
28
|
+
*/
|
|
29
|
+
outerRadius?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Corner radius of the arc
|
|
32
|
+
*
|
|
33
|
+
* @default 0
|
|
34
|
+
*/
|
|
35
|
+
cornerRadius?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Angle between the arcs
|
|
38
|
+
*
|
|
39
|
+
* @default 0
|
|
40
|
+
*/
|
|
41
|
+
padAngle?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Offset all arcs from center
|
|
44
|
+
*
|
|
45
|
+
* @default 0
|
|
46
|
+
*/
|
|
47
|
+
offset?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Tooltip context to setup pointer events to show tooltip for related data
|
|
50
|
+
*/
|
|
51
|
+
tooltipContext?: TooltipContextValue;
|
|
52
|
+
/**
|
|
53
|
+
* Sort function to sort the arcs
|
|
54
|
+
*/
|
|
55
|
+
sort?: ((a: any, b: any) => number) | null;
|
|
56
|
+
children?: Snippet<[{
|
|
57
|
+
arcs: PieArcDatum<any>[];
|
|
58
|
+
}]>;
|
|
59
|
+
motion?: MotionProp;
|
|
46
60
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
export
|
|
61
|
+
import { type MotionProp } from '../utils/motion.svelte.js';
|
|
62
|
+
import type { TooltipContextValue } from './tooltip/TooltipContext.svelte';
|
|
63
|
+
import type { Snippet } from 'svelte';
|
|
64
|
+
declare const Pie: import("svelte").Component<PiePropsWithoutHTML, {}, "">;
|
|
65
|
+
type Pie = ReturnType<typeof Pie>;
|
|
66
|
+
export default Pie;
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import {
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
export type PointProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Single data point to translate to x/y
|
|
7
|
+
*/
|
|
8
|
+
d: any;
|
|
3
9
|
|
|
4
|
-
|
|
5
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Children containing the x and y values
|
|
12
|
+
*/
|
|
13
|
+
children?: Snippet<[{ x: number; y: number }]>;
|
|
14
|
+
};
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<script lang="ts">
|
|
18
|
+
import { getChartContext } from './Chart.svelte';
|
|
6
19
|
|
|
7
|
-
|
|
8
|
-
export let d;
|
|
20
|
+
let { d, children }: PointProps = $props();
|
|
9
21
|
|
|
10
|
-
|
|
11
|
-
$: y = $yGet(d);
|
|
22
|
+
const ctx = getChartContext();
|
|
12
23
|
</script>
|
|
13
24
|
|
|
14
|
-
|
|
25
|
+
{@render children?.({ x: ctx.xGet(d), y: ctx.yGet(d) })}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
export type PointProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Single data point to translate to x/y
|
|
5
|
+
*/
|
|
6
|
+
d: any;
|
|
7
|
+
/**
|
|
8
|
+
* Children containing the x and y values
|
|
9
|
+
*/
|
|
10
|
+
children?: Snippet<[{
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}]>;
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export
|
|
19
|
-
export default class Point extends SvelteComponentTyped<PointProps, PointEvents, PointSlots> {
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
15
|
+
declare const Point: import("svelte").Component<PointProps, {}, "">;
|
|
16
|
+
type Point = ReturnType<typeof Point>;
|
|
17
|
+
export default Point;
|
|
@@ -1,79 +1,139 @@
|
|
|
1
|
-
<script lang="ts"
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { CommonStyleProps, Without } from '../utils/types.js';
|
|
3
|
+
import type { ComponentProps, Snippet } from 'svelte';
|
|
4
|
+
|
|
2
5
|
export type Point = { x: number; y: number; r: number; xValue: any; yValue: any; data: any };
|
|
6
|
+
type Offset = number | ((value: number, context: any) => number) | undefined;
|
|
7
|
+
|
|
8
|
+
export type PointsPropsWithoutHTML = {
|
|
9
|
+
/**
|
|
10
|
+
* Override data instead of using context
|
|
11
|
+
*/
|
|
12
|
+
data?: any;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Override `x` accessor from Chart context
|
|
16
|
+
*/
|
|
17
|
+
x?: Accessor;
|
|
18
|
+
/**
|
|
19
|
+
* Override `y` accessor from Chart context
|
|
20
|
+
*/
|
|
21
|
+
y?: Accessor;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Override `r` accessor from Chart context
|
|
25
|
+
*
|
|
26
|
+
* @default 5
|
|
27
|
+
*/
|
|
28
|
+
r?: number;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The offset of the point in the x direction
|
|
32
|
+
*/
|
|
33
|
+
offsetX?: Offset;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The offset of the point in the y direction
|
|
37
|
+
*/
|
|
38
|
+
offsetY?: Offset;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Enable showing links between related points (array x/y accessors)
|
|
42
|
+
*
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
links?: boolean | Partial<ComponentProps<typeof Link>>;
|
|
46
|
+
|
|
47
|
+
children?: Snippet<[{ points: Point[] }]>;
|
|
48
|
+
} & CommonStyleProps;
|
|
49
|
+
|
|
50
|
+
export type PointsProps = PointsPropsWithoutHTML &
|
|
51
|
+
Omit<Without<CircleProps, PointsPropsWithoutHTML>, 'ref'>;
|
|
3
52
|
</script>
|
|
4
53
|
|
|
5
54
|
<script lang="ts">
|
|
6
|
-
import { type ComponentProps } from 'svelte';
|
|
7
55
|
import { extent } from 'd3-array';
|
|
8
56
|
import { pointRadial } from 'd3-shape';
|
|
9
|
-
import { notNull } from '@layerstack/utils';
|
|
10
57
|
|
|
11
|
-
import {
|
|
12
|
-
import Circle from './Circle.svelte';
|
|
58
|
+
import Circle, { type CircleProps } from './Circle.svelte';
|
|
13
59
|
import Link from './Link.svelte';
|
|
14
|
-
import { isScaleBand, type AnyScale } from '../utils/scales.js';
|
|
60
|
+
import { isScaleBand, type AnyScale } from '../utils/scales.svelte.js';
|
|
15
61
|
import { accessor, type Accessor } from '../utils/common.js';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/** Override `x` accessor from Chart context */
|
|
38
|
-
export let x: Accessor = undefined;
|
|
39
|
-
/** Override `y` accessor from Chart context */
|
|
40
|
-
export let y: Accessor = undefined;
|
|
41
|
-
|
|
42
|
-
export let r = 5;
|
|
43
|
-
export let offsetX: Offset = undefined;
|
|
44
|
-
export let offsetY: Offset = undefined;
|
|
45
|
-
|
|
46
|
-
/** Enable showing links between related points (array x/y accessors) */
|
|
47
|
-
export let links: boolean | Partial<ComponentProps<Link>> = false;
|
|
48
|
-
|
|
49
|
-
export let fill: string | undefined = undefined;
|
|
50
|
-
export let fillOpacity: number | undefined = undefined;
|
|
51
|
-
export let stroke: string | undefined = undefined;
|
|
52
|
-
export let strokeWidth: number | undefined = undefined;
|
|
53
|
-
export let opacity: number | undefined = undefined;
|
|
54
|
-
|
|
55
|
-
let className: string | undefined = undefined;
|
|
56
|
-
export { className as class };
|
|
62
|
+
import { getChartContext } from './Chart.svelte';
|
|
63
|
+
import { extractLayerProps } from '../utils/attributes.js';
|
|
64
|
+
|
|
65
|
+
const ctx = getChartContext();
|
|
66
|
+
|
|
67
|
+
let {
|
|
68
|
+
data,
|
|
69
|
+
x,
|
|
70
|
+
y,
|
|
71
|
+
r = 5,
|
|
72
|
+
offsetX,
|
|
73
|
+
offsetY,
|
|
74
|
+
links = false,
|
|
75
|
+
fill,
|
|
76
|
+
fillOpacity,
|
|
77
|
+
stroke,
|
|
78
|
+
strokeWidth,
|
|
79
|
+
opacity,
|
|
80
|
+
children,
|
|
81
|
+
...restProps
|
|
82
|
+
}: PointsProps = $props();
|
|
57
83
|
|
|
58
84
|
function getOffset(value: any, offset: Offset, scale: AnyScale) {
|
|
59
85
|
if (typeof offset === 'function') {
|
|
60
|
-
return offset(value,
|
|
86
|
+
return offset(value, ctx);
|
|
61
87
|
} else if (offset != null) {
|
|
62
88
|
return offset;
|
|
63
|
-
} else if (isScaleBand(scale) &&
|
|
89
|
+
} else if (isScaleBand(scale) && !ctx.radial) {
|
|
64
90
|
return scale.bandwidth() / 2;
|
|
65
91
|
} else {
|
|
66
92
|
return 0;
|
|
67
93
|
}
|
|
68
94
|
}
|
|
69
95
|
|
|
70
|
-
|
|
71
|
-
|
|
96
|
+
const xAccessor = $derived(x ? accessor(x) : ctx.x);
|
|
97
|
+
const yAccessor = $derived(y ? accessor(y) : ctx.y);
|
|
98
|
+
const pointsData = $derived(data ?? ctx.data);
|
|
99
|
+
|
|
100
|
+
// Pre-calculate common values to avoid redundant calculations
|
|
101
|
+
const getPointObject = (xVal: number, yVal: number, d: any): Point => {
|
|
102
|
+
// Only calculate these scaled values once per point
|
|
103
|
+
const scaledX: number = ctx.xScale(xVal);
|
|
104
|
+
const scaledY: number = ctx.yScale(yVal);
|
|
105
|
+
|
|
106
|
+
return {
|
|
107
|
+
x: scaledX + getOffset(scaledX, offsetX, ctx.xScale),
|
|
108
|
+
y: scaledY + getOffset(scaledY, offsetY, ctx.yScale),
|
|
109
|
+
r: ctx.config.r ? ctx.rGet(d) : r,
|
|
110
|
+
xValue: xVal,
|
|
111
|
+
yValue: yVal,
|
|
112
|
+
data: d,
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const points = $derived(
|
|
117
|
+
pointsData.flatMap((d: any) => {
|
|
118
|
+
const xValue: number | number[] = xAccessor(d);
|
|
119
|
+
const yValue: number | number[] = yAccessor(d);
|
|
120
|
+
|
|
121
|
+
if (Array.isArray(xValue)) {
|
|
122
|
+
return xValue
|
|
123
|
+
.filter(Boolean)
|
|
124
|
+
.map((xVal: number) => getPointObject(xVal, yValue as number, d));
|
|
125
|
+
} else if (Array.isArray(yValue)) {
|
|
126
|
+
return yValue.filter(Boolean).map((yVal: number) => getPointObject(xValue, yVal, d));
|
|
127
|
+
} else if (xValue != null && yValue != null) {
|
|
128
|
+
return getPointObject(xValue as number, yValue as number, d);
|
|
129
|
+
}
|
|
72
130
|
|
|
73
|
-
|
|
131
|
+
return [];
|
|
132
|
+
}) as Point[]
|
|
133
|
+
);
|
|
74
134
|
|
|
75
|
-
|
|
76
|
-
.flatMap((d: any) => {
|
|
135
|
+
const _links = $derived(
|
|
136
|
+
pointsData.flatMap((d: any) => {
|
|
77
137
|
const xValue = xAccessor(d);
|
|
78
138
|
const yValue = yAccessor(d);
|
|
79
139
|
|
|
@@ -82,99 +142,51 @@
|
|
|
82
142
|
x={["prop1" ,"prop2"]}
|
|
83
143
|
y="prop3"
|
|
84
144
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
145
|
+
const [xMin, xMax] = extent(ctx.xGet(d)) as unknown as [number, number];
|
|
146
|
+
const y = ctx.yGet(d) + getOffset(ctx.yGet(d), offsetY, ctx.yScale);
|
|
147
|
+
return {
|
|
148
|
+
source: {
|
|
149
|
+
x: xMin + getOffset(xMin, offsetX, ctx.xScale) + (ctx.config.r ? ctx.rGet(d) : r),
|
|
150
|
+
y,
|
|
151
|
+
},
|
|
152
|
+
target: {
|
|
153
|
+
x: xMax + getOffset(xMax, offsetX, ctx.xScale) - (ctx.config.r ? ctx.rGet(d) : r),
|
|
154
|
+
y: y,
|
|
155
|
+
},
|
|
156
|
+
data: d,
|
|
157
|
+
};
|
|
95
158
|
} else if (Array.isArray(yValue)) {
|
|
96
159
|
/*
|
|
97
160
|
x="prop1"
|
|
98
161
|
y={["prop2" ,"prop3"]}
|
|
99
162
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
x: $xScale(xValue) + getOffset($xScale(xValue), offsetX, $xScale),
|
|
103
|
-
y: $yScale(yValue) + getOffset($yScale(yValue), offsetY, $yScale),
|
|
104
|
-
r: $config.r ? $rGet(d) : r,
|
|
105
|
-
xValue,
|
|
106
|
-
yValue,
|
|
107
|
-
data: d,
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
} else if (xValue != null && yValue != null) {
|
|
111
|
-
/*
|
|
112
|
-
x="prop1"
|
|
113
|
-
y="prop2"
|
|
114
|
-
*/
|
|
163
|
+
const x = ctx.xGet(d) + getOffset(ctx.xGet(d), offsetX, ctx.xScale);
|
|
164
|
+
const [yMin, yMax] = extent(ctx.yGet(d)) as unknown as [number, number];
|
|
115
165
|
return {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
166
|
+
source: {
|
|
167
|
+
x: x,
|
|
168
|
+
y: yMin + getOffset(yMin, offsetY, ctx.yScale),
|
|
169
|
+
},
|
|
170
|
+
target: {
|
|
171
|
+
x: x,
|
|
172
|
+
y: yMax + getOffset(yMax, offsetY, ctx.yScale),
|
|
173
|
+
},
|
|
121
174
|
data: d,
|
|
122
175
|
};
|
|
123
176
|
}
|
|
124
177
|
})
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
$: _links = pointsData.flatMap((d: any) => {
|
|
128
|
-
const xValue = xAccessor(d);
|
|
129
|
-
const yValue = yAccessor(d);
|
|
130
|
-
|
|
131
|
-
if (Array.isArray(xValue)) {
|
|
132
|
-
/*
|
|
133
|
-
x={["prop1" ,"prop2"]}
|
|
134
|
-
y="prop3"
|
|
135
|
-
*/
|
|
136
|
-
const [xMin, xMax] = extent($xGet(d)) as unknown as [number, number];
|
|
137
|
-
const y = $yGet(d) + getOffset($yGet(d), offsetY, $yScale);
|
|
138
|
-
return {
|
|
139
|
-
source: {
|
|
140
|
-
x: xMin + getOffset(xMin, offsetX, $xScale) + ($config.r ? $rGet(d) : r),
|
|
141
|
-
y,
|
|
142
|
-
},
|
|
143
|
-
target: {
|
|
144
|
-
x: xMax + getOffset(xMax, offsetX, $xScale) - ($config.r ? $rGet(d) : r),
|
|
145
|
-
y: y,
|
|
146
|
-
},
|
|
147
|
-
data: d,
|
|
148
|
-
};
|
|
149
|
-
} else if (Array.isArray(yValue)) {
|
|
150
|
-
/*
|
|
151
|
-
x="prop1"
|
|
152
|
-
y={["prop2" ,"prop3"]}
|
|
153
|
-
*/
|
|
154
|
-
const x = $xGet(d) + getOffset($xGet(d), offsetX, $xScale);
|
|
155
|
-
const [yMin, yMax] = extent($yGet(d)) as unknown as [number, number];
|
|
156
|
-
return {
|
|
157
|
-
source: {
|
|
158
|
-
x: x,
|
|
159
|
-
y: yMin + getOffset(yMin, offsetY, $yScale),
|
|
160
|
-
},
|
|
161
|
-
target: {
|
|
162
|
-
x: x,
|
|
163
|
-
y: yMax + getOffset(yMax, offsetY, $yScale),
|
|
164
|
-
},
|
|
165
|
-
data: d,
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
});
|
|
178
|
+
);
|
|
169
179
|
</script>
|
|
170
180
|
|
|
171
|
-
|
|
181
|
+
{#if children}
|
|
182
|
+
{@render children({ points })}
|
|
183
|
+
{:else}
|
|
172
184
|
{#if links}
|
|
173
185
|
{#each _links as link}
|
|
174
186
|
<Link
|
|
175
187
|
data={link}
|
|
176
|
-
stroke={fill ?? (
|
|
177
|
-
{...
|
|
188
|
+
stroke={fill ?? (ctx.config.c ? ctx.cGet(link.data) : null)}
|
|
189
|
+
{...extractLayerProps(links, 'points-link')}
|
|
178
190
|
/>
|
|
179
191
|
{/each}
|
|
180
192
|
{/if}
|
|
@@ -182,16 +194,15 @@
|
|
|
182
194
|
{#each points as point}
|
|
183
195
|
{@const radialPoint = pointRadial(point.x, point.y)}
|
|
184
196
|
<Circle
|
|
185
|
-
cx={
|
|
186
|
-
cy={
|
|
197
|
+
cx={ctx.radial ? radialPoint[0] : point.x}
|
|
198
|
+
cy={ctx.radial ? radialPoint[1] : point.y}
|
|
187
199
|
r={point.r}
|
|
188
|
-
fill={fill ?? (
|
|
200
|
+
fill={fill ?? (ctx.config.c ? ctx.cGet(point.data) : null)}
|
|
189
201
|
{fillOpacity}
|
|
190
202
|
{stroke}
|
|
191
203
|
{strokeWidth}
|
|
192
204
|
{opacity}
|
|
193
|
-
|
|
194
|
-
{...$$restProps}
|
|
205
|
+
{...extractLayerProps(restProps, 'point')}
|
|
195
206
|
/>
|
|
196
207
|
{/each}
|
|
197
|
-
|
|
208
|
+
{/if}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { CommonStyleProps, Without } from '../utils/types.js';
|
|
2
|
+
import type { ComponentProps, Snippet } from 'svelte';
|
|
2
3
|
export type Point = {
|
|
3
4
|
x: number;
|
|
4
5
|
y: number;
|
|
@@ -7,38 +8,48 @@ export type Point = {
|
|
|
7
8
|
yValue: any;
|
|
8
9
|
data: any;
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
+
type Offset = number | ((value: number, context: any) => number) | undefined;
|
|
12
|
+
export type PointsPropsWithoutHTML = {
|
|
13
|
+
/**
|
|
14
|
+
* Override data instead of using context
|
|
15
|
+
*/
|
|
16
|
+
data?: any;
|
|
17
|
+
/**
|
|
18
|
+
* Override `x` accessor from Chart context
|
|
19
|
+
*/
|
|
20
|
+
x?: Accessor;
|
|
21
|
+
/**
|
|
22
|
+
* Override `y` accessor from Chart context
|
|
23
|
+
*/
|
|
24
|
+
y?: Accessor;
|
|
25
|
+
/**
|
|
26
|
+
* Override `r` accessor from Chart context
|
|
27
|
+
*
|
|
28
|
+
* @default 5
|
|
29
|
+
*/
|
|
30
|
+
r?: number;
|
|
31
|
+
/**
|
|
32
|
+
* The offset of the point in the x direction
|
|
33
|
+
*/
|
|
34
|
+
offsetX?: Offset;
|
|
35
|
+
/**
|
|
36
|
+
* The offset of the point in the y direction
|
|
37
|
+
*/
|
|
38
|
+
offsetY?: Offset;
|
|
39
|
+
/**
|
|
40
|
+
* Enable showing links between related points (array x/y accessors)
|
|
41
|
+
*
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
links?: boolean | Partial<ComponentProps<typeof Link>>;
|
|
45
|
+
children?: Snippet<[{
|
|
46
|
+
points: Point[];
|
|
47
|
+
}]>;
|
|
48
|
+
} & CommonStyleProps;
|
|
49
|
+
export type PointsProps = PointsPropsWithoutHTML & Omit<Without<CircleProps, PointsPropsWithoutHTML>, 'ref'>;
|
|
50
|
+
import { type CircleProps } from './Circle.svelte';
|
|
11
51
|
import Link from './Link.svelte';
|
|
12
52
|
import { type Accessor } from '../utils/common.js';
|
|
13
|
-
declare const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
data?: any;
|
|
17
|
-
x?: Accessor;
|
|
18
|
-
y?: Accessor;
|
|
19
|
-
r?: number | undefined;
|
|
20
|
-
offsetX?: number | ((value: number, context: any) => number) | undefined;
|
|
21
|
-
offsetY?: number | ((value: number, context: any) => number) | undefined;
|
|
22
|
-
links?: (boolean | Partial<ComponentProps<Link>>) | undefined;
|
|
23
|
-
fill?: string | undefined | undefined;
|
|
24
|
-
fillOpacity?: number | undefined | undefined;
|
|
25
|
-
stroke?: string | undefined | undefined;
|
|
26
|
-
strokeWidth?: number | undefined | undefined;
|
|
27
|
-
opacity?: number | undefined | undefined;
|
|
28
|
-
class?: string | undefined | undefined;
|
|
29
|
-
};
|
|
30
|
-
events: {
|
|
31
|
-
[evt: string]: CustomEvent<any>;
|
|
32
|
-
};
|
|
33
|
-
slots: {
|
|
34
|
-
default: {
|
|
35
|
-
points: Point[];
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
export type PointsProps = typeof __propDef.props;
|
|
40
|
-
export type PointsEvents = typeof __propDef.events;
|
|
41
|
-
export type PointsSlots = typeof __propDef.slots;
|
|
42
|
-
export default class Points extends SvelteComponentTyped<PointsProps, PointsEvents, PointsSlots> {
|
|
43
|
-
}
|
|
44
|
-
export {};
|
|
53
|
+
declare const Points: import("svelte").Component<PointsProps, {}, "">;
|
|
54
|
+
type Points = ReturnType<typeof Points>;
|
|
55
|
+
export default Points;
|