413159059c8e6865d1464dd4b1eca5f45dea9003
[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 { MarkdownService } from '@app/videos/shared'
10
11 import { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
12 import { SharedModule as PrimeSharedModule } from 'primeng/components/common/shared'
13
14 import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
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 { VideoMiniatureComponent } from './video/video-miniature.component'
26 import { VideoFeedComponent } from './video/video-feed.component'
27 import { VideoThumbnailComponent } from './video/video-thumbnail.component'
28 import { VideoService } from './video/video.service'
29 import { AccountService } from '@app/shared/account/account.service'
30 import { VideoChannelService } from '@app/shared/video-channel/video-channel.service'
31 import { I18n } from '@ngx-translate/i18n-polyfill'
32 import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
33 import {
34   CustomConfigValidatorsService,
35   LoginValidatorsService,
36   ReactiveFileComponent,
37   ResetPasswordValidatorsService,
38   UserValidatorsService,
39   VideoAbuseValidatorsService,
40   VideoBlacklistValidatorsService,
41   VideoChannelValidatorsService,
42   VideoCommentValidatorsService,
43   VideoValidatorsService
44 } from '@app/shared/forms'
45 import { I18nPrimengCalendarService } from '@app/shared/i18n/i18n-primeng-calendar'
46 import { ScreenService } from '@app/shared/misc/screen.service'
47 import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service'
48 import { VideoCaptionService } from '@app/shared/video-caption'
49 import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component'
50 import { VideoImportService } from '@app/shared/video-import/video-import.service'
51 import { ActionDropdownComponent } from '@app/shared/buttons/action-dropdown.component'
52 import { NgbDropdownModule, NgbModalModule, NgbPopoverModule, NgbTabsetModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'
53 import { SubscribeButtonComponent, UserSubscriptionService } from '@app/shared/user-subscription'
54
55 @NgModule({
56   imports: [
57     CommonModule,
58     FormsModule,
59     ReactiveFormsModule,
60     RouterModule,
61     HttpClientModule,
62
63     NgbDropdownModule,
64     NgbModalModule,
65     NgbPopoverModule,
66     NgbTabsetModule,
67     NgbTooltipModule,
68
69     PrimeSharedModule,
70     NgPipesModule
71   ],
72
73   declarations: [
74     LoaderComponent,
75     VideoThumbnailComponent,
76     VideoMiniatureComponent,
77     VideoFeedComponent,
78     DeleteButtonComponent,
79     EditButtonComponent,
80     ActionDropdownComponent,
81     NumberFormatterPipe,
82     ObjectLengthPipe,
83     FromNowPipe,
84     MarkdownTextareaComponent,
85     InfiniteScrollerDirective,
86     HelpComponent,
87     ReactiveFileComponent,
88     PeertubeCheckboxComponent,
89     SubscribeButtonComponent
90   ],
91
92   exports: [
93     CommonModule,
94     FormsModule,
95     ReactiveFormsModule,
96     RouterModule,
97     HttpClientModule,
98
99     NgbDropdownModule,
100     NgbModalModule,
101     NgbPopoverModule,
102     NgbTabsetModule,
103     NgbTooltipModule,
104
105     PrimeSharedModule,
106     BytesPipe,
107     KeysPipe,
108
109     LoaderComponent,
110     VideoThumbnailComponent,
111     VideoMiniatureComponent,
112     VideoFeedComponent,
113     DeleteButtonComponent,
114     EditButtonComponent,
115     ActionDropdownComponent,
116     MarkdownTextareaComponent,
117     InfiniteScrollerDirective,
118     HelpComponent,
119     ReactiveFileComponent,
120     PeertubeCheckboxComponent,
121     SubscribeButtonComponent,
122
123     NumberFormatterPipe,
124     ObjectLengthPipe,
125     FromNowPipe
126   ],
127
128   providers: [
129     AUTH_INTERCEPTOR_PROVIDER,
130     RestExtractor,
131     RestService,
132     VideoAbuseService,
133     VideoBlacklistService,
134     UserService,
135     VideoService,
136     AccountService,
137     MarkdownService,
138     VideoChannelService,
139     VideoCaptionService,
140     VideoImportService,
141     UserSubscriptionService,
142
143     FormValidatorService,
144     CustomConfigValidatorsService,
145     LoginValidatorsService,
146     ResetPasswordValidatorsService,
147     UserValidatorsService,
148     VideoAbuseValidatorsService,
149     VideoChannelValidatorsService,
150     VideoCommentValidatorsService,
151     VideoValidatorsService,
152     VideoCaptionsValidatorsService,
153     VideoBlacklistValidatorsService,
154
155     I18nPrimengCalendarService,
156     ScreenService,
157
158     I18n
159   ]
160 })
161 export class SharedModule { }