@nethesis/phone-island 1.0.15-dev.4 → 1.0.16-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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var i=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var t=require("../lib/phone/conversation.js"),d=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),a=require("../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=n(e),r=function(n){var r=n.children,s=a.useSelector(function(e){return e.currentCall}),o=s.incoming,c=s.outgoing,l=s.accepted,g=s.transferring,p=s.incomingWebRTC,u=s.incomingSocket,w=s.conferencing,x=s.throughQueue,f=s.queueName,m=s.queueNumber,v=s.displayName,b=a.useSelector(function(e){return e.listen}).isListen,_=a.useSelector(function(e){return e.island}),y=_.view,k=_.isOpen,S=_.actionsExpanded,A=_.sideViewIsVisible,j=_.transcriptionViewIsVisible,q=_.isFromStreaming,C=_.isExtraLarge,E=a.useSelector(function(e){return e.alerts.status}).activeAlertsCount,B=a.useSelector(function(e){return e.motions}),N=B.variants,D=B.border_radius_collapsed,L=B.border_radius_expanded,I=B.border_radius_collapsed_conference,O=B.padding_x_collapsed,V=B.padding_y_collapsed,M=B.padding_expanded,Q=B.alert_padding_expanded,R=a.useSelector(function(e){return e.conference}).isActive,z=e.useMemo(function(){var e={width:0,height:0,padding:M};switch(y){case"call":if(k)if(l&&g&&w)e=S?{width:N.call.expanded.transfer.actionsExpanded.width,height:N.call.expanded.transfer.actionsExpanded.height}:{width:N.call.expanded.transfer.width,height:N.call.expanded.transfer.height};else if(l&&S)e={width:N.call.expanded.accepted.actionsExpanded.width,height:N.call.expanded.accepted.actionsExpanded.height};else if(l&&!b)e={width:N.call.expanded.accepted.width,height:N.call.expanded.accepted.height};else if(l&&b)e={width:N.call.expanded.listening.width,height:N.call.expanded.listening.height};else if(o&&!q){e=o&&!l&&x&&Boolean(f||m)&&!t.isNumberOnlyName(v)?{width:N.call.expanded.incomingQueue.width,height:N.call.expanded.incomingQueue.height}:{width:N.call.expanded.incoming.width,height:N.call.expanded.incoming.height}}else o&&q?e={width:N.call.expanded.incomingStreaming.width,height:N.call.expanded.incomingStreaming.height}:c&&!q?e={width:N.call.expanded.outgoing.width,height:N.call.expanded.outgoing.height}:c&&q&&(e={width:N.call.expanded.outgoingStreaming.width,height:N.call.expanded.outgoingStreaming.height});else e={width:N.call.collapsed.width,height:N.call.collapsed.height};break;case"keypad":e=k?{width:N.keypad.expanded.width,height:N.keypad.expanded.height}:{width:N.transfer.collapsed.width,height:N.transfer.collapsed.height};break;case"video":e=k?{width:N.video.expanded.width,height:N.video.expanded.height,padding:N.video.expanded.padding}:{width:N.video.collapsed.width,height:N.video.collapsed.height};break;case"transfer":case"player":case"recorder":case"physicalPhoneRecorder":case"settings":case"conference":e=k?{width:N[y].expanded.width,height:N[y].expanded.height}:{width:N[y].collapsed.width,height:N[y].collapsed.height};break;case"switchDevice":e=k?{width:N.switchDevice.expanded.width,height:N.switchDevice.expanded.height}:{width:N.video.collapsed.width,height:N.video.collapsed.height};break;case"waitingConference":e=k?{width:N.waitingConference.expanded.width,height:N.waitingConference.expanded.height}:{width:N.waitingConference.collapsed.width,height:N.waitingConference.collapsed.height};break;case"streamingAnswer":e=k?C?{width:N.streamingAnswer.extraLarge.width,height:N.streamingAnswer.extraLarge.height,padding:N.streamingAnswer.extraLarge.padding}:{width:N.streamingAnswer.expanded.width,height:N.streamingAnswer.expanded.height,padding:N.streamingAnswer.expanded.padding}:{width:N.streamingAnswer.collapsed.width,height:N.streamingAnswer.collapsed.height};break;case"operatorBusy":e=k?{width:N.operatorBusy.expanded.width,height:N.operatorBusy.expanded.height}:{width:N.operatorBusy.collapsed.width,height:N.operatorBusy.collapsed.height}}var i=E>0;return{width:"".concat(0===e.width&&i?N.alerts.width:e.width,"px"),height:"".concat(i&&k?N.alerts.height+(0===e.height?2*Q:Q):e.height,"px"),borderRadius:"".concat(k?L:R&&"waitingConference"===y?I:D,"px"),padding:k?null!=e.padding?"".concat(e.padding,"px"):"".concat(M,"px"):"".concat(O,"px ").concat(V,"px")}},[y,k,l,g,S,b,o,c,E,N,D,L,O,V,M,Q,p,u,R,q,C,x,f,m,v]);return e.useEffect(function(){var e={};e.width=null==z?void 0:z.width,e.height=null==z?void 0:z.height,i.eventDispatch("phone-island-size-change",{sizeInformation:e})},[z,y,k,l,g,S,b,o,c,E,N,D,L,O,V,M,Q,A,j,u,p,R,C]),h.default.createElement(d.motion.div,{className:"".concat(k?"pi-cursor-grab":"pi-cursor-pointer"," pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow"),animate:z,transition:{duration:.15,ease:"easeOut"}},r)};exports.IslandMotion=r,exports.default=r;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var i=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var t=require("../lib/phone/conversation.js"),d=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),a=require("../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e),h=function(n){var h=n.children,o=a.useSelector(function(e){return e.currentCall}),s=o.incoming,c=o.outgoing,l=o.accepted,g=o.transferring,p=o.incomingWebRTC,u=o.incomingSocket,w=o.conferencing,x=o.throughQueue,f=o.queueName,m=o.queueNumber,v=o.displayName,b=a.useSelector(function(e){return e.listen}).isListen,y=a.useSelector(function(e){return e.island}),_=y.view,k=y.isOpen,S=y.actionsExpanded,A=y.sideViewIsVisible,j=y.transcriptionViewIsVisible,q=y.isFromStreaming,C=y.isExtraLarge,E=a.useSelector(function(e){return e.alerts.status}).activeAlertsCount,B=a.useSelector(function(e){return e.motions}),N=B.variants,D=B.border_radius_collapsed,L=B.border_radius_expanded,I=B.border_radius_collapsed_conference,O=B.padding_x_collapsed,V=B.padding_y_collapsed,M=B.padding_expanded,Q=B.alert_padding_expanded,R=a.useSelector(function(e){return e.conference}).isActive,z=e.useMemo(function(){var e={width:0,height:0,padding:M};switch(_){case"call":if(k)if(l&&g&&w)e=S?{width:N.call.expanded.transfer.actionsExpanded.width,height:N.call.expanded.transfer.actionsExpanded.height}:{width:N.call.expanded.transfer.width,height:N.call.expanded.transfer.height};else if(l&&S)e={width:N.call.expanded.accepted.actionsExpanded.width,height:N.call.expanded.accepted.actionsExpanded.height};else if(l&&!b)e={width:N.call.expanded.accepted.width,height:N.call.expanded.accepted.height};else if(l&&b)e={width:N.call.expanded.listening.width,height:N.call.expanded.listening.height};else if(s&&!q){e=s&&!l&&x&&Boolean(f||m)&&!t.isNumberOnlyName(v)?{width:N.call.expanded.incomingQueue.width,height:N.call.expanded.incomingQueue.height}:{width:N.call.expanded.incoming.width,height:N.call.expanded.incoming.height}}else s&&q?e={width:N.call.expanded.incomingStreaming.width,height:N.call.expanded.incomingStreaming.height}:c&&!q?e={width:N.call.expanded.outgoing.width,height:N.call.expanded.outgoing.height}:c&&q&&(e={width:N.call.expanded.outgoingStreaming.width,height:N.call.expanded.outgoingStreaming.height});else e={width:N.call.collapsed.width,height:N.call.collapsed.height};break;case"keypad":e=k?{width:N.keypad.expanded.width,height:N.keypad.expanded.height}:{width:N.transfer.collapsed.width,height:N.transfer.collapsed.height};break;case"video":e=k?{width:N.video.expanded.width,height:N.video.expanded.height,padding:N.video.expanded.padding}:{width:N.video.collapsed.width,height:N.video.collapsed.height};break;case"transfer":case"player":case"recorder":case"physicalPhoneRecorder":case"settings":case"conference":e=k?{width:N[_].expanded.width,height:N[_].expanded.height}:{width:N[_].collapsed.width,height:N[_].collapsed.height};break;case"switchDevice":e=k?{width:N.switchDevice.expanded.width,height:N.switchDevice.expanded.height}:{width:N.video.collapsed.width,height:N.video.collapsed.height};break;case"waitingConference":e=k?{width:N.waitingConference.expanded.width,height:N.waitingConference.expanded.height}:{width:N.waitingConference.collapsed.width,height:N.waitingConference.collapsed.height};break;case"streamingAnswer":e=k?C?{width:N.streamingAnswer.extraLarge.width,height:N.streamingAnswer.extraLarge.height,padding:N.streamingAnswer.extraLarge.padding}:{width:N.streamingAnswer.expanded.width,height:N.streamingAnswer.expanded.height,padding:N.streamingAnswer.expanded.padding}:{width:N.streamingAnswer.collapsed.width,height:N.streamingAnswer.collapsed.height};break;case"operatorBusy":e=k?{width:N.operatorBusy.expanded.width,height:N.operatorBusy.expanded.height}:{width:N.operatorBusy.collapsed.width,height:N.operatorBusy.collapsed.height}}var i=E>0;return{width:"".concat(0===e.width&&i?N.alerts.width:e.width,"px"),height:"".concat(i&&k?N.alerts.height+(0===e.height?2*Q:Q):e.height,"px"),borderRadius:"".concat(k?L:R&&"waitingConference"===_?I:D,"px"),padding:k?null!=e.padding?"".concat(e.padding,"px"):"".concat(M,"px"):"".concat(O,"px ").concat(V,"px")}},[_,k,l,g,S,b,s,c,E,N,D,L,O,V,M,Q,p,u,R,q,C,x,f,m,v]);return e.useEffect(function(){var e={};e.width=null==z?void 0:z.width,e.height=null==z?void 0:z.height,i.eventDispatch("phone-island-size-change",{sizeInformation:e})},[z,_,k,l,g,S,b,s,c,E,N,D,L,O,V,M,Q,A,j,u,p,R,C]),r.default.createElement(d.motion.div,{className:"".concat(k?"pi-cursor-grab":"pi-cursor-pointer"," pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-border pi-border-solid pi-border-gray-200 dark:pi-border-gray-800 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow"),animate:z,transition:{duration:.15,ease:"easeOut"}},h)};exports.IslandMotion=h,exports.default=h;
2
2
  //# sourceMappingURL=IslandMotion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useMemo, useEffect } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion'\nimport { eventDispatch } from '../utils'\nimport { isNumberOnlyName } from '../lib/phone/conversation'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const {\n incoming,\n outgoing,\n accepted,\n transferring,\n incomingWebRTC,\n incomingSocket,\n conferencing,\n throughQueue,\n queueName,\n queueNumber,\n displayName,\n } = useSelector((state: RootState) => state.currentCall)\n const { isListen } = useSelector((state: RootState) => state.listen)\n const { view, isOpen, actionsExpanded, sideViewIsVisible,transcriptionViewIsVisible, isFromStreaming, isExtraLarge } = useSelector(\n (state: RootState) => state.island,\n )\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n border_radius_collapsed_conference,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n const motionVariants = useMemo(() => {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n padding: padding_expanded,\n }\n\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring && conferencing) {\n if (actionsExpanded) {\n size = {\n width: variants.call.expanded.transfer.actionsExpanded.width,\n height: variants.call.expanded.transfer.actionsExpanded.height,\n }\n } else {\n size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.height,\n }\n }\n } else if (accepted && actionsExpanded) {\n size = {\n width: variants.call.expanded.accepted.actionsExpanded.width,\n height: variants.call.expanded.accepted.actionsExpanded.height,\n }\n } else if (accepted && !isListen) {\n size = {\n width: variants.call.expanded.accepted.width,\n height: variants.call.expanded.accepted.height,\n }\n } else if (accepted && isListen) {\n size = {\n width: variants.call.expanded.listening.width,\n height: variants.call.expanded.listening.height,\n }\n } else if (incoming && !isFromStreaming) {\n const showIncomingQueueBadge =\n incoming && !accepted && throughQueue && Boolean(queueName || queueNumber)\n size = showIncomingQueueBadge && !isNumberOnlyName(displayName)\n ? {\n width: variants.call.expanded.incomingQueue.width,\n height: variants.call.expanded.incomingQueue.height,\n }\n : {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (incoming && isFromStreaming) {\n size = {\n width: variants.call.expanded.incomingStreaming.width,\n height: variants.call.expanded.incomingStreaming.height,\n }\n } else if (outgoing && !isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n } else if (outgoing && isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoingStreaming.width,\n height: variants.call.expanded.outgoingStreaming.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n\n case 'keypad':\n size = isOpen\n ? {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n : {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n break\n\n case 'video':\n if (isOpen) {\n size = {\n width: variants.video.expanded.width,\n height: variants.video.expanded.height,\n padding: variants.video.expanded.padding,\n }\n } else {\n size = {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n }\n break\n case 'transfer':\n case 'player':\n case 'recorder':\n case 'physicalPhoneRecorder':\n case 'settings':\n case 'conference':\n size = isOpen\n ? {\n width: variants[view].expanded.width,\n height: variants[view].expanded.height,\n }\n : {\n width: variants[view].collapsed.width,\n height: variants[view].collapsed.height,\n }\n break\n\n case 'switchDevice':\n size = isOpen\n ? {\n width: variants.switchDevice.expanded.width,\n height: variants.switchDevice.expanded.height,\n }\n : {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n break\n\n case 'waitingConference':\n size = isOpen\n ? {\n width: variants.waitingConference.expanded.width,\n height: variants.waitingConference.expanded.height,\n }\n : {\n width: variants.waitingConference.collapsed.width,\n height: variants.waitingConference.collapsed.height,\n }\n break\n case 'streamingAnswer':\n size = isOpen\n ? isExtraLarge\n ? {\n width: variants.streamingAnswer.extraLarge.width,\n height: variants.streamingAnswer.extraLarge.height,\n padding: variants.streamingAnswer.extraLarge.padding,\n }\n : {\n width: variants.streamingAnswer.expanded.width,\n height: variants.streamingAnswer.expanded.height,\n padding: variants.streamingAnswer.expanded.padding,\n }\n : {\n width: variants.streamingAnswer.collapsed.width,\n height: variants.streamingAnswer.collapsed.height,\n }\n break\n case 'operatorBusy':\n size = isOpen\n ? {\n width: variants.operatorBusy.expanded.width,\n height: variants.operatorBusy.expanded.height,\n }\n : {\n width: variants.operatorBusy.collapsed.width,\n height: variants.operatorBusy.collapsed.height,\n }\n break\n }\n\n const isAlert: boolean = activeAlertsCount > 0\n\n return {\n width: `${size.width === 0 && isAlert ? variants.alerts.width : size.width}px`,\n height: `${\n // If there is an alert and the island is open put the correct height\n isAlert && isOpen\n ? variants.alerts.height +\n (size.height === 0 ? alert_padding_expanded * 2 : alert_padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen\n ? `${border_radius_expanded}px`\n : isActive && view === 'waitingConference'\n ? `${border_radius_collapsed_conference}px`\n : `${border_radius_collapsed}px`,\n padding: isOpen\n ? size.padding != undefined\n ? `${size.padding}px`\n : `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }, [\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n incomingWebRTC,\n incomingSocket,\n isActive,\n isFromStreaming,\n isExtraLarge,\n throughQueue,\n queueName,\n queueNumber,\n displayName,\n ])\n\n useEffect(() => {\n let sizeInformation: any = {}\n sizeInformation.width = motionVariants?.width\n sizeInformation.height = motionVariants?.height\n eventDispatch('phone-island-size-change', {\n sizeInformation,\n })\n }, [\n motionVariants,\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n sideViewIsVisible,\n transcriptionViewIsVisible,\n incomingSocket,\n incomingWebRTC,\n isActive,\n isExtraLarge,\n ])\n\n return (\n <motion.div\n className={`${isOpen ? 'pi-cursor-grab' : 'pi-cursor-pointer'\n } pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow`}\n animate={motionVariants}\n transition={{\n duration: 0.15,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n )\n}\n\ninterface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n padding?: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","incomingWebRTC","incomingSocket","conferencing","throughQueue","queueName","queueNumber","displayName","isListen","listen","_c","island","view","isOpen","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","isFromStreaming","isExtraLarge","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","border_radius_collapsed_conference","padding_x_collapsed","padding_y_collapsed","padding_expanded","alert_padding_expanded","isActive","conference","motionVariants","useMemo","size","width","height","padding","call","expanded","transfer","listening","Boolean","isNumberOnlyName","incomingQueue","incomingStreaming","outgoingStreaming","collapsed","keypad","video","switchDevice","waitingConference","streamingAnswer","extraLarge","operatorBusy","isAlert","concat","borderRadius","undefined","useEffect","sizeInformation","eventDispatch","React","createElement","motion","div","className","animate","transition","duration","ease"],"mappings":"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"}
