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