@100mslive/roomkit-react 0.3.3-alpha.1 → 0.3.3-alpha.3
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/{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
|