layerchart 0.54.0 → 0.54.1
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/components/Arc.svelte +170 -144
- package/dist/components/Area.svelte +96 -67
- package/dist/components/Area.svelte.d.ts +1 -0
- package/dist/components/Axis.svelte +205 -155
- package/dist/components/Bar.svelte +72 -45
- package/dist/components/Bars.svelte +45 -34
- package/dist/components/Blur.svelte +5 -3
- package/dist/components/Bounds.svelte +37 -21
- package/dist/components/Brush.svelte +181 -110
- package/dist/components/Calendar.svelte +51 -38
- package/dist/components/Chart.svelte +295 -74
- package/dist/components/Chart.svelte.d.ts +17 -17
- package/dist/components/ChartClipPath.svelte +8 -5
- package/dist/components/ChartContext.svelte +243 -93
- package/dist/components/ChartContext.svelte.d.ts +15 -23
- package/dist/components/Circle.svelte +25 -16
- package/dist/components/CircleClipPath.svelte +16 -10
- package/dist/components/ClipPath.svelte +11 -7
- package/dist/components/ColorRamp.svelte +12 -10
- package/dist/components/ForceSimulation.svelte +185 -116
- package/dist/components/Frame.svelte +10 -6
- package/dist/components/GeoCircle.svelte +15 -9
- package/dist/components/GeoContext.svelte +109 -62
- package/dist/components/GeoEdgeFade.svelte +20 -14
- package/dist/components/GeoPath.svelte +107 -69
- package/dist/components/GeoPoint.svelte +32 -18
- package/dist/components/GeoSpline.svelte +30 -22
- package/dist/components/GeoTile.svelte +40 -30
- package/dist/components/GeoVisible.svelte +10 -7
- package/dist/components/Graticule.svelte +14 -8
- package/dist/components/Grid.svelte +75 -48
- package/dist/components/Group.svelte +43 -31
- package/dist/components/Highlight.svelte +284 -243
- package/dist/components/HitCanvas.svelte +75 -42
- package/dist/components/Hull.svelte +40 -20
- package/dist/components/Labels.svelte +81 -70
- package/dist/components/Legend.svelte +105 -74
- package/dist/components/Legend.svelte.d.ts +1 -1
- package/dist/components/Line.svelte +29 -19
- package/dist/components/LinearGradient.svelte +21 -15
- package/dist/components/Link.svelte +44 -22
- package/dist/components/MonthPath.svelte +23 -16
- package/dist/components/MotionPath.svelte +34 -25
- package/dist/components/Pack.svelte +21 -14
- package/dist/components/Partition.svelte +35 -20
- package/dist/components/Pattern.svelte +8 -6
- package/dist/components/Pie.svelte +76 -57
- package/dist/components/Point.svelte +11 -7
- package/dist/components/Points.svelte +178 -143
- package/dist/components/RadialGradient.svelte +25 -18
- package/dist/components/Rect.svelte +33 -19
- package/dist/components/RectClipPath.svelte +16 -11
- package/dist/components/Rule.svelte +50 -42
- package/dist/components/Sankey.svelte +55 -30
- package/dist/components/Spline.svelte +118 -96
- package/dist/components/Text.svelte +137 -104
- package/dist/components/Threshold.svelte +18 -7
- package/dist/components/TileImage.svelte +56 -50
- package/dist/components/TransformContext.svelte +235 -135
- package/dist/components/TransformControls.svelte +57 -29
- package/dist/components/TransformControls.svelte.d.ts +1 -1
- package/dist/components/Tree.svelte +33 -23
- package/dist/components/Treemap.svelte +69 -41
- package/dist/components/Voronoi.svelte +55 -28
- package/dist/components/charts/AreaChart.svelte +128 -77
- package/dist/components/charts/AreaChart.svelte.d.ts +1 -1
- package/dist/components/charts/BarChart.svelte +169 -104
- package/dist/components/charts/BarChart.svelte.d.ts +1 -1
- package/dist/components/charts/LineChart.svelte +87 -43
- package/dist/components/charts/LineChart.svelte.d.ts +1 -1
- package/dist/components/charts/PieChart.svelte +102 -52
- package/dist/components/charts/PieChart.svelte.d.ts +1 -1
- package/dist/components/charts/ScatterChart.svelte +73 -38
- package/dist/components/charts/ScatterChart.svelte.d.ts +1 -1
- package/dist/components/layout/Canvas.svelte +63 -43
- package/dist/components/layout/Html.svelte +28 -18
- package/dist/components/layout/Svg.svelte +47 -32
- package/dist/components/tooltip/Tooltip.svelte +137 -91
- package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
- package/dist/components/tooltip/TooltipContext.svelte +315 -249
- package/dist/components/tooltip/TooltipHeader.svelte +9 -3
- package/dist/components/tooltip/TooltipItem.svelte +17 -9
- package/dist/components/tooltip/TooltipList.svelte +2 -1
- package/dist/components/tooltip/TooltipSeparator.svelte +3 -2
- package/dist/docs/Blockquote.svelte +4 -3
- package/dist/docs/Code.svelte +15 -8
- package/dist/docs/CurveMenuField.svelte +17 -12
- package/dist/docs/GeoDebug.svelte +13 -9
- package/dist/docs/Header1.svelte +2 -1
- package/dist/docs/Json.svelte +6 -4
- package/dist/docs/Layout.svelte +6 -6
- package/dist/docs/PathDataMenuField.svelte +52 -44
- package/dist/docs/Preview.svelte +39 -33
- package/dist/docs/TilesetField.svelte +80 -62
- package/dist/docs/TransformDebug.svelte +8 -5
- package/dist/docs/ViewSourceButton.svelte +13 -9
- package/dist/stores/motionStore.d.ts +1 -1
- package/dist/utils/scales.d.ts +3 -3
- package/package.json +29 -30
|
@@ -207,7 +207,7 @@ declare class __sveltets_Render<TData> {
|
|
|
207
207
|
tickValues?: any[] | undefined;
|
|
208
208
|
tickFontSize?: number | undefined;
|
|
209
209
|
tickLength?: number | undefined;
|
|
210
|
-
placement?: ("
|
|
210
|
+
placement?: ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right") | undefined;
|
|
211
211
|
orientation?: ("horizontal" | "vertical") | undefined;
|
|
212
212
|
variant?: ("ramp" | "swatches") | undefined;
|
|
213
213
|
classes?: {
|
|
@@ -1,44 +1,79 @@
|
|
|
1
|
-
<script generics="TData">
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
let
|
|
1
|
+
<script lang="ts" generics="TData">
|
|
2
|
+
import { type ComponentProps } from 'svelte';
|
|
3
|
+
import { scaleLinear, scaleOrdinal, scaleTime } from 'd3-scale';
|
|
4
|
+
import { format } from '@layerstack/utils';
|
|
5
|
+
|
|
6
|
+
import Axis from '../Axis.svelte';
|
|
7
|
+
import Chart from '../Chart.svelte';
|
|
8
|
+
import Grid from '../Grid.svelte';
|
|
9
|
+
import Highlight from '../Highlight.svelte';
|
|
10
|
+
import Labels from '../Labels.svelte';
|
|
11
|
+
import Legend from '../Legend.svelte';
|
|
12
|
+
import Points from '../Points.svelte';
|
|
13
|
+
import Rule from '../Rule.svelte';
|
|
14
|
+
import Svg from '../layout/Svg.svelte';
|
|
15
|
+
import * as Tooltip from '../tooltip/index.js';
|
|
16
|
+
|
|
17
|
+
import { accessor, chartDataArray, type Accessor } from '../../utils/common.js';
|
|
18
|
+
|
|
19
|
+
interface $$Props extends ComponentProps<Chart<TData>> {
|
|
20
|
+
axis?: typeof axis;
|
|
21
|
+
grid?: typeof grid;
|
|
22
|
+
labels?: typeof labels;
|
|
23
|
+
legend?: typeof legend;
|
|
24
|
+
props?: typeof props;
|
|
25
|
+
series?: typeof series;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export let data: $$Props['data'] = [];
|
|
29
|
+
export let x: Accessor<TData> = undefined;
|
|
30
|
+
export let y: Accessor<TData> = undefined;
|
|
31
|
+
|
|
32
|
+
export let series: {
|
|
33
|
+
key: string;
|
|
34
|
+
label?: string;
|
|
35
|
+
data: TData[];
|
|
36
|
+
color?: string;
|
|
37
|
+
props?: Partial<ComponentProps<Points>>;
|
|
38
|
+
}[] = [{ key: 'default', data: chartDataArray(data), color: 'hsl(var(--color-primary))' }];
|
|
39
|
+
$: isDefaultSeries = series.length === 1 && series[0].key === 'default';
|
|
40
|
+
|
|
41
|
+
export let axis: ComponentProps<Axis> | 'x' | 'y' | boolean = true;
|
|
42
|
+
export let grid: ComponentProps<Grid> | boolean = true;
|
|
43
|
+
export let labels: ComponentProps<Labels> | boolean = false;
|
|
44
|
+
export let legend: ComponentProps<Legend> | boolean = false;
|
|
45
|
+
export let rule: ComponentProps<Rule> | boolean = true;
|
|
46
|
+
|
|
47
|
+
export let props: {
|
|
48
|
+
xAxis?: Partial<ComponentProps<Axis>>;
|
|
49
|
+
yAxis?: Partial<ComponentProps<Axis>>;
|
|
50
|
+
grid?: Partial<ComponentProps<Grid>>;
|
|
51
|
+
points?: Partial<ComponentProps<Points>>;
|
|
52
|
+
highlight?: Partial<ComponentProps<Highlight>>;
|
|
53
|
+
labels?: Partial<ComponentProps<Labels>>;
|
|
54
|
+
legend?: Partial<ComponentProps<Legend>>;
|
|
55
|
+
rule?: Partial<ComponentProps<Rule>>;
|
|
56
|
+
} = {};
|
|
57
|
+
|
|
58
|
+
// Default xScale based on first data's `x` value
|
|
59
|
+
$: xScale = accessor(x)(chartDataArray(data)[0]) instanceof Date ? scaleTime() : scaleLinear();
|
|
60
|
+
|
|
61
|
+
let chartData = series
|
|
29
62
|
.flatMap((s) => s.data?.map((d) => ({ seriesKey: s.key, ...d })))
|
|
30
|
-
.filter((d) => d)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
63
|
+
.filter((d) => d) as Array<TData>;
|
|
64
|
+
|
|
65
|
+
function getPointsProps(s: (typeof series)[number], i: number) {
|
|
66
|
+
const pointsProps: ComponentProps<Points> = {
|
|
67
|
+
data: s.data,
|
|
68
|
+
stroke: s.color,
|
|
69
|
+
fill: s.color,
|
|
70
|
+
'fill-opacity': 0.3,
|
|
71
|
+
...props.points,
|
|
72
|
+
...s.props,
|
|
39
73
|
};
|
|
74
|
+
|
|
40
75
|
return pointsProps;
|
|
41
|
-
}
|
|
76
|
+
}
|
|
42
77
|
</script>
|
|
43
78
|
|
|
44
79
|
<Chart
|
|
@@ -252,7 +252,7 @@ declare class __sveltets_Render<TData> {
|
|
|
252
252
|
tickValues?: any[] | undefined;
|
|
253
253
|
tickFontSize?: number | undefined;
|
|
254
254
|
tickLength?: number | undefined;
|
|
255
|
-
placement?: ("
|
|
255
|
+
placement?: ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right") | undefined;
|
|
256
256
|
orientation?: ("horizontal" | "vertical") | undefined;
|
|
257
257
|
variant?: ("ramp" | "swatches") | undefined;
|
|
258
258
|
classes?: {
|
|
@@ -1,53 +1,73 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export let
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
export let
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { onMount, setContext } from 'svelte';
|
|
3
|
+
import { writable } from 'svelte/store';
|
|
4
|
+
import { scaleCanvas } from 'layercake';
|
|
5
|
+
import { cls } from '@layerstack/tailwind';
|
|
6
|
+
|
|
7
|
+
import { chartContext } from '../ChartContext.svelte';
|
|
8
|
+
import { transformContext } from '../TransformContext.svelte';
|
|
9
|
+
|
|
10
|
+
const { width, height, containerWidth, containerHeight, padding } = chartContext();
|
|
11
|
+
|
|
12
|
+
/** The `<canvas>` tag. Useful for bindings. */
|
|
13
|
+
export let element: HTMLCanvasElement | undefined = undefined;
|
|
14
|
+
|
|
15
|
+
/** The `<canvas>`'s 2d context. Useful for bindings. */
|
|
16
|
+
// @ts-expect-error: set during onMount()
|
|
17
|
+
export let context: CanvasRenderingContext2D = undefined;
|
|
18
|
+
|
|
19
|
+
/** Force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling getImageData() frequently.
|
|
20
|
+
* see: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext#willreadfrequently */
|
|
21
|
+
export let willReadFrequently = false;
|
|
22
|
+
|
|
23
|
+
/** The layer's z-index. */
|
|
24
|
+
export let zIndex = undefined;
|
|
25
|
+
|
|
26
|
+
/** Set this to `false` to set `pointer-events: none;` on the entire layer. */
|
|
27
|
+
export let pointerEvents: boolean | undefined = undefined;
|
|
28
|
+
|
|
29
|
+
/** Text to display if the browser won't render a canvas tag. You can also set arbitrary HTML via the "fallback" slot but this is fine if you just need text. If you use the "fallback" slot, this prop is ignored. */
|
|
30
|
+
export let fallback = '';
|
|
31
|
+
|
|
32
|
+
/** A string passed to the `aria-label` on the `<canvas>` tag. */
|
|
33
|
+
export let label: string | undefined = undefined;
|
|
34
|
+
|
|
35
|
+
/** A string passed to the `aria-labelledby` on the `<canvas>` tag. */
|
|
36
|
+
export let labelledBy: string | undefined = undefined;
|
|
37
|
+
|
|
38
|
+
/** A string passed to `aria-describedby` property on the `<canvas>` tag. */
|
|
39
|
+
export let describedBy: string | undefined = undefined;
|
|
40
|
+
|
|
41
|
+
const ctx = writable({});
|
|
42
|
+
|
|
43
|
+
onMount(() => {
|
|
44
|
+
context = element?.getContext('2d', { willReadFrequently }) as CanvasRenderingContext2D;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const { mode, scale, translate } = transformContext();
|
|
48
|
+
|
|
49
|
+
$: if (context) {
|
|
34
50
|
scaleCanvas(context, $containerWidth, $containerHeight);
|
|
35
51
|
context.clearRect(0, 0, $containerWidth, $containerHeight);
|
|
52
|
+
|
|
36
53
|
context.translate($padding.left ?? 0, $padding.top ?? 0);
|
|
54
|
+
|
|
37
55
|
if (mode === 'canvas') {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
const center = { x: $width / 2, y: $height / 2 };
|
|
57
|
+
const newTranslate = {
|
|
58
|
+
x: $translate.x * $scale + center.x - center.x * $scale,
|
|
59
|
+
y: $translate.y * $scale + center.y - center.y * $scale,
|
|
60
|
+
};
|
|
61
|
+
context.translate(newTranslate.x, newTranslate.y);
|
|
62
|
+
context.scale($scale, $scale);
|
|
45
63
|
}
|
|
64
|
+
|
|
46
65
|
// Force children to re-draw
|
|
47
66
|
$ctx = context;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
$: ctx.set(context);
|
|
70
|
+
setContext('canvas', { ctx });
|
|
51
71
|
</script>
|
|
52
72
|
|
|
53
73
|
<canvas
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** The layer's
|
|
6
|
-
export let
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
export let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cls } from '@layerstack/tailwind';
|
|
3
|
+
import { chartContext } from '../ChartContext.svelte';
|
|
4
|
+
|
|
5
|
+
/** The layer's outermost `<div>` tag. Useful for bindings. */
|
|
6
|
+
export let element: HTMLDivElement | undefined = undefined;
|
|
7
|
+
|
|
8
|
+
/** The layer's z-index. */
|
|
9
|
+
export let zIndex = undefined;
|
|
10
|
+
|
|
11
|
+
/** Set this to `false` to set `pointer-events: none;` on the entire layer. */
|
|
12
|
+
export let pointerEvents: boolean | undefined = undefined;
|
|
13
|
+
|
|
14
|
+
/** A string passed to the `aria-role` on the `<div>` tag. This is `undefined` by default but will be set by default to `'figure'` if `label`, `labelledby` or `describedby` is set. That default will be overridden by whatever is passed in. */
|
|
15
|
+
export let role: string | undefined = undefined;
|
|
16
|
+
|
|
17
|
+
/** A string passed to the `aria-label` property on the `<div>` tag. */
|
|
18
|
+
export let label: string | undefined = undefined;
|
|
19
|
+
|
|
20
|
+
/** A string passed to the `aria-labelledby property` on the `<div>` tag. */
|
|
21
|
+
export let labelledBy: string | undefined = undefined;
|
|
22
|
+
|
|
23
|
+
/** A string passed to the `aria-describedby` property on the `<div>` tag. */
|
|
24
|
+
export let describedBy: string | undefined = undefined;
|
|
25
|
+
|
|
26
|
+
const { padding } = chartContext();
|
|
27
|
+
|
|
28
|
+
$: roleVal = role || (label || labelledBy || describedBy ? 'figure' : undefined);
|
|
19
29
|
</script>
|
|
20
30
|
|
|
21
31
|
<div
|
|
@@ -1,41 +1,56 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
export let
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
export let
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cls } from '@layerstack/tailwind';
|
|
3
|
+
|
|
4
|
+
import { chartContext } from '../ChartContext.svelte';
|
|
5
|
+
import { transformContext } from '../TransformContext.svelte';
|
|
6
|
+
|
|
7
|
+
/** The layer's `<svg>` tag. Useful for bindings. */
|
|
8
|
+
export let element: SVGElement | undefined = undefined;
|
|
9
|
+
|
|
10
|
+
/** The layer's `<g>` tag. Useful for bindings. */
|
|
11
|
+
export let innerElement: SVGGElement | undefined = undefined;
|
|
12
|
+
|
|
13
|
+
/** The layer's z-index. */
|
|
14
|
+
export let zIndex = undefined;
|
|
15
|
+
|
|
16
|
+
/** Set this to `false` to set `pointer-events: none;` on the entire layer. */
|
|
17
|
+
export let pointerEvents: boolean | undefined = undefined;
|
|
18
|
+
|
|
19
|
+
/** A string passed to the `viewBox` property on the `<svg>` tag. */
|
|
20
|
+
export let viewBox: string | undefined = undefined;
|
|
21
|
+
|
|
22
|
+
/** A string passed to the `aria-label` property on the `<svg>` tag. */
|
|
23
|
+
export let label: string | undefined = undefined;
|
|
24
|
+
|
|
25
|
+
/** A string passed to the `aria-labelledby property` on the `<svg>` tag. */
|
|
26
|
+
export let labelledBy: string | undefined = undefined;
|
|
27
|
+
|
|
28
|
+
/** A string passed to the `aria-describedby` property on the `<svg>` tag. */
|
|
29
|
+
export let describedBy: string | undefined = undefined;
|
|
30
|
+
|
|
31
|
+
/** Shorthand to set the contents of `<title></title>` for accessibility. You can also set arbitrary HTML via the "title" slot but this is a convenient shorthand. If you use the "title" slot, this prop is ignored. */
|
|
32
|
+
export let title: string | undefined = undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Translate children to center, useful for radial layouts
|
|
36
|
+
*/
|
|
37
|
+
export let center: boolean | 'x' | 'y' = false;
|
|
38
|
+
|
|
39
|
+
const { containerWidth, containerHeight, width, height, padding } = chartContext();
|
|
40
|
+
|
|
41
|
+
const { mode, scale, translate } = transformContext();
|
|
42
|
+
|
|
43
|
+
$: transform = center
|
|
29
44
|
? `translate(${center === 'x' || center === true ? $width / 2 : 0}, ${center === 'y' || center === true ? $height / 2 : 0})`
|
|
30
45
|
: '';
|
|
31
|
-
$: if (mode === 'canvas') {
|
|
46
|
+
$: if (mode === 'canvas') {
|
|
32
47
|
const center = { x: $width / 2, y: $height / 2 };
|
|
33
48
|
const newTranslate = {
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
x: $translate.x * $scale + center.x - center.x * $scale,
|
|
50
|
+
y: $translate.y * $scale + center.y - center.y * $scale,
|
|
36
51
|
};
|
|
37
52
|
transform = `translate(${newTranslate.x},${newTranslate.y}) scale(${$scale})`;
|
|
38
|
-
}
|
|
53
|
+
}
|
|
39
54
|
</script>
|
|
40
55
|
|
|
41
56
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|