@nethesis/phone-island 1.1.2 → 1.1.3-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/lib/webrtc/messages.js +1 -1
- package/dist/lib/webrtc/messages.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),t=require("../../../lib/webrtc/janus.js"),u=require("../../../lib/phone/trunk.js"),o=require("../../../lib/devices/devices.js"),l=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),a=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(d){var c,v,h,p,f,g,b,m,_=s.useDispatch(),S=a.useSelector(function(e){return e.currentUser}),k=a.useSelector(function(e){return e.users}),w=a.useSelector(function(e){return e.paramUrl}),j=i.store.select.mediaDevices.videoInputDevices(i.store.getState()),q=n.useRef(t.default),V=a.useSelector(function(e){return e.currentUser.conversations}),C=n.useState([]),D=C[0],y=C[1],T=n.useState(!0),U=T[0],I=T[1],x=n.useCallback(function(){var e=Object.values(V).find(function(e){return Object.keys(e).length>0});return e?Object.values(e)[0]:null},[V]),O=n.useCallback(function(e){if(_.island.toggleSideViewVisible(!1),"openUrl"===e){var n=Object.values(V).find(function(e){return Object.keys(e).length>0}),i=n?Object.values(n)[0]:null;if((null==i?void 0:i.connected)&&"in"===(null==i?void 0:i.direction)){var r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,linkedId:i.linkedId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected};l.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&_.island.setIslandView(e)},[_.island,V]),Q=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){var n;return e.__generator(this,function(e){switch(e.label){case 0:return j.length>0?[4,o.checkWebCamPermission()]:[3,2];case 1:return n=e.sent(),I(n),[2,n];case 2:return I(!1),[2,!1]}})})},[j.length]),M=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,Q()];case 1:return e.sent()&&(O("video"),i.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}})})},[Q,O]),E=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){var n,r;return e.__generator(this,function(e){switch(e.label){case 0:if(i.store.getState().screenShare.active)return O("video"),[2];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,navigator.mediaDevices.getDisplayMedia({video:!0})];case 2:return n=e.sent(),[3,4];case 3:return r=e.sent(),console.warn("Screen share not started:",r),[2];case 4:return i.store.dispatch.screenShare.update({pendingScreenStream:n,isStartingScreenShare:!0}),O("video"),[2]}})})},[O]),N=n.useMemo(function(){var e;return(null===(e=null==S?void 0:S.profile)||void 0===e?void 0:e.macro_permissions)||{}},[null===(c=null==S?void 0:S.profile)||void 0===c?void 0:c.macro_permissions]),P=n.useMemo(function(){var e,n,i,r,t,u,o,l,s;return{canRecord:(null===(i=null===(n=null===(e=null==N?void 0:N.settings)||void 0===e?void 0:e.permissions)||void 0===n?void 0:n.recording)||void 0===i?void 0:i.value)||!1,canShareScreen:"safari"!==(null===(u=null===(t=null===(r=null==q?void 0:q.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===t?void 0:t.browserDetails)||void 0===u?void 0:u.browser)&&((null===(s=null===(l=null===(o=null==N?void 0:N.nethvoice_cti)||void 0===o?void 0:o.permissions)||void 0===l?void 0:l.screen_sharing)||void 0===s?void 0:s.value)||!1),canSwitchDevice:(null==D?void 0:D.length)>0}},[null===(p=null===(h=null===(v=null==N?void 0:N.settings)||void 0===v?void 0:v.permissions)||void 0===h?void 0:h.recording)||void 0===p?void 0:p.value,null===(b=null===(g=null===(f=null==N?void 0:N.nethvoice_cti)||void 0===f?void 0:f.permissions)||void 0===g?void 0:g.screen_sharing)||void 0===b?void 0:b.value,null==D?void 0:D.length,null===(m=null==S?void 0:S.default_device)||void 0===m?void 0:m.type,d]),A=n.useMemo(function(){var e=x();if("never"===w.openParamUrlType)return!1;if(!(null==e?void 0:e.connected)||"in"!==(null==e?void 0:e.direction))return!1;if("button"===w.openParamUrlType){if(w.onlyQueues&&(null==e?void 0:e.throughQueue))return!0;if(!w.onlyQueues&&(u.isFromTrunk(e.counterpartNum)||(null==e?void 0:e.throughQueue)))return!0}return!1},[x,w.onlyQueues,w.openParamUrlType]);n.useEffect(function(){if(S&&k){var e=r.getAvailableDevices(S,k);y(e)}},[S,k]);var L=n.useCallback(function(){var e=x(),n=(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid),i=(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid);(n||i)&&(_.island.toggleSideViewVisible(!1),l.eventDispatch("phone-island-transcription-open",{linkedid:n,uniqueid:i}))},[_.island,x]),R=n.useMemo(function(){return(null==S?void 0:S.call_transcription_enabled)||!1},[null==S?void 0:S.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:S,availableDevices:D,videoInputDevices:j,isVideoCallButtonVisible:U,isUrlButtonEnabled:A,hasValidUrl:w.hasValidUrl,isTranscriptionEnabled:R},P),{goToVideoCall:M,goToScreenSharing:E,closeSideViewAndLaunchEvent:O,openTranscriptionView:L})};
|
|
2
2
|
//# sourceMappingURL=useSideViewLogic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(async () => {\n // Pick the screen before anything else: the picker opens right away and, if the\n // user cancels, the island stays on the call view with nothing to undo\n let pendingScreenStream: MediaStream\n try {\n pendingScreenStream = await navigator.mediaDevices.getDisplayMedia({ video: true })\n } catch (error) {\n console.warn('Screen share not started:', error)\n return\n }\n store.dispatch.screenShare.update({\n pendingScreenStream,\n isStartingScreenShare: true,\n })\n closeSideViewAndLaunchEvent('video')\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","navigator","getDisplayMedia","video","pendingScreenStream","console","warn","error_1","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(async () => {\n // Pick the screen before anything else: the picker opens right away and, if the\n // user cancels, the island stays on the call view with nothing to undo\n if (store.getState().screenShare.active) {\n closeSideViewAndLaunchEvent('video')\n return\n }\n let pendingScreenStream: MediaStream\n try {\n pendingScreenStream = await navigator.mediaDevices.getDisplayMedia({ video: true })\n } catch (error) {\n console.warn('Screen share not started:', error)\n return\n }\n store.dispatch.screenShare.update({\n pendingScreenStream,\n isStartingScreenShare: true,\n })\n closeSideViewAndLaunchEvent('video')\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","active","navigator","getDisplayMedia","video","pendingScreenStream","console","warn","error_1","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../lib/phone/video.js"),k=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),T=require("../../node_modules/react-redux/es/hooks/useSelector.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=C(t),x=function(){var C,x,V,N,q,R,I,_,D,P,A=k.useDispatch(),L=T.useSelector(function(e){return e.currentCall}),M=L.muted,F=L.startTime,U=L.isRecording,B=L.paused,J=L.isLocalVideoEnabled,z=L.showRemoteVideoPlaceHolder,W=L.hasVideoTrackAdded,G=L.displayName,H=L.isStartingVideoCall,O=T.useSelector(function(e){return e.screenShare}),K=O.localTracks,Q=O.localVideos,X=O.role,Y=O.active,Z=O.isStartingScreenShare,$=O.isJoiningScreenShare,ee=O.isLeavingScreenShare,te=T.useSelector(function(e){return e.listen}),re=T.useSelector(function(e){return e.island}).isOpen,ae=T.useSelector(function(e){return e.webrtc}),ne=ae.janusInstance,ie=ae.remoteAudioStream,oe=a.store.getState().currentUser,le=t.useState(!1),se=le[0],ce=le[1],ue=t.useState(!1),de=ue[0],pe=ue[1],ve=t.useRef(null),me=t.useRef(null),fe=t.useRef(!1),ge=t.useRef(!1),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(null),ke=t.useRef(p.default),Te=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect(function(){A.player.updatePlayer({localScreen:Se,remoteScreen:be,localVideo:Ee,largeRemoteVideo:we,smallRemoteVideo:ye})},[]),t.useEffect(function(){return Ie(),Ce(),addEventListener("fullscreenchange",je),function(){removeEventListener("fullscreenchange",je),ve.current&&clearTimeout(ve.current)}},[]),t.useEffect(function(){H&&(Ne(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[H]),t.useEffect(function(){Z&&(Ae(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Le(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[$]),t.useEffect(function(){ee&&(Fe(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[ee]),t.useEffect(function(){Ie(),Ce()},[re]);var Ce=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&A.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},je=function(){ce(!!document.fullscreenElement)},xe=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):he.current&&(he.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",function(){xe()}),l.useEventListener("phone-island-fullscreen-exit",function(){xe()});var Ve=function(e,t){A.screenShare.update({source:e});var r=null;null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(t){var n,i,o,l;r=t,A.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ke.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ke.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ke.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ke.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ke.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ke.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ke.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ke.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),"video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ke.current.stopAllTracks(m),void A.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ke.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ke.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ne=function(){var e,t,r,n;if(!fe.current){var i=a.store.getState().webrtc.sipcall;fe.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||A.currentCall.setVideoTrackAdded(!0)):(s.add=!0,A.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){fe.current=!1,i.send({message:{request:"update"},jsep:e}),y.notifyPeerVideoStart(),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",function(){Ne()});var qe=function(){var t,r,n,i;if(!fe.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;fe.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});ke.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){fe.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",function(){qe()});var Re=function(){null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(e){A.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),function(){var e,t;if(ke.current.isExtensionEnabled()){var r={request:"create",description:ke.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)return null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error),void Pe();var d=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;A.screenShare.update({room:p}),null===(s=(l=ke.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(ge.current)return void(null===(u=(c=ke.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));ge.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}})}else null===(t=(e=ke.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()):"listener"===t&&Me(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e),Pe()},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ke.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ke.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,T=k.plugin,C=k.role,j=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===C){null===(s=(l=ke.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen");var x=a.store.getState().screenShare.pendingScreenStream,V=null==x?void 0:x.getVideoTracks()[0];A.screenShare.update({pendingScreenStream:null}),T.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:null==V||V,recv:!1}],success:function(e){var t,r;null===(r=(t=ke.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);T.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;ge.current=!1,null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e),null==V||V.stop(),A.screenShare.update({active:!1,role:""}),De();var n=a.store.getState().screenShare.room,i=function(){return T.detach()};T.send({message:{request:"destroy",room:n},success:i,error:i})}})}else if(e.publishers){var N=e.publishers;for(var q in null===(u=(c=ke.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",N),N)if(!N[q].dummy){var R=N[q].id,I=N[q].display;null===(p=(d=ke.current).debug)||void 0===p||p.call(d," >> ["+R+"] "+I),Ve(R,I)}}}else if("event"===j)if("listener"===C&&e.publishers){N=e.publishers;for(var q in null===(m=(v=ke.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",N),N)if(!N[q].dummy){R=N[q].id,I=N[q].display;null===(g=(f=ke.current).debug)||void 0===g||g.call(f," >> ["+R+"] "+I),Ve(R,I)}}else if(e.leaving){var _=e.leaving;null===(S=(h=ke.current).log)||void 0===S||S.call(h,"Publisher left: "+_)}else e.error&&(null===(E=(b=ke.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ke.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),T.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ke.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==K?void 0:K[c])){if("video"===e.kind){A.screenShare.update({localVideos:Q+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ke.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ke.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),_e(),e.addEventListener("ended",function(){Be()}))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==K?void 0:K[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&A.screenShare.update({localVideos:Q-1});var h=null==K?void 0:K.filter(function(e){return e!==K[c]});A.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ke.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),ge.current=!1,A.screenShare.update({localTracks:{},localVideos:0})}})},Ie=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,i)},_e=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},De=function(){var e=a.store.getState().currentCall.isLocalVideoEnabled,t=a.store.getState().webrtc.remoteVideoStream,r=a.store.getState().screenShare.active,n=!!(null==t?void 0:t.getVideoTracks().some(function(e){return"live"===e.readyState&&!e.muted}));e||n||r||"video"!==a.store.getState().island.view||A.island.setIslandView("call")},Pe=function(){var e=a.store.getState().screenShare,t=e.pendingScreenStream;"publisher"===e.role&&(ke.current.stopAllTracks(t),A.screenShare.update({active:!1,role:"",pendingScreenStream:null}),De())},Ae=function(){ge.current=!1,A.screenShare.update({active:!0,role:"publisher"}),Re()};l.useEventListener("phone-island-screen-share-start",function(){Ae()});var Le=function(){A.screenShare.update({active:!0,role:"listener"}),Re(),c.eventDispatch("phone-island-screen-share-joined",{})},Me=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Fe=function(){var e=a.store.getState().screenShare.remoteScreenStream;ke.current.stopAllTracks(e),A.screenShare.update({active:!1}),De(),c.eventDispatch("phone-island-screen-share-left",{})},Ue=function(){pe(!0),ve.current&&(clearTimeout(ve.current),ve.current=null),me.current&&clearTimeout(me.current),me.current=setTimeout(function(){ve.current=setTimeout(function(){pe(!1)},3e3)},100)},Be=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream;ge.current=!1,ke.current.stopAllTracks(r),A.screenShare.update({active:!1}),t.detach();var n=a.store.getState().websocket.socket,i=a.store.getState().currentCall.username,o=a.store.getState().screenShare.room,l=a.store.getState().currentUser.username;n.emit("message",{message:"screenSharingStop",roomId:o,destUser:i,callUser:l}),c.eventDispatch("phone-island-screen-share-stopped",{}),De()};l.useEventListener("phone-island-screen-share-stop",function(){Be()});var Je=t.useState(!0),ze=Je[0],We=Je[1],Ge=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==Te?void 0:Te.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(We(!0),[2,!0]):(We(!1),[2,!1]);case 2:return We(!1),[2,!1];case 3:return[2]}})})};return j.default.createElement(j.default.Fragment,null,re?j.default.createElement("div",{ref:he,onMouseMove:function(){return Ue()},className:se?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},j.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},j.default.createElement("video",{autoPlay:!0,muted:!0,ref:be,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"listener"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"publisher"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:we,className:"pi-rounded-2xl ".concat(Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(Y||!z?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G)))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:Ee,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(J?"":"pi-hidden")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(J||!W?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(oe.name||"-")))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:ye,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(Y&&z&&W?"":"pi-hidden")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G))))),j.default.createElement("div",{className:"".concat(!de&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},j.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==te?void 0:te.isListen)&&j.default.createElement(r.Button,{variant:"default",active:!!M,onClick:function(){return M?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(M?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},M?j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==Te?void 0:Te.length)>0&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,Ge()];case 1:return e.sent()&&(J?qe():Ne()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(ze?J?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!ze,className:"".concat(ze?"":"pi-cursor-auto")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:J?i.faVideoSlash:i.faVideo})),"safari"!==ke.current.webRTCAdapter.browserDetails.browser&&(null===(q=null===(N=null===(V=null===(x=null===(C=null==oe?void 0:oe.profile)||void 0===C?void 0:C.macro_permissions)||void 0===x?void 0:x.nethvoice_cti)||void 0===V?void 0:V.permissions)||void 0===N?void 0:N.screen_sharing)||void 0===q?void 0:q.value)&&!Y&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Ae()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),Y&&"publisher"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Be()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),Y&&"listener"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return xe()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":se?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:se?i.faCompress:i.faExpand})),(null===(P=null===(D=null===(_=null===(I=null===(R=null==oe?void 0:oe.profile)||void 0===R?void 0:R.macro_permissions)||void 0===I?void 0:I.settings)||void 0===_?void 0:_.permissions)||void 0===D?void 0:D.recording)||void 0===P?void 0:P.value)&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==te?void 0:te.isIntrude)||(null==te?void 0:te.isListen))&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return B?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Be())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":B?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faPlay:i.faPause}))),j.default.createElement(u.default,{buttonsVariant:"default"})),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},j.default.createElement(v.default,null),j.default.createElement(m.default,{startTime:F,isNotAlwaysWhite:!0}),!re&&ie&&!f.isPhysical()&&j.default.createElement(g.AudioBars,{audioStream:ie,paused:B,size:re?"large":"small"}))))};exports.VideoView=x,exports.default=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../lib/phone/video.js"),k=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),T=require("../../node_modules/react-redux/es/hooks/useSelector.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=C(t),x=function(){var C,x,V,q,N,R,I,_,D,P,A=k.useDispatch(),L=T.useSelector(function(e){return e.currentCall}),M=L.muted,F=L.startTime,U=L.isRecording,B=L.paused,J=L.isLocalVideoEnabled,z=L.showRemoteVideoPlaceHolder,W=L.hasVideoTrackAdded,G=L.displayName,H=L.isStartingVideoCall,O=T.useSelector(function(e){return e.screenShare}),K=O.localTracks,Q=O.localVideos,X=O.role,Y=O.active,Z=O.isStartingScreenShare,$=O.isJoiningScreenShare,ee=O.isLeavingScreenShare,te=T.useSelector(function(e){return e.listen}),re=T.useSelector(function(e){return e.island}).isOpen,ae=T.useSelector(function(e){return e.webrtc}),ne=ae.janusInstance,ie=ae.remoteAudioStream,oe=a.store.getState().currentUser,le=t.useState(!1),se=le[0],ce=le[1],ue=t.useState(!1),de=ue[0],pe=ue[1],ve=t.useRef(null),me=t.useRef(null),fe=t.useRef(!1),ge=t.useRef(!1),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(null),ke=t.useRef(p.default),Te=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect(function(){A.player.updatePlayer({localScreen:Se,remoteScreen:be,localVideo:Ee,largeRemoteVideo:we,smallRemoteVideo:ye})},[]),t.useEffect(function(){return _e(),Ce(),addEventListener("fullscreenchange",je),function(){removeEventListener("fullscreenchange",je),xe(),ve.current&&clearTimeout(ve.current)}},[]),t.useEffect(function(){H&&(Ne(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[H]),t.useEffect(function(){Z&&(Le(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Me(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[$]),t.useEffect(function(){ee&&(Ue(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[ee]),t.useEffect(function(){_e(),Ce()},[re]);var Ce=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&A.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},je=function(){ce(!!document.fullscreenElement)},xe=function(){document.fullscreenElement&&(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{}))},Ve=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):he.current&&(he.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",function(){Ve()}),l.useEventListener("phone-island-fullscreen-exit",function(){Ve()});var qe=function(e,t){A.screenShare.update({source:e});var r=null;null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(t){var n,i,o,l;r=t,A.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ke.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ke.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ke.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ke.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ke.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ke.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ke.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ke.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),a.store.getState().screenShare.remoteFeed===r)if("video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ke.current.stopAllTracks(m),void A.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ke.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ke.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ne=function(){var e,t,r,n;if(!fe.current){var i=a.store.getState().webrtc.sipcall;fe.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||A.currentCall.setVideoTrackAdded(!0)):(s.add=!0,A.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){fe.current=!1,i.send({message:{request:"update"},jsep:e}),y.notifyPeerVideoStart(),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",function(){Ne()});var Re=function(){var t,r,n,i;if(!fe.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;fe.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});ke.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){fe.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",function(){Re()});var Ie=function(){null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(e){A.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),function(){var e,t;if(ke.current.isExtensionEnabled()){var r={request:"create",description:ke.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)return null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error),void Ae();var d=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;A.screenShare.update({room:p}),null===(s=(l=ke.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(ge.current)return void(null===(u=(c=ke.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));ge.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}})}else null===(t=(e=ke.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()):"listener"===t&&Fe(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e),Ae()},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ke.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ke.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,T=k.plugin,C=k.role,j=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===C){null===(s=(l=ke.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen");var x=a.store.getState().screenShare.pendingScreenStream,V=null==x?void 0:x.getVideoTracks()[0];A.screenShare.update({pendingScreenStream:null}),T.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:null==V||V,recv:!1}],success:function(e){var t,r;null===(r=(t=ke.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);T.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;ge.current=!1,null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e),null==V||V.stop(),A.screenShare.update({active:!1,role:""}),Pe();var n=a.store.getState().screenShare.room,i=function(){return T.detach()};T.send({message:{request:"destroy",room:n},success:i,error:i})}})}else if(e.publishers){var q=e.publishers;for(var N in null===(u=(c=ke.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",q),q)if(!q[N].dummy){var R=q[N].id,I=q[N].display;null===(p=(d=ke.current).debug)||void 0===p||p.call(d," >> ["+R+"] "+I),qe(R,I)}}}else if("event"===j)if("listener"===C&&e.publishers){q=e.publishers;for(var N in null===(m=(v=ke.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",q),q)if(!q[N].dummy){R=q[N].id,I=q[N].display;null===(g=(f=ke.current).debug)||void 0===g||g.call(f," >> ["+R+"] "+I),qe(R,I)}}else if(e.leaving){var _=e.leaving;null===(S=(h=ke.current).log)||void 0===S||S.call(h,"Publisher left: "+_)}else e.error&&(null===(E=(b=ke.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ke.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),T.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ke.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==K?void 0:K[c])){if("video"===e.kind){A.screenShare.update({localVideos:Q+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ke.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ke.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),De(),e.addEventListener("ended",function(){Je()}))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==K?void 0:K[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&A.screenShare.update({localVideos:Q-1});var h=null==K?void 0:K.filter(function(e){return e!==K[c]});A.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ke.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),ge.current=!1,A.screenShare.update({localTracks:{},localVideos:0})}})},_e=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,i)},De=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},Pe=function(){var e=a.store.getState().currentCall.isLocalVideoEnabled,t=a.store.getState().webrtc.remoteVideoStream,r=a.store.getState().screenShare.active,n=!!(null==t?void 0:t.getVideoTracks().some(function(e){return"live"===e.readyState&&!e.muted}));e||n||r||"video"!==a.store.getState().island.view||A.island.setIslandView("call")},Ae=function(){var e=a.store.getState().screenShare,t=e.pendingScreenStream;"publisher"===e.role&&(ke.current.stopAllTracks(t),A.screenShare.update({active:!1,role:"",pendingScreenStream:null}),Pe())},Le=function(){a.store.getState().screenShare.active||(ge.current=!1,A.screenShare.update({active:!0,role:"publisher"}),Ie())};l.useEventListener("phone-island-screen-share-start",function(){Le()});var Me=function(){A.screenShare.update({active:!0,role:"listener"}),Ie(),c.eventDispatch("phone-island-screen-share-joined",{})},Fe=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Ue=function(){var e=a.store.getState().screenShare,t=e.remoteScreenStream,r=e.remoteFeed,n=e.plugin,i=e.role;ke.current.stopAllTracks(t),A.screenShare.update({active:!1,remoteFeed:null}),null==r||r.detach(),"listener"===i&&(null==n||n.detach()),xe(),Pe(),c.eventDispatch("phone-island-screen-share-left",{})},Be=function(){pe(!0),ve.current&&(clearTimeout(ve.current),ve.current=null),me.current&&clearTimeout(me.current),me.current=setTimeout(function(){ve.current=setTimeout(function(){pe(!1)},3e3)},100)},Je=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream,n=e.role,i=e.active,o=e.room;if(ge.current=!1,ke.current.stopAllTracks(r),A.screenShare.update({active:!1}),"publisher"===n&&i&&t){var l=function(){return t.detach()};t.send({message:{request:"destroy",room:o},success:l,error:l})}else t.detach();var s=a.store.getState().websocket.socket,u=a.store.getState().currentCall.username,d=a.store.getState().screenShare.room,p=a.store.getState().currentUser.username;s.emit("message",{message:"screenSharingStop",roomId:d,destUser:u,callUser:p}),c.eventDispatch("phone-island-screen-share-stopped",{}),Pe()};l.useEventListener("phone-island-screen-share-stop",function(){Je()});var ze=t.useState(!0),We=ze[0],Ge=ze[1],He=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==Te?void 0:Te.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Ge(!0),[2,!0]):(Ge(!1),[2,!1]);case 2:return Ge(!1),[2,!1];case 3:return[2]}})})};return j.default.createElement(j.default.Fragment,null,re?j.default.createElement("div",{ref:he,onMouseMove:function(){return Be()},className:se?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},j.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},j.default.createElement("video",{autoPlay:!0,muted:!0,ref:be,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"listener"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"publisher"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:we,className:"pi-rounded-2xl ".concat(Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(Y||!z?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G)))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:Ee,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(J?"":"pi-hidden")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(J||!W?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(oe.name||"-")))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:ye,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(Y&&z&&W?"":"pi-hidden")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G))))),j.default.createElement("div",{className:"".concat(!de&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},j.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==te?void 0:te.isListen)&&j.default.createElement(r.Button,{variant:"default",active:!!M,onClick:function(){return M?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(M?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},M?j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==Te?void 0:Te.length)>0&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,He()];case 1:return e.sent()&&(J?Re():Ne()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(We?J?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!We,className:"".concat(We?"":"pi-cursor-auto")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:J?i.faVideoSlash:i.faVideo})),"safari"!==ke.current.webRTCAdapter.browserDetails.browser&&(null===(N=null===(q=null===(V=null===(x=null===(C=null==oe?void 0:oe.profile)||void 0===C?void 0:C.macro_permissions)||void 0===x?void 0:x.nethvoice_cti)||void 0===V?void 0:V.permissions)||void 0===q?void 0:q.screen_sharing)||void 0===N?void 0:N.value)&&!Y&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Le()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),Y&&"publisher"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Je()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),Y&&"listener"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Ve()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":se?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:se?i.faCompress:i.faExpand})),(null===(P=null===(D=null===(_=null===(I=null===(R=null==oe?void 0:oe.profile)||void 0===R?void 0:R.macro_permissions)||void 0===I?void 0:I.settings)||void 0===_?void 0:_.permissions)||void 0===D?void 0:D.recording)||void 0===P?void 0:P.value)&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==te?void 0:te.isIntrude)||(null==te?void 0:te.isListen))&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return B?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Je())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":B?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faPlay:i.faPause}))),j.default.createElement(u.default,{buttonsVariant:"default"})),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},j.default.createElement(v.default,null),j.default.createElement(m.default,{startTime:F,isNotAlwaysWhite:!0}),!re&&ie&&!f.isPhysical()&&j.default.createElement(g.AudioBars,{audioStream:ie,paused:B,size:re?"large":"small"}))))};exports.VideoView=x,exports.default=x;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|