@vkontakte/videoplayer 1.1.86 → 1.1.87-dev.04ce2cd1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/es2015.cjs +423 -56
  2. package/es2015.esm.js +423 -56
  3. package/es2018.cjs +423 -56
  4. package/es2018.esm.js +423 -56
  5. package/es2024.cjs +423 -56
  6. package/es2024.esm.js +423 -56
  7. package/esnext.cjs +423 -56
  8. package/esnext.esm.js +423 -56
  9. package/evergreen.esm.js +423 -56
  10. package/package.json +5 -5
  11. package/types/VKVideoPlayer/HTMLElement.d.ts +1 -1
  12. package/types/VKVideoPlayer/index.svelte.d.ts +173 -173
  13. package/types/components/Ads/admanWrapper.d.ts +79 -75
  14. package/types/components/Ads/types.d.ts +27 -27
  15. package/types/components/Controls/contants/desktopButtonsLeftIds.d.ts +8 -8
  16. package/types/components/Controls/contants/desktopButtonsLeftWeights.d.ts +2 -4
  17. package/types/components/Controls/contants/desktopButtonsRightIds.d.ts +8 -8
  18. package/types/components/Controls/contants/desktopButtonsRightWeights.d.ts +2 -4
  19. package/types/components/Controls/types.d.ts +27 -27
  20. package/types/components/Controls/utils/isInnerButtonGuard.d.ts +1 -1
  21. package/types/components/Icons/constants.d.ts +5 -5
  22. package/types/components/Icons/utils.d.ts +1 -1
  23. package/types/components/Menus/constants/contextMenuItemIds.d.ts +10 -10
  24. package/types/components/Menus/constants/contextMenuItemWeights.d.ts +2 -4
  25. package/types/components/Menus/constants/index.d.ts +4 -4
  26. package/types/components/Menus/constants/openSubMenuItemsIds.d.ts +1 -1
  27. package/types/components/Menus/constants/settingsMenuItemIds.d.ts +10 -10
  28. package/types/components/Menus/constants/settingsMenuItemWeights.d.ts +2 -4
  29. package/types/components/Menus/constants/subMenuIds.d.ts +6 -6
  30. package/types/components/Menus/subMenuTabs/rootMenuItems.d.ts +26 -26
  31. package/types/components/Menus/subMenuTabs/sharedMenuItems.d.ts +7 -7
  32. package/types/components/Menus/subMenuTabs/subMenuItems.d.ts +4 -10
  33. package/types/components/Menus/subMenuTabs/types.d.ts +108 -108
  34. package/types/components/Menus/subMenuTabs/utils.d.ts +2 -2
  35. package/types/components/Menus/types.d.ts +64 -61
  36. package/types/components/Menus/utils/getCurrentQualityDisplayValue.d.ts +12 -12
  37. package/types/components/Menus/utils/getQualityIcon.d.ts +2 -2
  38. package/types/components/Menus/utils/getSubMenusStack.svelte.d.ts +7 -7
  39. package/types/components/Menus/utils/menuNavigation.d.ts +5 -5
  40. package/types/components/Root/types.d.ts +79 -79
  41. package/types/components/Root/utils.d.ts +2 -2
  42. package/types/components/Timeline/PreviewTrack/useTransitionToPreviewTrack.svelte.d.ts +15 -15
  43. package/types/components/Timeline/consts.d.ts +2 -2
  44. package/types/components/shared/interpolateUtils.d.ts +2 -2
  45. package/types/config.d.ts +270 -260
  46. package/types/constans/controls.d.ts +21 -21
  47. package/types/constans/grid.d.ts +9 -9
  48. package/types/constans/index.d.ts +8 -8
  49. package/types/constans/interactives.d.ts +4 -4
  50. package/types/constans/keyboard.d.ts +43 -48
  51. package/types/index.d.ts +16 -16
  52. package/types/services/statistics.d.ts +13 -13
  53. package/types/store/index.d.ts +391 -391
  54. package/types/store/micro/base.d.ts +6 -6
  55. package/types/store/micro/fakeIsPlaying.d.ts +8 -10
  56. package/types/store/micro/graphIsOpened.d.ts +11 -13
  57. package/types/store/micro/index.d.ts +1 -1
  58. package/types/store/micro/interactiveControlsOpacity.d.ts +8 -10
  59. package/types/store/micro/notifications.d.ts +7 -10
  60. package/types/store/micro/pictureInPicture.d.ts +6 -9
  61. package/types/store/micro/seekToInteractiveDisabledTooltip.d.ts +8 -7
  62. package/types/store/micro/showInteractiveTimeIndicatorTooltip.d.ts +13 -12
  63. package/types/store/utils.d.ts +36 -36
  64. package/types/translation/index.d.ts +2 -2
  65. package/types/translation/labels.d.ts +1 -1
  66. package/types/translation/packs/en.d.ts +1 -1
  67. package/types/translation/packs/ru.d.ts +1 -1
  68. package/types/translation/types.d.ts +5 -5
  69. package/types/types/index.d.ts +534 -516
  70. package/types/types/svg.d.d.ts +5 -0
  71. package/types/utils/CaptionsPrepared.d.ts +15 -15
  72. package/types/utils/WebVttParser.d.ts +11 -11
  73. package/types/utils/attachments/defferedDisableByCondition.d.ts +3 -3
  74. package/types/utils/changeVolume.d.ts +6 -6
  75. package/types/utils/elementHelpers.d.ts +2 -2
  76. package/types/utils/findCurrentSubtltlePhrase.d.ts +1 -1
  77. package/types/utils/fullscreen.d.ts +14 -14
  78. package/types/utils/getActualEpisode.d.ts +7 -7
  79. package/types/utils/getControlInfo.d.ts +5 -7
  80. package/types/utils/getHotKeyMapData.d.ts +1 -1
  81. package/types/utils/grid.d.ts +1 -1
  82. package/types/utils/hooks/useIosSafariFullscreen.d.ts +2 -2
  83. package/types/utils/hooks/useIosSafariFullscreenSubtitles.d.ts +3 -3
  84. package/types/utils/keyboardHandleCases.d.ts +1 -1
  85. package/types/utils/notificationShowManager.d.ts +7 -6
  86. package/types/utils/roundFps.d.ts +1 -1
  87. package/types/utils/sanitizeHtml.d.ts +3 -3
  88. package/types/utils/sorts.d.ts +2 -2
  89. package/types/utils/stack/index.d.ts +7 -7
  90. package/types/utils/stack/node.d.ts +3 -3
  91. package/types/utils/subtitles.d.ts +8 -8
  92. package/types/utils/timeout.d.ts +2 -2
  93. package/types/utils/updatePlayerControlBlocks.d.ts +2 -2
  94. package/types/utils/updatePlayerControlsInfo.d.ts +2 -2
  95. package/types/utils/userSettings.d.ts +26 -21
  96. package/types/utils/videoConfig.d.ts +6 -2
  97. package/types/utils/volumeChange.d.ts +1 -1
  98. package/types/utils/webAPI/annotationsApi/annotationsApi.d.ts +31 -31
  99. package/types/utils/webAPI/annotationsApi/errors.d.ts +1 -1
  100. package/types/utils/webAPI/focusLock.d.ts +30 -30
  101. package/types/utils/webAPI/focusManager.d.ts +15 -15
  102. package/types/utils/webAPI/language.d.ts +1 -1
  103. package/types/utils/webAPI/mediaSessionApi.d.ts +14 -14
  104. package/types/utils/webAPI/pictureInPictureApi/documentPictureInPictureApi.svelte.d.ts +41 -41
  105. package/types/utils/webAPI/pictureInPictureApi/factory.d.ts +2 -2
  106. package/types/utils/webAPI/pictureInPictureApi/index.d.ts +4 -4
  107. package/types/utils/webAPI/pictureInPictureApi/pictureInPictureApi.d.ts +46 -46
  108. package/types/utils/webAPI/pictureInPictureApi/types.d.ts +4 -4
  109. package/types/utils/webAPI/pictureInPictureApi/utils.d.ts +3 -3
  110. package/types/utils/webAPI/slotsApi.d.ts +41 -41
