@100mslive/roomkit-react 0.3.3-alpha.4 → 0.3.3-alpha.5

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.
Files changed (58) hide show
  1. package/dist/Accordion/Accordion.d.ts +1 -0
  2. package/dist/Accordion/index.d.ts +1 -0
  3. package/dist/{HLSView-VUANLYLS.js → HLSView-W72TK3BE.js} +331 -166
  4. package/dist/HLSView-W72TK3BE.js.map +7 -0
  5. package/dist/IconButton/IconButton.d.ts +1 -1
  6. package/dist/Modal/Dialog.d.ts +1 -1
  7. package/dist/Prebuilt/IconButton.d.ts +2 -3
  8. package/dist/Prebuilt/components/Footer/ChatToggle.d.ts +3 -1
  9. package/dist/Prebuilt/components/HMSVideo/PlayPauseButton.d.ts +2 -2
  10. package/dist/Prebuilt/components/HMSVideo/PlayPauseSeekControls.d.ts +14 -0
  11. package/dist/Prebuilt/components/HMSVideo/{SeekControls.d.ts → SeekControl.d.ts} +2 -2
  12. package/dist/Prebuilt/components/HMSVideo/index.d.ts +15 -11
  13. package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +2 -2
  14. package/dist/Prebuilt/components/RaiseHand.d.ts +1 -1
  15. package/dist/Prebuilt/components/VideoLayouts/WhiteboardLayout.d.ts +3 -0
  16. package/dist/Prebuilt/components/hooks/useMetadata.d.ts +8 -0
  17. package/dist/Sheet/Sheet.d.ts +1 -1
  18. package/dist/{chunk-5WTUTVRO.js → chunk-HTFCZ4D6.js} +618 -540
  19. package/dist/chunk-HTFCZ4D6.js.map +7 -0
  20. package/dist/index.cjs.js +1688 -1427
  21. package/dist/index.cjs.js.map +4 -4
  22. package/dist/index.js +1 -1
  23. package/dist/meta.cjs.json +249 -170
  24. package/dist/meta.esbuild.json +261 -181
  25. package/package.json +7 -7
  26. package/src/Accordion/Accordion.tsx +4 -4
  27. package/src/IconButton/IconButton.tsx +2 -7
  28. package/src/Prebuilt/IconButton.tsx +6 -10
  29. package/src/Prebuilt/components/Chat/ChatBody.tsx +10 -0
  30. package/src/Prebuilt/components/Chat/ChatFooter.tsx +2 -4
  31. package/src/Prebuilt/components/ConferenceScreen.tsx +1 -4
  32. package/src/Prebuilt/components/Footer/ChatToggle.tsx +2 -2
  33. package/src/Prebuilt/components/Footer/Footer.tsx +1 -4
  34. package/src/Prebuilt/components/Footer/ParticipantList.tsx +4 -1
  35. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +6 -6
  36. package/src/Prebuilt/components/Footer/WhiteboardToggle.tsx +17 -3
  37. package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +1 -0
  38. package/src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx +2 -2
  39. package/src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx +158 -0
  40. package/src/Prebuilt/components/HMSVideo/{SeekControls.tsx → SeekControl.tsx} +2 -2
  41. package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +7 -3
  42. package/src/Prebuilt/components/HMSVideo/index.ts +5 -4
  43. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +7 -7
  44. package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +0 -1
  45. package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +1 -5
  46. package/src/Prebuilt/components/PreviousRoleInMetadata.tsx +0 -1
  47. package/src/Prebuilt/components/RaiseHand.tsx +7 -1
  48. package/src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx +0 -1
  49. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +27 -4
  50. package/src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx +95 -0
  51. package/src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx +13 -5
  52. package/src/Prebuilt/components/hooks/{useMetadata.jsx → useMetadata.tsx} +2 -8
  53. package/src/Prebuilt/layouts/HLSView.jsx +115 -78
  54. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +1 -17
  55. package/dist/HLSView-VUANLYLS.js.map +0 -7
  56. package/dist/Prebuilt/layouts/WhiteboardView.d.ts +0 -2
  57. package/dist/chunk-5WTUTVRO.js.map +0 -7
  58. 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-5WTUTVRO.js";
41
+ } from "./chunk-HTFCZ4D6.js";
41
42
 
42
43
  // src/Prebuilt/layouts/HLSView.jsx
43
44
  init_define_process_env();
44
- import React14, { useCallback as useCallback2, useEffect as useEffect3, useRef, useState as useState4 } from "react";
45
- import { useFullscreen, useMedia as useMedia3, usePrevious, useToggle } from "react-use";
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 { BackwardArrowIcon, ColoredHandIcon, ForwardArrowIcon, GoLiveIcon } from "@100mslive/react-icons";
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/SeekControls.tsx
265
+ // src/Prebuilt/components/HMSVideo/SeekControl.tsx
258
266
  init_define_process_env();
259
267
  import React5 from "react";
