@100mslive/roomkit-react 0.3.22-alpha.0 → 0.3.22-alpha.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. package/dist/Accordion/Accordion.d.ts +134 -322
  2. package/dist/Accordion/index.d.ts +134 -322
  3. package/dist/Avatar/Avatar.d.ts +47 -141
  4. package/dist/Button/Button.d.ts +47 -141
  5. package/dist/Checkbox/Checkbox.d.ts +134 -322
  6. package/dist/Collapsible/Collapsible.d.ts +201 -483
  7. package/dist/ConferenceScreen-5G5WGPIO.css +2780 -0
  8. package/dist/{HLSView-JYFTZVCM.css.map → ConferenceScreen-5G5WGPIO.css.map} +1 -1
  9. package/dist/ConferenceScreen-KS5URW6Z.js +1778 -0
  10. package/dist/ConferenceScreen-KS5URW6Z.js.map +7 -0
  11. package/dist/Divider/Divider.d.ts +134 -322
  12. package/dist/Dropdown/Dropdown.d.ts +804 -1932
  13. package/dist/EmbedView-BCRQ3GHV.js +17 -0
  14. package/dist/EmbedView-BCRQ3GHV.js.map +7 -0
  15. package/dist/EmbedView-Y24VRONT.css +2780 -0
  16. package/dist/EmbedView-Y24VRONT.css.map +7 -0
  17. package/dist/EmojiReaction-NA5F5DWN.js +11 -0
  18. package/dist/EmojiReaction-NA5F5DWN.js.map +7 -0
  19. package/dist/Fieldset/Fieldset.d.ts +47 -141
  20. package/dist/Footer/Footer.d.ts +536 -1288
  21. package/dist/{HLSView-JYFTZVCM.css → HLSView-DC43TOIW.css} +3 -3
  22. package/dist/HLSView-DC43TOIW.css.map +7 -0
  23. package/dist/{HLSView-EPPGI6XI.js → HLSView-XRGOWFRB.js} +38 -24
  24. package/dist/HLSView-XRGOWFRB.js.map +7 -0
  25. package/dist/IconButton/IconButton.d.ts +47 -141
  26. package/dist/Input/Input.d.ts +362 -926
  27. package/dist/Label/Label.d.ts +47 -141
  28. package/dist/Layout/Box.d.ts +47 -141
  29. package/dist/Layout/Flex.d.ts +47 -141
  30. package/dist/LeaveScreen-3OZN3MU3.css +2780 -0
  31. package/dist/LeaveScreen-3OZN3MU3.css.map +7 -0
  32. package/dist/LeaveScreen-PC4KB6OG.js +556 -0
  33. package/dist/LeaveScreen-PC4KB6OG.js.map +7 -0
  34. package/dist/Link/Link.d.ts +47 -141
  35. package/dist/Modal/Dialog.d.ts +329 -987
  36. package/dist/Modal/DialogContent.d.ts +469 -1127
  37. package/dist/MoreSettings-KTRYHDB2.css +2780 -0
  38. package/dist/MoreSettings-KTRYHDB2.css.map +7 -0
  39. package/dist/MoreSettings-XLNYT7PW.js +16 -0
  40. package/dist/MoreSettings-XLNYT7PW.js.map +7 -0
  41. package/dist/PDFView-LJ7I3K3H.js +84 -0
  42. package/dist/PDFView-LJ7I3K3H.js.map +7 -0
  43. package/dist/PDFView-RJK44WVO.css +2780 -0
  44. package/dist/PDFView-RJK44WVO.css.map +7 -0
  45. package/dist/Pagination/StyledPagination.d.ts +268 -644
  46. package/dist/Polls-AULCHMLW.js +1584 -0
  47. package/dist/Polls-AULCHMLW.js.map +7 -0
  48. package/dist/Polls-K4GO5ZOC.css +2780 -0
  49. package/dist/Polls-K4GO5ZOC.css.map +7 -0
  50. package/dist/Popover/index.d.ts +201 -483
  51. package/dist/Prebuilt/IconButton.d.ts +134 -322
  52. package/dist/Prebuilt/components/Chat/ChatBody.d.ts +134 -322
  53. package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +335 -805
  54. package/dist/Prebuilt/components/Notifications/DeviceChangeNotifications.d.ts +1 -0
  55. package/dist/Prebuilt/components/Notifications/DeviceInUseError.d.ts +2 -0
  56. package/dist/Prebuilt/components/Notifications/ErrorNotifications.d.ts +1 -0
  57. package/dist/Prebuilt/components/Notifications/MessageNotifications.d.ts +1 -0
  58. package/dist/Prebuilt/components/Notifications/PollNotificationModal.d.ts +1 -0
  59. package/dist/Prebuilt/components/Settings/common.d.ts +134 -322
  60. package/dist/Progress/index.d.ts +134 -322
  61. package/dist/RadioGroup/RadioGroup.d.ts +201 -483
  62. package/dist/RaiseHand-E4OVMBW6.js +10 -0
  63. package/dist/RaiseHand-E4OVMBW6.js.map +7 -0
  64. package/dist/ReactSelect/ReactSelect.d.ts +670 -1610
  65. package/dist/RoleProminence-LHUXHLVI.css +2780 -0
  66. package/dist/RoleProminence-LHUXHLVI.css.map +7 -0
  67. package/dist/RoleProminence-RWJP2Z36.js +116 -0
  68. package/dist/RoleProminence-RWJP2Z36.js.map +7 -0
  69. package/dist/RoomDetailsPane-6BM2FPWW.css +2780 -0
  70. package/dist/RoomDetailsPane-6BM2FPWW.css.map +7 -0
  71. package/dist/RoomDetailsPane-7OP2CNJW.js +53 -0
  72. package/dist/RoomDetailsPane-7OP2CNJW.js.map +7 -0
  73. package/dist/ScreenshareLayout-RHTD2PQT.css +2780 -0
  74. package/dist/ScreenshareLayout-RHTD2PQT.css.map +7 -0
  75. package/dist/ScreenshareLayout-TM7DLYLH.js +358 -0
  76. package/dist/ScreenshareLayout-TM7DLYLH.js.map +7 -0
  77. package/dist/Select/Select.d.ts +201 -483
  78. package/dist/Sheet/Sheet.d.ts +329 -987
  79. package/dist/SidePaneTabs-T7BKZ2AT.js +1354 -0
  80. package/dist/SidePaneTabs-T7BKZ2AT.js.map +7 -0
  81. package/dist/SidePaneTabs-TBUPHNAU.css +2780 -0
  82. package/dist/SidePaneTabs-TBUPHNAU.css.map +7 -0
  83. package/dist/Slider/Slider.d.ts +47 -141
  84. package/dist/Stats/StyledStats.d.ts +402 -966
  85. package/dist/Switch/Switch.d.ts +47 -141
  86. package/dist/Tabs/Tabs.d.ts +268 -644
  87. package/dist/Text/Text.d.ts +47 -141
  88. package/dist/TextArea/TextArea.d.ts +47 -141
  89. package/dist/Theme/base.config.d.ts +26 -78
  90. package/dist/Theme/stitches.config.d.ts +1046 -1493
  91. package/dist/TileMenu/StyledMenuTile.d.ts +469 -1127
  92. package/dist/Toast/Toast.d.ts +382 -946
  93. package/dist/VBPicker-M5VYFEUB.css +2780 -0
  94. package/dist/VBPicker-M5VYFEUB.css.map +7 -0
  95. package/dist/VBPicker-TQLIL3NC.js +322 -0
  96. package/dist/VBPicker-TQLIL3NC.js.map +7 -0
  97. package/dist/Video/Video.d.ts +47 -141
  98. package/dist/VideoList/StyledVideoList.d.ts +201 -483
  99. package/dist/VideoTile/StyledVideoTile.d.ts +670 -1610
  100. package/dist/WaitingView-TLJ52XYA.js +10 -0
  101. package/dist/WaitingView-TLJ52XYA.js.map +7 -0
  102. package/dist/WhiteboardLayout-PZZTM2FW.css +2780 -0
  103. package/dist/WhiteboardLayout-PZZTM2FW.css.map +7 -0
  104. package/dist/WhiteboardLayout-YYZ5UVGG.js +96 -0
  105. package/dist/WhiteboardLayout-YYZ5UVGG.js.map +7 -0
  106. package/dist/android-perm-1.png +0 -0
  107. package/dist/audio-level.png +0 -0
  108. package/dist/chunk-42XPBCZO.js +487 -0
  109. package/dist/chunk-42XPBCZO.js.map +7 -0
  110. package/dist/chunk-4BQ3AMVG.js +16802 -0
  111. package/dist/chunk-4BQ3AMVG.js.map +7 -0
  112. package/dist/chunk-4L5OKEIV.js +90 -0
  113. package/dist/chunk-4L5OKEIV.js.map +7 -0
  114. package/dist/chunk-6BX3VCVC.js +6337 -0
  115. package/dist/chunk-6BX3VCVC.js.map +7 -0
  116. package/dist/chunk-A3COGXMF.js +114 -0
  117. package/dist/chunk-A3COGXMF.js.map +7 -0
  118. package/dist/chunk-B3HHL3ND.js +178 -0
  119. package/dist/chunk-B3HHL3ND.js.map +7 -0
  120. package/dist/chunk-B5NLX6N6.js +41 -0
  121. package/dist/chunk-B5NLX6N6.js.map +7 -0
  122. package/dist/chunk-BXBPZGSP.js +161 -0
  123. package/dist/chunk-BXBPZGSP.js.map +7 -0
  124. package/dist/chunk-DVVFWHQG.js +136 -0
  125. package/dist/chunk-DVVFWHQG.js.map +7 -0
  126. package/dist/chunk-GV2DTYSU.js +262 -0
  127. package/dist/chunk-GV2DTYSU.js.map +7 -0
  128. package/dist/chunk-KF2YEUWU.js +254 -0
  129. package/dist/chunk-KF2YEUWU.js.map +7 -0
  130. package/dist/chunk-KQXTIHI6.js +59 -0
  131. package/dist/chunk-KQXTIHI6.js.map +7 -0
  132. package/dist/chunk-MR3HE7HV.js +830 -0
  133. package/dist/chunk-MR3HE7HV.js.map +7 -0
  134. package/dist/chunk-OQBTPJPO.js +71 -0
  135. package/dist/chunk-OQBTPJPO.js.map +7 -0
  136. package/dist/chunk-P7OOTR7P.js +2595 -0
  137. package/dist/chunk-P7OOTR7P.js.map +7 -0
  138. package/dist/chunk-THDU2DKP.js +30 -0
  139. package/dist/chunk-THDU2DKP.js.map +7 -0
  140. package/dist/chunk-U4QYH2BP.js +98 -0
  141. package/dist/chunk-U4QYH2BP.js.map +7 -0
  142. package/dist/chunk-USEEH3QW.js +418 -0
  143. package/dist/chunk-USEEH3QW.js.map +7 -0
  144. package/dist/chunk-UZW3C3ML.js +171 -0
  145. package/dist/chunk-UZW3C3ML.js.map +7 -0
  146. package/dist/chunk-YDIB6WKJ.js +576 -0
  147. package/dist/chunk-YDIB6WKJ.js.map +7 -0
  148. package/dist/chunk-ZFTULCCP.js +62 -0
  149. package/dist/chunk-ZFTULCCP.js.map +7 -0
  150. package/dist/empty-chat.svg +12 -0
  151. package/dist/index.cjs.css +2 -2
  152. package/dist/index.cjs.css.map +1 -1
  153. package/dist/index.cjs.js +22737 -22481
  154. package/dist/index.cjs.js.map +4 -4
  155. package/dist/index.css +2 -2
  156. package/dist/index.css.map +1 -1
  157. package/dist/index.js +25 -15
  158. package/dist/ios-perm-0.png +0 -0
  159. package/dist/meta.cjs.json +5680 -5307
  160. package/dist/meta.esbuild.json +8824 -5953
  161. package/dist/pdf-share.png +0 -0
  162. package/dist/screen-share.png +0 -0
  163. package/dist/transaction_error.svg +12 -0
  164. package/package.json +8 -8
  165. package/src/Avatar/Avatar.tsx +1 -1
  166. package/src/Popover/Popover.stories.tsx +1 -1
  167. package/src/Prebuilt/App.tsx +6 -2
  168. package/src/Prebuilt/components/Chat/Chat.tsx +12 -8
  169. package/src/Prebuilt/components/Chat/ChatFooter.tsx +1 -1
  170. package/src/Prebuilt/components/Header/common.jsx +6 -5
  171. package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +18 -0
  172. package/src/Prebuilt/components/Notifications/DeviceInUseError.tsx +79 -0
  173. package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +56 -0
  174. package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +24 -0
  175. package/src/Prebuilt/components/Notifications/Notifications.tsx +13 -159
  176. package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +23 -2
  177. package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +71 -0
  178. package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +1 -5
  179. package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +7 -5
  180. package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +23 -1
  181. package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +13 -5
  182. package/src/Prebuilt/components/StatsForNerds.jsx +32 -3
  183. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +43 -31
  184. package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +2 -2
  185. package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +3 -1
  186. package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +6 -0
  187. package/src/Prebuilt/layouts/HLSView.jsx +1 -0
  188. package/src/Prebuilt/layouts/PDFView.jsx +1 -0
  189. package/src/Prebuilt/layouts/SidePane.tsx +12 -6
  190. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +35 -34
  191. package/dist/HLSView-EPPGI6XI.js.map +0 -7
  192. package/dist/chunk-ZAX5VT7V.js +0 -34686
  193. package/dist/chunk-ZAX5VT7V.js.map +0 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/Prebuilt/components/ConferenceScreen.tsx", "../src/Prebuilt/components/Footer/Footer.tsx", "../src/Prebuilt/components/CaptionIcon.tsx", "../src/Prebuilt/components/ScreenShareToggle.jsx", "../src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx", "../src/Prebuilt/components/ShareMenuIcon.jsx", "../src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx", "../src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx", "../src/Prebuilt/components/pdfAnnotator/submitPdf.jsx", "../src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx", "../src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx", "../src/Prebuilt/components/Footer/PollsToggle.tsx", "../src/Prebuilt/components/Footer/WhiteboardToggle.tsx", "../src/Prebuilt/components/Notifications/HLSFailureModal.tsx", "../src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx", "../src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx", "../src/Prebuilt/layouts/VideoStreamingSection.tsx", "../src/Prebuilt/components/VideoLayouts/GridLayout.tsx", "../src/Prebuilt/components/VideoLayouts/EqualProminence.tsx", "../src/Prebuilt/common/PeersSorter.ts", "../src/Prebuilt/plugins/CaptionsViewer.tsx", "../src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx", "../src/Prebuilt/components/PreviousRoleInMetadata.tsx"],
