Sets up domain-based routing for different app features.
This change introduces a structured approach to managing application routes,
making it easier to add, modify, and maintain different sections of the application.
It configures routes for authentication, meetings, rooms, recordings, and the console.
Creates adapter interfaces for meeting context and room member operations.
This allows shared guards to interact with meeting context and room member context without directly depending on domain services, improving modularity and testability.
Adds providers to supply the adapters using existing services, enabling the use of the adapter interface within the guards.
Relocates the delete room dialog component to the rooms domain for better organization and separation of concerns.
Updates imports and references to reflect the new location of the component.
Moves recording URL generation to the component using the URL.
This provides more flexibility in how the URL is generated,
allowing the component to handle different scenarios.
The service is no longer responsible for generating the URL.
Enables configuration of recording layouts.
Specifies the recording layout in the room configuration.
Now supports different layouts, such as grid, speaker, and single-speaker.
Updated zod validation schemas
Updated integration tests
Ensures screen sharing participants are always displayed, even if not active speakers.
Modifies the participant proxy to selectively hide camera tracks when a participant is only displayed for screen sharing.
This prevents unnecessary camera rendering in the custom layout.
Improves the smart mosaic layout to enhance the user experience and performance.
- Updates participant rendering logic for smart mosaic layout.
- Optimizes audio track management to prevent audio leaks.
- Implements audio focus by selectively muting tracks for inactive speakers.
Streamlines parameter handling by centralizing logic.
The `RoomService` is no longer responsible for setting the `roomId` and `roomSecret`.
Instead, the `MeetingContextService` handles this and persists the room secret in session storage.
Refines active speaker detection for smart layouts.
It now considers audio level threshold, minimum speaking duration, and a grace period to avoid rapid speaker switching.
Also, updates the speaker recency order to prioritize currently active speakers while maintaining a history of recent speakers.
Consolidates layout management into a dedicated component and service.
- Replaces layout selection logic with feature-based approach.
- Improves code readability and maintainability.
Allows configuring the number of visible participants in Smart Mosaic layout mode using a slider.
The minimum and maximum number of participants are now configurable via constants.
Updates the slider to use value binding instead of ngModel.
Moves the copy link button to a new component for additional toolbar buttons.
This allows for better organization and customization of the toolbar,
especially on mobile where space is limited. The "leave" button for
moderators is now separate.
Renamed components for better understanding and readability