@100mslive/roomkit-react 0.3.3-alpha.1 → 0.3.3-alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{HLSView-GDOF4655.js → HLSView-BCIIVR2T.js} +331 -166
- package/dist/HLSView-BCIIVR2T.js.map +7 -0
- package/dist/IconButton/IconButton.d.ts +1 -1
- package/dist/Modal/Dialog.d.ts +1 -1
- package/dist/Prebuilt/IconButton.d.ts +2 -3
- package/dist/Prebuilt/components/Footer/ChatToggle.d.ts +3 -1
- package/dist/Prebuilt/components/HMSVideo/PlayPauseButton.d.ts +2 -2
- package/dist/Prebuilt/components/HMSVideo/PlayPauseSeekControls.d.ts +14 -0
- package/dist/Prebuilt/components/HMSVideo/{SeekControls.d.ts → SeekControl.d.ts} +2 -2
- package/dist/Prebuilt/components/HMSVideo/index.d.ts +15 -11
- package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +2 -2
- package/dist/Prebuilt/components/VideoLayouts/WhiteboardLayout.d.ts +3 -0
- package/dist/Sheet/Sheet.d.ts +1 -1
- package/dist/{chunk-ZDW56PPL.js → chunk-W47ZJGSD.js} +212 -165
- package/dist/chunk-W47ZJGSD.js.map +7 -0
- package/dist/index.cjs.js +923 -696
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +196 -112
- package/dist/meta.esbuild.json +210 -125
- package/package.json +6 -6
- package/src/IconButton/IconButton.tsx +2 -7
- package/src/Prebuilt/IconButton.tsx +6 -10
- package/src/Prebuilt/components/Footer/ChatToggle.tsx +2 -2
- package/src/Prebuilt/components/Footer/ParticipantList.tsx +4 -1
- package/src/Prebuilt/components/Footer/RoleAccordion.tsx +5 -6
- package/src/Prebuilt/components/Footer/WhiteboardToggle.tsx +17 -3
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +1 -0
- package/src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx +2 -2
- package/src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx +158 -0
- package/src/Prebuilt/components/HMSVideo/{SeekControls.tsx → SeekControl.tsx} +2 -2
- package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +7 -3
- package/src/Prebuilt/components/HMSVideo/index.ts +5 -4
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +7 -7
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +27 -4
- package/src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx +95 -0
- package/src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx +13 -5
- package/src/Prebuilt/layouts/HLSView.jsx +115 -78
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +1 -17
- package/dist/HLSView-GDOF4655.js.map +0 -7
- package/dist/Prebuilt/layouts/WhiteboardView.d.ts +0 -2
- package/dist/chunk-ZDW56PPL.js.map +0 -7
- package/src/Prebuilt/layouts/WhiteboardView.tsx +0 -69
@@ -25,6 +25,7 @@ import {
|
|
25
25
|
Tooltip,
|
26
26
|
__async,
|
27
27
|
__objRest,
|
28
|
+
__spreadProps,
|
28
29
|
__spreadValues,
|
29
30
|
config,
|
30
31
|
init_define_process_env,
|
@@ -37,12 +38,12 @@ import {
|
|
37
38
|
useRoomLayoutHeader,
|
38
39
|
useSidepaneToggle,
|
39
40
|
useTheme
|
40
|
-
} from "./chunk-
|
41
|
+
} from "./chunk-W47ZJGSD.js";
|
41
42
|
|
42
43
|
// src/Prebuilt/layouts/HLSView.jsx
|
43
44
|
init_define_process_env();
|
44
|
-
import
|
45
|
-
import { useFullscreen, useMedia as
|
45
|
+
import React15, { useCallback as useCallback2, useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
46
|
+
import { useFullscreen, useMedia as useMedia4, usePrevious, useToggle } from "react-use";
|
46
47
|
import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents as HMSHLSPlayerEvents2 } from "@100mslive/hls-player";
|
47
48
|
import screenfull from "screenfull";
|
48
49
|
import { match, P } from "ts-pattern";
|
@@ -58,7 +59,7 @@ import {
|
|
58
59
|
useHMSStore,
|
59
60
|
useHMSVanillaStore
|
60
61
|
} from "@100mslive/react-sdk";
|
61
|
-
import {
|
62
|
+
import { ColoredHandIcon, GoLiveIcon } from "@100mslive/react-icons";
|
62
63
|
|
63
64
|
// src/Prebuilt/components/HlsStatsOverlay.jsx
|
64
65
|
init_define_process_env();
|
@@ -179,6 +180,7 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
179
180
|
size: "100%",
|
180
181
|
position: "relative",
|
181
182
|
justifyContent: "center",
|
183
|
+
transition: "all 0.3s ease-in-out",
|
182
184
|
"@md": {
|
183
185
|
height: "auto",
|
184
186
|
"& video": {
|
@@ -224,6 +226,12 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
224
226
|
);
|
225
227
|
});
|
226
228
|
|
229
|
+
// src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx
|
230
|
+
init_define_process_env();
|
231
|
+
import React6 from "react";
|
232
|
+
import { useMedia } from "react-use";
|
233
|
+
import { BackwardArrowIcon, ForwardArrowIcon } from "@100mslive/react-icons";
|
234
|
+
|
227
235
|
// src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx
|
228
236
|
init_define_process_env();
|
229
237
|
import React4 from "react";
|
@@ -254,10 +262,10 @@ var PlayPauseButton = ({
|
|
254
262
|
return /* @__PURE__ */ React4.createElement(Tooltip, { title: isPaused ? "Play" : "Pause", side: "top" }, /* @__PURE__ */ React4.createElement(IconButton, { onClick, "data-testid": "play_pause_btn" }, isPaused ? /* @__PURE__ */ React4.createElement(PlayIcon, { width, height }) : /* @__PURE__ */ React4.createElement(PauseIcon, { width, height })));
|
255
263
|
};
|
256
264
|
|
257
|
-
// src/Prebuilt/components/HMSVideo/
|
265
|
+
// src/Prebuilt/components/HMSVideo/SeekControl.tsx
|
258
266
|
init_define_process_env();
|
259
267
|
import React5 from "react";
|
260
|
-
var
|
268
|
+
var SeekControl = ({
|
261
269
|
title,
|
262
270
|
onClick,
|
263
271
|
children,
|
@@ -266,9 +274,138 @@ var SeekControls = ({
|
|
266
274
|
return /* @__PURE__ */ React5.createElement(Tooltip, { title, side: "top" }, /* @__PURE__ */ React5.createElement(IconButton, { onClick, "data-testid": "backward_forward_arrow_btn", css }, children));
|
267
275
|
};
|
268
276
|
|
277
|
+
// src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx
|
278
|
+
var PlayPauseSeekControls = ({
|
279
|
+
isPaused,
|
280
|
+
onSeekTo
|
281
|
+
}) => {
|
282
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(
|
283
|
+
SeekControl,
|
284
|
+
{
|
285
|
+
onClick: (e) => {
|
286
|
+
e.stopPropagation();
|
287
|
+
onSeekTo(-10);
|
288
|
+
},
|
289
|
+
title: "backward"
|
290
|
+
},
|
291
|
+
/* @__PURE__ */ React6.createElement(BackwardArrowIcon, { width: 20, height: 20 })
|
292
|
+
), /* @__PURE__ */ React6.createElement(PlayPauseButton, { isPaused }), /* @__PURE__ */ React6.createElement(
|
293
|
+
SeekControl,
|
294
|
+
{
|
295
|
+
onClick: (e) => {
|
296
|
+
e.stopPropagation();
|
297
|
+
onSeekTo(10);
|
298
|
+
},
|
299
|
+
title: "forward"
|
300
|
+
},
|
301
|
+
/* @__PURE__ */ React6.createElement(ForwardArrowIcon, { width: 20, height: 20 })
|
302
|
+
));
|
303
|
+
};
|
304
|
+
var PlayPauseSeekOverlayControls = ({
|
305
|
+
isPaused,
|
306
|
+
showControls,
|
307
|
+
hoverControlsVisible
|
308
|
+
}) => {
|
309
|
+
const isMobile = useMedia(config.media.md);
|
310
|
+
const isLandscape = useIsLandscape();
|
311
|
+
if (!isMobile && !isLandscape) {
|
312
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(
|
313
|
+
Flex,
|
314
|
+
{
|
315
|
+
css: {
|
316
|
+
bg: "rgba(0, 0, 0, 0.6)",
|
317
|
+
r: "$round",
|
318
|
+
size: "$24",
|
319
|
+
visibility: hoverControlsVisible.seekBackward ? `` : `hidden`,
|
320
|
+
opacity: hoverControlsVisible.seekBackward ? `1` : "0"
|
321
|
+
},
|
322
|
+
direction: "column",
|
323
|
+
align: "center"
|
324
|
+
},
|
325
|
+
/* @__PURE__ */ React6.createElement(SeekControl, { title: "backward" }, /* @__PURE__ */ React6.createElement(BackwardArrowIcon, { width: 52, height: 52 })),
|
326
|
+
/* @__PURE__ */ React6.createElement(Text, { variant: "body2", css: { fontWeight: "$regular" } }, "10 secs")
|
327
|
+
), /* @__PURE__ */ React6.createElement(
|
328
|
+
Box,
|
329
|
+
{
|
330
|
+
css: {
|
331
|
+
bg: "rgba(0, 0, 0, 0.6)",
|
332
|
+
r: "$round",
|
333
|
+
visibility: hoverControlsVisible.pausePlay ? `` : `hidden`,
|
334
|
+
opacity: hoverControlsVisible.pausePlay ? `1` : "0"
|
335
|
+
}
|
336
|
+
},
|
337
|
+
/* @__PURE__ */ React6.createElement(PlayPauseButton, { isPaused, width: 48, height: 48 })
|
338
|
+
), /* @__PURE__ */ React6.createElement(
|
339
|
+
Flex,
|
340
|
+
{
|
341
|
+
css: {
|
342
|
+
bg: "rgba(0, 0, 0, 0.6)",
|
343
|
+
r: "$round",
|
344
|
+
size: "$24",
|
345
|
+
visibility: hoverControlsVisible.seekForward ? `` : `hidden`,
|
346
|
+
opacity: hoverControlsVisible.seekForward ? `1` : "0"
|
347
|
+
},
|
348
|
+
direction: "column",
|
349
|
+
align: "center"
|
350
|
+
},
|
351
|
+
/* @__PURE__ */ React6.createElement(SeekControl, { title: "forward" }, /* @__PURE__ */ React6.createElement(ForwardArrowIcon, { width: 52, height: 52 })),
|
352
|
+
/* @__PURE__ */ React6.createElement(Text, { variant: "body2", css: { fontWeight: "$regular" } }, "10 secs")
|
353
|
+
));
|
354
|
+
}
|
355
|
+
return /* @__PURE__ */ React6.createElement(
|
356
|
+
Flex,
|
357
|
+
{
|
358
|
+
align: "center",
|
359
|
+
justify: "center",
|
360
|
+
css: {
|
361
|
+
position: "absolute",
|
362
|
+
bg: "#00000066",
|
363
|
+
display: "inline-flex",
|
364
|
+
gap: "$2",
|
365
|
+
zIndex: 1,
|
366
|
+
size: "100%",
|
367
|
+
visibility: showControls ? `` : `hidden`,
|
368
|
+
opacity: showControls ? `1` : "0"
|
369
|
+
}
|
370
|
+
},
|
371
|
+
/* @__PURE__ */ React6.createElement(
|
372
|
+
SeekControl,
|
373
|
+
{
|
374
|
+
title: "backward",
|
375
|
+
css: {
|
376
|
+
visibility: hoverControlsVisible.seekBackward ? `` : `hidden`,
|
377
|
+
opacity: hoverControlsVisible.seekBackward ? `1` : "0"
|
378
|
+
}
|
379
|
+
},
|
380
|
+
/* @__PURE__ */ React6.createElement(BackwardArrowIcon, { width: 32, height: 32 })
|
381
|
+
),
|
382
|
+
/* @__PURE__ */ React6.createElement(
|
383
|
+
Box,
|
384
|
+
{
|
385
|
+
css: {
|
386
|
+
bg: "rgba(0, 0, 0, 0.6)",
|
387
|
+
r: "$round"
|
388
|
+
}
|
389
|
+
},
|
390
|
+
/* @__PURE__ */ React6.createElement(PlayPauseButton, { isPaused, width: 48, height: 48 })
|
391
|
+
),
|
392
|
+
/* @__PURE__ */ React6.createElement(
|
393
|
+
SeekControl,
|
394
|
+
{
|
395
|
+
title: "forward",
|
396
|
+
css: {
|
397
|
+
visibility: hoverControlsVisible.seekForward ? `` : `hidden`,
|
398
|
+
opacity: hoverControlsVisible.seekForward ? `1` : "0"
|
399
|
+
}
|
400
|
+
},
|
401
|
+
/* @__PURE__ */ React6.createElement(ForwardArrowIcon, { width: 32, height: 32 })
|
402
|
+
)
|
403
|
+
);
|
404
|
+
};
|
405
|
+
|
269
406
|
// src/Prebuilt/components/HMSVideo/VideoProgress.tsx
|
270
407
|
init_define_process_env();
|
271
|
-
import
|
408
|
+
import React7, { useCallback, useEffect, useState } from "react";
|
272
409
|
|
273
410
|
// src/Prebuilt/components/HMSVideo/utils.ts
|
274
411
|
init_define_process_env();
|
@@ -311,8 +448,12 @@ var VideoProgress = ({
|
|
311
448
|
if (videoEl.buffered.length > 0) {
|
312
449
|
bufferProgress2 = Math.floor(getPercentage((_b = videoEl.buffered) == null ? void 0 : _b.end(0), duration));
|
313
450
|
}
|
314
|
-
|
315
|
-
|
451
|
+
if (!isNaN(videoProgress2)) {
|
452
|
+
setVideoProgress(videoProgress2);
|
453
|
+
}
|
454
|
+
if (!isNaN(bufferProgress2)) {
|
455
|
+
setBufferProgress(bufferProgress2);
|
456
|
+
}
|
316
457
|
}, [videoEl]);
|
317
458
|
const timeupdateHandler = useCallback(() => {
|
318
459
|
if (!videoEl || seekProgress) {
|
@@ -328,7 +469,7 @@ var VideoProgress = ({
|
|
328
469
|
return function cleanup() {
|
329
470
|
videoEl == null ? void 0 : videoEl.removeEventListener("timeupdate", timeupdateHandler);
|
330
471
|
};
|
331
|
-
}, [timeupdateHandler, videoEl]);
|
472
|
+
}, [setProgress, timeupdateHandler, videoEl]);
|
332
473
|
const onProgress = (progress) => {
|
333
474
|
var _a;
|
334
475
|
const progress1 = Math.floor(getPercentage(progress[0], 100));
|
@@ -344,7 +485,7 @@ var VideoProgress = ({
|
|
344
485
|
if (!videoEl) {
|
345
486
|
return null;
|
346
487
|
}
|
347
|
-
return /* @__PURE__ */
|
488
|
+
return /* @__PURE__ */ React7.createElement(Flex, { align: "center", css: { cursor: "pointer", h: "$2", alignSelf: "stretch" } }, /* @__PURE__ */ React7.createElement(
|
348
489
|
Slider,
|
349
490
|
{
|
350
491
|
id: "video-actual-rest",
|
@@ -364,7 +505,7 @@ var VideoProgress = ({
|
|
364
505
|
onPointerUp: () => setSeekProgress(false),
|
365
506
|
thumbStyles: { w: "$6", h: "$6" }
|
366
507
|
}
|
367
|
-
), /* @__PURE__ */
|
508
|
+
), /* @__PURE__ */ React7.createElement(
|
368
509
|
Box,
|
369
510
|
{
|
370
511
|
id: "video-buffer",
|
@@ -382,7 +523,7 @@ var VideoProgress = ({
|
|
382
523
|
|
383
524
|
// src/Prebuilt/components/HMSVideo/VideoTime.tsx
|
384
525
|
init_define_process_env();
|
385
|
-
import
|
526
|
+
import React8, { useEffect as useEffect2, useState as useState2 } from "react";
|
386
527
|
import { HMSHLSPlayerEvents } from "@100mslive/hls-player";
|
387
528
|
var VideoTime = () => {
|
388
529
|
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
@@ -404,7 +545,7 @@ var VideoTime = () => {
|
|
404
545
|
hlsPlayer2 == null ? void 0 : hlsPlayer2.off(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
405
546
|
};
|
406
547
|
}, [hlsPlayer2]);
|
407
|
-
return hlsPlayer2 ? /* @__PURE__ */
|
548
|
+
return hlsPlayer2 ? /* @__PURE__ */ React8.createElement(
|
408
549
|
Text,
|
409
550
|
{
|
410
551
|
variant: "body1",
|
@@ -423,14 +564,14 @@ var VideoTime = () => {
|
|
423
564
|
|
424
565
|
// src/Prebuilt/components/HMSVideo/VolumeControl.tsx
|
425
566
|
init_define_process_env();
|
426
|
-
import
|
567
|
+
import React9, { useState as useState3 } from "react";
|
427
568
|
import { VolumeOneIcon, VolumeTwoIcon, VolumeZeroIcon } from "@100mslive/react-icons";
|
428
569
|
var VolumeControl = () => {
|
429
570
|
var _a;
|
430
571
|
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
431
572
|
const [volume, setVolume] = useState3((_a = hlsPlayer2 == null ? void 0 : hlsPlayer2.volume) != null ? _a : 100);
|
432
573
|
const [showSlider, setShowSlider] = useState3(false);
|
433
|
-
return /* @__PURE__ */
|
574
|
+
return /* @__PURE__ */ React9.createElement(
|
434
575
|
Flex,
|
435
576
|
{
|
436
577
|
align: "center",
|
@@ -444,7 +585,7 @@ var VolumeControl = () => {
|
|
444
585
|
setShowSlider(false);
|
445
586
|
}
|
446
587
|
},
|
447
|
-
/* @__PURE__ */
|
588
|
+
/* @__PURE__ */ React9.createElement(
|
448
589
|
VolumeIcon,
|
449
590
|
{
|
450
591
|
volume,
|
@@ -459,7 +600,7 @@ var VolumeControl = () => {
|
|
459
600
|
}
|
460
601
|
}
|
461
602
|
),
|
462
|
-
/* @__PURE__ */
|
603
|
+
/* @__PURE__ */ React9.createElement(
|
463
604
|
Slider,
|
464
605
|
{
|
465
606
|
css: {
|
@@ -487,15 +628,14 @@ var VolumeControl = () => {
|
|
487
628
|
};
|
488
629
|
var VolumeIcon = ({ volume, onClick }) => {
|
489
630
|
if (volume === 0) {
|
490
|
-
return /* @__PURE__ */
|
631
|
+
return /* @__PURE__ */ React9.createElement(VolumeZeroIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
|
491
632
|
}
|
492
|
-
return volume < 50 ? /* @__PURE__ */
|
633
|
+
return volume < 50 ? /* @__PURE__ */ React9.createElement(VolumeOneIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick }) : /* @__PURE__ */ React9.createElement(VolumeTwoIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
|
493
634
|
};
|
494
635
|
|
495
636
|
// src/Prebuilt/components/HMSVideo/index.ts
|
496
637
|
var HMSVideoPlayer = {
|
497
638
|
Root: HMSVideo,
|
498
|
-
PlayPauseButton,
|
499
639
|
Progress: VideoProgress,
|
500
640
|
Duration: VideoTime,
|
501
641
|
Volume: VolumeControl,
|
@@ -504,30 +644,33 @@ var HMSVideoPlayer = {
|
|
504
644
|
Left: LeftControls,
|
505
645
|
Right: RightControls
|
506
646
|
},
|
507
|
-
|
647
|
+
PlayPauseSeekControls: {
|
648
|
+
Overlay: PlayPauseSeekOverlayControls,
|
649
|
+
Button: PlayPauseSeekControls
|
650
|
+
}
|
508
651
|
};
|
509
652
|
|
510
653
|
// src/Prebuilt/components/HMSVideo/FullscreenButton.tsx
|
511
654
|
init_define_process_env();
|
512
|
-
import
|
655
|
+
import React10 from "react";
|
513
656
|
import { ExpandIcon, ShrinkIcon } from "@100mslive/react-icons";
|
514
657
|
var FullScreenButton = ({ isFullScreen, onToggle }) => {
|
515
|
-
return /* @__PURE__ */
|
658
|
+
return /* @__PURE__ */ React10.createElement(Tooltip, { title: `${isFullScreen ? "Exit" : "Go"} fullscreen`, side: "top" }, /* @__PURE__ */ React10.createElement(IconButton, { css: { margin: "0px" }, onClick: onToggle, key: "fullscreen_btn", "data-testid": "fullscreen_btn" }, /* @__PURE__ */ React10.createElement(Flex, null, isFullScreen ? /* @__PURE__ */ React10.createElement(ShrinkIcon, null) : /* @__PURE__ */ React10.createElement(ExpandIcon, null))));
|
516
659
|
};
|
517
660
|
|
518
661
|
// src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.tsx
|
519
662
|
init_define_process_env();
|
520
|
-
import
|
521
|
-
import { useMedia } from "react-use";
|
663
|
+
import React11 from "react";
|
664
|
+
import { useMedia as useMedia2 } from "react-use";
|
522
665
|
import { VolumeTwoIcon as VolumeTwoIcon2 } from "@100mslive/react-icons";
|
523
666
|
function HLSAutoplayBlockedPrompt({
|
524
667
|
open,
|
525
668
|
unblockAutoPlay
|
526
669
|
}) {
|
527
670
|
const isLandscape = useIsLandscape();
|
528
|
-
const isMobile =
|
671
|
+
const isMobile = useMedia2(config.media.md);
|
529
672
|
if ((isMobile || isLandscape) && open) {
|
530
|
-
return /* @__PURE__ */
|
673
|
+
return /* @__PURE__ */ React11.createElement(
|
531
674
|
IconButton,
|
532
675
|
{
|
533
676
|
css: {
|
@@ -540,8 +683,8 @@ function HLSAutoplayBlockedPrompt({
|
|
540
683
|
return yield unblockAutoPlay();
|
541
684
|
})
|
542
685
|
},
|
543
|
-
/* @__PURE__ */
|
544
|
-
/* @__PURE__ */
|
686
|
+
/* @__PURE__ */ React11.createElement(VolumeTwoIcon2, { width: "32", height: "32" }),
|
687
|
+
/* @__PURE__ */ React11.createElement(
|
545
688
|
Text,
|
546
689
|
{
|
547
690
|
variant: "body1",
|
@@ -555,7 +698,7 @@ function HLSAutoplayBlockedPrompt({
|
|
555
698
|
)
|
556
699
|
);
|
557
700
|
}
|
558
|
-
return /* @__PURE__ */
|
701
|
+
return /* @__PURE__ */ React11.createElement(
|
559
702
|
Dialog.Root,
|
560
703
|
{
|
561
704
|
open,
|
@@ -565,7 +708,7 @@ function HLSAutoplayBlockedPrompt({
|
|
565
708
|
}
|
566
709
|
})
|
567
710
|
},
|
568
|
-
/* @__PURE__ */
|
711
|
+
/* @__PURE__ */ React11.createElement(DialogContent, { title: "Attention", closeable: false }, /* @__PURE__ */ React11.createElement(DialogRow, null, /* @__PURE__ */ React11.createElement(Text, { variant: "md" }, 'The browser wants us to get a confirmation for playing the HLS Stream. Please click "play stream" to proceed.')), /* @__PURE__ */ React11.createElement(DialogRow, { justify: "end" }, /* @__PURE__ */ React11.createElement(
|
569
712
|
Button,
|
570
713
|
{
|
571
714
|
variant: "primary",
|
@@ -580,17 +723,17 @@ function HLSAutoplayBlockedPrompt({
|
|
580
723
|
|
581
724
|
// src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx
|
582
725
|
init_define_process_env();
|
583
|
-
import
|
726
|
+
import React12 from "react";
|
584
727
|
import { ClosedCaptionIcon, OpenCaptionIcon } from "@100mslive/react-icons";
|
585
728
|
function HLSCaptionSelector({ isEnabled }) {
|
586
729
|
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
587
|
-
return /* @__PURE__ */
|
730
|
+
return /* @__PURE__ */ React12.createElement(Tooltip, { title: "Subtitles/closed captions", side: "top" }, /* @__PURE__ */ React12.createElement(IconButton, { css: { p: "$2" }, onClick: () => hlsPlayer2 == null ? void 0 : hlsPlayer2.toggleCaption() }, isEnabled ? /* @__PURE__ */ React12.createElement(ClosedCaptionIcon, { width: "20", height: "20px" }) : /* @__PURE__ */ React12.createElement(OpenCaptionIcon, { width: "20", height: "20px" })));
|
588
731
|
}
|
589
732
|
|
590
733
|
// src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx
|
591
734
|
init_define_process_env();
|
592
|
-
import
|
593
|
-
import { useMedia as
|
735
|
+
import React13 from "react";
|
736
|
+
import { useMedia as useMedia3 } from "react-use";
|
594
737
|
import { CheckIcon, CrossIcon as CrossIcon2, SettingsIcon } from "@100mslive/react-icons";
|
595
738
|
function HLSQualitySelector({
|
596
739
|
open,
|
@@ -601,13 +744,13 @@ function HLSQualitySelector({
|
|
601
744
|
isAuto,
|
602
745
|
containerRef
|
603
746
|
}) {
|
604
|
-
const isMobile =
|
747
|
+
const isMobile = useMedia3(config.media.md);
|
605
748
|
const isLandscape = useIsLandscape();
|
606
749
|
if (layers.length === 0) {
|
607
750
|
return null;
|
608
751
|
}
|
609
752
|
if (isMobile || isLandscape) {
|
610
|
-
return /* @__PURE__ */
|
753
|
+
return /* @__PURE__ */ React13.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React13.createElement(Sheet.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React13.createElement(
|
611
754
|
Flex,
|
612
755
|
{
|
613
756
|
css: {
|
@@ -617,15 +760,15 @@ function HLSQualitySelector({
|
|
617
760
|
p: "$2"
|
618
761
|
}
|
619
762
|
},
|
620
|
-
/* @__PURE__ */
|
621
|
-
)), /* @__PURE__ */
|
763
|
+
/* @__PURE__ */ React13.createElement(SettingsIcon, null)
|
764
|
+
)), /* @__PURE__ */ React13.createElement(
|
622
765
|
Sheet.Content,
|
623
766
|
{
|
624
767
|
container: containerRef,
|
625
768
|
css: { bg: "$surface_default", pb: "$1" },
|
626
769
|
onClick: () => onOpenChange(false)
|
627
770
|
},
|
628
|
-
/* @__PURE__ */
|
771
|
+
/* @__PURE__ */ React13.createElement(
|
629
772
|
Sheet.Title,
|
630
773
|
{
|
631
774
|
css: {
|
@@ -642,10 +785,10 @@ function HLSQualitySelector({
|
|
642
785
|
}
|
643
786
|
},
|
644
787
|
"Quality",
|
645
|
-
/* @__PURE__ */
|
788
|
+
/* @__PURE__ */ React13.createElement(Sheet.Close, { css: { color: "$on_surface_high" }, onClick: () => onOpenChange(false) }, /* @__PURE__ */ React13.createElement(CrossIcon2, null))
|
646
789
|
),
|
647
790
|
layers.map((layer) => {
|
648
|
-
return /* @__PURE__ */
|
791
|
+
return /* @__PURE__ */ React13.createElement(
|
649
792
|
Flex,
|
650
793
|
{
|
651
794
|
align: "center",
|
@@ -663,12 +806,12 @@ function HLSQualitySelector({
|
|
663
806
|
key: layer.width,
|
664
807
|
onClick: () => onQualityChange(layer)
|
665
808
|
},
|
666
|
-
/* @__PURE__ */
|
667
|
-
/* @__PURE__ */
|
668
|
-
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */
|
809
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
|
810
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
|
811
|
+
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React13.createElement(CheckIcon, { width: "16px", height: "16px" })
|
669
812
|
);
|
670
813
|
}),
|
671
|
-
/* @__PURE__ */
|
814
|
+
/* @__PURE__ */ React13.createElement(
|
672
815
|
Flex,
|
673
816
|
{
|
674
817
|
align: "center",
|
@@ -686,12 +829,12 @@ function HLSQualitySelector({
|
|
686
829
|
key: "auto",
|
687
830
|
onClick: () => onQualityChange({ height: "auto" })
|
688
831
|
},
|
689
|
-
/* @__PURE__ */
|
690
|
-
isAuto && /* @__PURE__ */
|
832
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
833
|
+
isAuto && /* @__PURE__ */ React13.createElement(CheckIcon, { width: "16px", height: "16px" })
|
691
834
|
)
|
692
835
|
));
|
693
836
|
}
|
694
|
-
return /* @__PURE__ */
|
837
|
+
return /* @__PURE__ */ React13.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpenChange(value), modal: false }, /* @__PURE__ */ React13.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React13.createElement(
|
695
838
|
Flex,
|
696
839
|
{
|
697
840
|
css: {
|
@@ -701,7 +844,7 @@ function HLSQualitySelector({
|
|
701
844
|
p: "$2"
|
702
845
|
}
|
703
846
|
},
|
704
|
-
/* @__PURE__ */
|
847
|
+
/* @__PURE__ */ React13.createElement(Tooltip, { title: "Select Quality", side: "top" }, /* @__PURE__ */ React13.createElement(Flex, { align: "center" }, /* @__PURE__ */ React13.createElement(
|
705
848
|
Box,
|
706
849
|
{
|
707
850
|
css: {
|
@@ -712,8 +855,8 @@ function HLSQualitySelector({
|
|
712
855
|
c: "$on_surface_high"
|
713
856
|
}
|
714
857
|
},
|
715
|
-
/* @__PURE__ */
|
716
|
-
), /* @__PURE__ */
|
858
|
+
/* @__PURE__ */ React13.createElement(SettingsIcon, null)
|
859
|
+
), /* @__PURE__ */ React13.createElement(
|
717
860
|
Text,
|
718
861
|
{
|
719
862
|
variant: {
|
@@ -723,7 +866,7 @@ function HLSQualitySelector({
|
|
723
866
|
},
|
724
867
|
css: { display: "flex", alignItems: "center", ml: "$2", c: "$on_surface_medium" }
|
725
868
|
},
|
726
|
-
isAuto && /* @__PURE__ */
|
869
|
+
isAuto && /* @__PURE__ */ React13.createElement(React13.Fragment, null, "Auto", /* @__PURE__ */ React13.createElement(
|
727
870
|
Box,
|
728
871
|
{
|
729
872
|
css: {
|
@@ -738,7 +881,7 @@ function HLSQualitySelector({
|
|
738
881
|
selection && Math.min(selection.width || 0, selection.height || 0),
|
739
882
|
"p"
|
740
883
|
)))
|
741
|
-
)), /* @__PURE__ */
|
884
|
+
)), /* @__PURE__ */ React13.createElement(Dropdown.Portal, { container: containerRef }, /* @__PURE__ */ React13.createElement(
|
742
885
|
Dropdown.Content,
|
743
886
|
{
|
744
887
|
sideOffset: 5,
|
@@ -754,7 +897,7 @@ function HLSQualitySelector({
|
|
754
897
|
}
|
755
898
|
},
|
756
899
|
layers.map((layer) => {
|
757
|
-
return /* @__PURE__ */
|
900
|
+
return /* @__PURE__ */ React13.createElement(
|
758
901
|
Dropdown.Item,
|
759
902
|
{
|
760
903
|
onClick: () => onQualityChange(layer),
|
@@ -769,12 +912,12 @@ function HLSQualitySelector({
|
|
769
912
|
gap: "$2"
|
770
913
|
}
|
771
914
|
},
|
772
|
-
/* @__PURE__ */
|
773
|
-
/* @__PURE__ */
|
774
|
-
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */
|
915
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
|
916
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
|
917
|
+
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React13.createElement(CheckIcon, { width: "16px", height: "16px" })
|
775
918
|
);
|
776
919
|
}),
|
777
|
-
/* @__PURE__ */
|
920
|
+
/* @__PURE__ */ React13.createElement(
|
778
921
|
Dropdown.Item,
|
779
922
|
{
|
780
923
|
onClick: () => onQualityChange({ height: "auto" }),
|
@@ -789,8 +932,8 @@ function HLSQualitySelector({
|
|
789
932
|
gap: "$2"
|
790
933
|
}
|
791
934
|
},
|
792
|
-
/* @__PURE__ */
|
793
|
-
isAuto && /* @__PURE__ */
|
935
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
936
|
+
isAuto && /* @__PURE__ */ React13.createElement(CheckIcon, { width: "16px", height: "16px" })
|
794
937
|
)
|
795
938
|
)));
|
796
939
|
}
|
@@ -799,14 +942,14 @@ var getBitrateText = (layer) => `(${(Number(layer.bitrate / 1e3) / 1e3).toFixed(
|
|
799
942
|
|
800
943
|
// src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx
|
801
944
|
init_define_process_env();
|
802
|
-
import
|
945
|
+
import React14 from "react";
|
803
946
|
import { ChevronDownIcon } from "@100mslive/react-icons";
|
804
947
|
var HLSViewTitle = () => {
|
805
948
|
const { title, details, description } = useRoomLayoutHeader();
|
806
949
|
const toggleDetailsPane = useSidepaneToggle(SIDE_PANE_OPTIONS.ROOM_DETAILS);
|
807
950
|
const isDetailSidepaneOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.ROOM_DETAILS);
|
808
951
|
if (isDetailSidepaneOpen) {
|
809
|
-
return /* @__PURE__ */
|
952
|
+
return /* @__PURE__ */ React14.createElement(
|
810
953
|
Flex,
|
811
954
|
{
|
812
955
|
gap: "4",
|
@@ -821,8 +964,8 @@ var HLSViewTitle = () => {
|
|
821
964
|
backgroundColor: "$surface_dim"
|
822
965
|
}
|
823
966
|
},
|
824
|
-
/* @__PURE__ */
|
825
|
-
/* @__PURE__ */
|
967
|
+
/* @__PURE__ */ React14.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, "About Session"),
|
968
|
+
/* @__PURE__ */ React14.createElement(
|
826
969
|
Flex,
|
827
970
|
{
|
828
971
|
onClick: toggleDetailsPane,
|
@@ -832,11 +975,11 @@ var HLSViewTitle = () => {
|
|
832
975
|
"&:hover": { opacity: "0.8" }
|
833
976
|
}
|
834
977
|
},
|
835
|
-
/* @__PURE__ */
|
978
|
+
/* @__PURE__ */ React14.createElement(ChevronDownIcon, null)
|
836
979
|
)
|
837
980
|
);
|
838
981
|
}
|
839
|
-
return /* @__PURE__ */
|
982
|
+
return /* @__PURE__ */ React14.createElement(
|
840
983
|
Flex,
|
841
984
|
{
|
842
985
|
gap: "4",
|
@@ -850,35 +993,38 @@ var HLSViewTitle = () => {
|
|
850
993
|
backgroundColor: "$surface_dim"
|
851
994
|
}
|
852
995
|
},
|
853
|
-
/* @__PURE__ */
|
854
|
-
/* @__PURE__ */
|
996
|
+
/* @__PURE__ */ React14.createElement(Logo, null),
|
997
|
+
/* @__PURE__ */ React14.createElement(Flex, { direction: "column" }, title ? /* @__PURE__ */ React14.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, title) : null, /* @__PURE__ */ React14.createElement(Flex, null, /* @__PURE__ */ React14.createElement(RoomDetailsRow, { details }), description ? /* @__PURE__ */ React14.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" }, onClick: toggleDetailsPane }, "\xA0...more") : null))
|
855
998
|
);
|
856
999
|
};
|
857
1000
|
|
858
1001
|
// src/Prebuilt/layouts/HLSView.jsx
|
859
1002
|
var hlsPlayer;
|
860
1003
|
var toastMap = {};
|
861
|
-
var ToggleChat = () => {
|
1004
|
+
var ToggleChat = ({ isFullScreen = false }) => {
|
862
1005
|
const { elements } = useRoomLayoutConferencingScreen();
|
863
1006
|
const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
|
864
1007
|
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
865
1008
|
const showChat = !!(elements == null ? void 0 : elements.chat);
|
866
|
-
const isMobile =
|
1009
|
+
const isMobile = useMedia4(config.media.md);
|
867
1010
|
const hmsActions = useHMSActions();
|
868
1011
|
useEffect3(() => {
|
869
|
-
match({ sidepane, isMobile, showChat }).with({
|
1012
|
+
match({ sidepane, isMobile, showChat, isFullScreen }).with({ isFullScreen: true }, () => {
|
1013
|
+
hmsActions.setAppData(APP_DATA.sidePane, "");
|
1014
|
+
}).with({ isMobile: true, showChat: true, sidepane: P.when((value) => !value) }, () => {
|
870
1015
|
toggleChat();
|
871
1016
|
}).with({ showChat: false, isMobile: true, sidepane: SIDE_PANE_OPTIONS.CHAT }, () => {
|
872
1017
|
hmsActions.setAppData(APP_DATA.sidePane, "");
|
873
1018
|
}).otherwise(() => {
|
874
1019
|
});
|
875
|
-
}, [sidepane, isMobile, toggleChat, showChat, hmsActions]);
|
1020
|
+
}, [sidepane, isMobile, toggleChat, showChat, hmsActions, isFullScreen]);
|
876
1021
|
return null;
|
877
1022
|
};
|
878
1023
|
var HLSView = () => {
|
879
|
-
var _a, _b, _c, _d, _e, _f;
|
1024
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
880
1025
|
const videoRef = useRef(null);
|
881
1026
|
const hlsViewRef = useRef();
|
1027
|
+
const { elements } = useRoomLayoutConferencingScreen();
|
882
1028
|
const hlsState = useHMSStore(selectHLSState);
|
883
1029
|
const enablHlsStats = useHMSStore(selectAppData(APP_DATA.hlsStats));
|
884
1030
|
const notification = useHMSNotifications(HMSNotificationTypes.POLL_STOPPED);
|
@@ -893,7 +1039,11 @@ var HLSView = () => {
|
|
893
1039
|
const [hasCaptions, setHasCaptions] = useState4(false);
|
894
1040
|
const [currentSelectedQuality, setCurrentSelectedQuality] = useState4(null);
|
895
1041
|
const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState4(false);
|
896
|
-
const [
|
1042
|
+
const [hoverControlsVisible, setHoverControlsVisible] = useState4({
|
1043
|
+
seekForward: false,
|
1044
|
+
pausePlay: false,
|
1045
|
+
seekBackward: false
|
1046
|
+
});
|
897
1047
|
const [isPaused, setIsPaused] = useState4(false);
|
898
1048
|
const [show, toggle] = useToggle(false);
|
899
1049
|
const lastHlsUrl = usePrevious(hlsUrl);
|
@@ -905,7 +1055,9 @@ var HLSView = () => {
|
|
905
1055
|
const controlsTimerRef = useRef();
|
906
1056
|
const [seekProgress, setSeekProgress] = useState4(false);
|
907
1057
|
const isFullScreenSupported = screenfull.isEnabled;
|
908
|
-
const
|
1058
|
+
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
1059
|
+
const showChat = !!(elements == null ? void 0 : elements.chat);
|
1060
|
+
const isMobile = useMedia4(config.media.md);
|
909
1061
|
const isLandscape = useIsLandscape();
|
910
1062
|
const isFullScreen = useFullscreen(hlsViewRef, show, {
|
911
1063
|
onClose: () => toggle(false)
|
@@ -986,7 +1138,7 @@ var HLSView = () => {
|
|
986
1138
|
if (!toastMap[pollId]) {
|
987
1139
|
const toastID = ToastManager.addToast({
|
988
1140
|
title: `${pollStartedBy} started a ${poll.type}: ${poll.title}`,
|
989
|
-
action: /* @__PURE__ */
|
1141
|
+
action: /* @__PURE__ */ React15.createElement(
|
990
1142
|
Button,
|
991
1143
|
{
|
992
1144
|
onClick: () => {
|
@@ -1033,7 +1185,17 @@ var HLSView = () => {
|
|
1033
1185
|
const handleNoLongerLive = ({ isLive }) => {
|
1034
1186
|
setIsVideoLive(isLive);
|
1035
1187
|
};
|
1036
|
-
const playbackEventHandler = (data) =>
|
1188
|
+
const playbackEventHandler = (data) => {
|
1189
|
+
setIsPaused(data.state === HLSPlaybackState.paused);
|
1190
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1191
|
+
pausePlay: true
|
1192
|
+
}));
|
1193
|
+
setTimeout(() => {
|
1194
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1195
|
+
pausePlay: false
|
1196
|
+
}));
|
1197
|
+
}, 2e3);
|
1198
|
+
};
|
1037
1199
|
const captionEnabledEventHandler = (isCaptionEnabled2) => {
|
1038
1200
|
setIsCaptionEnabled(isCaptionEnabled2);
|
1039
1201
|
};
|
@@ -1103,10 +1265,28 @@ var HLSView = () => {
|
|
1103
1265
|
}
|
1104
1266
|
};
|
1105
1267
|
}, [controlsVisible, isFullScreen, seekProgress, qualityDropDownOpen]);
|
1106
|
-
const onSeekTo = useCallback2(
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1268
|
+
const onSeekTo = useCallback2(
|
1269
|
+
(seek) => {
|
1270
|
+
var _a2;
|
1271
|
+
match({ isLandscape, isMobile, seek }).with({ seek: -10, isMobile: false, isLandscape: false }, () => {
|
1272
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), { seekBackward: true }));
|
1273
|
+
setTimeout(() => {
|
1274
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1275
|
+
seekBackward: false
|
1276
|
+
}));
|
1277
|
+
}, 1e3);
|
1278
|
+
}).with({ seek: 10, isMobile: false, isLandscape: false }, () => {
|
1279
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), { seekForward: true }));
|
1280
|
+
setTimeout(() => {
|
1281
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1282
|
+
seekForward: false
|
1283
|
+
}));
|
1284
|
+
}, 1e3);
|
1285
|
+
}).otherwise(() => null);
|
1286
|
+
hlsPlayer == null ? void 0 : hlsPlayer.seekTo(((_a2 = videoRef.current) == null ? void 0 : _a2.currentTime) + seek);
|
1287
|
+
},
|
1288
|
+
[hoverControlsVisible, isLandscape, isMobile]
|
1289
|
+
);
|
1110
1290
|
const onDoubleClickHandler = useCallback2(
|
1111
1291
|
(event) => {
|
1112
1292
|
var _a2;
|
@@ -1114,17 +1294,25 @@ var HLSView = () => {
|
|
1114
1294
|
return;
|
1115
1295
|
}
|
1116
1296
|
const sidePercentage = event.screenX * 100 / event.target.clientWidth;
|
1117
|
-
setIsSeekEnabled(true);
|
1118
1297
|
if (sidePercentage < 45) {
|
1298
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1299
|
+
seekBackward: true
|
1300
|
+
}));
|
1119
1301
|
onSeekTo(-10);
|
1120
1302
|
} else {
|
1303
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1304
|
+
seekForward: true
|
1305
|
+
}));
|
1121
1306
|
onSeekTo(10);
|
1122
1307
|
}
|
1123
1308
|
setTimeout(() => {
|
1124
|
-
|
1125
|
-
|
1309
|
+
setHoverControlsVisible(__spreadProps(__spreadValues({}, hoverControlsVisible), {
|
1310
|
+
seekForward: false,
|
1311
|
+
seekBackward: false
|
1312
|
+
}));
|
1313
|
+
}, 1e3);
|
1126
1314
|
},
|
1127
|
-
[hlsState == null ? void 0 : hlsState.variants, isLandscape, isMobile, onSeekTo]
|
1315
|
+
[hlsState == null ? void 0 : hlsState.variants, hoverControlsVisible, isLandscape, isMobile, onSeekTo]
|
1128
1316
|
);
|
1129
1317
|
const onClickHandler = useCallback2(() => __async(void 0, null, function* () {
|
1130
1318
|
var _a2;
|
@@ -1167,7 +1355,7 @@ var HLSView = () => {
|
|
1167
1355
|
);
|
1168
1356
|
const keyHandler = useKeyboardHandler(isPaused, hlsPlayer);
|
1169
1357
|
if (!hlsUrl || streamEnded) {
|
1170
|
-
return /* @__PURE__ */
|
1358
|
+
return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(ToggleChat, null), hlsViewRef.current && (isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(Box, { css: { position: "fixed", left: "$4", top: "$4", zIndex: 11 } }, /* @__PURE__ */ React15.createElement(LeaveRoom, { screenType: "hls_live_streaming", container: hlsViewRef.current })), /* @__PURE__ */ React15.createElement(
|
1171
1359
|
Flex,
|
1172
1360
|
{
|
1173
1361
|
key: "hls-viewer",
|
@@ -1179,10 +1367,10 @@ var HLSView = () => {
|
|
1179
1367
|
flex: isLandscape ? "2 1 0" : "1 1 0"
|
1180
1368
|
}
|
1181
1369
|
},
|
1182
|
-
/* @__PURE__ */
|
1370
|
+
/* @__PURE__ */ React15.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React15.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React15.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React15.createElement(GoLiveIcon, { height: 56, width: 56 })), /* @__PURE__ */ React15.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React15.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
|
1183
1371
|
));
|
1184
1372
|
}
|
1185
|
-
return /* @__PURE__ */
|
1373
|
+
return /* @__PURE__ */ React15.createElement(
|
1186
1374
|
Flex,
|
1187
1375
|
{
|
1188
1376
|
key: "hls-viewer",
|
@@ -1192,6 +1380,7 @@ var HLSView = () => {
|
|
1192
1380
|
justify: "center",
|
1193
1381
|
css: {
|
1194
1382
|
flex: isLandscape ? "2 1 0" : "1 1 0",
|
1383
|
+
transition: "all 0.3s ease-in-out",
|
1195
1384
|
"&:fullscreen": {
|
1196
1385
|
"& video": {
|
1197
1386
|
height: "unset !important"
|
@@ -1199,8 +1388,8 @@ var HLSView = () => {
|
|
1199
1388
|
}
|
1200
1389
|
}
|
1201
1390
|
},
|
1202
|
-
hlsViewRef.current && (isMobile || isLandscape) && /* @__PURE__ */
|
1203
|
-
/* @__PURE__ */
|
1391
|
+
hlsViewRef.current && (isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(Box, { css: { position: "fixed", left: "$4", top: "$4", zIndex: 11 } }, /* @__PURE__ */ React15.createElement(LeaveRoom, { screenType: "hls_live_streaming", container: hlsViewRef.current })),
|
1392
|
+
/* @__PURE__ */ React15.createElement(HMSPlayerContext.Provider, { value: { hlsPlayer } }, (hlsStatsState == null ? void 0 : hlsStatsState.url) && enablHlsStats && !(isMobile || isLandscape) ? /* @__PURE__ */ React15.createElement(HlsStatsOverlay, { hlsStatsState, onClose: sfnOverlayClose }) : null, /* @__PURE__ */ React15.createElement(
|
1204
1393
|
Flex,
|
1205
1394
|
{
|
1206
1395
|
id: "hls-player-container",
|
@@ -1222,8 +1411,8 @@ var HLSView = () => {
|
|
1222
1411
|
}),
|
1223
1412
|
tabIndex: "0"
|
1224
1413
|
},
|
1225
|
-
!(isMobile || isLandscape) && /* @__PURE__ */
|
1226
|
-
showLoader && /* @__PURE__ */
|
1414
|
+
!(isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }),
|
1415
|
+
showLoader && /* @__PURE__ */ React15.createElement(
|
1227
1416
|
Flex,
|
1228
1417
|
{
|
1229
1418
|
align: "center",
|
@@ -1232,9 +1421,9 @@ var HLSView = () => {
|
|
1232
1421
|
position: "absolute"
|
1233
1422
|
}
|
1234
1423
|
},
|
1235
|
-
/* @__PURE__ */
|
1424
|
+
/* @__PURE__ */ React15.createElement(Loading, { width: 72, height: 72 })
|
1236
1425
|
),
|
1237
|
-
/* @__PURE__ */
|
1426
|
+
/* @__PURE__ */ React15.createElement(
|
1238
1427
|
HMSVideoPlayer.Root,
|
1239
1428
|
{
|
1240
1429
|
ref: videoRef,
|
@@ -1246,53 +1435,36 @@ var HLSView = () => {
|
|
1246
1435
|
onDoubleClickHandler(e);
|
1247
1436
|
}
|
1248
1437
|
},
|
1249
|
-
/* @__PURE__ */
|
1438
|
+
/* @__PURE__ */ React15.createElement(React15.Fragment, null, !(isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(
|
1250
1439
|
Flex,
|
1251
1440
|
{
|
1252
1441
|
align: "center",
|
1253
|
-
justify: "
|
1442
|
+
justify: "between",
|
1254
1443
|
css: {
|
1255
1444
|
position: "absolute",
|
1256
1445
|
bg: "#00000066",
|
1257
1446
|
display: "inline-flex",
|
1258
1447
|
gap: "$2",
|
1259
1448
|
zIndex: 1,
|
1260
|
-
size: "100%"
|
1261
|
-
visibility: controlsVisible ? `` : `hidden`,
|
1262
|
-
opacity: controlsVisible ? `1` : "0"
|
1449
|
+
size: "100%"
|
1263
1450
|
}
|
1264
1451
|
},
|
1265
|
-
!showLoader && ((_b = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _b.playlist_type) === HLSPlaylistType.DVR && /* @__PURE__ */
|
1266
|
-
HMSVideoPlayer.
|
1267
|
-
{
|
1268
|
-
title: "backward",
|
1269
|
-
css: {
|
1270
|
-
visibility: isSeekEnabled ? `` : `hidden`,
|
1271
|
-
opacity: isSeekEnabled ? `1` : "0"
|
1272
|
-
}
|
1273
|
-
},
|
1274
|
-
/* @__PURE__ */ React14.createElement(BackwardArrowIcon, { width: 32, height: 32 })
|
1275
|
-
), /* @__PURE__ */ React14.createElement(
|
1276
|
-
Box,
|
1452
|
+
!showLoader && ((_b = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _b.playlist_type) === HLSPlaylistType.DVR && /* @__PURE__ */ React15.createElement(
|
1453
|
+
HMSVideoPlayer.PlayPauseSeekControls.Overlay,
|
1277
1454
|
{
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
}
|
1292
|
-
},
|
1293
|
-
/* @__PURE__ */ React14.createElement(ForwardArrowIcon, { width: 32, height: 32 })
|
1294
|
-
))
|
1295
|
-
), /* @__PURE__ */ React14.createElement(
|
1455
|
+
isPaused,
|
1456
|
+
showControls: controlsVisible,
|
1457
|
+
hoverControlsVisible
|
1458
|
+
}
|
1459
|
+
)
|
1460
|
+
), isMobile || isLandscape ? /* @__PURE__ */ React15.createElement(React15.Fragment, null, !showLoader && ((_c = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _c.playlist_type) === HLSPlaylistType.DVR && /* @__PURE__ */ React15.createElement(
|
1461
|
+
HMSVideoPlayer.PlayPauseSeekControls.Overlay,
|
1462
|
+
{
|
1463
|
+
isPaused,
|
1464
|
+
showControls: controlsVisible,
|
1465
|
+
hoverControlsVisible
|
1466
|
+
}
|
1467
|
+
), /* @__PURE__ */ React15.createElement(
|
1296
1468
|
Flex,
|
1297
1469
|
{
|
1298
1470
|
ref: controlsRef,
|
@@ -1310,14 +1482,24 @@ var HLSView = () => {
|
|
1310
1482
|
opacity: controlsVisible ? `1` : "0"
|
1311
1483
|
}
|
1312
1484
|
},
|
1313
|
-
/* @__PURE__ */
|
1485
|
+
/* @__PURE__ */ React15.createElement(
|
1314
1486
|
HMSVideoPlayer.Controls.Root,
|
1315
1487
|
{
|
1316
1488
|
css: {
|
1317
1489
|
p: "$4 $8"
|
1318
1490
|
}
|
1319
1491
|
},
|
1320
|
-
/* @__PURE__ */
|
1492
|
+
/* @__PURE__ */ React15.createElement(HMSVideoPlayer.Controls.Right, null, (isLandscape || isMobile && isFullScreen) && showChat && /* @__PURE__ */ React15.createElement(
|
1493
|
+
ChatToggle,
|
1494
|
+
{
|
1495
|
+
onClick: () => {
|
1496
|
+
if (isFullScreen) {
|
1497
|
+
toggle();
|
1498
|
+
}
|
1499
|
+
toggleChat();
|
1500
|
+
}
|
1501
|
+
}
|
1502
|
+
), hasCaptions && !isHlsAutoplayBlocked && /* @__PURE__ */ React15.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), hlsViewRef.current && availableLayers.length > 0 && !isHlsAutoplayBlocked ? /* @__PURE__ */ React15.createElement(
|
1321
1503
|
HLSQualitySelector,
|
1322
1504
|
{
|
1323
1505
|
layers: availableLayers,
|
@@ -1328,9 +1510,9 @@ var HLSView = () => {
|
|
1328
1510
|
isAuto: isUserSelectedAuto,
|
1329
1511
|
containerRef: hlsViewRef.current
|
1330
1512
|
}
|
1331
|
-
) : null, /* @__PURE__ */
|
1513
|
+
) : null, /* @__PURE__ */ React15.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }))
|
1332
1514
|
)
|
1333
|
-
)) : null, controlsVisible && /* @__PURE__ */
|
1515
|
+
)) : null, controlsVisible && /* @__PURE__ */ React15.createElement(
|
1334
1516
|
Flex,
|
1335
1517
|
{
|
1336
1518
|
ref: controlsRef,
|
@@ -1339,7 +1521,7 @@ var HLSView = () => {
|
|
1339
1521
|
align: "start",
|
1340
1522
|
css: {
|
1341
1523
|
position: "absolute",
|
1342
|
-
bottom: isFullScreen && ((
|
1524
|
+
bottom: isFullScreen && ((_d = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _d.playlist_type) === HLSPlaylistType.DVR ? "$8" : "0",
|
1343
1525
|
left: "0",
|
1344
1526
|
zIndex: 1,
|
1345
1527
|
background: isMobile || isLandscape ? "" : `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
|
@@ -1349,44 +1531,27 @@ var HLSView = () => {
|
|
1349
1531
|
transition: "visibility 0s 0.5s, opacity 0.5s linear"
|
1350
1532
|
}
|
1351
1533
|
},
|
1352
|
-
((
|
1353
|
-
/* @__PURE__ */
|
1534
|
+
((_e = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _e.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React15.createElement(HMSVideoPlayer.Progress, { seekProgress, setSeekProgress }) : null,
|
1535
|
+
/* @__PURE__ */ React15.createElement(
|
1354
1536
|
HMSVideoPlayer.Controls.Root,
|
1355
1537
|
{
|
1356
1538
|
css: {
|
1357
1539
|
p: "$4 $8"
|
1358
1540
|
}
|
1359
1541
|
},
|
1360
|
-
/* @__PURE__ */
|
1361
|
-
HMSVideoPlayer.Seeker,
|
1362
|
-
{
|
1363
|
-
onClick: () => {
|
1364
|
-
onSeekTo(-10);
|
1365
|
-
},
|
1366
|
-
title: "backward"
|
1367
|
-
},
|
1368
|
-
/* @__PURE__ */ React14.createElement(BackwardArrowIcon, { width: 20, height: 20 })
|
1369
|
-
), /* @__PURE__ */ React14.createElement(HMSVideoPlayer.PlayPauseButton, { isPaused }), /* @__PURE__ */ React14.createElement(
|
1370
|
-
HMSVideoPlayer.Seeker,
|
1371
|
-
{
|
1372
|
-
onClick: () => {
|
1373
|
-
onSeekTo(10);
|
1374
|
-
},
|
1375
|
-
title: "forward"
|
1376
|
-
},
|
1377
|
-
/* @__PURE__ */ React14.createElement(ForwardArrowIcon, { width: 20, height: 20 })
|
1378
|
-
), !isVideoLive ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null) : null, /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Volume, null)), /* @__PURE__ */ React14.createElement(
|
1542
|
+
/* @__PURE__ */ React15.createElement(HMSVideoPlayer.Controls.Left, null, !(isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(React15.Fragment, null, ((_f = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _f.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(HMSVideoPlayer.PlayPauseSeekControls.Button, { isPaused, onSeekTo }), !isVideoLive ? /* @__PURE__ */ React15.createElement(HMSVideoPlayer.Duration, null) : null) : null, /* @__PURE__ */ React15.createElement(HMSVideoPlayer.Volume, null)), /* @__PURE__ */ React15.createElement(
|
1379
1543
|
IconButton,
|
1380
1544
|
{
|
1381
1545
|
css: { px: "$2" },
|
1382
|
-
onClick: () => __async(void 0, null, function* () {
|
1546
|
+
onClick: (e) => __async(void 0, null, function* () {
|
1547
|
+
e.stopPropagation();
|
1383
1548
|
yield hlsPlayer == null ? void 0 : hlsPlayer.seekToLivePosition();
|
1384
1549
|
setIsVideoLive(true);
|
1385
1550
|
}),
|
1386
1551
|
key: "jump-to-live_btn",
|
1387
1552
|
"data-testid": "jump-to-live_btn"
|
1388
1553
|
},
|
1389
|
-
/* @__PURE__ */
|
1554
|
+
/* @__PURE__ */ React15.createElement(Tooltip, { title: isVideoLive ? "Live" : "Go to Live", side: "top" }, /* @__PURE__ */ React15.createElement(Flex, { justify: "center", gap: 2, align: "center" }, /* @__PURE__ */ React15.createElement(
|
1390
1555
|
Box,
|
1391
1556
|
{
|
1392
1557
|
css: {
|
@@ -1396,7 +1561,7 @@ var HLSView = () => {
|
|
1396
1561
|
r: "$1"
|
1397
1562
|
}
|
1398
1563
|
}
|
1399
|
-
), /* @__PURE__ */
|
1564
|
+
), /* @__PURE__ */ React15.createElement(
|
1400
1565
|
Text,
|
1401
1566
|
{
|
1402
1567
|
variant: "$body1",
|
@@ -1407,8 +1572,8 @@ var HLSView = () => {
|
|
1407
1572
|
},
|
1408
1573
|
isVideoLive ? "LIVE" : "GO LIVE"
|
1409
1574
|
)))
|
1410
|
-
), (isMobile || isLandscape) && !isVideoLive && ((
|
1411
|
-
/* @__PURE__ */
|
1575
|
+
), (isMobile || isLandscape) && !isVideoLive && ((_g = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _g.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React15.createElement(HMSVideoPlayer.Duration, null) : null),
|
1576
|
+
/* @__PURE__ */ React15.createElement(HMSVideoPlayer.Controls.Right, null, hasCaptions && !(isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 && !(isMobile || isLandscape) ? /* @__PURE__ */ React15.createElement(
|
1412
1577
|
HLSQualitySelector,
|
1413
1578
|
{
|
1414
1579
|
layers: availableLayers,
|
@@ -1418,17 +1583,17 @@ var HLSView = () => {
|
|
1418
1583
|
onQualityChange: handleQuality,
|
1419
1584
|
isAuto: isUserSelectedAuto
|
1420
1585
|
}
|
1421
|
-
) : null, isFullScreenSupported ? /* @__PURE__ */
|
1586
|
+
) : null, isFullScreenSupported ? /* @__PURE__ */ React15.createElement(FullScreenButton, { isFullScreen, onToggle: toggle }) : null)
|
1422
1587
|
)
|
1423
1588
|
))
|
1424
1589
|
)
|
1425
1590
|
)),
|
1426
|
-
/* @__PURE__ */
|
1427
|
-
isMobile && !isFullScreen && /* @__PURE__ */
|
1591
|
+
/* @__PURE__ */ React15.createElement(ToggleChat, { isFullScreen }),
|
1592
|
+
isMobile && !isFullScreen && /* @__PURE__ */ React15.createElement(HLSViewTitle, null)
|
1428
1593
|
);
|
1429
1594
|
};
|
1430
1595
|
var HLSView_default = HLSView;
|
1431
1596
|
export {
|
1432
1597
|
HLSView_default as default
|
1433
1598
|
};
|
1434
|
-
//# sourceMappingURL=HLSView-
|
1599
|
+
//# sourceMappingURL=HLSView-BCIIVR2T.js.map
|