@bimetal/angular
Die generische Angular-Bindung für die BIMETAL-Komponenten-Familie. Dieses Paket bindet einen
kanonischen Controller (aus einem der @bimetal/*-headless-Pakete) an Angulars Change-Detection — es
enthält keine eigene Interaktionslogik und keine Kalender-Spezifika. Jedes if lebt im
Controller; Angular rendert nur den identitätsstabilen Snapshot und übersetzt DOM-Events in
Intent-Aufrufe.
Die fertigen Komponenten liegen in den @bimetal/<familie>-angular-components-Paketen. Dieses Paket
liefert die Bausteine darunter für eigene Angular-UIs.
Installation
npm install @bimetal/angular @bimetal/<familie>-headless
Was das Paket liefert
createControllerBinding(factory, options) | Das generische Primitiv: erzeugt einen Controller (stabil über die store-Identität) und exponiert seinen Snapshot für die Component-Change-Detection. |
createKanbanControllerBinding, createTableControllerBinding, createGanttControllerBinding, createWhiteboardControllerBinding, createTreeControllerBinding, createListControllerBinding, createPickerControllerBinding, createFormBuilderControllerBinding/createFormRendererControllerBinding | Vorkonfigurierte Bindings je Familie. |
FocusTrapDirective | Fokus-Trap als Angular-Direktive (Dialog-Lifecycle), gewrappt um @bimetal/a11y-dom. |
renderProbe / probeRender | Test-Utilities für Re-Render-Zählung. |
Der Calendar-Binding (createCalendarControllerBinding) liegt aus historischen Gründen direkt in
@bimetal/calendar-angular-components, nicht hier. Alle anderen acht Familien laufen über dieses Paket.
Hinweis: In Angular-*ngFor-Listen ist trackBy per Entity-id Pflicht — ohne trackBy detacht die
Change-Detection bei Churn die DOM-Gesten.
Architektur
Framework-Ebene, Bindings-Schicht. Tiefe: Controller-Konzept (Headless und Bindings).