layerchart 0.97.1 → 0.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Chart.svelte +2 -5
- package/dist/components/Chart.svelte.d.ts +2 -3
- package/dist/components/TransformContext.svelte +15 -25
- package/dist/components/TransformContext.svelte.d.ts +1 -2
- package/dist/components/charts/PieChart.svelte.d.ts +1 -2
- package/dist/components/layout/Canvas.svelte +1 -6
- package/dist/components/layout/Html.svelte +1 -6
- package/dist/components/layout/Svg.svelte +1 -6
- package/package.json +1 -1
|
@@ -423,7 +423,7 @@
|
|
|
423
423
|
initialTranslate={initialTransform?.translate}
|
|
424
424
|
initialScale={initialTransform?.scale}
|
|
425
425
|
processTranslate={geo
|
|
426
|
-
? (x, y, deltaX, deltaY
|
|
426
|
+
? (x, y, deltaX, deltaY) => {
|
|
427
427
|
if (geo.applyTransform?.includes('rotate')) {
|
|
428
428
|
// When applying transform to rotate, invert `y` values and reduce sensitivity based on projection scale
|
|
429
429
|
// see: https://observablehq.com/@benoldenburg/simple-globe and https://observablehq.com/@michael-keith/draggable-globe-in-d3
|
|
@@ -434,12 +434,9 @@
|
|
|
434
434
|
x: x + deltaX * (sensitivity / projectionScale),
|
|
435
435
|
y: y + deltaY * (sensitivity / projectionScale) * -1,
|
|
436
436
|
};
|
|
437
|
-
} else if (geo.applyTransform?.includes('translate')) {
|
|
438
|
-
// When applying to `translate`, use pointer values as is (with no `scale` adjustment)
|
|
439
|
-
return { x: x + deltaX, y: y + deltaY };
|
|
440
437
|
} else {
|
|
441
438
|
// Apply default TransformContext.processTransform (passing `undefined` below appears to not work when checking for `geo?.applyTransform` exists)
|
|
442
|
-
return { x: x + deltaX
|
|
439
|
+
return { x: x + deltaX, y: y + deltaY };
|
|
443
440
|
}
|
|
444
441
|
}
|
|
445
442
|
: undefined}
|
|
@@ -223,10 +223,9 @@ declare class __sveltets_Render<TData> {
|
|
|
223
223
|
/** Props passed to TransformContext */
|
|
224
224
|
transform?: Partial<{
|
|
225
225
|
mode?: "none" | "canvas" | "manual";
|
|
226
|
-
translateOnScale?: boolean;
|
|
227
226
|
spring?: boolean | Parameters<typeof import("../stores/motionStore").motionStore>[1]["spring"];
|
|
228
|
-
tweened?: boolean | Parameters<typeof import("../stores/motionStore").motionStore>[1]
|
|
229
|
-
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number
|
|
227
|
+
tweened?: boolean | Parameters<typeof import("../stores/motionStore").motionStore>[1]["tweened"];
|
|
228
|
+
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number) => {
|
|
230
229
|
x: number;
|
|
231
230
|
y: number;
|
|
232
231
|
};
|
|
@@ -61,22 +61,14 @@
|
|
|
61
61
|
const { width, height } = chartContext();
|
|
62
62
|
|
|
63
63
|
export let mode: TransformMode = 'none';
|
|
64
|
-
/** Translate towards point (ex. mouse cursor/center) while zooming in/out */
|
|
65
|
-
export let translateOnScale = false;
|
|
66
64
|
|
|
67
65
|
export let spring: boolean | Parameters<typeof motionStore>[1]['spring'] = undefined;
|
|
68
66
|
export let tweened: boolean | Parameters<typeof motionStore>[1]['tweened'] = undefined;
|
|
69
67
|
|
|
70
|
-
export let processTranslate = (
|
|
71
|
-
x: number,
|
|
72
|
-
y: number,
|
|
73
|
-
deltaX: number,
|
|
74
|
-
deltaY: number,
|
|
75
|
-
scale: number
|
|
76
|
-
) => {
|
|
68
|
+
export let processTranslate = (x: number, y: number, deltaX: number, deltaY: number) => {
|
|
77
69
|
return {
|
|
78
|
-
x: x + deltaX
|
|
79
|
-
y: y + deltaY
|
|
70
|
+
x: x + deltaX,
|
|
71
|
+
y: y + deltaY,
|
|
80
72
|
};
|
|
81
73
|
};
|
|
82
74
|
|
|
@@ -182,7 +174,7 @@
|
|
|
182
174
|
e.currentTarget?.setPointerCapture(e.pointerId);
|
|
183
175
|
|
|
184
176
|
setTranslate(
|
|
185
|
-
processTranslate(startTranslate.x, startTranslate.y, deltaX, deltaY
|
|
177
|
+
processTranslate(startTranslate.x, startTranslate.y, deltaX, deltaY),
|
|
186
178
|
// @ts-expect-error
|
|
187
179
|
spring ? { hard: true } : tweened ? { duration: 0 } : undefined
|
|
188
180
|
);
|
|
@@ -232,7 +224,7 @@
|
|
|
232
224
|
} else if ($scrollMode === 'translate') {
|
|
233
225
|
translate.update(
|
|
234
226
|
(startTranslate) =>
|
|
235
|
-
processTranslate(startTranslate.x, startTranslate.y, -e.deltaX, -e.deltaY
|
|
227
|
+
processTranslate(startTranslate.x, startTranslate.y, -e.deltaX, -e.deltaY),
|
|
236
228
|
// @ts-expect-error
|
|
237
229
|
spring ? { hard: true } : tweened ? { duration: 0 } : undefined
|
|
238
230
|
);
|
|
@@ -251,18 +243,16 @@
|
|
|
251
243
|
const newScale = $scale * value;
|
|
252
244
|
setScale(newScale, options);
|
|
253
245
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
setTranslate(newTranslate, options);
|
|
265
|
-
}
|
|
246
|
+
// Translate towards point (ex. mouse cursor/center) while zooming in/out
|
|
247
|
+
const invertTransformPoint = {
|
|
248
|
+
x: (point.x - $translate.x) / currentScale,
|
|
249
|
+
y: (point.y - $translate.y) / currentScale,
|
|
250
|
+
};
|
|
251
|
+
const newTranslate = {
|
|
252
|
+
x: point.x - invertTransformPoint.x * newScale,
|
|
253
|
+
y: point.y - invertTransformPoint.y * newScale,
|
|
254
|
+
};
|
|
255
|
+
setTranslate(newTranslate, options);
|
|
266
256
|
}
|
|
267
257
|
|
|
268
258
|
const translating = motionFinishHandler();
|
|
@@ -37,10 +37,9 @@ import { motionStore, type MotionOptions } from '../stores/motionStore.js';
|
|
|
37
37
|
declare const __propDef: {
|
|
38
38
|
props: {
|
|
39
39
|
mode?: TransformMode;
|
|
40
|
-
/** Translate towards point (ex. mouse cursor/center) while zooming in/out */ translateOnScale?: boolean;
|
|
41
40
|
spring?: boolean | Parameters<typeof motionStore>[1]["spring"];
|
|
42
41
|
tweened?: boolean | Parameters<typeof motionStore>[1]["tweened"];
|
|
43
|
-
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number
|
|
42
|
+
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number) => {
|
|
44
43
|
x: number;
|
|
45
44
|
y: number;
|
|
46
45
|
};
|
|
@@ -151,10 +151,9 @@ declare class __sveltets_Render<TData> {
|
|
|
151
151
|
}> | undefined;
|
|
152
152
|
transform?: Partial<{
|
|
153
153
|
mode?: "none" | "canvas" | "manual";
|
|
154
|
-
translateOnScale?: boolean;
|
|
155
154
|
spring?: boolean | Parameters<typeof import("../../stores/motionStore").motionStore>[1]["spring"];
|
|
156
155
|
tweened?: boolean | Parameters<typeof import("../../stores/motionStore").motionStore>[1]["tweened"];
|
|
157
|
-
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number
|
|
156
|
+
processTranslate?: (x: number, y: number, deltaX: number, deltaY: number) => {
|
|
158
157
|
x: number;
|
|
159
158
|
y: number;
|
|
160
159
|
};
|
|
@@ -177,12 +177,7 @@
|
|
|
177
177
|
};
|
|
178
178
|
context.translate(newTranslate.x, newTranslate.y);
|
|
179
179
|
} else if (mode === 'canvas') {
|
|
180
|
-
|
|
181
|
-
const newTranslate = {
|
|
182
|
-
x: $translate.x * $scale + center.x - center.x * $scale,
|
|
183
|
-
y: $translate.y * $scale + center.y - center.y * $scale,
|
|
184
|
-
};
|
|
185
|
-
context.translate(newTranslate.x, newTranslate.y);
|
|
180
|
+
context.translate($translate.x, $translate.y);
|
|
186
181
|
context.scale($scale, $scale);
|
|
187
182
|
}
|
|
188
183
|
|
|
@@ -40,12 +40,7 @@
|
|
|
40
40
|
? `translate(${center === 'x' || center === true ? $width / 2 : 0}, ${center === 'y' || center === true ? $height / 2 : 0})`
|
|
41
41
|
: '';
|
|
42
42
|
$: if (mode === 'canvas') {
|
|
43
|
-
|
|
44
|
-
const newTranslate = {
|
|
45
|
-
x: $translate.x * $scale + center.x - center.x * $scale,
|
|
46
|
-
y: $translate.y * $scale + center.y - center.y * $scale,
|
|
47
|
-
};
|
|
48
|
-
transform = `translate(${newTranslate.x}px,${newTranslate.y}px) scale(${$scale})`;
|
|
43
|
+
transform = `translate(${$translate.x}px,${$translate.y}px) scale(${$scale})`;
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
setRenderContext('html');
|
|
@@ -44,12 +44,7 @@
|
|
|
44
44
|
? `translate(${center === 'x' || center === true ? $width / 2 : 0}, ${center === 'y' || center === true ? $height / 2 : 0})`
|
|
45
45
|
: '';
|
|
46
46
|
$: if (mode === 'canvas') {
|
|
47
|
-
|
|
48
|
-
const newTranslate = {
|
|
49
|
-
x: $translate.x * $scale + center.x - center.x * $scale,
|
|
50
|
-
y: $translate.y * $scale + center.y - center.y * $scale,
|
|
51
|
-
};
|
|
52
|
-
transform = `translate(${newTranslate.x},${newTranslate.y}) scale(${$scale})`;
|
|
47
|
+
transform = `translate(${$translate.x},${$translate.y}) scale(${$scale})`;
|
|
53
48
|
}
|
|
54
49
|
|
|
55
50
|
setRenderContext('svg');
|