@devix-technologies/react-gjirafa-vp-player 1.0.31-beta.5 → 1.0.31-beta.8
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/README.md +33 -18
- package/dist/index.d.ts +550 -87
- package/dist/react-gjirafa-vp-player.es.js +913 -899
- package/dist/react-gjirafa-vp-player.umd.js +8 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,78 @@ import { VPPlayerInstance as VPPlayerInstance_2 } from '../../../../../../../src
|
|
|
10
10
|
import { VPPlayerProps as VPPlayerProps_2 } from '../../../../../../../src/interfaces';
|
|
11
11
|
import { VPPlayerRef as VPPlayerRef_2 } from '../../../../../../../src/interfaces';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Ad announcement configuration
|
|
15
|
+
*/
|
|
16
|
+
export declare interface AdAnnouncementConfig {
|
|
17
|
+
state: boolean;
|
|
18
|
+
timeBeforeAd: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Ad break configuration
|
|
23
|
+
*/
|
|
24
|
+
export declare interface AdBreak {
|
|
25
|
+
adTagUrl: string[];
|
|
26
|
+
breakType: "preroll" | "midroll" | "postroll";
|
|
27
|
+
breakTimingType: "time" | "percentage" | "playlist";
|
|
28
|
+
breakTimingValue: number;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Ad function configuration
|
|
33
|
+
*/
|
|
34
|
+
export declare interface AdFunction {
|
|
35
|
+
isDynamicKey: boolean;
|
|
36
|
+
isDynamicValue: boolean;
|
|
37
|
+
key: string;
|
|
38
|
+
order: number;
|
|
39
|
+
value: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Advertising configuration
|
|
44
|
+
*/
|
|
45
|
+
export declare interface AdsConfig {
|
|
46
|
+
skipAd?: AdSkipConfig;
|
|
47
|
+
vmap?: string;
|
|
48
|
+
VPAIDmode?: string;
|
|
49
|
+
enableProgrammability?: boolean;
|
|
50
|
+
functions?: AdFunction[];
|
|
51
|
+
bidding?: boolean;
|
|
52
|
+
afterMidrollBacktrack?: AfterMidrollBacktrack;
|
|
53
|
+
adBreaks?: AdBreak[];
|
|
54
|
+
bidders?: BidderConfig[];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Ad skip configuration
|
|
59
|
+
*/
|
|
60
|
+
export declare interface AdSkipConfig {
|
|
61
|
+
state: boolean;
|
|
62
|
+
skipFrom: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Ads localization
|
|
67
|
+
*/
|
|
68
|
+
export declare interface AdsLang {
|
|
69
|
+
ad?: string;
|
|
70
|
+
skip?: string;
|
|
71
|
+
skipIn?: string;
|
|
72
|
+
visit?: string;
|
|
73
|
+
info?: string;
|
|
74
|
+
simultaneousAds?: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* After midroll backtrack configuration
|
|
79
|
+
*/
|
|
80
|
+
export declare interface AfterMidrollBacktrack {
|
|
81
|
+
state: boolean;
|
|
82
|
+
seconds: number;
|
|
83
|
+
}
|
|
84
|
+
|
|
13
85
|
/**
|
|
14
86
|
* Appends the divId query parameter to a script URL.
|
|
15
87
|
* This tells the managed script which DOM element to use as the player container.
|
|
@@ -23,6 +95,118 @@ import { VPPlayerRef as VPPlayerRef_2 } from '../../../../../../../src/interface
|
|
|
23
95
|
*/
|
|
24
96
|
export declare const appendDivIdToUrl: (url: string, divId: string) => string;
|
|
25
97
|
|
|
98
|
+
/**
|
|
99
|
+
* Autopause on viewable configuration
|
|
100
|
+
*/
|
|
101
|
+
export declare interface AutopauseOnViewableConfig {
|
|
102
|
+
state: boolean;
|
|
103
|
+
percentageViewable?: number;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Autoplay toggle skin
|
|
108
|
+
*/
|
|
109
|
+
export declare interface AutoplaySkin {
|
|
110
|
+
autoplayOn?: string;
|
|
111
|
+
autoplayOff?: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Autostart on load configuration
|
|
116
|
+
*/
|
|
117
|
+
export declare interface AutostartOnLoadConfig {
|
|
118
|
+
state: boolean;
|
|
119
|
+
onMobile?: boolean;
|
|
120
|
+
onData?: boolean;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Autostart on viewable configuration
|
|
125
|
+
*/
|
|
126
|
+
export declare interface AutostartOnViewableConfig {
|
|
127
|
+
state: boolean;
|
|
128
|
+
onMobile?: boolean;
|
|
129
|
+
onData?: boolean;
|
|
130
|
+
percentageViewable?: number;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Bidder configuration
|
|
135
|
+
*/
|
|
136
|
+
export declare interface BidderConfig {
|
|
137
|
+
name: string;
|
|
138
|
+
params: Record<string, string>;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Control bar skin configuration
|
|
143
|
+
*/
|
|
144
|
+
export declare interface ControlBarSkin {
|
|
145
|
+
background?: string;
|
|
146
|
+
text?: string;
|
|
147
|
+
icons?: IconsSkin;
|
|
148
|
+
timeslider?: TimesliderSkin;
|
|
149
|
+
volume?: VolumeSkin;
|
|
150
|
+
timesliderOnAd?: TimesliderSkin;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Controls visibility configuration
|
|
155
|
+
*/
|
|
156
|
+
export declare interface ControlsConfig {
|
|
157
|
+
theaterButton?: boolean;
|
|
158
|
+
settingsButton?: boolean;
|
|
159
|
+
chromecastButton?: boolean;
|
|
160
|
+
nextButton?: boolean;
|
|
161
|
+
fullscreenButton?: boolean;
|
|
162
|
+
airplayButton?: boolean;
|
|
163
|
+
bigPlayButton?: boolean;
|
|
164
|
+
pictureInPictureButton?: boolean;
|
|
165
|
+
relatedButton?: boolean;
|
|
166
|
+
volumeButton?: boolean;
|
|
167
|
+
shareButton?: boolean;
|
|
168
|
+
subtitlesButton?: boolean;
|
|
169
|
+
showCaptions?: boolean;
|
|
170
|
+
audioOnlyButton?: boolean;
|
|
171
|
+
rewindButton?: boolean;
|
|
172
|
+
forwardButton?: boolean;
|
|
173
|
+
chaptersButton?: boolean;
|
|
174
|
+
showHelperButton?: boolean | null;
|
|
175
|
+
helperButtonImage?: string;
|
|
176
|
+
showLiveIcon?: boolean | null;
|
|
177
|
+
delayLiveVideosTime?: number;
|
|
178
|
+
delayLiveVideos?: boolean | null;
|
|
179
|
+
showAutoPlay?: boolean | null;
|
|
180
|
+
showQualities?: boolean | null;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Controls localization
|
|
185
|
+
*/
|
|
186
|
+
export declare interface ControlsLang {
|
|
187
|
+
play?: string;
|
|
188
|
+
pause?: string;
|
|
189
|
+
next?: string;
|
|
190
|
+
replay?: string;
|
|
191
|
+
volume?: string;
|
|
192
|
+
mute?: string;
|
|
193
|
+
unmute?: string;
|
|
194
|
+
settings?: string;
|
|
195
|
+
theater?: string;
|
|
196
|
+
fullscreen?: string;
|
|
197
|
+
chromecast?: string;
|
|
198
|
+
airplay?: string;
|
|
199
|
+
pictureInPicture?: string;
|
|
200
|
+
related?: string;
|
|
201
|
+
skipIntro?: string;
|
|
202
|
+
skipAd?: string;
|
|
203
|
+
adAnnouncement?: string;
|
|
204
|
+
playlistTitle?: string;
|
|
205
|
+
upNext?: string;
|
|
206
|
+
live?: string;
|
|
207
|
+
continueAfterPause?: string;
|
|
208
|
+
}
|
|
209
|
+
|
|
26
210
|
/**
|
|
27
211
|
* Represents data about the currently playing video.
|
|
28
212
|
* Used in onVideoStarted callback.
|
|
@@ -48,6 +232,20 @@ export declare interface CurrentVideoData {
|
|
|
48
232
|
description?: string;
|
|
49
233
|
}
|
|
50
234
|
|
|
235
|
+
/**
|
|
236
|
+
* VP Player Configuration Types
|
|
237
|
+
*
|
|
238
|
+
* Fully typed configuration based on VP Player documentation.
|
|
239
|
+
* @see {@link https://vp.gjirafa.tech/documentation/docs/web-player/setup-the-player/full-configuration}
|
|
240
|
+
* @see {@link https://vp.gjirafa.tech/documentation/docs/vertical-player/setup-the-player/configration}
|
|
241
|
+
*/
|
|
242
|
+
/**
|
|
243
|
+
* Deep partial utility type - makes all nested properties optional
|
|
244
|
+
*/
|
|
245
|
+
export declare type DeepPartial<T> = T extends object ? {
|
|
246
|
+
[P in keyof T]?: DeepPartial<T[P]>;
|
|
247
|
+
} : T;
|
|
248
|
+
|
|
51
249
|
/**
|
|
52
250
|
* Event callback refs interface for internal use
|
|
53
251
|
* Prevents stale closures in event handlers
|
|
@@ -56,7 +254,6 @@ export declare interface EventCallbackRefs {
|
|
|
56
254
|
onReady?: () => void;
|
|
57
255
|
onPlay?: () => void;
|
|
58
256
|
onPause?: () => void;
|
|
59
|
-
onResume?: () => void;
|
|
60
257
|
onComplete?: () => void;
|
|
61
258
|
onError?: (error: string) => void;
|
|
62
259
|
onVideoStarted?: (data: CurrentVideoData_2) => void;
|
|
@@ -70,6 +267,28 @@ export declare interface EventCallbackRefs {
|
|
|
70
267
|
onProgress20s?: (seconds: number) => void;
|
|
71
268
|
}
|
|
72
269
|
|
|
270
|
+
/**
|
|
271
|
+
* Float (picture-in-picture) configuration
|
|
272
|
+
*/
|
|
273
|
+
export declare interface FloatConfig {
|
|
274
|
+
state: boolean;
|
|
275
|
+
onMobile?: boolean;
|
|
276
|
+
position?: "TOP_LEFT" | "TOP_RIGHT" | "BOTTOM_LEFT" | "BOTTOM_RIGHT";
|
|
277
|
+
dismissible?: boolean;
|
|
278
|
+
requiresInteraction?: boolean;
|
|
279
|
+
toVideoThreshold?: number;
|
|
280
|
+
toFloatThreshold?: number;
|
|
281
|
+
style?: FloatStyleConfig;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Float style configuration
|
|
286
|
+
*/
|
|
287
|
+
export declare interface FloatStyleConfig {
|
|
288
|
+
width: number;
|
|
289
|
+
border?: string;
|
|
290
|
+
}
|
|
291
|
+
|
|
73
292
|
/**
|
|
74
293
|
* Generates a full player DOM element ID based on provided playerId and videoId.
|
|
75
294
|
* Falls back to "default" if playerId is not provided.
|
|
@@ -117,14 +336,74 @@ export declare const getPlayerScriptUrl: (playerVersion: string) => string;
|
|
|
117
336
|
export declare const getVerticalPlayerScriptUrl: (scriptId: string) => string;
|
|
118
337
|
|
|
119
338
|
/**
|
|
120
|
-
*
|
|
121
|
-
|
|
339
|
+
* Icons skin configuration
|
|
340
|
+
*/
|
|
341
|
+
export declare interface IconsSkin {
|
|
342
|
+
default?: string;
|
|
343
|
+
hover?: string;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Full localization configuration
|
|
348
|
+
*/
|
|
349
|
+
export declare interface LangConfig {
|
|
350
|
+
locale?: string;
|
|
351
|
+
controls?: ControlsLang;
|
|
352
|
+
settings?: SettingsLang;
|
|
353
|
+
ads?: AdsLang;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Logo configuration
|
|
358
|
+
*/
|
|
359
|
+
export declare interface LogoConfig {
|
|
360
|
+
state: boolean;
|
|
361
|
+
file?: string;
|
|
362
|
+
position?: "TOP_LEFT" | "TOP_RIGHT" | "BOTTOM_LEFT" | "BOTTOM_RIGHT";
|
|
363
|
+
defaultOpacity?: number;
|
|
364
|
+
inactiveOpacity?: number;
|
|
365
|
+
onClickURL?: string;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Menu background skin
|
|
370
|
+
*/
|
|
371
|
+
export declare interface MenuBackgroundSkin {
|
|
372
|
+
default?: string;
|
|
373
|
+
hover?: string;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Menu links skin
|
|
378
|
+
*/
|
|
379
|
+
export declare interface MenuLinksSkin {
|
|
380
|
+
default?: string;
|
|
381
|
+
hover?: string;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Menus skin configuration
|
|
386
|
+
*/
|
|
387
|
+
export declare interface MenusSkin {
|
|
388
|
+
background?: MenuBackgroundSkin;
|
|
389
|
+
links?: MenuLinksSkin;
|
|
390
|
+
autoplay?: AutoplaySkin;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Next video skin configuration
|
|
122
395
|
*/
|
|
123
|
-
export declare interface
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
396
|
+
export declare interface NextVideoSkin {
|
|
397
|
+
background?: string;
|
|
398
|
+
text?: string;
|
|
399
|
+
timeslider?: {
|
|
400
|
+
rail?: string;
|
|
401
|
+
progress?: string;
|
|
402
|
+
};
|
|
403
|
+
icons?: {
|
|
404
|
+
play?: PlayIconSkin;
|
|
405
|
+
close?: string;
|
|
406
|
+
};
|
|
128
407
|
}
|
|
129
408
|
|
|
130
409
|
/**
|
|
@@ -219,6 +498,36 @@ export declare interface PlayerObject {
|
|
|
219
498
|
progress?: number;
|
|
220
499
|
}
|
|
221
500
|
|
|
501
|
+
/**
|
|
502
|
+
* Player settings configuration (the `config` object in VP Player)
|
|
503
|
+
*/
|
|
504
|
+
export declare interface PlayerSettingsConfig {
|
|
505
|
+
configId?: string;
|
|
506
|
+
size?: SizeConfig;
|
|
507
|
+
adAnnouncement?: AdAnnouncementConfig;
|
|
508
|
+
autoplay?: boolean;
|
|
509
|
+
autostartOnLoad?: AutostartOnLoadConfig;
|
|
510
|
+
autostartOnViewable?: AutostartOnViewableConfig;
|
|
511
|
+
autopauseOnViewable?: AutopauseOnViewableConfig;
|
|
512
|
+
pauseOtherVideos?: boolean;
|
|
513
|
+
focusOnAutostart?: boolean;
|
|
514
|
+
showRelatedOnPause?: ShowRelatedOnPauseConfig;
|
|
515
|
+
playbackRates?: number[];
|
|
516
|
+
volume?: number;
|
|
517
|
+
muted?: boolean;
|
|
518
|
+
loop?: boolean;
|
|
519
|
+
casting?: boolean;
|
|
520
|
+
debug?: boolean;
|
|
521
|
+
skipAmount?: number;
|
|
522
|
+
adsRequireInteraction?: boolean;
|
|
523
|
+
float?: FloatConfig;
|
|
524
|
+
controls?: ControlsConfig;
|
|
525
|
+
logo?: LogoConfig;
|
|
526
|
+
socialMedia?: unknown[];
|
|
527
|
+
lang?: LangConfig;
|
|
528
|
+
skin?: SkinConfig;
|
|
529
|
+
}
|
|
530
|
+
|
|
222
531
|
/**
|
|
223
532
|
* Tracking metadata for analytics (available in v1.0.23+)
|
|
224
533
|
*/
|
|
@@ -245,6 +554,14 @@ as?: React.ElementType;
|
|
|
245
554
|
className?: string;
|
|
246
555
|
}, DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
247
556
|
|
|
557
|
+
/**
|
|
558
|
+
* Play icon skin
|
|
559
|
+
*/
|
|
560
|
+
export declare interface PlayIconSkin {
|
|
561
|
+
default?: string;
|
|
562
|
+
hover?: string;
|
|
563
|
+
}
|
|
564
|
+
|
|
248
565
|
/**
|
|
249
566
|
* API response structure for fetching playlist data.
|
|
250
567
|
*
|
|
@@ -254,6 +571,47 @@ export declare interface PlaylistApiResponse {
|
|
|
254
571
|
result: PlaylistItem[];
|
|
255
572
|
}
|
|
256
573
|
|
|
574
|
+
/**
|
|
575
|
+
* Playlist arrows skin
|
|
576
|
+
*/
|
|
577
|
+
export declare interface PlaylistArrowsSkin {
|
|
578
|
+
active?: string;
|
|
579
|
+
inactive?: string;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Playlist card duration skin
|
|
584
|
+
*/
|
|
585
|
+
export declare interface PlaylistCardDurationSkin {
|
|
586
|
+
text?: string;
|
|
587
|
+
background?: string;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Playlist card skin
|
|
592
|
+
*/
|
|
593
|
+
export declare interface PlaylistCardSkin {
|
|
594
|
+
background?: string;
|
|
595
|
+
title?: string;
|
|
596
|
+
duration?: PlaylistCardDurationSkin;
|
|
597
|
+
icons?: {
|
|
598
|
+
play?: PlayIconSkin;
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Playlist configuration
|
|
604
|
+
*/
|
|
605
|
+
export declare interface PlaylistConfig {
|
|
606
|
+
state: boolean;
|
|
607
|
+
playlistId: string;
|
|
608
|
+
playlistVideoIndex: number;
|
|
609
|
+
highlightCurrentVideo?: boolean;
|
|
610
|
+
algorithm?: string;
|
|
611
|
+
title?: string;
|
|
612
|
+
videos: PlaylistVideoConfig[];
|
|
613
|
+
}
|
|
614
|
+
|
|
257
615
|
/**
|
|
258
616
|
* Represents an item in a video playlist.
|
|
259
617
|
*
|
|
@@ -274,35 +632,99 @@ export declare interface PlaylistItem {
|
|
|
274
632
|
}
|
|
275
633
|
|
|
276
634
|
/**
|
|
277
|
-
*
|
|
635
|
+
* Playlist skin configuration
|
|
278
636
|
*/
|
|
279
|
-
export declare interface
|
|
280
|
-
|
|
637
|
+
export declare interface PlaylistSkin {
|
|
638
|
+
background?: string;
|
|
639
|
+
text?: string;
|
|
640
|
+
icons?: {
|
|
641
|
+
arrows?: PlaylistArrowsSkin;
|
|
642
|
+
close?: string;
|
|
643
|
+
};
|
|
644
|
+
card?: PlaylistCardSkin;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* Playlist video item in config
|
|
649
|
+
*/
|
|
650
|
+
export declare interface PlaylistVideoConfig {
|
|
281
651
|
videoId: string;
|
|
282
|
-
/** Video title */
|
|
283
652
|
title: string;
|
|
284
|
-
/** Video file URL (mp4, m3u8, etc.) */
|
|
285
653
|
file: string;
|
|
286
|
-
/** Alternative: HLS URL */
|
|
287
|
-
hlsUrl?: string;
|
|
288
|
-
/** Thumbnail image URL */
|
|
289
654
|
thumbnailUrl?: string;
|
|
290
|
-
/** Alternative: Thumbnail URL */
|
|
291
|
-
thumbnail?: string;
|
|
292
|
-
/** Video duration in seconds */
|
|
293
655
|
duration?: number;
|
|
294
656
|
}
|
|
295
657
|
|
|
658
|
+
/**
|
|
659
|
+
* Settings localization
|
|
660
|
+
*/
|
|
661
|
+
export declare interface SettingsLang {
|
|
662
|
+
quality?: string;
|
|
663
|
+
subtitles?: string;
|
|
664
|
+
autoplay?: string;
|
|
665
|
+
playbackRate?: string;
|
|
666
|
+
auto?: string;
|
|
667
|
+
off?: string;
|
|
668
|
+
normal?: string;
|
|
669
|
+
share?: string;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/**
|
|
673
|
+
* Show related on pause configuration
|
|
674
|
+
*/
|
|
675
|
+
export declare interface ShowRelatedOnPauseConfig {
|
|
676
|
+
state: boolean;
|
|
677
|
+
onMobile?: boolean;
|
|
678
|
+
from?: number;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* Size configuration
|
|
683
|
+
*/
|
|
684
|
+
export declare interface SizeConfig {
|
|
685
|
+
sizeType: "RESPONSIVE" | "FIXED";
|
|
686
|
+
aspectRatio?: "16:9" | "9:16" | "4:3" | "1:1";
|
|
687
|
+
width?: number;
|
|
688
|
+
height?: number;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Full skin configuration
|
|
693
|
+
*/
|
|
694
|
+
export declare interface SkinConfig {
|
|
695
|
+
controlBar?: ControlBarSkin;
|
|
696
|
+
menus?: MenusSkin;
|
|
697
|
+
nextVideo?: NextVideoSkin;
|
|
698
|
+
playlist?: PlaylistSkin;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Skip intro configuration
|
|
703
|
+
*/
|
|
704
|
+
export declare interface SkipIntroConfig {
|
|
705
|
+
state: boolean;
|
|
706
|
+
skipFrom: number;
|
|
707
|
+
skipTo: number;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Timeslider skin configuration
|
|
712
|
+
*/
|
|
713
|
+
export declare interface TimesliderSkin {
|
|
714
|
+
progress?: string;
|
|
715
|
+
rail?: string;
|
|
716
|
+
buffer?: string | null;
|
|
717
|
+
dragger?: string;
|
|
718
|
+
}
|
|
719
|
+
|
|
296
720
|
/**
|
|
297
721
|
* VP Player logic hook
|
|
298
722
|
*
|
|
299
723
|
* Supports two modes:
|
|
300
724
|
* 1. **Auto-init mode** (default): Load managed script that auto-initializes with GTech admin config
|
|
301
|
-
* 2. **
|
|
302
|
-
*
|
|
303
|
-
* The manual playlist mode is required for vertical player when supplying your own videos.
|
|
725
|
+
* 2. **Config override mode**: Fetch config, merge user overrides, and call setup()
|
|
304
726
|
*/
|
|
305
|
-
export declare const useVPPlayerLogic: ({ scriptId, videoId, scriptUrl, projectId,
|
|
727
|
+
export declare const useVPPlayerLogic: ({ scriptId, videoId, scriptUrl, projectId, config, playerId, isVertical, isReels, onReady, onPlay, onPause, onComplete, onError, onVideoStarted, onTimeUpdate, onQuartile25, onQuartile50, onQuartile75, onNext, onPrevious, onProgress10s, onProgress20s, }: VPPlayerProps_2) => {
|
|
306
728
|
playerRef: RefObject<HTMLDivElement | null>;
|
|
307
729
|
playerInstanceRef: RefObject<VPPlayerInstance_2 | null>;
|
|
308
730
|
isScriptLoaded: boolean;
|
|
@@ -347,6 +769,33 @@ export declare interface VideoApiResponse {
|
|
|
347
769
|
};
|
|
348
770
|
}
|
|
349
771
|
|
|
772
|
+
/**
|
|
773
|
+
* Video configuration
|
|
774
|
+
*/
|
|
775
|
+
export declare interface VideoConfig {
|
|
776
|
+
videoId?: string;
|
|
777
|
+
assetId?: string;
|
|
778
|
+
fpsCertificateUrl?: string;
|
|
779
|
+
widevineLicenseUrl?: string;
|
|
780
|
+
related?: string;
|
|
781
|
+
file?: string;
|
|
782
|
+
title?: string;
|
|
783
|
+
duration?: number;
|
|
784
|
+
description?: string;
|
|
785
|
+
live?: boolean;
|
|
786
|
+
liveType?: string;
|
|
787
|
+
thumbnail?: string;
|
|
788
|
+
filmstrip?: string;
|
|
789
|
+
tracks?: unknown[];
|
|
790
|
+
startTime?: number;
|
|
791
|
+
skipIntro?: SkipIntroConfig;
|
|
792
|
+
flags?: VideoFlag[];
|
|
793
|
+
playlist?: PlaylistConfig;
|
|
794
|
+
advertising?: boolean;
|
|
795
|
+
adId?: string;
|
|
796
|
+
ads?: AdsConfig;
|
|
797
|
+
}
|
|
798
|
+
|
|
350
799
|
/**
|
|
351
800
|
* Result structure returned by the video data fetching logic.
|
|
352
801
|
*
|
|
@@ -359,17 +808,34 @@ export declare interface VideoDataResult {
|
|
|
359
808
|
error: string | null;
|
|
360
809
|
}
|
|
361
810
|
|
|
811
|
+
/**
|
|
812
|
+
* Video flag/tag
|
|
813
|
+
*/
|
|
814
|
+
export declare interface VideoFlag {
|
|
815
|
+
id: number;
|
|
816
|
+
name: string;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Volume skin configuration
|
|
821
|
+
*/
|
|
822
|
+
export declare interface VolumeSkin {
|
|
823
|
+
dragger?: string;
|
|
824
|
+
progress?: string;
|
|
825
|
+
rail?: string;
|
|
826
|
+
notifier?: string;
|
|
827
|
+
}
|
|
828
|
+
|
|
362
829
|
/**
|
|
363
830
|
* Base URL for the VP Player host.
|
|
364
831
|
*/
|
|
365
832
|
export declare const VP_PLAYER_BASE_URL = "https://host.vpplayer.tech";
|
|
366
833
|
|
|
367
834
|
/**
|
|
368
|
-
* VP Player Component
|
|
835
|
+
* VP Player Component
|
|
369
836
|
*
|
|
370
837
|
* A thin React wrapper for the GTech VP Player.
|
|
371
|
-
*
|
|
372
|
-
* this wrapper just provides a DOM container, loads the script, and exposes events.
|
|
838
|
+
* Configuration can be managed through the GTech admin panel or via the `config` prop.
|
|
373
839
|
*
|
|
374
840
|
* ## Basic Usage
|
|
375
841
|
*
|
|
@@ -405,23 +871,25 @@ export declare const VP_PLAYER_BASE_URL = "https://host.vpplayer.tech";
|
|
|
405
871
|
* console.log(playerRef.current?.getPosition());
|
|
406
872
|
* ```
|
|
407
873
|
*
|
|
408
|
-
* ##
|
|
874
|
+
* ## Config Override Mode
|
|
409
875
|
*
|
|
410
|
-
*
|
|
876
|
+
* Override the fetched configuration with custom settings:
|
|
411
877
|
*
|
|
412
878
|
* ```tsx
|
|
413
879
|
* <VPPlayer
|
|
414
|
-
* scriptId="
|
|
415
|
-
*
|
|
416
|
-
*
|
|
417
|
-
*
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
880
|
+
* scriptId="ptkzurnx"
|
|
881
|
+
* videoId="vjsobqhe"
|
|
882
|
+
* config={{
|
|
883
|
+
* config: {
|
|
884
|
+
* muted: true,
|
|
885
|
+
* autoplay: true,
|
|
886
|
+
* skin: {
|
|
887
|
+
* controlBar: {
|
|
888
|
+
* background: 'rgba(0,0,0,0.8)'
|
|
889
|
+
* }
|
|
890
|
+
* }
|
|
891
|
+
* }
|
|
423
892
|
* }}
|
|
424
|
-
* onNext={() => console.log('Next video')}
|
|
425
893
|
* />
|
|
426
894
|
* ```
|
|
427
895
|
*
|
|
@@ -444,33 +912,14 @@ export declare const VP_PLAYER_BASE_URL = "https://host.vpplayer.tech";
|
|
|
444
912
|
export declare const VPPlayer: ForwardRefExoticComponent<VPPlayerProps_2 & RefAttributes<VPPlayerRef_2>>;
|
|
445
913
|
|
|
446
914
|
/**
|
|
447
|
-
* VP Player
|
|
448
|
-
*
|
|
449
|
-
* NOTE: In v2.0.0, configuration is managed through the GTech admin panel.
|
|
450
|
-
* These types are kept for reference only - the React wrapper does NOT
|
|
451
|
-
* pass configuration to the SDK. The managed script auto-initializes
|
|
452
|
-
* with all settings from the admin panel.
|
|
453
|
-
*
|
|
454
|
-
* @see {@link https://vp.gjirafa.tech/documentation/docs/web-player/setup-the-player/configuration}
|
|
455
|
-
*/
|
|
456
|
-
/**
|
|
457
|
-
* Advertising configuration interface (reference only)
|
|
458
|
-
* Configured through GTech admin panel
|
|
915
|
+
* Full VP Player configuration
|
|
916
|
+
* This is the root configuration object passed to vpPlayer().setup()
|
|
459
917
|
*/
|
|
460
|
-
export declare interface
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
vmap?: string;
|
|
466
|
-
VPAIDmode?: string;
|
|
467
|
-
enableProgrammability?: boolean;
|
|
468
|
-
adBreaks?: Array<{
|
|
469
|
-
adTagUrl: string[];
|
|
470
|
-
breakType?: "preroll" | "midroll" | "postroll";
|
|
471
|
-
breakTimingType?: "time" | "percentage" | "playlist";
|
|
472
|
-
breakTimingValue?: number;
|
|
473
|
-
}>;
|
|
918
|
+
export declare interface VPPlayerConfig {
|
|
919
|
+
projectId?: string;
|
|
920
|
+
biskoId?: string;
|
|
921
|
+
video?: VideoConfig;
|
|
922
|
+
config?: PlayerSettingsConfig;
|
|
474
923
|
}
|
|
475
924
|
|
|
476
925
|
/**
|
|
@@ -540,10 +989,10 @@ export declare interface VPPlayerInstance {
|
|
|
540
989
|
}
|
|
541
990
|
|
|
542
991
|
/**
|
|
543
|
-
* Simplified props interface for VPPlayer
|
|
992
|
+
* Simplified props interface for VPPlayer
|
|
544
993
|
*
|
|
545
|
-
* The wrapper is
|
|
546
|
-
*
|
|
994
|
+
* The wrapper is a thin bridge to the GTech JS player.
|
|
995
|
+
* Configuration can be managed through the GTech admin panel or via the `config` prop.
|
|
547
996
|
*
|
|
548
997
|
* @interface VPPlayerProps
|
|
549
998
|
*/
|
|
@@ -564,34 +1013,42 @@ export declare interface VPPlayerProps {
|
|
|
564
1013
|
*/
|
|
565
1014
|
scriptUrl?: string;
|
|
566
1015
|
/**
|
|
567
|
-
* GTech project ID
|
|
1016
|
+
* GTech project ID
|
|
1017
|
+
* Convenience prop that gets merged into config.projectId
|
|
1018
|
+
* Can also be set directly in the config prop
|
|
568
1019
|
*/
|
|
569
1020
|
projectId?: string;
|
|
570
1021
|
/**
|
|
571
|
-
*
|
|
572
|
-
* When provided, the wrapper will
|
|
573
|
-
*
|
|
1022
|
+
* Player configuration overrides.
|
|
1023
|
+
* When provided, the wrapper will:
|
|
1024
|
+
* 1. Try to fetch the JSON config from VP Player API
|
|
1025
|
+
* 2. Deep merge your overrides into the fetched config
|
|
1026
|
+
* 3. Call setup() with the merged configuration
|
|
574
1027
|
*
|
|
575
|
-
*
|
|
576
|
-
* supply your own videos (not using GTech admin playlists).
|
|
1028
|
+
* If fetch fails, your config will be used directly.
|
|
577
1029
|
*
|
|
578
1030
|
* @example
|
|
579
1031
|
* ```tsx
|
|
580
1032
|
* <VPPlayer
|
|
581
|
-
* scriptId="
|
|
582
|
-
*
|
|
583
|
-
*
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
589
|
-
*
|
|
1033
|
+
* scriptId="ptkzurnx"
|
|
1034
|
+
* videoId="vjsobqhe"
|
|
1035
|
+
* config={{
|
|
1036
|
+
* config: {
|
|
1037
|
+
* muted: true,
|
|
1038
|
+
* autoplay: true,
|
|
1039
|
+
* skin: {
|
|
1040
|
+
* controlBar: {
|
|
1041
|
+
* background: 'rgba(0,0,0,0.8)'
|
|
1042
|
+
* }
|
|
1043
|
+
* }
|
|
1044
|
+
* }
|
|
590
1045
|
* }}
|
|
591
1046
|
* />
|
|
592
1047
|
* ```
|
|
1048
|
+
*
|
|
1049
|
+
* @see {@link https://vp.gjirafa.tech/documentation/docs/web-player/setup-the-player/full-configuration}
|
|
593
1050
|
*/
|
|
594
|
-
|
|
1051
|
+
config?: DeepPartial<VPPlayerConfig>;
|
|
595
1052
|
/**
|
|
596
1053
|
* Custom container ID for the player div
|
|
597
1054
|
* Auto-generated if not provided
|
|
@@ -636,10 +1093,6 @@ export declare interface VPPlayerProps {
|
|
|
636
1093
|
* Called when playback is paused
|
|
637
1094
|
*/
|
|
638
1095
|
onPause?: () => void;
|
|
639
|
-
/**
|
|
640
|
-
* Called when playback resumes after pause
|
|
641
|
-
*/
|
|
642
|
-
onResume?: () => void;
|
|
643
1096
|
/**
|
|
644
1097
|
* Called when video playback completes
|
|
645
1098
|
*/
|
|
@@ -728,4 +1181,14 @@ export declare interface VPPlayerRef {
|
|
|
728
1181
|
isFullscreen: () => boolean;
|
|
729
1182
|
}
|
|
730
1183
|
|
|
1184
|
+
/**
|
|
1185
|
+
* VP Vertical Player configuration
|
|
1186
|
+
* Similar to VPPlayerConfig but optimized for vertical video
|
|
1187
|
+
*/
|
|
1188
|
+
export declare interface VPVerticalPlayerConfig {
|
|
1189
|
+
projectId?: string;
|
|
1190
|
+
video?: VideoConfig;
|
|
1191
|
+
config?: PlayerSettingsConfig;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
731
1194
|
export { }
|