suada-components 1.2.0 → 1.2.1
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/dist/components/{DailyMotion-BM__Vhyo.js → DailyMotion-C87ZJeRt.js} +1 -1
- package/dist/components/{DailyMotion-CxLlr0cR.esm.js → DailyMotion-DbDeP0dq.esm.js} +1 -1
- package/dist/components/{Facebook-DjA6gknl.esm.js → Facebook-B1XpGyBt.esm.js} +1 -1
- package/dist/components/{Facebook-Zkq5Dmij.js → Facebook-DigX8u_u.js} +1 -1
- package/dist/components/{FilePlayer-C-z4wNAs.esm.js → FilePlayer-BSL_U8r8.esm.js} +1 -1
- package/dist/components/{FilePlayer-PgJJpyg0.js → FilePlayer-BTuFK59w.js} +1 -1
- package/dist/components/{Kaltura-Btu7etAO.js → Kaltura-CKV92aVd.js} +1 -1
- package/dist/components/{Kaltura-B50rwAlx.esm.js → Kaltura-DAkp5nY0.esm.js} +1 -1
- package/dist/components/{Mixcloud-CpyWM87F.js → Mixcloud-CAgtZPq5.js} +1 -1
- package/dist/components/{Mixcloud-DCuoGh8X.esm.js → Mixcloud-CtWhrXiZ.esm.js} +1 -1
- package/dist/components/{Mux-DQjOzSHN.js → Mux-BRYGMFV_.js} +1 -1
- package/dist/components/{Mux-Bj4ELcFh.esm.js → Mux-C0xOzOps.esm.js} +1 -1
- package/dist/components/{Preview-Cgl2b2Yo.esm.js → Preview-Crcz-S0c.esm.js} +1 -1
- package/dist/components/{Preview-M0CQw6-7.js → Preview-DSBoVsm9.js} +1 -1
- package/dist/components/{SoundCloud-D8ulCoOA.js → SoundCloud-1V8ahw7A.js} +1 -1
- package/dist/components/{SoundCloud-BQ1Bv-Ms.esm.js → SoundCloud-BC8iiobM.esm.js} +1 -1
- package/dist/components/{Streamable-C_gvjkdy.js → Streamable-BhhnBO_c.js} +1 -1
- package/dist/components/{Streamable-DTv6vm7m.esm.js → Streamable-CGxErYVF.esm.js} +1 -1
- package/dist/components/{Twitch-BrQFLQcf.esm.js → Twitch-8quL43Fw.esm.js} +1 -1
- package/dist/components/{Twitch-RxI4d-d5.js → Twitch-E9YQS4X8.js} +1 -1
- package/dist/components/VideoPlayer/Player.d.ts +1 -0
- package/dist/components/VideoPlayer/Player.interface.d.ts +2 -1
- package/dist/components/VideoPlayer/Player.js +44 -23
- package/dist/components/VideoPlayer/Player.js.map +1 -1
- package/dist/components/VideoPlayer/Player.styles.d.ts +2 -0
- package/dist/components/VideoPlayer/Player.styles.js +21 -0
- package/dist/components/VideoPlayer/Player.styles.js.map +1 -1
- package/dist/components/VideoPlayer/useHlsSubtitles.d.ts +12 -0
- package/dist/components/VideoPlayer/useHlsSubtitles.js +73 -0
- package/dist/components/VideoPlayer/useHlsSubtitles.js.map +1 -0
- package/dist/components/VideoPlayer/usePlayerControls.js +52 -41
- package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
- package/dist/components/{Vidyard-uAwNCpw7.js → Vidyard-B3v7M2i3.js} +1 -1
- package/dist/components/{Vidyard-BCPvgfz4.esm.js → Vidyard-DsG0WHnh.esm.js} +1 -1
- package/dist/components/{Vimeo-Ocs8S_PZ.esm.js → Vimeo-CXKbdxkV.esm.js} +1 -1
- package/dist/components/{Vimeo-BfnFWKlr.js → Vimeo-ddQ8CMRR.js} +1 -1
- package/dist/components/{Wistia-DU_Kavg4.js → Wistia-B93lpDSs.js} +1 -1
- package/dist/components/{Wistia-CjqtkoU1.esm.js → Wistia-CJDzE0TP.esm.js} +1 -1
- package/dist/components/{YouTube-uIBmVRVn.js → YouTube-631v_AIH.js} +1 -1
- package/dist/components/{YouTube-CBwRsGZb.esm.js → YouTube-CdjuPIIO.esm.js} +1 -1
- package/dist/components/components/VideoPlayer/Player.d.ts +1 -0
- package/dist/components/components/VideoPlayer/Player.interface.d.ts +2 -1
- package/dist/components/components/VideoPlayer/Player.styles.d.ts +2 -0
- package/dist/components/components/VideoPlayer/useHlsSubtitles.d.ts +12 -0
- package/dist/components/{index-Dwz3FwAA.js → index-Ciqeqnts.js} +233 -111
- package/dist/components/{index-KXbxnyZn.esm.js → index-CyUx723z.esm.js} +233 -111
- package/dist/components/index.esm.js +1 -1
- package/dist/icons/components/VideoPlayer/Player.d.ts +1 -0
- package/dist/icons/components/VideoPlayer/Player.interface.d.ts +2 -1
- package/dist/icons/components/VideoPlayer/Player.styles.d.ts +2 -0
- package/dist/icons/components/VideoPlayer/useHlsSubtitles.d.ts +12 -0
- package/package.json +1 -1
|
@@ -81409,7 +81409,7 @@ function requirePlayers () {
|
|
|
81409
81409
|
canPlay: import_patterns.canPlay.youtube,
|
|
81410
81410
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81411
81411
|
/* webpackChunkName: 'reactPlayerYouTube' */
|
|
81412
|
-
'./YouTube-
|
|
81412
|
+
'./YouTube-631v_AIH.js'
|
|
81413
81413
|
); }).then(function (n) { return n.YouTube; }))
|
|
81414
81414
|
},
|
|
81415
81415
|
{
|
|
@@ -81418,7 +81418,7 @@ function requirePlayers () {
|
|
|
81418
81418
|
canPlay: import_patterns.canPlay.soundcloud,
|
|
81419
81419
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81420
81420
|
/* webpackChunkName: 'reactPlayerSoundCloud' */
|
|
81421
|
-
'./SoundCloud-
|
|
81421
|
+
'./SoundCloud-1V8ahw7A.js'
|
|
81422
81422
|
); }).then(function (n) { return n.SoundCloud; }))
|
|
81423
81423
|
},
|
|
81424
81424
|
{
|
|
@@ -81427,7 +81427,7 @@ function requirePlayers () {
|
|
|
81427
81427
|
canPlay: import_patterns.canPlay.vimeo,
|
|
81428
81428
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81429
81429
|
/* webpackChunkName: 'reactPlayerVimeo' */
|
|
81430
|
-
'./Vimeo-
|
|
81430
|
+
'./Vimeo-ddQ8CMRR.js'
|
|
81431
81431
|
); }).then(function (n) { return n.Vimeo; }))
|
|
81432
81432
|
},
|
|
81433
81433
|
{
|
|
@@ -81436,7 +81436,7 @@ function requirePlayers () {
|
|
|
81436
81436
|
canPlay: import_patterns.canPlay.mux,
|
|
81437
81437
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81438
81438
|
/* webpackChunkName: 'reactPlayerMux' */
|
|
81439
|
-
'./Mux-
|
|
81439
|
+
'./Mux-BRYGMFV_.js'
|
|
81440
81440
|
); }).then(function (n) { return n.Mux; }))
|
|
81441
81441
|
},
|
|
81442
81442
|
{
|
|
@@ -81445,7 +81445,7 @@ function requirePlayers () {
|
|
|
81445
81445
|
canPlay: import_patterns.canPlay.facebook,
|
|
81446
81446
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81447
81447
|
/* webpackChunkName: 'reactPlayerFacebook' */
|
|
81448
|
-
'./Facebook-
|
|
81448
|
+
'./Facebook-DigX8u_u.js'
|
|
81449
81449
|
); }).then(function (n) { return n.Facebook; }))
|
|
81450
81450
|
},
|
|
81451
81451
|
{
|
|
@@ -81454,7 +81454,7 @@ function requirePlayers () {
|
|
|
81454
81454
|
canPlay: import_patterns.canPlay.streamable,
|
|
81455
81455
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81456
81456
|
/* webpackChunkName: 'reactPlayerStreamable' */
|
|
81457
|
-
'./Streamable-
|
|
81457
|
+
'./Streamable-BhhnBO_c.js'
|
|
81458
81458
|
); }).then(function (n) { return n.Streamable; }))
|
|
81459
81459
|
},
|
|
81460
81460
|
{
|
|
@@ -81463,7 +81463,7 @@ function requirePlayers () {
|
|
|
81463
81463
|
canPlay: import_patterns.canPlay.wistia,
|
|
81464
81464
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81465
81465
|
/* webpackChunkName: 'reactPlayerWistia' */
|
|
81466
|
-
'./Wistia-
|
|
81466
|
+
'./Wistia-B93lpDSs.js'
|
|
81467
81467
|
); }).then(function (n) { return n.Wistia; }))
|
|
81468
81468
|
},
|
|
81469
81469
|
{
|
|
@@ -81472,7 +81472,7 @@ function requirePlayers () {
|
|
|
81472
81472
|
canPlay: import_patterns.canPlay.twitch,
|
|
81473
81473
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81474
81474
|
/* webpackChunkName: 'reactPlayerTwitch' */
|
|
81475
|
-
'./Twitch-
|
|
81475
|
+
'./Twitch-E9YQS4X8.js'
|
|
81476
81476
|
); }).then(function (n) { return n.Twitch; }))
|
|
81477
81477
|
},
|
|
81478
81478
|
{
|
|
@@ -81481,7 +81481,7 @@ function requirePlayers () {
|
|
|
81481
81481
|
canPlay: import_patterns.canPlay.dailymotion,
|
|
81482
81482
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81483
81483
|
/* webpackChunkName: 'reactPlayerDailyMotion' */
|
|
81484
|
-
'./DailyMotion-
|
|
81484
|
+
'./DailyMotion-C87ZJeRt.js'
|
|
81485
81485
|
); }).then(function (n) { return n.DailyMotion; }))
|
|
81486
81486
|
},
|
|
81487
81487
|
{
|
|
@@ -81490,7 +81490,7 @@ function requirePlayers () {
|
|
|
81490
81490
|
canPlay: import_patterns.canPlay.mixcloud,
|
|
81491
81491
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81492
81492
|
/* webpackChunkName: 'reactPlayerMixcloud' */
|
|
81493
|
-
'./Mixcloud-
|
|
81493
|
+
'./Mixcloud-CAgtZPq5.js'
|
|
81494
81494
|
); }).then(function (n) { return n.Mixcloud; }))
|
|
81495
81495
|
},
|
|
81496
81496
|
{
|
|
@@ -81499,7 +81499,7 @@ function requirePlayers () {
|
|
|
81499
81499
|
canPlay: import_patterns.canPlay.vidyard,
|
|
81500
81500
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81501
81501
|
/* webpackChunkName: 'reactPlayerVidyard' */
|
|
81502
|
-
'./Vidyard-
|
|
81502
|
+
'./Vidyard-B3v7M2i3.js'
|
|
81503
81503
|
); }).then(function (n) { return n.Vidyard; }))
|
|
81504
81504
|
},
|
|
81505
81505
|
{
|
|
@@ -81508,7 +81508,7 @@ function requirePlayers () {
|
|
|
81508
81508
|
canPlay: import_patterns.canPlay.kaltura,
|
|
81509
81509
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81510
81510
|
/* webpackChunkName: 'reactPlayerKaltura' */
|
|
81511
|
-
'./Kaltura-
|
|
81511
|
+
'./Kaltura-CKV92aVd.js'
|
|
81512
81512
|
); }).then(function (n) { return n.Kaltura; }))
|
|
81513
81513
|
},
|
|
81514
81514
|
{
|
|
@@ -81520,7 +81520,7 @@ function requirePlayers () {
|
|
|
81520
81520
|
},
|
|
81521
81521
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81522
81522
|
/* webpackChunkName: 'reactPlayerFilePlayer' */
|
|
81523
|
-
'./FilePlayer-
|
|
81523
|
+
'./FilePlayer-BTuFK59w.js'
|
|
81524
81524
|
); }).then(function (n) { return n.FilePlayer; }))
|
|
81525
81525
|
}
|
|
81526
81526
|
];
|
|
@@ -82341,7 +82341,7 @@ function requireReactPlayer () {
|
|
|
82341
82341
|
var import_Player = __toESM(/*@__PURE__*/ requirePlayer());
|
|
82342
82342
|
const Preview = (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
82343
82343
|
/* webpackChunkName: 'reactPlayerPreview' */
|
|
82344
|
-
'./Preview-
|
|
82344
|
+
'./Preview-DSBoVsm9.js'
|
|
82345
82345
|
); }).then(function (n) { return n.Preview; }));
|
|
82346
82346
|
const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
|
|
82347
82347
|
const IS_GLOBAL = typeof commonjsGlobal !== "undefined" && commonjsGlobal.window && commonjsGlobal.window.document;
|
|
@@ -82560,6 +82560,27 @@ var StyledSubtitles = dt.div(templateObject_7$1 || (templateObject_7$1 = __makeT
|
|
|
82560
82560
|
var $controls = _a.$controls;
|
|
82561
82561
|
return $controls ? '60px' : '10px';
|
|
82562
82562
|
});
|
|
82563
|
+
var HLS_SUBTITLE_STYLES = "\n /* Hide native HLS subtitles completely - comprehensive approach */\n video::cue {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n video::-webkit-media-text-track-display {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n video::cue-region {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n video::-webkit-media-text-track-container {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n /* Target ReactPlayer specifically */\n .react-player video::cue {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .react-player video::-webkit-media-text-track-display {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .react-player video::cue-region {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .react-player video::-webkit-media-text-track-container {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n /* Additional selectors for different browsers */\n video::-moz-media-text-track-display {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n video::-ms-media-text-track-display {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n /* Hide any subtitle overlays */\n .react-player video + div[style*=\"position: absolute\"] {\n display: none !important;\n }\n \n /* Target HLS video player specifically */\n .hls-video-player::cue {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .hls-video-player::-webkit-media-text-track-display {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .hls-video-player::-webkit-media-text-track-container {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n \n .hls-video-player::cue-region {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n }\n";
|
|
82564
|
+
var injectHLSSubtitleStyles = function injectHLSSubtitleStyles() {
|
|
82565
|
+
var addSubtitleStyles = function addSubtitleStyles() {
|
|
82566
|
+
var existingStyle = document.getElementById('hls-subtitle-styles');
|
|
82567
|
+
if (existingStyle) {
|
|
82568
|
+
existingStyle.remove();
|
|
82569
|
+
}
|
|
82570
|
+
var style = document.createElement('style');
|
|
82571
|
+
style.id = 'hls-subtitle-styles';
|
|
82572
|
+
style.textContent = HLS_SUBTITLE_STYLES;
|
|
82573
|
+
document.head.appendChild(style);
|
|
82574
|
+
};
|
|
82575
|
+
addSubtitleStyles();
|
|
82576
|
+
// Return cleanup function
|
|
82577
|
+
return function () {
|
|
82578
|
+
var existingStyle = document.getElementById('hls-subtitle-styles');
|
|
82579
|
+
if (existingStyle) {
|
|
82580
|
+
existingStyle.remove();
|
|
82581
|
+
}
|
|
82582
|
+
};
|
|
82583
|
+
};
|
|
82563
82584
|
var templateObject_1$9, templateObject_2$7, templateObject_3$4, templateObject_4$2, templateObject_5$2, templateObject_6$2, templateObject_7$1;
|
|
82564
82585
|
|
|
82565
82586
|
var StyledControls = dt.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: #565a62;\n padding: 12px 16px;\n position: relative;\n\n svg {\n cursor: pointer;\n\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px;\n height: 16px;\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: #565a62;\n padding: 12px 16px;\n position: relative;\n\n svg {\n cursor: pointer;\n\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px;\n height: 16px;\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"])), {
|
|
@@ -88710,13 +88731,18 @@ function usePlayerControls(_a) {
|
|
|
88710
88731
|
var duration = videoPlayerRef.current ? videoPlayerRef.current.getDuration() : 0;
|
|
88711
88732
|
var formatCurrentTime = FormatSecondsToTimeString(currentTime);
|
|
88712
88733
|
var formatDuration = FormatSecondsToTimeString(duration);
|
|
88734
|
+
// Using previous method for old videos(we used to parse subtitles via link)
|
|
88713
88735
|
React.useEffect(function () {
|
|
88714
|
-
|
|
88715
|
-
|
|
88716
|
-
|
|
88717
|
-
|
|
88718
|
-
|
|
88719
|
-
|
|
88736
|
+
if (subtitleUrl) {
|
|
88737
|
+
fetch(subtitleUrl).then(function (response) {
|
|
88738
|
+
return response.text();
|
|
88739
|
+
}).then(function (content) {
|
|
88740
|
+
var parsedSubtitles = parseVTT(content);
|
|
88741
|
+
setSubtitles(parsedSubtitles);
|
|
88742
|
+
})["catch"](function (error) {
|
|
88743
|
+
console.error('Error fetching external subtitles:', error);
|
|
88744
|
+
});
|
|
88745
|
+
}
|
|
88720
88746
|
}, [subtitleUrl]);
|
|
88721
88747
|
React.useEffect(function () {
|
|
88722
88748
|
var handleFullscreenChange = function handleFullscreenChange() {
|
|
@@ -88747,8 +88773,9 @@ function usePlayerControls(_a) {
|
|
|
88747
88773
|
}, [videoPlayerRef]);
|
|
88748
88774
|
var progressHandler = React.useCallback(function (state) {
|
|
88749
88775
|
return __awaiter(_this, void 0, void 0, function () {
|
|
88750
|
-
var currentSubtitleEntry, i, sub, i, sub, currentTime_1, now;
|
|
88751
|
-
|
|
88776
|
+
var videoElement, hasHLSSubtitles, currentSubtitleEntry, i, sub, i, sub, currentTime_1, now;
|
|
88777
|
+
var _a, _b;
|
|
88778
|
+
return __generator(this, function (_c) {
|
|
88752
88779
|
if (count > 2) {
|
|
88753
88780
|
if (controlRef.current) {
|
|
88754
88781
|
controlRef.current.style.visibility = 'hidden';
|
|
@@ -88757,44 +88784,47 @@ function usePlayerControls(_a) {
|
|
|
88757
88784
|
} else if (controlRef.current && controlRef.current.style.visibility === 'visible' && isControlsActive) {
|
|
88758
88785
|
count += 1;
|
|
88759
88786
|
}
|
|
88760
|
-
|
|
88761
|
-
|
|
88762
|
-
|
|
88763
|
-
|
|
88764
|
-
|
|
88765
|
-
|
|
88766
|
-
|
|
88767
|
-
|
|
88768
|
-
|
|
88787
|
+
videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
88788
|
+
hasHLSSubtitles = ((_b = videoElement === null || videoElement === void 0 ? void 0 : videoElement.textTracks) === null || _b === void 0 ? void 0 : _b.length) > 0;
|
|
88789
|
+
if (subtitles.length > 0 && !hasHLSSubtitles && isSubtitlesChecked) {
|
|
88790
|
+
currentSubtitleEntry = void 0;
|
|
88791
|
+
if (lastSubtitleIndexRef.current !== null) {
|
|
88792
|
+
if (state.playedSeconds > lastPlaybackTimeRef.current) {
|
|
88793
|
+
for (i = lastSubtitleIndexRef.current; i < subtitles.length; i++) {
|
|
88794
|
+
sub = subtitles[i];
|
|
88795
|
+
if (state.playedSeconds >= sub.start && state.playedSeconds <= sub.end) {
|
|
88796
|
+
currentSubtitleEntry = sub;
|
|
88797
|
+
lastSubtitleIndexRef.current = i;
|
|
88798
|
+
break;
|
|
88799
|
+
}
|
|
88769
88800
|
}
|
|
88770
|
-
}
|
|
88771
|
-
|
|
88772
|
-
|
|
88773
|
-
|
|
88774
|
-
|
|
88775
|
-
|
|
88776
|
-
|
|
88777
|
-
|
|
88778
|
-
break;
|
|
88801
|
+
} else {
|
|
88802
|
+
for (i = lastSubtitleIndexRef.current; i >= 0; i--) {
|
|
88803
|
+
sub = subtitles[i];
|
|
88804
|
+
if (state.playedSeconds >= sub.start && state.playedSeconds <= sub.end) {
|
|
88805
|
+
currentSubtitleEntry = sub;
|
|
88806
|
+
lastSubtitleIndexRef.current = i;
|
|
88807
|
+
break;
|
|
88808
|
+
}
|
|
88779
88809
|
}
|
|
88780
88810
|
}
|
|
88781
88811
|
}
|
|
88782
|
-
|
|
88783
|
-
|
|
88784
|
-
|
|
88785
|
-
|
|
88786
|
-
|
|
88812
|
+
if (!currentSubtitleEntry) {
|
|
88813
|
+
currentSubtitleEntry = subtitles.find(function (sub) {
|
|
88814
|
+
return state.playedSeconds >= sub.start && state.playedSeconds <= sub.end;
|
|
88815
|
+
});
|
|
88816
|
+
if (currentSubtitleEntry) {
|
|
88817
|
+
lastSubtitleIndexRef.current = subtitles.indexOf(currentSubtitleEntry);
|
|
88818
|
+
}
|
|
88819
|
+
}
|
|
88820
|
+
lastPlaybackTimeRef.current = state.playedSeconds;
|
|
88787
88821
|
if (currentSubtitleEntry) {
|
|
88788
|
-
|
|
88822
|
+
setCurrentSubtitle(currentSubtitleEntry.text);
|
|
88823
|
+
} else {
|
|
88824
|
+
setCurrentSubtitle(''); // Clear subtitle if none should be displayed
|
|
88825
|
+
lastSubtitleIndexRef.current = null;
|
|
88789
88826
|
}
|
|
88790
88827
|
}
|
|
88791
|
-
lastPlaybackTimeRef.current = state.playedSeconds;
|
|
88792
|
-
if (currentSubtitleEntry) {
|
|
88793
|
-
setCurrentSubtitle(currentSubtitleEntry.text);
|
|
88794
|
-
} else {
|
|
88795
|
-
setCurrentSubtitle(''); // Clear subtitle if none should be displayed
|
|
88796
|
-
lastSubtitleIndexRef.current = null;
|
|
88797
|
-
}
|
|
88798
88828
|
if (!seeking) {
|
|
88799
88829
|
setVideoState(function (prev) {
|
|
88800
88830
|
return __assign(__assign({}, prev), state);
|
|
@@ -88810,7 +88840,7 @@ function usePlayerControls(_a) {
|
|
|
88810
88840
|
return [2 /*return*/];
|
|
88811
88841
|
});
|
|
88812
88842
|
});
|
|
88813
|
-
}, [seeking, handleTrackProgress, isControlsActive, subtitles]);
|
|
88843
|
+
}, [seeking, handleTrackProgress, isControlsActive, subtitles, isSubtitlesChecked]);
|
|
88814
88844
|
var seekHandler = function seekHandler(e) {
|
|
88815
88845
|
var v = parseFloat(e.target.value) / 100;
|
|
88816
88846
|
setVideoState(function (prev) {
|
|
@@ -88822,7 +88852,7 @@ function usePlayerControls(_a) {
|
|
|
88822
88852
|
videoPlayerRef.current.seekTo(v);
|
|
88823
88853
|
}
|
|
88824
88854
|
};
|
|
88825
|
-
var seekMouseUpHandler = function seekMouseUpHandler(
|
|
88855
|
+
var seekMouseUpHandler = function seekMouseUpHandler() {
|
|
88826
88856
|
setVideoState(function (prev) {
|
|
88827
88857
|
return __assign(__assign({}, prev), {
|
|
88828
88858
|
seeking: false
|
|
@@ -88861,7 +88891,7 @@ function usePlayerControls(_a) {
|
|
|
88861
88891
|
});
|
|
88862
88892
|
}
|
|
88863
88893
|
};
|
|
88864
|
-
var onSeekMouseDownHandler = function onSeekMouseDownHandler(
|
|
88894
|
+
var onSeekMouseDownHandler = function onSeekMouseDownHandler() {
|
|
88865
88895
|
setVideoState(function (prev) {
|
|
88866
88896
|
return __assign(__assign({}, prev), {
|
|
88867
88897
|
seeking: true
|
|
@@ -89001,14 +89031,89 @@ function usePlayerControls(_a) {
|
|
|
89001
89031
|
isFullscreen: isFullscreen,
|
|
89002
89032
|
isControlsActive: isControlsActive,
|
|
89003
89033
|
currentSubtitle: currentSubtitle,
|
|
89034
|
+
setCurrentSubtitle: setCurrentSubtitle,
|
|
89004
89035
|
playing: isPlaying
|
|
89005
89036
|
};
|
|
89006
89037
|
}
|
|
89007
89038
|
|
|
89039
|
+
var useHLSSubtitles = function useHLSSubtitles(_a) {
|
|
89040
|
+
var videoPlayerRef = _a.videoPlayerRef,
|
|
89041
|
+
isSubtitlesChecked = _a.isSubtitlesChecked,
|
|
89042
|
+
setCurrentSubtitle = _a.setCurrentSubtitle;
|
|
89043
|
+
var hlsSubtitleTrackRef = React.useRef(null);
|
|
89044
|
+
var extractHLSSubtitleText = React.useCallback(function () {
|
|
89045
|
+
var _a;
|
|
89046
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89047
|
+
if (!videoElement || !videoElement.textTracks) return;
|
|
89048
|
+
var _loop_1 = function _loop_1(i) {
|
|
89049
|
+
var track = videoElement.textTracks[i];
|
|
89050
|
+
if (track.kind === 'subtitles' || track.kind === 'captions') {
|
|
89051
|
+
hlsSubtitleTrackRef.current = track;
|
|
89052
|
+
var handleCueChange = function handleCueChange() {
|
|
89053
|
+
if (isSubtitlesChecked && track.activeCues && track.activeCues.length > 0) {
|
|
89054
|
+
var currentCue = track.activeCues[0];
|
|
89055
|
+
if (currentCue && currentCue.text) {
|
|
89056
|
+
setCurrentSubtitle(currentCue.text);
|
|
89057
|
+
}
|
|
89058
|
+
} else if (isSubtitlesChecked) {
|
|
89059
|
+
setCurrentSubtitle('');
|
|
89060
|
+
}
|
|
89061
|
+
};
|
|
89062
|
+
track.removeEventListener('cuechange', handleCueChange);
|
|
89063
|
+
track.addEventListener('cuechange', handleCueChange);
|
|
89064
|
+
track.mode = isSubtitlesChecked ? 'showing' : 'hidden';
|
|
89065
|
+
return "break";
|
|
89066
|
+
}
|
|
89067
|
+
};
|
|
89068
|
+
for (var i = 0; i < videoElement.textTracks.length; i++) {
|
|
89069
|
+
var state_1 = _loop_1(i);
|
|
89070
|
+
if (state_1 === "break") break;
|
|
89071
|
+
}
|
|
89072
|
+
}, [isSubtitlesChecked, setCurrentSubtitle, videoPlayerRef]);
|
|
89073
|
+
var setupHLSSubtitleTracking = React.useCallback(function () {
|
|
89074
|
+
var _a;
|
|
89075
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89076
|
+
if (!videoElement) return;
|
|
89077
|
+
videoElement.classList.add('hls-video-player');
|
|
89078
|
+
var _checkTextTracks = function checkTextTracks(attempt) {
|
|
89079
|
+
if (attempt === void 0) {
|
|
89080
|
+
attempt = 0;
|
|
89081
|
+
}
|
|
89082
|
+
var textTracks = videoElement.textTracks;
|
|
89083
|
+
if (textTracks && textTracks.length > 0) {
|
|
89084
|
+
extractHLSSubtitleText();
|
|
89085
|
+
} else if (attempt < 5) {
|
|
89086
|
+
setTimeout(function () {
|
|
89087
|
+
return _checkTextTracks(attempt + 1);
|
|
89088
|
+
}, 300 * (attempt + 1));
|
|
89089
|
+
}
|
|
89090
|
+
};
|
|
89091
|
+
_checkTextTracks();
|
|
89092
|
+
videoElement.addEventListener('loadedmetadata', function () {
|
|
89093
|
+
_checkTextTracks();
|
|
89094
|
+
});
|
|
89095
|
+
}, [extractHLSSubtitleText, videoPlayerRef]);
|
|
89096
|
+
React.useEffect(function () {
|
|
89097
|
+
extractHLSSubtitleText();
|
|
89098
|
+
}, [isSubtitlesChecked, extractHLSSubtitleText]);
|
|
89099
|
+
React.useEffect(function () {
|
|
89100
|
+
var _a;
|
|
89101
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89102
|
+
if (videoElement && videoElement.textTracks && videoElement.textTracks.length > 0) {
|
|
89103
|
+
extractHLSSubtitleText();
|
|
89104
|
+
}
|
|
89105
|
+
}, [videoPlayerRef.current, extractHLSSubtitleText]);
|
|
89106
|
+
return {
|
|
89107
|
+
extractHLSSubtitleText: extractHLSSubtitleText,
|
|
89108
|
+
setupHLSSubtitleTracking: setupHLSSubtitleTracking
|
|
89109
|
+
};
|
|
89110
|
+
};
|
|
89111
|
+
|
|
89008
89112
|
var VideoPlayer = function VideoPlayer(_a) {
|
|
89113
|
+
var _b, _c, _d;
|
|
89009
89114
|
var customStyles = _a.customStyles,
|
|
89010
|
-
|
|
89011
|
-
startTime =
|
|
89115
|
+
_e = _a.startTime,
|
|
89116
|
+
startTime = _e === void 0 ? 0 : _e,
|
|
89012
89117
|
loading = _a.loading,
|
|
89013
89118
|
setLoading = _a.setLoading,
|
|
89014
89119
|
handleTrackProgress = _a.handleTrackProgress,
|
|
@@ -89020,20 +89125,21 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89020
89125
|
isPreviousVideo = _a.isPreviousVideo,
|
|
89021
89126
|
isPlaying = _a.isPlaying,
|
|
89022
89127
|
setIsPlaying = _a.setIsPlaying,
|
|
89023
|
-
|
|
89024
|
-
shouldPlayerBeFocusedOnSpaceClick =
|
|
89128
|
+
_f = _a.shouldPlayerBeFocusedOnSpaceClick,
|
|
89129
|
+
shouldPlayerBeFocusedOnSpaceClick = _f === void 0 ? false : _f,
|
|
89025
89130
|
showFavorite = _a.showFavorite,
|
|
89026
|
-
|
|
89027
|
-
isFavorite =
|
|
89028
|
-
|
|
89029
|
-
toggleFavorite =
|
|
89131
|
+
_g = _a.isFavorite,
|
|
89132
|
+
isFavorite = _g === void 0 ? false : _g,
|
|
89133
|
+
_h = _a.toggleFavorite,
|
|
89134
|
+
toggleFavorite = _h === void 0 ? function () {
|
|
89030
89135
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
89031
89136
|
return __generator(this, function (_a) {
|
|
89032
89137
|
return [2 /*return*/];
|
|
89033
89138
|
});
|
|
89034
89139
|
});
|
|
89035
|
-
} :
|
|
89036
|
-
var
|
|
89140
|
+
} : _h;
|
|
89141
|
+
var videoRef = React.useRef(null);
|
|
89142
|
+
var _j = usePlayerControls({
|
|
89037
89143
|
startTime: startTime,
|
|
89038
89144
|
setLoading: setLoading,
|
|
89039
89145
|
handleTrackProgress: handleTrackProgress,
|
|
@@ -89043,38 +89149,55 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89043
89149
|
setIsPlaying: setIsPlaying,
|
|
89044
89150
|
shouldPlayerBeFocusedOnSpaceClick: shouldPlayerBeFocusedOnSpaceClick
|
|
89045
89151
|
}),
|
|
89046
|
-
mouseMoveHandler =
|
|
89047
|
-
playerContainerRef =
|
|
89048
|
-
playPauseHandler =
|
|
89049
|
-
handleFullScreen =
|
|
89050
|
-
videoPlayerRef =
|
|
89051
|
-
playing =
|
|
89052
|
-
volume =
|
|
89053
|
-
muted =
|
|
89054
|
-
progressHandler =
|
|
89055
|
-
bufferStartHandler =
|
|
89056
|
-
bufferEndHandler =
|
|
89057
|
-
onPlayerStart =
|
|
89058
|
-
setVideoState =
|
|
89059
|
-
playbackRate =
|
|
89060
|
-
controlRef =
|
|
89061
|
-
rewindHandler =
|
|
89062
|
-
handleFastForward =
|
|
89063
|
-
formatCurrentTime =
|
|
89064
|
-
played =
|
|
89065
|
-
onSeekMouseDownHandler =
|
|
89066
|
-
seekHandler =
|
|
89067
|
-
seekMouseUpHandler =
|
|
89068
|
-
muteHandler =
|
|
89069
|
-
volumeChangeHandler =
|
|
89070
|
-
formatDuration =
|
|
89071
|
-
isSubtitlesChecked =
|
|
89072
|
-
toggleSubtitlesCheck =
|
|
89073
|
-
isFullscreen =
|
|
89074
|
-
isControlsActive =
|
|
89075
|
-
currentSubtitle =
|
|
89076
|
-
|
|
89077
|
-
var
|
|
89152
|
+
mouseMoveHandler = _j.mouseMoveHandler,
|
|
89153
|
+
playerContainerRef = _j.playerContainerRef,
|
|
89154
|
+
playPauseHandler = _j.playPauseHandler,
|
|
89155
|
+
handleFullScreen = _j.handleFullScreen,
|
|
89156
|
+
videoPlayerRef = _j.videoPlayerRef,
|
|
89157
|
+
playing = _j.playing,
|
|
89158
|
+
volume = _j.volume,
|
|
89159
|
+
muted = _j.muted,
|
|
89160
|
+
progressHandler = _j.progressHandler,
|
|
89161
|
+
bufferStartHandler = _j.bufferStartHandler,
|
|
89162
|
+
bufferEndHandler = _j.bufferEndHandler,
|
|
89163
|
+
onPlayerStart = _j.onPlayerStart,
|
|
89164
|
+
setVideoState = _j.setVideoState,
|
|
89165
|
+
playbackRate = _j.playbackRate,
|
|
89166
|
+
controlRef = _j.controlRef,
|
|
89167
|
+
rewindHandler = _j.rewindHandler,
|
|
89168
|
+
handleFastForward = _j.handleFastForward,
|
|
89169
|
+
formatCurrentTime = _j.formatCurrentTime,
|
|
89170
|
+
played = _j.played,
|
|
89171
|
+
onSeekMouseDownHandler = _j.onSeekMouseDownHandler,
|
|
89172
|
+
seekHandler = _j.seekHandler,
|
|
89173
|
+
seekMouseUpHandler = _j.seekMouseUpHandler,
|
|
89174
|
+
muteHandler = _j.muteHandler,
|
|
89175
|
+
volumeChangeHandler = _j.volumeChangeHandler,
|
|
89176
|
+
formatDuration = _j.formatDuration,
|
|
89177
|
+
isSubtitlesChecked = _j.isSubtitlesChecked,
|
|
89178
|
+
toggleSubtitlesCheck = _j.toggleSubtitlesCheck,
|
|
89179
|
+
isFullscreen = _j.isFullscreen,
|
|
89180
|
+
isControlsActive = _j.isControlsActive,
|
|
89181
|
+
currentSubtitle = _j.currentSubtitle,
|
|
89182
|
+
setCurrentSubtitle = _j.setCurrentSubtitle;
|
|
89183
|
+
var setupHLSSubtitleTracking = useHLSSubtitles({
|
|
89184
|
+
videoPlayerRef: videoPlayerRef,
|
|
89185
|
+
isSubtitlesChecked: isSubtitlesChecked,
|
|
89186
|
+
setCurrentSubtitle: setCurrentSubtitle
|
|
89187
|
+
}).setupHLSSubtitleTracking;
|
|
89188
|
+
React.useEffect(function () {
|
|
89189
|
+
var cleanup = injectHLSSubtitleStyles();
|
|
89190
|
+
return cleanup;
|
|
89191
|
+
}, []);
|
|
89192
|
+
var handlePlayerReady = function handlePlayerReady() {
|
|
89193
|
+
var _a;
|
|
89194
|
+
onPlayerStart();
|
|
89195
|
+
setupHLSSubtitleTracking();
|
|
89196
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89197
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89198
|
+
videoRef.current = videoElement;
|
|
89199
|
+
}
|
|
89200
|
+
};
|
|
89078
89201
|
return jsxRuntimeExports.jsxs(StyledWrapper, {
|
|
89079
89202
|
tabIndex: 0,
|
|
89080
89203
|
onMouseMove: mouseMoveHandler,
|
|
@@ -89083,12 +89206,11 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89083
89206
|
onClick: function onClick(e) {
|
|
89084
89207
|
return e.stopPropagation();
|
|
89085
89208
|
},
|
|
89086
|
-
|
|
89087
|
-
children: [jsxRuntimeExports.jsx(StyledVideoPlayerWrapper, {
|
|
89209
|
+
children: [jsxRuntimeExports.jsxs(StyledVideoPlayerWrapper, {
|
|
89088
89210
|
onClick: playPauseHandler,
|
|
89089
89211
|
onDoubleClick: handleFullScreen,
|
|
89090
|
-
children: jsxRuntimeExports.jsx(ReactPlayer, {
|
|
89091
|
-
url:
|
|
89212
|
+
children: [jsxRuntimeExports.jsx(ReactPlayer, {
|
|
89213
|
+
url: url,
|
|
89092
89214
|
ref: videoPlayerRef,
|
|
89093
89215
|
className: 'react-player',
|
|
89094
89216
|
width: '100%',
|
|
@@ -89099,7 +89221,7 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89099
89221
|
onProgress: progressHandler,
|
|
89100
89222
|
onBuffer: bufferStartHandler,
|
|
89101
89223
|
onBufferEnd: bufferEndHandler,
|
|
89102
|
-
onReady:
|
|
89224
|
+
onReady: handlePlayerReady,
|
|
89103
89225
|
onPlay: function onPlay() {
|
|
89104
89226
|
return setIsPlaying(true);
|
|
89105
89227
|
},
|
|
@@ -89127,13 +89249,16 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89127
89249
|
file: {
|
|
89128
89250
|
hlsOptions: {
|
|
89129
89251
|
autoStartLoad: true,
|
|
89130
|
-
renderTextTracksNatively:
|
|
89252
|
+
renderTextTracksNatively: true
|
|
89131
89253
|
}
|
|
89132
89254
|
}
|
|
89133
89255
|
}
|
|
89134
|
-
},
|
|
89135
|
-
|
|
89136
|
-
|
|
89256
|
+
}, url), loading && jsxRuntimeExports.jsx(StyledPlayerLoader, {
|
|
89257
|
+
children: jsxRuntimeExports.jsx(StyledLoader, {})
|
|
89258
|
+
}), isSubtitlesChecked && currentSubtitle && jsxRuntimeExports.jsx(StyledSubtitles, {
|
|
89259
|
+
"$controls": isControlsActive,
|
|
89260
|
+
children: currentSubtitle
|
|
89261
|
+
})]
|
|
89137
89262
|
}), jsxRuntimeExports.jsx(StyledControlsContainer, {
|
|
89138
89263
|
ref: controlRef,
|
|
89139
89264
|
children: jsxRuntimeExports.jsx(Controls, {
|
|
@@ -89159,16 +89284,13 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89159
89284
|
isFavorite: isFavorite,
|
|
89160
89285
|
toggleIsFavorite: toggleFavorite,
|
|
89161
89286
|
isFullscreen: isFullscreen,
|
|
89162
|
-
subtitle: !!subtitleUrl,
|
|
89287
|
+
subtitle: !!subtitleUrl || ((_d = (_c = (_b = videoPlayerRef.current) === null || _b === void 0 ? void 0 : _b.getInternalPlayer()) === null || _c === void 0 ? void 0 : _c.textTracks) === null || _d === void 0 ? void 0 : _d.length) > 0,
|
|
89163
89288
|
handleSkipBackward: handlePreviousVideo,
|
|
89164
89289
|
handleSkipForward: handleNextVideo,
|
|
89165
89290
|
isNextVideo: isNextVideo,
|
|
89166
89291
|
isPreviousVideo: isPreviousVideo,
|
|
89167
89292
|
showFavorite: showFavorite
|
|
89168
89293
|
})
|
|
89169
|
-
}), isSubtitlesChecked && currentSubtitle && jsxRuntimeExports.jsx(StyledSubtitles, {
|
|
89170
|
-
"$controls": isControlsActive,
|
|
89171
|
-
children: currentSubtitle
|
|
89172
89294
|
})]
|
|
89173
89295
|
});
|
|
89174
89296
|
};
|