Korrektur: Wand/Decke bleiben bei "Nach Bauteil" als Default, nur

Drawing2D wechselt auf "Nach Ebene"

Nutzer-Korrektur zum vorigen Commit: "eine Wand usw soll weiterhin
nach Bauteil haben und die weisser Grund und schwarzer Vordergrund
haben. Also nach Bauteil. 2D Elemente haben aber bei Attribute kein
nach Bauteil!!!" -- der vorige Commit hatte den Default global (auch
für Wand/Decke) auf "Nach Ebene" umgestellt, was die neutrale SIA-
Poché-Konvention (weisser Grund/schwarzer Vordergrund über die
Bauteil-Kette) durch die rohe Ebenenfarbe ersetzt hätte.

resolveForeground/resolveBackground/resolveHatchId/resolveStrokeWeight
(plan/generatePlan/shared.ts) sind zurückgesetzt auf ihr ursprüngliches
Verhalten: `source === "layer"` (fehlend/"object" ⇒ weiterhin Bauteil-
Kette, DEFAULT bei Wand/Decke). Der elementart-abhängige Default sitzt
jetzt an den AUFRUFERN statt im generischen Resolver:
  • Wand/Decke (selectionInfo.ts): rohes Source-Feld unverändert
    durchgereicht -- Default bleibt "Nach Bauteil".
  • Drawing2D (selectionInfo.ts drawingSelection): `d.foregroundSource
    ?? "layer"` usw. VOR dem Resolver -- Default wird dort explizit
    "Nach Ebene" (kein eigenes Bauteil, "Nach Bauteil" bietet das Panel
    für 2D-Elemente ohnehin nicht mehr an, s. vorletzter Commit).
  • AttributesPanel.tsx uiSourceOf() bekommt einen isDrawing-Parameter
    für denselben elementart-abhängigen Default in der Dropdown-
    Anzeige.

+Tests in shared.resolve.test.ts auf die jetzt korrekten Erwartungen
umgeschrieben (Default bleibt Bauteil, explizites "layer" liefert die
Kategorie, Drawing2D-Aufrufer-Mapping separat geprüft). tsc/vitest
934/934 grün.
This commit is contained in:
2026-08-22 01:05:20 +02:00
parent bfc064796f
commit 85be7173e1
5 changed files with 103 additions and 64 deletions
+11 -5
View File
@@ -831,12 +831,18 @@ export interface LayerCategory {
* Quelle eines vererbbaren Attributs (Vordergrund/Hintergrund/Strichstärke/
* Schraffur), wenn KEIN expliziter Wert am Element gesetzt ist:
* • "layer" — „Nach Ebene": die LayerCategory des Elements erzwingt den Wert
* (`color`/`lw`/`hatch`). Das ist auch der DEFAULT, wenn das Source-Feld
* fehlt (`undefined`) — ein frisch erzeugtes Element (Source-Feld nie
* gesetzt) folgt also der Ebene, nicht dem Bauteil.
* (`color`/`lw`/`hatch`).
* • "object" — „Nach Bauteil": erbt vom Bauteil (Component) bzw. dessen
* bisheriger Fallback-Kette. Muss aktiv im Attribut-Panel gewählt werden
* (nur bei Wand/Decke anwendbar — ein Drawing2D hat kein Bauteil).
* bisheriger Fallback-Kette (bei Wand/Decke u. a. die neutrale SIA-Poché-
* Konvention, s. `resolveBackground`). Das ist auch der DEFAULT bei Wand/
* Decke, wenn das Source-Feld fehlt (`undefined`) — bewusst NICHT „Nach
* Ebene": eine frisch erzeugte Wand soll die neutrale Bauteil-Konvention
* zeigen (weisser Grund, schwarzer Vordergrund), nicht die rohe
* Ebenenfarbe.
* Ein Drawing2D hat KEIN eigenes Bauteil — „Nach Bauteil" ist dort im
* Attribut-Panel gar nicht erst wählbar, ein fehlendes Source-Feld wird dort
* vom Aufrufer (`selectionInfo.ts`) auf „Nach Ebene" gemappt (die einzig
* sinnvolle Alternative zum expliziten Wert bei einem bauteillosen Element).
* Ein gesetzter expliziter Wert (z. B. `foreground`) gewinnt IMMER, unabhängig
* von der Source (s. Resolve-Reihenfolge in `plan/generatePlan/shared.ts`).
*/