94de3af9f42a2d0965a801444dda70e0aeba36f8
[oweals/peertube.git] / client / src / app / shared / shared.module.ts
1 import { CommonModule } from '@angular/common'
2 import { HttpClientModule } from '@angular/common/http'
3 import { NgModule } from '@angular/core'
4 import { FormsModule, ReactiveFormsModule } from '@angular/forms'
5 import { RouterModule } from '@angular/router'
6 import { MarkdownTextareaComponent } from '@app/shared/forms/markdown-textarea.component'
7 import { HelpComponent } from '@app/shared/misc/help.component'
8 import { InfiniteScrollerDirective } from '@app/shared/video/infinite-scroller.directive'
9 import { MarkdownService } from '@app/videos/shared'
10
11 import { BsDropdownModule } from 'ngx-bootstrap/dropdown'
12 import { ModalModule } from 'ngx-bootstrap/modal'
13 import { PopoverModule } from 'ngx-bootstrap/popover'
14 import { TabsModule } from 'ngx-bootstrap/tabs'
15 import { TooltipModule } from 'ngx-bootstrap/tooltip'
16 import { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
17 import { SharedModule as PrimeSharedModule } from 'primeng/components/common/shared'
18
19 import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
20 import { DeleteButtonComponent } from './buttons/delete-button.component'
21 import { EditButtonComponent } from './buttons/edit-button.component'
22 import { FromNowPipe } from './misc/from-now.pipe'
23 import { LoaderComponent } from './misc/loader.component'
24 import { NumberFormatterPipe } from './misc/number-formatter.pipe'
25 import { ObjectLengthPipe } from './misc/object-length.pipe'
26 import { RestExtractor, RestService } from './rest'
27 import { UserService } from './users'
28 import { VideoAbuseService } from './video-abuse'
29 import { VideoBlacklistService } from './video-blacklist'
30 import { VideoMiniatureComponent } from './video/video-miniature.component'
31 import { VideoFeedComponent } from './video/video-feed.component'
32 import { VideoThumbnailComponent } from './video/video-thumbnail.component'
33 import { VideoService } from './video/video.service'
34 import { AccountService } from '@app/shared/account/account.service'
35 import { VideoChannelService } from '@app/shared/video-channel/video-channel.service'
36 import { I18n } from '@ngx-translate/i18n-polyfill'
37 import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
38 import {
39   CustomConfigValidatorsService,
40   LoginValidatorsService,
41   ReactiveFileComponent,
42   ResetPasswordValidatorsService,
43   UserValidatorsService,
44   VideoAbuseValidatorsService,
45   VideoChannelValidatorsService,
46   VideoCommentValidatorsService,
47   VideoValidatorsService
48 } from '@app/shared/forms'
49 import { I18nPrimengCalendarService } from '@app/shared/i18n/i18n-primeng-calendar'
50 import { ScreenService } from '@app/shared/misc/screen.service'
51 import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service'
52 import { VideoCaptionService } from '@app/shared/video-caption'
53 import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component'
54 import { VideoImportService } from '@app/shared/video-import/video-import.service'
55 import { ActionDropdownComponent } from '@app/shared/buttons/action-dropdown.component'
56
57 @NgModule({
58   imports: [
59     CommonModule,
60     FormsModule,
61     ReactiveFormsModule,
62     RouterModule,
63     HttpClientModule,
64
65     BsDropdownModule.forRoot(),
66     ModalModule.forRoot(),
67     PopoverModule.forRoot(),
68     TabsModule.forRoot(),
69     TooltipModule.forRoot(),
70
71     PrimeSharedModule,
72     NgPipesModule
73   ],
74
75   declarations: [
76     LoaderComponent,
77     VideoThumbnailComponent,
78     VideoMiniatureComponent,
79     VideoFeedComponent,
80     DeleteButtonComponent,
81     EditButtonComponent,
82     ActionDropdownComponent,
83     NumberFormatterPipe,
84     ObjectLengthPipe,
85     FromNowPipe,
86     MarkdownTextareaComponent,
87     InfiniteScrollerDirective,
88     HelpComponent,
89     ReactiveFileComponent,
90     PeertubeCheckboxComponent
91   ],
92
93   exports: [
94     CommonModule,
95     FormsModule,
96     ReactiveFormsModule,
97     RouterModule,
98     HttpClientModule,
99
100     BsDropdownModule,
101     ModalModule,
102     PopoverModule,
103     TabsModule,
104     TooltipModule,
105     PrimeSharedModule,
106     BytesPipe,
107     KeysPipe,
108
109     LoaderComponent,
110     VideoThumbnailComponent,
111     VideoMiniatureComponent,
112     VideoFeedComponent,
113     DeleteButtonComponent,
114     EditButtonComponent,
115     ActionDropdownComponent,
116     MarkdownTextareaComponent,
117     InfiniteScrollerDirective,
118     HelpComponent,
119     ReactiveFileComponent,
120     PeertubeCheckboxComponent,
121
122     NumberFormatterPipe,
123     ObjectLengthPipe,
124     FromNowPipe
125   ],
126
127   providers: [
128     AUTH_INTERCEPTOR_PROVIDER,
129     RestExtractor,
130     RestService,
131     VideoAbuseService,
132     VideoBlacklistService,
133     UserService,
134     VideoService,
135     AccountService,
136     MarkdownService,
137     VideoChannelService,
138     VideoCaptionService,
139
140     FormValidatorService,
141     CustomConfigValidatorsService,
142     LoginValidatorsService,
143     ResetPasswordValidatorsService,
144     UserValidatorsService,
145     VideoAbuseValidatorsService,
146     VideoChannelValidatorsService,
147     VideoCommentValidatorsService,
148     VideoValidatorsService,
149     VideoCaptionsValidatorsService,
150     VideoImportService,
151
152     I18nPrimengCalendarService,
153     ScreenService,
154
155     I18n
156   ]
157 })
158 export class SharedModule { }