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,64 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export type CanvasPropsWithoutHTML = {
|
|
2
|
+
/**
|
|
3
|
+
* The `<canvas>` tag. Useful for bindings.
|
|
4
|
+
*
|
|
5
|
+
* @bindable
|
|
6
|
+
*/
|
|
7
|
+
ref?: HTMLCanvasElement;
|
|
8
|
+
/**
|
|
9
|
+
* The `<canvas>`'s 2d context. Useful for bindings.
|
|
10
|
+
*
|
|
11
|
+
* @bindable
|
|
12
|
+
*/
|
|
13
|
+
canvasContext?: CanvasRenderingContext2D;
|
|
14
|
+
/**
|
|
15
|
+
* Force the use of a software (instead of hardware accelerated) 2D canvas, which can
|
|
16
|
+
* save memory when calling getImageData() frequently.
|
|
17
|
+
*
|
|
18
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext#willreadfrequently
|
|
19
|
+
*
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
willReadFrequently?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The `z-index` style to apply to the layer.
|
|
25
|
+
*
|
|
26
|
+
* @default 0
|
|
27
|
+
*/
|
|
28
|
+
zIndex?: number;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* Whether pointer events should be enabled on the canvas.
|
|
32
|
+
*
|
|
33
|
+
* - `false`: `pointer-events: none;` will be set on the entire layer.
|
|
34
|
+
* - `true`: pointer events will operate normally.
|
|
35
|
+
*
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
pointerEvents?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The content to display if canvas is not supported or cannot be rendered.
|
|
41
|
+
* This can either be a string or a snippet with custom markup.
|
|
42
|
+
*/
|
|
43
|
+
fallback?: string | Snippet;
|
|
44
|
+
/**
|
|
45
|
+
* Translate children to center of the canvas (useful for radial layouts).
|
|
46
|
+
*
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
center?: boolean | 'x' | 'y';
|
|
50
|
+
/**
|
|
51
|
+
* Ignore TransformContext.
|
|
52
|
+
*
|
|
53
|
+
* Useful to add static elements such as legends.
|
|
54
|
+
*
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
ignoreTransform?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Show the hit canvas for debugging purposes.
|
|
60
|
+
*
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
debug?: boolean;
|
|
64
|
+
children?: Snippet<[
|
|
65
|
+
{
|
|
66
|
+
ref: HTMLCanvasElement;
|
|
67
|
+
canvasContext: CanvasRenderingContext2D | undefined;
|
|
68
|
+
}
|
|
69
|
+
]>;
|
|
70
|
+
};
|
|
71
|
+
export type CanvasProps = CanvasPropsWithoutHTML & Without<HTMLCanvasAttributes, CanvasPropsWithoutHTML>;
|
|
72
|
+
type ComponentRender<T extends Element = Element> = {
|
|
3
73
|
name: string;
|
|
4
74
|
render: (ctx: CanvasRenderingContext2D, styleOverrides?: ComputedStylesOptions) => any;
|
|
5
75
|
retainState?: boolean;
|
|
6
76
|
events?: {
|
|
7
|
-
click?:
|
|
8
|
-
dblclick?:
|
|
9
|
-
pointerenter?:
|
|
10
|
-
pointerover?:
|
|
11
|
-
pointermove?:
|
|
12
|
-
pointerleave?:
|
|
13
|
-
pointerout?:
|
|
14
|
-
pointerdown?:
|
|
15
|
-
touchmove?:
|
|
77
|
+
click?: MouseEventHandler<T> | null;
|
|
78
|
+
dblclick?: MouseEventHandler<T> | null;
|
|
79
|
+
pointerenter?: PointerEventHandler<T> | null;
|
|
80
|
+
pointerover?: PointerEventHandler<T> | null;
|
|
81
|
+
pointermove?: PointerEventHandler<T> | null;
|
|
82
|
+
pointerleave?: PointerEventHandler<T> | null;
|
|
83
|
+
pointerout?: PointerEventHandler<T> | null;
|
|
84
|
+
pointerdown?: PointerEventHandler<T> | null;
|
|
85
|
+
touchmove?: TouchEventHandler<T> | null;
|
|
16
86
|
};
|
|
87
|
+
/**
|
|
88
|
+
* Optional dependencies to track and invalidate the canvas context when they change.
|
|
89
|
+
*/
|
|
90
|
+
deps?: () => any[];
|
|
17
91
|
};
|
|
18
|
-
export type
|
|
19
|
-
/**
|
|
20
|
-
|
|
92
|
+
export type CanvasContextValue = {
|
|
93
|
+
/**
|
|
94
|
+
* Register component to render.
|
|
95
|
+
*
|
|
96
|
+
* Returns method to unregister on component destroy
|
|
97
|
+
*/
|
|
98
|
+
register<T extends Element>(component: ComponentRender<T>): () => void;
|
|
21
99
|
invalidate(): void;
|
|
22
100
|
};
|
|
23
|
-
export declare
|
|
24
|
-
|
|
101
|
+
export declare function getCanvasContext(): CanvasContextValue;
|
|
102
|
+
/**
|
|
103
|
+
* Handles the automatic registration of the component to the canvas context,
|
|
104
|
+
* with dependency tracking and cleanup on destroy.
|
|
105
|
+
*/
|
|
106
|
+
export declare function registerCanvasComponent<T extends Element>(component: ComponentRender<T>): void;
|
|
107
|
+
import { type Snippet } from 'svelte';
|
|
25
108
|
import { type ComputedStylesOptions } from '../../utils/canvas.js';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
willReadFrequently?: boolean | undefined;
|
|
32
|
-
zIndex?: undefined;
|
|
33
|
-
pointerEvents?: boolean | undefined | undefined;
|
|
34
|
-
fallback?: string | undefined;
|
|
35
|
-
label?: string | undefined | undefined;
|
|
36
|
-
labelledBy?: string | undefined | undefined;
|
|
37
|
-
describedBy?: string | undefined | undefined;
|
|
38
|
-
center?: boolean | "x" | "y" | undefined;
|
|
39
|
-
ignoreTransform?: boolean | undefined;
|
|
40
|
-
debug?: boolean | undefined;
|
|
41
|
-
};
|
|
42
|
-
events: {
|
|
43
|
-
click: MouseEvent;
|
|
44
|
-
pointerenter: PointerEvent;
|
|
45
|
-
pointermove: PointerEvent;
|
|
46
|
-
pointerleave: PointerEvent;
|
|
47
|
-
touchmove: TouchEvent;
|
|
48
|
-
} & {
|
|
49
|
-
[evt: string]: CustomEvent<any>;
|
|
50
|
-
};
|
|
51
|
-
slots: {
|
|
52
|
-
fallback: {};
|
|
53
|
-
default: {
|
|
54
|
-
element: HTMLCanvasElement | undefined;
|
|
55
|
-
context: CanvasRenderingContext2D;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
export type CanvasProps = typeof __propDef.props;
|
|
60
|
-
export type CanvasEvents = typeof __propDef.events;
|
|
61
|
-
export type CanvasSlots = typeof __propDef.slots;
|
|
62
|
-
export default class Canvas extends SvelteComponentTyped<CanvasProps, CanvasEvents, CanvasSlots> {
|
|
63
|
-
}
|
|
64
|
-
export {};
|
|
109
|
+
import type { HTMLCanvasAttributes, MouseEventHandler, PointerEventHandler, TouchEventHandler } from 'svelte/elements';
|
|
110
|
+
import type { Without } from '../../utils/types.js';
|
|
111
|
+
declare const Canvas: import("svelte").Component<CanvasProps, {}, "ref" | "canvasContext">;
|
|
112
|
+
type Canvas = ReturnType<typeof Canvas>;
|
|
113
|
+
export default Canvas;
|
|
@@ -1,74 +1,114 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import {
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
+
import type { Without } from '../../utils/types.js';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
type HTMLPropsWithoutHTML = {
|
|
7
|
+
/**
|
|
8
|
+
* A reference to the layer's outermost `<div>` tag.
|
|
9
|
+
*
|
|
10
|
+
* @bindable
|
|
11
|
+
*/
|
|
12
|
+
ref?: HTMLElement;
|
|
7
13
|
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The layer's z-index.
|
|
16
|
+
*/
|
|
17
|
+
zIndex?: number;
|
|
10
18
|
|
|
11
|
-
|
|
12
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Set this to `false` to set `pointer-events: none;` on the entire layer.
|
|
21
|
+
*/
|
|
22
|
+
pointerEvents?: boolean;
|
|
13
23
|
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
/**
|
|
25
|
+
* A string passed to the `aria-role` on the `<div>` tag.
|
|
26
|
+
* This is `undefined` by default but will be set by default to `'figure'`
|
|
27
|
+
* if `label`, `labelledby` or `describedby` is set. That default will be overridden by whatever is passed in.
|
|
28
|
+
*/
|
|
29
|
+
role?: string;
|
|
16
30
|
|
|
17
|
-
|
|
18
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Translate children to center (useful for radial layouts)
|
|
33
|
+
*/
|
|
34
|
+
center?: boolean | 'x' | 'y';
|
|
19
35
|
|
|
20
|
-
|
|
21
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Ignore TransformContext. Useful to add static elements such as legends.
|
|
38
|
+
*/
|
|
39
|
+
ignoreTransform?: boolean;
|
|
22
40
|
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
children?: Snippet<[{ ref: HTMLElement }]>;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export type HTMLProps = HTMLPropsWithoutHTML &
|
|
45
|
+
Without<HTMLAttributes<HTMLElement>, HTMLPropsWithoutHTML>;
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<script lang="ts">
|
|
49
|
+
import { cls } from '@layerstack/tailwind';
|
|
50
|
+
import { getTransformContext } from '../TransformContext.svelte';
|
|
25
51
|
|
|
26
|
-
|
|
27
|
-
|
|
52
|
+
import { getChartContext, setRenderContext } from '../Chart.svelte';
|
|
53
|
+
import { layerClass } from '../../utils/attributes.js';
|
|
28
54
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
55
|
+
let {
|
|
56
|
+
ref: refProp = $bindable(),
|
|
57
|
+
zIndex = 0,
|
|
58
|
+
pointerEvents = true,
|
|
59
|
+
role,
|
|
60
|
+
'aria-label': label,
|
|
61
|
+
'aria-labelledby': labelledBy,
|
|
62
|
+
'aria-describedby': describedBy,
|
|
63
|
+
center = false,
|
|
64
|
+
ignoreTransform = false,
|
|
65
|
+
class: className,
|
|
66
|
+
children,
|
|
67
|
+
...restProps
|
|
68
|
+
}: HTMLProps = $props();
|
|
33
69
|
|
|
34
|
-
|
|
35
|
-
|
|
70
|
+
let ref = $state<HTMLElement>();
|
|
71
|
+
$effect.pre(() => {
|
|
72
|
+
refProp = ref;
|
|
73
|
+
});
|
|
36
74
|
|
|
37
|
-
|
|
75
|
+
const roleVal = $derived(role || (label || labelledBy || describedBy ? 'figure' : undefined));
|
|
38
76
|
|
|
39
|
-
const
|
|
40
|
-
const
|
|
77
|
+
const ctx = getChartContext();
|
|
78
|
+
const transformCtx = getTransformContext();
|
|
41
79
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
80
|
+
const transform = $derived.by(() => {
|
|
81
|
+
if (transformCtx.mode === 'canvas' && !ignoreTransform) {
|
|
82
|
+
return `translate(${transformCtx.translate.x}px,${transformCtx.translate.y}px) scale(${transformCtx.scale})`;
|
|
83
|
+
} else if (center) {
|
|
84
|
+
return `translate(${center === 'x' || center === true ? ctx.width / 2 : 0}px, ${center === 'y' || center === true ? ctx.height / 2 : 0}px)`;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
48
87
|
|
|
49
88
|
setRenderContext('html');
|
|
50
89
|
</script>
|
|
51
90
|
|
|
52
91
|
<div
|
|
53
|
-
bind:this={
|
|
92
|
+
bind:this={ref}
|
|
54
93
|
class={cls(
|
|
55
|
-
'
|
|
94
|
+
layerClass('layout-html'),
|
|
56
95
|
'absolute top-0 left-0',
|
|
57
96
|
pointerEvents === false && 'pointer-events-none',
|
|
58
|
-
|
|
97
|
+
className
|
|
59
98
|
)}
|
|
60
99
|
style:transform
|
|
61
100
|
style:transform-origin="top left"
|
|
62
101
|
style:z-index={zIndex}
|
|
63
102
|
style:pointer-events={pointerEvents === false ? 'none' : null}
|
|
64
|
-
style:top="{
|
|
65
|
-
style:bottom="{
|
|
66
|
-
style:left="{
|
|
67
|
-
style:right="{
|
|
103
|
+
style:top="{ctx.padding.top}px"
|
|
104
|
+
style:bottom="{ctx.padding.bottom}px"
|
|
105
|
+
style:left="{ctx.padding.left}px"
|
|
106
|
+
style:right="{ctx.padding.right}px"
|
|
68
107
|
role={roleVal}
|
|
69
108
|
aria-label={label}
|
|
70
109
|
aria-labelledby={labelledBy}
|
|
71
110
|
aria-describedby={describedBy}
|
|
111
|
+
{...restProps}
|
|
72
112
|
>
|
|
73
|
-
|
|
113
|
+
{@render children?.({ ref })}
|
|
74
114
|
</div>
|
|
@@ -1,29 +1,40 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
+
import type { Without } from '../../utils/types.js';
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
type HTMLPropsWithoutHTML = {
|
|
5
|
+
/**
|
|
6
|
+
* A reference to the layer's outermost `<div>` tag.
|
|
7
|
+
*
|
|
8
|
+
* @bindable
|
|
9
|
+
*/
|
|
10
|
+
ref?: HTMLElement;
|
|
11
|
+
/**
|
|
12
|
+
* The layer's z-index.
|
|
13
|
+
*/
|
|
14
|
+
zIndex?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Set this to `false` to set `pointer-events: none;` on the entire layer.
|
|
17
|
+
*/
|
|
18
|
+
pointerEvents?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* A string passed to the `aria-role` on the `<div>` tag.
|
|
21
|
+
* This is `undefined` by default but will be set by default to `'figure'`
|
|
22
|
+
* if `label`, `labelledby` or `describedby` is set. That default will be overridden by whatever is passed in.
|
|
23
|
+
*/
|
|
24
|
+
role?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Translate children to center (useful for radial layouts)
|
|
27
|
+
*/
|
|
28
|
+
center?: boolean | 'x' | 'y';
|
|
29
|
+
/**
|
|
30
|
+
* Ignore TransformContext. Useful to add static elements such as legends.
|
|
31
|
+
*/
|
|
32
|
+
ignoreTransform?: boolean;
|
|
33
|
+
children?: Snippet<[{
|
|
34
|
+
ref: HTMLElement;
|
|
35
|
+
}]>;
|
|
23
36
|
};
|
|
24
|
-
export type
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export default
|
|
28
|
-
}
|
|
29
|
-
export {};
|
|
37
|
+
export type HTMLProps = HTMLPropsWithoutHTML & Without<HTMLAttributes<HTMLElement>, HTMLPropsWithoutHTML>;
|
|
38
|
+
declare const Html: import("svelte").Component<HTMLProps, {}, "ref">;
|
|
39
|
+
type Html = ReturnType<typeof Html>;
|
|
40
|
+
export default Html;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { ComponentProps } from 'svelte';
|
|
3
|
+
|
|
4
|
+
export type CanvasLayerProps = {
|
|
5
|
+
type: 'canvas';
|
|
6
|
+
} & Omit<ComponentProps<typeof Canvas>, 'type'>;
|
|
7
|
+
|
|
8
|
+
export type HtmlLayerProps = {
|
|
9
|
+
type: 'html';
|
|
10
|
+
} & Omit<ComponentProps<typeof Html>, 'type'>;
|
|
11
|
+
|
|
12
|
+
export type SvgLayerProps = {
|
|
13
|
+
type: 'svg';
|
|
14
|
+
} & Omit<ComponentProps<typeof Svg>, 'type'>;
|
|
15
|
+
|
|
16
|
+
export type LayerProps = CanvasLayerProps | HtmlLayerProps | SvgLayerProps;
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
import Canvas from './Canvas.svelte';
|
|
21
|
+
import Html from './Html.svelte';
|
|
22
|
+
import Svg from './Svg.svelte';
|
|
23
|
+
|
|
24
|
+
let { type, children, ...restProps }: LayerProps = $props();
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
{#if type === 'canvas'}
|
|
28
|
+
<Canvas {...restProps as ComponentProps<typeof Canvas>}>
|
|
29
|
+
{@render children?.()}
|
|
30
|
+
</Canvas>
|
|
31
|
+
{:else if type === 'svg'}
|
|
32
|
+
<Svg {...restProps as ComponentProps<typeof Svg>}>
|
|
33
|
+
{@render children?.()}
|
|
34
|
+
</Svg>
|
|
35
|
+
{:else if type === 'html'}
|
|
36
|
+
<Html {...restProps as ComponentProps<typeof Html>}>
|
|
37
|
+
{@render children?.()}
|
|
38
|
+
</Html>
|
|
39
|
+
{/if}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentProps } from 'svelte';
|
|
2
|
+
export type CanvasLayerProps = {
|
|
3
|
+
type: 'canvas';
|
|
4
|
+
} & Omit<ComponentProps<typeof Canvas>, 'type'>;
|
|
5
|
+
export type HtmlLayerProps = {
|
|
6
|
+
type: 'html';
|
|
7
|
+
} & Omit<ComponentProps<typeof Html>, 'type'>;
|
|
8
|
+
export type SvgLayerProps = {
|
|
9
|
+
type: 'svg';
|
|
10
|
+
} & Omit<ComponentProps<typeof Svg>, 'type'>;
|
|
11
|
+
export type LayerProps = CanvasLayerProps | HtmlLayerProps | SvgLayerProps;
|
|
12
|
+
import Canvas from './Canvas.svelte';
|
|
13
|
+
import Html from './Html.svelte';
|
|
14
|
+
import Svg from './Svg.svelte';
|
|
15
|
+
declare const Layer: import("svelte").Component<LayerProps, {}, "">;
|
|
16
|
+
type Layer = ReturnType<typeof Layer>;
|
|
17
|
+
export default Layer;
|