@nethesis/phone-island 1.0.9-dev.1 → 1.0.9-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),i=require("react");require("../../../node_modules/react-redux/es/index.js");var n=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),o=require("../../../lib/webrtc/janus.js"),u=require("../../../lib/phone/trunk.js"),l=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../lib/phone/call.js"),a=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),d=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(c){var v,p,h,f,b,g,m,_,S=a.useDispatch(),j=d.useSelector((function(e){return e.currentUser})),k=d.useSelector((function(e){return e.users})),w=d.useSelector((function(e){return e.paramUrl})),q=n.store.select.mediaDevices.videoInputDevices(n.store.getState()),C=i.useRef(o.default),V=d.useSelector((function(e){return e.currentUser.conversations})),D=i.useState([]),T=D[0],U=D[1],y=i.useState(!0),I=y[0],x=y[1],O=i.useCallback((function(){var e=Object.values(V).find((function(e){return Object.keys(e).length>0}));return e?Object.values(e)[0]:null}),[V]),Q=i.useCallback((function(e){if(S.island.toggleSideViewVisible(!1),"openUrl"===e){var i=Object.values(V).find((function(e){return Object.keys(e).length>0})),n=i?Object.values(i)[0]:null;if((null==n?void 0:n.connected)&&"in"===(null==n?void 0:n.direction)){var r={counterpartNum:n.counterpartNum,counterpartName:n.counterpartName,owner:n.owner,uniqueId:n.uniqueId,linkedId:n.linkedId,throughQueue:n.throughQueue,throughTrunk:n.throughTrunk,direction:n.direction,connected:n.connected};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&S.island.setIslandView(e)}),[S.island,V]),E=i.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(e){switch(e.label){case 0:return q.length>0?[4,l.checkWebCamPermission()]:[3,2];case 1:return i=e.sent(),x(i),[2,i];case 2:return x(!1),[2,!1]}}))}))}),[q.length]),M=i.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,E()];case 1:return e.sent()&&(Q("video"),n.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[E,Q]),N=i.useCallback((function(){Q("video"),n.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[Q]),P=i.useMemo((function(){var e;return(null===(e=null==j?void 0:j.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(v=null==j?void 0:j.profile)||void 0===v?void 0:v.macro_permissions]),A=i.useMemo((function(){var e,i,n,r,o,u,l,t,a,d=O(),c=(null===(n=null===(i=null===(e=null==P?void 0:P.settings)||void 0===e?void 0:e.permissions)||void 0===i?void 0:i.recording)||void 0===n?void 0:n.value)||!1,v=s.isRecordingControlAvailable(d);return{canRecord:c&&v,canShareScreen:"safari"!==(null===(u=null===(o=null===(r=null==C?void 0:C.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===o?void 0:o.browserDetails)||void 0===u?void 0:u.browser)&&((null===(a=null===(t=null===(l=null==P?void 0:P.nethvoice_cti)||void 0===l?void 0:l.permissions)||void 0===t?void 0:t.screen_sharing)||void 0===a?void 0:a.value)||!1),canSwitchDevice:(null==T?void 0:T.length)>0}}),[null===(f=null===(h=null===(p=null==P?void 0:P.settings)||void 0===p?void 0:p.permissions)||void 0===h?void 0:h.recording)||void 0===f?void 0:f.value,null===(m=null===(g=null===(b=null==P?void 0:P.nethvoice_cti)||void 0===b?void 0:b.permissions)||void 0===g?void 0:g.screen_sharing)||void 0===m?void 0:m.value,O,V,null==T?void 0:T.length,null===(_=null==j?void 0:j.default_device)||void 0===_?void 0:_.type,c]),R=i.useMemo((function(){var e=O();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}),[O,w.onlyQueues,w.openParamUrlType]);i.useEffect((function(){if(j&&k){var e=r.getAvailableDevices(j,k);U(e)}}),[j,k]);var L=i.useCallback((function(){var e=O(),i=(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueId)||null;i&&(S.island.toggleSideViewVisible(!1),t.eventDispatch("phone-island-transcription-open",{linkedid:i,uniqueid:i}))}),[S.island,O]),B=i.useMemo((function(){return(null==j?void 0:j.call_transcription_enabled)||!1}),[null==j?void 0:j.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:j,availableDevices:T,videoInputDevices:q,isVideoCallButtonVisible:I,isUrlButtonEnabled:R,hasValidUrl:w.hasValidUrl,isTranscriptionEnabled:B},A),{goToVideoCall:M,goToScreenSharing:N,closeSideViewAndLaunchEvent:Q,openTranscriptionView:L})};
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"),u=require("../../../lib/webrtc/janus.js"),o=require("../../../lib/phone/trunk.js"),l=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../lib/phone/call.js"),a=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),d=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(c){var v,p,h,f,b,g,m,_,S=a.useDispatch(),j=d.useSelector((function(e){return e.currentUser})),k=d.useSelector((function(e){return e.users})),w=d.useSelector((function(e){return e.paramUrl})),q=i.store.select.mediaDevices.videoInputDevices(i.store.getState()),C=n.useRef(u.default),V=d.useSelector((function(e){return e.currentUser.conversations})),D=n.useState([]),T=D[0],U=D[1],y=n.useState(!0),I=y[0],x=y[1],O=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]);n.useEffect((function(){var e=O(),n="true"===(null==e?void 0:e.recording);S.currentCall.updateRecordingStatus(n)}),[V,O]);var Q=n.useCallback((function(e){if(S.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};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&S.island.setIslandView(e)}),[S.island,V]),E=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 q.length>0?[4,l.checkWebCamPermission()]:[3,2];case 1:return n=e.sent(),x(n),[2,n];case 2:return x(!1),[2,!1]}}))}))}),[q.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,E()];case 1:return e.sent()&&(Q("video"),i.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[E,Q]),N=n.useCallback((function(){Q("video"),i.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[Q]),P=n.useMemo((function(){var e;return(null===(e=null==j?void 0:j.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(v=null==j?void 0:j.profile)||void 0===v?void 0:v.macro_permissions]),R=n.useMemo((function(){var e,n,i,r,u,o,l,t,a,d=O(),c=(null===(i=null===(n=null===(e=null==P?void 0:P.settings)||void 0===e?void 0:e.permissions)||void 0===n?void 0:n.recording)||void 0===i?void 0:i.value)||!1,v=s.isRecordingControlAvailable(d);return{canRecord:c&&v,canShareScreen:"safari"!==(null===(o=null===(u=null===(r=null==C?void 0:C.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===u?void 0:u.browserDetails)||void 0===o?void 0:o.browser)&&((null===(a=null===(t=null===(l=null==P?void 0:P.nethvoice_cti)||void 0===l?void 0:l.permissions)||void 0===t?void 0:t.screen_sharing)||void 0===a?void 0:a.value)||!1),canSwitchDevice:(null==T?void 0:T.length)>0}}),[null===(f=null===(h=null===(p=null==P?void 0:P.settings)||void 0===p?void 0:p.permissions)||void 0===h?void 0:h.recording)||void 0===f?void 0:f.value,null===(m=null===(g=null===(b=null==P?void 0:P.nethvoice_cti)||void 0===b?void 0:b.permissions)||void 0===g?void 0:g.screen_sharing)||void 0===m?void 0:m.value,O,V,null==T?void 0:T.length,null===(_=null==j?void 0:j.default_device)||void 0===_?void 0:_.type,c]),A=n.useMemo((function(){var e=O();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&&(o.isFromTrunk(e.counterpartNum)||(null==e?void 0:e.throughQueue)))return!0}return!1}),[O,w.onlyQueues,w.openParamUrlType]);n.useEffect((function(){if(j&&k){var e=r.getAvailableDevices(j,k);U(e)}}),[j,k]);var L=n.useCallback((function(){var e=O(),n=(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueId)||null;n&&(S.island.toggleSideViewVisible(!1),t.eventDispatch("phone-island-transcription-open",{linkedid:n,uniqueid:n}))}),[S.island,O]),B=n.useMemo((function(){return(null==j?void 0:j.call_transcription_enabled)||!1}),[null==j?void 0:j.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:j,availableDevices:T,videoInputDevices:q,isVideoCallButtonVisible:I,isUrlButtonEnabled:A,hasValidUrl:w.hasValidUrl,isTranscriptionEnabled:B},R),{goToVideoCall:M,goToScreenSharing:N,closeSideViewAndLaunchEvent:Q,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'\nimport { isRecordingControlAvailable } from '../../../lib/phone/call'\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(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(() => {\n const activeConversation = getActiveConversationData()\n const recordingPermission = permissions?.settings?.permissions?.recording?.value || false\n const recordingControlAvailable = isRecordingControlAvailable(activeConversation)\n const canRecord = recordingPermission && recordingControlAvailable\n\n return {\n canRecord,\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 getActiveConversationData,\n conversations,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\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 transcriptionId = conversationData?.linkedId || conversationData?.uniqueId || null\n\n if (!transcriptionId) {\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: transcriptionId,\n uniqueid: transcriptionId,\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","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","recordingPermission","_c","settings","_b","recording","value","recordingControlAvailable","isRecordingControlAvailable","canRecord","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","transcriptionId","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'\nimport { isRecordingControlAvailable } from '../../../lib/phone/call'\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 // Sync isRecording with the active conversation's recording field so that\n // auto-recording (started by the dialplan) is reflected visually.\n useEffect(() => {\n const activeConversation = getActiveConversationData()\n const conversationRecording = activeConversation?.recording === 'true'\n dispatch.currentCall.updateRecordingStatus(conversationRecording)\n }, [conversations, getActiveConversationData])\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(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(() => {\n const activeConversation = getActiveConversationData()\n const recordingPermission = permissions?.settings?.permissions?.recording?.value || false\n const recordingControlAvailable = isRecordingControlAvailable(activeConversation)\n const canRecord = recordingPermission && recordingControlAvailable\n\n return {\n canRecord,\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 getActiveConversationData,\n conversations,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\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 transcriptionId = conversationData?.linkedId || conversationData?.uniqueId || null\n\n if (!transcriptionId) {\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: transcriptionId,\n uniqueid: transcriptionId,\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","useEffect","conversationRecording","recording","currentCall","updateRecordingStatus","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","recordingPermission","_c","settings","_b","value","recordingControlAvailable","isRecordingControlAvailable","canRecord","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","devices","getAvailableDevices","openTranscriptionView","transcriptionId","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="@nethesis/phone-island",s="Nethesis",t="1.0.9-dev.1",i="NethVoice CTI Phone Island",r=["nethserver","nethesis","nethvoice","phone","island"],o="https://github.com/nethesis/phone-island#readme",n="https://github.com/nethesis/dev/issues",p={type:"git",url:"https://github.com/nethesis/phone-island.git"},l=["dist"],d="dist/index.js",a="dist/index.d.ts",c={access:"public"},m={main:!1,types:!1,default:{distDir:"./dist-widget"}},u={"@fortawesome/fontawesome-svg-core":"6.7.2","@fortawesome/free-solid-svg-icons":"6.7.2","@fortawesome/react-fontawesome":"0.2.6","@headlessui/react":"^2.2.8","@nethesis/nethesis-solid-svg-icons":"github:nethesis/Font-Awesome#ns-solid","@rematch/core":"^2.2.0","@rematch/immer":"^2.1.3","@rematch/select":"^3.1.2","@testing-library/jest-dom":"^5.11.4","@testing-library/user-event":"^12.1.10","framer-motion":"^12.0.0",i18next:"^22.4.9","i18next-browser-languagedetector":"^7.0.1","js-base64":"^3.7.3",lodash:"^4.17.21","mic-check":"^1.1.0",react:"^18.2.0","react-dom":"^18.2.0","react-i18next":"^12.1.5","react-moment":"^1.1.2","react-redux":"^8.0.5","react-tooltip":"^5.28.0","socket.io-client":"^4.5.3","styled-components":"^5.3.6","webrtc-adapter":"^9.0.1"},h={start:"npm run dev",dev:"node scripts/generate-dev-host.js && parcel .dev/phone-island-dev.html --port 6006 --open",test:"tsc --noEmit",watch:"rollup -w -c","watch:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 npx tailwindcss -o ./dist/index.css --watch",build:"rm -rf ./dist && npm run build:css && rollup -c","build:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:win":"del /s /q dist && npm run build:wincss && rollup -c --configPlugin typescript","build:wincss":"set BROWSERSLIST_IGNORE_OLD_DATA=1 && set NODE_ENV=production && npx tailwindcss -o ./dist/index.css --minify","build:widget":"rm -rf ./dist-widget && parcel build ./src/index.widget.tsx --no-source-maps","serve:widget":"rm -rf ./widget-example/static/* && cp -rf ./dist-widget/* ./widget-example/static && npx http-server ./widget-example -o -c-1",release:"npm publish","release:widget":"node check-publish.js patch && npm version patch -m v%s",format:"prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",bump:"node bump-version.js","build-pack":"npm run bump && npm run build && npm pack","build-pack:win":"npm run bump && npm run build:win && npm pack","publish:minor":"node check-publish.js minor && npm version minor --allow-same-version -m v%s --force","publish:major":"node check-publish.js major && npm version major --allow-same-version -m v%s --force","publish:patch":"node check-publish.js patch && npm version patch --allow-same-version -m v%s --force","publish:dev":"node publish-dev.js",preversion:"rm -rf dist-widget && npm run build:widget && git add dist-widget/index.widget.js dist-widget/index.widget.css && git commit -m 'chore(widget): release for jsDelivr'",postversion:"git push origin main --tags","revert-bump":"node revert-bump.js"},b={production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]},g={"@babel/core":"^7.20.2","@babel/preset-env":"^7.20.2","@parcel/transformer-typescript-types":"^2.8.0","@rollup/plugin-babel":"^6.0.2","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^9.0.2","@testing-library/react":"^13.4.0","@types/audioworklet":"^0.0.100","@types/jest":"^29.2.2","@types/react":"^18.0.26","@types/react-dom":"^18.0.9","@types/styled-components":"^5.1.26",babel:"^6.23.0",buffer:"^5.7.1",parcel:"^2.0.0",postcss:"^8.4.49",prettier:"^2.8.0","prop-types":"^15.8.1",rollup:"^2.79.1","rollup-plugin-generate-package-json":"^3.2.0","rollup-plugin-postcss":"^4.0.2","tailwind-scrollbar":"^3.1.0",tailwindcss:"^3.4.16",typescript:"^4.8.4","webm-duration-fix":"^1.0.4",webpack:"^5.74.0"},v={"@tootallnate/once":"^3.0.0",esbuild:"^0.25.11","nth-check":"^2.0.1","serialize-javascript":"^7.0.0",tar:"^7.5.1"},w="GPL-3.0-or-later",x={name:e,author:s,version:t,description:i,keywords:r,homepage:o,bugs:n,repository:p,private:!1,files:l,main:d,types:a,publishConfig:c,targets:m,dependencies:u,scripts:h,browserslist:b,devDependencies:g,overrides:v,license:w};exports.author=s,exports.browserslist=b,exports.bugs=n,exports.default=x,exports.dependencies=u,exports.description=i,exports.devDependencies=g,exports.files=l,exports.homepage=o,exports.keywords=r,exports.license=w,exports.main=d,exports.name=e,exports.overrides=v,exports.publishConfig=c,exports.repository=p,exports.scripts=h,exports.targets=m,exports.types=a,exports.version=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="@nethesis/phone-island",s="Nethesis",t="1.0.9-dev.3",i="NethVoice CTI Phone Island",r=["nethserver","nethesis","nethvoice","phone","island"],o="https://github.com/nethesis/phone-island#readme",n="https://github.com/nethesis/dev/issues",p={type:"git",url:"https://github.com/nethesis/phone-island.git"},l=["dist"],d="dist/index.js",a="dist/index.d.ts",c={access:"public"},m={main:!1,types:!1,default:{distDir:"./dist-widget"}},u={"@fortawesome/fontawesome-svg-core":"6.7.2","@fortawesome/free-solid-svg-icons":"6.7.2","@fortawesome/react-fontawesome":"0.2.6","@headlessui/react":"^2.2.8","@nethesis/nethesis-solid-svg-icons":"github:nethesis/Font-Awesome#ns-solid","@rematch/core":"^2.2.0","@rematch/immer":"^2.1.3","@rematch/select":"^3.1.2","@testing-library/jest-dom":"^5.11.4","@testing-library/user-event":"^12.1.10","framer-motion":"^12.0.0",i18next:"^22.4.9","i18next-browser-languagedetector":"^7.0.1","js-base64":"^3.7.3",lodash:"^4.17.21","mic-check":"^1.1.0",react:"^18.2.0","react-dom":"^18.2.0","react-i18next":"^12.1.5","react-moment":"^1.1.2","react-redux":"^8.0.5","react-tooltip":"^5.28.0","socket.io-client":"^4.5.3","styled-components":"^5.3.6","webrtc-adapter":"^9.0.1"},h={start:"npm run dev",dev:"node scripts/generate-dev-host.js && parcel .dev/phone-island-dev.html --port 6006 --open",test:"tsc --noEmit",watch:"rollup -w -c","watch:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 npx tailwindcss -o ./dist/index.css --watch",build:"rm -rf ./dist && npm run build:css && rollup -c","build:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:win":"del /s /q dist && npm run build:wincss && rollup -c --configPlugin typescript","build:wincss":"set BROWSERSLIST_IGNORE_OLD_DATA=1 && set NODE_ENV=production && npx tailwindcss -o ./dist/index.css --minify","build:widget":"rm -rf ./dist-widget && parcel build ./src/index.widget.tsx --no-source-maps","serve:widget":"rm -rf ./widget-example/static/* && cp -rf ./dist-widget/* ./widget-example/static && npx http-server ./widget-example -o -c-1",release:"npm publish","release:widget":"node check-publish.js patch && npm version patch -m v%s",format:"prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",bump:"node bump-version.js","build-pack":"npm run bump && npm run build && npm pack","build-pack:win":"npm run bump && npm run build:win && npm pack","publish:minor":"node check-publish.js minor && npm version minor --allow-same-version -m v%s --force","publish:major":"node check-publish.js major && npm version major --allow-same-version -m v%s --force","publish:patch":"node check-publish.js patch && npm version patch --allow-same-version -m v%s --force","publish:dev":"node publish-dev.js",preversion:"rm -rf dist-widget && npm run build:widget && git add dist-widget/index.widget.js dist-widget/index.widget.css && git commit -m 'chore(widget): release for jsDelivr'",postversion:"git push origin main --tags","revert-bump":"node revert-bump.js"},b={production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]},g={"@babel/core":"^7.20.2","@babel/preset-env":"^7.20.2","@parcel/transformer-typescript-types":"^2.8.0","@rollup/plugin-babel":"^6.0.2","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^9.0.2","@testing-library/react":"^13.4.0","@types/audioworklet":"^0.0.100","@types/jest":"^29.2.2","@types/react":"^18.0.26","@types/react-dom":"^18.0.9","@types/styled-components":"^5.1.26",babel:"^6.23.0",buffer:"^5.7.1",parcel:"^2.0.0",postcss:"^8.4.49",prettier:"^2.8.0","prop-types":"^15.8.1",rollup:"^2.79.1","rollup-plugin-generate-package-json":"^3.2.0","rollup-plugin-postcss":"^4.0.2","tailwind-scrollbar":"^3.1.0",tailwindcss:"^3.4.16",typescript:"^4.8.4","webm-duration-fix":"^1.0.4",webpack:"^5.74.0"},v={"@tootallnate/once":"^3.0.0",esbuild:"^0.25.11","nth-check":"^2.0.1","serialize-javascript":"^7.0.0",tar:"^7.5.1"},w="GPL-3.0-or-later",x={name:e,author:s,version:t,description:i,keywords:r,homepage:o,bugs:n,repository:p,private:!1,files:l,main:d,types:a,publishConfig:c,targets:m,dependencies:u,scripts:h,browserslist:b,devDependencies:g,overrides:v,license:w};exports.author=s,exports.browserslist=b,exports.bugs=n,exports.default=x,exports.dependencies=u,exports.description=i,exports.devDependencies=g,exports.files=l,exports.homepage=o,exports.keywords=r,exports.license=w,exports.main=d,exports.name=e,exports.overrides=v,exports.publishConfig=c,exports.repository=p,exports.scripts=h,exports.targets=m,exports.types=a,exports.version=t;
2
2
  //# sourceMappingURL=package.json.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nethesis/phone-island",
3
3
  "author": "Nethesis",
4
- "version": "1.0.9-dev.1",
4
+ "version": "1.0.9-dev.3",
5
5
  "description": "NethVoice CTI Phone Island",
6
6
  "keywords": [
7
7
  "nethserver",