Shell Libraries
The yuuvis® MOMENTUM Shell is built on a set of Angular libraries that work together to provide a complete foundation for client applications. Each library has a specific responsibility and builds upon the others to create a layered architecture.
Library Overview
Section titled “Library Overview”The Shell Libraries are organized into five distinct packages, each serving a specific purpose in the overall architecture:
| Library | Package | Purpose |
|---|---|---|
| Client Core | @yuuvis/client-core | Backend communication and core services |
| Client Shell Core | @yuuvis/client-shell-core | Shell framework foundation |
| Client Framework | @yuuvis/client-framework | DMS UI components and utilities |
| Client Shell | @yuuvis/client-shell | Shell application components |
| Material | @yuuvis/material | Styling foundation and design system |
Dependency Graph
Section titled “Dependency Graph”The following diagram illustrates how the Shell Libraries depend on each other. Libraries at the bottom of the graph are foundational and have no dependencies on other Shell Libraries, while libraries higher up build upon those below them.
@yuuvis/client-core
Section titled “@yuuvis/client-core”The Client Core library serves as the foundation of the entire Shell architecture. It provides essential services for communicating with the yuuvis® MOMENTUM backend and manages core concerns that all other libraries depend upon.
Key Responsibilities
- Backend Communication: Low-level HTTP services for REST API communication with automatic header management and request batching
- Document Operations: CRUD operations for DMS objects including create, update, delete, move, and copy
- Search: Powerful search capabilities syntax with support for aggregations
- Authentication: Authentication lifecycle management including user initialization, session state tracking, and automatic logout on session expiration
- User Management: Services for accessing user information, permissions, and preferences
- System Configuration: Access to system-wide settings and configuration from the backend
- Event System: Application-wide event bus enabling loose coupling between components
- Caching: Intelligent caching strategies to optimize performance and reduce network traffic
@yuuvis/client-shell-core
Section titled “@yuuvis/client-shell-core”The Client Shell Core library provides the foundational framework for the shell architecture. It establishes the contracts and mechanisms that enable the modular app and extension system.
Key Responsibilities
- Plugin System: Infrastructure for registering and managing apps and extensions
- Extension Registries: Specialized registries for Object Flavors, Create Flavors, Tile Extensions, and App Settings
- Shell State Management: Core state management for shell-level concerns including app list, shell configuration, busy state, and custom actions
- Navigation: Routing and navigation infrastructure for the shell
- Feature Management: Control app and extension availability based on user permissions
@yuuvis/client-framework
Section titled “@yuuvis/client-framework”The Client Framework library provides a comprehensive set of UI components and utilities for building yuuvis® MOMENTUM client applications. It offers ready-to-use components for common patterns like lists, forms, and object details.
Key Responsibilities
- UI Components: Reusable components for common UI patterns including TileList, Pagination, SplitView, MasterDetails, ObjectPreview, SimpleSearch, and more
- Object UI: Specialized components for displaying and editing DMS objects, including ObjectDetails, ObjectSummary, ObjectVersions, and ObjectForm
- Form Elements: Input components for various data types like dates, numbers, strings, organizations, and catalogs
- Directives: Reusable directives for focus handling, drag-and-drop, file drop zones, and other UI behaviors
- Utility Services: Services for layout settings and toast notifications
@yuuvis/client-shell
Section titled “@yuuvis/client-shell”The Client Shell library is the central component for building yuuvis® MOMENTUM client applications. It combines all other Shell Libraries and provides the ready-to-use application shell that serves as the foundation for custom clients.
Key Responsibilities
- Application Foundation: The main entry point that integrates all Shell Libraries into a complete application shell
- Shell Layout: The main application layout including sidebar and content area
- Sidebar Navigation: Navigation component displaying available apps, notifications, settings, and logout
- App Header: Header component for individual apps with customizable slots
- Settings Page: User interface for managing user preferences like language and theme
- Notifications Page: Page for displaying shell-wide notifications
- Custom Action Buttons: Extensible action buttons that can be added to the navigation
@yuuvis/material
Section titled “@yuuvis/material”The Material library provides the styling foundation for yuuvis® MOMENTUM client applications. Built on top of Angular Material, it delivers a comprehensive design system with custom styling, design tokens, and theming capabilities. The library provides a solid foundation for accessible, themable UI components based on Angular Material.
Key Responsibilities
- Component Styling: Custom styling and directives for Angular Material components including buttons, dialogs, form fields, menus, selects, and progress indicators
- Design Tokens: CSS custom properties system for consistent theming and design consistency
- Theming: Light and dark mode support with Material Design 3 color palettes and customization options
- Accessibility: ARIA attributes and WCAG-compliant styling for all components
- Icons: Material Symbols integration with icon registry service
Quick Reference
Section titled “Quick Reference”| You need… | Import from |
|---|---|
| Complete Shell with sidebar and navigation | @yuuvis/client-shell |
| Plugin system with custom shell layout | @yuuvis/client-shell-core |
| DMS UI components for custom architecture | @yuuvis/client-framework |
| Backend communication and core services | @yuuvis/client-core |
| Design system styling and theming | @yuuvis/material |