How rajhseg/angular-controls-v22 works
Purpose and topology
This is an Angular 22+ workspace containing a publishable reusable UI-control library, rcomponents, plus a demo/host application. The library targets browser and server-side rendering (SSR) compatibility; it is not a backend service. Primary workspace/build configuration is in Angular-Controls-V22/angular.json.
Entry points and delivery
• Browser app bootstrap: Angular-Controls-V22/src/main.ts.
• SSR bootstrap and server runtime: Angular-Controls-V22/src/main.server.ts, Angular-Controls-V22/server.ts.
• Library consumer entry point: Angular-Controls-V22/projects/rcomponents/src/public-api.ts.
• Library packaging boundary: Angular-Controls-V22/projects/rcomponents/ng-package.json; consumers import the built package rather than internal component paths.
Application shell and demo composition
The host app provides routing, application providers, SSR-specific providers, and component pages that exercise the library:
• Angular-Controls-V22/src/app/app.component.ts
• Angular-Controls-V22/src/app/app.routes.ts
• Angular-Controls-V22/src/app/app.config.ts
• Angular-Controls-V22/src/app/app.config.server.ts
• Angular-Controls-V22/src/app/root-component/root-component.ts
Control flow is Angular bootstrap → app configuration/router → demo root/pages → rcomponents controls. The demo is the integration surface, while the library is the product boundary.
Library aggregation and shared runtime boundary
RComponentsModule is the central Angular integration point, declaring/exporting the control set:
• Angular-Controls-V22/projects/rcomponents/src/lib/rcomponents.module.ts
• Angular-Controls-V22/projects/rcomponents/src/public-api.ts
Shared abstractions support component behavior and platform-safe DOM access:
• Angular-Controls-V22/projects/rcomponents/src/lib/rmodels/RBaseComponent.ts
• Angular-Controls-V22/projects/rcomponents/src/lib/rwindowObject.ts
• Angular-Controls-V22/projects/rcomponents/src/lib/rcss-units.service.ts
The Window/environment helper boundary is architecturally important for SSR: controls requiring browser APIs should route access through these abstractions rather than directly assuming window/DOM availability.
Interactive form, selection, and layout controls
Core reusable input/navigation primitives own UI state and emit Angular interaction events to host applications. Representative controls include:
• Dropdown selection and filtering: projects/rcomponents/src/lib/rdropdown/rdropdown.component.ts, projects/rcomponents/src/lib/rdropdown/rdropdownservice.service.ts, projects/rcomponents/src/lib/rselectdropdown/rselectdropdown.component.ts
• Date/time and events: projects/rcomponents/src/lib/rcalendar/rcalendar.component.ts, projects/rcomponents/src/lib/rcalendar/rcalendar.service.ts, projects/rcomponents/src/lib/reventscalender/reventscalender.component.ts
• Tabs/sequence/layout composition: projects/rcomponents/src/lib/rtab/rtabs.component.ts, projects/rcomponents/src/lib/rsplitter/rsplitter.component.ts, projects/rcomponents/src/lib/rstep/rstep.component.ts
Data presentation and visualization
Data passed through component inputs is rendered locally as grids or charts; no external data provider/service is evident from the repository structure.
• Grid supports columns, cells, and projected view/edit templates: projects/rcomponents/src/lib/rgrid/rgrid.component.ts, projects/rcomponents/src/lib/rgrid/rcolumn/rcolumn.component.ts, projects/rcomponents/src/lib/rgrid/edit-template.directive.ts.
• Chart family covers bar, stacked, pie/donut, line/area, scatter, and series visualizations: projects/rcomponents/src/lib/rbarchart-vertical/rbarchart-vertical.component.ts, projects/rcomponents/src/lib/rserieschart/rserieschart.component.ts, projects/rcomponents/src/lib/rmodels/RBarChartItem.ts.
• Workflow/event presentation is handled by schedule and sequence-tracker composites: projects/rcomponents/src/lib/reventsschedule/reventsschedule.component.ts, projects/rcomponents/src/lib/rsequence-tracker/rsequences-tracker.component.ts.
Runtime and infrastructure
Material runtime is Angular/TypeScript under Node.js tooling, with Angular CLI building both the application and ng-packagr-style library package. SSR uses Angular server rendering plus the Node server entry point. The supplied structure shows no database, API client, authentication provider, cloud infrastructure, or required external service; host applications supply data and event handling.
Components 18
Workspace & delivery
- Angular workspace config
Angular-Controls-V22/angular.json - Library package build
Angular-Controls-V22/projects/rcomponents/ng-package.json
Demo host application
Integration surface for the library.
- Browser bootstrap
Angular-Controls-V22/src/main.ts - App providers
Angular-Controls-V22/src/app/app.config.ts - Demo routes
Angular-Controls-V22/src/app/app.routes.ts - Application shell
Angular-Controls-V22/src/app/app.component.ts - Demo root and pages · Exercises library controls and handles their events.
Angular-Controls-V22/src/app/root-component/root-component.ts
rcomponents library
Publishable UI-control product.
- Consumer public API · Only supported consumer import boundary.
Angular-Controls-V22/projects/rcomponents/src/public-api.ts - RComponentsModule · Declares and exports the control set.
Angular-Controls-V22/projects/rcomponents/src/lib/rcomponents.module.ts - Form and selection controls · Dropdowns, select dropdown, calendar, and event calendar.
- Layout and sequence controls · Tabs, splitter, and step controls.
- Grid and templates · Renders columns, cells, and projected edit/view templates.
- Chart family · Locally renders input data as chart variants.
- Schedule and sequence views
Runtime boundary
SSR-safe browser access and Node rendering.
- SSR bootstrap
Angular-Controls-V22/src/main.server.ts - Node SSR server
Angular-Controls-V22/server.ts - SSR providers
Angular-Controls-V22/src/app/app.config.server.ts - SSR-safe platform access · Controls use this boundary for browser and DOM access.
Angular-Controls-V22/projects/rcomponents/src/lib/rwindowObject.ts
Connections 20
- Angular workspace config → Browser bootstrap: builds
- Angular workspace config → Library package build: builds
- Browser bootstrap → App providers: bootstraps with
- Browser bootstrap → Application shell: renders
- SSR bootstrap → SSR providers: uses
- Node SSR server → SSR bootstrap: runs SSR
- App providers → Demo routes: provides
- Application shell → Demo routes: hosts router
- Demo routes → Demo root and pages: selects
- Demo root and pages → Consumer public API: imports controls from
- Library package build → Consumer public API: packages
- Consumer public API → RComponentsModule: exports
- RComponentsModule → Form and selection controls: declares and exports
- RComponentsModule → Layout and sequence controls: declares and exports
- RComponentsModule → Grid and templates: declares and exports
- RComponentsModule → Chart family: declares and exports
- RComponentsModule → Schedule and sequence views: declares and exports
- Form and selection controls → SSR-safe platform access: uses safe browser access
- Layout and sequence controls → SSR-safe platform access: uses safe browser access
- Chart family → SSR-safe platform access: uses safe browser access