fba099401a02225682a227f0eb5fdb840e760696
[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 { BsDropdownModule } from 'ngx-bootstrap/dropdown'
12 import { ModalModule } from 'ngx-bootstrap/modal'
13 import { PopoverModule } from 'ngx-bootstrap/popover'
14 import { TabsModule } from 'ngx-bootstrap/tabs'
15 import { TooltipModule } from 'ngx-bootstrap/tooltip'
16 import { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
17 import { SharedModule as PrimeSharedModule } from 'primeng/components/common/shared'
18
19 import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
20 import { DeleteButtonComponent } from './misc/delete-button.component'
21 import { EditButtonComponent } from './misc/edit-button.component'
22 import { FromNowPipe } from './misc/from-now.pipe'
23 import { LoaderComponent } from './misc/loader.component'
24 import { NumberFormatterPipe } from './misc/number-formatter.pipe'
25 import { ObjectLengthPipe } from './misc/object-length.pipe'
26 import { RestExtractor, RestService } from './rest'
27 import { UserService } from './users'
28 import { VideoAbuseService } from './video-abuse'
29 import { VideoBlacklistService } from './video-blacklist'
30 import { VideoMiniatureComponent } from './video/video-miniature.component'
31 import { VideoFeedComponent } from './video/video-feed.component'
32 import { VideoThumbnailComponent } from './video/video-thumbnail.component'
33 import { VideoService } from './video/video.service'
34 import { AccountService } from '@app/shared/account/account.service'
35 import { VideoChannelService } from '@app/shared/video-channel/video-channel.service'
36 import { I18n } from '@ngx-translate/i18n-polyfill'
37
38 @NgModule({
39   imports: [
40     CommonModule,
41     FormsModule,
42     ReactiveFormsModule,
43     RouterModule,
44     HttpClientModule,
45
46     BsDropdownModule.forRoot(),
47     ModalModule.forRoot(),
48     PopoverModule.forRoot(),
49     TabsModule.forRoot(),
50     TooltipModule.forRoot(),
51
52     PrimeSharedModule,
53     NgPipesModule
54   ],
55
56   declarations: [
57     LoaderComponent,
58     VideoThumbnailComponent,
59     VideoMiniatureComponent,
60     VideoFeedComponent,
61     DeleteButtonComponent,
62     EditButtonComponent,
63     NumberFormatterPipe,
64     ObjectLengthPipe,
65     FromNowPipe,
66     MarkdownTextareaComponent,
67     InfiniteScrollerDirective,
68     HelpComponent
69   ],
70
71   exports: [
72     CommonModule,
73     FormsModule,
74     ReactiveFormsModule,
75     RouterModule,
76     HttpClientModule,
77
78     BsDropdownModule,
79     ModalModule,
80     PopoverModule,
81     TabsModule,
82     TooltipModule,
83     PrimeSharedModule,
84     BytesPipe,
85     KeysPipe,
86
87     LoaderComponent,
88     VideoThumbnailComponent,
89     VideoMiniatureComponent,
90     VideoFeedComponent,
91     DeleteButtonComponent,
92     EditButtonComponent,
93     MarkdownTextareaComponent,
94     InfiniteScrollerDirective,
95     HelpComponent,
96
97     NumberFormatterPipe,
98     ObjectLengthPipe,
99     FromNowPipe
100   ],
101
102   providers: [
103     AUTH_INTERCEPTOR_PROVIDER,
104     RestExtractor,
105     RestService,
106     VideoAbuseService,
107     VideoBlacklistService,
108     UserService,
109     VideoService,
110     AccountService,
111     MarkdownService,
112     VideoChannelService,
113     I18n
114   ]
115 })
116 export class SharedModule { }