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