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