@@ -1,644 +1,662 @@
1
- import type { VideoQuality, VideoFormat, ISources, IExternalTextTrack, IAudioStream } from '@vkontakte/videoplayer-core';
2
- import type { IValueObservable, InterfaceLanguage, Subscription, IRectangle, DevNullEntry } from '@vkontakte/videoplayer-shared';
3
- import type { Chapter, Manifest, ManifestVideo, VideoInfo, Interactives, IInteractiveOptions } from '@vkontakte/videoplayer-interactive';
4
- import { PlaybackState } from '@vkontakte/videoplayer-core';
5
- import type { MediascopePixelTypes, SeekAction, ThinOneStat } from '@vkontakte/videoplayer-statistics';
6
- import type { Writable, Readable } from 'svelte/store';
7
- import type { IDpipConfig, ISDKConfig, IUIConfig } from '../config';
8
- import type { IStore } from '../store';
9
- import { Controls, GridTypes, type SeekToInteractiveDisabledTooltipKey } from '../constans';
10
- import type { Key } from '../translation/types';
11
- import type { IUIStatistics } from '../services/statistics';
12
- import type { AdditionalContextMenuItem, AdditionalSettingsMenuItem } from '../components/Menus/subMenuTabs/types';
13
- import type { AdditionalDesktopControlPanelButton } from '../components/Controls/types';
14
- import type { AdmanInitParams } from '../components/Ads/types';
1
+ import type { VideoQuality, VideoFormat, ISources, IExternalTextTrack, IAudioStream } from "@vkontakte/videoplayer-core";
2
+ import type { IValueObservable, InterfaceLanguage, Subscription, IRectangle, DevNullEntry } from "@vkontakte/videoplayer-shared";
3
+ import type { Chapter, Manifest, ManifestVideo, VideoInfo, Interactives, IInteractiveOptions } from "@vkontakte/videoplayer-interactive";
4
+ import type { PlaybackState } from "@vkontakte/videoplayer-core";
5
+ import type { MediascopePixelTypes, SeekAction, ThinOneStat } from "@vkontakte/videoplayer-statistics";
6
+ import type { Writable, Readable } from "svelte/store";
7
+ import type { IDpipConfig, ISDKConfig, IUIConfig } from "../config";
8
+ import type { IStore } from "../store";
9
+ import type { Controls, GridTypes } from "../constans";
10
+ import { type SeekToInteractiveDisabledTooltipKey } from "../constans";
11
+ import type { Key } from "../translation/types";
12
+ import type { IUIStatistics } from "../services/statistics";
13
+ import type { AdditionalContextMenuItem, AdditionalSettingsMenuItem } from "../components/Menus/subMenuTabs/types";
14
+ import type { AdditionalDesktopControlPanelButton } from "../components/Controls/types";
15
+ import type { AdmanInitParams } from "../components/Ads/types";
15
16
  export declare const enum UIType {
16
- DESKTOP = "desktop",
17
- MOBILE = "mobile"
17
+ DESKTOP = "desktop",
18
+ MOBILE = "mobile"
18
19
  }
19
20
  export declare const enum AdditionalVideoQuality {
20
- AUTO = "auto"
21
+ AUTO = "auto"
21
22
  }
22
23
  export type VideoQualityUI = VideoQuality | AdditionalVideoQuality;
