mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-14 08:30:50 +00:00
placement : une belle-famille collée ne grimpe pas au-dessus des parents du conjoint
Avec des ancêtres plus haut que les parents, elle montait dans les rangées des aînés de la lignée et s'y glissait entre deux frères (Marc et Sophie entre Anaïs et Germaine). Les parents restent au-dessus du conjoint, le reste devient un onglet, sauf les toutes petites familles (FAMILY_INLINE_MAX = 6 au-delà des parents) qui restent dessinées. asc-23 : croisements 15 → 0, fratries coupées 7 → 1 ; arbre réel 1 → 0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
10815498b7
commit
a562ad9c6e
1 file changed
+10
-1
@@ -50,6 +50,8 @@ const FAMILY_TAB_PX = 2880
|
||||
// Une belle-famille poussée plus loin que ça de son enfant ne se colle pas : seuls les parents du conjoint
|
||||
// restent au-dessus de lui, le reste devient un onglet
|
||||
const FAMILY_FIT_PX = 480
|
||||
// Une belle-famille qui grimpe au-dessus des parents du conjoint reste dessinée si elle est toute petite
|
||||
const FAMILY_INLINE_MAX = 6
|
||||
|
||||
// Le fil d'une filiation union → enfant : une personne d'une autre famille, sur la ligne de l'enfant,
|
||||
// entre l'aplomb de l'union et l'enfant, est croisée. Frères et sœurs et leurs conjoint(e)s ne comptent pas
|
||||
@@ -476,7 +478,14 @@ function layoutOnce(graphData, referenceId, forcedSide, familyTabs = true) {
|
||||
continue
|
||||
}
|
||||
const entry = { block, anchorId: id, side, pu, pc, snap: { tabsBefore, tabsAfter: tabs.length, externalBefore, externalAfter: new Set(externalEdges) } }
|
||||
if (parentsOnly) entry.block = reduceToParents(entry)
|
||||
// Une belle-famille collée ne déborde pas, au-dessus de la rangée des parents du conjoint, de la place de
|
||||
// ces parents : des ancêtres plus larges grimperaient dans les rangées des aînés de la lignée et s'y
|
||||
// glisseraient entre deux frères (Patch, 20/10, Marc et Sophie entre Anaïs et Germaine). Les parents
|
||||
// restent, le reste devient un onglet. Des ancêtres en colonne au-dessus des parents restent dessinés.
|
||||
// Une toute petite famille (jusqu'à FAMILY_INLINE_MAX personnes au-delà des parents) reste dessinée.
|
||||
const deep = [...block.rows.keys()].some(g => g < gen - 1)
|
||||
const beyondParents = deep ? [...block.members].filter(m => byId.get(m)?._type === 'person' && chainOf.get(m) !== pc).length : 0
|
||||
if (parentsOnly || (deep && beyondParents > FAMILY_INLINE_MAX)) entry.block = reduceToParents(entry)
|
||||
built.push(entry)
|
||||
orient(chain, kidOfChain ?? (chain.length === 3 ? (chain[0] === id ? chain[2] : chain[0]) : null), side)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user