suada-components 1.9.1 → 1.10.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/dist/{DailyMotion-B-Q4fBEb.js → DailyMotion-DacNkqsi.js} +1 -1
- package/dist/{DailyMotion-BAvo3Toe.esm.js → DailyMotion-gaY-1HqX.esm.js} +1 -1
- package/dist/{components/Facebook-CDrTA2_L.esm.js → Facebook-C_tH1Bi_.esm.js} +1 -1
- package/dist/{components/Facebook-YxZce26V.js → Facebook-D4wLMJkY.js} +1 -1
- package/dist/{FilePlayer-CQ80KWY2.js → FilePlayer-B4s5OcYq.js} +1 -1
- package/dist/{FilePlayer-BOZIvaDy.esm.js → FilePlayer-DqR2mvGK.esm.js} +1 -1
- package/dist/{Kaltura-B12Xdl6X.esm.js → Kaltura-C9QbmEfO.esm.js} +1 -1
- package/dist/{components/Kaltura-krSxvIBr.js → Kaltura-kCqUZWuf.js} +1 -1
- package/dist/{Mixcloud-DGQnlDAK.js → Mixcloud-2c71b3Nf.js} +1 -1
- package/dist/{Mixcloud-JfeQIOki.esm.js → Mixcloud-ib_DIXF1.esm.js} +1 -1
- package/dist/{Mux-CiKZc8gj.js → Mux-BsXgGo6C.js} +1 -1
- package/dist/{components/Mux-BZleoaJh.esm.js → Mux-CJ6kEh1R.esm.js} +1 -1
- package/dist/{Preview-DvZKrgm5.js → Preview-gEkhA4mX.js} +1 -1
- package/dist/{Preview-DSovY9gr.esm.js → Preview-kqr7fWet.esm.js} +1 -1
- package/dist/{SoundCloud-Di7z3nmP.js → SoundCloud-BWup2g--.js} +1 -1
- package/dist/{SoundCloud-j_R0lK8D.esm.js → SoundCloud-DJM0bsQG.esm.js} +1 -1
- package/dist/{Streamable-CRhXZIKP.esm.js → Streamable-CJltauTy.esm.js} +1 -1
- package/dist/{Streamable-CV1mgzRv.js → Streamable-UeTHV2nZ.js} +1 -1
- package/dist/{components/Twitch-CXOhay4a.esm.js → Twitch-C9qq_89Q.esm.js} +1 -1
- package/dist/{Twitch-Dj66vkCD.js → Twitch-_N8mEsiS.js} +1 -1
- package/dist/{components/Vidyard-Cn_LcGwi.js → Vidyard-CQuxB99Z.js} +1 -1
- package/dist/{components/Vidyard-YcZH6kkW.esm.js → Vidyard-gtcLQdYd.esm.js} +1 -1
- package/dist/{Vimeo-Ba9C6utC.esm.js → Vimeo-Dzp5eoLi.esm.js} +1 -1
- package/dist/{Vimeo-DePzl7Sn.js → Vimeo-nhXVoFTb.js} +1 -1
- package/dist/{components/Wistia-COWrV8QC.js → Wistia-C1DqA9IW.js} +1 -1
- package/dist/{components/Wistia-PneZ48dn.esm.js → Wistia-DV3BO3z9.esm.js} +1 -1
- package/dist/{components/YouTube-BUyvzJQw.esm.js → YouTube-BKwvJCnt.esm.js} +1 -1
- package/dist/{YouTube-vwMoW93C.js → YouTube-DDou5phH.js} +1 -1
- package/dist/components/{DailyMotion-Cr_8IZRR.js → DailyMotion-B8IJNjSc.js} +1 -1
- package/dist/components/{DailyMotion-D2n1NDDi.esm.js → DailyMotion-COg3zgIZ.esm.js} +1 -1
- package/dist/{Facebook-CASik-P5.js → components/Facebook-DJ7a3Bj8.js} +1 -1
- package/dist/{Facebook-C8GOujDt.esm.js → components/Facebook-NS80Vk6j.esm.js} +1 -1
- package/dist/components/{FilePlayer-BzkVMbQ8.esm.js → FilePlayer-D-fc3B0E.esm.js} +1 -1
- package/dist/components/{FilePlayer-DqqTufgX.js → FilePlayer-SyLt5qGX.js} +1 -1
- package/dist/{Kaltura-nYc5k7UB.js → components/Kaltura-BTFxSMxP.js} +1 -1
- package/dist/components/{Kaltura-B0UZLr6g.esm.js → Kaltura-CmFIWSef.esm.js} +1 -1
- package/dist/components/{Mixcloud-D9qk3D6i.esm.js → Mixcloud-CO5MsWUJ.esm.js} +1 -1
- package/dist/components/{Mixcloud-BCT5e47d.js → Mixcloud-DHAfVpcc.js} +1 -1
- package/dist/{Mux-BHWzpAR-.esm.js → components/Mux-C8-HithD.esm.js} +1 -1
- package/dist/components/{Mux-D_si09u2.js → Mux-bycDxP8G.js} +1 -1
- package/dist/components/{Preview-DQLbQ8_C.esm.js → Preview-Clg3y6sj.esm.js} +1 -1
- package/dist/components/{Preview-CmduMeEZ.js → Preview-CzpcknZI.js} +1 -1
- package/dist/components/{SoundCloud-BHgTfaW7.js → SoundCloud-Dz9DeIIM.js} +1 -1
- package/dist/components/{SoundCloud-BgnX8kOF.esm.js → SoundCloud-LfWEBVy1.esm.js} +1 -1
- package/dist/components/{Streamable-DbRbUflP.esm.js → Streamable-BpcVhi4M.esm.js} +1 -1
- package/dist/components/{Streamable-DTAzjVwd.js → Streamable-Cs_c-7jS.js} +1 -1
- package/dist/{Twitch-6icfp-ZE.esm.js → components/Twitch-BJ9aSIM2.esm.js} +1 -1
- package/dist/components/{Twitch-CnEk-l9R.js → Twitch-C9bksXF6.js} +1 -1
- package/dist/components/VideoPlayer/usePlayerControls.js +37 -27
- package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
- package/dist/{Vidyard-B-qmApe9.js → components/Vidyard-CsUFSBXh.js} +1 -1
- package/dist/{Vidyard--KX47pZ0.esm.js → components/Vidyard-Dc8NHJ7p.esm.js} +1 -1
- package/dist/components/{Vimeo-Cv0qx3aR.esm.js → Vimeo-CwlScNtK.esm.js} +1 -1
- package/dist/components/{Vimeo-BUVxWt7t.js → Vimeo-D6C93592.js} +1 -1
- package/dist/{Wistia-CXYB3Yus.js → components/Wistia-Bxvdn3oO.js} +1 -1
- package/dist/{Wistia-DWJcdcY2.esm.js → components/Wistia-Cwl4fNWW.esm.js} +1 -1
- package/dist/components/{YouTube-DeQdfkWm.js → YouTube-BF85SRPF.js} +1 -1
- package/dist/{YouTube-DdBVPxzz.esm.js → components/YouTube-DKkYzN7-.esm.js} +1 -1
- package/dist/components/{index-Bs-XxxV4.js → index-C08W0lXg.js} +186 -173
- package/dist/components/{index-C4Mk2H3N.esm.js → index-F6zEoSWf.esm.js} +186 -173
- package/dist/components/index.esm.js +1 -1
- package/dist/{index-Bp-idbg5.esm.js → index-CcTTuhg8.esm.js} +186 -173
- package/dist/{index-CSj9NYxJ.js → index-Dq4qpx9F.js} +186 -173
- package/dist/index.esm.js +1 -1
- package/package.json +1 -1
|
@@ -81355,7 +81355,7 @@ function requirePlayers () {
|
|
|
81355
81355
|
canPlay: import_patterns.canPlay.youtube,
|
|
81356
81356
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81357
81357
|
/* webpackChunkName: 'reactPlayerYouTube' */
|
|
81358
|
-
'./YouTube-
|
|
81358
|
+
'./YouTube-DKkYzN7-.esm.js'
|
|
81359
81359
|
).then(function (n) { return n.Y; }))
|
|
81360
81360
|
},
|
|
81361
81361
|
{
|
|
@@ -81364,7 +81364,7 @@ function requirePlayers () {
|
|
|
81364
81364
|
canPlay: import_patterns.canPlay.soundcloud,
|
|
81365
81365
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81366
81366
|
/* webpackChunkName: 'reactPlayerSoundCloud' */
|
|
81367
|
-
'./SoundCloud-
|
|
81367
|
+
'./SoundCloud-LfWEBVy1.esm.js'
|
|
81368
81368
|
).then(function (n) { return n.S; }))
|
|
81369
81369
|
},
|
|
81370
81370
|
{
|
|
@@ -81373,7 +81373,7 @@ function requirePlayers () {
|
|
|
81373
81373
|
canPlay: import_patterns.canPlay.vimeo,
|
|
81374
81374
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81375
81375
|
/* webpackChunkName: 'reactPlayerVimeo' */
|
|
81376
|
-
'./Vimeo-
|
|
81376
|
+
'./Vimeo-CwlScNtK.esm.js'
|
|
81377
81377
|
).then(function (n) { return n.V; }))
|
|
81378
81378
|
},
|
|
81379
81379
|
{
|
|
@@ -81382,7 +81382,7 @@ function requirePlayers () {
|
|
|
81382
81382
|
canPlay: import_patterns.canPlay.mux,
|
|
81383
81383
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81384
81384
|
/* webpackChunkName: 'reactPlayerMux' */
|
|
81385
|
-
'./Mux-
|
|
81385
|
+
'./Mux-C8-HithD.esm.js'
|
|
81386
81386
|
).then(function (n) { return n.M; }))
|
|
81387
81387
|
},
|
|
81388
81388
|
{
|
|
@@ -81391,7 +81391,7 @@ function requirePlayers () {
|
|
|
81391
81391
|
canPlay: import_patterns.canPlay.facebook,
|
|
81392
81392
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81393
81393
|
/* webpackChunkName: 'reactPlayerFacebook' */
|
|
81394
|
-
'./Facebook-
|
|
81394
|
+
'./Facebook-NS80Vk6j.esm.js'
|
|
81395
81395
|
).then(function (n) { return n.F; }))
|
|
81396
81396
|
},
|
|
81397
81397
|
{
|
|
@@ -81400,7 +81400,7 @@ function requirePlayers () {
|
|
|
81400
81400
|
canPlay: import_patterns.canPlay.streamable,
|
|
81401
81401
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81402
81402
|
/* webpackChunkName: 'reactPlayerStreamable' */
|
|
81403
|
-
'./Streamable-
|
|
81403
|
+
'./Streamable-BpcVhi4M.esm.js'
|
|
81404
81404
|
).then(function (n) { return n.S; }))
|
|
81405
81405
|
},
|
|
81406
81406
|
{
|
|
@@ -81409,7 +81409,7 @@ function requirePlayers () {
|
|
|
81409
81409
|
canPlay: import_patterns.canPlay.wistia,
|
|
81410
81410
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81411
81411
|
/* webpackChunkName: 'reactPlayerWistia' */
|
|
81412
|
-
'./Wistia-
|
|
81412
|
+
'./Wistia-Cwl4fNWW.esm.js'
|
|
81413
81413
|
).then(function (n) { return n.W; }))
|
|
81414
81414
|
},
|
|
81415
81415
|
{
|
|
@@ -81418,7 +81418,7 @@ function requirePlayers () {
|
|
|
81418
81418
|
canPlay: import_patterns.canPlay.twitch,
|
|
81419
81419
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81420
81420
|
/* webpackChunkName: 'reactPlayerTwitch' */
|
|
81421
|
-
'./Twitch-
|
|
81421
|
+
'./Twitch-BJ9aSIM2.esm.js'
|
|
81422
81422
|
).then(function (n) { return n.T; }))
|
|
81423
81423
|
},
|
|
81424
81424
|
{
|
|
@@ -81427,7 +81427,7 @@ function requirePlayers () {
|
|
|
81427
81427
|
canPlay: import_patterns.canPlay.dailymotion,
|
|
81428
81428
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81429
81429
|
/* webpackChunkName: 'reactPlayerDailyMotion' */
|
|
81430
|
-
'./DailyMotion-
|
|
81430
|
+
'./DailyMotion-COg3zgIZ.esm.js'
|
|
81431
81431
|
).then(function (n) { return n.D; }))
|
|
81432
81432
|
},
|
|
81433
81433
|
{
|
|
@@ -81436,7 +81436,7 @@ function requirePlayers () {
|
|
|
81436
81436
|
canPlay: import_patterns.canPlay.mixcloud,
|
|
81437
81437
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81438
81438
|
/* webpackChunkName: 'reactPlayerMixcloud' */
|
|
81439
|
-
'./Mixcloud-
|
|
81439
|
+
'./Mixcloud-CO5MsWUJ.esm.js'
|
|
81440
81440
|
).then(function (n) { return n.M; }))
|
|
81441
81441
|
},
|
|
81442
81442
|
{
|
|
@@ -81445,7 +81445,7 @@ function requirePlayers () {
|
|
|
81445
81445
|
canPlay: import_patterns.canPlay.vidyard,
|
|
81446
81446
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81447
81447
|
/* webpackChunkName: 'reactPlayerVidyard' */
|
|
81448
|
-
'./Vidyard-
|
|
81448
|
+
'./Vidyard-Dc8NHJ7p.esm.js'
|
|
81449
81449
|
).then(function (n) { return n.V; }))
|
|
81450
81450
|
},
|
|
81451
81451
|
{
|
|
@@ -81454,7 +81454,7 @@ function requirePlayers () {
|
|
|
81454
81454
|
canPlay: import_patterns.canPlay.kaltura,
|
|
81455
81455
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81456
81456
|
/* webpackChunkName: 'reactPlayerKaltura' */
|
|
81457
|
-
'./Kaltura-
|
|
81457
|
+
'./Kaltura-CmFIWSef.esm.js'
|
|
81458
81458
|
).then(function (n) { return n.K; }))
|
|
81459
81459
|
},
|
|
81460
81460
|
{
|
|
@@ -81466,7 +81466,7 @@ function requirePlayers () {
|
|
|
81466
81466
|
},
|
|
81467
81467
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81468
81468
|
/* webpackChunkName: 'reactPlayerFilePlayer' */
|
|
81469
|
-
'./FilePlayer-
|
|
81469
|
+
'./FilePlayer-D-fc3B0E.esm.js'
|
|
81470
81470
|
).then(function (n) { return n.F; }))
|
|
81471
81471
|
}
|
|
81472
81472
|
];
|
|
@@ -82287,7 +82287,7 @@ function requireReactPlayer () {
|
|
|
82287
82287
|
var import_Player = __toESM(/*@__PURE__*/ requirePlayer());
|
|
82288
82288
|
const Preview = (0, import_utils.lazy)(() => import(
|
|
82289
82289
|
/* webpackChunkName: 'reactPlayerPreview' */
|
|
82290
|
-
'./Preview-
|
|
82290
|
+
'./Preview-Clg3y6sj.esm.js'
|
|
82291
82291
|
).then(function (n) { return n.P; }));
|
|
82292
82292
|
const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
|
|
82293
82293
|
const IS_GLOBAL = typeof commonjsGlobal !== "undefined" && commonjsGlobal.window && commonjsGlobal.window.document;
|
|
@@ -88738,6 +88738,131 @@ var useEventListener = function useEventListener(eventName, handler, element, sh
|
|
|
88738
88738
|
}, [eventName, element, shouldRun]);
|
|
88739
88739
|
};
|
|
88740
88740
|
|
|
88741
|
+
var PiPContext = /*#__PURE__*/createContext(undefined);
|
|
88742
|
+
var PiPProvider = function PiPProvider(_a) {
|
|
88743
|
+
var children = _a.children;
|
|
88744
|
+
var _b = useState(false),
|
|
88745
|
+
isPiPActive = _b[0],
|
|
88746
|
+
setIsPiPActive = _b[1];
|
|
88747
|
+
var _c = useState(null),
|
|
88748
|
+
pipVideoState = _c[0],
|
|
88749
|
+
setPipVideoState = _c[1];
|
|
88750
|
+
var videoElementRef = useRef(null);
|
|
88751
|
+
var updateVideoState = useCallback(function (state) {
|
|
88752
|
+
setPipVideoState(function (prev) {
|
|
88753
|
+
return prev ? __assign(__assign({}, prev), state) : null;
|
|
88754
|
+
});
|
|
88755
|
+
}, []);
|
|
88756
|
+
var registerVideoElement = useCallback(function (element) {
|
|
88757
|
+
videoElementRef.current = element;
|
|
88758
|
+
}, []);
|
|
88759
|
+
var unregisterVideoElement = useCallback(function () {
|
|
88760
|
+
videoElementRef.current = null;
|
|
88761
|
+
}, []);
|
|
88762
|
+
var enterPiP = useCallback(function (videoElement, videoState) {
|
|
88763
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
88764
|
+
var error_1;
|
|
88765
|
+
return __generator(this, function (_a) {
|
|
88766
|
+
switch (_a.label) {
|
|
88767
|
+
case 0:
|
|
88768
|
+
if (!document.pictureInPictureEnabled) {
|
|
88769
|
+
console.warn('Picture-in-Picture is not supported in this browser');
|
|
88770
|
+
return [2 /*return*/, false];
|
|
88771
|
+
}
|
|
88772
|
+
if (document.pictureInPictureElement) {
|
|
88773
|
+
console.warn('Another video is already in Picture-in-Picture mode');
|
|
88774
|
+
return [2 /*return*/, false];
|
|
88775
|
+
}
|
|
88776
|
+
_a.label = 1;
|
|
88777
|
+
case 1:
|
|
88778
|
+
_a.trys.push([1, 5,, 6]);
|
|
88779
|
+
// Store video state
|
|
88780
|
+
setPipVideoState(videoState);
|
|
88781
|
+
videoElementRef.current = videoElement;
|
|
88782
|
+
if (!(videoElement.paused && videoState.isPlaying)) return [3 /*break*/, 3];
|
|
88783
|
+
return [4 /*yield*/, videoElement.play()];
|
|
88784
|
+
case 2:
|
|
88785
|
+
_a.sent();
|
|
88786
|
+
_a.label = 3;
|
|
88787
|
+
case 3:
|
|
88788
|
+
return [4 /*yield*/, videoElement.requestPictureInPicture()];
|
|
88789
|
+
case 4:
|
|
88790
|
+
_a.sent();
|
|
88791
|
+
return [2 /*return*/, true];
|
|
88792
|
+
case 5:
|
|
88793
|
+
error_1 = _a.sent();
|
|
88794
|
+
console.error('Failed to enter picture-in-picture:', error_1);
|
|
88795
|
+
return [2 /*return*/, false];
|
|
88796
|
+
case 6:
|
|
88797
|
+
return [2 /*return*/];
|
|
88798
|
+
}
|
|
88799
|
+
});
|
|
88800
|
+
});
|
|
88801
|
+
}, []);
|
|
88802
|
+
var exitPiP = useCallback(function () {
|
|
88803
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
88804
|
+
var error_2;
|
|
88805
|
+
return __generator(this, function (_a) {
|
|
88806
|
+
switch (_a.label) {
|
|
88807
|
+
case 0:
|
|
88808
|
+
_a.trys.push([0, 3,, 4]);
|
|
88809
|
+
if (!document.pictureInPictureElement) return [3 /*break*/, 2];
|
|
88810
|
+
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
88811
|
+
case 1:
|
|
88812
|
+
_a.sent();
|
|
88813
|
+
_a.label = 2;
|
|
88814
|
+
case 2:
|
|
88815
|
+
return [2 /*return*/, true];
|
|
88816
|
+
case 3:
|
|
88817
|
+
error_2 = _a.sent();
|
|
88818
|
+
console.error('Failed to exit picture-in-picture:', error_2);
|
|
88819
|
+
return [2 /*return*/, false];
|
|
88820
|
+
case 4:
|
|
88821
|
+
return [2 /*return*/];
|
|
88822
|
+
}
|
|
88823
|
+
});
|
|
88824
|
+
});
|
|
88825
|
+
}, []);
|
|
88826
|
+
// Listen for PiP events
|
|
88827
|
+
useEffect(function () {
|
|
88828
|
+
var handlePiPEnter = function handlePiPEnter() {
|
|
88829
|
+
setIsPiPActive(true);
|
|
88830
|
+
};
|
|
88831
|
+
var handlePiPLeave = function handlePiPLeave() {
|
|
88832
|
+
setIsPiPActive(false);
|
|
88833
|
+
// Keep the video state for potential restoration
|
|
88834
|
+
// but don't clear it immediately
|
|
88835
|
+
};
|
|
88836
|
+
document.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
88837
|
+
document.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
88838
|
+
return function () {
|
|
88839
|
+
document.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
88840
|
+
document.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
88841
|
+
};
|
|
88842
|
+
}, []);
|
|
88843
|
+
var value = {
|
|
88844
|
+
isPiPActive: isPiPActive,
|
|
88845
|
+
pipVideoState: pipVideoState,
|
|
88846
|
+
enterPiP: enterPiP,
|
|
88847
|
+
exitPiP: exitPiP,
|
|
88848
|
+
updateVideoState: updateVideoState,
|
|
88849
|
+
registerVideoElement: registerVideoElement,
|
|
88850
|
+
unregisterVideoElement: unregisterVideoElement
|
|
88851
|
+
};
|
|
88852
|
+
return jsxRuntimeExports.jsx(PiPContext.Provider, {
|
|
88853
|
+
value: value,
|
|
88854
|
+
children: children
|
|
88855
|
+
});
|
|
88856
|
+
};
|
|
88857
|
+
|
|
88858
|
+
var usePiP = function usePiP() {
|
|
88859
|
+
var context = useContext(PiPContext);
|
|
88860
|
+
if (context === undefined) {
|
|
88861
|
+
throw new Error('usePiP must be used within a PiPProvider');
|
|
88862
|
+
}
|
|
88863
|
+
return context;
|
|
88864
|
+
};
|
|
88865
|
+
|
|
88741
88866
|
var count = 0;
|
|
88742
88867
|
var defaultVideoState = {
|
|
88743
88868
|
muted: false,
|
|
@@ -88769,26 +88894,30 @@ function usePlayerControls(_a) {
|
|
|
88769
88894
|
isSubtitlesChecked = _e[0],
|
|
88770
88895
|
setIsSubtitlesChecked = _e[1];
|
|
88771
88896
|
var _f = useState(false),
|
|
88772
|
-
|
|
88773
|
-
|
|
88897
|
+
isFullscreen = _f[0],
|
|
88898
|
+
setIsFullscreen = _f[1];
|
|
88774
88899
|
var _g = useState(false),
|
|
88775
|
-
|
|
88776
|
-
|
|
88777
|
-
var _h = useState(false),
|
|
88778
|
-
isControlsActive = _h[0],
|
|
88779
|
-
setIsControlsActive = _h[1];
|
|
88900
|
+
isControlsActive = _g[0],
|
|
88901
|
+
setIsControlsActive = _g[1];
|
|
88780
88902
|
var videoPlayerRef = useRef(null);
|
|
88781
88903
|
var controlRef = useRef(null);
|
|
88782
88904
|
var playerContainerRef = useRef(null);
|
|
88783
|
-
var
|
|
88784
|
-
subtitles =
|
|
88785
|
-
setSubtitles =
|
|
88786
|
-
var
|
|
88787
|
-
currentSubtitle =
|
|
88788
|
-
setCurrentSubtitle =
|
|
88905
|
+
var _h = useState([]),
|
|
88906
|
+
subtitles = _h[0],
|
|
88907
|
+
setSubtitles = _h[1];
|
|
88908
|
+
var _j = useState(''),
|
|
88909
|
+
currentSubtitle = _j[0],
|
|
88910
|
+
setCurrentSubtitle = _j[1];
|
|
88789
88911
|
var lastSubtitleIndexRef = useRef(null);
|
|
88790
88912
|
var lastPlaybackTimeRef = useRef(0);
|
|
88791
88913
|
var lastCallTimeRef = useRef(Date.now());
|
|
88914
|
+
// Use PiP context instead of local state
|
|
88915
|
+
var _k = usePiP(),
|
|
88916
|
+
isPiPActive = _k.isPiPActive,
|
|
88917
|
+
enterPiP = _k.enterPiP,
|
|
88918
|
+
exitPiP = _k.exitPiP,
|
|
88919
|
+
registerVideoElement = _k.registerVideoElement,
|
|
88920
|
+
unregisterVideoElement = _k.unregisterVideoElement;
|
|
88792
88921
|
var muted = videoState.muted,
|
|
88793
88922
|
volume = videoState.volume,
|
|
88794
88923
|
prevVolume = videoState.prevVolume,
|
|
@@ -88818,10 +88947,21 @@ function usePlayerControls(_a) {
|
|
|
88818
88947
|
setIsFullscreen(!!document.fullscreenElement);
|
|
88819
88948
|
};
|
|
88820
88949
|
var handlePiPEnter = function handlePiPEnter() {
|
|
88821
|
-
|
|
88950
|
+
var _a;
|
|
88951
|
+
// Use context method to update global PiP state
|
|
88952
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
88953
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
88954
|
+
enterPiP(videoElement, {
|
|
88955
|
+
url: url,
|
|
88956
|
+
currentTime: videoElement.currentTime,
|
|
88957
|
+
isPlaying: isPlaying,
|
|
88958
|
+
volume: videoState.volume,
|
|
88959
|
+
muted: videoState.muted
|
|
88960
|
+
});
|
|
88961
|
+
}
|
|
88822
88962
|
};
|
|
88823
88963
|
var handlePiPLeave = function handlePiPLeave() {
|
|
88824
|
-
|
|
88964
|
+
exitPiP();
|
|
88825
88965
|
};
|
|
88826
88966
|
document.addEventListener('fullscreenchange', handleFullscreenChange);
|
|
88827
88967
|
document.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
@@ -88831,6 +88971,8 @@ function usePlayerControls(_a) {
|
|
|
88831
88971
|
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
88832
88972
|
videoElement.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
88833
88973
|
videoElement.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
88974
|
+
// Register video element with PiP context
|
|
88975
|
+
registerVideoElement(videoElement);
|
|
88834
88976
|
}
|
|
88835
88977
|
return function () {
|
|
88836
88978
|
document.removeEventListener('fullscreenchange', handleFullscreenChange);
|
|
@@ -88841,8 +88983,10 @@ function usePlayerControls(_a) {
|
|
|
88841
88983
|
videoElement.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
88842
88984
|
videoElement.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
88843
88985
|
}
|
|
88986
|
+
// Unregister video element from PiP context
|
|
88987
|
+
unregisterVideoElement();
|
|
88844
88988
|
};
|
|
88845
|
-
}, [url]); // Re-run when URL changes to ensure proper cleanup and setup
|
|
88989
|
+
}, [url, enterPiP, exitPiP, registerVideoElement, unregisterVideoElement, isPlaying, videoState.volume, videoState.muted]); // Re-run when URL changes to ensure proper cleanup and setup
|
|
88846
88990
|
useEffect(function () {
|
|
88847
88991
|
setStartPlayed(false);
|
|
88848
88992
|
}, [url]);
|
|
@@ -89055,25 +89199,19 @@ function usePlayerControls(_a) {
|
|
|
89055
89199
|
console.warn('Picture-in-Picture is not supported in this browser');
|
|
89056
89200
|
return;
|
|
89057
89201
|
}
|
|
89058
|
-
if (
|
|
89059
|
-
|
|
89060
|
-
|
|
89061
|
-
});
|
|
89202
|
+
if (isPiPActive) {
|
|
89203
|
+
// Exit PiP using context method
|
|
89204
|
+
exitPiP();
|
|
89062
89205
|
} else {
|
|
89063
|
-
//
|
|
89064
|
-
|
|
89065
|
-
|
|
89066
|
-
|
|
89067
|
-
|
|
89068
|
-
|
|
89069
|
-
|
|
89070
|
-
|
|
89071
|
-
|
|
89072
|
-
} else {
|
|
89073
|
-
videoElement.requestPictureInPicture()["catch"](function (error) {
|
|
89074
|
-
console.error('Failed to enter picture-in-picture:', error);
|
|
89075
|
-
});
|
|
89076
|
-
}
|
|
89206
|
+
// Enter PiP using context method
|
|
89207
|
+
var pipVideoState = {
|
|
89208
|
+
url: url,
|
|
89209
|
+
currentTime: videoElement.currentTime,
|
|
89210
|
+
isPlaying: isPlaying,
|
|
89211
|
+
volume: videoState.volume,
|
|
89212
|
+
muted: videoState.muted
|
|
89213
|
+
};
|
|
89214
|
+
enterPiP(videoElement, pipVideoState);
|
|
89077
89215
|
}
|
|
89078
89216
|
};
|
|
89079
89217
|
var handleKeyDown = useCallback(function (event) {
|
|
@@ -89448,131 +89586,6 @@ var VideoPlayer = function VideoPlayer(_a) {
|
|
|
89448
89586
|
});
|
|
89449
89587
|
};
|
|
89450
89588
|
|
|
89451
|
-
var PiPContext = /*#__PURE__*/createContext(undefined);
|
|
89452
|
-
var PiPProvider = function PiPProvider(_a) {
|
|
89453
|
-
var children = _a.children;
|
|
89454
|
-
var _b = useState(false),
|
|
89455
|
-
isPiPActive = _b[0],
|
|
89456
|
-
setIsPiPActive = _b[1];
|
|
89457
|
-
var _c = useState(null),
|
|
89458
|
-
pipVideoState = _c[0],
|
|
89459
|
-
setPipVideoState = _c[1];
|
|
89460
|
-
var videoElementRef = useRef(null);
|
|
89461
|
-
var updateVideoState = useCallback(function (state) {
|
|
89462
|
-
setPipVideoState(function (prev) {
|
|
89463
|
-
return prev ? __assign(__assign({}, prev), state) : null;
|
|
89464
|
-
});
|
|
89465
|
-
}, []);
|
|
89466
|
-
var registerVideoElement = useCallback(function (element) {
|
|
89467
|
-
videoElementRef.current = element;
|
|
89468
|
-
}, []);
|
|
89469
|
-
var unregisterVideoElement = useCallback(function () {
|
|
89470
|
-
videoElementRef.current = null;
|
|
89471
|
-
}, []);
|
|
89472
|
-
var enterPiP = useCallback(function (videoElement, videoState) {
|
|
89473
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
89474
|
-
var error_1;
|
|
89475
|
-
return __generator(this, function (_a) {
|
|
89476
|
-
switch (_a.label) {
|
|
89477
|
-
case 0:
|
|
89478
|
-
if (!document.pictureInPictureEnabled) {
|
|
89479
|
-
console.warn('Picture-in-Picture is not supported in this browser');
|
|
89480
|
-
return [2 /*return*/, false];
|
|
89481
|
-
}
|
|
89482
|
-
if (document.pictureInPictureElement) {
|
|
89483
|
-
console.warn('Another video is already in Picture-in-Picture mode');
|
|
89484
|
-
return [2 /*return*/, false];
|
|
89485
|
-
}
|
|
89486
|
-
_a.label = 1;
|
|
89487
|
-
case 1:
|
|
89488
|
-
_a.trys.push([1, 5,, 6]);
|
|
89489
|
-
// Store video state
|
|
89490
|
-
setPipVideoState(videoState);
|
|
89491
|
-
videoElementRef.current = videoElement;
|
|
89492
|
-
if (!(videoElement.paused && videoState.isPlaying)) return [3 /*break*/, 3];
|
|
89493
|
-
return [4 /*yield*/, videoElement.play()];
|
|
89494
|
-
case 2:
|
|
89495
|
-
_a.sent();
|
|
89496
|
-
_a.label = 3;
|
|
89497
|
-
case 3:
|
|
89498
|
-
return [4 /*yield*/, videoElement.requestPictureInPicture()];
|
|
89499
|
-
case 4:
|
|
89500
|
-
_a.sent();
|
|
89501
|
-
return [2 /*return*/, true];
|
|
89502
|
-
case 5:
|
|
89503
|
-
error_1 = _a.sent();
|
|
89504
|
-
console.error('Failed to enter picture-in-picture:', error_1);
|
|
89505
|
-
return [2 /*return*/, false];
|
|
89506
|
-
case 6:
|
|
89507
|
-
return [2 /*return*/];
|
|
89508
|
-
}
|
|
89509
|
-
});
|
|
89510
|
-
});
|
|
89511
|
-
}, []);
|
|
89512
|
-
var exitPiP = useCallback(function () {
|
|
89513
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
89514
|
-
var error_2;
|
|
89515
|
-
return __generator(this, function (_a) {
|
|
89516
|
-
switch (_a.label) {
|
|
89517
|
-
case 0:
|
|
89518
|
-
_a.trys.push([0, 3,, 4]);
|
|
89519
|
-
if (!document.pictureInPictureElement) return [3 /*break*/, 2];
|
|
89520
|
-
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
89521
|
-
case 1:
|
|
89522
|
-
_a.sent();
|
|
89523
|
-
_a.label = 2;
|
|
89524
|
-
case 2:
|
|
89525
|
-
return [2 /*return*/, true];
|
|
89526
|
-
case 3:
|
|
89527
|
-
error_2 = _a.sent();
|
|
89528
|
-
console.error('Failed to exit picture-in-picture:', error_2);
|
|
89529
|
-
return [2 /*return*/, false];
|
|
89530
|
-
case 4:
|
|
89531
|
-
return [2 /*return*/];
|
|
89532
|
-
}
|
|
89533
|
-
});
|
|
89534
|
-
});
|
|
89535
|
-
}, []);
|
|
89536
|
-
// Listen for PiP events
|
|
89537
|
-
useEffect(function () {
|
|
89538
|
-
var handlePiPEnter = function handlePiPEnter() {
|
|
89539
|
-
setIsPiPActive(true);
|
|
89540
|
-
};
|
|
89541
|
-
var handlePiPLeave = function handlePiPLeave() {
|
|
89542
|
-
setIsPiPActive(false);
|
|
89543
|
-
// Keep the video state for potential restoration
|
|
89544
|
-
// but don't clear it immediately
|
|
89545
|
-
};
|
|
89546
|
-
document.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89547
|
-
document.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89548
|
-
return function () {
|
|
89549
|
-
document.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89550
|
-
document.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89551
|
-
};
|
|
89552
|
-
}, []);
|
|
89553
|
-
var value = {
|
|
89554
|
-
isPiPActive: isPiPActive,
|
|
89555
|
-
pipVideoState: pipVideoState,
|
|
89556
|
-
enterPiP: enterPiP,
|
|
89557
|
-
exitPiP: exitPiP,
|
|
89558
|
-
updateVideoState: updateVideoState,
|
|
89559
|
-
registerVideoElement: registerVideoElement,
|
|
89560
|
-
unregisterVideoElement: unregisterVideoElement
|
|
89561
|
-
};
|
|
89562
|
-
return jsxRuntimeExports.jsx(PiPContext.Provider, {
|
|
89563
|
-
value: value,
|
|
89564
|
-
children: children
|
|
89565
|
-
});
|
|
89566
|
-
};
|
|
89567
|
-
|
|
89568
|
-
var usePiP = function usePiP() {
|
|
89569
|
-
var context = useContext(PiPContext);
|
|
89570
|
-
if (context === undefined) {
|
|
89571
|
-
throw new Error('usePiP must be used within a PiPProvider');
|
|
89572
|
-
}
|
|
89573
|
-
return context;
|
|
89574
|
-
};
|
|
89575
|
-
|
|
89576
89589
|
var Whiteboard = dt.div(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n background-color: #ffffff;\n padding: 20px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 75vh;\n border: 1px solid #e7e9ed;\n border-radius: 4px;\n flex-direction: column;\n padding: 40px;\n"], ["\n background-color: #ffffff;\n padding: 20px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 75vh;\n border: 1px solid #e7e9ed;\n border-radius: 4px;\n flex-direction: column;\n padding: 40px;\n"])));
|
|
89577
89590
|
var CenteredText = dt.div(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n font-weight: 800;\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: 20px;\n font-family: 'Open Sans', sans-serif;\n text-align: center;\n gap: 8px;\n margin-top: ", ";\n\n h1 {\n font-size: 18px;\n font-weight: 800;\n }\n\n h4 {\n color: #68707a;\n font-size: 16px;\n font-weight: 500;\n }\n"], ["\n font-weight: 800;\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: 20px;\n font-family: 'Open Sans', sans-serif;\n text-align: center;\n gap: 8px;\n margin-top: ", ";\n\n h1 {\n font-size: 18px;\n font-weight: 800;\n }\n\n h4 {\n color: #68707a;\n font-size: 16px;\n font-weight: 500;\n }\n"])), function (_a) {
|
|
89578
89591
|
var marginTop = _a.marginTop;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AudioPlayer, k as Badge, h as Breadcrumb, B as Button, e as Checkbox, j as ColorPicker, p as ColumnNavigation, C as CourseCard, c as CustomSwitcher, m as CustomTooltip, d as DatePicker, w as DrawerTips, D as DropDown, G as GridActionMenu, L as Loader, N as NavigationBar, f as Pagination, P as PhoneCountryCode, n as PiPProvider, R as RadioButton, x as RangeSlider, S as SearchInput, o as SplashScreen, q as StatusIndicator, t as TabNavigation, s as TabPanel, b as ThemeProvider, i as Tile, l as TooltipHeight, T as TranslationProvider, U as Uploader, V as VideoPlayer, v as activeTabClassName, u as usePiP } from './index-
|
|
1
|
+
export { A as AudioPlayer, k as Badge, h as Breadcrumb, B as Button, e as Checkbox, j as ColorPicker, p as ColumnNavigation, C as CourseCard, c as CustomSwitcher, m as CustomTooltip, d as DatePicker, w as DrawerTips, D as DropDown, G as GridActionMenu, L as Loader, N as NavigationBar, f as Pagination, P as PhoneCountryCode, n as PiPProvider, R as RadioButton, x as RangeSlider, S as SearchInput, o as SplashScreen, q as StatusIndicator, t as TabNavigation, s as TabPanel, b as ThemeProvider, i as Tile, l as TooltipHeight, T as TranslationProvider, U as Uploader, V as VideoPlayer, v as activeTabClassName, u as usePiP } from './index-F6zEoSWf.esm.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'react-dom';
|