Skip to content

Commit d965e72

Browse files
committed
ov-components: add OpenViduComponentsUiModule with component and pipe declarations
1 parent 288a585 commit d965e72

3 files changed

Lines changed: 144 additions & 133 deletions

File tree

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
2+
import { CommonModule } from '@angular/common';
3+
import { NgModule } from '@angular/core';
4+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5+
6+
import { DeleteDialogComponent } from './components/dialogs/delete-recording.component';
7+
import { DialogTemplateComponent } from './components/dialogs/dialog.component';
8+
import { RecordingDialogComponent } from './components/dialogs/recording-dialog.component';
9+
import { LayoutComponent } from './components/layout/layout.component';
10+
import { ChatPanelComponent } from './components/panel/chat-panel/chat-panel.component';
11+
import { SessionComponent } from './components/session/session.component';
12+
import { StreamComponent } from './components/stream/stream.component';
13+
import { ToolbarComponent } from './components/toolbar/toolbar.component';
14+
import { MediaElementComponent } from './components/media-element/media-element.component';
15+
16+
import { LinkifyPipe } from './pipes/linkify.pipe';
17+
import { RemoteParticipantTracksPipe, TrackPublishedTypesPipe } from './pipes/participant.pipe';
18+
import { DurationFromSecondsPipe, SearchByStringPropertyPipe, ThumbnailFromUrlPipe } from './pipes/recording.pipe';
19+
import { TranslatePipe } from './pipes/translate.pipe';
20+
21+
import { DragDropModule } from '@angular/cdk/drag-drop';
22+
23+
import { AudioWaveComponent } from './components/audio-wave/audio-wave.component';
24+
import { PanelComponent } from './components/panel/panel.component';
25+
import { ParticipantPanelItemComponent } from './components/panel/participants-panel/participant-panel-item/participant-panel-item.component';
26+
import { ParticipantsPanelComponent } from './components/panel/participants-panel/participants-panel/participants-panel.component';
27+
import { PreJoinComponent } from './components/pre-join/pre-join.component';
28+
import { VideoconferenceComponent } from './components/videoconference/videoconference.component';
29+
30+
import { AdminDashboardComponent } from './admin/admin-dashboard/admin-dashboard.component';
31+
import { AdminLoginComponent } from './admin/admin-login/admin-login.component';
32+
import { AvatarProfileComponent } from './components/avatar-profile/avatar-profile.component';
33+
// import { CaptionsComponent } from './components/captions/captions.component';
34+
import { ProFeatureDialogTemplateComponent } from './components/dialogs/pro-feature-dialog.component';
35+
import { ActivitiesPanelComponent } from './components/panel/activities-panel/activities-panel.component';
36+
import { BroadcastingActivityComponent } from './components/panel/activities-panel/broadcasting-activity/broadcasting-activity.component';
37+
import { RecordingActivityComponent } from './components/panel/activities-panel/recording-activity/recording-activity.component';
38+
import { BackgroundEffectsPanelComponent } from './components/panel/background-effects-panel/background-effects-panel.component';
39+
import { SettingsPanelComponent } from './components/panel/settings-panel/settings-panel.component';
40+
import { AudioDevicesComponent } from './components/settings/audio-devices/audio-devices.component';
41+
// import { CaptionsSettingComponent } from './components/settings/captions/captions.component';
42+
import { LangSelectorComponent } from './components/settings/lang-selector/lang-selector.component';
43+
import { ParticipantNameInputComponent } from './components/settings/participant-name-input/participant-name-input.component';
44+
import { VideoDevicesComponent } from './components/settings/video-devices/video-devices.component';
45+
import { ApiDirectiveModule } from './directives/api/api.directive.module';
46+
import { OpenViduComponentsDirectiveModule } from './directives/template/openvidu-components-angular.directive.module';
47+
import { AppMaterialModule } from './openvidu-components-angular.material.module';
48+
49+
// Declaraciones de componentes/pipes (públicos y privados)
50+
const publicComponents = [
51+
AdminDashboardComponent,
52+
AdminLoginComponent,
53+
VideoconferenceComponent,
54+
ToolbarComponent,
55+
PanelComponent,
56+
ActivitiesPanelComponent,
57+
RecordingActivityComponent,
58+
BroadcastingActivityComponent,
59+
ParticipantsPanelComponent,
60+
ParticipantPanelItemComponent,
61+
ChatPanelComponent,
62+
StreamComponent,
63+
LayoutComponent
64+
];
65+
const privateComponents = [
66+
PreJoinComponent,
67+
SessionComponent,
68+
BackgroundEffectsPanelComponent,
69+
SettingsPanelComponent,
70+
AudioWaveComponent,
71+
DialogTemplateComponent,
72+
ProFeatureDialogTemplateComponent,
73+
RecordingDialogComponent,
74+
DeleteDialogComponent,
75+
AvatarProfileComponent,
76+
MediaElementComponent,
77+
VideoDevicesComponent,
78+
AudioDevicesComponent,
79+
ParticipantNameInputComponent,
80+
LangSelectorComponent
81+
];
82+
83+
@NgModule({
84+
declarations: [
85+
...publicComponents,
86+
...privateComponents,
87+
LinkifyPipe,
88+
RemoteParticipantTracksPipe,
89+
DurationFromSecondsPipe,
90+
SearchByStringPropertyPipe,
91+
ThumbnailFromUrlPipe,
92+
TrackPublishedTypesPipe,
93+
TranslatePipe
94+
],
95+
imports: [
96+
CommonModule,
97+
FormsModule,
98+
ReactiveFormsModule,
99+
AppMaterialModule,
100+
OpenViduComponentsDirectiveModule,
101+
ApiDirectiveModule,
102+
DragDropModule
103+
],
104+
exports: [
105+
...publicComponents,
106+
RemoteParticipantTracksPipe,
107+
DurationFromSecondsPipe,
108+
TrackPublishedTypesPipe,
109+
TranslatePipe,
110+
OpenViduComponentsDirectiveModule,
111+
ApiDirectiveModule
112+
]
113+
})
114+
export class OpenViduComponentsUiModule {}

