diff options
Diffstat (limited to 'client/src/app')
39 files changed, 61 insertions, 61 deletions
diff --git a/client/src/app/+about/about-instance/about-instance.component.ts b/client/src/app/+about/about-instance/about-instance.component.ts index 4a63f5e38..a5204de27 100644 --- a/client/src/app/+about/about-instance/about-instance.component.ts +++ b/client/src/app/+about/about-instance/about-instance.component.ts | |||
@@ -11,7 +11,7 @@ import { MarkdownService } from '@app/shared/renderer' | |||
11 | styleUrls: [ './about-instance.component.scss' ] | 11 | styleUrls: [ './about-instance.component.scss' ] |
12 | }) | 12 | }) |
13 | export class AboutInstanceComponent implements OnInit { | 13 | export class AboutInstanceComponent implements OnInit { |
14 | @ViewChild('contactAdminModal') contactAdminModal: ContactAdminModalComponent | 14 | @ViewChild('contactAdminModal', { static: true }) contactAdminModal: ContactAdminModalComponent |
15 | 15 | ||
16 | shortDescription = '' | 16 | shortDescription = '' |
17 | descriptionHTML = '' | 17 | descriptionHTML = '' |
diff --git a/client/src/app/+about/about-instance/contact-admin-modal.component.ts b/client/src/app/+about/about-instance/contact-admin-modal.component.ts index c609c98c3..878d49b55 100644 --- a/client/src/app/+about/about-instance/contact-admin-modal.component.ts +++ b/client/src/app/+about/about-instance/contact-admin-modal.component.ts | |||
@@ -13,7 +13,7 @@ import { InstanceService } from '@app/shared/instance/instance.service' | |||
13 | styleUrls: [ './contact-admin-modal.component.scss' ] | 13 | styleUrls: [ './contact-admin-modal.component.scss' ] |
14 | }) | 14 | }) |
15 | export class ContactAdminModalComponent extends FormReactive implements OnInit { | 15 | export class ContactAdminModalComponent extends FormReactive implements OnInit { |
16 | @ViewChild('modal') modal: NgbModal | 16 | @ViewChild('modal', { static: true }) modal: NgbModal |
17 | 17 | ||
18 | error: string | 18 | error: string |
19 | 19 | ||
diff --git a/client/src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts b/client/src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts index f915978ee..f8a5ef8cb 100644 --- a/client/src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts +++ b/client/src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts | |||
@@ -13,7 +13,7 @@ import { VideoAbuse } from '../../../../../../shared/models/videos' | |||
13 | styleUrls: [ './moderation-comment-modal.component.scss' ] | 13 | styleUrls: [ './moderation-comment-modal.component.scss' ] |
14 | }) | 14 | }) |
15 | export class ModerationCommentModalComponent extends FormReactive implements OnInit { | 15 | export class ModerationCommentModalComponent extends FormReactive implements OnInit { |
16 | @ViewChild('modal') modal: NgbModal | 16 | @ViewChild('modal', { static: true }) modal: NgbModal |
17 | @Output() commentUpdated = new EventEmitter<string>() | 17 | @Output() commentUpdated = new EventEmitter<string>() |
18 | 18 | ||
19 | private abuseToComment: VideoAbuse | 19 | private abuseToComment: VideoAbuse |
diff --git a/client/src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts b/client/src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts index 3aa875668..778f18d3d 100644 --- a/client/src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts +++ b/client/src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts | |||
@@ -17,7 +17,7 @@ import { MarkdownService } from '@app/shared/renderer' | |||
17 | styleUrls: [ '../moderation.component.scss'] | 17 | styleUrls: [ '../moderation.component.scss'] |
18 | }) | 18 | }) |
19 | export class VideoAbuseListComponent extends RestTable implements OnInit { | 19 | export class VideoAbuseListComponent extends RestTable implements OnInit { |
20 | @ViewChild('moderationCommentModal') moderationCommentModal: ModerationCommentModalComponent | 20 | @ViewChild('moderationCommentModal', { static: true }) moderationCommentModal: ModerationCommentModalComponent |
21 | 21 | ||
22 | videoAbuses: (VideoAbuse & { moderationCommentHtml?: string, reasonHtml?: string })[] = [] | 22 | videoAbuses: (VideoAbuse & { moderationCommentHtml?: string, reasonHtml?: string })[] = [] |
23 | totalRecords = 0 | 23 | totalRecords = 0 |
diff --git a/client/src/app/+admin/system/logs/logs.component.ts b/client/src/app/+admin/system/logs/logs.component.ts index 1a3508a3b..b2aca8461 100644 --- a/client/src/app/+admin/system/logs/logs.component.ts +++ b/client/src/app/+admin/system/logs/logs.component.ts | |||
@@ -10,7 +10,7 @@ import { LogLevel } from '@shared/models/server/log-level.type' | |||
10 | styleUrls: [ './logs.component.scss' ] | 10 | styleUrls: [ './logs.component.scss' ] |
11 | }) | 11 | }) |
12 | export class LogsComponent implements OnInit { | 12 | export class LogsComponent implements OnInit { |
13 | @ViewChild('logsElement') logsElement: ElementRef<HTMLElement> | 13 | @ViewChild('logsElement', { static: true }) logsElement: ElementRef<HTMLElement> |
14 | 14 | ||
15 | loading = false | 15 | loading = false |
16 | 16 | ||
diff --git a/client/src/app/+admin/users/user-list/user-list.component.ts b/client/src/app/+admin/users/user-list/user-list.component.ts index 66ab796f9..c9c790689 100644 --- a/client/src/app/+admin/users/user-list/user-list.component.ts +++ b/client/src/app/+admin/users/user-list/user-list.component.ts | |||
@@ -14,7 +14,7 @@ import { DropdownAction } from '@app/shared/buttons/action-dropdown.component' | |||
14 | styleUrls: [ './user-list.component.scss' ] | 14 | styleUrls: [ './user-list.component.scss' ] |
15 | }) | 15 | }) |
16 | export class UserListComponent extends RestTable implements OnInit { | 16 | export class UserListComponent extends RestTable implements OnInit { |
17 | @ViewChild('userBanModal') userBanModal: UserBanModalComponent | 17 | @ViewChild('userBanModal', { static: true }) userBanModal: UserBanModalComponent |
18 | 18 | ||
19 | users: User[] = [] | 19 | users: User[] = [] |
20 | totalRecords = 0 | 20 | totalRecords = 0 |
diff --git a/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.ts b/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.ts index 3e197088d..9eca13d0f 100644 --- a/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.ts +++ b/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.ts | |||
@@ -6,7 +6,7 @@ import { UserNotificationsComponent } from '@app/shared' | |||
6 | styleUrls: [ './my-account-notifications.component.scss' ] | 6 | styleUrls: [ './my-account-notifications.component.scss' ] |
7 | }) | 7 | }) |
8 | export class MyAccountNotificationsComponent { | 8 | export class MyAccountNotificationsComponent { |
9 | @ViewChild('userNotification') userNotification: UserNotificationsComponent | 9 | @ViewChild('userNotification', { static: true }) userNotification: UserNotificationsComponent |
10 | 10 | ||
11 | markAllAsRead () { | 11 | markAllAsRead () { |
12 | this.userNotification.markAllAsRead() | 12 | this.userNotification.markAllAsRead() |
diff --git a/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.ts b/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.ts index 79d29b139..6df929ec9 100644 --- a/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.ts +++ b/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.ts | |||
@@ -18,7 +18,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap' | |||
18 | export class MyAccountAcceptOwnershipComponent extends FormReactive implements OnInit { | 18 | export class MyAccountAcceptOwnershipComponent extends FormReactive implements OnInit { |
19 | @Output() accepted = new EventEmitter<void>() | 19 | @Output() accepted = new EventEmitter<void>() |
20 | 20 | ||
21 | @ViewChild('modal') modal: ElementRef | 21 | @ViewChild('modal', { static: true }) modal: ElementRef |
22 | 22 | ||
23 | videoChangeOwnership: VideoChangeOwnership | undefined = undefined | 23 | videoChangeOwnership: VideoChangeOwnership | undefined = undefined |
24 | 24 | ||
diff --git a/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.ts b/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.ts index 77857c4fd..aeeb0e5a7 100644 --- a/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.ts +++ b/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.ts | |||
@@ -18,7 +18,7 @@ export class MyAccountOwnershipComponent extends RestTable implements OnInit { | |||
18 | sort: SortMeta = { field: 'createdAt', order: -1 } | 18 | sort: SortMeta = { field: 'createdAt', order: -1 } |
19 | pagination: RestPagination = { count: this.rowsPerPage, start: 0 } | 19 | pagination: RestPagination = { count: this.rowsPerPage, start: 0 } |
20 | 20 | ||
21 | @ViewChild('myAccountAcceptOwnershipComponent') myAccountAcceptOwnershipComponent: MyAccountAcceptOwnershipComponent | 21 | @ViewChild('myAccountAcceptOwnershipComponent', { static: true }) myAccountAcceptOwnershipComponent: MyAccountAcceptOwnershipComponent |
22 | 22 | ||
23 | constructor ( | 23 | constructor ( |
24 | private notifier: Notifier, | 24 | private notifier: Notifier, |
diff --git a/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts b/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts index 5f29364a8..2c86a3c56 100644 --- a/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts +++ b/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts | |||
@@ -23,8 +23,8 @@ import { DisableForReuseHook } from '@app/core/routing/disable-for-reuse-hook' | |||
23 | styleUrls: [ './my-account-videos.component.scss' ] | 23 | styleUrls: [ './my-account-videos.component.scss' ] |
24 | }) | 24 | }) |
25 | export class MyAccountVideosComponent implements DisableForReuseHook { | 25 | export class MyAccountVideosComponent implements DisableForReuseHook { |
26 | @ViewChild('videosSelection') videosSelection: VideosSelectionComponent | 26 | @ViewChild('videosSelection', { static: true }) videosSelection: VideosSelectionComponent |
27 | @ViewChild('videoChangeOwnershipModal') videoChangeOwnershipModal: VideoChangeOwnershipComponent | 27 | @ViewChild('videoChangeOwnershipModal', { static: true }) videoChangeOwnershipModal: VideoChangeOwnershipComponent |
28 | 28 | ||
29 | titlePage: string | 29 | titlePage: string |
30 | selection: SelectionType = {} | 30 | selection: SelectionType = {} |
diff --git a/client/src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts b/client/src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts index 37d7cf2a4..36d1ea091 100644 --- a/client/src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts +++ b/client/src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts | |||
@@ -13,7 +13,7 @@ import { VideoOwnershipService } from '@app/shared/video-ownership' | |||
13 | styleUrls: [ './video-change-ownership.component.scss' ] | 13 | styleUrls: [ './video-change-ownership.component.scss' ] |
14 | }) | 14 | }) |
15 | export class VideoChangeOwnershipComponent extends FormReactive implements OnInit { | 15 | export class VideoChangeOwnershipComponent extends FormReactive implements OnInit { |
16 | @ViewChild('modal') modal: ElementRef | 16 | @ViewChild('modal', { static: true }) modal: ElementRef |
17 | 17 | ||
18 | usernamePropositions: string[] | 18 | usernamePropositions: string[] |
19 | 19 | ||
diff --git a/client/src/app/+my-account/shared/actor-avatar-info.component.ts b/client/src/app/+my-account/shared/actor-avatar-info.component.ts index 72c815a0c..0289a66c3 100644 --- a/client/src/app/+my-account/shared/actor-avatar-info.component.ts +++ b/client/src/app/+my-account/shared/actor-avatar-info.component.ts | |||
@@ -10,7 +10,7 @@ import { Notifier } from '@app/core' | |||
10 | styleUrls: [ './actor-avatar-info.component.scss' ] | 10 | styleUrls: [ './actor-avatar-info.component.scss' ] |
11 | }) | 11 | }) |
12 | export class ActorAvatarInfoComponent { | 12 | export class ActorAvatarInfoComponent { |
13 | @ViewChild('avatarfileInput') avatarfileInput: ElementRef<HTMLInputElement> | 13 | @ViewChild('avatarfileInput', { static: false }) avatarfileInput: ElementRef<HTMLInputElement> |
14 | 14 | ||
15 | @Input() actor: VideoChannel | Account | 15 | @Input() actor: VideoChannel | Account |
16 | 16 | ||
diff --git a/client/src/app/+video-channels/video-channels.component.ts b/client/src/app/+video-channels/video-channels.component.ts index 41ff82e98..d2975b67c 100644 --- a/client/src/app/+video-channels/video-channels.component.ts +++ b/client/src/app/+video-channels/video-channels.component.ts | |||
@@ -15,7 +15,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill' | |||
15 | styleUrls: [ './video-channels.component.scss' ] | 15 | styleUrls: [ './video-channels.component.scss' ] |
16 | }) | 16 | }) |
17 | export class VideoChannelsComponent implements OnInit, OnDestroy { | 17 | export class VideoChannelsComponent implements OnInit, OnDestroy { |
18 | @ViewChild('subscribeButton') subscribeButton: SubscribeButtonComponent | 18 | @ViewChild('subscribeButton', { static: false }) subscribeButton: SubscribeButtonComponent |
19 | 19 | ||
20 | videoChannel: VideoChannel | 20 | videoChannel: VideoChannel |
21 | hotkeys: Hotkey[] | 21 | hotkeys: Hotkey[] |
diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index 7ca51f226..b5a677d15 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts | |||
@@ -8,31 +8,31 @@ import { CustomReuseStrategy } from '@app/core/routing/custom-reuse-strategy' | |||
8 | const routes: Routes = [ | 8 | const routes: Routes = [ |
9 | { | 9 | { |
10 | path: 'admin', | 10 | path: 'admin', |
11 | loadChildren: './+admin/admin.module#AdminModule' | 11 | loadChildren: () => import('./+admin/admin.module').then(m => m.AdminModule) |
12 | }, | 12 | }, |
13 | { | 13 | { |
14 | path: 'my-account', | 14 | path: 'my-account', |
15 | loadChildren: './+my-account/my-account.module#MyAccountModule' | 15 | loadChildren: () => import('./+my-account/my-account.module').then(m => m.MyAccountModule) |
16 | }, | 16 | }, |
17 | { | 17 | { |
18 | path: 'verify-account', | 18 | path: 'verify-account', |
19 | loadChildren: './+signup/+verify-account/verify-account.module#VerifyAccountModule' | 19 | loadChildren: () => import('./+signup/+verify-account/verify-account.module').then(m => m.VerifyAccountModule) |
20 | }, | 20 | }, |
21 | { | 21 | { |
22 | path: 'accounts', | 22 | path: 'accounts', |
23 | loadChildren: './+accounts/accounts.module#AccountsModule' | 23 | loadChildren: () => import('./+accounts/accounts.module').then(m => m.AccountsModule) |
24 | }, | 24 | }, |
25 | { | 25 | { |
26 | path: 'video-channels', | 26 | path: 'video-channels', |
27 | loadChildren: './+video-channels/video-channels.module#VideoChannelsModule' | 27 | loadChildren: () => import('./+video-channels/video-channels.module').then(m => m.VideoChannelsModule) |
28 | }, | 28 | }, |
29 | { | 29 | { |
30 | path: 'about', | 30 | path: 'about', |
31 | loadChildren: './+about/about.module#AboutModule' | 31 | loadChildren: () => import('./+about/about.module').then(m => m.AboutModule) |
32 | }, | 32 | }, |
33 | { | 33 | { |
34 | path: 'signup', | 34 | path: 'signup', |
35 | loadChildren: './+signup/+register/register.module#RegisterModule' | 35 | loadChildren: () => import('./+signup/+register/register.module').then(m => m.RegisterModule) |
36 | }, | 36 | }, |
37 | { | 37 | { |
38 | path: '', | 38 | path: '', |
@@ -40,7 +40,7 @@ const routes: Routes = [ | |||
40 | }, | 40 | }, |
41 | { | 41 | { |
42 | path: '**', | 42 | path: '**', |
43 | loadChildren: './+page-not-found/page-not-found.module#PageNotFoundModule' | 43 | loadChildren: () => import('./+page-not-found/page-not-found.module').then(m => m.PageNotFoundModule) |
44 | } | 44 | } |
45 | ] | 45 | ] |
46 | 46 | ||
diff --git a/client/src/app/login/login.component.ts b/client/src/app/login/login.component.ts index fc2442c0e..12c631107 100644 --- a/client/src/app/login/login.component.ts +++ b/client/src/app/login/login.component.ts | |||
@@ -16,8 +16,8 @@ import { Router } from '@angular/router' | |||
16 | }) | 16 | }) |
17 | 17 | ||
18 | export class LoginComponent extends FormReactive implements OnInit { | 18 | export class LoginComponent extends FormReactive implements OnInit { |
19 | @ViewChild('emailInput') input: ElementRef | 19 | @ViewChild('emailInput', { static: true }) input: ElementRef |
20 | @ViewChild('forgotPasswordModal') forgotPasswordModal: ElementRef | 20 | @ViewChild('forgotPasswordModal', { static: true }) forgotPasswordModal: ElementRef |
21 | 21 | ||
22 | error: string = null | 22 | error: string = null |
23 | forgotPasswordEmail = '' | 23 | forgotPasswordEmail = '' |
diff --git a/client/src/app/menu/avatar-notification.component.ts b/client/src/app/menu/avatar-notification.component.ts index a77a001ca..38dbb935b 100644 --- a/client/src/app/menu/avatar-notification.component.ts +++ b/client/src/app/menu/avatar-notification.component.ts | |||
@@ -13,7 +13,7 @@ import { filter } from 'rxjs/operators' | |||
13 | styleUrls: [ './avatar-notification.component.scss' ] | 13 | styleUrls: [ './avatar-notification.component.scss' ] |
14 | }) | 14 | }) |
15 | export class AvatarNotificationComponent implements OnInit, OnDestroy { | 15 | export class AvatarNotificationComponent implements OnInit, OnDestroy { |
16 | @ViewChild('popover') popover: NgbPopover | 16 | @ViewChild('popover', { static: true }) popover: NgbPopover |
17 | @Input() user: User | 17 | @Input() user: User |
18 | 18 | ||
19 | unreadNotifications = 0 | 19 | unreadNotifications = 0 |
diff --git a/client/src/app/menu/language-chooser.component.ts b/client/src/app/menu/language-chooser.component.ts index 8eb84673e..4a6e4c75a 100644 --- a/client/src/app/menu/language-chooser.component.ts +++ b/client/src/app/menu/language-chooser.component.ts | |||
@@ -9,7 +9,7 @@ import { sortBy } from '@app/shared/misc/utils' | |||
9 | styleUrls: [ './language-chooser.component.scss' ] | 9 | styleUrls: [ './language-chooser.component.scss' ] |
10 | }) | 10 | }) |
11 | export class LanguageChooserComponent { | 11 | export class LanguageChooserComponent { |
12 | @ViewChild('modal') modal: ElementRef | 12 | @ViewChild('modal', { static: true }) modal: ElementRef |
13 | 13 | ||
14 | languages: { id: string, label: string }[] = [] | 14 | languages: { id: string, label: string }[] = [] |
15 | 15 | ||
diff --git a/client/src/app/menu/menu.component.ts b/client/src/app/menu/menu.component.ts index ede64b7eb..c7c31577a 100644 --- a/client/src/app/menu/menu.component.ts +++ b/client/src/app/menu/menu.component.ts | |||
@@ -11,7 +11,7 @@ import { HotkeysService } from 'angular2-hotkeys' | |||
11 | styleUrls: [ './menu.component.scss' ] | 11 | styleUrls: [ './menu.component.scss' ] |
12 | }) | 12 | }) |
13 | export class MenuComponent implements OnInit { | 13 | export class MenuComponent implements OnInit { |
14 | @ViewChild('languageChooserModal') languageChooserModal: LanguageChooserComponent | 14 | @ViewChild('languageChooserModal', { static: true }) languageChooserModal: LanguageChooserComponent |
15 | 15 | ||
16 | user: User | 16 | user: User |
17 | isLoggedIn: boolean | 17 | isLoggedIn: boolean |
diff --git a/client/src/app/shared/confirm/confirm.component.ts b/client/src/app/shared/confirm/confirm.component.ts index 63c163da6..53aed14d7 100644 --- a/client/src/app/shared/confirm/confirm.component.ts +++ b/client/src/app/shared/confirm/confirm.component.ts | |||
@@ -10,7 +10,7 @@ import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' | |||
10 | styleUrls: [ './confirm.component.scss' ] | 10 | styleUrls: [ './confirm.component.scss' ] |
11 | }) | 11 | }) |
12 | export class ConfirmComponent implements OnInit { | 12 | export class ConfirmComponent implements OnInit { |
13 | @ViewChild('confirmModal') confirmModal: ElementRef | 13 | @ViewChild('confirmModal', { static: true }) confirmModal: ElementRef |
14 | 14 | ||
15 | title = '' | 15 | title = '' |
16 | message = '' | 16 | message = '' |
diff --git a/client/src/app/shared/moderation/user-ban-modal.component.ts b/client/src/app/shared/moderation/user-ban-modal.component.ts index 942765301..cf0e1577a 100644 --- a/client/src/app/shared/moderation/user-ban-modal.component.ts +++ b/client/src/app/shared/moderation/user-ban-modal.component.ts | |||
@@ -14,7 +14,7 @@ import { User } from '../../../../../shared' | |||
14 | styleUrls: [ './user-ban-modal.component.scss' ] | 14 | styleUrls: [ './user-ban-modal.component.scss' ] |
15 | }) | 15 | }) |
16 | export class UserBanModalComponent extends FormReactive implements OnInit { | 16 | export class UserBanModalComponent extends FormReactive implements OnInit { |
17 | @ViewChild('modal') modal: NgbModal | 17 | @ViewChild('modal', { static: true }) modal: NgbModal |
18 | @Output() userBanned = new EventEmitter<User | User[]>() | 18 | @Output() userBanned = new EventEmitter<User | User[]>() |
19 | 19 | ||
20 | private usersToBan: User | User[] | 20 | private usersToBan: User | User[] |
diff --git a/client/src/app/shared/moderation/user-moderation-dropdown.component.ts b/client/src/app/shared/moderation/user-moderation-dropdown.component.ts index 9dd16812b..24f717821 100644 --- a/client/src/app/shared/moderation/user-moderation-dropdown.component.ts +++ b/client/src/app/shared/moderation/user-moderation-dropdown.component.ts | |||
@@ -13,7 +13,7 @@ import { BlocklistService } from '@app/shared/blocklist' | |||
13 | templateUrl: './user-moderation-dropdown.component.html' | 13 | templateUrl: './user-moderation-dropdown.component.html' |
14 | }) | 14 | }) |
15 | export class UserModerationDropdownComponent implements OnChanges { | 15 | export class UserModerationDropdownComponent implements OnChanges { |
16 | @ViewChild('userBanModal') userBanModal: UserBanModalComponent | 16 | @ViewChild('userBanModal', { static: false }) userBanModal: UserBanModalComponent |
17 | 17 | ||
18 | @Input() user: User | 18 | @Input() user: User |
19 | @Input() account: Account | 19 | @Input() account: Account |
diff --git a/client/src/app/shared/video-playlist/video-playlist-element-miniature.component.ts b/client/src/app/shared/video-playlist/video-playlist-element-miniature.component.ts index 57990707a..62cf6536d 100644 --- a/client/src/app/shared/video-playlist/video-playlist-element-miniature.component.ts +++ b/client/src/app/shared/video-playlist/video-playlist-element-miniature.component.ts | |||
@@ -17,7 +17,7 @@ import { secondsToTime } from '../../../assets/player/utils' | |||
17 | changeDetection: ChangeDetectionStrategy.OnPush | 17 | changeDetection: ChangeDetectionStrategy.OnPush |
18 | }) | 18 | }) |
19 | export class VideoPlaylistElementMiniatureComponent { | 19 | export class VideoPlaylistElementMiniatureComponent { |
20 | @ViewChild('moreDropdown') moreDropdown: NgbDropdown | 20 | @ViewChild('moreDropdown', { static: false }) moreDropdown: NgbDropdown |
21 | 21 | ||
22 | @Input() playlist: VideoPlaylist | 22 | @Input() playlist: VideoPlaylist |
23 | @Input() video: Video | 23 | @Input() video: Video |
diff --git a/client/src/app/shared/video/modals/video-blacklist.component.ts b/client/src/app/shared/video/modals/video-blacklist.component.ts index 4e4e8dc50..f0c70a365 100644 --- a/client/src/app/shared/video/modals/video-blacklist.component.ts +++ b/client/src/app/shared/video/modals/video-blacklist.component.ts | |||
@@ -16,7 +16,7 @@ import { FormReactive, VideoBlacklistValidatorsService } from '@app/shared/forms | |||
16 | export class VideoBlacklistComponent extends FormReactive implements OnInit { | 16 | export class VideoBlacklistComponent extends FormReactive implements OnInit { |
17 | @Input() video: VideoDetails = null | 17 | @Input() video: VideoDetails = null |
18 | 18 | ||
19 | @ViewChild('modal') modal: NgbModal | 19 | @ViewChild('modal', { static: true }) modal: NgbModal |
20 | 20 | ||
21 | @Output() videoBlacklisted = new EventEmitter() | 21 | @Output() videoBlacklisted = new EventEmitter() |
22 | 22 | ||
diff --git a/client/src/app/shared/video/modals/video-download.component.ts b/client/src/app/shared/video/modals/video-download.component.ts index 16f3621b4..4022a11e8 100644 --- a/client/src/app/shared/video/modals/video-download.component.ts +++ b/client/src/app/shared/video/modals/video-download.component.ts | |||
@@ -10,7 +10,7 @@ import { Notifier } from '@app/core' | |||
10 | styleUrls: [ './video-download.component.scss' ] | 10 | styleUrls: [ './video-download.component.scss' ] |
11 | }) | 11 | }) |
12 | export class VideoDownloadComponent { | 12 | export class VideoDownloadComponent { |
13 | @ViewChild('modal') modal: ElementRef | 13 | @ViewChild('modal', { static: true }) modal: ElementRef |
14 | 14 | ||
15 | downloadType: 'direct' | 'torrent' = 'torrent' | 15 | downloadType: 'direct' | 'torrent' = 'torrent' |
16 | resolutionId: number | string = -1 | 16 | resolutionId: number | string = -1 |
diff --git a/client/src/app/shared/video/modals/video-report.component.ts b/client/src/app/shared/video/modals/video-report.component.ts index 725dd020f..1d368ff17 100644 --- a/client/src/app/shared/video/modals/video-report.component.ts +++ b/client/src/app/shared/video/modals/video-report.component.ts | |||
@@ -17,7 +17,7 @@ import { VideoAbuseService } from '@app/shared/video-abuse' | |||
17 | export class VideoReportComponent extends FormReactive implements OnInit { | 17 | export class VideoReportComponent extends FormReactive implements OnInit { |
18 | @Input() video: VideoDetails = null | 18 | @Input() video: VideoDetails = null |
19 | 19 | ||
20 | @ViewChild('modal') modal: NgbModal | 20 | @ViewChild('modal', { static: true }) modal: NgbModal |
21 | 21 | ||
22 | error: string = null | 22 | error: string = null |
23 | 23 | ||
diff --git a/client/src/app/shared/video/video-actions-dropdown.component.ts b/client/src/app/shared/video/video-actions-dropdown.component.ts index 8d4e33697..7f3e25d0a 100644 --- a/client/src/app/shared/video/video-actions-dropdown.component.ts +++ b/client/src/app/shared/video/video-actions-dropdown.component.ts | |||
@@ -29,12 +29,12 @@ export type VideoActionsDisplayType = { | |||
29 | styleUrls: [ './video-actions-dropdown.component.scss' ] | 29 | styleUrls: [ './video-actions-dropdown.component.scss' ] |
30 | }) | 30 | }) |
31 | export class VideoActionsDropdownComponent implements OnChanges { | 31 | export class VideoActionsDropdownComponent implements OnChanges { |
32 | @ViewChild('playlistDropdown') playlistDropdown: NgbDropdown | 32 | @ViewChild('playlistDropdown', { static: false }) playlistDropdown: NgbDropdown |
33 | @ViewChild('playlistAdd') playlistAdd: VideoAddToPlaylistComponent | 33 | @ViewChild('playlistAdd', { static: false }) playlistAdd: VideoAddToPlaylistComponent |
34 | 34 | ||
35 | @ViewChild('videoDownloadModal') videoDownloadModal: VideoDownloadComponent | 35 | @ViewChild('videoDownloadModal', { static: false }) videoDownloadModal: VideoDownloadComponent |
36 | @ViewChild('videoReportModal') videoReportModal: VideoReportComponent | 36 | @ViewChild('videoReportModal', { static: false }) videoReportModal: VideoReportComponent |
37 | @ViewChild('videoBlacklistModal') videoBlacklistModal: VideoBlacklistComponent | 37 | @ViewChild('videoBlacklistModal', { static: false }) videoBlacklistModal: VideoBlacklistComponent |
38 | 38 | ||
39 | @Input() video: Video | VideoDetails | 39 | @Input() video: Video | VideoDetails |
40 | 40 | ||
diff --git a/client/src/app/videos/+video-edit/shared/video-caption-add-modal.component.ts b/client/src/app/videos/+video-edit/shared/video-caption-add-modal.component.ts index 1413e7262..86c6e03e7 100644 --- a/client/src/app/videos/+video-edit/shared/video-caption-add-modal.component.ts +++ b/client/src/app/videos/+video-edit/shared/video-caption-add-modal.component.ts | |||
@@ -18,7 +18,7 @@ export class VideoCaptionAddModalComponent extends FormReactive implements OnIni | |||
18 | 18 | ||
19 | @Output() captionAdded = new EventEmitter<VideoCaptionEdit>() | 19 | @Output() captionAdded = new EventEmitter<VideoCaptionEdit>() |
20 | 20 | ||
21 | @ViewChild('modal') modal: ElementRef | 21 | @ViewChild('modal', { static: true }) modal: ElementRef |
22 | 22 | ||
23 | videoCaptionLanguages: VideoConstant<string>[] = [] | 23 | videoCaptionLanguages: VideoConstant<string>[] = [] |
24 | 24 | ||
diff --git a/client/src/app/videos/+video-edit/shared/video-edit.component.ts b/client/src/app/videos/+video-edit/shared/video-edit.component.ts index cea352bfb..d0d5e2a2b 100644 --- a/client/src/app/videos/+video-edit/shared/video-edit.component.ts +++ b/client/src/app/videos/+video-edit/shared/video-edit.component.ts | |||
@@ -29,7 +29,7 @@ export class VideoEditComponent implements OnInit, OnDestroy { | |||
29 | @Input() videoCaptions: (VideoCaptionEdit & { captionPath?: string })[] = [] | 29 | @Input() videoCaptions: (VideoCaptionEdit & { captionPath?: string })[] = [] |
30 | @Input() waitTranscodingEnabled = true | 30 | @Input() waitTranscodingEnabled = true |
31 | 31 | ||
32 | @ViewChild('videoCaptionAddModal') videoCaptionAddModal: VideoCaptionAddModalComponent | 32 | @ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent |
33 | 33 | ||
34 | // So that it can be accessed in the template | 34 | // So that it can be accessed in the template |
35 | readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY | 35 | readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY |
diff --git a/client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts b/client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts index e47624dd6..74e1e755b 100644 --- a/client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts +++ b/client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts | |||
@@ -25,7 +25,7 @@ import { scrollToTop } from '@app/shared/misc/utils' | |||
25 | export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate { | 25 | export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate { |
26 | @Output() firstStepDone = new EventEmitter<string>() | 26 | @Output() firstStepDone = new EventEmitter<string>() |
27 | @Output() firstStepError = new EventEmitter<void>() | 27 | @Output() firstStepError = new EventEmitter<void>() |
28 | @ViewChild('torrentfileInput') torrentfileInput: ElementRef<HTMLInputElement> | 28 | @ViewChild('torrentfileInput', { static: false }) torrentfileInput: ElementRef<HTMLInputElement> |
29 | 29 | ||
30 | magnetUri = '' | 30 | magnetUri = '' |
31 | 31 | ||
diff --git a/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts b/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts index 69fa13a2f..23b79edd3 100644 --- a/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts +++ b/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts | |||
@@ -27,7 +27,7 @@ import { scrollToTop } from '@app/shared/misc/utils' | |||
27 | export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy, CanComponentDeactivate { | 27 | export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy, CanComponentDeactivate { |
28 | @Output() firstStepDone = new EventEmitter<string>() | 28 | @Output() firstStepDone = new EventEmitter<string>() |
29 | @Output() firstStepError = new EventEmitter<void>() | 29 | @Output() firstStepError = new EventEmitter<void>() |
30 | @ViewChild('videofileInput') videofileInput: ElementRef<HTMLInputElement> | 30 | @ViewChild('videofileInput', { static: false }) videofileInput: ElementRef<HTMLInputElement> |
31 | 31 | ||
32 | // So that it can be accessed in the template | 32 | // So that it can be accessed in the template |
33 | readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY | 33 | readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY |
diff --git a/client/src/app/videos/+video-edit/video-add.component.ts b/client/src/app/videos/+video-edit/video-add.component.ts index 01fdfcb66..193de441d 100644 --- a/client/src/app/videos/+video-edit/video-add.component.ts +++ b/client/src/app/videos/+video-edit/video-add.component.ts | |||
@@ -11,9 +11,9 @@ import { VideoImportTorrentComponent } from '@app/videos/+video-edit/video-add-c | |||
11 | styleUrls: [ './video-add.component.scss' ] | 11 | styleUrls: [ './video-add.component.scss' ] |
12 | }) | 12 | }) |
13 | export class VideoAddComponent implements CanComponentDeactivate { | 13 | export class VideoAddComponent implements CanComponentDeactivate { |
14 | @ViewChild('videoUpload') videoUpload: VideoUploadComponent | 14 | @ViewChild('videoUpload', { static: false }) videoUpload: VideoUploadComponent |
15 | @ViewChild('videoImportUrl') videoImportUrl: VideoImportUrlComponent | 15 | @ViewChild('videoImportUrl', { static: false }) videoImportUrl: VideoImportUrlComponent |
16 | @ViewChild('videoImportTorrent') videoImportTorrent: VideoImportTorrentComponent | 16 | @ViewChild('videoImportTorrent', { static: false }) videoImportTorrent: VideoImportTorrentComponent |
17 | 17 | ||
18 | secondStepType: 'upload' | 'import-url' | 'import-torrent' | 18 | secondStepType: 'upload' | 'import-url' | 'import-torrent' |
19 | videoName: string | 19 | videoName: string |
diff --git a/client/src/app/videos/+video-watch/comment/video-comment-add.component.ts b/client/src/app/videos/+video-watch/comment/video-comment-add.component.ts index ac1d02d94..8cdd37680 100644 --- a/client/src/app/videos/+video-watch/comment/video-comment-add.component.ts +++ b/client/src/app/videos/+video-watch/comment/video-comment-add.component.ts | |||
@@ -27,8 +27,8 @@ export class VideoCommentAddComponent extends FormReactive implements OnInit { | |||
27 | 27 | ||
28 | @Output() commentCreated = new EventEmitter<VideoCommentCreate>() | 28 | @Output() commentCreated = new EventEmitter<VideoCommentCreate>() |
29 | 29 | ||
30 | @ViewChild('visitorModal') visitorModal: NgbModal | 30 | @ViewChild('visitorModal', { static: true }) visitorModal: NgbModal |
31 | @ViewChild('textarea') textareaElement: ElementRef | 31 | @ViewChild('textarea', { static: true }) textareaElement: ElementRef |
32 | 32 | ||
33 | addingComment = false | 33 | addingComment = false |
34 | 34 | ||
diff --git a/client/src/app/videos/+video-watch/comment/video-comments.component.ts b/client/src/app/videos/+video-watch/comment/video-comments.component.ts index 5bafc55e5..64bd18072 100644 --- a/client/src/app/videos/+video-watch/comment/video-comments.component.ts +++ b/client/src/app/videos/+video-watch/comment/video-comments.component.ts | |||
@@ -20,7 +20,7 @@ import { HooksService } from '@app/core/plugins/hooks.service' | |||
20 | styleUrls: ['./video-comments.component.scss'] | 20 | styleUrls: ['./video-comments.component.scss'] |
21 | }) | 21 | }) |
22 | export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy { | 22 | export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy { |
23 | @ViewChild('commentHighlightBlock') commentHighlightBlock: ElementRef | 23 | @ViewChild('commentHighlightBlock', { static: false }) commentHighlightBlock: ElementRef |
24 | @Input() video: VideoDetails | 24 | @Input() video: VideoDetails |
25 | @Input() user: User | 25 | @Input() user: User |
26 | 26 | ||
diff --git a/client/src/app/videos/+video-watch/modal/video-share.component.html b/client/src/app/videos/+video-watch/modal/video-share.component.html index 82e59d04d..e0be9f265 100644 --- a/client/src/app/videos/+video-watch/modal/video-share.component.html +++ b/client/src/app/videos/+video-watch/modal/video-share.component.html | |||
@@ -27,7 +27,7 @@ | |||
27 | <ngb-tab i18n-title title="QR-Code" id="qrcode"> | 27 | <ngb-tab i18n-title title="QR-Code" id="qrcode"> |
28 | <ng-template ngbTabContent> | 28 | <ng-template ngbTabContent> |
29 | <div class="tab-content"> | 29 | <div class="tab-content"> |
30 | <ngx-qrcode qrc-element-type="url" [qrc-value]="getVideoUrl()" qrc-errorCorrectionLevel="Q"></ngx-qrcode> | 30 | <qrcode [qrdata]="getVideoUrl()" size="256" level="Q"></qrcode> |
31 | </div> | 31 | </div> |
32 | </ng-template> | 32 | </ng-template> |
33 | </ngb-tab> | 33 | </ngb-tab> |
diff --git a/client/src/app/videos/+video-watch/modal/video-share.component.ts b/client/src/app/videos/+video-watch/modal/video-share.component.ts index eaaf6b902..f45afccfb 100644 --- a/client/src/app/videos/+video-watch/modal/video-share.component.ts +++ b/client/src/app/videos/+video-watch/modal/video-share.component.ts | |||
@@ -30,7 +30,7 @@ type Customizations = { | |||
30 | styleUrls: [ './video-share.component.scss' ] | 30 | styleUrls: [ './video-share.component.scss' ] |
31 | }) | 31 | }) |
32 | export class VideoShareComponent { | 32 | export class VideoShareComponent { |
33 | @ViewChild('modal') modal: ElementRef | 33 | @ViewChild('modal', { static: true }) modal: ElementRef |
34 | 34 | ||
35 | @Input() video: VideoDetails = null | 35 | @Input() video: VideoDetails = null |
36 | @Input() videoCaptions: VideoCaption[] = [] | 36 | @Input() videoCaptions: VideoCaption[] = [] |
diff --git a/client/src/app/videos/+video-watch/modal/video-support.component.ts b/client/src/app/videos/+video-watch/modal/video-support.component.ts index 5e7afa012..b56a51fbf 100644 --- a/client/src/app/videos/+video-watch/modal/video-support.component.ts +++ b/client/src/app/videos/+video-watch/modal/video-support.component.ts | |||
@@ -11,7 +11,7 @@ import { MarkdownService } from '@app/shared/renderer' | |||
11 | export class VideoSupportComponent { | 11 | export class VideoSupportComponent { |
12 | @Input() video: VideoDetails = null | 12 | @Input() video: VideoDetails = null |
13 | 13 | ||
14 | @ViewChild('modal') modal: NgbModal | 14 | @ViewChild('modal', { static: true }) modal: NgbModal |
15 | 15 | ||
16 | videoHTMLSupport = '' | 16 | videoHTMLSupport = '' |
17 | 17 | ||
diff --git a/client/src/app/videos/+video-watch/video-watch.component.ts b/client/src/app/videos/+video-watch/video-watch.component.ts index 228c45a06..027c2b026 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.ts +++ b/client/src/app/videos/+video-watch/video-watch.component.ts | |||
@@ -43,10 +43,10 @@ import { HooksService } from '@app/core/plugins/hooks.service' | |||
43 | export class VideoWatchComponent implements OnInit, OnDestroy { | 43 | export class VideoWatchComponent implements OnInit, OnDestroy { |
44 | private static LOCAL_STORAGE_PRIVACY_CONCERN_KEY = 'video-watch-privacy-concern' | 44 | private static LOCAL_STORAGE_PRIVACY_CONCERN_KEY = 'video-watch-privacy-concern' |
45 | 45 | ||
46 | @ViewChild('videoWatchPlaylist') videoWatchPlaylist: VideoWatchPlaylistComponent | 46 | @ViewChild('videoWatchPlaylist', { static: true }) videoWatchPlaylist: VideoWatchPlaylistComponent |
47 | @ViewChild('videoShareModal') videoShareModal: VideoShareComponent | 47 | @ViewChild('videoShareModal', { static: false }) videoShareModal: VideoShareComponent |
48 | @ViewChild('videoSupportModal') videoSupportModal: VideoSupportComponent | 48 | @ViewChild('videoSupportModal', { static: false }) videoSupportModal: VideoSupportComponent |
49 | @ViewChild('subscribeButton') subscribeButton: SubscribeButtonComponent | 49 | @ViewChild('subscribeButton', { static: false }) subscribeButton: SubscribeButtonComponent |
50 | 50 | ||
51 | player: any | 51 | player: any |
52 | playerElement: HTMLVideoElement | 52 | playerElement: HTMLVideoElement |
diff --git a/client/src/app/videos/+video-watch/video-watch.module.ts b/client/src/app/videos/+video-watch/video-watch.module.ts index 67596a3da..f083aca4d 100644 --- a/client/src/app/videos/+video-watch/video-watch.module.ts +++ b/client/src/app/videos/+video-watch/video-watch.module.ts | |||
@@ -8,17 +8,17 @@ import { VideoCommentsComponent } from './comment/video-comments.component' | |||
8 | import { VideoShareComponent } from './modal/video-share.component' | 8 | import { VideoShareComponent } from './modal/video-share.component' |
9 | import { VideoWatchRoutingModule } from './video-watch-routing.module' | 9 | import { VideoWatchRoutingModule } from './video-watch-routing.module' |
10 | import { VideoWatchComponent } from './video-watch.component' | 10 | import { VideoWatchComponent } from './video-watch.component' |
11 | import { NgxQRCodeModule } from 'ngx-qrcode2' | ||
12 | import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap' | 11 | import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap' |
13 | import { RecommendationsModule } from '@app/videos/recommendations/recommendations.module' | 12 | import { RecommendationsModule } from '@app/videos/recommendations/recommendations.module' |
14 | import { VideoWatchPlaylistComponent } from '@app/videos/+video-watch/video-watch-playlist.component' | 13 | import { VideoWatchPlaylistComponent } from '@app/videos/+video-watch/video-watch-playlist.component' |
14 | import { QRCodeModule } from 'angularx-qrcode' | ||
15 | 15 | ||
16 | @NgModule({ | 16 | @NgModule({ |
17 | imports: [ | 17 | imports: [ |
18 | VideoWatchRoutingModule, | 18 | VideoWatchRoutingModule, |
19 | SharedModule, | 19 | SharedModule, |
20 | NgbTooltipModule, | 20 | NgbTooltipModule, |
21 | NgxQRCodeModule, | 21 | QRCodeModule, |
22 | RecommendationsModule | 22 | RecommendationsModule |
23 | ], | 23 | ], |
24 | 24 | ||
diff --git a/client/src/app/videos/videos-routing.module.ts b/client/src/app/videos/videos-routing.module.ts index 505173a5b..bc7520207 100644 --- a/client/src/app/videos/videos-routing.module.ts +++ b/client/src/app/videos/videos-routing.module.ts | |||
@@ -77,7 +77,7 @@ const videosRoutes: Routes = [ | |||
77 | }, | 77 | }, |
78 | { | 78 | { |
79 | path: 'upload', | 79 | path: 'upload', |
80 | loadChildren: 'app/videos/+video-edit/video-add.module#VideoAddModule', | 80 | loadChildren: () => import('app/videos/+video-edit/video-add.module').then(m => m.VideoAddModule), |
81 | data: { | 81 | data: { |
82 | meta: { | 82 | meta: { |
83 | title: 'Upload a video' | 83 | title: 'Upload a video' |
@@ -86,7 +86,7 @@ const videosRoutes: Routes = [ | |||
86 | }, | 86 | }, |
87 | { | 87 | { |
88 | path: 'update/:uuid', | 88 | path: 'update/:uuid', |
89 | loadChildren: 'app/videos/+video-edit/video-update.module#VideoUpdateModule', | 89 | loadChildren: () => import('app/videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule), |
90 | data: { | 90 | data: { |
91 | meta: { | 91 | meta: { |
92 | title: 'Edit a video' | 92 | title: 'Edit a video' |
@@ -95,7 +95,7 @@ const videosRoutes: Routes = [ | |||
95 | }, | 95 | }, |
96 | { | 96 | { |
97 | path: 'watch', | 97 | path: 'watch', |
98 | loadChildren: 'app/videos/+video-watch/video-watch.module#VideoWatchModule', | 98 | loadChildren: () => import('app/videos/+video-watch/video-watch.module').then(m => m.VideoWatchModule), |
99 | data: { | 99 | data: { |
100 | preload: 3000 | 100 | preload: 3000 |
101 | } | 101 | } |