@vkontakte/videoplayer 1.1.96-dev.dc17075f7.0 → 1.1.97-beta.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.
- package/es2015.cjs +10 -10
- package/es2015.esm.js +10 -10
- package/esnext.cjs +11 -11
- package/esnext.esm.js +11 -11
- package/evergreen.esm.js +11 -11
- package/package.json +5 -5
- package/types/VKVideoPlayer/index.svelte.d.ts +7 -1
- package/types/components/Menus/subMenuTabs/types.d.ts +7 -0
- package/types/components/Menus/utils/getSubMenusStack.svelte.d.ts +1 -0
- package/types/config.d.ts +10 -0
- package/types/index.d.ts +3 -3
- package/types/store/composition.d.ts +2 -1
- package/types/store/index.d.ts +1 -1
- package/types/store/modules/highlightedMenuItemsStore/highlightedMenuItems.module.d.ts +3 -0
- package/types/store/modules/highlightedMenuItemsStore/highlightedMenuItems.store.d.ts +21 -0
- package/types/store/modules/highlightedMenuItemsStore/highlightedMenuItems.token.d.ts +5 -0
- package/types/store/modules/highlightedMenuItemsStore/index.d.ts +3 -0
- package/types/store/modules/index.d.ts +1 -0
- package/types/store/modules/playbackRateStore/index.d.ts +1 -1
- package/types/store/modules/playbackRateStore/playbackRateStore.store.d.ts +4 -0
- package/types/store/modules/subtitlesStore/subtitlesStore.store.d.ts +2 -2
- package/types/store/types.d.ts +5 -47
- package/types/types/index.d.ts +1 -1
- package/types/utils/hooks/useIosSafariFullscreenSubtitles.d.ts +2 -2
- package/types/utils/sanitizeSvg.d.ts +5 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.97-beta.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@adtech/rbadman": "2.2.57",
|
|
46
|
-
"@vkontakte/videoplayer-core": "2.0.
|
|
47
|
-
"@vkontakte/videoplayer-interactive": "1.0.
|
|
48
|
-
"@vkontakte/videoplayer-shared": "1.0.
|
|
49
|
-
"@vkontakte/videoplayer-statistics": "1.0.
|
|
46
|
+
"@vkontakte/videoplayer-core": "2.0.166-beta.0",
|
|
47
|
+
"@vkontakte/videoplayer-interactive": "1.0.72-beta.0",
|
|
48
|
+
"@vkontakte/videoplayer-shared": "1.0.95-beta.0",
|
|
49
|
+
"@vkontakte/videoplayer-statistics": "1.0.112-beta.0"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -7,7 +7,7 @@ import type { PlaybackRate } from "@vkontakte/videoplayer-core";
|
|
|
7
7
|
import { type IStatContext } from "@vkontakte/videoplayer-statistics";
|
|
8
8
|
import { ThinOneStat } from "@vkontakte/videoplayer-statistics";
|
|
9
9
|
import { AnnotationsApi } from "../utils/webAPI/annotationsApi/annotationsApi";
|
|
10
|
-
import type { AdditionalContextMenuItem, AdditionalSettingsMenuItem } from "../components/Menus/subMenuTabs/types";
|
|
10
|
+
import type { AdditionalContextMenuItem, AdditionalSettingsMenuItem, MenuItemHighlight, RootMenuId } from "../components/Menus/subMenuTabs/types";
|
|
11
11
|
import type { AdditionalButton } from "../components/Controls/types";
|
|
12
12
|
import { SlotsApi } from "../utils/webAPI/slotsApi";
|
|
13
13
|
import { HTMLElement } from "./HTMLElement";
|
|
@@ -159,6 +159,7 @@ export declare class VKVideoPlayer extends HTMLElement {
|
|
|
159
159
|
*/
|
|
160
160
|
toggleHighQuality(value: boolean): void;
|
|
161
161
|
changeAudioStream(id: string): void;
|
|
162
|
+
setHighlightedMenuItems(items: Partial<Record<RootMenuId, MenuItemHighlight>> | undefined): void;
|
|
162
163
|
addLanguage(config: LanguageConfig): void;
|
|
163
164
|
setLanguage(language: InterfaceLanguage | string): Promise<void>;
|
|
164
165
|
private replaceVideoDataInConfig;
|
|
@@ -194,6 +195,11 @@ export declare class VKVideoPlayer extends HTMLElement {
|
|
|
194
195
|
updateStatContext(statContext: Partial<IStatContext | ThinOneStat.IStatContext>): void;
|
|
195
196
|
handleTimerNextVideo(state: boolean): void;
|
|
196
197
|
togglePictureInPicture(): void;
|
|
198
|
+
/**
|
|
199
|
+
* Переключает видимость меню настроек.
|
|
200
|
+
* @param force Если true — открыть, если false — закрыть, если не указано — toggle.
|
|
201
|
+
*/
|
|
202
|
+
toggleSettingsMenu(force?: boolean): void;
|
|
197
203
|
focus(): void;
|
|
198
204
|
/**
|
|
199
205
|
* Восстанавливает фокус на последнем сфокусированном элементе в плеере.
|
|
@@ -28,6 +28,7 @@ export declare enum RootMenuId {
|
|
|
28
28
|
COPY_DATA = "copy-data",
|
|
29
29
|
DEBUG_INFO = "debug-info"
|
|
30
30
|
}
|
|
31
|
+
export declare const SETTINGS_MENU_ID: "settings";
|
|
31
32
|
export type Context = {
|
|
32
33
|
closeSettingsMenu: () => void;
|
|
33
34
|
isMobile: boolean;
|
|
@@ -111,6 +112,12 @@ export declare enum MenuItemType {
|
|
|
111
112
|
CLICK = "CLICK",
|
|
112
113
|
SWITCH = "SWITCH"
|
|
113
114
|
}
|
|
115
|
+
export interface MenuItemHighlight {
|
|
116
|
+
/** SVG как строка или URL на SVG-файл */
|
|
117
|
+
svg: string;
|
|
118
|
+
/** CSS стили для контейнера с SVG */
|
|
119
|
+
styleSvgContainer?: string;
|
|
120
|
+
}
|
|
114
121
|
export declare enum SubMenuItemType {
|
|
115
122
|
OPEN_SUB_MENU = "OPEN_SUB_MENU",
|
|
116
123
|
SELECT_VALUE = "SELECT_VALUE"
|
package/types/config.d.ts
CHANGED
|
@@ -62,6 +62,16 @@ export interface IAdsConfig {
|
|
|
62
62
|
export interface IUIConfig {
|
|
63
63
|
isMobile: ForceOrRelay;
|
|
64
64
|
keepPlayerElement: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* не будет использовано если keepPlayerElement: false
|
|
67
|
+
* @default true
|
|
68
|
+
*/
|
|
69
|
+
keepPlayerElementOnMobile: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* не будет использовано если keepPlayerElement: false
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
74
|
+
keepPlayerElementOnSafari: boolean;
|
|
65
75
|
disableInvisibleComponentsTimeout: Milliseconds;
|
|
66
76
|
debugLog: boolean | {
|
|
67
77
|
tag?: string;
|
package/types/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { VKVideoPlayer } from "./VKVideoPlayer/index.svelte";
|
|
2
|
-
import type { AdsParams, IAdmanInitParamsExternalApi, IVKVideoPlayerConfig, IUpdatableVKVideoPlayerConfig, IControlInfo, ITimelinePreviewThumbsData, IUpcomingLiveViewControlInfo, IVKVideoPlayerCallbacks, IVideoData, HotKeyMapData, HotKeyMapItem, HotKeyMapGroup, IVideoLive, IInteractiveData, AdditionalButtonDeprecated, IVideoEpisode, IQoeConfig, IQoePoll, IQoeResult, IQoeQuestion, IQoeCallbacks, QoePollTranslations, VideoPlayerView } from "./types";
|
|
2
|
+
import type { AdsParams, IAdmanInitParamsExternalApi, IVKVideoPlayerConfig, IUpdatableVKVideoPlayerConfig, IControlInfo, ITimelinePreviewThumbsData, IUpcomingLiveViewControlInfo, IVKVideoPlayerCallbacks, IVideoData, HotKeyMapData, HotKeyMapItem, HotKeyMapGroup, IVideoLive, IInteractiveData, AdditionalButtonDeprecated, IVideoEpisode, IQoeConfig, IQoeButtonOnlyConfig, IQoePoll, IQoeResult, IQoeQuestion, IQoeCallbacks, QoePollTranslations, VideoPlayerView } from "./types";
|
|
3
3
|
import type { LanguagePack, LanguageConfig } from "./translation/types";
|
|
4
4
|
import type { LogoType as VKLogoType, IAdsConfig, ISDKConfig, IDpipConfig } from "./config";
|
|
5
5
|
import type { ISources, IDashSource, URLSource, RawSource, URLSourceWithSeek } from "@vkontakte/videoplayer-core";
|
|
6
6
|
import type { Milliseconds, QualityLimits } from "@vkontakte/videoplayer-shared";
|
|
7
7
|
export { VERSION } from "./env";
|
|
8
8
|
export declare const registerPlayerWebComponent: () => void;
|
|
9
|
-
export { type AdditionalSettingsMenuItem, MenuItemType, type AdditionalClickSettingsMenuItem, type AdditionalSwitchSettingsMenuItem, type AdditionalContextMenuItem } from "./components/Menus/subMenuTabs/types";
|
|
9
|
+
export { type AdditionalSettingsMenuItem, MenuItemType, type AdditionalClickSettingsMenuItem, type AdditionalSwitchSettingsMenuItem, type AdditionalContextMenuItem, RootMenuId, SubMenuId, SETTINGS_MENU_ID } from "./components/Menus/subMenuTabs/types";
|
|
10
10
|
export { type AdditionalButton, ControlButtonType } from "./components/Controls/types";
|
|
11
|
-
export type { VKVideoPlayer, IVKVideoPlayerConfig, IUpdatableVKVideoPlayerConfig, IControlInfo, ITimelinePreviewThumbsData, IUpcomingLiveViewControlInfo, IVKVideoPlayerCallbacks, IVideoData, AdsParams, HotKeyMapData, HotKeyMapItem, HotKeyMapGroup, ISources, IDashSource, URLSource, RawSource, URLSourceWithSeek, LanguagePack, LanguageConfig, Milliseconds, IVideoLive, IInteractiveData, AdditionalButtonDeprecated, QualityLimits, IAdsConfig, IVideoEpisode, IDpipConfig, IQoeConfig, IQoePoll, IQoeResult, IQoeQuestion, IQoeCallbacks, QoePollTranslations, ISDKConfig, VideoPlayerView, IAdmanInitParamsExternalApi, VKLogoType };
|
|
11
|
+
export type { VKVideoPlayer, IVKVideoPlayerConfig, IUpdatableVKVideoPlayerConfig, IControlInfo, ITimelinePreviewThumbsData, IUpcomingLiveViewControlInfo, IVKVideoPlayerCallbacks, IVideoData, AdsParams, HotKeyMapData, HotKeyMapItem, HotKeyMapGroup, ISources, IDashSource, URLSource, RawSource, URLSourceWithSeek, LanguagePack, LanguageConfig, Milliseconds, IVideoLive, IInteractiveData, AdditionalButtonDeprecated, QualityLimits, IAdsConfig, IVideoEpisode, IDpipConfig, IQoeConfig, IQoeButtonOnlyConfig, IQoePoll, IQoeResult, IQoeQuestion, IQoeCallbacks, QoePollTranslations, ISDKConfig, VideoPlayerView, IAdmanInitParamsExternalApi, VKLogoType };
|
|
12
12
|
export { GridTypes } from "./constans";
|
|
13
13
|
export { PlayerPhase } from "./types";
|
|
14
14
|
export { isPiPSupported, isDpipSupported } from "./utils/webAPI/pictureInPictureApi";
|
|
@@ -2,7 +2,7 @@ import type { IUIConfig } from "../config";
|
|
|
2
2
|
import type { IVKVideoPlayerConfig } from "../types";
|
|
3
3
|
import type { IUIStatistics } from "../services/statistics";
|
|
4
4
|
import type { IStore } from "./index";
|
|
5
|
-
import type { FakeIsPlayingStore, GraphIsOpenedStore, InteractiveControlsOpacityStore, LanguageStore, NotificationsStore, PictureInPictureStore, IQoeStore, SeekToInteractiveDisabledTooltipStore, ShowInteractiveTimeIndicatorTooltipStore, SubtitlesStore, QualityStore, PlaybackRateStore } from "./modules";
|
|
5
|
+
import type { FakeIsPlayingStore, GraphIsOpenedStore, HighlightedMenuItemsStore, InteractiveControlsOpacityStore, LanguageStore, NotificationsStore, PictureInPictureStore, IQoeStore, SeekToInteractiveDisabledTooltipStore, ShowInteractiveTimeIndicatorTooltipStore, SubtitlesStore, QualityStore, PlaybackRateStore } from "./modules";
|
|
6
6
|
import type { AppTracer, ITracer } from "@vkontakte/videoplayer-shared";
|
|
7
7
|
import type { Interactives } from "@vkontakte/videoplayer-interactive";
|
|
8
8
|
export interface ICompositionParams {
|
|
@@ -19,6 +19,7 @@ export interface ICompositionResult {
|
|
|
19
19
|
fakeIsPlayingStore: FakeIsPlayingStore;
|
|
20
20
|
graphIsOpenedStore: GraphIsOpenedStore;
|
|
21
21
|
interactiveControlsOpacityStore: InteractiveControlsOpacityStore;
|
|
22
|
+
highlightedMenuItemsStore: HighlightedMenuItemsStore;
|
|
22
23
|
notificationsStore: NotificationsStore;
|
|
23
24
|
pictureInPictureStore: PictureInPictureStore;
|
|
24
25
|
qoeStore: IQoeStore;
|
package/types/store/index.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export type { IStore, IAdsState, IUIState, EnrichedStore } from "./types";
|
|
|
4
4
|
* Store приложения.
|
|
5
5
|
* Если будет слишком большим - можно разделить его на модули
|
|
6
6
|
*/
|
|
7
|
-
export declare const createStore: ({
|
|
7
|
+
export declare const createStore: ({ initialVideoId, isTouch, isLiveCatchUpMode, isAudioDisabled, canDownload, callbacks, webApi, videoEpisodes: initialVideoEpisodes, previewThumbsData: initialPreviewThumbsData, uiConfig, coreConfig, player: playerInstance, disabledControls, isInteractive, interactiveRanges$, isInteractiveTime$, replayInteractive, stopPlayer, hasInteractiveBranches, playPrevChapterDisabledTooltip, additionalButtons, additionalSettingsMenuItems, additionalContextMenuItems, playPrevVideo, playNextVideo, onVideoChanged, looped, getStatisticsService, internalsExposure, playerView, playerId, metaConfig, getAppTracer, getAdmanWrapper, logger, adsEnabled, rootTracer, tracer }: IStoreParams) => IStore;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HighlightedMenuItems Store
|
|
3
|
+
*
|
|
4
|
+
* Управляет подсветкой пунктов меню настроек.
|
|
5
|
+
*/
|
|
6
|
+
import type { Writable } from "svelte/store";
|
|
7
|
+
import type { MenuItemHighlight, RootMenuId } from "../../../components/Menus/subMenuTabs/types";
|
|
8
|
+
export interface HighlightedMenuItemsStoreState {
|
|
9
|
+
items$: Writable<Partial<Record<RootMenuId, MenuItemHighlight>> | undefined>;
|
|
10
|
+
}
|
|
11
|
+
export interface HighlightedMenuItemsStoreActions {
|
|
12
|
+
/** Установить подсвеченные пункты меню */
|
|
13
|
+
setHighlightedMenuItems(items: Partial<Record<RootMenuId, MenuItemHighlight>> | undefined): void;
|
|
14
|
+
/** Очистить подсветку */
|
|
15
|
+
clear(): void;
|
|
16
|
+
}
|
|
17
|
+
export interface HighlightedMenuItemsStore {
|
|
18
|
+
state: HighlightedMenuItemsStoreState;
|
|
19
|
+
actions: HighlightedMenuItemsStoreActions;
|
|
20
|
+
}
|
|
21
|
+
export declare const createHighlightedMenuItemsStore: () => HighlightedMenuItemsStore;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InjectionToken } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
export declare const HIGHLIGHTED_MENU_ITEMS_STORE_TOKEN: InjectionToken<HIGHLIGHTED_MENU_ITEMS_STORE_STORE>;
|
|
3
|
+
import type { HighlightedMenuItemsStore } from "./highlightedMenuItems.store";
|
|
4
|
+
type HIGHLIGHTED_MENU_ITEMS_STORE_STORE = HighlightedMenuItemsStore;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { HighlightedMenuItemsStoreState, HighlightedMenuItemsStore, HighlightedMenuItemsStoreActions } from "./highlightedMenuItems.store";
|
|
2
|
+
export { highlightedMenuItemsModule } from "./highlightedMenuItems.module";
|
|
3
|
+
export { HIGHLIGHTED_MENU_ITEMS_STORE_TOKEN } from "./highlightedMenuItems.token";
|
|
@@ -20,6 +20,7 @@ export type { SeekToInteractiveDisabledTooltipStoreState, SeekToInteractiveDisab
|
|
|
20
20
|
export { seekToInteractiveDisabledTooltipModule, SEEK_TO_INTERACTIVE_DISABLED_TOOLTIP_STORE_TOKEN } from "./seekToInteractiveDisabledTooltipStore";
|
|
21
21
|
export type { ShowInteractiveTimeIndicatorTooltipStoreState, ShowInteractiveTimeIndicatorTooltipStore, ShowInteractiveTimeIndicatorTooltipStoreActions, ShowInteractiveTimeIndicatorTooltipStoreDeps } from "./showInteractiveTimeIndicatorTooltipStore";
|
|
22
22
|
export { showInteractiveTimeIndicatorTooltipModule, SHOW_INTERACTIVE_TIME_INDICATOR_TOOLTIP_STORE_TOKEN } from "./showInteractiveTimeIndicatorTooltipStore";
|
|
23
|
+
export { type HighlightedMenuItemsStoreState, type HighlightedMenuItemsStore, type HighlightedMenuItemsStoreActions, highlightedMenuItemsModule, HIGHLIGHTED_MENU_ITEMS_STORE_TOKEN } from "./highlightedMenuItemsStore";
|
|
23
24
|
export type { SubtitlesStoreState, SubtitlesStoreInternalActions, SubtitlesStoreExternalActions, SubtitlesStore, SubtitlesStoreDeps } from "./subtitlesStore";
|
|
24
25
|
export { subtitlesModule, SUBTITLES_STORE_TOKEN } from "./subtitlesStore";
|
|
25
26
|
export type { QualityStoreDeps, QualityStoreState, QualityStore } from "./qualityStore";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Playback Rate Store Module
|
|
3
3
|
*/
|
|
4
|
-
export { createPlaybackRateStore, type PlaybackRateStoreDeps, type PlaybackRateStoreState, type PlaybackRateStoreActions, type PlaybackRateStore } from "./playbackRateStore.store";
|
|
4
|
+
export { createPlaybackRateStore, type PlaybackRateStoreDeps, type PlaybackRateStoreState, type PlaybackRateStoreActions, type PlaybackRateStoreExternalActions, type PlaybackRateStore } from "./playbackRateStore.store";
|
|
5
5
|
export { playbackRateModule } from "./playbackRateStore.module";
|
|
6
6
|
export { PLAYBACK_RATE_STORE_TOKEN } from "./playbackRateStore.token";
|
|
@@ -51,9 +51,13 @@ export interface PlaybackRateStoreActions {
|
|
|
51
51
|
decrementPlaybackRate: () => VideoPlaybackRate;
|
|
52
52
|
changeDoubleForwardOn: (enabled: boolean) => void;
|
|
53
53
|
}
|
|
54
|
+
export interface PlaybackRateStoreExternalActions {
|
|
55
|
+
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
56
|
+
}
|
|
54
57
|
export interface PlaybackRateStore {
|
|
55
58
|
state: PlaybackRateStoreState;
|
|
56
59
|
actions: PlaybackRateStoreActions;
|
|
60
|
+
externalActions: PlaybackRateStoreExternalActions;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Создаёт playback rate store
|
|
@@ -77,9 +77,9 @@ export interface SubtitlesStoreState {
|
|
|
77
77
|
*/
|
|
78
78
|
export interface SubtitlesStoreInternalActions {
|
|
79
79
|
/** Установить субтитры */
|
|
80
|
-
setSubtitle: (subtitle: VideoSubtitle | undefined
|
|
80
|
+
setSubtitle: (subtitle: VideoSubtitle | undefined) => void;
|
|
81
81
|
/** Переключить субтитры */
|
|
82
|
-
toggleSubtitle: (
|
|
82
|
+
toggleSubtitle: () => void;
|
|
83
83
|
/** Включить субтитры */
|
|
84
84
|
subtitleOn: (external: boolean, id?: string) => void;
|
|
85
85
|
/** Выключить субтитры */
|
package/types/store/types.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { ChromecastState, IAudioStream, IConfig as ICoreInitVideoConfig, IExternalTextTrack, IOptionalTuningConfig, IPlayer, ISources,
|
|
1
|
+
import type { ChromecastState, IAudioStream, IConfig as ICoreInitVideoConfig, IExternalTextTrack, IOptionalTuningConfig, IPlayer, ISources, IVideoStream, PlaybackState, VideoFormat } from "@vkontakte/videoplayer-core";
|
|
2
2
|
import type { InteractiveRange } from "@vkontakte/videoplayer-interactive";
|
|
3
|
-
import type { AppTracer, IError, ILogger,
|
|
3
|
+
import type { AppTracer, IError, ILogger, InternalsExposure, IRectangle, IRootTracer, ISubject, ITracer, IValueObservable, IValueSubject, QualityLimits, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
4
4
|
import type { SeekAction, ThinOneStat } from "@vkontakte/videoplayer-statistics";
|
|
5
5
|
import type { Readable, Writable } from "svelte/store";
|
|
6
|
-
import type { AdditionalButtonDeprecated, AdsPlaybackState, ControlBlocksRefs, ControlsKeys, HotKeyMapData, IAnnotationsApi, IControlInfo, IDisabledControls, IInteractiveData, IPictureInPictureApi, IPlayerControlsRef, IPlayerPhase, ITimelinePreviewThumbsData, IVideoEpisode, IVKVideoPlayerCallbacks, IVKVideoPlayerUICallbacks, Position, Size,
|
|
6
|
+
import type { AdditionalButtonDeprecated, AdsPlaybackState, ControlBlocksRefs, ControlsKeys, HotKeyMapData, IAnnotationsApi, IControlInfo, IDisabledControls, IInteractiveData, IPictureInPictureApi, IPlayerControlsRef, IPlayerPhase, ITimelinePreviewThumbsData, IVideoEpisode, IVKVideoPlayerCallbacks, IVKVideoPlayerUICallbacks, Position, Size, VideoPlayerView, VideoQualityUI } from "../types";
|
|
7
7
|
import type { AdmanWrapper } from "../components/Ads/admanWrapper";
|
|
8
|
-
import type { Key } from "../translation/types";
|
|
9
8
|
import type { QualitySettingsAppliesTo } from "../utils/userSettings";
|
|
10
9
|
import type { GridTypes, PlayPrevChapterDisabledTooltipKey } from "../constans";
|
|
11
10
|
import type { AdditionalButton, AdditionalDesktopControlPanelButton } from "../components/Controls/types";
|
|
@@ -31,7 +30,6 @@ export interface IAdsStateValues {
|
|
|
31
30
|
}
|
|
32
31
|
export type IAdsState = { [K in keyof IAdsStateValues]: Writable<IAdsStateValues[K]> };
|
|
33
32
|
export interface IUIState {
|
|
34
|
-
t: (key: Key, params?: Record<string, string>) => string;
|
|
35
33
|
isMinimalView$: Writable<boolean>;
|
|
36
34
|
controlsVisible: Writable<boolean>;
|
|
37
35
|
/**
|
|
@@ -62,6 +60,7 @@ export interface IUIState {
|
|
|
62
60
|
fullscreen: Writable<IControlInfo | undefined>;
|
|
63
61
|
chromecast: Writable<IControlInfo | undefined>;
|
|
64
62
|
pip: Writable<IControlInfo | undefined>;
|
|
63
|
+
qoe: Writable<IControlInfo | undefined>;
|
|
65
64
|
"theater-mode-button": Writable<IControlInfo | undefined>;
|
|
66
65
|
vkLogo: Writable<IControlInfo | undefined>;
|
|
67
66
|
interactiveTimeIndicator: Writable<IControlInfo | undefined>;
|
|
@@ -97,10 +96,8 @@ export interface IUIState {
|
|
|
97
96
|
playerSize: Writable<Size>;
|
|
98
97
|
isMobile: Readable<boolean>;
|
|
99
98
|
mobileNotReportControlHidden$: Readable<boolean>;
|
|
100
|
-
icon3DVideoVisible: Writable<boolean>;
|
|
101
99
|
scrubbingInProgress: Writable<boolean>;
|
|
102
100
|
volumeChangingInProgress: Writable<boolean>;
|
|
103
|
-
is3DVideo: Writable<boolean>;
|
|
104
101
|
currentGridType$: Readable<GridTypes>;
|
|
105
102
|
interactiveHideMobileControls: Writable<boolean>;
|
|
106
103
|
additionalButtonsDeprecated$: Readable<AdditionalButtonDeprecated[]>;
|
|
@@ -129,14 +126,6 @@ export interface IUIState {
|
|
|
129
126
|
* Положение заголовка названия видео.
|
|
130
127
|
*/
|
|
131
128
|
videoTitleInfo: Writable<IControlInfo | undefined>;
|
|
132
|
-
/**
|
|
133
|
-
* Ускорение видео х2.
|
|
134
|
-
*/
|
|
135
|
-
doubleForwardOn$: Writable<boolean>;
|
|
136
|
-
/**
|
|
137
|
-
* Определяет, что двойное ускорение видео доступно.
|
|
138
|
-
*/
|
|
139
|
-
doubleForwardAvailable$: Readable<boolean>;
|
|
140
129
|
previewTrackActive: Writable<boolean>;
|
|
141
130
|
previewTrackDragInProgress: Writable<boolean>;
|
|
142
131
|
previewTrackAvailable: Readable<boolean>;
|
|
@@ -158,7 +147,6 @@ export interface IPlayerState {
|
|
|
158
147
|
isLoaderVisible: Readable<boolean>;
|
|
159
148
|
bufferedProgress$: Readable<number>;
|
|
160
149
|
isLive$: Readable<boolean | undefined>;
|
|
161
|
-
canChangePlaybackSpeed$: Readable<boolean | undefined>;
|
|
162
150
|
isActiveLive$: Readable<boolean | undefined>;
|
|
163
151
|
isOldestAvailableLive$: Readable<boolean | undefined>;
|
|
164
152
|
isRewindableLive$: Readable<boolean>;
|
|
@@ -174,15 +162,8 @@ export interface IPlayerState {
|
|
|
174
162
|
currentQuality$: Readable<VideoQuality | undefined>;
|
|
175
163
|
autoQualityLimitingAvailable$: Readable<boolean>;
|
|
176
164
|
isAutoQualityEnabled$: Readable<boolean | undefined>;
|
|
177
|
-
availableQualities$: Readable<VideoQualityForRender[]>;
|
|
178
165
|
currentPlaybackRate$: Readable<number>;
|
|
179
|
-
availablePlaybackRates$: Readable<VideoPlaybackRate[]>;
|
|
180
|
-
currentSubtitle$: Readable<Omit<VideoSubtitle, "selected">>;
|
|
181
|
-
availableTextTracks$: Readable<ITextTrack[]>;
|
|
182
|
-
availableSubtitlesList$: Readable<VideoSubtitle[]>;
|
|
183
|
-
currentSubtitleCaptions$: Readable<VideoSubtitleParsed["texts"]>;
|
|
184
166
|
previewThumbsData$: Writable<ITimelinePreviewThumbsData | undefined>;
|
|
185
|
-
isAutoSubtitleCaptionVisible$: Writable<boolean>;
|
|
186
167
|
chromecastState$: Readable<ChromecastState>;
|
|
187
168
|
chromecastDeviceName$: Readable<string | undefined>;
|
|
188
169
|
chromecastConnected$: Readable<boolean>;
|
|
@@ -210,10 +191,6 @@ export interface IPlayerState {
|
|
|
210
191
|
playPrevChapterDisabledTooltip: PlayPrevChapterDisabledTooltipKey;
|
|
211
192
|
looped$: Writable<boolean>;
|
|
212
193
|
loadedMetadata$: Writable<boolean>;
|
|
213
|
-
/**
|
|
214
|
-
* Определяет, можно ли в целом увидеть/выбрать Авто режим выбора качества.
|
|
215
|
-
*/
|
|
216
|
-
isAutoQualityAvailable$: Readable<boolean>;
|
|
217
194
|
}
|
|
218
195
|
export interface IStoreInternalActions {
|
|
219
196
|
preload: () => void;
|
|
@@ -235,11 +212,6 @@ export interface IStoreInternalActions {
|
|
|
235
212
|
setAudioStream: (stream: IAudioStream) => void;
|
|
236
213
|
setVideoStream: (stream: IVideoStream) => void;
|
|
237
214
|
setQuality: (quality: VideoQualityUI, info?: SetQualityInfo) => void;
|
|
238
|
-
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
239
|
-
incrementPlaybackRate: () => VideoPlaybackRate;
|
|
240
|
-
decrementPlaybackRate: () => VideoPlaybackRate;
|
|
241
|
-
setSubtitle: (subtitle?: VideoSubtitle) => void;
|
|
242
|
-
toggleSubtitle: () => void;
|
|
243
215
|
togglePictureInPicture: () => void;
|
|
244
216
|
startScrubbing: (progress: number) => void;
|
|
245
217
|
progressScrubbing: (progress: number) => void;
|
|
@@ -266,13 +238,7 @@ export interface IStoreInternalActions {
|
|
|
266
238
|
startLogging: () => void;
|
|
267
239
|
stopLogging: () => void;
|
|
268
240
|
videoRotate: (alphaDiff?: number) => void;
|
|
269
|
-
startCameraManualRotation(mx: number, my: number): void;
|
|
270
|
-
stopCameraManualRotation(immediate?: boolean): void;
|
|
271
|
-
moveCameraFocusPX(xpx: number, ypx: number, dt: number): void;
|
|
272
|
-
holdCamera(): void;
|
|
273
|
-
releaseCamera(): void;
|
|
274
241
|
downloadVideo: () => void;
|
|
275
|
-
setLanguage: (language: InterfaceLanguage | string) => Promise<void>;
|
|
276
242
|
nextMovie: (movieId: number) => void;
|
|
277
243
|
correctSeekTimeToInteractive: (time: number) => number;
|
|
278
244
|
replayInteractive?: () => void;
|
|
@@ -288,7 +254,6 @@ export interface IStoreInternalActions {
|
|
|
288
254
|
nextVideoAnnouncementAuto: () => void;
|
|
289
255
|
nextVideoAnnouncementCancel: () => void;
|
|
290
256
|
checkFullscreenSupport: () => boolean;
|
|
291
|
-
changeDoubleForwardOn: (enabled: boolean) => void;
|
|
292
257
|
closePreviewTrack: () => void;
|
|
293
258
|
previewTrackOpened: () => void;
|
|
294
259
|
previewTrackDragStarted: () => void;
|
|
@@ -302,11 +267,8 @@ export interface IStoreExternalActions {
|
|
|
302
267
|
stop: () => void;
|
|
303
268
|
seekTime: (time: number) => void;
|
|
304
269
|
seekEpisodeStartTime: (time: number) => void;
|
|
305
|
-
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
306
270
|
setAutoQualityLimits: (limits: QualityLimits) => void;
|
|
307
271
|
setMuted: (muted: boolean) => void;
|
|
308
|
-
toggleSubtitle: () => void;
|
|
309
|
-
changeSubtitle: (enabled: boolean, id?: string) => void;
|
|
310
272
|
setVolume: (volume: number) => void;
|
|
311
273
|
returnFocusToEpisodes: () => void;
|
|
312
274
|
updateAdditionalSettingsItem: (itemId: string, fields: Partial<Omit<AdditionalSettingsMenuItem, "id" | "type">>) => void;
|
|
@@ -346,9 +308,6 @@ export interface IStore {
|
|
|
346
308
|
initVideo: (config: IStoreInitVideoConfig) => void;
|
|
347
309
|
videoId$: Writable<number | undefined>;
|
|
348
310
|
playerPhase: IPlayerPhase;
|
|
349
|
-
interfaceLanguage$: Readable<InterfaceLanguage | string>;
|
|
350
|
-
interfaceLanguageUpdated$: ISubject<void>;
|
|
351
|
-
isCyrillicRelatedInterface$: Readable<boolean>;
|
|
352
311
|
interactiveData?: IInteractiveData;
|
|
353
312
|
vsid$: Writable<string | undefined>;
|
|
354
313
|
events: IStoreEvents;
|
|
@@ -375,10 +334,9 @@ export interface IStore {
|
|
|
375
334
|
export type EnrichedStore = IStore & {
|
|
376
335
|
stores: ICompositionResult["stores"];
|
|
377
336
|
destroyComposedStore: () => void;
|
|
337
|
+
t: ICompositionResult["stores"]["languageStore"]["actions"]["t"];
|
|
378
338
|
};
|
|
379
339
|
export interface IStoreParams {
|
|
380
|
-
interfaceLanguage: InterfaceLanguage | string;
|
|
381
|
-
isCyrillicRelatedInterface: boolean;
|
|
382
340
|
initialVideoId?: number;
|
|
383
341
|
isTouch: boolean;
|
|
384
342
|
isLiveCatchUpMode?: boolean;
|
package/types/types/index.d.ts
CHANGED
|
@@ -316,7 +316,6 @@ export interface IVKVideoPlayerConfig {
|
|
|
316
316
|
fullScreenTarget?: HTMLElement;
|
|
317
317
|
failoverHosts?: string[];
|
|
318
318
|
showThumbTimer?: boolean;
|
|
319
|
-
is3DVideo?: boolean;
|
|
320
319
|
callbacks?: IVKVideoPlayerCallbacks;
|
|
321
320
|
additionalButtons?: (AdditionalButtonDeprecated | AdditionalDesktopControlPanelButton)[];
|
|
322
321
|
additionalSettingsMenuItems?: AdditionalSettingsMenuItem[];
|
|
@@ -381,6 +380,7 @@ export interface IPlayerControlsRef {
|
|
|
381
380
|
interactiveTimeIndicator?: HTMLElement;
|
|
382
381
|
timeline?: HTMLElement;
|
|
383
382
|
autoplayNextToggle?: HTMLButtonElement;
|
|
383
|
+
qoe?: HTMLElement;
|
|
384
384
|
}
|
|
385
385
|
export interface IPlayerDesktopControlsWidth {
|
|
386
386
|
prevButton: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EnrichedStore } from "../../store/types";
|
|
2
2
|
interface Params {
|
|
3
|
-
store:
|
|
3
|
+
store: EnrichedStore;
|
|
4
4
|
getFullscreenTarget: () => HTMLElement;
|
|
5
5
|
}
|
|
6
6
|
export declare const useIosSafariFullscreenSubtitles: ({ store, getFullscreenTarget }: Params) => void;
|