From 559a9656411db2980c78ec6f9b71908ce586fc06 Mon Sep 17 00:00:00 2001 From: Vincent Esche Date: Sat, 7 Jun 2025 13:48:21 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Remove=20`Prettify<=E2=80=A6>`=20from=20a?= =?UTF-8?q?=20few=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lib/components/ForceSimulation.svelte | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/layerchart/src/lib/components/ForceSimulation.svelte b/packages/layerchart/src/lib/components/ForceSimulation.svelte index 1787ef4d0..5505bb2c6 100644 --- a/packages/layerchart/src/lib/components/ForceSimulation.svelte +++ b/packages/layerchart/src/lib/components/ForceSimulation.svelte @@ -18,12 +18,12 @@ links?: TLink[]; }; - export type LinkPosition = Prettify<{ + export type LinkPosition = { x1: number; y1: number; x2: number; y2: number; - }>; + }; /** * Default initial alpha value of the simulation. @@ -52,11 +52,10 @@ */ export const DEFAULT_VELOCITY_DECAY: number = 0.4; - type NodeDatumFor = Prettify; + type NodeDatumFor = NodeDatum & SimulationNodeDatum; - type LinkDatumFor = Prettify< - LinkDatum & SimulationLinkDatum> - >; + type LinkDatumFor = LinkDatum & + SimulationLinkDatum>; type SimulationFor = Simulation< NodeDatumFor, @@ -160,7 +159,6 @@ LinkDatum extends SimulationLinkDatum | undefined," > import { watch } from 'runed'; - import type { Prettify } from '@layerstack/utils'; let { forces, From bf2094f1649b2d417774228e7dde64fbd83e053d Mon Sep 17 00:00:00 2001 From: Vincent Esche Date: Sat, 7 Jun 2025 14:29:49 +0200 Subject: [PATCH 2/3] feat(force-simulation): Refine `onstart`/`ontick`/`onend` events of `ForceSimulation` --- .changeset/proud-llamas-fold.md | 5 ++ .../src/lib/components/ForceSimulation.svelte | 63 ++++++++++++++++--- 2 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 .changeset/proud-llamas-fold.md diff --git a/.changeset/proud-llamas-fold.md b/.changeset/proud-llamas-fold.md new file mode 100644 index 000000000..83835d202 --- /dev/null +++ b/.changeset/proud-llamas-fold.md @@ -0,0 +1,5 @@ +--- +'layerchart': patch +--- + +feat(force-simulation): Refined `onstart`/`ontick`/`onend` events of `ForceSimulation` diff --git a/packages/layerchart/src/lib/components/ForceSimulation.svelte b/packages/layerchart/src/lib/components/ForceSimulation.svelte index 5505bb2c6..94f4fa495 100644 --- a/packages/layerchart/src/lib/components/ForceSimulation.svelte +++ b/packages/layerchart/src/lib/components/ForceSimulation.svelte @@ -25,6 +25,35 @@ y2: number; }; + export type OnStartEvent< + NodeDatum extends SimulationNodeDatum, + LinkDatum extends SimulationLinkDatum | undefined, + > = { + alpha: number; + alphaTarget: number; + simulation: SimulationFor; + }; + + export type OnTickEvent< + NodeDatum extends SimulationNodeDatum, + LinkDatum extends SimulationLinkDatum | undefined, + > = { + alpha: number; + alphaTarget: number; + nodes: NodeDatumFor[]; + links: LinkDatumFor[]; + simulation: SimulationFor; + }; + + export type OnEndEvent< + NodeDatum extends SimulationNodeDatum, + LinkDatum extends SimulationLinkDatum | undefined, + > = { + alpha: number; + alphaTarget: number; + simulation: SimulationFor; + }; + /** * Default initial alpha value of the simulation. */ @@ -128,17 +157,17 @@ /** * Callback function triggered when simulation starts */ - onStart?: () => void; + onStart?: (e: OnStartEvent) => void; /** * Callback function triggered on each simulation tick */ - onTick?: (e: { alpha: number; alphaTarget: number }) => void; + onTick?: (e: OnTickEvent) => void; /** * Callback function triggered when simulation ends */ - onEnd?: () => void; + onEnd?: (e: OnEndEvent) => void; children?: Snippet< [ @@ -170,9 +199,9 @@ velocityDecay = DEFAULT_VELOCITY_DECAY, stopped = false, static: staticProp, - onStart: onStartProp = () => {}, - onTick: onTickProp = () => {}, - onEnd: onEndProp = () => {}, + onStart: onStartProp, + onTick: onTickProp, + onEnd: onEndProp, children, cloneNodes = false, }: ForceSimulationProps = $props(); @@ -429,7 +458,12 @@ } paused = false; - onStartProp(); + + onStartProp?.({ + alpha, + alphaTarget, + simulation, + }); } function onTick() { @@ -437,7 +471,13 @@ pullAlphaFromSimulation(); updateLinkPositions(); - onTickProp({ alpha, alphaTarget }); + onTickProp?.({ + alpha, + alphaTarget, + nodes: simulatedNodes, + links: simulatedLinks, + simulation, + }); } function onEnd() { @@ -447,7 +487,12 @@ } paused = true; - onEndProp(); + + onEndProp?.({ + alpha, + alphaTarget, + simulation, + }); } $effect(() => { From 7b92eec61d479a9dad13ad374401070a8bcf65a6 Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Sat, 7 Jun 2025 11:47:09 -0400 Subject: [PATCH 3/3] Update proud-llamas-fold.md --- .changeset/proud-llamas-fold.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/proud-llamas-fold.md b/.changeset/proud-llamas-fold.md index 83835d202..567e9e834 100644 --- a/.changeset/proud-llamas-fold.md +++ b/.changeset/proud-llamas-fold.md @@ -2,4 +2,4 @@ 'layerchart': patch --- -feat(force-simulation): Refined `onstart`/`ontick`/`onend` events of `ForceSimulation` +feat(ForceSimulation): Refined `onstart`/`ontick`/`onend` events of `ForceSimulation`