Add checkbox focus shadows, and admin resolution descriptions
[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/components/common/shared'
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 { ObjectLengthPipe } from '@app/shared/angular/object-length.pipe'
89 import { FromNowPipe } from '@app/shared/angular/from-now.pipe'
90 import { PeerTubeTemplateDirective } from '@app/shared/angular/peertube-template.directive'
91 import { VideoActionsDropdownComponent } from '@app/shared/video/video-actions-dropdown.component'
92 import { VideoBlacklistComponent } from '@app/shared/video/modals/video-blacklist.component'
93 import { VideoDownloadComponent } from '@app/shared/video/modals/video-download.component'
94 import { VideoReportComponent } from '@app/shared/video/modals/video-report.component'
95 import { ClipboardModule } from 'ngx-clipboard'
96 import { FollowService } from '@app/shared/instance/follow.service'
97 import { MultiSelectModule } from 'primeng/multiselect'
98 import { FeatureBooleanComponent } from '@app/shared/instance/feature-boolean.component'
99 import { InputReadonlyCopyComponent } from '@app/shared/forms/input-readonly-copy.component'
100
101 @NgModule({
102   imports: [
103     CommonModule,
104     FormsModule,
105     ReactiveFormsModule,
106     RouterModule,
107     HttpClientModule,
108
109     NgbDropdownModule,
110     NgbModalModule,
111     NgbPopoverModule,
112     NgbTabsetModule,
113     NgbTooltipModule,
114     NgbCollapseModule,
115
116     ClipboardModule,
117
118     PrimeSharedModule,
119     InputMaskModule,
120     NgPipesModule,
121     MultiSelectModule
122   ],
123
124   declarations: [
125     LoaderComponent,
126     SmallLoaderComponent,
127
128     VideoThumbnailComponent,
129     VideoMiniatureComponent,
130     VideoPlaylistMiniatureComponent,
131     VideoAddToPlaylistComponent,
132     VideoPlaylistElementMiniatureComponent,
133     VideosSelectionComponent,
134     VideoActionsDropdownComponent,
135
136     VideoDownloadComponent,
137     VideoReportComponent,
138     VideoBlacklistComponent,
139
140     FeedComponent,
141
142     ButtonComponent,
143     DeleteButtonComponent,
144     EditButtonComponent,
145
146     NumberFormatterPipe,
147     ObjectLengthPipe,
148     FromNowPipe,
149     PeerTubeTemplateDirective,
150
151     ActionDropdownComponent,
152     MarkdownTextareaComponent,
153     InfiniteScrollerDirective,
154     TextareaAutoResizeDirective,
155     HelpComponent,
156
157     ReactiveFileComponent,
158     PeertubeCheckboxComponent,
159     TimestampInputComponent,
160     InputReadonlyCopyComponent,
161
162     AvatarComponent,
163     SubscribeButtonComponent,
164     RemoteSubscribeComponent,
165     InstanceFeaturesTableComponent,
166     InstanceStatisticsComponent,
167     FeatureBooleanComponent,
168     UserBanModalComponent,
169     UserModerationDropdownComponent,
170     TopMenuDropdownComponent,
171     UserNotificationsComponent,
172     ConfirmComponent,
173     DateToggleComponent,
174
175     GlobalIconComponent,
176     PreviewUploadComponent
177   ],
178
179   exports: [
180     CommonModule,
181     FormsModule,
182     ReactiveFormsModule,
183     RouterModule,
184     HttpClientModule,
185
186     NgbDropdownModule,
187     NgbModalModule,
188     NgbPopoverModule,
189     NgbTabsetModule,
190     NgbTooltipModule,
191     NgbCollapseModule,
192
193     ClipboardModule,
194
195     PrimeSharedModule,
196     InputMaskModule,
197     BytesPipe,
198     KeysPipe,
199     MultiSelectModule,
200
201     LoaderComponent,
202     SmallLoaderComponent,
203
204     VideoThumbnailComponent,
205     VideoMiniatureComponent,
206     VideoPlaylistMiniatureComponent,
207     VideoAddToPlaylistComponent,
208     VideoPlaylistElementMiniatureComponent,
209     VideosSelectionComponent,
210     VideoActionsDropdownComponent,
211
212     VideoDownloadComponent,
213     VideoReportComponent,
214     VideoBlacklistComponent,
215
216     FeedComponent,
217
218     ButtonComponent,
219     DeleteButtonComponent,
220     EditButtonComponent,
221
222     ActionDropdownComponent,
223     MarkdownTextareaComponent,
224     InfiniteScrollerDirective,
225     TextareaAutoResizeDirective,
226     HelpComponent,
227     InputReadonlyCopyComponent,
228
229     ReactiveFileComponent,
230     PeertubeCheckboxComponent,
231     TimestampInputComponent,
232
233     AvatarComponent,
234     SubscribeButtonComponent,
235     RemoteSubscribeComponent,
236     InstanceFeaturesTableComponent,
237     InstanceStatisticsComponent,
238     UserBanModalComponent,
239     UserModerationDropdownComponent,
240     TopMenuDropdownComponent,
241     UserNotificationsComponent,
242     ConfirmComponent,
243     DateToggleComponent,
244
245     GlobalIconComponent,
246     PreviewUploadComponent,
247
248     NumberFormatterPipe,
249     ObjectLengthPipe,
250     FromNowPipe,
251     PeerTubeTemplateDirective
252   ],
253
254   providers: [
255     AUTH_INTERCEPTOR_PROVIDER,
256     RestExtractor,
257     RestService,
258     VideoAbuseService,
259     VideoBlacklistService,
260     VideoOwnershipService,
261     UserService,
262     VideoService,
263     AccountService,
264     VideoChannelService,
265     VideoPlaylistService,
266     VideoCaptionService,
267     VideoImportService,
268     UserSubscriptionService,
269
270     FormValidatorService,
271     CustomConfigValidatorsService,
272     LoginValidatorsService,
273     ResetPasswordValidatorsService,
274     UserValidatorsService,
275     VideoPlaylistValidatorsService,
276     VideoAbuseValidatorsService,
277     VideoChannelValidatorsService,
278     VideoCommentValidatorsService,
279     VideoValidatorsService,
280     VideoCaptionsValidatorsService,
281     VideoBlacklistValidatorsService,
282     OverviewService,
283     VideoChangeOwnershipValidatorsService,
284     VideoAcceptOwnershipValidatorsService,
285     InstanceValidatorsService,
286     BlocklistService,
287     UserHistoryService,
288     InstanceService,
289
290     MarkdownService,
291     LinkifierService,
292     HtmlRendererService,
293
294     I18nPrimengCalendarService,
295     ScreenService,
296
297     UserNotificationService,
298
299     FollowService,
300
301     I18n
302   ]
303 })
304 export class SharedModule { }