From 1cb05697cca89858750739b24bbfdda5760a77de Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 28 May 2026 15:17:18 +0200 Subject: [PATCH] refactor(stammbaum): extract buildLayout to pure module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the layout function out of StammbaumTree.svelte (lines 47-275) into a new pure TypeScript module at frontend/src/lib/person/genealogy/layout/ buildLayout.ts so it can be exercised by direct unit tests. Drops the eslint-disable svelte/prefer-svelte-reactivity blanket; switches the remaining scope-local Maps/Sets in parentLinks to SvelteMap/SvelteSet to satisfy the rule per-call-site. No behaviour change — existing StammbaumTree tests must pass byte-for-byte. Refs #689 Co-Authored-By: Claude Opus 4.7 --- .../lib/person/genealogy/StammbaumTree.svelte | 270 +----------------- .../person/genealogy/layout/buildLayout.ts | 257 +++++++++++++++++ 2 files changed, 266 insertions(+), 261 deletions(-) create mode 100644 frontend/src/lib/person/genealogy/layout/buildLayout.ts diff --git a/frontend/src/lib/person/genealogy/StammbaumTree.svelte b/frontend/src/lib/person/genealogy/StammbaumTree.svelte index f28857ac..1e74682e 100644 --- a/frontend/src/lib/person/genealogy/StammbaumTree.svelte +++ b/frontend/src/lib/person/genealogy/StammbaumTree.svelte @@ -1,7 +1,7 @@