@100mslive/roomkit-react 0.3.22-alpha.1 → 0.3.22-alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/ConferenceScreen-5G5WGPIO.css +2780 -0
- package/dist/{HLSView-Z2JID2W7.css.map → ConferenceScreen-5G5WGPIO.css.map} +1 -1
- package/dist/ConferenceScreen-KS5URW6Z.js +1778 -0
- package/dist/ConferenceScreen-KS5URW6Z.js.map +7 -0
- package/dist/EmbedView-BCRQ3GHV.js +17 -0
- package/dist/EmbedView-BCRQ3GHV.js.map +7 -0
- package/dist/EmbedView-Y24VRONT.css +2780 -0
- package/dist/EmbedView-Y24VRONT.css.map +7 -0
- package/dist/EmojiReaction-NA5F5DWN.js +11 -0
- package/dist/EmojiReaction-NA5F5DWN.js.map +7 -0
- package/dist/{HLSView-Z2JID2W7.css → HLSView-DC43TOIW.css} +3 -3
- package/dist/HLSView-DC43TOIW.css.map +7 -0
- package/dist/{HLSView-LCFZPBH3.js → HLSView-XRGOWFRB.js} +38 -24
- package/dist/HLSView-XRGOWFRB.js.map +7 -0
- package/dist/LeaveScreen-3OZN3MU3.css +2780 -0
- package/dist/LeaveScreen-3OZN3MU3.css.map +7 -0
- package/dist/LeaveScreen-PC4KB6OG.js +556 -0
- package/dist/LeaveScreen-PC4KB6OG.js.map +7 -0
- package/dist/MoreSettings-KTRYHDB2.css +2780 -0
- package/dist/MoreSettings-KTRYHDB2.css.map +7 -0
- package/dist/MoreSettings-XLNYT7PW.js +16 -0
- package/dist/MoreSettings-XLNYT7PW.js.map +7 -0
- package/dist/PDFView-LJ7I3K3H.js +84 -0
- package/dist/PDFView-LJ7I3K3H.js.map +7 -0
- package/dist/PDFView-RJK44WVO.css +2780 -0
- package/dist/PDFView-RJK44WVO.css.map +7 -0
- package/dist/Polls-AULCHMLW.js +1584 -0
- package/dist/Polls-AULCHMLW.js.map +7 -0
- package/dist/Polls-K4GO5ZOC.css +2780 -0
- package/dist/Polls-K4GO5ZOC.css.map +7 -0
- package/dist/RaiseHand-E4OVMBW6.js +10 -0
- package/dist/RaiseHand-E4OVMBW6.js.map +7 -0
- package/dist/RoleProminence-LHUXHLVI.css +2780 -0
- package/dist/RoleProminence-LHUXHLVI.css.map +7 -0
- package/dist/RoleProminence-RWJP2Z36.js +116 -0
- package/dist/RoleProminence-RWJP2Z36.js.map +7 -0
- package/dist/RoomDetailsPane-6BM2FPWW.css +2780 -0
- package/dist/RoomDetailsPane-6BM2FPWW.css.map +7 -0
- package/dist/RoomDetailsPane-7OP2CNJW.js +53 -0
- package/dist/RoomDetailsPane-7OP2CNJW.js.map +7 -0
- package/dist/ScreenshareLayout-RHTD2PQT.css +2780 -0
- package/dist/ScreenshareLayout-RHTD2PQT.css.map +7 -0
- package/dist/ScreenshareLayout-TM7DLYLH.js +358 -0
- package/dist/ScreenshareLayout-TM7DLYLH.js.map +7 -0
- package/dist/SidePaneTabs-T7BKZ2AT.js +1354 -0
- package/dist/SidePaneTabs-T7BKZ2AT.js.map +7 -0
- package/dist/SidePaneTabs-TBUPHNAU.css +2780 -0
- package/dist/SidePaneTabs-TBUPHNAU.css.map +7 -0
- package/dist/VBPicker-M5VYFEUB.css +2780 -0
- package/dist/VBPicker-M5VYFEUB.css.map +7 -0
- package/dist/VBPicker-TQLIL3NC.js +322 -0
- package/dist/VBPicker-TQLIL3NC.js.map +7 -0
- package/dist/WaitingView-TLJ52XYA.js +10 -0
- package/dist/WaitingView-TLJ52XYA.js.map +7 -0
- package/dist/WhiteboardLayout-PZZTM2FW.css +2780 -0
- package/dist/WhiteboardLayout-PZZTM2FW.css.map +7 -0
- package/dist/WhiteboardLayout-YYZ5UVGG.js +96 -0
- package/dist/WhiteboardLayout-YYZ5UVGG.js.map +7 -0
- package/dist/android-perm-1.png +0 -0
- package/dist/audio-level.png +0 -0
- package/dist/chunk-42XPBCZO.js +487 -0
- package/dist/chunk-42XPBCZO.js.map +7 -0
- package/dist/chunk-4BQ3AMVG.js +16802 -0
- package/dist/chunk-4BQ3AMVG.js.map +7 -0
- package/dist/chunk-4L5OKEIV.js +90 -0
- package/dist/chunk-4L5OKEIV.js.map +7 -0
- package/dist/chunk-6BX3VCVC.js +6337 -0
- package/dist/chunk-6BX3VCVC.js.map +7 -0
- package/dist/chunk-A3COGXMF.js +114 -0
- package/dist/chunk-A3COGXMF.js.map +7 -0
- package/dist/chunk-B3HHL3ND.js +178 -0
- package/dist/chunk-B3HHL3ND.js.map +7 -0
- package/dist/chunk-B5NLX6N6.js +41 -0
- package/dist/chunk-B5NLX6N6.js.map +7 -0
- package/dist/chunk-BXBPZGSP.js +161 -0
- package/dist/chunk-BXBPZGSP.js.map +7 -0
- package/dist/chunk-DVVFWHQG.js +136 -0
- package/dist/chunk-DVVFWHQG.js.map +7 -0
- package/dist/chunk-GV2DTYSU.js +262 -0
- package/dist/chunk-GV2DTYSU.js.map +7 -0
- package/dist/chunk-KF2YEUWU.js +254 -0
- package/dist/chunk-KF2YEUWU.js.map +7 -0
- package/dist/chunk-KQXTIHI6.js +59 -0
- package/dist/chunk-KQXTIHI6.js.map +7 -0
- package/dist/chunk-MR3HE7HV.js +830 -0
- package/dist/chunk-MR3HE7HV.js.map +7 -0
- package/dist/chunk-OQBTPJPO.js +71 -0
- package/dist/chunk-OQBTPJPO.js.map +7 -0
- package/dist/chunk-P7OOTR7P.js +2595 -0
- package/dist/chunk-P7OOTR7P.js.map +7 -0
- package/dist/chunk-THDU2DKP.js +30 -0
- package/dist/chunk-THDU2DKP.js.map +7 -0
- package/dist/chunk-U4QYH2BP.js +98 -0
- package/dist/chunk-U4QYH2BP.js.map +7 -0
- package/dist/chunk-USEEH3QW.js +418 -0
- package/dist/chunk-USEEH3QW.js.map +7 -0
- package/dist/chunk-UZW3C3ML.js +171 -0
- package/dist/chunk-UZW3C3ML.js.map +7 -0
- package/dist/chunk-YDIB6WKJ.js +576 -0
- package/dist/chunk-YDIB6WKJ.js.map +7 -0
- package/dist/chunk-ZFTULCCP.js +62 -0
- package/dist/chunk-ZFTULCCP.js.map +7 -0
- package/dist/empty-chat.svg +12 -0
- package/dist/index.cjs.css +2 -2
- package/dist/index.cjs.css.map +1 -1
- package/dist/index.cjs.js +22079 -22000
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +25 -15
- package/dist/ios-perm-0.png +0 -0
- package/dist/meta.cjs.json +5284 -5181
- package/dist/meta.esbuild.json +8930 -6329
- package/dist/pdf-share.png +0 -0
- package/dist/screen-share.png +0 -0
- package/dist/transaction_error.svg +12 -0
- package/package.json +7 -7
- package/src/Prebuilt/App.tsx +6 -2
- package/src/Prebuilt/components/Chat/Chat.tsx +12 -8
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +1 -1
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +43 -31
- package/src/Prebuilt/layouts/HLSView.jsx +1 -0
- package/src/Prebuilt/layouts/PDFView.jsx +1 -0
- package/src/Prebuilt/layouts/SidePane.tsx +12 -6
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +35 -34
- package/dist/HLSView-LCFZPBH3.js.map +0 -7
- package/dist/chunk-CRGZUJSX.js +0 -34811
- package/dist/chunk-CRGZUJSX.js.map +0 -7
@@ -0,0 +1,7 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../src/Prebuilt/components/Footer/ParticipantList.tsx", "../src/Prebuilt/components/RemoveParticipant.tsx", "../src/Prebuilt/components/Footer/RoleAccordion.tsx", "../src/Prebuilt/components/Footer/RoleOptions.tsx", "../src/Prebuilt/components/hooks/useGroupOnStageActions.tsx", "../src/Prebuilt/components/hooks/usePeerOnStageActions.tsx"],
|
4
|
+
"sourcesContent": ["import React, { Fragment, useCallback, useState } from 'react';\nimport { useDebounce, useMedia } from 'react-use';\nimport {\n HMSPeer,\n HMSPeerType,\n HMSRoleName,\n selectAvailableRoleNames,\n selectHandRaisedPeers,\n selectHasPeerHandRaised,\n selectIsLargeRoom,\n selectIsPeerAudioEnabled,\n selectLocalPeerID,\n selectPeerCount,\n selectPermissions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport {\n AddIcon,\n CallIcon,\n ChangeRoleIcon,\n CrossIcon,\n HandIcon,\n MicOffIcon,\n PeopleIcon,\n PersonSettingsIcon,\n SearchIcon,\n VerticalMenuIcon,\n} from '@100mslive/react-icons';\nimport { Accordion, Box, Button, config as cssConfig, Dropdown, Flex, Input, Text, textEllipsis } from '../../..';\n// @ts-ignore: No implicit Any\nimport IconButton from '../../IconButton';\nimport { ConnectionIndicator } from '../Connection/ConnectionIndicator';\nimport { RemoveParticipant } from '../RemoveParticipant';\nimport { RoleChangeModal } from '../RoleChangeModal';\nimport { RoleAccordion } from './RoleAccordion';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { useIsSidepaneTypeOpen, useSidepaneToggle } from '../AppData/useSidepane';\nimport { useSidepaneResetOnLayoutUpdate } from '../AppData/useSidepaneResetOnLayoutUpdate';\nimport { usePeerOnStageActions } from '../hooks/usePeerOnStageActions';\nimport { useParticipants } from '../../common/hooks';\n// @ts-ignore: No implicit Any\nimport { getFormattedCount } from '../../common/utils';\nimport { SIDE_PANE_OPTIONS } from '../../common/constants';\n\nexport const ParticipantList = ({\n offStageRoles = [],\n onActive,\n}: {\n offStageRoles: HMSRoleName[];\n onActive: (role: string) => void;\n}) => {\n const [filter, setFilter] = useState<{ search?: string } | undefined>();\n const { participants, isConnected, peerCount } = useParticipants(filter);\n const isLargeRoom = useHMSStore(selectIsLargeRoom);\n const peersOrderedByRoles: Record<string, HMSPeer[]> = {};\n\n const handRaisedPeers = useHMSStore(selectHandRaisedPeers);\n\n participants.forEach(participant => {\n if (participant.roleName) {\n if (peersOrderedByRoles[participant.roleName] === undefined) {\n peersOrderedByRoles[participant.roleName] = [];\n }\n peersOrderedByRoles[participant.roleName].push(participant);\n }\n });\n\n // prefill off_stage roles of large rooms to load more peers\n if (isLargeRoom) {\n offStageRoles.forEach(role => {\n if (!peersOrderedByRoles[role]) {\n peersOrderedByRoles[role] = [];\n }\n });\n }\n\n useSidepaneResetOnLayoutUpdate('participant_list', SIDE_PANE_OPTIONS.PARTICIPANTS);\n\n const onSearch = useCallback((value: string) => {\n setFilter(filterValue => {\n if (!filterValue) {\n filterValue = {};\n }\n filterValue.search = value.toLowerCase();\n return { ...filterValue };\n });\n }, []);\n\n if (peerCount === 0) {\n return null;\n }\n\n return (\n <Fragment>\n <Flex\n direction=\"column\"\n css={{\n size: '100%',\n gap: '$4',\n }}\n >\n {!filter?.search && participants.length === 0 ? null : <ParticipantSearch onSearch={onSearch} inSidePane />}\n <VirtualizedParticipants\n peersOrderedByRoles={peersOrderedByRoles}\n handRaisedList={handRaisedPeers}\n isConnected={!!isConnected}\n filter={filter}\n offStageRoles={offStageRoles}\n isLargeRoom={isLargeRoom}\n onActive={onActive}\n >\n {participants.length === 0 ? (\n <Flex\n align=\"center\"\n justify=\"center\"\n className=\"emptyParticipants\"\n css={{ w: '100%', p: '$8 0', display: 'none' }}\n >\n <Text variant=\"sm\">{!filter ? 'No participants' : 'No matching participants'}</Text>\n </Flex>\n ) : null}\n </VirtualizedParticipants>\n </Flex>\n </Fragment>\n );\n};\n\nexport const ParticipantCount = () => {\n const peerCount = useHMSStore(selectPeerCount);\n const toggleSidepane = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);\n const isPeerListOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.PARTICIPANTS);\n\n if (peerCount === 0) {\n return null;\n }\n return (\n <IconButton\n css={{\n w: 'auto',\n p: '$4',\n h: 'auto',\n bg: isPeerListOpen ? '$surface_brighter' : '',\n }}\n onClick={() => {\n if (peerCount > 0) {\n toggleSidepane();\n }\n }}\n data-testid=\"participant_list\"\n >\n <PeopleIcon />\n <Text variant=\"sm\" css={{ mx: '$4', c: 'inherit' }}>\n {getFormattedCount(peerCount)}\n </Text>\n </IconButton>\n );\n};\n\nexport const Participant = ({\n peer,\n isConnected,\n isHandRaisedAccordion,\n style,\n}: {\n peer: HMSPeer;\n isConnected: boolean;\n isHandRaisedAccordion?: boolean;\n style: React.CSSProperties;\n}) => {\n const localPeerId = useHMSStore(selectLocalPeerID);\n return (\n <Flex\n key={peer.id}\n css={{\n w: '100%',\n p: '$4 $8',\n pr: '$6',\n h: '$16',\n '&:hover .participant_item': { display: 'flex' },\n }}\n align=\"center\"\n justify=\"between\"\n data-testid={'participant_' + peer.name}\n style={style}\n >\n <Text\n variant=\"sm\"\n css={{ ...textEllipsis('100%'), flex: '1 1 0', mr: '$8', fontWeight: '$semiBold', color: '$on_surface_high' }}\n >\n {peer.name} {localPeerId === peer.id ? '(You)' : ''}\n </Text>\n {isConnected && peer.roleName ? (\n <ParticipantActions\n peerId={peer.id}\n peerType={peer.type}\n role={peer.roleName}\n isHandRaisedAccordion={isHandRaisedAccordion}\n />\n ) : null}\n </Flex>\n );\n};\n\nconst VirtualizedParticipants = ({\n peersOrderedByRoles = {},\n isConnected,\n filter,\n handRaisedList = [],\n offStageRoles,\n isLargeRoom,\n onActive,\n children,\n}: {\n peersOrderedByRoles: Record<string, HMSPeer[]>;\n isConnected: boolean;\n filter: undefined | { search?: string };\n handRaisedList: HMSPeer[];\n offStageRoles: HMSRoleName[];\n isLargeRoom: boolean;\n onActive: (role: string) => void;\n children: React.ReactNode;\n}) => {\n return (\n <Flex\n direction=\"column\"\n css={{\n gap: '$8',\n overflowY: 'auto',\n overflowX: 'hidden',\n pr: '$10',\n mr: '-$10',\n flex: '1 1 0',\n '& > div:empty ~ .emptyParticipants': {\n display: 'flex',\n },\n }}\n >\n <Accordion.Root type={isLargeRoom ? 'single' : 'multiple'} collapsible>\n {handRaisedList.length > 0 ? (\n <RoleAccordion\n peerList={handRaisedList}\n roleName=\"Hand Raised\"\n filter={filter}\n isConnected={isConnected}\n isHandRaisedAccordion\n offStageRoles={offStageRoles}\n />\n ) : null}\n {Object.keys(peersOrderedByRoles).map(role => (\n <RoleAccordion\n key={role}\n peerList={peersOrderedByRoles[role]}\n roleName={role}\n isConnected={isConnected}\n filter={filter}\n offStageRoles={offStageRoles}\n onActive={onActive}\n />\n ))}\n </Accordion.Root>\n {children}\n </Flex>\n );\n};\n\n/**\n * shows settings to change for a participant like changing their role\n */\nconst ParticipantActions = React.memo(\n ({\n peerId,\n peerType,\n role,\n isHandRaisedAccordion,\n }: {\n peerId: string;\n role: string;\n isHandRaisedAccordion?: boolean;\n peerType: HMSPeerType;\n }) => {\n const isHandRaised = useHMSStore(selectHasPeerHandRaised(peerId));\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n const canRemoveOthers = useHMSStore(selectPermissions)?.removeOthers;\n const { elements } = useRoomLayoutConferencingScreen();\n const { on_stage_exp } = elements || {};\n const shouldShowMoreActions = (on_stage_exp && canChangeRole) || canRemoveOthers;\n const isAudioMuted = !useHMSStore(selectIsPeerAudioEnabled(peerId));\n\n return (\n <Flex\n align=\"center\"\n css={{\n flexShrink: 0,\n gap: '$8',\n }}\n >\n {isHandRaisedAccordion ? (\n <HandRaisedAccordionParticipantActions peerId={peerId} role={role} />\n ) : (\n <>\n <ConnectionIndicator peerId={peerId} />\n {peerType === HMSPeerType.SIP && (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$1', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <CallIcon width={19} height={19} />\n </Flex>\n )}\n {isHandRaised && (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$1', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <HandIcon height={19} width={19} />\n </Flex>\n )}\n {isAudioMuted ? (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$2', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <MicOffIcon height={19} width={19} />\n </Flex>\n ) : null}\n\n {shouldShowMoreActions ? <ParticipantMoreActions peerId={peerId} role={role} /> : null}\n </>\n )}\n </Flex>\n );\n },\n);\n\nconst quickActionStyle = { p: '$1', borderRadius: '$round' };\nconst HandRaisedAccordionParticipantActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const { handleStageAction, lowerPeerHand, shouldShowStageRoleChange, isInStage } = usePeerOnStageActions({\n peerId,\n role,\n });\n if (!shouldShowStageRoleChange) {\n return null;\n }\n return (\n <>\n <Button variant=\"standard\" css={quickActionStyle} onClick={lowerPeerHand}>\n <CrossIcon height={18} width={18} />\n </Button>\n {!isInStage && (\n <Button variant=\"primary\" onClick={handleStageAction} css={quickActionStyle}>\n <AddIcon height={18} width={18} />\n </Button>\n )}\n </>\n );\n};\n\nconst ParticipantMoreActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const {\n open,\n setOpen,\n bring_to_stage_label,\n remove_from_stage_label,\n handleStageAction,\n isInStage,\n shouldShowStageRoleChange,\n } = usePeerOnStageActions({ peerId, role });\n const canChangeRole = !!useHMSStore(selectPermissions)?.changeRole;\n const [openRoleChangeModal, setOpenRoleChangeModal] = useState(false);\n const roles = useHMSStore(selectAvailableRoleNames);\n\n return (\n <>\n <Dropdown.Root open={open} onOpenChange={value => setOpen(value)} modal={false}>\n <Dropdown.Trigger\n asChild\n data-testid=\"participant_more_actions\"\n className=\"participant_item\"\n css={{\n p: '$1',\n r: '$0',\n c: '$on_surface_high',\n display: open ? 'flex' : 'none',\n '&:hover': {\n bg: '$surface_bright',\n },\n '@md': {\n display: 'flex',\n },\n }}\n tabIndex={0}\n >\n <Box css={{ my: 'auto' }}>\n <VerticalMenuIcon />\n </Box>\n </Dropdown.Trigger>\n <Dropdown.Portal>\n <Dropdown.Content align=\"end\" sideOffset={8} css={{ w: '$64', bg: '$surface_default' }}>\n {shouldShowStageRoleChange ? (\n <Dropdown.Item css={{ bg: '$surface_default' }} onClick={() => handleStageAction()}>\n <ChangeRoleIcon />\n <Text variant=\"sm\" css={{ ml: '$4', fontWeight: '$semiBold', c: '$on_surface_high' }}>\n {isInStage ? remove_from_stage_label : bring_to_stage_label}\n </Text>\n </Dropdown.Item>\n ) : null}\n\n {canChangeRole && roles.length > 1 ? (\n <Dropdown.Item css={{ bg: '$surface_default' }} onClick={() => setOpenRoleChangeModal(true)}>\n <PersonSettingsIcon />\n <Text variant=\"sm\" css={{ ml: '$4', fontWeight: '$semiBold', c: '$on_surface_high' }}>\n Switch Role\n </Text>\n </Dropdown.Item>\n ) : null}\n <RemoveParticipant peerId={peerId} />\n </Dropdown.Content>\n </Dropdown.Portal>\n </Dropdown.Root>\n {openRoleChangeModal && <RoleChangeModal peerId={peerId} onOpenChange={setOpenRoleChangeModal} />}\n </>\n );\n};\n\nexport const ParticipantSearch = ({\n onSearch,\n placeholder = 'Search for participants',\n inSidePane = false,\n}: {\n inSidePane?: boolean;\n placeholder?: string;\n onSearch: (val: string) => void;\n}) => {\n const [value, setValue] = React.useState('');\n const isMobile = useMedia(cssConfig.media.md);\n\n useDebounce(\n () => {\n onSearch(value);\n },\n 300,\n [value, onSearch],\n );\n\n return (\n <Flex\n align=\"center\"\n css={{\n p: isMobile ? '0' : '$2 0',\n mb: '$2',\n position: 'relative',\n color: '$on_surface_medium',\n mt: inSidePane ? '$4' : '',\n }}\n onClick={e => e.stopPropagation()}\n >\n <SearchIcon style={{ position: 'absolute', left: '0.5rem' }} />\n <Input\n type=\"text\"\n placeholder={placeholder}\n css={{ w: '100%', p: '$6', pl: '$14', bg: inSidePane ? '$surface_default' : '$surface_dim' }}\n value={value}\n onKeyDown={event => {\n event.stopPropagation();\n }}\n onChange={event => {\n setValue(event.currentTarget.value);\n }}\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n />\n </Flex>\n );\n};\n", "import React from 'react';\nimport { HMSPeerID, selectLocalPeerID, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { PeopleRemoveIcon } from '@100mslive/react-icons';\n// @ts-ignore: No implicit Any\nimport { ToastManager } from './Toast/ToastManager';\nimport { Dropdown } from '../../Dropdown';\nimport { Text } from '../../Text';\n\nexport const RemoveParticipant = ({ peerId }: { peerId: HMSPeerID }) => {\n const canRemoveOthers = useHMSStore(selectPermissions)?.removeOthers;\n const localPeerId = useHMSStore(selectLocalPeerID);\n const actions = useHMSActions();\n\n if (peerId === localPeerId || !canRemoveOthers) {\n return null;\n }\n return (\n <Dropdown.Item\n css={{ color: '$alert_error_default', bg: '$surface_default' }}\n onClick={async () => {\n try {\n await actions.removePeer(peerId, '');\n } catch (error) {\n const ex = error as Error;\n ToastManager.addToast({ title: ex.message, variant: 'error' });\n }\n }}\n >\n <PeopleRemoveIcon />\n <Text variant=\"sm\" css={{ ml: '$4', color: 'inherit', fontWeight: '$semiBold' }}>\n Remove Participant\n </Text>\n </Dropdown.Item>\n );\n};\n", "import React, { useEffect } from 'react';\nimport { useMeasure } from 'react-use';\nimport { FixedSizeList } from 'react-window';\nimport { HMSPeer, selectIsLargeRoom, useHMSStore, usePaginatedParticipants } from '@100mslive/react-sdk';\nimport { AddIcon, ChevronRightIcon, CrossIcon } from '@100mslive/react-icons';\nimport { Accordion } from '../../../Accordion';\nimport { Button } from '../../../Button';\nimport { HorizontalDivider } from '../../../Divider';\nimport { Flex } from '../../../Layout';\nimport { Text } from '../../../Text';\nimport { Participant } from './ParticipantList';\nimport { RoleOptions } from './RoleOptions';\nimport { useGroupOnStageActions } from '../hooks/useGroupOnStageActions';\n// @ts-ignore: No implicit Any\nimport { getFormattedCount } from '../../common/utils';\n\nexport const ROW_HEIGHT = 50;\nconst ITER_TIMER = 5000;\n\nexport interface ItemData {\n peerList: HMSPeer[];\n isHandRaisedAccordion?: boolean;\n isConnected: boolean;\n}\n\nexport function itemKey(index: number, data: ItemData) {\n return data.peerList[index]?.id;\n}\n\nexport const VirtualizedParticipantItem = React.memo(\n ({ index, data, style }: { index: number; data: ItemData; style: React.CSSProperties }) => {\n return (\n <Participant\n key={data.peerList[index].id}\n peer={data.peerList[index]}\n isHandRaisedAccordion={data.isHandRaisedAccordion}\n isConnected={data.isConnected}\n style={style}\n />\n );\n },\n);\n\nexport const RoleAccordion = ({\n peerList = [],\n roleName,\n isConnected,\n filter,\n isHandRaisedAccordion = false,\n offStageRoles,\n onActive,\n}: ItemData & {\n roleName: string;\n isHandRaisedAccordion?: boolean;\n filter?: { search?: string };\n offStageRoles: string[];\n onActive?: (role: string) => void;\n}) => {\n const [ref, { width }] = useMeasure<HTMLDivElement>();\n const isLargeRoom = useHMSStore(selectIsLargeRoom);\n const { peers, total, loadPeers } = usePaginatedParticipants({ role: roleName, limit: 10 });\n const isOffStageRole = roleName && offStageRoles.includes(roleName);\n let peersInAccordion = peerList;\n // for large rooms, peer list would be empty\n if (isOffStageRole && isLargeRoom) {\n peersInAccordion = peers;\n if (filter?.search) {\n peersInAccordion = peersInAccordion.filter(peer => peer.name.toLowerCase().includes(filter.search || ''));\n }\n }\n const { bringAllToStage, bring_to_stage_label, canBringToStage, lowerAllHands } = useGroupOnStageActions({\n peers: peersInAccordion,\n });\n\n useEffect(() => {\n if (!isOffStageRole || !isLargeRoom) {\n return;\n }\n loadPeers();\n const interval = setInterval(() => {\n loadPeers();\n }, ITER_TIMER);\n return () => clearInterval(interval);\n }, [isOffStageRole, isLargeRoom]); //eslint-disable-line\n\n if (peersInAccordion.length === 0 || (isHandRaisedAccordion && filter?.search)) {\n return null;\n }\n\n const height = ROW_HEIGHT * peersInAccordion.length;\n const hasNext = total > peersInAccordion.length && !filter?.search;\n\n return (\n <Accordion.Item value={roleName} css={{ '&:hover .role_actions': { visibility: 'visible' }, mb: '$8' }} ref={ref}>\n <Accordion.Header\n chevronID={`role_accordion_btn_${roleName}`}\n iconStyles={{ c: '$on_surface_high' }}\n css={{\n textTransform: 'capitalize',\n p: '$6 $8',\n fontSize: '$sm',\n fontWeight: '$semiBold',\n c: '$on_surface_medium',\n borderRadius: '$1',\n border: '1px solid $border_default',\n '&[data-state=\"open\"]': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n >\n <Flex justify=\"between\" align=\"center\" css={{ flexGrow: 1, pr: '$6' }}>\n <Text\n variant=\"sm\"\n css={{ fontWeight: '$semiBold', textTransform: 'capitalize', color: '$on_surface_medium' }}\n >\n {roleName} {`(${getFormattedCount(isLargeRoom && isOffStageRole ? total : peerList.length)})`}\n </Text>\n <RoleOptions roleName={roleName} peerList={peersInAccordion} />\n </Flex>\n </Accordion.Header>\n <Accordion.Content contentStyles={{ border: '1px solid $border_default', borderTop: 'none' }}>\n <FixedSizeList\n itemSize={ROW_HEIGHT}\n itemData={{\n peerList: isHandRaisedAccordion\n ? peersInAccordion.sort((a, b) => {\n try {\n const aHandRaisedAt = JSON.parse(a.metadata || '{}').handRaisedAt;\n const bHandRaisedAt = JSON.parse(b.metadata || '{}').handRaisedAt;\n return aHandRaisedAt - bHandRaisedAt;\n } catch (err) {\n return 0;\n }\n })\n : peersInAccordion,\n isConnected,\n isHandRaisedAccordion,\n }}\n itemKey={itemKey}\n itemCount={peersInAccordion.length}\n width={width}\n height={height}\n >\n {VirtualizedParticipantItem}\n </FixedSizeList>\n {offStageRoles?.includes(roleName) && hasNext ? (\n <Flex\n align=\"center\"\n justify=\"end\"\n css={{\n gap: '$1',\n cursor: 'pointer',\n color: '$on_surface_high',\n p: '$6',\n borderTop: '1px solid $border_default',\n }}\n onClick={() => onActive?.(roleName)}\n >\n <Text variant=\"sm\" css={{ color: 'inherit' }}>\n View All\n </Text>\n <ChevronRightIcon />\n </Flex>\n ) : null}\n {isHandRaisedAccordion && canBringToStage && (\n <>\n <HorizontalDivider />\n <Flex css={{ w: '100%', p: '$6', gap: '$4' }} justify=\"center\">\n <Button variant=\"standard\" onClick={lowerAllHands} icon css={{ pl: '$2' }}>\n <CrossIcon /> Lower all hands\n </Button>\n\n <Button onClick={bringAllToStage} icon css={{ pl: '$2' }}>\n <AddIcon /> {bring_to_stage_label}\n </Button>\n </Flex>\n </>\n )}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n", "import React, { useState } from 'react';\nimport { DefaultConferencingScreen_Elements } from '@100mslive/types-prebuilt';\nimport { match } from 'ts-pattern';\nimport {\n HMSPeer,\n selectPermissions,\n selectRoleByRoleName,\n selectTracksMap,\n useHMSActions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport {\n MicOffIcon,\n MicOnIcon,\n PersonRectangleIcon,\n RemoveUserIcon,\n VerticalMenuIcon,\n VideoOffIcon,\n VideoOnIcon,\n} from '@100mslive/react-icons';\nimport { Dropdown } from '../../../Dropdown';\nimport { Flex } from '../../../Layout';\nimport { Text } from '../../../Text';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { getMetadata } from '../../common/utils';\n\nconst dropdownItemCSS = { backgroundColor: '$surface_default', gap: '$4', p: '$8' };\nconst optionTextCSS = {\n fontWeight: '$semiBold',\n color: '$on_surface_high',\n textTransform: 'none',\n whiteSpace: 'nowrap',\n};\n\nconst DropdownWrapper = ({ children }: { children: React.ReactNode }) => {\n const [openOptions, setOpenOptions] = useState(false);\n if (React.Children.toArray(children).length === 0) {\n return null;\n }\n return (\n <Dropdown.Root open={openOptions} onOpenChange={setOpenOptions}>\n <Dropdown.Trigger\n data-testid=\"role_group_options\"\n onClick={e => e.stopPropagation()}\n className=\"role_actions\"\n asChild\n css={{\n p: '$1',\n r: '$0',\n c: '$on_surface_high',\n visibility: openOptions ? 'visible' : 'hidden',\n '&:hover': {\n c: '$on_surface_medium',\n },\n '@md': {\n visibility: 'visible',\n },\n }}\n >\n <Flex>\n <VerticalMenuIcon />\n </Flex>\n </Dropdown.Trigger>\n <Dropdown.Content\n onClick={e => e.stopPropagation()}\n css={{ w: 'max-content', bg: '$surface_default', py: 0 }}\n align=\"end\"\n >\n {children}\n </Dropdown.Content>\n </Dropdown.Root>\n );\n};\n\nexport const RoleOptions = ({ roleName, peerList }: { roleName: string; peerList: HMSPeer[] }) => {\n const permissions = useHMSStore(selectPermissions);\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const { on_stage_role, off_stage_roles = [] } = (elements as DefaultConferencingScreen_Elements)?.on_stage_exp || {};\n const canRemoveRoleFromStage = permissions?.changeRole && roleName === on_stage_role;\n const role = useHMSStore(selectRoleByRoleName(roleName));\n const tracks = useHMSStore(selectTracksMap);\n if (!role) {\n return null;\n }\n const canPublishAudio = role.publishParams.allowed.includes('audio');\n const canPublishVideo = role.publishParams.allowed.includes('video');\n\n let isVideoOnForSomePeers = false;\n let isAudioOnForSomePeers = false;\n\n peerList.forEach(peer => {\n if (peer.isLocal) {\n return;\n }\n const isAudioOn = !!peer.audioTrack && tracks[peer.audioTrack]?.enabled;\n const isVideoOn = !!peer.videoTrack && tracks[peer.videoTrack]?.enabled;\n isAudioOnForSomePeers = isAudioOnForSomePeers || isAudioOn;\n isVideoOnForSomePeers = isVideoOnForSomePeers || isVideoOn;\n });\n\n const setTrackEnabled = async (type: 'audio' | 'video', enabled = false) => {\n try {\n await hmsActions.setRemoteTracksEnabled({ roles: [roleName], source: 'regular', type, enabled });\n } catch (e) {\n console.error(e);\n }\n };\n\n // on stage and off stage roles\n const canRemoveRoleFromRoom =\n permissions?.removeOthers && (on_stage_role === roleName || off_stage_roles?.includes(roleName));\n\n if (\n peerList.length === 0 ||\n // if only local peer is present no need to show any options\n (peerList.length === 1 && peerList[0].isLocal) ||\n !role\n ) {\n return null;\n }\n\n const removeAllFromStage = () => {\n peerList.forEach(peer => {\n const prevRole = getMetadata(peer.metadata).prevRole;\n if (prevRole) {\n hmsActions.changeRoleOfPeer(peer.id, prevRole, true);\n }\n });\n };\n\n const removePeersFromRoom = async () => {\n try {\n peerList.forEach(async peer => {\n await hmsActions.removePeer(peer.id, '');\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n return (\n <DropdownWrapper>\n {canRemoveRoleFromStage ? (\n <Dropdown.Item\n css={{ ...dropdownItemCSS, borderBottom: '1px solid $border_bright' }}\n onClick={removeAllFromStage}\n >\n <PersonRectangleIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Remove all from Stage\n </Text>\n </Dropdown.Item>\n ) : null}\n\n {match({ canPublishAudio, isAudioOnForSomePeers, canMute: permissions?.mute, canUnmute: permissions?.unmute })\n .with({ canPublishAudio: true, isAudioOnForSomePeers: true, canMute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('audio', false)}>\n <MicOffIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Mute Audio for All\n </Text>\n </Dropdown.Item>\n );\n })\n .with({ canPublishAudio: true, isAudioOnForSomePeers: false, canUnmute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('audio', true)}>\n <MicOnIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Request to Unmute Audio for All\n </Text>\n </Dropdown.Item>\n );\n })\n .otherwise(() => null)}\n {match({ canPublishVideo, isVideoOnForSomePeers, canMute: permissions?.mute, canUnmute: permissions?.unmute })\n .with({ canPublishVideo: true, isVideoOnForSomePeers: true, canMute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('video', false)}>\n <VideoOffIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Mute Video for All\n </Text>\n </Dropdown.Item>\n );\n })\n .with({ canPublishVideo: true, isVideoOnForSomePeers: false, canUnmute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('video', true)}>\n <VideoOnIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Request to Unmute Video for All\n </Text>\n </Dropdown.Item>\n );\n })\n .otherwise(() => null)}\n\n {canRemoveRoleFromRoom ? (\n <Dropdown.Item\n css={{ ...dropdownItemCSS, borderTop: '1px solid $border_bright', color: '$alert_error_default' }}\n onClick={removePeersFromRoom}\n >\n <RemoveUserIcon />\n <Text variant=\"sm\" css={{ ...optionTextCSS, color: 'inherit' }}>\n Remove all from Room\n </Text>\n </Dropdown.Item>\n ) : null}\n </DropdownWrapper>\n );\n};\n", "import { match, P } from 'ts-pattern';\nimport { HMSPeer, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n\nexport const useGroupOnStageActions = ({ peers }: { peers: HMSPeer[] }) => {\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const {\n bring_to_stage_label,\n remove_from_stage_label,\n on_stage_role,\n off_stage_roles = [],\n skip_preview_for_role_change = false,\n } = elements.on_stage_exp || {};\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n\n const offStageRolePeers = peers.filter(peer =>\n match({ on_stage_role, bring_to_stage_label, roleName: peer.roleName })\n .with(\n {\n on_stage_role: P.when(role => !!role),\n bring_to_stage_label: P.when(label => !!label),\n roleName: P.when(role => !!role && off_stage_roles.includes(role)),\n },\n () => true,\n )\n .otherwise(() => false),\n );\n\n const lowerAllHands = async () => {\n return Promise.all(peers.map(peer => hmsActions.lowerRemotePeerHand(peer.id)));\n };\n\n const bringAllToStage = () => {\n if (!canChangeRole || !on_stage_role) {\n return;\n }\n return Promise.all(\n offStageRolePeers.map(peer => {\n return hmsActions.changeRoleOfPeer(peer.id, on_stage_role, skip_preview_for_role_change).then(() => {\n return skip_preview_for_role_change ? hmsActions.lowerRemotePeerHand(peer.id) : null;\n });\n }),\n );\n };\n\n return {\n lowerAllHands,\n bringAllToStage,\n canBringToStage: canChangeRole && offStageRolePeers.length > 0,\n bring_to_stage_label,\n remove_from_stage_label,\n };\n};\n", "import { useState } from 'react';\nimport { selectPeerMetadata, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n\nexport const usePeerOnStageActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const {\n bring_to_stage_label,\n remove_from_stage_label,\n on_stage_role,\n off_stage_roles = [],\n skip_preview_for_role_change = false,\n } = elements.on_stage_exp || {};\n const isInStage = role === on_stage_role;\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n const shouldShowStageRoleChange =\n canChangeRole &&\n ((isInStage && remove_from_stage_label) || (off_stage_roles?.includes(role) && bring_to_stage_label));\n const prevRole = useHMSStore(selectPeerMetadata(peerId))?.prevRole;\n const [open, setOpen] = useState(false);\n\n const lowerPeerHand = async () => {\n await hmsActions.lowerRemotePeerHand(peerId);\n };\n\n const handleStageAction = async () => {\n if (isInStage) {\n prevRole && hmsActions.changeRoleOfPeer(peerId, prevRole, true);\n } else if (on_stage_role) {\n await hmsActions.changeRoleOfPeer(peerId, on_stage_role, skip_preview_for_role_change);\n if (skip_preview_for_role_change) {\n await lowerPeerHand();\n }\n }\n setOpen(false);\n };\n\n return {\n open,\n setOpen,\n lowerPeerHand,\n handleStageAction,\n shouldShowStageRoleChange,\n isInStage,\n bring_to_stage_label,\n remove_from_stage_label,\n };\n};\n"],
|
5
|
+
"mappings": "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",
|
6
|
+
"names": ["React", "useState", "selectIsLargeRoom", "selectLocalPeerID", "selectPermissions", "useHMSStore", "AddIcon", "CrossIcon", "MicOffIcon", "VerticalMenuIcon", "React", "useHMSStore", "React", "selectPermissions", "useHMSActions", "useHMSStore", "React", "useHMSStore", "selectPermissions", "useHMSActions", "match", "selectPermissions", "useHMSActions", "useHMSStore", "useHMSActions", "useHMSStore", "selectPermissions", "match", "React", "useHMSStore", "useState", "selectPermissions", "useHMSActions", "useHMSStore", "useHMSActions", "useHMSStore", "selectPermissions", "useState", "useState", "useHMSStore", "selectIsLargeRoom", "React", "selectLocalPeerID", "selectPermissions", "MicOffIcon", "CrossIcon", "AddIcon", "VerticalMenuIcon"]
|
7
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import {
|
2
|
+
Text
|
3
|
+
} from "./chunk-BXBPZGSP.js";
|
4
|
+
import {
|
5
|
+
Box,
|
6
|
+
Flex
|
7
|
+
} from "./chunk-4L5OKEIV.js";
|
8
|
+
import {
|
9
|
+
init_define_process_env
|
10
|
+
} from "./chunk-YDIB6WKJ.js";
|
11
|
+
|
12
|
+
// src/Prebuilt/layouts/WaitingView.tsx
|
13
|
+
init_define_process_env();
|
14
|
+
import React from "react";
|
15
|
+
var WaitingView = React.memo(
|
16
|
+
({ icon, title, subtitle }) => {
|
17
|
+
return /* @__PURE__ */ React.createElement(
|
18
|
+
Flex,
|
19
|
+
{
|
20
|
+
align: "center",
|
21
|
+
direction: "column",
|
22
|
+
css: {
|
23
|
+
textAlign: "center",
|
24
|
+
margin: "auto",
|
25
|
+
h: "100%",
|
26
|
+
justifyContent: "center",
|
27
|
+
gap: "$8"
|
28
|
+
}
|
29
|
+
},
|
30
|
+
/* @__PURE__ */ React.createElement(
|
31
|
+
Box,
|
32
|
+
{
|
33
|
+
css: {
|
34
|
+
backgroundColor: "$surface_default",
|
35
|
+
display: "flex",
|
36
|
+
alignItems: "center",
|
37
|
+
gap: "$4",
|
38
|
+
size: "$20",
|
39
|
+
r: "$round",
|
40
|
+
justifyContent: "center"
|
41
|
+
}
|
42
|
+
},
|
43
|
+
icon
|
44
|
+
),
|
45
|
+
/* @__PURE__ */ React.createElement(
|
46
|
+
Flex,
|
47
|
+
{
|
48
|
+
direction: "column",
|
49
|
+
css: {
|
50
|
+
p: "$1",
|
51
|
+
gap: "$4"
|
52
|
+
}
|
53
|
+
},
|
54
|
+
/* @__PURE__ */ React.createElement(Text, { variant: "h4", css: { "@md": { fontSize: "$md", color: "$on_surface_high" } } }, title),
|
55
|
+
/* @__PURE__ */ React.createElement(
|
56
|
+
Text,
|
57
|
+
{
|
58
|
+
variant: "body1",
|
59
|
+
css: { fontWeight: "$regular", color: "$on_surface_medium", "@md": { fontSize: "$sm" } }
|
60
|
+
},
|
61
|
+
subtitle
|
62
|
+
)
|
63
|
+
)
|
64
|
+
);
|
65
|
+
}
|
66
|
+
);
|
67
|
+
|
68
|
+
export {
|
69
|
+
WaitingView
|
70
|
+
};
|
71
|
+
//# sourceMappingURL=chunk-OQBTPJPO.js.map
|
@@ -0,0 +1,7 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../src/Prebuilt/layouts/WaitingView.tsx"],
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { Box, Flex } from '../../Layout';\nimport { Text } from '../../Text';\n\nexport const WaitingView = React.memo(\n ({ icon, title, subtitle }: { icon: React.ReactNode; title: string; subtitle: string }) => {\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n css={{\n textAlign: 'center',\n margin: 'auto',\n h: '100%',\n justifyContent: 'center',\n gap: '$8',\n }}\n >\n <Box\n css={{\n backgroundColor: '$surface_default',\n display: 'flex',\n alignItems: 'center',\n gap: '$4',\n size: '$20',\n r: '$round',\n justifyContent: 'center',\n }}\n >\n {icon}\n </Box>\n <Flex\n direction=\"column\"\n css={{\n p: '$1',\n gap: '$4',\n }}\n >\n <Text variant=\"h4\" css={{ '@md': { fontSize: '$md', color: '$on_surface_high' } }}>\n {title}\n </Text>\n <Text\n variant=\"body1\"\n css={{ fontWeight: '$regular', color: '$on_surface_medium', '@md': { fontSize: '$sm' } }}\n >\n {subtitle}\n </Text>\n </Flex>\n </Flex>\n );\n },\n);\n"],
|
5
|
+
"mappings": ";;;;;;;;;;;;AAAA;AAAA,OAAO,WAAW;AAIX,IAAM,cAAc,MAAM;AAAA,EAC/B,CAAC,EAAE,MAAM,OAAO,SAAS,MAAkE;AACzF,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,WAAU;AAAA,QACV,KAAK;AAAA,UACH,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,GAAG;AAAA,UACH,gBAAgB;AAAA,UAChB,KAAK;AAAA,QACP;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,YACH,iBAAiB;AAAA,YACjB,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,KAAK;AAAA,YACL,MAAM;AAAA,YACN,GAAG;AAAA,YACH,gBAAgB;AAAA,UAClB;AAAA;AAAA,QAEC;AAAA,MACH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,KAAK;AAAA,YACH,GAAG;AAAA,YACH,KAAK;AAAA,UACP;AAAA;AAAA,QAEA,oCAAC,QAAK,SAAQ,MAAK,KAAK,EAAE,OAAO,EAAE,UAAU,OAAO,OAAO,mBAAmB,EAAE,KAC7E,KACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,KAAK,EAAE,YAAY,YAAY,OAAO,sBAAsB,OAAO,EAAE,UAAU,MAAM,EAAE;AAAA;AAAA,UAEtF;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AACF;",
|
6
|
+
"names": []
|
7
|
+
}
|