Nettoyage post-revue : factorisation, code mort et fiabilité (reorder/lore/foundry/PDF)
All checks were successful
All checks were successful
Corrections fonctionnelles - order initialisé à la création des pages et dossiers de lore (nextOrderFor) : un nouvel élément se place désormais en dernier de sa fratrie au lieu de 0 - storePortrait : type MIME canonique dérivé de l'extension du fichier (un data URL "image/jpg" n'est plus rejeté silencieusement) - takeUntilDestroyed ajouté sur les abonnements paramMap de arc-view, folder-view et campaign-detail (fuites mémoire) Factorisation (suppression de duplication) - shared/folder-grouping.util.ts : groupByFolder + byOrder + byFolderName mutualisés entre npc-list, enemy-list, campaign-detail et la sidebar (folderChildren). Le tri des dossiers est désormais cohérent entre la sidebar et les vues cartes (insensible casse/accents partout) - DataSyncService.onChange()/persist() remplacent le câblage changed$ + reorder recopié dans 5 vues - campaign-detail : loadCampaignBundle()/applyCampaignBundle() éliminent le forkJoin dupliqué entre ngOnInit et reload - ReorderSupport (domain/shared) : squelette générique remplaçant les 8 boucles de réordonnancement copiées dans les services - FoundryExportService : GameSystem résolu une seule fois dans buildBundle - module Foundry : walkScalars mutualise la récursion de flattenStats et flattenStructure (comportements préservés) ; esc() de l'importer aligné sur foundry.utils.escapeHTML Suppression de code mort - characterService/characters retirés de loadCampaignTreeData et de ses 16 appelants (arguments, injections, imports et littéraux CampaignTreeData) - CSS orphelin : .tree-row.cdk-drop-list-receiving et .btn-back - BottomPanel.initiallyOpen (jamais lu) retiré de l'interface et de l'appelant - commentaire trompeur du PDF corrigé Tests - mise à jour de 3 tests obsolètes de campaign-tree.helper.spec qui vérifiaient encore l'ancien comportement (tri alphabétique, non-classés en enfants directs) → alignés sur le modèle actuel (tri par order + pseudo-dossier "Sans dossier")
This commit is contained in:
@@ -19,3 +19,48 @@ body {
|
||||
background: #0a0a14;
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
/* ===== Glisser-déposer (Angular CDK) — retours visuels GLOBAUX =====
|
||||
Globaux car l'aperçu (cdk-drag-preview) est déplacé dans <body> : les styles
|
||||
encapsulés des composants ne s'y appliquent pas. */
|
||||
|
||||
/* Aperçu qui suit le curseur : ligne compacte et opaque (jamais transparente). */
|
||||
.cdk-drag-preview {
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
background: #1b1b2b;
|
||||
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.55);
|
||||
color: #e0e0e0;
|
||||
font-size: 0.9rem;
|
||||
padding: 2px 6px;
|
||||
}
|
||||
/* Ne pas traîner tout un sous-arbre déplié quand on déplace un dossier/arc/quête. */
|
||||
.cdk-drag-preview .tree-children,
|
||||
.cdk-drag-preview .node-actions { display: none; }
|
||||
|
||||
/* Emplacement cible : on GARDE la hauteur de la ligne (visibility, pas display) pour
|
||||
qu'un vrai trou s'ouvre, et on affiche une barre d'insertion en pointillés. */
|
||||
.cdk-drag-placeholder {
|
||||
opacity: 1;
|
||||
background: rgba(138, 123, 200, 0.18);
|
||||
border: 1px dashed #8a7bc8;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/* On masque le contenu (visibility = on garde la hauteur d'UNE ligne) mais on REPLIE
|
||||
le sous-arbre (display:none) pour que le trou d'insertion fasse une seule ligne. */
|
||||
.cdk-drag-placeholder > * { visibility: hidden; }
|
||||
.cdk-drag-placeholder .tree-children { display: none; }
|
||||
|
||||
/* Les voisins glissent pour ouvrir/refermer l'espace pendant le déplacement. */
|
||||
.cdk-drag-animating { transition: transform 180ms cubic-bezier(0, 0, 0.2, 1); }
|
||||
.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder) {
|
||||
transition: transform 180ms cubic-bezier(0, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
/* Curseurs de préhension (le drag part de la poignée). */
|
||||
[cdkDrag] { cursor: default; }
|
||||
.cdk-drag-handle, [cdkDragHandle] { cursor: grab; }
|
||||
.cdk-drag-handle:active, [cdkDragHandle]:active { cursor: grabbing; }
|
||||
/* Surbrillance d'une zone de dépôt qui reçoit un élément (ex: page sur dossier). */
|
||||
.cdk-drop-list-receiving { outline: 2px dashed #6c63ff; outline-offset: 2px; }
|
||||
|
||||
Reference in New Issue
Block a user