24
+ export type ControlWillChange = "bottom";
25
+ export type TransitionInfo = {
26
+ duration: string;
27
+ timingFunction: string;
28
+ };
29
+ export type ControlWillChangeParams = {
30
+ type: ControlWillChange;
31
+ from: IControlInfo;
32
+ to: IControlInfo;
33
+ transitionInfo?: TransitionInfo;
34
+ };
23
35
  export interface IVKVideoPlayerCallbacks {
24
- onInited?: () => void;
25
- onDomReady?: () => void;
26
- onStarted?: () => void;
27
- onEnded?: () => void;
28
- onPlay?: () => void;
29
- onLooped?: () => void;
30
- onPause?: () => void;
31
- onVolumeChange?: (volume: number) => void;
32
- onFullscreenEnter?: () => void;
33
- onFullscreenExit?: () => void;
34
- onMute?: () => void;
35
- onUnmute?: (volume: number) => void;
36
- onSubtitleOff?: () => void;
37
- onSubtitleOn?: (lang: string, id: string) => void;
38
- onAvailableSubtitlesChanged?: (subtitles: AvailableVideoSubtitle[]) => void;
39
- onAvailableAudioStreamsChanged?: (audioStreams: AvailableAudioStream[]) => void;
40
- onAudioStreamChanged?: (id: string) => void;
41
- onAudioDisabledHint?: () => void;
42
- onAudioDoesNotExistHint?: () => void;
43
- onEpisodeClicked?: (byKeyboard: boolean) => void;
44
- onEpisodeChanged?: (episode: IVideoEpisode) => void;
45
- onTimeupdate?: (duration: number, position: number) => void;
46
- onSeek?: (from: number, to: number, type: ThinOneStat.ActionSeekType | SeekAction) => void;
47
- onCrashed?: (reason?: string) => void;
48
- onRecoverableError?: (reason?: string) => void;
49
- onCurrentFormatChanged?: (currentFormat: VideoFormat | undefined) => void;
50
- onThroughputEstimationChanged?: (throughputEstimation: number | undefined) => void;
51
- onVideoBitrateChanged?: (videoBitrate: number | undefined) => void;
52
- onPlayerPhaseChanged?: (value?: PlayerPhase) => void;
53
- onPlaybackStateChanged?: (value?: PlaybackState) => void;
54
- onIsLiveChanged?: (value?: boolean) => void;
55
- onIsActiveLiveChanged?: (value?: boolean) => void;
56
- onIsAudioAvailableChanged?: (value?: boolean) => void;
57
- onCopyVideoLink?: (withTimestamp: boolean, currentTimestamp: number) => string;
58
- onOpenHotKeyMap?: (mapData: HotKeyMapData) => void;
59
- onCurrentQualityChanged?: (currentQuality: VideoQuality | undefined) => void;
60
- onAvailableQualitiesChanged?: (availableQualities: VideoQuality[]) => void;
61
- onAudioLanguagesAvailable?: () => void;
62
- onPiPEnter?: () => void;
63
- onPiPExit?: () => void;
64
- onLiveTime?: (liveTime: number | undefined) => void;
65
- onLiveEnded?: () => void;
66
- onReplayInteractiveVideo?: () => void;
67
- onInteractiveChapterChanged?: (chapter: Chapter, video: ManifestVideo) => void;
68
- onInteractiveHistoryChanged?: (chapterIds: string[]) => void;
69
- onDisabledInteractiveClick?: () => void;
70
- onDisabledPlayPrevChapterClick?: (message: string | undefined) => void;
71
- onDisabledSeekToInteractiveClick?: (message: string | undefined) => void;
72
- onDisabledTimelineClick?: (position: number) => void;
73
- onInteractiveTimeIndicatorClick?: () => void;
74
- onInteractiveTimeIndicatorHintDeactivated?: () => void;
75
- onExternalFullscreenExit?: () => void;
76
- onPrevVideoClick?: () => boolean;
77
- onNextVideoClick?: () => boolean;
78
- onNextVideoAnnouncementShow?: () => void;
79
- onNextVideoAnnouncementClick?: () => void;
80
- onNextVideoAnnouncementAuto?: () => void;
81
- onNextVideoAnnouncementCancel?: () => void;
82
- onSetAutoplayNextEnabled?: (state: boolean) => void;
83
- onTrafficSavingEnabledChanged?: (isEnabled: boolean) => void;
84
- onHighQualityEnabledChanged?: (isEnabled: boolean) => void;
85
- onAutoQualityEnabledChanged?: (isEnabled: boolean) => void;
86
- onCurrentPlaybackRateChanged?: (rate: number) => void;
87
- onStalledChanged?: (isStalled: boolean) => void;
88
- onLogoClicked?: () => void;
89
- onCopyEmbedCodeClicked?: () => string;
90
- onVSIDChanged?: (vsid?: string) => void;
91
- onAutoplaySoundProhibited?: () => void;
92
- onDevNullLog?: (entry: DevNullEntry) => void;
93
- onTitleClicked?: () => void;
94
- onRichSeekActiveChanged?: (active: boolean) => void;
95
- uiInfo?: {
96
- onUpcomingLiveViewStateChanged?: (value: IUpcomingLiveViewControlInfo) => void;
97
- onControlsVisibleChanged?: (value?: boolean) => void;
98
- onIsMobileChanged?: (value?: boolean) => void;
99
- onPrevButtonChanged?: (value?: IControlInfo) => void;
100
- onPrevButtonMouseEnter?: (value?: IControlInfo) => void;
101
- onPrevButtonMouseLeave?: (value?: IControlInfo) => void;
102
- onPlayButtonChanged?: (value?: IControlInfo) => void;
103
- onReplayButtonChanged?: (value?: IControlInfo) => void;
104
- onNextButtonChanged?: (value?: IControlInfo) => void;
105
- onNextButtonMouseEnter?: (value?: IControlInfo) => void;
106
- onNextButtonMouseLeave?: (value?: IControlInfo) => void;
107
- onPlayPrevChapterChanged?: (value?: IControlInfo) => void;
108
- onSeekToInteractiveButtonChanged?: (value?: IControlInfo) => void;
109
- onGraphButtonChanged?: (value?: IControlInfo) => void;
110
- onLiveButtonChanged?: (value?: IControlInfo) => void;
111
- onTimeUpdateChanged?: (value?: IControlInfo) => void;
112
- onEpisodesChanged?: (value?: IControlInfo) => void;
113
- onVolumeChanged?: (value?: IControlInfo) => void;
114
- onSubtitlesChanged?: (value?: IControlInfo) => void;
115
- onSettingsChanged?: (value?: IControlInfo) => void;
116
- onFullscreenChanged?: (value?: IControlInfo) => void;
117
- onChromecastChanged?: (value?: IControlInfo) => void;
118
- onPipChanged?: (value?: IControlInfo) => void;
119
- onTheaterModeChanged?: (value?: IControlInfo) => void;
120
- onVkLogoChanged?: (value?: IControlInfo) => void;
121
- onTimelineChanged?: (value?: IControlInfo) => void;
122
- onTimelineMouseEnter?: () => void;
123
- onTimelineMouseLeave?: () => void;
124
- onInteractiveTimeIndicatorChanged?: (value?: IControlInfo) => void;
125
- onPlayerSizeChanged?: (value?: {
126
- width: number;
127
- height: number;
128
- }) => void;
129
- onReportProblem?: () => void;
130
- onSettingsMenu?: (value: {
131
- name?: string;
132
- visible: boolean;
133
- size: IRectangle;
134
- position: Position;
135
- }) => void;
136
- onLoopedChanged?: (looped: boolean) => void;
137
- onTopLeftControlBlockChanged?: (value?: IControlInfo) => void;
138
- onTopRightControlBlockChanged?: (value?: IControlInfo) => void;
139
- onMiddleControlBlockChanged?: (value?: IControlInfo) => void;
140
- onBottomControlBlockChanged?: (value?: IControlInfo) => void;
141
- onBottomLeftControlBlockChanged?: (value?: IControlInfo) => void;
142
- onBottomRightControlBlockChanged?: (value?: IControlInfo) => void;
143
- onTitleChanged?: (value?: IControlInfo) => void;
144
- };
145
- adsInfo?: {
146
- onLoadStarted?: () => void;
147
- onLoadEnded?: () => void;
148
- onLoadError?: () => void;
149
- onInit?: () => void;
150
- onReady?: () => void;
151
- onStarted?: (adsSection: AdsSection) => void;
152
- onPaused?: () => void;
153
- onResumed?: () => void;
154
- onTimeRemained?: (timeRemained: AdsTimeRemained) => void;
155
- onCompleted?: (adsSection: AdsSection) => void;
156
- onEmpty?: () => void;
157
- onClicked?: (adsSection: AdsSection) => void;
158
- onClosed?: (adsSection: AdsSection) => void;
159
- onError?: (message: string) => void;
160
- };
36
+ onInited?: () => void;
37
+ onDomReady?: () => void;
38
+ onStarted?: () => void;
39
+ onEnded?: () => void;
40
+ onPlay?: () => void;
41
+ onLooped?: () => void;
42
+ onPause?: () => void;
43
+ onVolumeChange?: (volume: number) => void;
44
+ onFullscreenEnter?: () => void;
45
+ onFullscreenExit?: () => void;
46
+ onMute?: () => void;
47
+ onUnmute?: (volume: number) => void;
48
+ onSubtitleOff?: () => void;
49
+ onSubtitleOn?: (lang: string, id: string) => void;
50
+ onAvailableSubtitlesChanged?: (subtitles: AvailableVideoSubtitle[]) => void;
51
+ onAvailableAudioStreamsChanged?: (audioStreams: AvailableAudioStream[]) => void;
52
+ onAudioStreamChanged?: (id: string) => void;
53
+ onAudioDisabledHint?: () => void;
54
+ onAudioDoesNotExistHint?: () => void;
55
+ onEpisodeClicked?: (byKeyboard: boolean) => void;
56
+ onEpisodeChanged?: (episode: IVideoEpisode) => void;
57
+ onTimeupdate?: (duration: number, position: number) => void;
58
+ onSeek?: (from: number, to: number, type: ThinOneStat.ActionSeekType | SeekAction) => void;
59
+ onCrashed?: (reason?: string) => void;
60
+ onRecoverableError?: (reason?: string) => void;
61
+ onCurrentFormatChanged?: (currentFormat: VideoFormat | undefined) => void;
62
+ onThroughputEstimationChanged?: (throughputEstimation: number | undefined) => void;
63
+ onVideoBitrateChanged?: (videoBitrate: number | undefined) => void;
64
+ onPlayerPhaseChanged?: (value?: PlayerPhase) => void;
65
+ onPlaybackStateChanged?: (value?: PlaybackState) => void;
66
+ onIsLiveChanged?: (value?: boolean) => void;
67
+ onIsActiveLiveChanged?: (value?: boolean) => void;
68
+ onIsAudioAvailableChanged?: (value?: boolean) => void;
69
+ onCopyVideoLink?: (withTimestamp: boolean, currentTimestamp: number) => string;
70
+ onOpenHotKeyMap?: (mapData: HotKeyMapData) => void;
71
+ onCurrentQualityChanged?: (currentQuality: VideoQuality | undefined) => void;
72
+ onAvailableQualitiesChanged?: (availableQualities: VideoQuality[]) => void;
73
+ onAudioLanguagesAvailable?: () => void;
74
+ onPiPEnter?: () => void;
75
+ onPiPExit?: () => void;
76
+ onLiveTime?: (liveTime: number | undefined) => void;
77
+ onLiveEnded?: () => void;
78
+ onReplayInteractiveVideo?: () => void;
79
+ onInteractiveChapterChanged?: (chapter: Chapter, video: ManifestVideo) => void;
80
+ onInteractiveHistoryChanged?: (chapterIds: string[]) => void;
81
+ onDisabledInteractiveClick?: () => void;
82
+ onDisabledPlayPrevChapterClick?: (message: string | undefined) => void;
83
+ onDisabledSeekToInteractiveClick?: (message: string | undefined) => void;
84
+ onDisabledTimelineClick?: (position: number) => void;
85
+ onInteractiveTimeIndicatorClick?: () => void;
86
+ onInteractiveTimeIndicatorHintDeactivated?: () => void;
87
+ onExternalFullscreenExit?: () => void;
88
+ onPrevVideoClick?: () => boolean;
89
+ onNextVideoClick?: () => boolean;
90
+ onNextVideoAnnouncementShow?: () => void;
91
+ onNextVideoAnnouncementClick?: () => void;
92
+ onNextVideoAnnouncementAuto?: () => void;
93
+ onNextVideoAnnouncementCancel?: () => void;
94
+ onSetAutoplayNextEnabled?: (state: boolean) => void;
95
+ onTrafficSavingEnabledChanged?: (isEnabled: boolean) => void;
96
+ onHighQualityEnabledChanged?: (isEnabled: boolean) => void;
97
+ onAutoQualityEnabledChanged?: (isEnabled: boolean) => void;
98
+ onCurrentPlaybackRateChanged?: (rate: number) => void;
99
+ onStalledChanged?: (isStalled: boolean) => void;
100
+ onLogoClicked?: () => void;
101
+ onCopyEmbedCodeClicked?: () => string;
102
+ onVSIDChanged?: (vsid?: string) => void;
103
+ onAutoplaySoundProhibited?: () => void;
104
+ onDevNullLog?: (entry: DevNullEntry) => void;
105
+ onTitleClicked?: () => void;
106
+ onRichSeekActiveChanged?: (active: boolean) => void;
107
+ uiInfo?: {
108
+ onUpcomingLiveViewStateChanged?: (value: IUpcomingLiveViewControlInfo) => void;
109
+ onControlsVisibleChanged?: (value?: boolean) => void;
110
+ onIsMobileChanged?: (value?: boolean) => void;
111
+ onPrevButtonChanged?: (value?: IControlInfo) => void;
112
+ onPrevButtonMouseEnter?: (value?: IControlInfo) => void;
113
+ onPrevButtonMouseLeave?: (value?: IControlInfo) => void;
114
+ onPlayButtonChanged?: (value?: IControlInfo) => void;
115
+ onReplayButtonChanged?: (value?: IControlInfo) => void;
116
+ onNextButtonChanged?: (value?: IControlInfo) => void;
117
+ onNextButtonMouseEnter?: (value?: IControlInfo) => void;
118
+ onNextButtonMouseLeave?: (value?: IControlInfo) => void;
119
+ onPlayPrevChapterChanged?: (value?: IControlInfo) => void;
120
+ onSeekToInteractiveButtonChanged?: (value?: IControlInfo) => void;
121
+ onGraphButtonChanged?: (value?: IControlInfo) => void;
122
+ onLiveButtonChanged?: (value?: IControlInfo) => void;
123
+ onTimeUpdateChanged?: (value?: IControlInfo) => void;
124
+ onEpisodesChanged?: (value?: IControlInfo) => void;
125
+ onVolumeChanged?: (value?: IControlInfo) => void;
126
+ onSubtitlesChanged?: (value?: IControlInfo) => void;
127
+ onSettingsChanged?: (value?: IControlInfo) => void;
128
+ onFullscreenChanged?: (value?: IControlInfo) => void;
129
+ onChromecastChanged?: (value?: IControlInfo) => void;
130
+ onPipChanged?: (value?: IControlInfo) => void;
131
+ onTheaterModeChanged?: (value?: IControlInfo) => void;
132
+ onVkLogoChanged?: (value?: IControlInfo) => void;
133
+ onTimelineChanged?: (value?: IControlInfo) => void;
134
+ onTimelineMouseEnter?: () => void;
135
+ onTimelineMouseLeave?: () => void;
136
+ onInteractiveTimeIndicatorChanged?: (value?: IControlInfo) => void;
137
+ onPlayerSizeChanged?: (value?: {
138
+ width: number;
139
+ height: number;
140
+ }) => void;
141
+ onReportProblem?: () => void;
142
+ onSettingsMenu?: (value: {
143
+ name?: string;
144
+ visible: boolean;
145
+ size: IRectangle;
146
+ position: Position;
147
+ }) => void;
148
+ onLoopedChanged?: (looped: boolean) => void;
149
+ onTopLeftControlBlockChanged?: (value?: IControlInfo) => void;
150
+ onTopRightControlBlockChanged?: (value?: IControlInfo) => void;
151
+ onMiddleControlBlockChanged?: (value?: IControlInfo) => void;
152
+ onBottomControlBlockChanged?: (value?: IControlInfo) => void;
153
+ onBottomLeftControlBlockChanged?: (value?: IControlInfo) => void;
154
+ onBottomRightControlBlockChanged?: (value?: IControlInfo) => void;
155
+ onTitleChanged?: (value?: IControlInfo) => void;
156
+ onControlWillChange?: (params: ControlWillChangeParams) => void;
157
+ onPreviewTimelineActiveChanged?: (active: boolean) => void;
158
+ };
159
+ adsInfo?: {
160
+ onLoadStarted?: () => void;
161
+ onLoadEnded?: () => void;
162
+ onLoadError?: () => void;
163
+ onInit?: () => void;
164
+ onReady?: () => void;
165
+ onStarted?: (adsSection: AdsSection) => void;
166
+ onPaused?: () => void;
167
+ onResumed?: () => void;
168
+ onTimeRemained?: (timeRemained: AdsTimeRemained) => void;
169
+ onCompleted?: (adsSection: AdsSection) => void;
170
+ onEmpty?: () => void;
171
+ onClicked?: (adsSection: AdsSection) => void;
172
+ onClosed?: (adsSection: AdsSection) => void;
173
+ onError?: (message: string) => void;
174
+ };
161
175
  }
