UNPKG

@nethesis/phone-island

Version:
3 lines (2 loc) 28.9 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("./components/Events.js"),i=require("./components/Socket.js"),s=require("./components/WebRTC.js"),r=require("./components/Island.js"),a=require("./components/RestAPI.js"),o=require("./utils/customHooks/useEventListener.js"),u=require("./utils/genericFunctions/eventDispatch.js"),c=require("./utils/genericFunctions/localStorage.js"),d=require("./utils/genericFunctions/summaryEvents.js"),l=require("./store/index.js"),p=require("./services/user.js");require("./node_modules/react-redux/es/index.js"),require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/i18next/dist/esm/i18next.js"),require("./node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),require("./components/TranscriptionView/TranscriptionView.js");var v=require("./node_modules/js-base64/base64.mjs.js"),h=require("./workers/wake_up.js"),f=require("./lib/i18n.js"),g=require("./lib/webrtc/messages.js"),m=require("./lib/darkTheme.js"),w=require("./utils/genericFunctions/isEmpty.js"),b=require("./utils/genericFunctions/checkConnection.js"),I=require("./utils/genericFunctions/isBackCallVisible.js"),S=require("./lib/phone/trunk.js"),E=require("./lib/phone/call.js"),y=require("./node_modules/react-redux/es/components/Provider.js");function D(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("./node_modules/react-redux/node_modules/react-is/index.js");var k=D(t);if("undefined"!=typeof window&&window.location.hostname.includes(".support.my.")){var _=window.fetch;window.fetch=function(t,n){return _(t,e.__assign({credentials:"include"},n))}}var L=t.forwardRef((function(D,_){var L=D.dataConfig,U=D.showAlways,T=void 0!==U&&U,q=D.uaType,j=D.urlParamWithEvent,C=void 0!==j&&j,N=v.Base64.atob(L||"").split(":"),R=N[0],A=N[1],O=N[2],P=N[3],V=N[4],x=N[5],J=N[6],F=t.useState(!1),W=F[0],M=F[1],Q=t.useState(!1),z=Q[0],H=Q[1],$=t.useState(!1),B=$[0],G=$[1],K=t.useRef(0),X=t.useRef(null),Y=t.useRef(null);t.useImperativeHandle(_,(function(){return{reset:function(){console.info("PhoneIsland: Performing full component reset"),M(!0)}}}),[]),t.useEffect((function(){var e=Date.now(),t=function(){if(!document.hidden){var t=Date.now(),n=t-e;setTimeout((function(){u.eventDispatch("phone-island-emergency-stop-ringtone",{})}),2e3),n>3e5&&(console.info("Tab inactive for long period, performing soft reconnection"),M(!0)),e=t}},n=new Worker(h.default,{type:"module"});return n.onmessage=function(t){"ping"===t.data&&(e=Date.now())},document.addEventListener("visibilitychange",t),function(){n.terminate(),document.removeEventListener("visibilitychange",t)}}),[]),t.useEffect((function(){B&&z&&(M(!1),H(!1),G(!1))}),[B,z]),t.useEffect((function(){var e=setInterval((function(){var e,t,n,i,s=l.store.getState().alerts.data,r=(null===(e=s.webrtc_down)||void 0===e?void 0:e.active)||!1,a=(null===(t=s.socket_down)||void 0===t?void 0:t.active)||!1,o=Date.now(),u=o-K.current,c=l.store.getState().webrtc.sipcall,d=l.store.getState().currentCall,p=d.accepted,v=d.outgoing,h=null===(i=null===(n=null==c?void 0:c.webrtcStuff)||void 0===n?void 0:n.pc)||void 0===i?void 0:i.iceConnectionState,f=p||v||"connected"===h||"completed"===h,g=navigator.onLine;if((r||a)&&!W&&u>1e4&&g){if(f)return void console.info("Alert detected but active call in progress - skipping automatic reload to let ICE recover",{timeSinceLastReload:Math.round(u/1e3)+"s",isWebRTCDown:r,isSocketDown:a,iceState:h,accepted:p,outgoing:v});console.info("Alert detected (webrtc_down or socket_down), triggering automatic reload",{timeSinceLastReload:Math.round(u/1e3)+"s",isWebRTCDown:r,isSocketDown:a}),K.current=o,M(!0)}}),1e3);return function(){return clearInterval(e)}}),[W]),o.useEventListener("phone-island-expand",(function(){l.store.dispatch.island.toggleIsOpen(!0),u.eventDispatch("phone-island-expanded",{})})),o.useEventListener("phone-island-compress",(function(){l.store.dispatch.island.toggleIsOpen(!1),u.eventDispatch("phone-island-compressed",{})})),o.useEventListener("phone-island-call-keypad-close",(function(){l.store.dispatch.island.setIslandView("call"),u.eventDispatch("phone-island-call-keypad-closed",{})})),o.useEventListener("phone-island-call-transfer-close",(function(){l.store.dispatch.island.setIslandView("call"),u.eventDispatch("phone-island-call-transfer-closed",{})})),o.useEventListener("phone-island-recording-close",(function(){l.store.dispatch.island.setIslandView(null),u.eventDispatch("phone-island-recording-closed",{})})),o.useEventListener("phone-island-audio-player-close",(function(){l.store.dispatch.island.setIslandView(null),u.eventDispatch("phone-island-audio-player-closed",{})})),o.useEventListener("phone-island-emergency-stop-ringtone",(function(){null===l.store.getState().island.view?(console.warn("Emergency stop ringtone triggered - phone island inactive"),l.store.dispatch.player.emergencyStopAudioPlayer(),u.eventDispatch("phone-island-emergency-stop-ringtone-completed",{})):console.log("Phone island is active, ringtone stop ignored")})),o.useEventListener("phone-island-detach",(function(e){g.detach(),l.store.dispatch.webrtc.updateWebRTC({sipcall:null,registered:!1,isDetached:!0,jsepGlobal:null}),l.store.dispatch.webrtc.updateRemoteAudioStream(null),l.store.dispatch.webrtc.updateLocalAudioStream(null),l.store.dispatch.webrtc.updateLocalVideoStream(null),l.store.dispatch.webrtc.updateRemoteVideoStream(null),u.eventDispatch("phone-island-detached",{})})),o.useEventListener("phone-island-reload-component",(function(e){(null==e?void 0:e.force)&&l.store.dispatch.island.setForceReload(!0),M(!0)})),o.useEventListener("phone-island-audio-input-change",(function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n;return e.__generator(this,(function(e){switch(e.label){case 0:return(n=t.deviceId)&&"default"!==n?[4,ce(n)]:[3,3];case 1:return e.sent()?[3,3]:(console.warn("Audio input device ".concat(n," not available, falling back to default device")),[4,de()]);case 2:n=e.sent(),e.label=3;case 3:return c.setJSONItem("phone-island-audio-input-device",{deviceId:n}),u.eventDispatch("phone-island-audio-input-changed",{}),n!==t.deviceId&&console.info("Audio input device changed from ".concat(t.deviceId," to ").concat(n," (fallback)")),[2]}}))}))})),o.useEventListener("phone-island-video-input-change",(function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n;return e.__generator(this,(function(e){switch(e.label){case 0:return(n=t.deviceId)&&"default"!==n?[4,le(n)]:[3,3];case 1:return e.sent()?[3,3]:(console.warn("Video input device ".concat(n," not available, falling back to default device")),[4,pe()]);case 2:n=e.sent(),e.label=3;case 3:return c.setJSONItem("phone-island-video-input-device",{deviceId:n}),u.eventDispatch("phone-island-video-input-changed",{}),n!==t.deviceId&&console.info("Video input device changed from ".concat(t.deviceId," to ").concat(n," (fallback)")),[2]}}))}))}));var Z=t.useState(!0),ee=Z[0],te=Z[1],ne=t.useState(!0),ie=ne[0],se=ne[1],re=t.useState(!1),ae=re[0],oe=re[1],ue=t.useSyncExternalStore(l.store.subscribe,(function(){return l.store.getState().fetchDefaults.fetchReady||!1}));t.useEffect((function(){ee&&(f.initI18n(),te(!1))}),[ee]),t.useEffect((function(){ue&&!ae&&(oe(!0),e.__awaiter(void 0,void 0,void 0,(function(){var t,n,i,s;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,p.getParamUrl()];case 1:return t=e.sent(),n=(null==t?void 0:t.url)||"",i=n&&""!==n.trim(),l.store.dispatch.paramUrl.setParamUrl({url:n,onlyQueues:(null==t?void 0:t.only_queues)||!1,hasValidUrl:i}),[3,3];case 2:return s=e.sent(),console.warn("Non-blocking param URL fetch failed:",s),l.store.dispatch.paramUrl.setParamUrl({url:"",onlyQueues:!1,hasValidUrl:!1}),[3,3];case 3:return[2]}}))})))}),[ue,ae]);var ce=function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n,i;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,!1];case 1:return n=e.sent(),[2,n.filter((function(e){return"audioinput"===e.kind})).some((function(e){return e.deviceId===t}))];case 2:return i=e.sent(),console.warn("Error checking audio input device availability:",i),[2,!1];case 3:return[2]}}))}))},de=function(){return e.__awaiter(void 0,void 0,void 0,(function(){var t,n,i,s;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,"default"];case 1:return t=e.sent(),n=t.filter((function(e){return"audioinput"===e.kind})),[2,(i=n.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||n[0])?i.deviceId:"default"];case 2:return s=e.sent(),console.warn("Error getting default audio input device:",s),[2,"default"];case 3:return[2]}}))}))},le=function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n,i;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,!1];case 1:return n=e.sent(),[2,n.filter((function(e){return"videoinput"===e.kind})).some((function(e){return e.deviceId===t}))];case 2:return i=e.sent(),console.warn("Error checking video input device availability:",i),[2,!1];case 3:return[2]}}))}))},pe=function(){return e.__awaiter(void 0,void 0,void 0,(function(){var t,n,i,s;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,"default"];case 1:return t=e.sent(),n=t.filter((function(e){return"videoinput"===e.kind})),[2,(i=n.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||n[0])?i.deviceId:"default"];case 2:return s=e.sent(),console.warn("Error getting default video input device:",s),[2,"default"];case 3:return[2]}}))}))};o.useEventListener("phone-island-audio-output-change",(function(t){e.__awaiter(void 0,void 0,void 0,(function(){var n,i,s,r,a,o,d,p,v;return e.__generator(this,(function(h){switch(h.label){case 0:return(null==(n=l.store.getState().player.remoteAudio)?void 0:n.current)?(i=t.deviceId)&&"default"!==i?[4,(f=i,e.__awaiter(void 0,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,!1];case 1:return[2,e.sent().filter((function(e){return"audiooutput"===e.kind})).some((function(e){return e.deviceId===f}))];case 2:return t=e.sent(),console.warn("Error checking device availability:",t),[2,!1];case 3:return[2]}}))})))]:[3,3]:(console.warn("Remote audio element not available"),[2]);case 1:return h.sent()?[3,3]:(console.warn("Audio output device ".concat(i," not available, falling back to default device")),[4,e.__awaiter(void 0,void 0,void 0,(function(){var t,n,i,s;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?[4,navigator.mediaDevices.enumerateDevices()]:[2,"default"];case 1:return t=e.sent(),n=t.filter((function(e){return"audiooutput"===e.kind})),[2,(i=n.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||n[0])?i.deviceId:"default"];case 2:return s=e.sent(),console.warn("Error getting default device:",s),[2,"default"];case 3:return[2]}}))}))]);case 2:i=h.sent(),c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),h.label=3;case 3:return h.trys.push([3,5,,15]),[4,n.current.setSinkId(i)];case 4:return h.sent(),console.info("Default audio output device changed successfully!"),c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),u.eventDispatch("phone-island-audio-output-changed",{}),[3,15];case 5:s=h.sent(),console.log("Direct setSinkId failed, trying with temporary stream:",s),h.label=6;case 6:return h.trys.push([6,7,,14]),r=new(window.AudioContext||window.webkitAudioContext),a=r.createOscillator(),o=r.createGain(),a.frequency.setValueAtTime(440,r.currentTime),o.gain.setValueAtTime(0,r.currentTime),a.connect(o),d=r.createMediaStreamDestination(),o.connect(d),n.current.srcObject=d.stream,a.start(),setTimeout((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var t,s;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,7]),[4,n.current.setSinkId(i)];case 1:return e.sent(),console.info("Default audio output device changed successfully with temporary stream!"),a.stop(),r.close(),n.current.srcObject=null,c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),u.eventDispatch("phone-island-audio-output-changed",{}),[3,7];case 2:if(t=e.sent(),console.error("Final setSinkId attempt failed:",t),a.stop(),r.close(),n.current.srcObject=null,"default"===i)return[3,6];console.log("Trying fallback to default device"),e.label=3;case 3:return e.trys.push([3,5,,6]),[4,n.current.setSinkId("default")];case 4:return e.sent(),c.setJSONItem("phone-island-audio-output-device",{deviceId:"default"}),console.info("Fallback to default audio device successful"),[3,6];case 5:return s=e.sent(),console.error("Even default device failed:",s),[3,6];case 6:return c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),u.eventDispatch("phone-island-audio-output-changed",{}),[3,7];case 7:return[2]}}))}))}),100),[3,14];case 7:if(p=h.sent(),console.error("Failed to create temporary audio stream:",p),"default"===i)return[3,12];h.label=8;case 8:return h.trys.push([8,10,,11]),[4,n.current.setSinkId("default")];case 9:return h.sent(),c.setJSONItem("phone-island-audio-output-device",{deviceId:"default"}),console.info("Emergency fallback to default audio device successful"),[3,11];case 10:return v=h.sent(),console.error("Emergency fallback to default device failed:",v),c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),[3,11];case 11:return[3,13];case 12:c.setJSONItem("phone-island-audio-output-device",{deviceId:i}),h.label=13;case 13:return u.eventDispatch("phone-island-audio-output-changed",{}),[3,14];case 14:return[3,15];case 15:return[2]}var f}))}))})),o.useEventListener("phone-island-presence-change",(function(e){p.changeOperatorStatus(e),u.eventDispatch("phone-island-presence-changed",{})})),o.useEventListener("phone-island-view-changed",(function(e){var t=null==e?void 0:e.viewType;l.store.dispatch.island.setIslandView(t)}));var ve=l.store.getState().player.remoteAudio;t.useEffect((function(){var e;if(ie&&ve){var t=null===(e=c.getJSONItem("phone-island-audio-output-device"))||void 0===e?void 0:e.deviceId;u.eventDispatch("phone-island-audio-output-change",{deviceId:t}),se(!1)}}),[ie,ve]),t.useEffect((function(){m.checkDarkTheme()}),[]),o.useEventListener("phone-island-theme-change",(function(e){m.setTheme(null==e?void 0:e.selectedTheme)})),o.useEventListener("phone-island-default-device-change",(function(e){l.store.dispatch.currentUser.updateCurrentDefaultDevice(null==e?void 0:e.deviceInformationObject),u.eventDispatch("phone-island-default-device-changed",{})})),o.useEventListener("phone-island-alert",(function(e){l.store.dispatch.alerts.setAlert(e.toString())})),o.useEventListener("phone-island-ringing-tone-list",(function(){var e=l.store.getState().ringtones.availableRingtones.map((function(e){return{name:e.name,displayName:e.displayName,base64Audio:e.base64Audio}}));u.eventDispatch("phone-island-ringing-tone-list-response",{ringtones:e})})),o.useEventListener("phone-island-ringing-tone-select",(function(e){(null==e?void 0:e.name)&&(c.setJSONItem("phone-island-selected-ringtone",{value:e.name}),l.store.dispatch.ringtones.setSelectedRingtone(e.name),u.eventDispatch("phone-island-ringing-tone-selected",{name:e.name}))})),o.useEventListener("phone-island-ringing-tone-output",(function(e){(null==e?void 0:e.deviceId)&&(c.setJSONItem("phone-island-ringtone-output-device",{value:e.deviceId}),l.store.dispatch.ringtones.setOutputDeviceId(e.deviceId),u.eventDispatch("phone-island-ringing-tone-output-changed",{deviceId:e.deviceId}))})),t.useEffect((function(){var e=c.getJSONItem("phone-island-selected-ringtone"),t=c.getJSONItem("phone-island-ringtone-output-device");(null==e?void 0:e.value)&&l.store.dispatch.ringtones.setSelectedRingtone(e.value),(null==t?void 0:t.value)&&l.store.dispatch.ringtones.setOutputDeviceId(t.value)}),[]),o.useEventListener("phone-island-check-connection",(function(){b.checkInternetConnection().then((function(e){e?u.eventDispatch("phone-island-internet-connected",{}):u.eventDispatch("phone-island-internet-disconnected",{})}))})),t.useEffect((function(){var e=setInterval((function(){b.checkInternetConnection().then((function(e){e?u.eventDispatch("phone-island-internet-connected",{}):u.eventDispatch("phone-island-internet-disconnected",{})}))}),5e3);return function(){return clearInterval(e)}}),[]),o.useEventListener("phone-island-main-presence",(function(e){var t,n,i,s,r=null===(t=l.store.getState().currentUser)||void 0===t?void 0:t.username,a=l.store.getState().currentUser,o=null==a?void 0:a.mainPresence;if(void 0!==r&&""!==r&&!w.isEmpty(e[r])&&void 0!==(null===(n=e[r])||void 0===n?void 0:n.mainPresence)){var c=null===(i=e[r])||void 0===i?void 0:i.mainPresence;l.store.dispatch.currentUser.updateMainPresence(null===(s=e[r])||void 0===s?void 0:s.mainPresence),"online"===c&&"online"!==o&&u.eventDispatch("phone-island-call-ended",{})}})),o.useEventListener("phone-island-call-status",(function(){var e=l.store.getState().currentCall;console.log("Call status debug informations: ",e)}));var he=function(e,t,n,i,s){var r=l.store.getState().paramUrl;if(null==r?void 0:r.hasValidUrl){var a=r.url||"";if(a){var o=l.store.getState().island.urlOpened,c=r.openParamUrlType;if(!o||"button"===c){var d=a;d.includes("$CALLER_NUMBER")&&e&&(d=d.replace(/\$CALLER_NUMBER/g,encodeURIComponent(e))),d.includes("$CALLER_NAME")&&t&&(d=d.replace(/\$CALLER_NAME/g,encodeURIComponent(t))),d.includes("$UNIQUEID")&&i&&(d=d.replace(/\$UNIQUEID/g,encodeURIComponent(i))),d.includes("$CALLED")&&n&&(d=d.replace(/\$CALLED/g,encodeURIComponent(n))),d.includes("{phone}")&&e&&(d=d.replace(/\{phone\}/g,encodeURIComponent(e)));var p=d.startsWith("http")?d:"https://".concat(d);if("mobile"!==q&&!C&&s){var v=window.open("about:blank","_blank");v&&(v.location.href=p,l.store.dispatch.island.setUrlOpened(!0))}else u.eventDispatch("phone-island-url-parameter-opened-external",{formattedUrl:p})}}}};return o.useEventListener("phone-island-already-opened-external-page",(function(){l.store.dispatch.island.setUrlOpened(!0)})),o.useEventListener("phone-island-url-parameter-opened",(function(e){var t=l.store.getState().paramUrl;if(t.hasValidUrl&&!l.store.getState().island.urlOpened){var n=t.onlyQueues||!1,i=S.isFromTrunk(null==e?void 0:e.counterpartNum);l.store.dispatch.paramUrl.setThroughTrunk(i);var s=l.store.getState().currentUser.default_device,r=!("desktop"===q&&"nethlink"===(null==s?void 0:s.type));"in"===(null==e?void 0:e.direction)&&(!0===n&&!0===(null==e?void 0:e.throughQueue)?he(null==e?void 0:e.counterpartNum,null==e?void 0:e.counterpartName,null==e?void 0:e.owner,null==e?void 0:e.linkedId,r):!1!==n||!0!==i&&!0!==(null==e?void 0:e.throughQueue)||he(null==e?void 0:e.counterpartNum,null==e?void 0:e.counterpartName,null==e?void 0:e.owner,null==e?void 0:e.linkedId,r))}})),o.useEventListener("phone-island-user-status",(function(){var e=l.store.getState().currentUser;console.log("User status debug informations: ",e)})),o.useEventListener("phone-island-all-users-status",(function(){var e=l.store.getState().users;console.log("Users status debug informations: ",e)})),o.useEventListener("phone-island-status",(function(){var e=l.store.getState().island;console.log("Phone island status debug informations: ",e)})),o.useEventListener("phone-island-webrtc-status",(function(){var e=l.store.getState().webrtc;console.log("Webrtc status debug informations: ",e)})),o.useEventListener("phone-island-player-status",(function(){var e=l.store.getState().player;console.log("Player status debug informations: ",e)})),o.useEventListener("phone-island-conference-status",(function(){var e=l.store.getState().conference;console.log("Webrtc status debug informations: ",e)})),o.useEventListener("phone-island-streaming-status",(function(){var e=l.store.getState().streaming;console.log("Streaming status debug informations: ",e)})),o.useEventListener("phone-island-paramurl-status",(function(){var e=l.store.getState().paramUrl;console.log("Paramurl status debug informations: ",e)})),o.useEventListener("phone-island-queue-status",(function(){var e=l.store.getState().queue;console.log("Queue status debug informations: ",e)})),o.useEventListener("phone-island-player-force-stop",(function(){l.store.dispatch.player.reset(),console.log("Audio player is interrupted")})),o.useEventListener("phone-island-stores-download",(function(){l.downloadStoresAsJSON(),u.eventDispatch("phone-island-stores-downloaded",{})})),o.useEventListener("phone-island-sideview-open",(function(){l.store.dispatch.island.toggleSideViewVisible(!0),l.store.dispatch.island.setUrlOpened(!1),u.eventDispatch("phone-island-sideview-opened",{})})),o.useEventListener("phone-island-sideview-close",(function(){l.store.dispatch.island.toggleSideViewVisible(!1),u.eventDispatch("phone-island-sideview-closed",{})})),o.useEventListener("phone-island-transcription-close",(function(){l.store.dispatch.island.toggleTranscriptionViewVisible(!1),(X.current||Y.current)&&(u.eventDispatch("phone-island-stop-transcription",{uniqueid:X.current,linkedid:Y.current}),X.current=null,Y.current=null),u.eventDispatch("phone-island-transcription-closed",{})})),o.useEventListener("phone-island-transcription-open",(function(e){var t=null==e?void 0:e.linkedid,n=null==e?void 0:e.uniqueid;(t||n)&&(Y.current=t||null,X.current=n||null,u.eventDispatch("phone-island-start-transcription",{linkedid:t,uniqueid:n}),l.store.dispatch.island.toggleTranscriptionViewVisible(!0),u.eventDispatch("phone-island-transcription-opened",{}))})),o.useEventListener("phone-island-init-audio",(function(){var e=l.store.getState().currentCall,t=e.accepted,n=e.incoming,i=e.outgoing,s=e.incomingWebRTC,r=e.incomingSocket;if(t||n||i||s||r)console.log("[AUDIO-WARMUP] Skipping audio warm-up: active call in progress");else if(x&&"string"==typeof x&&0!==x.length){var a=l.store.getState().currentUser.featureCodes,o=null==a?void 0:a.audio_test,u=o&&"string"==typeof o&&o.length>0?o:"*41";console.log("[AUDIO-WARMUP] Starting audio warm-up test call",{codeToCall:u,SIP_HOST:x}),E.callNumber(u,x)}else console.warn("[AUDIO-WARMUP] Skipping audio warm-up: SIP_HOST not available",{SIP_HOST:x})})),o.useEventListener("phone-island-transcription-toggle",(function(){var e=!l.store.getState().island.transcriptionViewIsVisible;l.store.dispatch.island.toggleTranscriptionViewVisible(e),u.eventDispatch(e?"phone-island-transcription-opened":"phone-island-transcription-closed",{})})),o.useEventListener("phone-island-summary-call-check",(function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n,i,s,r,a,o,u,c,p,v,h;return e.__generator(this,(function(e){switch(e.label){case 0:return n=(null==t?void 0:t.linkedid)||(null==t?void 0:t.linkedId),i=(null==t?void 0:t.uniqueid)||(null==t?void 0:t.uniqueId),n?i?(s=l.store.getState().conference,r=s.isActive,a=s.usersList,o=s.conferenceStartedFrom,u=l.store.getState().currentUser,c=u.name,p=u.username,v=r&&(o===p||!!a&&Object.values(a).some((function(e){return e.name===c}))),v?[2]:[4,new Promise((function(e){return setTimeout(e,1e3)}))]):[2]:[2];case 1:e.sent(),e.label=2;case 2:return e.trys.push([2,5,,6]),[4,Promise.resolve().then((function(){return require("./services/user.js")}))];case 3:return[4,(0,e.sent().checkSummaryCall)(i,n)];case 4:return e.sent(),d.dispatchSummaryReady({linkedid:n,uniqueid:i,source:"check"}),[3,6];case 5:return 204===(null==(h=e.sent())?void 0:h.status)&&d.dispatchSummaryNotReady({linkedid:n,uniqueid:i,source:"check"}),[3,6];case 6:return[2]}}))}))})),o.useEventListener("phone-island-call-summary-notify",(function(t){return e.__awaiter(void 0,void 0,void 0,(function(){var n,i;return e.__generator(this,(function(e){switch(e.label){case 0:if(n=null==t?void 0:t.linkedid,i=null==t?void 0:t.uniqueid,!n)return[2];if(!i)return[2];e.label=1;case 1:return e.trys.push([1,4,,5]),[4,Promise.resolve().then((function(){return require("./services/user.js")}))];case 2:return[4,(0,e.sent().watchSummaryCall)(n,i)];case 3:return e.sent(),u.eventDispatch("phone-island-summary-call-notified",{linkedid:n,uniqueid:i}),[3,5];case 4:return e.sent(),[2];case 5:return[2]}}))}))})),o.useEventListener("phone-island-size-change",(function(t){var n=l.store.getState().island,i=n.sideViewIsVisible,s=n.transcriptionViewIsVisible,r=n.actionsExpanded,a=t.sizeInformation,o=e.__assign(e.__assign({},a),{right:i?"42px":"0px",top:I.isBackCallActive()?"40px":"0px",bottomTranscription:s&&r?"335px":s&&!r?"330px":"0px"});u.eventDispatch("phone-island-size-changed",{sizes:o})})),o.useEventListener("phone-island-call-ended",(function(){if("online"===l.store.getState().currentUser.mainPresence){u.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),u.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.handleResetIslandStore(),l.store.dispatch.paramUrl.setThroughTrunk(!1)}})),o.useEventListener("phone-island-conference-list-open",(function(){l.store.dispatch.island.toggleConferenceList(!0),u.eventDispatch("phone-island-conference-list-opened",{})})),o.useEventListener("phone-island-alert-removed",(function(e){var t=l.store.getState().alerts.status.activeAlertsCount,n=l.store.getState().island,i=n.view,s=n.previousView,r=l.store.getState().conference.isActive,a=l.store.getState().alerts.data,o=l.store.getState().currentCall,c=o.incoming,d=o.outgoing,p=o.accepted,v=null==e?void 0:e.type,h=o.incoming||o.outgoing||o.accepted||""!==o.conversationId;if(!(c||d||p||t>0||"player"===i||"recorder"===i||"physicalPhoneRecorder"===i||"waitingConference"===i&&r||"transfer"===i&&r||"settings"===i&&r||"settings"===i&&("recorder"===s||"player"===s)||"operatorBusy"===i&&!r)&&0===t&&(!v||a[v]&&!a[v].active)&&!h){u.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),u.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.handleResetIslandStore()}})),o.useEventListener("phone-island-conference-list-close",(function(){l.store.dispatch.island.toggleConferenceList(!1),u.eventDispatch("phone-island-conference-list-closed",{})})),o.useEventListener("phone-island-conversations",(function(e){var t,n=Object.keys(e)[0];if(n===(null===(t=l.store.getState().currentUser)||void 0===t?void 0:t.username)){var i=e[n].conversations,s=l.store.getState().paramUrl,r=l.store.getState().island.urlOpened;if(!s.hasValidUrl||r)return;if("answered"===s.openParamUrlType&&i&&Object.keys(i).length>0){var a=i[Object.keys(i)[0]],o=l.store.getState().currentUser.default_device,u=!("desktop"===q&&"nethlink"===(null==o?void 0:o.type));if((null==a?void 0:a.connected)&&"in"===(null==a?void 0:a.direction)){var c=s.onlyQueues||!1,d=S.isFromTrunk(a.counterpartNum);l.store.dispatch.paramUrl.setThroughTrunk(d),!0===c&&!0===(null==a?void 0:a.throughQueue)?he(a.counterpartNum,a.counterpartName,a.owner,a.uniqueId,u):!1!==c||!0!==d&&!0!==(null==a?void 0:a.throughQueue)||he(a.counterpartNum,a.counterpartName,a.owner,a.uniqueId,u)}}}})),k.default.createElement(k.default.Fragment,null,k.default.createElement(y.default,{store:l.store},P&&""!==P.trim()?k.default.createElement(s.WebRTC,{hostName:R,sipExten:P,sipSecret:V,sipHost:x,sipPort:J,reload:W,reloadedCallback:function(){return H(!0)},uaType:q},k.default.createElement(a.RestAPI,{hostName:R,username:A,authToken:O},k.default.createElement(i.Socket,{hostName:R,username:A,authToken:O,reload:W,reloadedCallback:function(){return G(!0)},uaType:q},k.default.createElement(n.Events,{sipHost:x},k.default.createElement(r.Island,{showAlways:T,uaType:q}))))):k.default.createElement(a.RestAPI,{hostName:R,username:A,authToken:O},k.default.createElement(i.Socket,{hostName:R,username:A,authToken:O,reload:W,reloadedCallback:function(){G(!0),H(!0)},uaType:q},k.default.createElement(n.Events,{sipHost:x},k.default.createElement(r.Island,{showAlways:T,uaType:q}))))))}));L.displayName="PhoneIslandComponent";var U=t.forwardRef((function(t,n){return k.default.createElement(L,e.__assign({},t,{ref:n}))}));U.displayName="PhoneIsland",exports.PhoneIsland=U; //# sourceMappingURL=App.js.map