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