4
+ "sourcesContent": ["import React, { useEffect, useRef, useState } from 'react';\nimport { DefaultConferencingScreen_Elements } from '@100mslive/types-prebuilt';\nimport { v4 as uuid } from 'uuid';\nimport {\n HMSRoomState,\n selectAppData,\n selectIsConnectedToRoom,\n selectRoomState,\n useAwayNotifications,\n useHMSActions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { Footer } from './Footer/Footer';\nimport { MoreSettings } from './MoreSettings/MoreSettings';\nimport { HLSFailureModal } from './Notifications/HLSFailureModal';\n// @ts-ignore: No implicit Any\nimport { ActivatedPIP } from './PIP/PIPComponent';\n// @ts-ignore: No implicit Any\nimport { PictureInPicture } from './PIP/PIPManager';\nimport { RoleChangeRequestModal } from './RoleChangeRequest/RoleChangeRequestModal';\nimport { Box, Flex } from '../../Layout';\nimport { useHMSPrebuiltContext } from '../AppContext';\nimport { VideoStreamingSection } from '../layouts/VideoStreamingSection';\n// @ts-ignore: No implicit Any\nimport { EmojiReaction } from './EmojiReaction';\nimport FullPageProgress from './FullPageProgress';\nimport { Header } from './Header';\nimport { PreviousRoleInMetadata } from './PreviousRoleInMetadata';\nimport { RaiseHand } from './RaiseHand';\nimport {\n useRoomLayoutConferencingScreen,\n useRoomLayoutPreviewScreen,\n} from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { useAuthToken, useSetAppDataByKey } from './AppData/useUISettings';\nimport { useLandscapeHLSStream, useMobileHLSStream } from '../common/hooks';\nimport { APP_DATA, isAndroid, isIOS, isIPadOS } from '../common/constants';\n\nexport const ConferenceScreen = () => {\n const { userName, endpoints, onJoin: onJoinFunc } = useHMSPrebuiltContext();\n const screenProps = useRoomLayoutConferencingScreen();\n const { isPreviewScreenEnabled } = useRoomLayoutPreviewScreen();\n const roomState = useHMSStore(selectRoomState);\n const isConnectedToRoom = useHMSStore(selectIsConnectedToRoom);\n const hmsActions = useHMSActions();\n const [hideControls, setHideControls] = useState(false);\n const dropdownList = useHMSStore(selectAppData(APP_DATA.dropdownList));\n const authTokenInAppData = useAuthToken();\n const headerRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n const isMobileDevice = isAndroid || isIOS || isIPadOS;\n const dropdownListRef = useRef<string[]>();\n const [isHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);\n const { requestPermission } = useAwayNotifications();\n\n // using it in hls stream to show action button when chat is disabled\n const showChat = !!screenProps.elements?.chat;\n const autoRoomJoined = useRef(isPreviewScreenEnabled);\n const isMobileHLSStream = useMobileHLSStream();\n const isLandscapeHLSStream = useLandscapeHLSStream();\n const isMwebHLSStream = isMobileHLSStream || isLandscapeHLSStream;\n\n const toggleControls = () => {\n if (dropdownListRef.current?.length === 0 && isMobileDevice && !isMwebHLSStream) {\n setHideControls(value => !value);\n }\n };\n\n useEffect(() => {\n let timeout: undefined | ReturnType<typeof setTimeout>;\n dropdownListRef.current = dropdownList || [];\n if (dropdownListRef.current && dropdownListRef.current.length === 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if (dropdownListRef.current && dropdownListRef.current.length === 0) {\n setHideControls(isMobileDevice);\n }\n }, 5000);\n }\n return () => {\n clearTimeout(timeout);\n };\n }, [dropdownList, hideControls, isMobileDevice]);\n\n useEffect(() => {\n if (\n authTokenInAppData &&\n !isConnectedToRoom &&\n !isPreviewScreenEnabled &&\n roomState !== HMSRoomState.Connecting &&\n !autoRoomJoined.current\n ) {\n hmsActions\n .join({\n userName: userName || uuid(),\n authToken: authTokenInAppData,\n initEndpoint: endpoints?.init,\n settings: {\n isAudioMuted: !isPreviewScreenEnabled,\n isVideoMuted: !isPreviewScreenEnabled,\n speakerAutoSelectionBlacklist: ['Yeti Stereo Microphone'],\n },\n })\n .then(() => requestPermission())\n .catch(console.error);\n autoRoomJoined.current = true;\n }\n }, [\n authTokenInAppData,\n endpoints?.init,\n hmsActions,\n isConnectedToRoom,\n isPreviewScreenEnabled,\n roomState,\n userName,\n requestPermission,\n ]);\n\n useEffect(() => {\n onJoinFunc?.();\n return () => {\n PictureInPicture.stop().catch((error: unknown) => console.error('stopping pip', (error as Error).message));\n };\n }, [onJoinFunc]);\n\n if (!isConnectedToRoom && ![HMSRoomState.Reconnecting, HMSRoomState.Disconnected].includes(roomState)) {\n return <FullPageProgress text={roomState === HMSRoomState.Connecting ? 'Joining...' : ''} />;\n }\n\n const hideControlsForStreaming = isMwebHLSStream ? true : hideControls;\n\n return (\n <>\n {isHLSStarted ? (\n <Box css={{ position: 'fixed', zIndex: 100, w: '100%', h: '100%', left: 0, top: 0 }}>\n <FullPageProgress text=\"Starting live stream...\" css={{ opacity: 0.8, bg: '$background_dim' }} />\n </Box>\n ) : null}\n <Flex css={{ size: '100%', overflow: 'hidden' }} direction=\"column\">\n {!(screenProps.hideSections.includes('header') || isMwebHLSStream) && (\n <Box\n ref={headerRef}\n css={{\n h: '$18',\n transition: 'margin 0.3s ease-in-out',\n marginTop: hideControlsForStreaming ? `-${headerRef.current?.clientHeight}px` : 'none',\n '@md': {\n h: '$17',\n },\n }}\n data-testid=\"header\"\n >\n <Header />\n </Box>\n )}\n <Box\n css={{\n w: '100%',\n flex: '1 1 0',\n minHeight: 0,\n // @ts-ignore\n px: (screenProps?.elements as DefaultConferencingScreen_Elements)?.video_tile_layout?.grid?.edge_to_edge\n ? 0\n : '$10', // TODO: padding to be controlled by section/element\n paddingBottom: 'env(safe-area-inset-bottom)',\n '@lg': {\n px: 0,\n },\n }}\n id=\"conferencing\"\n data-testid=\"conferencing\"\n onClick={toggleControls}\n >\n {screenProps.elements ? (\n <VideoStreamingSection\n screenType={screenProps.screenType}\n elements={screenProps.elements}\n hideControls={hideControlsForStreaming}\n />\n ) : null}\n </Box>\n {!screenProps.hideSections.includes('footer') && screenProps.elements && !isMwebHLSStream && (\n <Box\n ref={footerRef}\n css={{\n flexShrink: 0,\n maxHeight: '$24',\n transition: 'margin 0.3s ease-in-out',\n bg: '$background_dim',\n marginBottom: hideControlsForStreaming ? `-${footerRef.current?.clientHeight}px` : undefined,\n '@md': {\n maxHeight: 'unset',\n bg: screenProps.screenType === 'hls_live_streaming' ? 'transparent' : '$background_dim',\n },\n }}\n data-testid=\"footer\"\n >\n <Footer elements={screenProps.elements} screenType={screenProps.screenType} />\n </Box>\n )}\n {isMwebHLSStream && !showChat && (\n <Flex\n css={{\n alignItems: 'center',\n pr: '$4',\n pb: '$4',\n position: 'relative',\n }}\n justify=\"end\"\n gap=\"2\"\n >\n <RaiseHand />\n <MoreSettings elements={screenProps.elements} screenType={screenProps.screenType} />\n <Box\n css={{\n position: 'absolute',\n bottom: '100%',\n mb: '$4',\n }}\n >\n <EmojiReaction />\n </Box>\n </Flex>\n )}\n <RoleChangeRequestModal />\n <HLSFailureModal />\n <ActivatedPIP />\n <PreviousRoleInMetadata />\n </Flex>\n </>\n );\n};\n", "import React, { useEffect } from 'react';\nimport { useMedia } from 'react-use';\nimport { ConferencingScreen } from '@100mslive/types-prebuilt';\nimport { Chat_ChatState } from '@100mslive/types-prebuilt/elements/chat';\nimport { config as cssConfig, Footer as AppFooter } from '../../..';\n// @ts-ignore: No implicit Any\nimport { AudioVideoToggle } from '../AudioVideoToggle';\nimport { CaptionIcon } from '../CaptionIcon';\n// @ts-ignore: No implicit Any\nimport { EmojiReaction } from '../EmojiReaction';\n// @ts-ignore: No implicit Any\nimport { LeaveRoom } from '../Leave/LeaveRoom';\n// @ts-ignore: No implicit Any\nimport { MoreSettings } from '../MoreSettings/MoreSettings';\nimport { RaiseHand } from '../RaiseHand';\n// @ts-ignore: No implicit Any\nimport { ScreenshareToggle } from '../ScreenShareToggle';\n// @ts-ignore: No implicit Any\nimport { VBToggle } from '../VirtualBackground/VBToggle';\n// @ts-ignore: No implicit Any\nimport { ChatToggle } from './ChatToggle';\nimport { ParticipantCount } from './ParticipantList';\nimport { PollsToggle } from './PollsToggle';\nimport { WhiteboardToggle } from './WhiteboardToggle';\nimport { ConferencingScreenElements } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { useIsSidepaneTypeOpen, useSidepaneToggle } from '../AppData/useSidepane';\n// @ts-ignore: No implicit Any\nimport { useShowPolls } from '../AppData/useUISettings';\n// @ts-ignore: No implicit Any\nimport { SIDE_PANE_OPTIONS } from '../../common/constants';\n\nexport const Footer = ({\n screenType,\n elements,\n}: {\n screenType: keyof ConferencingScreen;\n elements: ConferencingScreenElements;\n}) => {\n const isMobile = useMedia(cssConfig.media.md);\n const isOverlayChat = !!elements?.chat?.is_overlay;\n const openByDefault = elements?.chat?.initial_state === Chat_ChatState.CHAT_STATE_OPEN;\n\n const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);\n const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);\n const { showPolls } = useShowPolls();\n\n useEffect(() => {\n if (!isChatOpen && openByDefault) {\n toggleChat();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toggleChat, openByDefault]);\n\n return (\n <AppFooter.Root\n css={{\n flexWrap: 'nowrap',\n '@md': {\n justifyContent: 'center',\n gap: '$10',\n position: 'relative',\n // To prevent it from showing over the sidepane if chat type is not overlay\n zIndex: isOverlayChat && isChatOpen ? 20 : 1,\n },\n }}\n >\n <AppFooter.Left\n css={{\n '@md': {\n w: 'unset',\n p: '0',\n gap: '$10',\n },\n }}\n >\n {isMobile ? <LeaveRoom screenType={screenType} /> : null}\n <AudioVideoToggle />\n {!isMobile && elements.virtual_background ? <VBToggle /> : null}\n </AppFooter.Left>\n <AppFooter.Center\n css={{\n '@md': {\n w: 'unset',\n gap: '$10',\n },\n }}\n >\n {isMobile ? (\n <>\n <ScreenshareToggle />\n <RaiseHand />\n {elements?.chat && <ChatToggle />}\n <MoreSettings elements={elements} screenType={screenType} />\n </>\n ) : (\n <>\n <ScreenshareToggle />\n <RaiseHand />\n {screenType !== 'hls_live_streaming' && <CaptionIcon />}\n {elements?.emoji_reactions && <EmojiReaction />}\n <LeaveRoom screenType={screenType} />\n </>\n )}\n </AppFooter.Center>\n <AppFooter.Right>\n <WhiteboardToggle />\n {showPolls && <PollsToggle />}\n {!isMobile && elements?.chat && <ChatToggle />}\n {elements?.participant_list && <ParticipantCount />}\n <MoreSettings elements={elements} screenType={screenType} />\n </AppFooter.Right>\n </AppFooter.Root>\n );\n};\n", "import React from 'react';\nimport { selectIsTranscriptionEnabled, useHMSStore } from '@100mslive/react-sdk';\nimport { ClosedCaptionIcon, OpenCaptionIcon } from '@100mslive/react-icons';\nimport { Tooltip } from '../../Tooltip';\n// @ts-ignore: No implicit Any\nimport IconButton from '../IconButton';\n// @ts-ignore: No implicit Any\nimport { useSetIsCaptionEnabled } from './AppData/useUISettings.js';\n\nexport const CaptionIcon = () => {\n const isCaptionPresent = useHMSStore(selectIsTranscriptionEnabled);\n const [isCaption, setIsCaption] = useSetIsCaptionEnabled();\n\n const onClick = () => {\n setIsCaption(!isCaption);\n };\n if (!isCaptionPresent) {\n return null;\n }\n return (\n <Tooltip title={isCaption ? 'Hide closed captions' : 'Show closed captions'}>\n <IconButton data-testid=\"caption_btn\" onClick={onClick}>\n {isCaption ? <ClosedCaptionIcon width=\"20\" height=\"20px\" /> : <OpenCaptionIcon width=\"20\" height=\"20px\" />}\n </IconButton>\n </Tooltip>\n );\n};\n", "import React, { Fragment } from 'react';\nimport { selectIsAllowedToPublish, useAwayNotifications, useHMSStore, useScreenShare } from '@100mslive/react-sdk';\nimport { ShareScreenIcon } from '@100mslive/react-icons';\nimport { ShareScreenOptions } from './pdfAnnotator/shareScreenOptions';\nimport { ToastManager } from './Toast/ToastManager';\nimport { Box, Flex } from '../../Layout';\nimport { Tooltip } from '../../Tooltip';\nimport { ScreenShareButton } from './ShareMenuIcon';\nimport { useUISettings } from './AppData/useUISettings';\nimport { isScreenshareSupported } from '../common/utils';\nimport { UI_SETTINGS } from '../common/constants';\n\nexport const ScreenshareToggle = ({ css = {} }) => {\n const isAllowedToPublish = useHMSStore(selectIsAllowedToPublish);\n const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);\n\n const {\n amIScreenSharing,\n screenShareVideoTrackId: video,\n toggleScreenShare,\n } = useScreenShare(error => {\n ToastManager.addToast({\n title: error.message,\n variant: 'error',\n duration: 2000,\n });\n });\n const { requestPermission } = useAwayNotifications();\n const isVideoScreenshare = amIScreenSharing && !!video;\n if (!isAllowedToPublish.screen || !isScreenshareSupported()) {\n return null;\n }\n\n return (\n <Fragment>\n <Flex direction=\"row\">\n <ScreenShareButton\n variant=\"standard\"\n key=\"ShareScreen\"\n active={!isVideoScreenshare}\n css={css}\n disabled={isAudioOnly}\n onClick={async () => {\n await toggleScreenShare();\n await requestPermission();\n }}\n >\n <Tooltip title={`${!isVideoScreenshare ? 'Start' : 'Stop'} screen sharing`}>\n <Box>\n <ShareScreenIcon />\n </Box>\n </Tooltip>\n </ScreenShareButton>\n <ShareScreenOptions />\n </Flex>\n </Fragment>\n );\n};\n", "import React, { Fragment, useState } from 'react';\nimport { useScreenShare } from '@100mslive/react-sdk';\nimport { StarIcon, VerticalMenuIcon } from '@100mslive/react-icons';\nimport PDFShareImg from './../../images/pdf-share.png';\nimport ScreenShareImg from './../../images/screen-share.png';\nimport { Box, Dropdown, Flex, IconButton, Text, Tooltip } from '../../../';\nimport { ShareMenuIcon } from '../ShareMenuIcon';\nimport { PDFFileOptions } from './pdfFileOptions';\n\nconst MODALS = {\n SHARE: 'share',\n SCREEN_SHARE: 'screenShare',\n PDF_SHARE: 'pdfShare',\n};\n\nexport function ShareScreenOptions() {\n const [openModals, setOpenModals] = useState(new Set());\n const { amIScreenSharing } = useScreenShare();\n const updateState = (modalName, value) => {\n setOpenModals(modals => {\n const copy = new Set(modals);\n if (value) {\n copy.add(modalName);\n } else {\n copy.delete(modalName);\n }\n return copy;\n });\n };\n const { toggleScreenShare } = useScreenShare();\n return (\n <Fragment>\n <Dropdown.Root\n open={openModals.has(MODALS.SHARE)}\n onOpenChange={value => updateState(MODALS.SHARE, value)}\n modal={false}\n >\n <Dropdown.Trigger asChild data-testid=\"sharing_btn\" disabled={amIScreenSharing}>\n <ShareMenuIcon disabled={amIScreenSharing}>\n <Tooltip title=\"Share\">\n <Box>\n <VerticalMenuIcon />\n </Box>\n </Tooltip>\n </ShareMenuIcon>\n </Dropdown.Trigger>\n <Dropdown.Content\n sideOffset={5}\n css={{\n w: '$96',\n maxHeight: '$96',\n p: 0,\n bg: '$surface_dim',\n }}\n >\n <Dropdown.Item\n css={{\n flexDirection: 'column',\n alignItems: 'flex-start',\n px: '$10',\n pt: '$10',\n pb: '$6',\n '&:hover': {\n bg: 'transparent',\n cursor: 'default',\n },\n }}\n >\n <Text variant=\"h6\">Start Sharing</Text>\n <Text variant=\"sm\">Choose what you want to share</Text>\n </Dropdown.Item>\n <Dropdown.Item\n css={{\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: '$8',\n px: '$10',\n pt: '$6',\n pb: '$10',\n '&:hover': {\n bg: 'transparent',\n cursor: 'default',\n },\n }}\n >\n <Flex\n direction=\"column\"\n align=\"center\"\n css={{\n gap: '$6',\n }}\n >\n <IconButton\n as=\"div\"\n onClick={toggleScreenShare}\n css={{\n p: '$6',\n display: 'flex',\n justifyContent: 'center',\n border: '1px solid $border_bright',\n r: '$2',\n bg: '$surface_brighter',\n pb: '0',\n }}\n >\n <img\n src={ScreenShareImg}\n alt=\"screen-share\"\n width=\"100%\"\n height=\"100%\"\n style={{\n borderTopLeftRadius: '0.5rem', // TODO: create image component to solve for style hardcoding\n borderTopRightRadius: '0.5rem',\n }}\n />\n </IconButton>\n <Flex direction=\"column\" align=\"center\">\n <Text variant=\"body2\">Share Screen</Text>\n <Text\n variant=\"caption\"\n css={{\n c: '$on_surface_low',\n textAlign: 'center',\n }}\n >\n Share your tab, window or your entire screen\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction=\"column\"\n align=\"center\"\n css={{\n gap: '$6',\n }}\n >\n <IconButton\n onClick={() => {\n updateState(MODALS.PDF_SHARE, true);\n }}\n disabled={amIScreenSharing}\n css={{\n p: '$6',\n display: 'flex',\n justifyContent: 'center',\n border: '$border_bright 1px solid',\n r: '$2',\n bg: '$surface_bright',\n pb: '0',\n }}\n >\n <img\n src={PDFShareImg}\n alt=\"pdf-share\"\n width=\"100%\"\n height=\"100%\"\n style={{\n borderTopLeftRadius: '0.5rem', // TODO: create image component to solve for style hardcoding\n borderTopRightRadius: '0.5rem',\n }}\n />\n <Flex\n direction=\"row\"\n align=\"center\"\n css={{\n position: 'absolute',\n top: '35%',\n left: '54%',\n padding: '$2 $4',\n r: '$2',\n bg: '$primary_bright',\n zIndex: '2',\n gap: '$2',\n }}\n >\n <StarIcon height={14} width={14} />\n\n <Text\n variant=\"xs\"\n css={{\n fontWeight: '$semiBold',\n c: '$on_primary_high',\n pr: '$4',\n }}\n >\n New\n </Text>\n </Flex>\n </IconButton>\n <Flex direction=\"column\" align=\"center\">\n <Text variant=\"body2\">Share PDF</Text>\n <Text\n variant=\"caption\"\n css={{\n c: '$on_surface_low',\n textAlign: 'center',\n }}\n >\n Annotate, draw shapes, and more over PDFs\n </Text>\n </Flex>\n </Flex>\n </Dropdown.Item>\n </Dropdown.Content>\n </Dropdown.Root>\n {openModals.has(MODALS.PDF_SHARE) && (\n <PDFFileOptions onOpenChange={value => updateState(MODALS.PDF_SHARE, value)} />\n )}\n </Fragment>\n );\n}\n", "import { styled } from '../../Theme';\nimport IconButton from '../IconButton';\n\nexport const ScreenShareButton = styled(IconButton, {\n h: '$14',\n px: '$8',\n r: '$1',\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n '@md': {\n px: '$4',\n mx: 0,\n },\n});\n\nexport const ShareMenuIcon = styled(ScreenShareButton, {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: '$1',\n borderBottomRightRadius: '$1',\n borderLeftWidth: 0,\n w: '$4',\n '@md': {\n w: 'unset',\n px: '$2',\n },\n});\n", "import React, { useState } from 'react';\nimport { Dialog, Flex } from '../../../';\nimport { DialogInputFile } from '../../primitives/DialogContent';\nimport { PDFHeader } from './pdfHeader';\nimport { SubmitPDF } from './submitPdf';\nimport { UploadedFile } from './uploadedFile';\n\nexport function PDFFileOptions({ onOpenChange }) {\n const [pdfFile, setPDFFile] = useState(null);\n\n return !pdfFile ? (\n <Dialog.Root defaultOpen onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay />\n <Dialog.Content\n css={{\n w: 'min(420px,80%)',\n overflow: 'auto',\n p: '$10',\n bg: '$surface_dim',\n }}\n >\n <Flex direction=\"column\">\n <PDFHeader />\n <DialogInputFile\n onChange={target => {\n setPDFFile(target.files[0]);\n }}\n placeholder=\"Click to upload\"\n type=\"file\"\n accept=\".pdf\"\n />\n\n <SubmitPDF pdfFile={pdfFile} onOpenChange={onOpenChange} />\n </Flex>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n ) : (\n <UploadedFile pdfFile={pdfFile} setPDFFile={setPDFFile} onOpenChange={onOpenChange} />\n );\n}\n", "import React from 'react';\nimport { Dialog, Text } from '../../../';\nimport { DialogCol } from '../../primitives/DialogContent';\n\nexport const PDFHeader = () => {\n return (\n <DialogCol\n align=\"start\"\n css={{\n mt: 0,\n mb: '$6',\n }}\n >\n <Dialog.Title asChild>\n <Text as=\"h6\" variant=\"h6\">\n Share PDF\n </Text>\n </Dialog.Title>\n <Dialog.Description asChild>\n <Text\n variant=\"sm\"\n css={{\n c: '$on_surface_medium',\n }}\n >\n Choose PDF you want to annotate and share\n </Text>\n </Dialog.Description>\n </DialogCol>\n );\n};\n", "import React from 'react';\nimport { Button, Flex } from '../../../';\nimport { useSetAppDataByKey } from '../AppData/useUISettings';\nimport { APP_DATA } from '../../common/constants';\n\nexport const SubmitPDF = ({ pdfFile, onOpenChange }) => {\n const [, setPDFConfig] = useSetAppDataByKey(APP_DATA.pdfConfig);\n\n return (\n <Flex\n direction=\"row\"\n css={{\n mb: '0',\n mt: 'auto',\n gap: '$8',\n }}\n >\n <Button\n variant=\"standard\"\n outlined\n type=\"submit\"\n onClick={() => {\n onOpenChange(false);\n }}\n css={{ w: '50%' }}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n onClick={() => {\n if (pdfFile) {\n setPDFConfig(pdfFile);\n onOpenChange(false);\n }\n }}\n disabled={!pdfFile}\n data-testid=\"share_pdf_btn\"\n css={{\n w: '50%',\n }}\n >\n Start Sharing\n </Button>\n </Flex>\n );\n};\n", "import React from 'react';\nimport { TrashIcon } from '@100mslive/react-icons';\nimport { Dialog, Flex, Text } from '../../../';\nimport { DialogRow } from '../../primitives/DialogContent';\nimport { PDFHeader } from './pdfHeader';\nimport { PDFInfo } from './pdfInfo';\nimport { SubmitPDF } from './submitPdf';\n\nexport const UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {\n const [fileName, ext] = pdfFile.name.split('.');\n return (\n <Dialog.Root defaultOpen onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay />\n <Dialog.Content\n css={{\n w: 'min(420px,80%)',\n overflow: 'auto',\n p: '$10',\n bg: '$surface_dim',\n }}\n >\n <Flex direction=\"column\">\n <PDFHeader />\n <DialogRow\n css={{\n fontFamily: '$sans',\n bg: '$surface_bright',\n r: '$1',\n outline: 'none',\n border: '1px solid $border_bright',\n p: '$4 $6',\n minHeight: '$11',\n c: '$on_primary_high',\n fs: '$md',\n w: '100%',\n '&:focus': {\n boxShadow: '0 0 0 1px $colors$primary_default',\n border: '1px solid transparent',\n },\n mb: 0,\n mt: '$6',\n }}\n >\n <Flex direction=\"row\" css={{ flexGrow: '1', maxWidth: '88%' }}>\n <Text\n css={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n }}\n >\n {fileName}\n </Text>\n <Text css={{ whiteSpace: 'nowrap' }}>.{ext}</Text>\n </Flex>\n <TrashIcon\n onClick={() => setPDFFile(null)}\n style={{\n cursor: 'pointer',\n }}\n />\n </DialogRow>\n <PDFInfo />\n <SubmitPDF pdfFile={pdfFile} onOpenChange={onOpenChange} />\n </Flex>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n", "import React from 'react';\nimport { InfoIcon } from '@100mslive/react-icons';\nimport { Text } from '../../../';\nimport { DialogRow } from '../../primitives/DialogContent';\n\nexport const PDFInfo = () => {\n return (\n <DialogRow\n css={{\n px: '$8',\n py: '$3',\n bg: '$surface_default',\n r: '$1',\n outline: 'none',\n border: '1px solid $border_bright',\n minHeight: '$11',\n }}\n >\n <InfoIcon\n width=\"64px\"\n height=\"64px\"\n style={{\n paddingRight: '16px',\n }}\n />\n <Text variant=\"caption\">\n On the next screen, ensure you select \u201CThis Tab\u201D and click on share. Only the PDF viewer will be seen by other\n participants\n </Text>\n </DialogRow>\n );\n};\n", "import React, { useEffect } from 'react';\nimport { QuizActiveIcon, QuizIcon } from '@100mslive/react-icons';\nimport { Tooltip } from '../../..';\n// @ts-ignore: No implicit Any\nimport IconButton from '../../IconButton';\n// @ts-ignore: No implicit Any\nimport { useIsSidepaneTypeOpen, usePollViewToggle } from '../AppData/useSidepane';\nimport { useUnreadPollQuizPresent } from '../hooks/useUnreadPollQuizPresent';\n// @ts-ignore: No implicit Any\nimport { SIDE_PANE_OPTIONS } from '../../common/constants';\n\nexport const PollsToggle = () => {\n const isPollsOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.POLLS);\n const togglePollView = usePollViewToggle();\n const { unreadPollQuiz, setUnreadPollQuiz } = useUnreadPollQuizPresent();\n\n useEffect(() => {\n if (unreadPollQuiz && isPollsOpen) {\n setUnreadPollQuiz(false);\n }\n }, [isPollsOpen, unreadPollQuiz, setUnreadPollQuiz]);\n\n return (\n <Tooltip key=\"polls\" title={`${isPollsOpen ? 'Close' : 'Open'} polls and quizzes`}>\n <IconButton\n onClick={() => {\n togglePollView();\n setUnreadPollQuiz(false);\n }}\n css={{ bg: isPollsOpen ? '$surface_brighter' : '' }}\n data-testid=\"polls_btn\"\n >\n {unreadPollQuiz ? <QuizActiveIcon /> : <QuizIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n", "import React from 'react';\nimport { selectPeerScreenSharing, useHMSStore, useWhiteboard } from '@100mslive/react-sdk';\nimport { PencilDrawIcon } from '@100mslive/react-icons';\nimport { Tooltip } from '../../..';\n// @ts-ignore: No implicit Any\nimport IconButton from '../../IconButton';\n// @ts-ignore: No implicit Any\nimport { ToastManager } from '../Toast/ToastManager';\n\nexport const WhiteboardToggle = () => {\n const { toggle, open, isOwner } = useWhiteboard();\n const peerSharing = useHMSStore(selectPeerScreenSharing);\n const disabled = !!peerSharing || (open && !isOwner);\n\n if (!toggle) {\n return null;\n }\n\n return (\n <Tooltip\n key=\"whiteboard\"\n title={\n peerSharing ? 'Cannot open whiteboard when viewing a shared screen' : `${open ? 'Close' : 'Open'} Whiteboard`\n }\n >\n <IconButton\n onClick={async () => {\n if (disabled) {\n return;\n }\n try {\n await toggle();\n } catch (error) {\n ToastManager.addToast({ title: (error as Error).message, variant: 'error' });\n }\n }}\n active={!open}\n disabled={disabled}\n data-testid=\"whiteboard_btn\"\n >\n <PencilDrawIcon />\n </IconButton>\n </Tooltip>\n );\n};\n", "import React, { useCallback, useState } from 'react';\nimport { selectHLSState, useHMSActions, useHMSStore, useRecordingStreaming } from '@100mslive/react-sdk';\nimport { Button } from '../../../Button';\nimport { Flex } from '../../../Layout';\nimport { Dialog } from '../../../Modal';\nimport { Text } from '../../../Text';\n// @ts-ignore: No implicit Any\nimport { useSetAppDataByKey } from '../AppData/useUISettings';\n// @ts-ignore: No implicit Any\nimport { APP_DATA } from '../../common/constants';\n\nexport function HLSFailureModal() {\n const hlsError = useHMSStore(selectHLSState).error || false;\n const [openModal, setOpenModal] = useState(!!hlsError);\n const hmsActions = useHMSActions();\n const { isRTMPRunning } = useRecordingStreaming();\n const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);\n const startHLS = useCallback(async () => {\n try {\n if (isHLSStarted || isRTMPRunning) {\n return;\n }\n setHLSStarted(true);\n await hmsActions.startHLSStreaming({});\n } catch (error) {\n console.error(error);\n setHLSStarted(false);\n }\n }, [hmsActions, isHLSStarted, setHLSStarted, isRTMPRunning]);\n\n return hlsError ? (\n <Dialog.Root\n open={openModal}\n onOpenChange={value => {\n if (!value) {\n setOpenModal(false);\n }\n }}\n >\n <Dialog.Portal>\n <Dialog.Overlay />\n <Dialog.Content css={{ w: 'min(360px, 90%)' }}>\n <Dialog.Title\n css={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderBottom: '1px solid $border_default',\n mt: '$4',\n }}\n >\n <Text variant=\"h6\" css={{ fontWeight: '$semiBold' }}>\n Failed to Go Live\n </Text>\n </Dialog.Title>\n <Text variant=\"sm\" css={{ mb: '$10', color: '$on_surface_medium' }}>\n Something went wrong and your live broadcast failed. Please try again.\n </Text>\n <Flex align=\"center\" justify=\"between\" css={{ w: '100%', gap: '$8' }}>\n <Button outlined variant=\"standard\" css={{ w: '100%' }} onClick={() => setOpenModal(false)}>\n Dismiss\n </Button>\n <Button css={{ w: '100%' }} onClick={startHLS}>\n Go Live\n </Button>\n </Flex>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n ) : null;\n}\n", "import React, { useEffect } from 'react';\nimport {\n selectIsInPreview,\n selectLocalPeerName,\n selectLocalPeerRoleName,\n selectRoleChangeRequest,\n useCustomEvent,\n useHMSActions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { Flex, Text } from '../../..';\n// @ts-ignore: No implicit Any\nimport { PreviewControls, PreviewTile } from '../Preview/PreviewJoin';\nimport { RequestPrompt } from './RequestPrompt';\nimport { useRoomLayoutPreviewScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\nimport { useMyMetadata } from '../hooks/useMetadata';\n// @ts-ignore: No implicit Any\nimport { ROLE_CHANGE_DECLINED } from '../../common/constants';\n\nexport const RoleChangeRequestModal = () => {\n const hmsActions = useHMSActions();\n const { updateMetaData } = useMyMetadata();\n const isPreview = useHMSStore(selectIsInPreview);\n const currentRole = useHMSStore(selectLocalPeerRoleName);\n const roleChangeRequest = useHMSStore(selectRoleChangeRequest);\n const name = useHMSStore(selectLocalPeerName);\n const { sendEvent } = useCustomEvent({ type: ROLE_CHANGE_DECLINED });\n const { elements = {} } = useRoomLayoutPreviewScreen();\n const { virtual_background } = elements || {};\n\n useEffect(() => {\n if (!roleChangeRequest?.role) {\n return;\n }\n (async () => {\n await hmsActions.preview({ asRole: roleChangeRequest.role.name });\n })();\n }, [hmsActions, roleChangeRequest, currentRole, updateMetaData]);\n\n if (!roleChangeRequest?.role) {\n return null;\n }\n\n const body = (\n <>\n <Text\n variant=\"xs\"\n css={{\n c: '$on_surface_medium',\n textAlign: 'center',\n '@md': { textAlign: 'left', borderBottom: '1px solid $border_bright', pb: '$4', px: '$8' },\n }}\n >\n Setup your audio and video before joining\n </Text>\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{\n '@sm': { width: '100%' },\n flexDirection: 'column',\n mt: '$6',\n '@md': { px: '$8' },\n }}\n >\n <PreviewTile name={name || ''} />\n\n <PreviewControls hideSettings={true} vbEnabled={!!virtual_background} />\n </Flex>\n </>\n );\n\n return (\n <RequestPrompt\n title=\"You're invited to join the stage\"\n onOpenChange={async value => {\n if (!value) {\n hmsActions.rejectChangeRole(roleChangeRequest);\n sendEvent({ ...roleChangeRequest, peerName: name }, { peerId: roleChangeRequest.requestedBy?.id });\n await hmsActions.cancelMidCallPreview();\n await hmsActions.lowerLocalPeerHand();\n }\n }}\n body={body}\n onAction={async () => {\n await hmsActions.acceptChangeRole(roleChangeRequest);\n await updateMetaData({ prevRole: currentRole });\n await hmsActions.lowerLocalPeerHand();\n }}\n actionText=\"Accept\"\n disableActions={!isPreview}\n />\n );\n};\n", "import React from 'react';\nimport { useMedia } from 'react-use';\nimport { Box, Button, config as cssConfig, Dialog, Flex, Text } from '../../..';\nimport { Sheet } from '../../../Sheet';\n\nexport const RequestPrompt = ({\n open = true,\n onOpenChange,\n title,\n body,\n actionText = 'Accept',\n onAction,\n disableActions = false,\n}: {\n open?: boolean;\n onOpenChange: (value: boolean) => void;\n title: string;\n body: React.ReactNode;\n actionText?: string;\n onAction: () => void;\n disableActions?: boolean;\n}) => {\n const isMobile = useMedia(cssConfig.media.md);\n\n if (isMobile) {\n return (\n <Sheet.Root open={open} onOpenChange={onOpenChange}>\n <Sheet.Content css={{ py: '$8' }}>\n <Text css={{ fontWeight: '$semiBold', c: '$on_surface_high', '@md': { px: '$8' } }}>{title}</Text>\n {body}\n <RequestActions actionText={actionText} onAction={onAction} disabled={disableActions} />\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n return (\n <Dialog.Root open={open} modal={false} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Content css={{ p: '$10' }} onInteractOutside={e => e.preventDefault()}>\n <Dialog.Title css={{ p: 0, display: 'flex', flexDirection: 'row', gap: '$md', justifyContent: 'center' }}>\n <Text variant=\"h6\">{title}</Text>\n </Dialog.Title>\n <Box css={{ mt: '$4', mb: '$10' }}>{body}</Box>\n <RequestActions actionText={actionText} onAction={onAction} disabled={disableActions} />\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n\nconst RequestActions = ({\n onAction,\n actionText,\n disabled = false,\n}: {\n actionText?: string;\n onAction: () => void;\n disabled?: boolean;\n}) => (\n <Flex justify=\"center\" align=\"center\" css={{ width: '100%', gap: '$md', '@md': { mt: '$8', px: '$8' } }}>\n <Box css={{ width: '50%' }}>\n <Dialog.Close css={{ width: '100%', height: '100%' }} asChild>\n <Button variant=\"standard\" outlined css={{ width: '100%', p: '$4 $8' }} disabled={disabled}>\n Decline\n </Button>\n </Dialog.Close>\n </Box>\n <Box css={{ width: '50%' }}>\n <Button variant=\"primary\" css={{ width: '100%' }} onClick={onAction} disabled={disabled}>\n {actionText}\n </Button>\n </Box>\n </Flex>\n);\n", "import React, { Suspense, useEffect, useState } from 'react';\nimport { ControlPosition } from 'react-draggable';\nimport { useMedia } from 'react-use';\nimport {\n ConferencingScreen,\n DefaultConferencingScreen_Elements,\n HLSLiveStreamingScreen_Elements,\n} from '@100mslive/types-prebuilt';\nimport { match } from 'ts-pattern';\nimport {\n selectIsConnectedToRoom,\n selectIsLocalScreenShared,\n selectLocalPeerRoleName,\n useHMSActions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { PeopleAddIcon, ShareScreenIcon } from '@100mslive/react-icons';\nimport FullPageProgress from '../components/FullPageProgress';\nimport { GridLayout } from '../components/VideoLayouts/GridLayout';\nimport { Box, Flex } from '../../Layout';\nimport { config } from '../../Theme';\nimport SidePane from './SidePane';\nimport { CaptionsViewer } from '../plugins/CaptionsViewer';\n// @ts-ignore: No implicit Any\nimport { usePDFConfig, useUrlToEmbed } from '../components/AppData/useUISettings';\nimport { useCloseScreenshareWhiteboard } from '../components/hooks/useCloseScreenshareWhiteboard';\nimport { useLandscapeHLSStream, useMobileHLSStream, useWaitingRoomInfo } from '../common/hooks';\nimport { SESSION_STORE_KEY } from '../common/constants';\n// @ts-ignore: No implicit Any\nconst HLSView = React.lazy(() => import('./HLSView'));\n// @ts-ignore: No implicit Any\nconst EmbedView = React.lazy(() => import('./EmbedView').then(module => ({ default: module.EmbedView })));\n// @ts-ignore: No implicit Any\nconst PDFView = React.lazy(() => import('./PDFView').then(module => ({ default: module.PDFView })));\nconst WaitingView = React.lazy(() => import('./WaitingView').then(module => ({ default: module.WaitingView })));\n\nexport const VideoStreamingSection = ({\n screenType,\n elements,\n hideControls = false,\n}: {\n screenType: keyof ConferencingScreen;\n elements: DefaultConferencingScreen_Elements | HLSLiveStreamingScreen_Elements;\n hideControls: boolean;\n}) => {\n const localPeerRoleName = useHMSStore(selectLocalPeerRoleName);\n const isConnected = useHMSStore(selectIsConnectedToRoom);\n const isSharingScreen = useHMSStore(selectIsLocalScreenShared);\n\n const hmsActions = useHMSActions();\n const urlToIframe = useUrlToEmbed();\n const pdfAnnotatorActive = usePDFConfig();\n const isMobileHLSStream = useMobileHLSStream();\n const isLandscapeHLSStream = useLandscapeHLSStream();\n const isMobile = useMedia(config.media.md);\n const [captionPosition, setCaptionPosition] = useState<ControlPosition>({ x: isMobile ? 0 : -200, y: 0 });\n useCloseScreenshareWhiteboard();\n\n const { isNotAllowedToPublish, isScreenOnlyPublishParams, hasSubscribedRolePublishing } = useWaitingRoomInfo();\n\n useEffect(() => {\n if (!isConnected) {\n return;\n }\n hmsActions.sessionStore.observe([\n SESSION_STORE_KEY.PINNED_MESSAGES,\n SESSION_STORE_KEY.SPOTLIGHT,\n SESSION_STORE_KEY.CHAT_STATE,\n SESSION_STORE_KEY.CHAT_MESSAGE_BLACKLIST,\n SESSION_STORE_KEY.CHAT_PEER_BLACKLIST,\n ]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isConnected, hmsActions]);\n\n if (!localPeerRoleName) {\n // we don't know the role yet to decide how to render UI\n return null;\n }\n\n return (\n <Flex\n css={{\n size: '100%',\n position: 'relative',\n gap: isMobileHLSStream || isLandscapeHLSStream ? '0' : '$4',\n }}\n direction={match<Record<string, boolean>, 'row' | 'column'>({ isLandscapeHLSStream, isMobileHLSStream })\n .with({ isLandscapeHLSStream: true }, () => 'row')\n .with({ isMobileHLSStream: true }, () => 'column')\n .otherwise(() => 'row')}\n >\n <Suspense fallback={<FullPageProgress />}>\n {match({\n screenType,\n isNotAllowedToPublish,\n isScreenOnlyPublishParams,\n hasSubscribedRolePublishing,\n isSharingScreen,\n pdfAnnotatorActive,\n urlToIframe,\n })\n .with(\n {\n screenType: 'hls_live_streaming',\n },\n () => <HLSView />,\n )\n .when(\n ({ isNotAllowedToPublish, hasSubscribedRolePublishing }) =>\n isNotAllowedToPublish && !hasSubscribedRolePublishing,\n () => (\n <WaitingView\n title=\"Waiting for Host to join\"\n subtitle=\"Sit back and relax\"\n icon={<PeopleAddIcon width=\"56px\" height=\"56px\" style={{ color: 'white' }} />}\n />\n ),\n )\n .when(\n ({ isScreenOnlyPublishParams, isSharingScreen, hasSubscribedRolePublishing }) =>\n isScreenOnlyPublishParams && !isSharingScreen && !hasSubscribedRolePublishing,\n () => (\n <WaitingView\n title=\"Ready to present\"\n subtitle=\"Select the Screenshare button to start presenting\"\n icon={<ShareScreenIcon width=\"56px\" height=\"56px\" style={{ color: 'white' }} />}\n />\n ),\n )\n .when(\n ({ pdfAnnotatorActive }) => !!pdfAnnotatorActive,\n () => <PDFView />,\n )\n .when(\n ({ urlToIframe }) => !!urlToIframe,\n () => <EmbedView />,\n )\n\n .otherwise(() => {\n // @ts-ignore\n return <GridLayout {...(elements as DefaultConferencingScreen_Elements)?.video_tile_layout?.grid} />;\n })}\n <CaptionsViewer setDefaultPosition={setCaptionPosition} defaultPosition={captionPosition} />\n </Suspense>\n <Box\n css={{\n flex: match({ isLandscapeHLSStream, isMobileHLSStream })\n .with({ isLandscapeHLSStream: true }, () => '1 1 0')\n .with({ isMobileHLSStream: true }, () => '2 1 0')\n .otherwise(() => undefined),\n position: 'relative',\n height: !isMobileHLSStream ? '100%' : undefined,\n maxHeight: '100%',\n '&:empty': { display: 'none' },\n overflowY: 'clip',\n }}\n >\n <Suspense fallback={<></>}>\n <SidePane\n screenType={screenType}\n // @ts-ignore\n tileProps={(elements as DefaultConferencingScreen_Elements)?.video_tile_layout?.grid}\n hideControls={hideControls}\n />\n </Suspense>\n </Box>\n </Flex>\n );\n};\n", "import React, { Suspense, useEffect, useMemo, useState } from 'react';\nimport { GridVideoTileLayout } from '@100mslive/types-prebuilt/elements/video_tile_layout';\nimport {\n selectLocalPeerID,\n selectLocalPeerRoleName,\n selectPeers,\n selectPeerScreenSharing,\n selectWhiteboard,\n useHMSStore,\n useHMSVanillaStore,\n} from '@100mslive/react-sdk';\nimport FullPageProgress from '../FullPageProgress';\nimport { EqualProminence } from './EqualProminence';\n// @ts-ignore: No implicit Any\nimport { usePinnedTrack, useSetAppDataByKey } from '../AppData/useUISettings';\nimport { VideoTileContext } from '../hooks/useVideoTileLayout';\nimport PeersSorter from '../../common/PeersSorter';\nimport { APP_DATA } from '../../common/constants';\nconst RoleProminence = React.lazy(() =>\n import('./RoleProminence').then(module => ({ default: module.RoleProminence })),\n);\nconst ScreenshareLayout = React.lazy(() =>\n import('./ScreenshareLayout').then(module => ({ default: module.ScreenshareLayout })),\n);\nconst WhiteboardLayout = React.lazy(() =>\n import('./WhiteboardLayout').then(module => ({ default: module.WhiteboardLayout })),\n);\n\nexport type TileCustomisationProps = {\n hide_participant_name_on_tile: boolean;\n rounded_video_tile: boolean;\n hide_audio_mute_on_tile: boolean;\n video_object_fit: 'contain' | 'cover';\n edge_to_edge: boolean;\n hide_metadata_on_tile: boolean;\n};\n\nexport type GridLayoutProps = GridVideoTileLayout & TileCustomisationProps;\n\nexport const GridLayout = ({\n enable_local_tile_inset: isInsetEnabled = false,\n prominent_roles: prominentRoles = [],\n enable_spotlighting_peer = false,\n hide_participant_name_on_tile = false,\n rounded_video_tile = true,\n hide_audio_mute_on_tile = false,\n video_object_fit = 'contain',\n edge_to_edge = false,\n hide_metadata_on_tile = false,\n}: GridLayoutProps) => {\n const peerSharing = useHMSStore(selectPeerScreenSharing);\n const whiteboard = useHMSStore(selectWhiteboard);\n const pinnedTrack = usePinnedTrack();\n const peers = useHMSStore(selectPeers);\n const localPeerRole = useHMSStore(selectLocalPeerRoleName);\n const localPeerID = useHMSStore(selectLocalPeerID);\n\n const [activeScreensharePeerId] = useSetAppDataByKey(APP_DATA.activeScreensharePeerId);\n const isRoleProminence =\n (prominentRoles.length &&\n peers.some(\n peer => peer.roleName && prominentRoles.includes(peer.roleName) && (peer.videoTrack || peer.audioTrack),\n )) ||\n pinnedTrack;\n const updatedPeers = useMemo(() => {\n // remove screenshare/whiteboard peer from active speaker sorting\n if (activeScreensharePeerId || whiteboard?.open) {\n return peers.filter(peer => peer.id !== activeScreensharePeerId || peer.customerUserId !== whiteboard?.owner);\n }\n if (isInsetEnabled) {\n const isLocalPeerPinned = localPeerID === pinnedTrack?.peerId;\n // if localPeer role is prominent role, it shows up in the center or local peer is pinned, so allow it in active speaker sorting\n if ((localPeerRole && prominentRoles.includes(localPeerRole)) || isLocalPeerPinned) {\n return peers;\n } else {\n return peers.filter(peer => !peer.isLocal);\n }\n }\n return peers;\n }, [\n isInsetEnabled,\n whiteboard,\n activeScreensharePeerId,\n localPeerRole,\n localPeerID,\n prominentRoles,\n peers,\n pinnedTrack,\n ]);\n const vanillaStore = useHMSVanillaStore();\n const [sortedPeers, setSortedPeers] = useState(updatedPeers);\n const peersSorter = useMemo(() => new PeersSorter(vanillaStore), [vanillaStore]);\n const [pageSize, setPageSize] = useState(0);\n const [mainPage, setMainPage] = useState(0);\n const tileLayout = {\n enableSpotlightingPeer: enable_spotlighting_peer,\n hideParticipantNameOnTile: hide_participant_name_on_tile,\n roundedVideoTile: rounded_video_tile,\n hideAudioMuteOnTile: hide_audio_mute_on_tile,\n hideMetadataOnTile: hide_metadata_on_tile,\n objectFit: video_object_fit,\n };\n\n useEffect(() => {\n if (mainPage !== 0) {\n return;\n }\n peersSorter.setPeersAndTilesPerPage({\n peers: updatedPeers,\n tilesPerPage: pageSize,\n });\n peersSorter.onUpdate(setSortedPeers);\n }, [mainPage, peersSorter, updatedPeers, pageSize]);\n\n if (peerSharing) {\n return (\n <Suspense fallback={<FullPageProgress />}>\n <VideoTileContext.Provider value={tileLayout}>\n <ScreenshareLayout\n peers={sortedPeers}\n onPageSize={setPageSize}\n onPageChange={setMainPage}\n edgeToEdge={edge_to_edge}\n />\n </VideoTileContext.Provider>\n </Suspense>\n );\n } else if (whiteboard?.open) {\n return (\n <Suspense fallback={<FullPageProgress />}>\n <VideoTileContext.Provider value={tileLayout}>\n <WhiteboardLayout\n peers={sortedPeers}\n onPageSize={setPageSize}\n onPageChange={setMainPage}\n edgeToEdge={edge_to_edge}\n />\n </VideoTileContext.Provider>\n </Suspense>\n );\n } else if (isRoleProminence) {\n return (\n <Suspense fallback={<FullPageProgress />}>\n <VideoTileContext.Provider value={tileLayout}>\n <RoleProminence\n peers={sortedPeers}\n onPageSize={setPageSize}\n onPageChange={setMainPage}\n prominentRoles={prominentRoles}\n isInsetEnabled={isInsetEnabled}\n edgeToEdge={edge_to_edge}\n />\n </VideoTileContext.Provider>\n </Suspense>\n );\n }\n return (\n <VideoTileContext.Provider value={tileLayout}>\n <EqualProminence\n peers={sortedPeers}\n onPageSize={setPageSize}\n onPageChange={setMainPage}\n isInsetEnabled={isInsetEnabled}\n edgeToEdge={edge_to_edge}\n />\n </VideoTileContext.Provider>\n );\n};\n", "import React, { useEffect, useState } from 'react';\nimport { useMedia } from 'react-use';\nimport { PeopleAddIcon } from '@100mslive/react-icons';\nimport { Flex } from '../../../Layout';\nimport { config as cssConfig } from '../../../Theme';\nimport { WaitingView } from '../../layouts/WaitingView';\nimport { InsetTile } from '../InsetTile';\nimport { Pagination } from '../Pagination';\nimport { Grid } from './Grid';\nimport { LayoutProps } from './interface';\n// @ts-ignore: No implicit Any\nimport { useUISettings } from '../AppData/useUISettings';\nimport { usePagesWithTiles, useTileLayout } from '../hooks/useTileLayout';\nimport { UI_SETTINGS } from '../../common/constants';\n\nexport function EqualProminence({ isInsetEnabled = false, peers, onPageChange, onPageSize, edgeToEdge }: LayoutProps) {\n const isMobile = useMedia(cssConfig.media.md);\n let maxTileCount = useUISettings(UI_SETTINGS.maxTileCount);\n maxTileCount = isMobile ? Math.min(maxTileCount, 6) : maxTileCount;\n const pageList = usePagesWithTiles({\n peers,\n maxTileCount,\n });\n\n const { ref, pagesWithTiles } = useTileLayout({\n pageList,\n maxTileCount,\n edgeToEdge,\n });\n const [page, setPage] = useState(0);\n const pageSize = pagesWithTiles[0]?.length || 0;\n\n useEffect(() => {\n if (pageSize > 0) {\n onPageSize?.(pageSize);\n }\n }, [pageSize, onPageSize]);\n\n return (\n <Flex direction=\"column\" css={{ flex: '1 1 0', h: '100%', position: 'relative', minWidth: 0 }}>\n <Grid tiles={pagesWithTiles[page]} ref={ref} edgeToEdge={edgeToEdge} />\n {!edgeToEdge && (\n <Pagination\n page={page}\n onPageChange={page => {\n setPage(page);\n onPageChange?.(page);\n }}\n numPages={pagesWithTiles.length}\n />\n )}\n {pageList.length === 0 ? (\n <WaitingView\n title=\"You're the only one here\"\n subtitle=\"Sit back and relax till others join\"\n icon={<PeopleAddIcon width=\"56px\" height=\"56px\" style={{ color: 'white' }} />}\n />\n ) : null}\n {isInsetEnabled && <InsetTile />}\n </Flex>\n );\n}\n", "import { HMSPeer, HMSPeerID, IStoreReadOnly, selectDominantSpeaker } from '@100mslive/react-sdk';\n\nclass PeersSorter {\n storeUnsubscribe: undefined | (() => void) = undefined;\n store: IStoreReadOnly<any>;\n peers: Map<string, HMSPeer>;\n lruPeers: Set<HMSPeerID>;\n tilesPerPage!: number;\n speaker?: HMSPeer;\n listeners: Set<(peers: HMSPeer[]) => void>;\n\n constructor(store: IStoreReadOnly<any>) {\n this.store = store;\n this.peers = new Map();\n this.lruPeers = new Set();\n this.speaker = undefined;\n this.listeners = new Set();\n }\n\n setPeersAndTilesPerPage = ({ peers, tilesPerPage }: { peers: HMSPeer[]; tilesPerPage: number }) => {\n this.speaker = undefined;\n this.tilesPerPage = tilesPerPage;\n const peerIds = new Set(peers.map(peer => peer.id));\n // remove existing peers which are no longer provided\n this.peers.forEach((_, key) => {\n if (!peerIds.has(key)) {\n this.peers.delete(key);\n }\n });\n this.lruPeers = new Set([...this.lruPeers].filter(peerId => peerIds.has(peerId)));\n peers.forEach(peer => {\n this.peers.set(peer.id, peer);\n if (this.lruPeers.size < tilesPerPage) {\n this.lruPeers.add(peer.id);\n }\n });\n if (!this.storeUnsubscribe) {\n this.storeUnsubscribe = this.store.subscribe(this.onDominantSpeakerChange, selectDominantSpeaker);\n }\n this.moveSpeakerToFront(this.speaker);\n };\n\n onUpdate = (cb: (peers: HMSPeer[]) => void) => {\n this.listeners.add(cb);\n };\n\n stop = () => {\n this.updateListeners();\n this.listeners.clear();\n this.storeUnsubscribe?.();\n this.storeUnsubscribe = undefined;\n this.speaker = undefined;\n };\n\n moveSpeakerToFront = (speaker?: HMSPeer) => {\n if (!speaker) {\n this.maintainLruSize(this.tilesPerPage);\n this.updateListeners();\n return;\n }\n if (this.lruPeers.has(speaker.id) && this.lruPeers.size <= this.tilesPerPage) {\n this.updateListeners();\n return;\n }\n // delete to insert at beginning\n this.lruPeers.delete(speaker.id);\n // - 1 as we are going to insert the new speaker\n this.maintainLruSize(this.tilesPerPage - 1);\n this.lruPeers = new Set([speaker.id, ...this.lruPeers]);\n this.updateListeners();\n };\n\n onDominantSpeakerChange = (speaker: HMSPeer | null) => {\n // no speaker or is current speaker do nothing\n if (!speaker || speaker.id === this.speaker?.id) {\n return;\n }\n // if the active speaker is not from the peers passed ignore\n if (!this.peers.has(speaker.id)) {\n return;\n }\n this.speaker = speaker;\n this.moveSpeakerToFront(speaker);\n };\n\n updateListeners = () => {\n const orderedPeers: HMSPeer[] = [];\n this.lruPeers.forEach(key => {\n const peer = this.peers.get(key);\n if (peer) {\n orderedPeers.push(peer);\n }\n });\n this.peers.forEach(peer => {\n if (!this.lruPeers.has(peer.id) && peer) {\n orderedPeers.push(peer);\n }\n });\n this.listeners.forEach(listener => listener?.(orderedPeers));\n };\n\n private maintainLruSize = (size: number) => {\n const lruPeerArray = Array.from(this.lruPeers);\n while (lruPeerArray.length > size && lruPeerArray.length) {\n lruPeerArray.pop();\n }\n this.lruPeers = new Set(lruPeerArray);\n };\n}\n\nexport default PeersSorter;\n", "import React, { useEffect, useRef, useState } from 'react';\nimport Draggable, { ControlPosition } from 'react-draggable';\nimport { useMedia } from 'react-use';\nimport {\n HMSTranscript,\n selectIsTranscriptionEnabled,\n selectPeerNameByID,\n useHMSStore,\n useTranscript,\n} from '@100mslive/react-sdk';\nimport { Box, Flex } from '../../Layout';\nimport { Text } from '../../Text';\nimport { config } from '../../Theme';\n// @ts-ignore: No implicit Any\nimport { useIsSidepaneTypeOpen } from '../components/AppData/useSidepane';\n// @ts-ignore: No implicit Any\nimport { useIsCaptionEnabled } from '../components/AppData/useUISettings';\nimport { useRoomLayoutConferencingScreen } from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\nimport { SIDE_PANE_OPTIONS } from '../common/constants';\ninterface CaptionQueueData extends HMSTranscript {\n transcriptQueue: SimpleQueue;\n}\n\ninterface TranscriptData extends HMSTranscript {\n timeout?: NodeJS.Timeout | undefined;\n}\nclass SimpleQueue {\n private storage: TranscriptData[] = [];\n constructor(private capacity: number = 3, private MAX_STORAGE_TIME: number = 5000) {}\n enqueue(data: TranscriptData): void {\n if (!data.transcript.trim()) {\n return;\n }\n if (this.size() === this.capacity && this.storage[this.size() - 1].final) {\n this.dequeue(this.storage[this.size() - 1]);\n }\n if (this.size() === 0) {\n this.storage.push(data);\n this.addTimeout(this.storage[this.size() - 1], data.final);\n return;\n }\n if (this.size() > 0 && this.storage[this.size() - 1]?.final === true) {\n this.storage.push(data);\n this.addTimeout(this.storage[this.size() - 1], data.final);\n return;\n }\n this.storage[this.size() - 1].transcript = data.transcript;\n this.storage[this.size() - 1].final = data.final;\n this.storage[this.size() - 1].end = data.end;\n this.addTimeout(this.storage[this.size() - 1], data.final);\n }\n addTimeout(item: TranscriptData, isFinal: boolean) {\n if (!isFinal) {\n return;\n }\n item.timeout = setTimeout(() => {\n this.dequeue(item);\n }, this.MAX_STORAGE_TIME);\n }\n dequeue(item: TranscriptData): TranscriptData | undefined {\n const index = this.storage.indexOf(item);\n if (index === -1) {\n return undefined;\n }\n const removedItem = this.storage.splice(index, 1);\n if (removedItem.length <= 0) {\n return undefined;\n }\n this.clearTimeout(removedItem[0]);\n return item;\n }\n clearTimeout(item: TranscriptData) {\n if (!item.timeout) {\n return;\n }\n clearTimeout(item.timeout);\n }\n peek(): TranscriptData | undefined {\n if (this.size() <= 0) {\n return undefined;\n }\n return this.storage[0];\n }\n getTranscription(): string {\n let script = '';\n this.storage.forEach((value: TranscriptData) => (script += value.transcript + ' '));\n return script;\n }\n reset() {\n this.storage.length = 0;\n }\n size(): number {\n return this.storage.length;\n }\n}\nclass Queue {\n private storage: Record<string, CaptionQueueData> = {};\n constructor(private capacity: number = 3) {}\n\n enqueue(data: HMSTranscript): void {\n if (this.size() === this.capacity) {\n this.dequeue();\n }\n if (!this.storage[data.peer_id]) {\n this.storage[data.peer_id] = {\n peer_id: data.peer_id,\n transcript: data.transcript,\n final: data.final,\n transcriptQueue: new SimpleQueue(),\n start: data.start,\n end: data.end,\n };\n this.storage[data.peer_id].transcriptQueue.enqueue(data as TranscriptData);\n return;\n }\n this.storage[data.peer_id].transcriptQueue.enqueue(data as TranscriptData);\n }\n dequeue(): CaptionQueueData {\n const key: string = Object.keys(this.storage).shift() || '';\n const captionData = this.storage[key];\n captionData.transcriptQueue.reset();\n delete this.storage[key];\n return captionData;\n }\n\n peek(): CaptionQueueData | undefined {\n if (this.size() <= 0) return undefined;\n const key: string = Object.keys(this.storage).shift() || '';\n return this.storage[key];\n }\n\n findPeerData(): { [key: string]: string }[] {\n const keys = Object.keys(this.storage);\n const data = keys.map((key: string) => {\n const data = this.storage[key];\n const word = data.transcriptQueue.getTranscription();\n return { [key]: word };\n });\n return data;\n }\n size(): number {\n return Object.keys(this.storage).length;\n }\n}\n\nclass CaptionMaintainerQueue {\n captionData: Queue;\n constructor() {\n this.captionData = new Queue();\n }\n push(data: HMSTranscript[] = []) {\n data.forEach((value: HMSTranscript) => {\n this.captionData.enqueue(value);\n });\n }\n}\nconst TranscriptView = ({ peer_id, data }: { peer_id: string; data: string }) => {\n const peerName = useHMSStore(selectPeerNameByID(peer_id)) || 'Participant';\n data = data.trim();\n if (!data) return null;\n return (\n <Text\n variant=\"body2\"\n css={{\n fontWeight: '$normal',\n }}\n >\n <b>{peerName}: </b>\n {data}\n </Text>\n );\n};\n\nexport const CaptionsViewer = ({\n defaultPosition,\n setDefaultPosition,\n}: {\n defaultPosition: ControlPosition;\n setDefaultPosition: (position: ControlPosition) => void;\n}) => {\n const { elements, screenType } = useRoomLayoutConferencingScreen();\n const isMobile = useMedia(config.media.md);\n const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);\n\n const showCaptionAtTop = elements?.chat?.is_overlay && isChatOpen && isMobile;\n\n const [captionQueue] = useState<CaptionMaintainerQueue>(new CaptionMaintainerQueue());\n const [currentData, setCurrentData] = useState<{ [key: string]: string }[]>([]);\n\n const isCaptionEnabled = useIsCaptionEnabled();\n\n const isTranscriptionEnabled = useHMSStore(selectIsTranscriptionEnabled);\n\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const timeInterval = setInterval(() => {\n if (!captionQueue) {\n return;\n }\n const data = captionQueue.captionData?.findPeerData();\n setCurrentData(data);\n }, 1000);\n return () => clearInterval(timeInterval);\n }, [captionQueue]);\n\n useTranscript({\n onTranscript: (data: HMSTranscript[]) => {\n captionQueue && captionQueue.push(data as HMSTranscript[]);\n },\n });\n const dataToShow = currentData.filter((data: { [key: string]: string }) => {\n const key = Object.keys(data)[0];\n if (data[key]) {\n return true;\n }\n return false;\n });\n if (dataToShow.length <= 0 || screenType === 'hls_live_streaming' || !isCaptionEnabled || !isTranscriptionEnabled) {\n return null;\n }\n return (\n <Draggable\n bounds=\"parent\"\n nodeRef={nodeRef}\n defaultPosition={defaultPosition}\n onStop={(_, data) => {\n setDefaultPosition({ x: data.lastX, y: data.lastY });\n }}\n >\n <Box\n ref={nodeRef}\n css={{\n position: 'absolute',\n w: isMobile ? '100%' : '40%',\n bottom: showCaptionAtTop ? '' : '0',\n top: showCaptionAtTop ? '0' : '',\n left: isMobile ? 0 : '50%',\n transform: isMobile ? '' : 'translateX(-50%)',\n background: '#000000A3',\n overflow: 'clip',\n zIndex: 10,\n height: 'fit-content',\n r: '$1',\n p: '$6',\n transition: 'bottom 0.3s ease-in-out',\n '&:empty': { display: 'none' },\n }}\n >\n <Flex direction=\"column\">\n {dataToShow.map((data: { [key: string]: string }, index: number) => {\n const key = Object.keys(data)[0];\n return <TranscriptView key={index} peer_id={key} data={data[key]} />;\n })}\n </Flex>\n </Box>\n </Draggable>\n );\n};\n", "import { useEffect } from 'react';\nimport { selectPeerScreenSharing, useHMSStore, useWhiteboard } from '@100mslive/react-sdk';\n\n/**\n * close existing whiteboard when a screen is shared\n */\nexport const useCloseScreenshareWhiteboard = () => {\n const peerSharing = useHMSStore(selectPeerScreenSharing);\n const { isOwner: isWhiteboardOwner, toggle: toggleWhiteboard } = useWhiteboard();\n\n // if both screenshare and whiteboard are open, close the whiteboard\n useEffect(() => {\n if (isWhiteboardOwner && peerSharing) {\n toggleWhiteboard?.();\n }\n }, [isWhiteboardOwner, toggleWhiteboard, peerSharing]);\n};\n", "import { useEffect } from 'react';\nimport { selectLocalPeerRoleName, useHMSVanillaStore } from '@100mslive/react-sdk';\nimport { useMyMetadata } from './hooks/useMetadata';\n\nexport const PreviousRoleInMetadata = () => {\n const vanillaStore = useHMSVanillaStore();\n const { updateMetaData } = useMyMetadata();\n\n useEffect(() => {\n let previousRole = vanillaStore.getState(selectLocalPeerRoleName);\n const unsubscribe = vanillaStore.subscribe(currentRole => {\n if (previousRole !== currentRole && currentRole) {\n updateMetaData({ prevRole: previousRole });\n previousRole = currentRole;\n }\n }, selectLocalPeerRoleName);\n return unsubscribe;\n }, [vanillaStore]); //eslint-disable-line\n return null;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "useRef", "useState", "selectIsConnectedToRoom", "useAwayNotifications", "useHMSActions", "useHMSStore", "React", "useEffect", "React", "Fragment", "useHMSStore", "useScreenShare", "React", "useState", "React", "React", "React", "React", "React", "React", "React", "React", "React", "React", "useState", "React", "useHMSStore", "useScreenShare", "React", "Fragment", "React", "React", "React", "useHMSStore", "useHMSStore", "React", "Footer", "useEffect", "React", "React", "useState", "useHMSStore", "useHMSStore", "useState", "React", "React", "useEffect", "useHMSActions", "useHMSStore", "React", "useMedia", "useMedia", "React", "useHMSActions", "useHMSStore", "useEffect", "React", "React", "Suspense", "useEffect", "useState", "useMedia", "selectLocalPeerRoleName", "useHMSActions", "useHMSStore", "PeopleAddIcon", "ShareScreenIcon", "React", "useEffect", "useState", "selectLocalPeerRoleName", "selectPeerScreenSharing", "useHMSStore", "React", "useEffect", "useState", "useMedia", "useMedia", "useState", "useEffect", "React", "page", "React", "useHMSStore", "selectPeerScreenSharing", "selectLocalPeerRoleName", "useState", "useEffect", "React", "useEffect", "useState", "useMedia", "selectIsTranscriptionEnabled", "useHMSStore", "data", "useHMSStore", "React", "useMedia", "useState", "selectIsTranscriptionEnabled", "useEffect", "_a", "useEffect", "selectPeerScreenSharing", "useHMSStore", "useWhiteboard", "React", "WaitingView", "useHMSStore", "selectLocalPeerRoleName", "useHMSActions", "useMedia", "useState", "useEffect", "Suspense", "isNotAllowedToPublish", "hasSubscribedRolePublishing", "PeopleAddIcon", "isScreenOnlyPublishParams", "isSharingScreen", "ShareScreenIcon", "pdfAnnotatorActive", "urlToIframe", "_a", "useEffect", "selectLocalPeerRoleName", "useHMSVanillaStore", "useHMSVanillaStore", "useEffect", "selectLocalPeerRoleName", "useHMSStore", "selectIsConnectedToRoom", "useHMSActions", "useState", "useRef", "useAwayNotifications", "_a", "useEffect", "React", "Footer"]
7
+ }