NG-ZORRO is a comprehensive Angular UI component library that implements the Ant Design specification. It provides over 70 enterprise-grade components including tables, forms, date pickers, modals, navigation menus, and data visualization widgets. The library is built on Angular CDK and follows modern Angular practices with extensive use of signals, standalone components, and OnPush change detection. It includes a sophisticated theming system with Less variables, full internationalization support for 60+ locales, and Angular schematics for easy project integration and version migration. The architecture is modular with tree-shakable secondary entry points, a global configuration service, and reusable patterns like the tooltip base class, string template outlet directive, and resize observer service. The codebase demonstrates strong engineering practices with comprehensive unit tests, zoneless testing support, and automated migration paths between major versions.
This repository is the source code for the NG-NEST Angular UI component library (version 22.0.5), providing over 70 reusable components for building enterprise-grade web applications. The library includes a comprehensive set of UI elements such as buttons, tables, forms, dialogs, trees, date pickers, and more, all built with Angular's latest features including signals, standalone components, and OnPush change detection. The repository also contains a documentation/demo site that showcases each component with live examples in both English and Chinese, along with a full RBAC tutorial demonstrating a real-world admin panel using NestJS and Angular. The architecture follows a monorepo pattern: the library lives under `lib/ng-nest/ui/` with each component as an independent Angular module (with its own `ng-package.json`), while the documentation site resides in `src/` and uses the library itself. Key entry points include `lib/ng-nest/ui/index.ts` for the library and `src/app/app.config.ts` for the application. Data flows are primarily unidirectional via Angular signals and observables, with services like `XRepositoryAbstract` providing a consistent CRUD pattern for backend integration. External dependencies include Angular 22, Angular CDK, RxJS, and PrismJS for syntax highlighting. The library demonstrates strong engineering practices: consistent component property classes, a centralized portal service for overlays, a theme system with CSS variables and dark mode, and full internationalization support with 30+ locales. However, many component tests are disabled (using `xdescribe`), and there is some duplication in example data across language variants. Overall, it is a well-maintained, production-ready UI library with a high degree of reusability.