162
176
  export interface IVKVideoPlayerUICallbacks {
163
- onStarted?: (isMuted: boolean) => void;
177
+ onStarted?: (isMuted: boolean) => void;
164
178
  }
165
179
  export interface IVKVideoPlayerStatistics extends Partial<IUIStatistics> {
166
- config: ISDKConfig['statistics'];
180
+ config: ISDKConfig["statistics"];
167
181
  }
168
182
  export interface IVideoEpisodesNormalizedTimeline {
169
- from: number;
170
- width: number;
171
- loadedWidth: number;
172
- filledWidth: number;
173
- interactive?: boolean;
174
- completed?: boolean;
183
+ from: number;
184
+ width: number;
185
+ loadedWidth: number;
186
+ filledWidth: number;
187
+ interactive?: boolean;
188
+ completed?: boolean;
175
189
  }
176
190
  export interface IVideoEpisode {
177
- time: number;
178
- text: string;
179
- interactive?: boolean;
180
- completed?: boolean;
191
+ time: number;
192
+ text: string;
193
+ interactive?: boolean;
194
+ completed?: boolean;
181
195
  }
182
196
  export interface ITimelinePreviewThumbsData {
183
- countPerImage: number;
184
- countPerRow: number;
185
- countTotal: number;
186
- frameHeight: number;
187
- frameWidth: number;
188
- frequency: number;
189
- isUV: boolean;
190
- links: string[];
191
- }
192
- export type VideoLiveStatus = 'no_video' | 'deleted' | 'waiting' | 'started' | 'finished' | 'upcoming' | 'failed' | 'postlive';
197
+ countPerImage: number;
198
+ countPerRow: number;
199
+ countTotal: number;
200
+ frameHeight: number;
201
+ frameWidth: number;
202
+ frequency: number;
203
+ isUV: boolean;
204
+ links: string[];
205
+ }
206
+ export type VideoLiveStatus = "no_video" | "deleted" | "waiting" | "started" | "finished" | "upcoming" | "failed" | "postlive";
193
207
  export interface IVideoLive {
194
- status: VideoLiveStatus;
195
- startTime?: number;
208
+ status: VideoLiveStatus;
209
+ startTime?: number;
196
210
  }
197
211
  export interface IVideoDataBase {
198
- title: string;
199
- thumbUrl?: string;
200
- unitedVideoId?: number;
201
- /**
202
- * duration используется только для инициализации адмана.
203
- */
204
- duration?: AdmanInitParams['duration'];
205
- adsParams?: AdmanInitParams['params'];
206
- adsExternalApi?: AdmanInitParams['externalApi'];
207
- adsJson?: AdmanInitParams['json'];
208
- videoEpisodes?: IVideoEpisode[];
209
- previewThumbsData?: ITimelinePreviewThumbsData;
210
- isClip?: boolean;
211
- subtitles?: Array<Omit<IExternalTextTrack, 'type'>>;
212
- subtitlesForcedLanguage?: string;
213
- sources?: ISources;
214
- live?: IVideoLive;
212
+ title: string;
213
+ thumbUrl?: string;
214
+ unitedVideoId?: number;
215
+ /**
216
+ * duration используется только для инициализации адмана.
217
+ */
218
+ duration?: AdmanInitParams["duration"];
219
+ adsParams?: AdmanInitParams["params"];
220
+ adsExternalApi?: AdmanInitParams["externalApi"];
221
+ adsJson?: AdmanInitParams["json"];
222
+ videoEpisodes?: IVideoEpisode[];
223
+ previewThumbsData?: ITimelinePreviewThumbsData;
224
+ isClip?: boolean;
225
+ subtitles?: Array<Omit<IExternalTextTrack, "type">>;
226
+ subtitlesForcedLanguage?: string;
227
+ sources?: ISources;
228
+ live?: IVideoLive;
215
229
  }
