{{-- Un niveau de la cascade. Attend $n (nœud) et $pivot (vrai pour la racine : la personne se place alors AU MILIEU de ses unions). Les générations suivantes se déplient à la demande : dix branches ouvertes d'un coup dépassent largement l'écran et rendent la lecture impossible. --}} @php $pivot = $pivot ?? false; $unions = $n['unions'] ?? []; $avecEnfants = collect($unions)->filter(fn ($u) => ! empty($u['enfants']))->values(); @endphp
{{ $u['nb_enfants'] }} enfant{{ $u['nb_enfants'] > 1 ? 's' : '' }} @if (count($unions) > 1 && $u['conjoint']) avec {{ $u['conjoint']['nom'] }} @endif
@php // On ouvre d'emblée la branche la plus fournie : elle // montre la cascade sur trois générations sans un clic. $rangOuvert = collect($u['enfants']) ->map(fn ($e, $i) => ['i' => $i, 'n' => collect($e['unions'] ?? [])->sum('nb_enfants')]) ->sortByDesc('n')->first(); $rangOuvert = ($rangOuvert && $rangOuvert['n'] > 0) ? $rangOuvert['i'] : null; @endphp