1
+ {"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useMemo, useEffect } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion'\nimport { eventDispatch } from '../utils'\nimport { isNumberOnlyName } from '../lib/phone/conversation'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const {\n incoming,\n outgoing,\n accepted,\n transferring,\n incomingWebRTC,\n incomingSocket,\n conferencing,\n throughQueue,\n queueName,\n queueNumber,\n displayName,\n } = useSelector((state: RootState) => state.currentCall)\n const { isListen } = useSelector((state: RootState) => state.listen)\n const { view, isOpen, actionsExpanded, sideViewIsVisible,transcriptionViewIsVisible, isFromStreaming, isExtraLarge } = useSelector(\n (state: RootState) => state.island,\n )\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n border_radius_collapsed_conference,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n const motionVariants = useMemo(() => {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n padding: padding_expanded,\n }\n\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring && conferencing) {\n if (actionsExpanded) {\n size = {\n width: variants.call.expanded.transfer.actionsExpanded.width,\n height: variants.call.expanded.transfer.actionsExpanded.height,\n }\n } else {\n size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.height,\n }\n }\n } else if (accepted && actionsExpanded) {\n size = {\n width: variants.call.expanded.accepted.actionsExpanded.width,\n height: variants.call.expanded.accepted.actionsExpanded.height,\n }\n } else if (accepted && !isListen) {\n size = {\n width: variants.call.expanded.accepted.width,\n height: variants.call.expanded.accepted.height,\n }\n } else if (accepted && isListen) {\n size = {\n width: variants.call.expanded.listening.width,\n height: variants.call.expanded.listening.height,\n }\n } else if (incoming && !isFromStreaming) {\n const showIncomingQueueBadge =\n incoming && !accepted && throughQueue && Boolean(queueName || queueNumber)\n size = showIncomingQueueBadge && !isNumberOnlyName(displayName)\n ? {\n width: variants.call.expanded.incomingQueue.width,\n height: variants.call.expanded.incomingQueue.height,\n }\n : {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (incoming && isFromStreaming) {\n size = {\n width: variants.call.expanded.incomingStreaming.width,\n height: variants.call.expanded.incomingStreaming.height,\n }\n } else if (outgoing && !isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n } else if (outgoing && isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoingStreaming.width,\n height: variants.call.expanded.outgoingStreaming.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n\n case 'keypad':\n size = isOpen\n ? {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n : {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n break\n\n case 'video':\n if (isOpen) {\n size = {\n width: variants.video.expanded.width,\n height: variants.video.expanded.height,\n padding: variants.video.expanded.padding,\n }\n } else {\n size = {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n }\n break\n case 'transfer':\n case 'player':\n case 'recorder':\n case 'physicalPhoneRecorder':\n case 'settings':\n case 'conference':\n size = isOpen\n ? {\n width: variants[view].expanded.width,\n height: variants[view].expanded.height,\n }\n : {\n width: variants[view].collapsed.width,\n height: variants[view].collapsed.height,\n }\n break\n\n case 'switchDevice':\n size = isOpen\n ? {\n width: variants.switchDevice.expanded.width,\n height: variants.switchDevice.expanded.height,\n }\n : {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n break\n\n case 'waitingConference':\n size = isOpen\n ? {\n width: variants.waitingConference.expanded.width,\n height: variants.waitingConference.expanded.height,\n }\n : {\n width: variants.waitingConference.collapsed.width,\n height: variants.waitingConference.collapsed.height,\n }\n break\n case 'streamingAnswer':\n size = isOpen\n ? isExtraLarge\n ? {\n width: variants.streamingAnswer.extraLarge.width,\n height: variants.streamingAnswer.extraLarge.height,\n padding: variants.streamingAnswer.extraLarge.padding,\n }\n : {\n width: variants.streamingAnswer.expanded.width,\n height: variants.streamingAnswer.expanded.height,\n padding: variants.streamingAnswer.expanded.padding,\n }\n : {\n width: variants.streamingAnswer.collapsed.width,\n height: variants.streamingAnswer.collapsed.height,\n }\n break\n case 'operatorBusy':\n size = isOpen\n ? {\n width: variants.operatorBusy.expanded.width,\n height: variants.operatorBusy.expanded.height,\n }\n : {\n width: variants.operatorBusy.collapsed.width,\n height: variants.operatorBusy.collapsed.height,\n }\n break\n }\n\n const isAlert: boolean = activeAlertsCount > 0\n\n return {\n width: `${size.width === 0 && isAlert ? variants.alerts.width : size.width}px`,\n height: `${\n // If there is an alert and the island is open put the correct height\n isAlert && isOpen\n ? variants.alerts.height +\n (size.height === 0 ? alert_padding_expanded * 2 : alert_padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen\n ? `${border_radius_expanded}px`\n : isActive && view === 'waitingConference'\n ? `${border_radius_collapsed_conference}px`\n : `${border_radius_collapsed}px`,\n padding: isOpen\n ? size.padding != undefined\n ? `${size.padding}px`\n : `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }, [\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n incomingWebRTC,\n incomingSocket,\n isActive,\n isFromStreaming,\n isExtraLarge,\n throughQueue,\n queueName,\n queueNumber,\n displayName,\n ])\n\n useEffect(() => {\n let sizeInformation: any = {}\n sizeInformation.width = motionVariants?.width\n sizeInformation.height = motionVariants?.height\n eventDispatch('phone-island-size-change', {\n sizeInformation,\n })\n }, [\n motionVariants,\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n sideViewIsVisible,\n transcriptionViewIsVisible,\n incomingSocket,\n incomingWebRTC,\n isActive,\n isExtraLarge,\n ])\n\n return (\n <motion.div\n className={`${isOpen ? 'pi-cursor-grab' : 'pi-cursor-pointer'\n } pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-border pi-border-solid pi-border-gray-200 dark:pi-border-gray-800 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow`}\n animate={motionVariants}\n transition={{\n duration: 0.15,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n )\n}\n\ninterface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n padding?: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","incomingWebRTC","incomingSocket","conferencing","throughQueue","queueName","queueNumber","displayName","isListen","listen","_c","island","view","isOpen","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","isFromStreaming","isExtraLarge","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","border_radius_collapsed_conference","padding_x_collapsed","padding_y_collapsed","padding_expanded","alert_padding_expanded","isActive","conference","motionVariants","useMemo","size","width","height","padding","call","expanded","transfer","listening","Boolean","isNumberOnlyName","incomingQueue","incomingStreaming","outgoingStreaming","collapsed","keypad","video","switchDevice","waitingConference","streamingAnswer","extraLarge","operatorBusy","isAlert","concat","borderRadius","undefined","useEffect","sizeInformation","eventDispatch","React","createElement","motion","div","className","animate","transition","duration","ease"],"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("../../node_modules/react-redux/es/hooks/useDispatch.js"),k=require("../../node_modules/react-redux/es/hooks/useSelector.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var T=C(t),j=function(){var C,j,x,N,V,q,R,I,_,D,P=y.useDispatch(),A=k.useSelector(function(e){return e.currentCall}),L=A.muted,M=A.startTime,U=A.isRecording,F=A.paused,B=A.isLocalVideoEnabled,J=A.showRemoteVideoPlaceHolder,z=A.hasVideoTrackAdded,W=A.displayName,G=A.isStartingVideoCall,H=k.useSelector(function(e){return e.screenShare}),O=H.localTracks,K=H.localVideos,Q=H.role,X=H.active,Y=H.isStartingScreenShare,Z=H.isJoiningScreenShare,$=H.isLeavingScreenShare,ee=k.useSelector(function(e){return e.listen}),te=k.useSelector(function(e){return e.island}).isOpen,re=k.useSelector(function(e){return e.webrtc}),ae=re.janusInstance,ne=re.remoteAudioStream,ie=a.store.getState().currentUser,oe=t.useState(!1),le=oe[0],se=oe[1],ce=t.useState(!1),ue=ce[0],de=ce[1],pe=t.useRef(null),ve=t.useRef(null),me=t.useRef(!1),fe=t.useRef(!1),ge=t.useRef(null),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(p.default),ke=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect(function(){P.player.updatePlayer({localScreen:he,remoteScreen:Se,localVideo:be,largeRemoteVideo:Ee,smallRemoteVideo:we})},[]),t.useEffect(function(){return Re(),Ce(),addEventListener("fullscreenchange",Te),function(){removeEventListener("fullscreenchange",Te),pe.current&&clearTimeout(pe.current)}},[]),t.useEffect(function(){G&&(Ne(),P.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[G]),t.useEffect(function(){Y&&(_e(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Y]),t.useEffect(function(){Z&&(De(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Ae(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[$]),t.useEffect(function(){Re(),Ce()},[te]);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)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&P.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},Te=function(){se(!!document.fullscreenElement)},je=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):ge.current&&(ge.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",function(){je()}),l.useEventListener("phone-island-fullscreen-exit",function(){je()});var xe=function(e,t){P.screenShare.update({source:e});var r=null;null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(t){var n,i,o,l;r=t,P.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ye.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ye.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=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ye.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=ye.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=ye.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=ye.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ye.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ye.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ye.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ye.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=ye.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=ye.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=ye.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 ye.current.stopAllTracks(m),void P.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=ye.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=ye.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ye.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ye.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(!me.current){var i=a.store.getState().webrtc.sipcall;me.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||P.currentCall.setVideoTrackAdded(!0)):(s.add=!0,P.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){var t,r,n;me.current=!1,i.send({message:{request:"update"},jsep:e}),t=a.store.getState().websocket.socket,r=a.store.getState().currentCall.username,n=a.store.getState().currentUser.username,t&&r&&n&&t.emit("message",{message:"videoCallStart",destUser:r,callUser:n}),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){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",function(){Ne()});var Ve=function(){var t,r,n,i;if(!me.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;me.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)});ye.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){me.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",function(){Ve()});var qe=function(){null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(e){P.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),setTimeout(function(){!function(){var e,t;if(ye.current.isExtensionEnabled()){var r={request:"create",description:ye.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)null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{var d=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;P.screenShare.update({room:p}),null===(s=(l=ye.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(fe.current)return void(null===(u=(c=ye.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));fe.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}}})}else null===(t=(e=ye.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()},500)):"listener"===t&&Pe(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ye.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ye.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ye.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=ye.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=ye.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,C=k.plugin,T=k.role,j=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===T)null===(s=(l=ye.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ye.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;fe.current=!1,null===(r=(t=ye.current).error)||void 0===r||r.call(t,"WebRTC error:",e),P.screenShare.update({active:!1,role:""});var n=a.store.getState().screenShare.room,i=function(){return C.detach()};C.send({message:{request:"destroy",room:n},success:i,error:i})}});else if(e.publishers){var x=e.publishers;for(var N in null===(u=(c=ye.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){var V=x[N].id,q=x[N].display;null===(p=(d=ye.current).debug)||void 0===p||p.call(d," >> ["+V+"] "+q),xe(V,q)}}}else if("event"===j)if("listener"===T&&e.publishers){x=e.publishers;for(var N in null===(m=(v=ye.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){V=x[N].id,q=x[N].display;null===(g=(f=ye.current).debug)||void 0===g||g.call(f," >> ["+V+"] "+q),xe(V,q)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ye.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}else e.error&&(null===(E=(b=ye.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ye.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),C.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ye.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==O?void 0:O[c])){if("video"===e.kind){P.screenShare.update({localVideos:K+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ye.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=ye.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),Ie(),e.addEventListener("ended",function(){Me()}))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==O?void 0:O[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&&P.screenShare.update({localVideos:K-1});var h=null==O?void 0:O.filter(function(e){return e!==O[c]});P.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ye.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),fe.current=!1,P.screenShare.update({localTracks:{},localVideos:0})}})},Re=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)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,i)},Ie=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})},_e=function(){fe.current=!1,P.screenShare.update({active:!0,role:"publisher"}),qe()};l.useEventListener("phone-island-screen-share-start",function(){_e()});var De=function(){P.screenShare.update({active:!0,role:"listener"}),qe(),c.eventDispatch("phone-island-screen-share-joined",{})},Pe=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})},Ae=function(){var e=a.store.getState().screenShare.remoteScreenStream;ye.current.stopAllTracks(e),P.screenShare.update({active:!1}),c.eventDispatch("phone-island-screen-share-left",{})},Le=function(){de(!0),pe.current&&(clearTimeout(pe.current),pe.current=null),ve.current&&clearTimeout(ve.current),ve.current=setTimeout(function(){pe.current=setTimeout(function(){de(!1)},3e3)},100)},Me=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream;fe.current=!1,ye.current.stopAllTracks(r),P.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",{})};l.useEventListener("phone-island-screen-share-stop",function(){Me()});var Ue=t.useState(!0),Fe=Ue[0],Be=Ue[1],Je=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==ke?void 0:ke.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Be(!0),[2,!0]):(Be(!1),[2,!1]);case 2:return Be(!1),[2,!1];case 3:return[2]}})})};return T.default.createElement(T.default.Fragment,null,te?T.default.createElement("div",{ref:ge,onMouseMove:function(){return Le()},className:le?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},T.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"listener"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:he,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"publisher"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Ee,className:"pi-rounded-2xl ".concat(X||J?"pi-hidden":"")}),T.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(X||!J?"pi-hidden":"")},T.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"},T.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(W)))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:be,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(B?"":"pi-hidden")}),T.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(B||!z?"pi-hidden":"")},T.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"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(ie.name||"-")))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:we,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!X||J?"pi-hidden":"")}),T.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(X&&J&&z?"":"pi-hidden")},T.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"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(W))))),T.default.createElement("div",{className:"".concat(!ue&&"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")},T.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==ee?void 0:ee.isListen)&&T.default.createElement(r.Button,{variant:"default",active:!!L,onClick:function(){return L?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(L?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},L?T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==ke?void 0:ke.length)>0&&T.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,Je()];case 1:return e.sent()&&(B?Ve():Ne()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(Fe?B?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!Fe,className:"".concat(Fe?"":"pi-cursor-auto")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faVideoSlash:i.faVideo})),"safari"!==ye.current.webRTCAdapter.browserDetails.browser&&(null===(V=null===(N=null===(x=null===(j=null===(C=null==ie?void 0:ie.profile)||void 0===C?void 0:C.macro_permissions)||void 0===j?void 0:j.nethvoice_cti)||void 0===x?void 0:x.permissions)||void 0===N?void 0:N.screen_sharing)||void 0===V?void 0:V.value)&&!X&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return _e()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),X&&"publisher"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return Me()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),X&&"listener"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return je()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":le?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:le?i.faCompress:i.faExpand})),(null===(D=null===(_=null===(I=null===(R=null===(q=null==ie?void 0:ie.profile)||void 0===q?void 0:q.macro_permissions)||void 0===R?void 0:R.settings)||void 0===I?void 0:I.permissions)||void 0===_?void 0:_.recording)||void 0===D?void 0:D.value)&&T.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")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==ee?void 0:ee.isIntrude)||(null==ee?void 0:ee.isListen))&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return F?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Me())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":F?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:F?i.faPlay:i.faPause}))),T.default.createElement(u.default,{buttonsVariant:"default"})),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):T.default.createElement(T.default.Fragment,null,T.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},T.default.createElement(v.default,null),T.default.createElement(m.default,{startTime:M,isNotAlwaysWhite:!0}),!te&&ne&&!f.isPhysical()&&T.default.createElement(g.AudioBars,{audioStream:ne,paused:F,size:te?"large":"small"}))))};exports.VideoView=j,exports.default=j;
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"),C=require("../../node_modules/react-redux/es/hooks/useSelector.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=T(t),x=function(){var T,x,N,V,q,R,I,_,D,P,A=k.useDispatch(),L=C.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=C.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=C.useSelector(function(e){return e.listen}),re=C.useSelector(function(e){return e.island}).isOpen,ae=C.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),Ce=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(),Te(),addEventListener("fullscreenchange",je),function(){removeEventListener("fullscreenchange",je),ve.current&&clearTimeout(ve.current)}},[]),t.useEffect(function(){H&&(Ve(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[H]),t.useEffect(function(){Z&&(De(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Pe(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[$]),t.useEffect(function(){ee&&(Le(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[ee]),t.useEffect(function(){Ie(),Te()},[re]);var Te=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 Ne=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}})},Ve=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(){Ve()});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",{}),setTimeout(function(){!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)null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{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)")}()},500)):"listener"===t&&Ae(),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)},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,C=k.plugin,T=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"===T)null===(s=(l=ke.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ke.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.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),A.screenShare.update({active:!1,role:""});var n=a.store.getState().screenShare.room,i=function(){return C.detach()};C.send({message:{request:"destroy",room:n},success:i,error:i})}});else if(e.publishers){var x=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:",x),x)if(!x[N].dummy){var V=x[N].id,q=x[N].display;null===(p=(d=ke.current).debug)||void 0===p||p.call(d," >> ["+V+"] "+q),Ne(V,q)}}}else if("event"===j)if("listener"===T&&e.publishers){x=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:",x),x)if(!x[N].dummy){V=x[N].id,q=x[N].display;null===(g=(f=ke.current).debug)||void 0===g||g.call(f," >> ["+V+"] "+q),Ne(V,q)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ke.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}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),C.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(){Fe()}))}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(){ge.current=!1,A.screenShare.update({active:!0,role:"publisher"}),Re()};l.useEventListener("phone-island-screen-share-start",function(){De()});var Pe=function(){A.screenShare.update({active:!0,role:"listener"}),Re(),c.eventDispatch("phone-island-screen-share-joined",{})},Ae=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})},Le=function(){var e=a.store.getState().screenShare.remoteScreenStream;ke.current.stopAllTracks(e),A.screenShare.update({active:!1}),c.eventDispatch("phone-island-screen-share-left",{})},Me=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)},Fe=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",{})};l.useEventListener("phone-island-screen-share-stop",function(){Fe()});var Ue=t.useState(!0),Be=Ue[0],Je=Ue[1],ze=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==Ce?void 0:Ce.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Je(!0),[2,!0]):(Je(!1),[2,!1]);case 2:return Je(!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 Me()},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==Ce?void 0:Ce.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,ze()];case 1:return e.sent()&&(J?qe():Ve()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(Be?J?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!Be,className:"".concat(Be?"":"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===(V=null===(N=null===(x=null===(T=null==oe?void 0:oe.profile)||void 0===T?void 0:T.macro_permissions)||void 0===x?void 0:x.nethvoice_cti)||void 0===N?void 0:N.permissions)||void 0===V?void 0:V.screen_sharing)||void 0===q?void 0:q.value)&&!Y&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return De()},"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 Fe()},"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 Fe())},"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