openvidu-components-angular/projects/openvidu-components-angular/src/lib/openvidu-components-angular.module.ts

Lines changed: 27 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,6 @@
11
import { OverlayContainer } from '@angular/cdk/overlay';
2-
import { CommonModule } from '@angular/common';
32
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
4-
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
5-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6-
7-
import { DeleteDialogComponent } from './components/dialogs/delete-recording.component';
8-
import { DialogTemplateComponent } from './components/dialogs/dialog.component';
9-
import { RecordingDialogComponent } from './components/dialogs/recording-dialog.component';
10-
import { LayoutComponent } from './components/layout/layout.component';
11-
import { ChatPanelComponent } from './components/panel/chat-panel/chat-panel.component';
12-
import { SessionComponent } from './components/session/session.component';
13-
import { StreamComponent } from './components/stream/stream.component';
14-
import { ToolbarComponent } from './components/toolbar/toolbar.component';
15-
import { MediaElementComponent } from './components/media-element/media-element.component';
16-
17-
import { LinkifyPipe } from './pipes/linkify.pipe';
18-
import { RemoteParticipantTracksPipe, TrackPublishedTypesPipe } from './pipes/participant.pipe';
19-
import { DurationFromSecondsPipe, SearchByStringPropertyPipe, ThumbnailFromUrlPipe } from './pipes/recording.pipe';
20-
import { TranslatePipe } from './pipes/translate.pipe';
21-
22-
import { DragDropModule } from '@angular/cdk/drag-drop';
3+
import { ModuleWithProviders, NgModule, Provider, EnvironmentProviders } from '@angular/core';
234

245
import { CdkOverlayContainer } from './config/custom-cdk-overlay';
256
import { OpenViduComponentsConfig } from './config/openvidu-components-angular.config';
@@ -36,127 +17,41 @@ import { PlatformService } from './services/platform/platform.service';
3617
import { RecordingService } from './services/recording/recording.service';
3718
import { StorageService } from './services/storage/storage.service';
3819

