6f8625c7e926f83f8a5eaaf38d60cbb5afa889c7
[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 { FromNowPipe } from './misc/from-now.pipe'
18 import { LoaderComponent } from './misc/loader.component'
19 import { NumberFormatterPipe } from './misc/number-formatter.pipe'
20 import { ObjectLengthPipe } from './misc/object-length.pipe'
21 import { RestExtractor, RestService } from './rest'
22 import { UserService } from './users'
23 import { VideoAbuseService } from './video-abuse'
24 import { VideoBlacklistService } from './video-blacklist'
25 import { VideoOwnershipService } from './video-ownership'
26 import { VideoMiniatureComponent } from './video/video-miniature.component'
27 import { FeedComponent } from './video/feed.component'
28 import { VideoThumbnailComponent } from './video/video-thumbnail.component'
29 import { VideoService } from './video/video.service'
30 import { AccountService } from '@app/shared/account/account.service'
31 import { VideoChannelService } from '@app/shared/video-channel/video-channel.service'
32 import { I18n } from '@ngx-translate/i18n-polyfill'
33 import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
34 import {
35   CustomConfigValidatorsService,
36   InstanceValidatorsService,
37   LoginValidatorsService,
38   ReactiveFileComponent,
39   ResetPasswordValidatorsService,
40   TextareaAutoResizeDirective,
41   UserValidatorsService,
42   VideoAbuseValidatorsService,
43   VideoAcceptOwnershipValidatorsService,
44   VideoBlacklistValidatorsService,
45   VideoChangeOwnershipValidatorsService,
46   VideoChannelValidatorsService,
47   VideoCommentValidatorsService,
48   VideoValidatorsService
49 } from '@app/shared/forms'
50 import { I18nPrimengCalendarService } from '@app/shared/i18n/i18n-primeng-calendar'
51 import { ScreenService } from '@app/shared/misc/screen.service'
52 import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service'
53 import { VideoCaptionService } from '@app/shared/video-caption'
54 import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component'
55 import { VideoImportService } from '@app/shared/video-import/video-import.service'
56 import { ActionDropdownComponent } from '@app/shared/buttons/action-dropdown.component'
57 import { NgbDropdownModule, NgbModalModule, NgbPopoverModule, NgbTabsetModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'
58 import { RemoteSubscribeComponent, SubscribeButtonComponent, UserSubscriptionService } from '@app/shared/user-subscription'
59 import { InstanceFeaturesTableComponent } from '@app/shared/instance/instance-features-table.component'
60 import { OverviewService } from '@app/shared/overview'
61 import { UserBanModalComponent } from '@app/shared/moderation'
62 import { UserModerationDropdownComponent } from '@app/shared/moderation/user-moderation-dropdown.component'
63 import { BlocklistService } from '@app/shared/blocklist'
64 import { TopMenuDropdownComponent } from '@app/shared/menu/top-menu-dropdown.component'
65 import { UserHistoryService } from '@app/shared/users/user-history.service'
66 import { UserNotificationService } from '@app/shared/users/user-notification.service'
67 import { UserNotificationsComponent } from '@app/shared/users/user-notifications.component'
68 import { InstanceService } from '@app/shared/instance/instance.service'
69 import { HtmlRendererService, LinkifierService, MarkdownService } from '@app/shared/renderer'
70 import { ConfirmComponent } from '@app/shared/confirm/confirm.component'
71 import { GlobalIconComponent } from '@app/shared/icons/global-icon.component'
72
73 @NgModule({
74   imports: [
75     CommonModule,
76     FormsModule,
77     ReactiveFormsModule,
78     RouterModule,
79     HttpClientModule,
80
81     NgbDropdownModule,
82     NgbModalModule,
83     NgbPopoverModule,
84     NgbTabsetModule,
85     NgbTooltipModule,
86
87     PrimeSharedModule,
88     NgPipesModule
89   ],
90
91   declarations: [
92     LoaderComponent,
93     VideoThumbnailComponent,
94     VideoMiniatureComponent,
95     FeedComponent,
96     ButtonComponent,
97     DeleteButtonComponent,
98     EditButtonComponent,
99     ActionDropdownComponent,
100     NumberFormatterPipe,
101     ObjectLengthPipe,
102     FromNowPipe,
103     MarkdownTextareaComponent,
104     InfiniteScrollerDirective,
105     TextareaAutoResizeDirective,
106     HelpComponent,
107     ReactiveFileComponent,
108     PeertubeCheckboxComponent,
109     SubscribeButtonComponent,
110     RemoteSubscribeComponent,
111     InstanceFeaturesTableComponent,
112     UserBanModalComponent,
113     UserModerationDropdownComponent,
114     TopMenuDropdownComponent,
115     UserNotificationsComponent,
116     ConfirmComponent,
117     GlobalIconComponent
118   ],
119
120   exports: [
121     CommonModule,
122     FormsModule,
123     ReactiveFormsModule,
124     RouterModule,
125     HttpClientModule,
126
127     NgbDropdownModule,
128     NgbModalModule,
129     NgbPopoverModule,
130     NgbTabsetModule,
131     NgbTooltipModule,
132
133     PrimeSharedModule,
134     BytesPipe,
135     KeysPipe,
136
137     LoaderComponent,
138     VideoThumbnailComponent,
139     VideoMiniatureComponent,
140     FeedComponent,
141     ButtonComponent,
142     DeleteButtonComponent,
143     EditButtonComponent,
144     ActionDropdownComponent,
145     MarkdownTextareaComponent,
146     InfiniteScrollerDirective,
147     TextareaAutoResizeDirective,
148     HelpComponent,
149     ReactiveFileComponent,
150     PeertubeCheckboxComponent,
151     SubscribeButtonComponent,
152     RemoteSubscribeComponent,
153     InstanceFeaturesTableComponent,
154     UserBanModalComponent,
155     UserModerationDropdownComponent,
156     TopMenuDropdownComponent,
157     UserNotificationsComponent,
158     ConfirmComponent,
159     GlobalIconComponent,
160
161     NumberFormatterPipe,
162     ObjectLengthPipe,
163     FromNowPipe
164   ],
165
166   providers: [
167     AUTH_INTERCEPTOR_PROVIDER,
168     RestExtractor,
169     RestService,
170     VideoAbuseService,
171     VideoBlacklistService,
172     VideoOwnershipService,
173     UserService,
174     VideoService,
175     AccountService,
176     VideoChannelService,
177     VideoCaptionService,
178     VideoImportService,
179     UserSubscriptionService,
180
181     FormValidatorService,
182     CustomConfigValidatorsService,
183     LoginValidatorsService,
184     ResetPasswordValidatorsService,
185     UserValidatorsService,
186     VideoAbuseValidatorsService,
187     VideoChannelValidatorsService,
188     VideoCommentValidatorsService,
189     VideoValidatorsService,
190     VideoCaptionsValidatorsService,
191     VideoBlacklistValidatorsService,
192     OverviewService,
193     VideoChangeOwnershipValidatorsService,
194     VideoAcceptOwnershipValidatorsService,
195     InstanceValidatorsService,
196     BlocklistService,
197     UserHistoryService,
198     InstanceService,
199
200     MarkdownService,
201     LinkifierService,
202     HtmlRendererService,
203
204     I18nPrimengCalendarService,
205     ScreenService,
206
207     UserNotificationService,
208
209     I18n
210   ]
211 })
212 export class SharedModule { }