Fix angular 9 build
[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 { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
10 import { SharedModule as PrimeSharedModule } from 'primeng/api'
11 import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
12 import { ButtonComponent } from './buttons/button.component'
13 import { DeleteButtonComponent } from './buttons/delete-button.component'
14 import { EditButtonComponent } from './buttons/edit-button.component'
15 import { LoaderComponent } from './misc/loader.component'
16 import { RestExtractor, RestService } from './rest'
17 import { UserService } from './users'
18 import { VideoAbuseService } from './video-abuse'
19 import { VideoBlacklistService } from './video-blacklist'
20 import { VideoOwnershipService } from './video-ownership'
21 import { VideoMiniatureComponent } from './video/video-miniature.component'
22 import { FeedComponent } from './video/feed.component'
23 import { VideoThumbnailComponent } from './video/video-thumbnail.component'
24 import { VideoService } from './video/video.service'
25 import { AccountService } from '@app/shared/account/account.service'
26 import { VideoChannelService } from '@app/shared/video-channel/video-channel.service'
27 import { I18n } from '@ngx-translate/i18n-polyfill'
28 import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
29 import {
30   CustomConfigValidatorsService,
31   InstanceValidatorsService,
32   LoginValidatorsService,
33   ReactiveFileComponent,
34   ResetPasswordValidatorsService,
35   TextareaAutoResizeDirective,
36   UserValidatorsService,
37   VideoAbuseValidatorsService,
38   VideoAcceptOwnershipValidatorsService,
39   VideoBlacklistValidatorsService,
40   VideoChangeOwnershipValidatorsService,
41   VideoChannelValidatorsService,
42   VideoCommentValidatorsService,
43   VideoPlaylistValidatorsService,
44   VideoValidatorsService
45 } from '@app/shared/forms'
46 import { I18nPrimengCalendarService } from '@app/shared/i18n/i18n-primeng-calendar'
47 import { InputMaskModule } from 'primeng/inputmask'
48 import { ScreenService } from '@app/shared/misc/screen.service'
49 import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service'
50 import { VideoCaptionService } from '@app/shared/video-caption'
51 import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component'
52 import { VideoImportService } from '@app/shared/video-import/video-import.service'
53 import { ActionDropdownComponent } from '@app/shared/buttons/action-dropdown.component'
54 import {
55   NgbCollapseModule,
56   NgbDropdownModule,
57   NgbModalModule,
58   NgbPopoverModule,
59   NgbTabsetModule,
60   NgbTooltipModule
61 } from '@ng-bootstrap/ng-bootstrap'
62 import { RemoteSubscribeComponent, SubscribeButtonComponent, UserSubscriptionService } from '@app/shared/user-subscription'
63 import { InstanceFeaturesTableComponent } from '@app/shared/instance/instance-features-table.component'
64 import { InstanceStatisticsComponent } from '@app/shared/instance/instance-statistics.component'
65 import { OverviewService } from '@app/shared/overview'
66 import { UserBanModalComponent } from '@app/shared/moderation'
67 import { UserModerationDropdownComponent } from '@app/shared/moderation/user-moderation-dropdown.component'
68 import { BlocklistService } from '@app/shared/blocklist'
69 import { AvatarComponent } from '@app/shared/channel/avatar.component'
70 import { TopMenuDropdownComponent } from '@app/shared/menu/top-menu-dropdown.component'
71 import { UserHistoryService } from '@app/shared/users/user-history.service'
72 import { UserNotificationService } from '@app/shared/users/user-notification.service'
73 import { UserNotificationsComponent } from '@app/shared/users/user-notifications.component'
74 import { InstanceService } from '@app/shared/instance/instance.service'
75 import { HtmlRendererService, LinkifierService, MarkdownService } from '@app/shared/renderer'
76 import { ConfirmComponent } from '@app/shared/confirm/confirm.component'
77 import { DateToggleComponent } from '@app/shared/date/date-toggle.component'
78 import { SmallLoaderComponent } from '@app/shared/misc/small-loader.component'
79 import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service'
80 import { PreviewUploadComponent } from '@app/shared/images/preview-upload.component'
81 import { GlobalIconComponent } from '@app/shared/images/global-icon.component'
82 import { VideoPlaylistMiniatureComponent } from '@app/shared/video-playlist/video-playlist-miniature.component'
83 import { VideoAddToPlaylistComponent } from '@app/shared/video-playlist/video-add-to-playlist.component'
84 import { TimestampInputComponent } from '@app/shared/forms/timestamp-input.component'
85 import { VideoPlaylistElementMiniatureComponent } from '@app/shared/video-playlist/video-playlist-element-miniature.component'
86 import { VideosSelectionComponent } from '@app/shared/video/videos-selection.component'
87 import { NumberFormatterPipe } from '@app/shared/angular/number-formatter.pipe'
88 import { VideoDurationPipe } from '@app/shared/angular/video-duration-formatter.pipe'
89 import { ObjectLengthPipe } from '@app/shared/angular/object-length.pipe'
90 import { FromNowPipe } from '@app/shared/angular/from-now.pipe'
91 import { PeerTubeTemplateDirective } from '@app/shared/angular/peertube-template.directive'
92 import { VideoActionsDropdownComponent } from '@app/shared/video/video-actions-dropdown.component'
93 import { VideoBlacklistComponent } from '@app/shared/video/modals/video-blacklist.component'
94 import { VideoDownloadComponent } from '@app/shared/video/modals/video-download.component'
95 import { VideoReportComponent } from '@app/shared/video/modals/video-report.component'
96 import { ClipboardModule } from 'ngx-clipboard'
97 import { FollowService } from '@app/shared/instance/follow.service'
98 import { MultiSelectModule } from 'primeng/multiselect'
99 import { FeatureBooleanComponent } from '@app/shared/instance/feature-boolean.component'
100 import { InputReadonlyCopyComponent } from '@app/shared/forms/input-readonly-copy.component'
101 import { RedundancyService } from '@app/shared/video/redundancy.service'
102
103 @NgModule({
104   imports: [
105     CommonModule,
106     FormsModule,
107     ReactiveFormsModule,
108     RouterModule,
109     HttpClientModule,
110
111     NgbDropdownModule,
112     NgbModalModule,
113     NgbPopoverModule,
114     NgbTabsetModule,
115     NgbTooltipModule,
116     NgbCollapseModule,
117
118     ClipboardModule,
119
120     PrimeSharedModule,
121     InputMaskModule,
122     NgPipesModule,
123     MultiSelectModule
124   ],
125
126   declarations: [
127     LoaderComponent,
128     SmallLoaderComponent,
129
130     VideoThumbnailComponent,
131     VideoMiniatureComponent,
132     VideoPlaylistMiniatureComponent,
133     VideoAddToPlaylistComponent,
134     VideoPlaylistElementMiniatureComponent,
135     VideosSelectionComponent,
136     VideoActionsDropdownComponent,
137
138     VideoDownloadComponent,
139     VideoReportComponent,
140     VideoBlacklistComponent,
141
142     FeedComponent,
143
144     ButtonComponent,
145     DeleteButtonComponent,
146     EditButtonComponent,
147
148     NumberFormatterPipe,
149     ObjectLengthPipe,
150     FromNowPipe,
151     PeerTubeTemplateDirective,
152     VideoDurationPipe,
153
154     ActionDropdownComponent,
155     MarkdownTextareaComponent,
156     InfiniteScrollerDirective,
157     TextareaAutoResizeDirective,
158     HelpComponent,
159
160     ReactiveFileComponent,
161     PeertubeCheckboxComponent,
162     TimestampInputComponent,
163     InputReadonlyCopyComponent,
164
165     AvatarComponent,
166     SubscribeButtonComponent,
167     RemoteSubscribeComponent,
168     InstanceFeaturesTableComponent,
169     InstanceStatisticsComponent,
170     FeatureBooleanComponent,
171     UserBanModalComponent,
172     UserModerationDropdownComponent,
173     TopMenuDropdownComponent,
174     UserNotificationsComponent,
175     ConfirmComponent,
176     DateToggleComponent,
177
178     GlobalIconComponent,
179     PreviewUploadComponent
180   ],
181
182   exports: [
183     CommonModule,
184     FormsModule,
185     ReactiveFormsModule,
186     RouterModule,
187     HttpClientModule,
188
189     NgbDropdownModule,
190     NgbModalModule,
191     NgbPopoverModule,
192     NgbTabsetModule,
193     NgbTooltipModule,
194     NgbCollapseModule,
195
196     ClipboardModule,
197
198     PrimeSharedModule,
199     InputMaskModule,
200     BytesPipe,
201     KeysPipe,
202     MultiSelectModule,
203
204     LoaderComponent,
205     SmallLoaderComponent,
206
207     VideoThumbnailComponent,
208     VideoMiniatureComponent,
209     VideoPlaylistMiniatureComponent,
210     VideoAddToPlaylistComponent,
211     VideoPlaylistElementMiniatureComponent,
212     VideosSelectionComponent,
213     VideoActionsDropdownComponent,
214
215     VideoDownloadComponent,
216     VideoReportComponent,
217     VideoBlacklistComponent,
218
219     FeedComponent,
220
221     ButtonComponent,
222     DeleteButtonComponent,
223     EditButtonComponent,
224
225     ActionDropdownComponent,
226     MarkdownTextareaComponent,
227     InfiniteScrollerDirective,
228     TextareaAutoResizeDirective,
229     HelpComponent,
230     InputReadonlyCopyComponent,
231
232     ReactiveFileComponent,
233     PeertubeCheckboxComponent,
234     TimestampInputComponent,
235
236     AvatarComponent,
237     SubscribeButtonComponent,
238     RemoteSubscribeComponent,
239     InstanceFeaturesTableComponent,
240     InstanceStatisticsComponent,
241     UserBanModalComponent,
242     UserModerationDropdownComponent,
243     TopMenuDropdownComponent,
244     UserNotificationsComponent,
245     ConfirmComponent,
246     DateToggleComponent,
247
248     GlobalIconComponent,
249     PreviewUploadComponent,
250
251     NumberFormatterPipe,
252     ObjectLengthPipe,
253     FromNowPipe,
254     PeerTubeTemplateDirective,
255     VideoDurationPipe
256   ],
257
258   providers: [
259     AUTH_INTERCEPTOR_PROVIDER,
260     RestExtractor,
261     RestService,
262     VideoAbuseService,
263     VideoBlacklistService,
264     VideoOwnershipService,
265     UserService,
266     VideoService,
267     AccountService,
268     VideoChannelService,
269     VideoPlaylistService,
270     VideoCaptionService,
271     VideoImportService,
272     UserSubscriptionService,
273
274     FormValidatorService,
275     CustomConfigValidatorsService,
276     LoginValidatorsService,
277     ResetPasswordValidatorsService,
278     UserValidatorsService,
279     VideoPlaylistValidatorsService,
280     VideoAbuseValidatorsService,
281     VideoChannelValidatorsService,
282     VideoCommentValidatorsService,
283     VideoValidatorsService,
284     VideoCaptionsValidatorsService,
285     VideoBlacklistValidatorsService,
286     OverviewService,
287     VideoChangeOwnershipValidatorsService,
288     VideoAcceptOwnershipValidatorsService,
289     InstanceValidatorsService,
290     BlocklistService,
291     UserHistoryService,
292     InstanceService,
293
294     MarkdownService,
295     LinkifierService,
296     HtmlRendererService,
297
298     I18nPrimengCalendarService,
299     ScreenService,
300
301     UserNotificationService,
302
303     FollowService,
304     RedundancyService,
305
306     I18n
307   ]
308 })
309 export class SharedModule { }