216
230
  export interface IVideoDataWithSources extends IVideoDataBase {
217
- sources: ISources;
231
+ sources: ISources;
218
232
  }
219
233
  export interface IVideoDataWithLive extends IVideoDataBase {
220
- live: IVideoLive;
234
+ live: IVideoLive;
221
235
  }
222
236
  export type IVideoData = IVideoDataWithSources | IVideoDataWithLive;
223
- export interface IInteractiveData extends Pick<IInteractiveOptions, 'initChapterId' | 'historyApi' | 'projectInfo'> {
224
- manifest: string | Manifest;
225
- visitedChapters?: string[];
226
- videosInfo?: VideoInfo[];
227
- videoLoader?: IInteractiveOptions['vkVideoLoader'];
228
- tooltipHelpHintActive?: boolean;
237
+ export interface IInteractiveData extends Pick<IInteractiveOptions, "initChapterId" | "historyApi" | "projectInfo"> {
238
+ manifest: string | Manifest;
239
+ visitedChapters?: string[];
240
+ videosInfo?: VideoInfo[];
241
+ videoLoader?: IInteractiveOptions["vkVideoLoader"];
242
+ tooltipHelpHintActive?: boolean;
229
243
  }
230
244
  /**
231
- * @deprecated
232
- *
233
- * Старый механизм добавления кнопок, будет удален в будущих релизах
234
- */
245
+ * @deprecated
246
+ *
247
+ * Старый механизм добавления кнопок, будет удален в будущих релизах
248
+ */
235
249
  export interface AdditionalButtonDeprecated {
236
- iconUrl: string;
237
- onClick?: (event?: MouseEvent) => void;
238
- tooltip?: string;
239
- ariaLabel?: string;
240
- testId?: string;
241
- hideOnDesktopGridTypes?: GridTypes[];
242
- hideOnMobile?: boolean;
250
+ iconUrl: string;
251
+ onClick?: (event?: MouseEvent) => void;
252
+ tooltip?: string;
253
+ ariaLabel?: string;
254
+ testId?: string;
255
+ hideOnDesktopGridTypes?: GridTypes[];
256
+ hideOnMobile?: boolean;
243
257
  }
244
258
  /**
245
- * Определяет внешний вид плеера и его функциональность.
246
- * preview - обрезанная функциональность плеера для показать трейлеров, например;
247
- * full - полная функциональность плеера доступна.
248
- */
249
- export type VideoPlayerView = 'preview' | 'full';
259
+ * Определяет внешний вид плеера и его функциональность.
260
+ * preview - обрезанная функциональность плеера для показать трейлеров, например;
261
+ * full - полная функциональность плеера доступна.
262
+ */
263
+ export type VideoPlayerView = "preview" | "full";
250
264
  export interface IVKVideoPlayerConfig {
251
- videos: IVideoData[];
252
- videoIndex?: number;
253
- interactiveData?: IInteractiveData;
254
- albumId?: string;
255
- statPlace?: 'embed' | 'direct' | string;
256
- statAuthToken?: string;
257
- statUserSalt?: string;
258
- statTrackCode?: string;
259
- statVKAppId?: string;
260
- refreshStatAuthToken?: () => Promise<string | undefined>;
261
- preload?: boolean;
262
- autoplay?: boolean;
263
- repeat?: boolean;
264
- loop?: boolean;
265
- volume?: number;
266
- muted?: boolean;
267
- fromTime?: number;
268
- canRewindLive?: boolean;
269
- supportLink?: string;
270
- showAds?: boolean;
271
- adsSlotId?: number;
272
- adsParams?: AdmanInitParams['params'];
273
- /** @deprecated */
274
- adsPreviewParam?: number;
275
- adsAutoplayParam?: boolean;
276
- interfaceLanguage?: InterfaceLanguage | string;
277
- isCyrillicRelatedInterface?: boolean;
278
- logoClickable?: boolean;
279
- logoHidden?: boolean;
280
- /** @deprecated */
281
- isMobile?: boolean;
282
- isTouch?: boolean;
283
- /** @deprecated */
284
- isMediaSessionEnabled?: boolean;
285
- /** @deprecated */
286
- isPictureInPictureEnabled?: boolean;
287
- isAudioDisabled?: boolean;
288
- isLiveCatchUpMode?: boolean;
289
- canDownload?: boolean;
290
- fullScreenTarget?: HTMLElement;
291
- failoverHosts?: string[];
292
- showThumbTimer?: boolean;
293
- is3DVideo?: boolean;
294
- callbacks?: IVKVideoPlayerCallbacks;
295
- additionalButtons?: (AdditionalButtonDeprecated | AdditionalDesktopControlPanelButton)[];
296
- additionalSettingsMenuItems?: AdditionalSettingsMenuItem[];
297
- additionalContextMenuItems?: AdditionalContextMenuItem[];
298
- refDomain?: string;
299
- volumeMultiplier?: number;
300
- saveRate?: boolean;
301
- deviceId?: string;
302
- playerId?: string;
303
- showEndScreen?: boolean;
304
- showAutoplayNext?: boolean;
305
- showNextPrevButtons?: boolean;
306
- pipEnabled?: boolean;
307
- playerView?: VideoPlayerView;
308
- mediascopePixels?: MediascopePixelTypes.Pixel[];
309
- getVideoDeeplink?: (timestamp: number) => string;
265
+ videos: IVideoData[];
266
+ videoIndex?: number;
267
+ interactiveData?: IInteractiveData;
268
+ albumId?: string;
269
+ statPlace?: "embed" | "direct" | string;
270
+ statAuthToken?: string;
271
+ statUserSalt?: string;
272
+ statTrackCode?: string;
273
+ statVKAppId?: string;
274
+ refreshStatAuthToken?: () => Promise<string | undefined>;
275
+ preload?: boolean;
276
+ autoplay?: boolean;
277
+ repeat?: boolean;
278
+ loop?: boolean;
279
+ volume?: number;
280
+ muted?: boolean;
281
+ fromTime?: number;
282
+ canRewindLive?: boolean;
283
+ supportLink?: string;
284
+ showAds?: boolean;
285
+ adsSlotId?: number;
286
+ adsParams?: AdmanInitParams["params"];
287
+ /** @deprecated */
288
+ adsPreviewParam?: number;
289
+ adsAutoplayParam?: boolean;
290
+ interfaceLanguage?: InterfaceLanguage | string;
291
+ isCyrillicRelatedInterface?: boolean;
292
+ logoClickable?: boolean;
293
+ logoHidden?: boolean;
294
+ /** @deprecated */
295
+ isMobile?: boolean;
296
+ isTouch?: boolean;
297
+ /** @deprecated */
298
+ isMediaSessionEnabled?: boolean;
299
+ /** @deprecated */
300
+ isPictureInPictureEnabled?: boolean;
301
+ isAudioDisabled?: boolean;
302
+ isLiveCatchUpMode?: boolean;
303
+ canDownload?: boolean;
304
+ fullScreenTarget?: HTMLElement;
305
+ failoverHosts?: string[];
306
+ showThumbTimer?: boolean;
307
+ is3DVideo?: boolean;
308
+ callbacks?: IVKVideoPlayerCallbacks;
309
+ additionalButtons?: (AdditionalButtonDeprecated | AdditionalDesktopControlPanelButton)[];
310
+ additionalSettingsMenuItems?: AdditionalSettingsMenuItem[];
311
+ additionalContextMenuItems?: AdditionalContextMenuItem[];
312
+ refDomain?: string;
313
+ volumeMultiplier?: number;
314
+ saveRate?: boolean;
315
+ deviceId?: string;
316
+ playerId?: string;
317
+ showEndScreen?: boolean;
318
+ showAutoplayNext?: boolean;
319
+ showNextPrevButtons?: boolean;
320
+ pipEnabled?: boolean;
321
+ playerView?: VideoPlayerView;
322
+ mediascopePixels?: MediascopePixelTypes.Pixel[];
323
+ getVideoDeeplink?: (timestamp: number) => string;
310
324
  }
311
325
  export interface IControlInfo {
312
- left: number;
313
- right: number;
314
- top: number;
315
- bottom: number;
316
- isDisplayed: boolean;
326
+ left: number;
327
+ right: number;
328
+ top: number;
329
+ bottom: number;
330
+ isDisplayed: boolean;
317
331
  }
318
332
  /**
319
- * Информация о upcoming live view.
320
- * `default` — это view, когда показывается таймер обратного отсчёта до начала трансляции.
321
- * `expired` — это view, когда таймер истёк, но трансляцию так и не начали (ожидаем поток).
322
- */
333
+ * Информация о upcoming live view.
334
+ * `default` — это view, когда показывается таймер обратного отсчёта до начала трансляции.
335
+ * `expired` — это view, когда таймер истёк, но трансляцию так и не начали (ожидаем поток).
336
+ */
323
337
  export interface IUpcomingLiveViewControlInfo extends IControlInfo {
324
- type: 'default' | 'expired';
325
- size: 's' | 'm' | 'l';
338
+ type: "default" | "expired";
339
+ size: "s" | "m" | "l";
326
340
  }
327
341
  export interface IPlayerControlsRef {
328
- prevButton?: HTMLButtonElement;
329
- playButton?: HTMLButtonElement;
330
- replayButton?: HTMLElement | HTMLButtonElement;
331
- nextButton?: HTMLButtonElement;
332
- playPrevChapterButton?: HTMLButtonElement;
333
- seekToInteractiveButton?: HTMLButtonElement;
334
- interactiveGraphButton?: HTMLButtonElement;
335
- liveButton?: HTMLElement;
336
- time?: HTMLElement;
337
- episodes?: HTMLElement;
338
- volume?: HTMLButtonElement;
339
- subtitles?: HTMLButtonElement;
340
- settings?: HTMLElement;
341
- context?: HTMLButtonElement;
342
- fullscreen?: HTMLElement;
343
- chromecast?: HTMLButtonElement;
344
- pip?: HTMLButtonElement;
345
- 'theater-mode-button'?: HTMLButtonElement;
346
- vkLogo?: HTMLButtonElement;
347
- interactiveTimeIndicator?: HTMLElement;
348
- timeline?: HTMLElement;
349
- autoplayNextToggle?: HTMLButtonElement;
342
+ prevButton?: HTMLButtonElement;
343
+ playButton?: HTMLButtonElement;
344
+ replayButton?: HTMLElement | HTMLButtonElement;
345
+ nextButton?: HTMLButtonElement;
346
+ playPrevChapterButton?: HTMLButtonElement;
347
+ seekToInteractiveButton?: HTMLButtonElement;
348
+ interactiveGraphButton?: HTMLButtonElement;
349
+ liveButton?: HTMLElement;
350
+ time?: HTMLElement;
351
+ episodes?: HTMLElement;
352
+ volume?: HTMLButtonElement;
353
+ subtitles?: HTMLButtonElement;
354
+ settings?: HTMLElement;
355
+ context?: HTMLButtonElement;
356
+ fullscreen?: HTMLElement;
357
+ chromecast?: HTMLButtonElement;
358
+ pip?: HTMLButtonElement;
359
+ "theater-mode-button"?: HTMLButtonElement;
360
+ vkLogo?: HTMLButtonElement;
361
+ interactiveTimeIndicator?: HTMLElement;
362
+ timeline?: HTMLElement;
363
+ autoplayNextToggle?: HTMLButtonElement;
350
364
  }
351
365
  export interface IPlayerDesktopControlsWidth {
352
- prevButton: number;
353
- playButton: number;
354
- replayButton: number;
355
- nextButton: number;
356
- playPrevChapterButton: number;
357
- seekToInteractiveButton: number;
358
- interactiveGraphButton: number;
359
- liveButton: number;
360
- time: number;
361
- episodes: number;
362
- volume: number;
363
- subtitles: number;
364
- settings: number;
365
- context: number;
366
- fullscreen: number;
367
- chromecast: number;
368
- vkLogo: number;
369
- additionalButtons: number[];
366
+ prevButton: number;
367
+ playButton: number;
368
+ replayButton: number;
369
+ nextButton: number;
370
+ playPrevChapterButton: number;
371
+ seekToInteractiveButton: number;
372
+ interactiveGraphButton: number;
373
+ liveButton: number;
374
+ time: number;
375
+ episodes: number;
376
+ volume: number;
377
+ subtitles: number;
378
+ settings: number;
379
+ context: number;
380
+ fullscreen: number;
381
+ chromecast: number;
382
+ vkLogo: number;
383
+ additionalButtons: number[];
370
384
  }
371
385
  export type ControlBlocksRefs = {
372
- /**
373
- * Контейнер для контролов, которые отображаются в левом верхнем углу.
374
- */
375
- topLeft?: HTMLElement | undefined;
376
- /**
377
- * Контейнер для контролов, которые отображаются в левом верхнем углу.
378
- */
379
- topRight?: HTMLElement | undefined;
380
- /**
381
- * Контейнер для контролов, который появляется снизу.
382
- */
383
- bottom?: HTMLElement | undefined;
384
- /**
385
- * Контейнер для контролов, который появляется в середине плеера.
386
- */
387
- middle?: HTMLElement | undefined;
388
- bottomLeft?: HTMLElement | undefined;
389
- bottomRight?: HTMLElement | undefined;
386
+ /**
387
+ * Контейнер для контролов, которые отображаются в левом верхнем углу.
388
+ */
389
+ topLeft?: HTMLElement | undefined;
390
+ /**
391
+ * Контейнер для контролов, которые отображаются в левом верхнем углу.
392
+ */
393
+ topRight?: HTMLElement | undefined;
394
+ /**
395
+ * Контейнер для контролов, который появляется снизу.
396
+ */
397
+ bottom?: HTMLElement | undefined;
398
+ /**
399
+ * Контейнер для контролов, который появляется в середине плеера.
400
+ */
401
+ middle?: HTMLElement | undefined;
402
+ bottomLeft?: HTMLElement | undefined;
403
+ bottomRight?: HTMLElement | undefined;
390
404
  };
391
405
  export declare const enum PlayerPhase {
392
- Thumb = "thumb",
393
- Video = "video",
394
- Ads = "ads",
395
- Crashed = "crashed",
396
- LiveWaitingStart = "LiveWaitingStart",
397
- LiveWaitingRecover = "LiveWaitingRecover",
398
- LiveWaitingRecord = "LiveWaitingRecord"
406
+ Thumb = "thumb",
407
+ Video = "video",
408
+ Ads = "ads",
409
+ Crashed = "crashed",
410
+ LiveWaitingStart = "LiveWaitingStart",
411
+ LiveWaitingRecover = "LiveWaitingRecover",
412
+ LiveWaitingRecord = "LiveWaitingRecord"
399
413
  }
400
414
  export declare const enum AdsSection {
401
- Preroll = "preroll",
402
- Midroll = "midroll",
403
- Postroll = "postroll"
415
+ Preroll = "preroll",
416
+ Midroll = "midroll",
417
+ Postroll = "postroll"
404
418
  }
405
419
  export declare const enum AdsPlaybackState {
406
- INACTIVE = "inactive",
407
- PLAYING = "playing",
408
- PAUSED = "paused"
420
+ INACTIVE = "inactive",
421
+ PLAYING = "playing",
422
+ PAUSED = "paused"
409
423
  }
410
424
  export type AdsTimeRemained = {
411
- currentTime: number;
412
- duration: number;
413
- percent: number;
414
- remained: number;
425
+ currentTime: number;
426
+ duration: number;
427
+ percent: number;
428
+ remained: number;
415
429
  };
416
430
  export type VideoQualityForRender = {
417
- value: VideoQualityUI;
418
- displayValue: string;
419
- selected: boolean;
431
+ value: VideoQualityUI;
432
+ displayValue: string;
433
+ selected: boolean;
420
434
  };
421
435
  export type VideoPlaybackRate = {
422
- value: number;
423
- displayValue: string;
424
- selected: boolean;
436
+ value: number;
437
+ displayValue: string;
438
+ selected: boolean;
425
439
  };
426
440
  export type MediaSessionApiMetadata = {
427
- title: string;
428
- artist?: string;
429
- thumbUrl?: string;
441
+ title: string;
442
+ artist?: string;
443
+ thumbUrl?: string;
430
444
  };
431
445
  export type MediaSessionApiActionHandler = [MediaSessionAction, MediaSessionActionHandler | null];
432
446
  export interface PictureInPictureResizeEvent extends Event {
433
- target: PictureInPictureWindow;
447
+ target: PictureInPictureWindow;
434
448
  }
435
449
  export interface DocumentPictureInPictureRequestWindow {
436
- width?: number;
437
- height?: number;
438
- initialAspectRatio?: number;
439
- copyStyleSheets: boolean;
450
+ width?: number;
451
+ height?: number;
452
+ initialAspectRatio?: number;
453
+ copyStyleSheets: boolean;
440
454
  }
441
455
  export interface DocumentPictureInPicture {
442
- onenter?: (event: Event) => void;
443
- window: Window;
444
- requestWindow: (params: DocumentPictureInPictureRequestWindow) => Promise<Window>;
456
+ onenter?: (event: Event) => void;
457
+ window: Window;
458
+ requestWindow: (params: DocumentPictureInPictureRequestWindow) => Promise<Window>;
445
459
  }
446
460
  export declare enum PictureInPictureType {
447
- PictureInPicture = 0,
448
- DocumentPictureInPicture = 1
461
+ PictureInPicture = 0,
462
+ DocumentPictureInPicture = 1
449
463
  }
450
464
  export interface IPictureInPictureApiInfo {
451
- isActive$: IValueObservable<boolean>;
452
- isEnabled$: IValueObservable<boolean>;
453
- type: PictureInPictureType;
465
+ isActive$: IValueObservable<boolean>;
466
+ isEnabled$: IValueObservable<boolean>;
467
+ type: PictureInPictureType;
454
468
  }
455
469
  export interface PictureInPictureSettings extends IDpipConfig {
456
- enabled: boolean;
470
+ enabled: boolean;
457
471
  }
458
472
  export interface Size {
459
- width: number;
460
- height: number;
473
+ width: number;
474
+ height: number;
461
475
  }
462
476
  export interface ExternalPictureInPictureEventHandlers {
463
- enterpictureinpicture?: VoidFunction;
464
- leavepictureinpicture?: VoidFunction;
465
- resize?: (size: Size) => void;
477
+ enterpictureinpicture?: VoidFunction;
478
+ leavepictureinpicture?: VoidFunction;
479
+ resize?: (size: Size) => void;
466
480
  }
467
481
  export interface IPictureInPictureApi {
468
- isSupported(): boolean;
469
- isActive(): boolean;
470
- setContext(svelteContext: Map<unknown, unknown>): void;
471
- request(): Promise<void>;
472
- exit(): Promise<void>;
473
- info: IPictureInPictureApiInfo;
474
- setEnabled(enabled: boolean): void;
475
- dispose(): Promise<void>;
476
- assignPlayerContainer(playerContainer: HTMLElement): void;
477
- updateVideoElement(): void;
478
- setExternalEventHandlers(externalEventHandlers: ExternalPictureInPictureEventHandlers): void;
482
+ isSupported(): boolean;
483
+ isActive(): boolean;
484
+ setContext(svelteContext: Map<unknown, unknown>): void;
485
+ request(): Promise<void>;
486
+ exit(): Promise<void>;
487
+ info: IPictureInPictureApiInfo;
488
+ setEnabled(enabled: boolean): void;
489
+ dispose(): Promise<void>;
490
+ assignPlayerContainer(playerContainer: HTMLElement): void;
491
+ updateVideoElement(): void;
492
+ setExternalEventHandlers(externalEventHandlers: ExternalPictureInPictureEventHandlers): void;
479
493
  }
480
494
  export interface IAnnotationsApi {
481
- /** @deprecated Больше не используется. Контейнер теперь определяется самостоятельно */
482
- registryRootContainer: (container: HTMLElement) => void;
483
- /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
484
- addLayer: (layerName: string) => HTMLElement | never;
485
- /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
486
- getLayer: (layerName: string) => HTMLElement | undefined;
487
- /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
488
- removeLayer: (layerName: string) => void;
489
- /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
490
- clearLayer: (layerName: string) => void;
491
- /** @deprecated Метод больше не является публичным */
492
- detach: () => void;
493
- /** @deprecated Больше нет необходимости переназначать контейнер для аннотаций в ходе работы плеера */
494
- reattach: () => void;
495
- /** @private */
496
- init: (container: HTMLElement) => void;
497
- add: (annotationName: string, annotation: HTMLElement) => void | never;
498
- get: (annotationName: string) => HTMLElement | never;
499
- remove: (annotationName: string) => void | never;
500
- clear: () => void;
501
- destroy: () => void;
495
+ /** @deprecated Больше не используется. Контейнер теперь определяется самостоятельно */
496
+ registryRootContainer: (container: HTMLElement) => void;
497
+ /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
498
+ addLayer: (layerName: string) => HTMLElement | never;
499
+ /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
500
+ getLayer: (layerName: string) => HTMLElement | undefined;
501
+ /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
502
+ removeLayer: (layerName: string) => void;
503
+ /** @deprecated Логики со слоями больше нет. Теперь все аннотации добавляются на единый общий слой */
504
+ clearLayer: (layerName: string) => void;
505
+ /** @deprecated Метод больше не является публичным */
506
+ detach: () => void;
507
+ /** @deprecated Больше нет необходимости переназначать контейнер для аннотаций в ходе работы плеера */
508
+ reattach: () => void;
509
+ /** @private */
510
+ init: (container: HTMLElement) => void;
511
+ add: (annotationName: string, annotation: HTMLElement) => void | never;
512
+ get: (annotationName: string) => HTMLElement | never;
513
+ remove: (annotationName: string) => void | never;
514
+ clear: () => void;
515
+ destroy: () => void;
502
516
  }
503
517
  export type AvailableVideoSubtitle = {
504
- id: string;
505
- language: string;
506
- title: string;
518
+ id: string;
519
+ language: string;
520
+ title: string;
507
521
  };
508
- export type AvailableAudioStream = Required<Pick<IAudioStream, 'id' | 'language' | 'label'>>;
522
+ export type AvailableAudioStream = Required<Pick<IAudioStream, "id" | "language" | "label">>;
509
523
  export type VideoSubtitle = {
510
- value: string;
511
- displayValue: string;
512
- selected: boolean;
513
- isAuto?: boolean;
514
- language: string;
524
+ value: string;
525
+ displayValue: string;
526
+ selected: boolean;
527
+ isAuto?: boolean;
528
+ language: string;
515
529
  };
516
530
  export type VideoSubtitleParsed = {
517
- startTime: number;
518
- endTime: number;
519
- lang: string;
520
- texts: ({
521
- type: 'text';
522
- value: string;
523
- } | {
524
- type: 'timestamp';
525
- value: number;
526
- })[];
531
+ startTime: number;
532
+ endTime: number;
533
+ lang: string;
534
+ texts: ({
535
+ type: "text";
536
+ value: string;
537
+ } | {
538
+ type: "timestamp";
539
+ value: number;
540
+ })[];
527
541
  };
528
542
  export type VideoSubtitlesParsed = {
529
- id: string;
530
- lang: string;
531
- isAuto: boolean;
532
- subtitles: VideoSubtitleParsed[];
543
+ id: string;
544
+ lang: string;
545
+ isAuto: boolean;
546
+ subtitles: VideoSubtitleParsed[];
533
547
  }[];
534
548
  export type ControlsEnumType = keyof typeof Controls;
535
549
  export type ControlsKeys = ControlsEnumType[];
536
550
  export interface IPlayerPhase extends Readable<PlayerPhase> {
537
- is: (playerPhase: PlayerPhase) => boolean;
551
+ is: (playerPhase: PlayerPhase) => boolean;
538
552
  }
539
553
  export interface IDisabledControls extends Writable<Set<ControlsEnumType>> {
540
- add: (addData: ControlsEnumType | ControlsKeys) => void;
541
- remove: (removeData: ControlsEnumType | ControlsKeys) => void;
542
- includes: (includeData: ControlsEnumType | ControlsKeys) => boolean;
554
+ add: (addData: ControlsEnumType | ControlsKeys) => void;
555
+ remove: (removeData: ControlsEnumType | ControlsKeys) => void;
556
+ includes: (includeData: ControlsEnumType | ControlsKeys) => boolean;
543
557
  }
544
558
  export interface HotKeyMapItem {
545
- description: string;
546
- value: string;
559
+ description: string;
560
+ value: string;
547
561
  }
548
562
  export interface HotKeyMapGroup {
549
- title: string;
550
- items: HotKeyMapItem[];
563
+ title: string;
564
+ items: HotKeyMapItem[];
551
565
  }
552
566
  export interface HotKeyMapData {
553
- title: string;
554
- groups: HotKeyMapGroup[];
555
- closeBtnText: string;
567
+ title: string;
568
+ groups: HotKeyMapGroup[];
569
+ closeBtnText: string;
556
570
  }
557
571
  export declare enum HotKeyHelperType {
558
- PLAY = "PLAY",
559
- PAUSE = "PAUSE",
560
- REPLAY = "REPLAY",
561
- BACKWARD_SEEK = "BACKWARD_SEEK",
562
- FORWARD_SEEK = "FORWARD_SEEK",
563
- SUBTITLES_ON = "SUBTITLES_ON",
564
- SUBTITLES_OFF = "SUBTITLES_OFF",
565
- RATE_UP = "RATE_UP",
566
- RATE_DOWN = "RATE_DOWN",
567
- EPISODE_PREV = "EPISODE_PREV",
568
- EPISODE_NEXT = "EPISODE_NEXT",
569
- MUTE = "MUTE",
570
- VOLUME = "VOLUME"
572
+ PLAY = "PLAY",
573
+ PAUSE = "PAUSE",
574
+ REPLAY = "REPLAY",
575
+ BACKWARD_SEEK = "BACKWARD_SEEK",
576
+ FORWARD_SEEK = "FORWARD_SEEK",
577
+ SUBTITLES_ON = "SUBTITLES_ON",
578
+ SUBTITLES_OFF = "SUBTITLES_OFF",
579
+ RATE_UP = "RATE_UP",
580
+ RATE_DOWN = "RATE_DOWN",
581
+ EPISODE_PREV = "EPISODE_PREV",
582
+ EPISODE_NEXT = "EPISODE_NEXT",
583
+ MUTE = "MUTE",
584
+ VOLUME = "VOLUME"
571
585
  }
572
586
  export interface HotKeyHelperData {
573
- type: HotKeyHelperType;
574
- text?: string;
575
- t?: {
576
- key: Key;
577
- value?: string;
578
- };
587
+ type: HotKeyHelperType;
588
+ text?: string;
589
+ t?: {
590
+ key: Key;
591
+ value?: string;
592
+ };
579
593
  }
580
594
  export declare enum EpisodesModes {
581
- FULL = "FULL",
582
- COUNT = "COUNT",
583
- SHORT = "SHORT"
595
+ FULL = "FULL",
596
+ COUNT = "COUNT",
597
+ SHORT = "SHORT"
584
598
  }
585
599
  export type IToggleable<T> = T & {
586
- toggle: () => void;
600
+ toggle: () => void;
587
601
  };
588
602
  type MicroStoreWritableBase<T = unknown> = Writable<T>;
589
603
  type ToggleableMicroStore = IToggleable<MicroStoreWritableBase<boolean | null>>;
590
604
  export type PictureInPictureMicroStore = {
591
- isActive$: Writable<boolean>;
592
- isEnabled$: Writable<boolean>;
593
- type$: Writable<PictureInPictureType | undefined>;
605
+ isActive$: Writable<boolean>;
606
+ isEnabled$: Writable<boolean>;
607
+ type$: Writable<PictureInPictureType | undefined>;
594
608
  };
595
609
  export type NotificationsMicroStore = {
596
- notificationsToShow$: Writable<Partial<Record<NotificationId, boolean>>>;
597
- showNotification: (id: NotificationId) => void;
598
- closeNotification: (id: NotificationId) => void;
610
+ notificationsToShow$: Writable<Partial<Record<NotificationId, boolean>>>;
611
+ showNotification: (id: NotificationId) => void;
612
+ closeNotification: (id: NotificationId) => void;
613
+ };
614
+ export type PreviewPlayerMicroStore = {
615
+ timelineActive$: Writable<boolean>;
599
616
  };
600
617
  export interface IMicroStores {
601
- fakeIsPlaying$: ToggleableMicroStore;
602
- interactiveControlsOpacity$: ToggleableMicroStore;
603
- seekToInteractiveDisabledTooltip$: MicroStoreWritableBase<SeekToInteractiveDisabledTooltipKey>;
604
- showInteractiveTimeIndicatorTooltip$: MicroStoreWritableBase<boolean> & {
605
- set: (newValue: boolean, useTimeout: boolean) => void;
606
- clearTimeout: () => void;
607
- };
608
- graphIsOpened$: ToggleableMicroStore;
609
- pictureInPicture$: PictureInPictureMicroStore;
610
- notifications$: NotificationsMicroStore;
618
+ fakeIsPlaying$: ToggleableMicroStore;
619
+ interactiveControlsOpacity$: ToggleableMicroStore;
620
+ seekToInteractiveDisabledTooltip$: MicroStoreWritableBase<SeekToInteractiveDisabledTooltipKey>;
621
+ showInteractiveTimeIndicatorTooltip$: MicroStoreWritableBase<boolean> & {
622
+ set: (newValue: boolean, useTimeout: boolean) => void;
623
+ clearTimeout: () => void;
624
+ };
625
+ graphIsOpened$: ToggleableMicroStore;
626
+ pictureInPicture$: PictureInPictureMicroStore;
627
+ notifications$: NotificationsMicroStore;
628
+ previewPlayer$: PreviewPlayerMicroStore;
611
629
  }
612
630
  export interface InitMicroStoreParams {
613
- store: IStore;
614
- microStores: IMicroStores;
615
- config: IVKVideoPlayerConfig;
616
- uiConfig: IUIConfig;
617
- interactiveController?: Interactives;
631
+ store: IStore;
632
+ microStores: IMicroStores;
633
+ config: IVKVideoPlayerConfig;
634
+ uiConfig: IUIConfig;
635
+ interactiveController?: Interactives;
618
636
  }
619
637
  export interface IMicroStore<StateName extends keyof IMicroStores = keyof IMicroStores> {
620
- readonly stateName: StateName;
621
- state$: IMicroStores[StateName];
622
- subscription: Subscription;
623
- init: (initStoreParams: InitMicroStoreParams) => Subscription;
638
+ readonly stateName: StateName;
639
+ state$: IMicroStores[StateName];
640
+ subscription: Subscription;
641
+ init: (initStoreParams: InitMicroStoreParams) => Subscription;
624
642
  }
625
643
  export type IMicroStoresRoot = {
626
- subscribers: IMicroStore[];
627
- stores: IMicroStores;
644
+ subscribers: IMicroStore[];
645
+ stores: IMicroStores;
628
646
  };
629
647
  export type Position = {
630
- top?: number;
631
- left?: number;
632
- bottom?: number;
633
- right?: number;
648
+ top?: number;
649
+ left?: number;
650
+ bottom?: number;
651
+ right?: number;
634
652
  };
635
653
  export interface Caption {
636
- timeAppeared?: number | null;
637
- value: string;
654
+ timeAppeared?: number | null;
655
+ value: string;
638
656
  }
639
- export type NotificationId = 'slow_video';
657
+ export type NotificationId = "slow_video";
640
658
  export declare enum PlaybackStateExtended {
641
- BUFFERING = "buffering"
659
+ BUFFERING = "buffering"
642
660
  }
643
661
  export type PlaybackStateRealistic = PlaybackState | PlaybackStateExtended;
644
662
  export {};