39-
import { AudioWaveComponent } from './components/audio-wave/audio-wave.component';
40-
import { PanelComponent } from './components/panel/panel.component';
41-
import { ParticipantPanelItemComponent } from './components/panel/participants-panel/participant-panel-item/participant-panel-item.component';
42-
import { ParticipantsPanelComponent } from './components/panel/participants-panel/participants-panel/participants-panel.component';
43-
import { PreJoinComponent } from './components/pre-join/pre-join.component';
44-
import { VideoconferenceComponent } from './components/videoconference/videoconference.component';
45-
46-
import { AdminDashboardComponent } from './admin/admin-dashboard/admin-dashboard.component';
47-
import { AdminLoginComponent } from './admin/admin-login/admin-login.component';
48-
import { AvatarProfileComponent } from './components/avatar-profile/avatar-profile.component';
49-
// import { CaptionsComponent } from './components/captions/captions.component';
50-
import { ProFeatureDialogTemplateComponent } from './components/dialogs/pro-feature-dialog.component';
51-
import { ActivitiesPanelComponent } from './components/panel/activities-panel/activities-panel.component';
52-
import { BroadcastingActivityComponent } from './components/panel/activities-panel/broadcasting-activity/broadcasting-activity.component';
53-
import { RecordingActivityComponent } from './components/panel/activities-panel/recording-activity/recording-activity.component';
54-
import { BackgroundEffectsPanelComponent } from './components/panel/background-effects-panel/background-effects-panel.component';
55-
import { SettingsPanelComponent } from './components/panel/settings-panel/settings-panel.component';
56-
import { AudioDevicesComponent } from './components/settings/audio-devices/audio-devices.component';
57-
// import { CaptionsSettingComponent } from './components/settings/captions/captions.component';
58-
import { LangSelectorComponent } from './components/settings/lang-selector/lang-selector.component';
59-
import { ParticipantNameInputComponent } from './components/settings/participant-name-input/participant-name-input.component';
60-
import { VideoDevicesComponent } from './components/settings/video-devices/video-devices.component';
61-
import { ApiDirectiveModule } from './directives/api/api.directive.module';
62-
import { OpenViduComponentsDirectiveModule } from './directives/template/openvidu-components-angular.directive.module';
63-
import { AppMaterialModule } from './openvidu-components-angular.material.module';
6420
import { VirtualBackgroundService } from './services/virtual-background/virtual-background.service';
6521
import { BroadcastingService } from './services/broadcasting/broadcasting.service';
6622
import { GlobalConfigService } from './services/config/global-config.service';
6723
import { OpenViduComponentsConfigService } from './services/config/directive-config.service';
68-
69-
const publicComponents = [
70-
AdminDashboardComponent,
71-
AdminLoginComponent,
72-
VideoconferenceComponent,
73-
ToolbarComponent,
74-
PanelComponent,
75-
ActivitiesPanelComponent,
76-
RecordingActivityComponent,
77-
BroadcastingActivityComponent,
78-
ParticipantsPanelComponent,
79-
ParticipantPanelItemComponent,
80-
ChatPanelComponent,
81-
StreamComponent,
82-
LayoutComponent
83-
];
84-
const privateComponents = [
85-
PreJoinComponent,
86-
SessionComponent,
87-
BackgroundEffectsPanelComponent,
88-
SettingsPanelComponent,
89-
AudioWaveComponent,
90-
// CaptionsComponent,
91-
DialogTemplateComponent,
92-
ProFeatureDialogTemplateComponent,
93-
RecordingDialogComponent,
94-
DeleteDialogComponent,
95-
AvatarProfileComponent,
96-
MediaElementComponent,
97-
VideoDevicesComponent,
98-
AudioDevicesComponent,
99-
ParticipantNameInputComponent,
100-
LangSelectorComponent
101-
// CaptionsSettingComponent
102-
];
24+
import { OpenViduComponentsUiModule } from './openvidu-components-angular-ui.module';
10325

