Overview

  • webclients integrated into monorepo:

    • client-axioma (main)
    • client-journal ( Bürgerbereich crap which should die )
    • client-officevorlagen-addin
  • core: contains legacy components ( not maintained, eol )

  • core-next: angular 17+ with standalone components, signals and all the other cool kinds

The big idea is that the backend ( in wizards and stuff ) creates the html templates. The angular jit compiles the template during runtime (SSR ?) NgComponentOutlet performs the rendering

Template Directives

Contains some trackings to autoupdate loaded entities

Outlet pattern

Everything is part of some outlet. LayoutOutlet -> Entity detail pages WidgetOutlet -> Dashboard Widgets TreeOutlet -> Hierarchical trees AssocOutlet -> Assocfield lists PreviewOutlet -> Search result preview

State

  • NgRx(core): Global store for security, layout cache, entityCache and stuff
  • ComponentStore(core-next): Scoped state ( eg wizard ) which caches only during the lifetime
  • Signals: Well angular singals, Form updates and stuff

Questions

pnpm

pnpm should be used for monorepo. Why dont we do this already ?

Check a bit later

  • entity-store-selector can pipe an objguid and receive the whole object which is up-to-date because of push. Abdu showed some very sexy syntax. The entityStore is the single source of truth

  • NgDeep apparently for css overwriting stuff