260
- var SeekControls = ({
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 React6, { useCallback, useEffect, useState } from "react";
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
- setVideoProgress(isNaN(videoProgress2) ? 0 : videoProgress2);
315
- setBufferProgress(isNaN(bufferProgress2) ? 0 : bufferProgress2);
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__ */ React6.createElement(Flex, { align: "center", css: { cursor: "pointer", h: "$2", alignSelf: "stretch" } }, /* @__PURE__ */ React6.createElement(
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__ */ React6.createElement(
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 React7, { useEffect as useEffect2, useState as useState2 } from "react";
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__ */ React7.createElement(
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 React8, { useState as useState3 } from "react";
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__ */ React8.createElement(
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__ */ React8.createElement(
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__ */ React8.createElement(
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__ */ React8.createElement(VolumeZeroIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
631
+ return /* @__PURE__ */ React9.createElement(VolumeZeroIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
491
632
  }
492
- return volume < 50 ? /* @__PURE__ */ React8.createElement(VolumeOneIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick }) : /* @__PURE__ */ React8.createElement(VolumeTwoIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
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
- Seeker: SeekControls
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 React9 from "react";
655
+ import React10 from "react";
513
656
  import { ExpandIcon, ShrinkIcon } from "@100mslive/react-icons";
514
657
  var FullScreenButton = ({ isFullScreen, onToggle }) => {
515
- return /* @__PURE__ */ React9.createElement(Tooltip, { title: `${isFullScreen ? "Exit" : "Go"} fullscreen`, side: "top" }, /* @__PURE__ */ React9.createElement(IconButton, { css: { margin: "0px" }, onClick: onToggle, key: "fullscreen_btn", "data-testid": "fullscreen_btn" }, /* @__PURE__ */ React9.createElement(Flex, null, isFullScreen ? /* @__PURE__ */ React9.createElement(ShrinkIcon, null) : /* @__PURE__ */ React9.createElement(ExpandIcon, null))));
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 React10 from "react";
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 = useMedia(config.media.md);
671
+ const isMobile = useMedia2(config.media.md);
529
672
  if ((isMobile || isLandscape) && open) {
530
- return /* @__PURE__ */ React10.createElement(
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__ */ React10.createElement(VolumeTwoIcon2, { width: "32", height: "32" }),
544
- /* @__PURE__ */ React10.createElement(
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__ */ React10.createElement(
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__ */ React10.createElement(DialogContent, { title: "Attention", closeable: false }, /* @__PURE__ */ React10.createElement(DialogRow, null, /* @__PURE__ */ React10.createElement(Text, { variant: "md" }, 'The browser wants us to get a confirmation for playing the HLS Stream. Please click "play stream" to proceed.')), /* @__PURE__ */ React10.createElement(DialogRow, { justify: "end" }, /* @__PURE__ */ React10.createElement(
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 React11 from "react";
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__ */ React11.createElement(Tooltip, { title: "Subtitles/closed captions", side: "top" }, /* @__PURE__ */ React11.createElement(IconButton, { css: { p: "$2" }, onClick: () => hlsPlayer2 == null ? void 0 : hlsPlayer2.toggleCaption() }, isEnabled ? /* @__PURE__ */ React11.createElement(ClosedCaptionIcon, { width: "20", height: "20px" }) : /* @__PURE__ */ React11.createElement(OpenCaptionIcon, { width: "20", height: "20px" })));
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 React12 from "react";
593
- import { useMedia as useMedia2 } from "react-use";
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 = useMedia2(config.media.md);
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__ */ React12.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React12.createElement(Sheet.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(SettingsIcon, null)
621
- )), /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(
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__ */ React12.createElement(Sheet.Close, { css: { color: "$on_surface_high" }, onClick: () => onOpenChange(false) }, /* @__PURE__ */ React12.createElement(CrossIcon2, null))
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__ */ React12.createElement(
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__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
667
- /* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
668
- !isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
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__ */ React12.createElement(
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__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
690
- isAuto && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
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__ */ React12.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpenChange(value), modal: false }, /* @__PURE__ */ React12.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(Tooltip, { title: "Select Quality", side: "top" }, /* @__PURE__ */ React12.createElement(Flex, { align: "center" }, /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(SettingsIcon, null)
716
- ), /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(React12.Fragment, null, "Auto", /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(Dropdown.Portal, { container: containerRef }, /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(
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__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
773
- /* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
774
- !isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
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__ */ React12.createElement(
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__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
793
- isAuto && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
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 React13 from "react";
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__ */ React13.createElement(
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__ */ React13.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, "About Session"),
825
- /* @__PURE__ */ React13.createElement(
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__ */ React13.createElement(ChevronDownIcon, null)
978
+ /* @__PURE__ */ React14.createElement(ChevronDownIcon, null)
836
979
  )
837
980
  );
838
981
  }
839
- return /* @__PURE__ */ React13.createElement(
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__ */ React13.createElement(Logo, null),
854
- /* @__PURE__ */ React13.createElement(Flex, { direction: "column" }, title ? /* @__PURE__ */ React13.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, title) : null, /* @__PURE__ */ React13.createElement(Flex, null, /* @__PURE__ */ React13.createElement(RoomDetailsRow, { details }), description ? /* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" }, onClick: toggleDetailsPane }, "\xA0...more") : null))
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 = useMedia3(config.media.md);
1009
+ const isMobile = useMedia4(config.media.md);
867
1010
  const hmsActions = useHMSActions();
868
1011
  useEffect3(() => {
869
- match({ sidepane, isMobile, showChat }).with({ isMobile: true, showChat: true, sidepane: P.when((value) => !value) }, () => {
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 [isSeekEnabled, setIsSeekEnabled] = useState4(false);
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 isMobile = useMedia3(config.media.md);
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__ */ React14.createElement(
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) => setIsPaused(data.state === HLSPlaybackState.paused);
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((seek) => {
1107
- var _a2;
1108
- hlsPlayer == null ? void 0 : hlsPlayer.seekTo(((_a2 = videoRef.current) == null ? void 0 : _a2.currentTime) + seek);
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
- setIsSeekEnabled(false);
1125
- }, 200);
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__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(ToggleChat, null), hlsViewRef.current && (isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(Box, { css: { position: "fixed", left: "$4", top: "$4", zIndex: 11 } }, /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType: "hls_live_streaming", container: hlsViewRef.current })), /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React14.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React14.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React14.createElement(GoLiveIcon, { height: 56, width: 56 })), /* @__PURE__ */ React14.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React14.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
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__ */ React14.createElement(
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__ */ React14.createElement(Box, { css: { position: "fixed", left: "$4", top: "$4", zIndex: 11 } }, /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType: "hls_live_streaming", container: hlsViewRef.current })),
1203
- /* @__PURE__ */ React14.createElement(HMSPlayerContext.Provider, { value: { hlsPlayer } }, (hlsStatsState == null ? void 0 : hlsStatsState.url) && enablHlsStats && !(isMobile || isLandscape) ? /* @__PURE__ */ React14.createElement(HlsStatsOverlay, { hlsStatsState, onClose: sfnOverlayClose }) : null, /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }),
1226
- showLoader && /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(Loading, { width: 72, height: 72 })
1424
+ /* @__PURE__ */ React15.createElement(Loading, { width: 72, height: 72 })
1236
1425
  ),
1237
- /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(React14.Fragment, null, isMobile || isLandscape ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
1438
+ /* @__PURE__ */ React15.createElement(React15.Fragment, null, !(isMobile || isLandscape) && /* @__PURE__ */ React15.createElement(
1250
1439
  Flex,
1251
1440
  {
1252
1441
  align: "center",
1253
- justify: "center",
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__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
1266
- HMSVideoPlayer.Seeker,
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
- css: {
1279
- bg: "rgba(0, 0, 0, 0.6)",
1280
- r: "$round"
1281
- }
1282
- },
1283
- /* @__PURE__ */ React14.createElement(HMSVideoPlayer.PlayPauseButton, { isPaused, width: 48, height: 48 })
1284
- ), /* @__PURE__ */ React14.createElement(
1285
- HMSVideoPlayer.Seeker,
1286
- {
1287
- title: "forward",
1288
- css: {
1289
- visibility: isSeekEnabled ? `` : `hidden`,
1290
- opacity: isSeekEnabled ? `1` : "0"
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__ */ React14.createElement(
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__ */ React14.createElement(HMSVideoPlayer.Controls.Right, null, isLandscape && /* @__PURE__ */ React14.createElement(ChatToggle, null), hasCaptions && !isHlsAutoplayBlocked && /* @__PURE__ */ React14.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), hlsViewRef.current && availableLayers.length > 0 && !isHlsAutoplayBlocked ? /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }))
1513
+ ) : null, /* @__PURE__ */ React15.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }))
1332
1514
  )
1333
- )) : null, controlsVisible && /* @__PURE__ */ React14.createElement(
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 && ((_c = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _c.playlist_type) === HLSPlaylistType.DVR ? "$8" : "0",
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
- ((_d = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _d.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Progress, { seekProgress, setSeekProgress }) : null,
1353
- /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, !(isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(React14.Fragment, null, ((_e = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _e.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(Tooltip, { title: isVideoLive ? "Live" : "Go to Live", side: "top" }, /* @__PURE__ */ React14.createElement(Flex, { justify: "center", gap: 2, align: "center" }, /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(
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 && ((_f = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _f.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null),
1411
- /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Right, null, hasCaptions && !(isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 && !(isMobile || isLandscape) ? /* @__PURE__ */ React14.createElement(
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__ */ React14.createElement(FullScreenButton, { isFullScreen, onToggle: toggle }) : null)
1586
+ ) : null, isFullScreenSupported ? /* @__PURE__ */ React15.createElement(FullScreenButton, { isFullScreen, onToggle: toggle }) : null)
1422
1587
  )
1423
1588
  ))
1424
1589
  )
1425
1590
  )),
1426
- /* @__PURE__ */ React14.createElement(ToggleChat, null),
1427
- isMobile && !isFullScreen && /* @__PURE__ */ React14.createElement(HLSViewTitle, null)
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-VUANLYLS.js.map
1599
+ //# sourceMappingURL=HLSView-W72TK3BE.js.map