10426
@NgModule({
105-
declarations: [
106-
publicComponents,
107-
privateComponents,
108-
LinkifyPipe,
109-
RemoteParticipantTracksPipe,
110-
DurationFromSecondsPipe,
111-
SearchByStringPropertyPipe,
112-
ThumbnailFromUrlPipe,
113-
TrackPublishedTypesPipe,
114-
TranslatePipe
115-
],
116-
exports: [
117-
publicComponents,
118-
RemoteParticipantTracksPipe,
119-
DurationFromSecondsPipe,
120-
TrackPublishedTypesPipe,
121-
TranslatePipe,
122-
OpenViduComponentsDirectiveModule,
123-
ApiDirectiveModule
124-
],
125-
imports: [
126-
CommonModule,
127-
FormsModule,
128-
ReactiveFormsModule,
129-
AppMaterialModule,
130-
OpenViduComponentsDirectiveModule,
131-
ApiDirectiveModule,
132-
DragDropModule
133-
],
134-
providers: [
135-
GlobalConfigService,
136-
OpenViduComponentsConfigService,
137-
ActionService,
138-
BroadcastingService,
139-
// CaptionService,
140-
CdkOverlayContainer,
141-
{ provide: OverlayContainer, useClass: CdkOverlayContainer },
142-
ChatService,
143-
DeviceService,
144-
DocumentService,
145-
// LayoutService,
146-
LoggerService,
147-
OpenViduService,
148-
PanelService,
149-
ParticipantService,
150-
PlatformService,
151-
RecordingService,
152-
StorageService,
153-
VirtualBackgroundService,
154-
provideHttpClient(withInterceptorsFromDi())
155-
]
27+
imports: [OpenViduComponentsUiModule],
28+
exports: [OpenViduComponentsUiModule]
15629
})
15730
export class OpenViduComponentsModule {
15831
static forRoot(config: OpenViduComponentsConfig): ModuleWithProviders<OpenViduComponentsModule> {
159-
const providers: Provider[] = [{ provide: 'OPENVIDU_COMPONENTS_CONFIG', useValue: config }];
32+
const providers: (Provider | EnvironmentProviders)[] = [
33+
{ provide: 'OPENVIDU_COMPONENTS_CONFIG', useValue: config },
34+
GlobalConfigService,
35+
OpenViduComponentsConfigService,
36+
ActionService,
37+
BroadcastingService,
38+
// CaptionService,
39+
CdkOverlayContainer,
40+
{ provide: OverlayContainer, useClass: CdkOverlayContainer },
41+
ChatService,
42+
DeviceService,
43+
DocumentService,
44+
// LayoutService,
45+
LoggerService,
46+
OpenViduService,
47+
PanelService,
48+
ParticipantService,
49+
PlatformService,
50+
RecordingService,
51+
StorageService,
52+
VirtualBackgroundService,
53+
provideHttpClient(withInterceptorsFromDi())
54+
];
16055

16156
return {
16257
ngModule: OpenViduComponentsModule,

openvidu-components-angular/projects/openvidu-components-angular/src/public-api.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ export * from './lib/models/toolbar.model';
3939
export * from './lib/models/logger.model'
4040
export * from './lib/models/storage.model';
4141
export * from './lib/models/lang.model';
42-
export * from './lib/openvidu-components-angular.module';
4342
// Pipes
4443
export * from './lib/pipes/participant.pipe';
4544
export * from './lib/pipes/recording.pipe';
@@ -57,5 +56,8 @@ export * from './lib/services/config/global-config.service';
5756
export * from './lib/services/logger/logger.service';
5857
export * from './lib/services/storage/storage.service';
5958
export * from './lib/services/translate/translate.service';
59+
//Modules
60+
export * from './lib/openvidu-components-angular.module';
61+
export * from './lib/openvidu-components-angular-ui.module';
6062

6163
export * from 'livekit-client';

0 commit comments

Comments
 (0)