@nethesis/phone-island 0.8.12 → 0.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/RecorderView/Actions.js +1 -1
- package/dist/components/RecorderView/Actions.js.map +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
- package/dist/components/TransferView/TransferList.js +1 -1
- package/dist/components/TransferView/TransferList.js.map +1 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/phone/call.d.ts +1 -0
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/models/currentCall.d.ts +71 -0
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/motions.d.ts +16 -0
- package/dist/models/motions.js +1 -1
- package/dist/models/motions.js.map +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/services/astproxy.d.ts +1 -0
- package/dist/services/astproxy.js +1 -1
- package/dist/services/astproxy.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 t=require("./Avatar.js"),r=require("../AudioBars.js"),a=require("./Progress.js"),i=require("../Button.js"),s=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),l=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var n=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var u=require("../../utils/customHooks/useEventListener.js"),d=require("../../utils/genericFunctions/eventDispatch.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("./Avatar.js"),r=require("../AudioBars.js"),a=require("./Progress.js"),i=require("../Button.js"),s=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),l=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var n=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var u=require("../../utils/customHooks/useEventListener.js"),d=require("../../utils/genericFunctions/eventDispatch.js"),p=require("../../node_modules/react-redux/es/hooks/useSelector.js"),c=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=m(e),y=function(){var e=p.useSelector((function(e){return e.player})),m=e.audioPlayerTrackType,y=e.audioPlayerTrackName,x=e.audioPlayer,j=e.audioPlayerPlaying,v=p.useSelector((function(e){return e.island})).isOpen,h=c.useDispatch();function q(){h.player.startAudioPlayer((function(){})),d.eventDispatch("phone-island-audio-player-played",{})}function _(){h.player.pauseAudioPlayer(),d.eventDispatch("phone-island-audio-player-paused",{})}u.useEventListener("phone-island-audio-player-play",(function(e){q()})),u.useEventListener("phone-island-audio-player-pause",(function(e){_()}));var E=n.useTranslation().t;return f.default.createElement("div",{className:"pi-flex pi-gap-7 pi-flex-col"},f.default.createElement("div",{className:"pi-flex pi-gap-4"},f.default.createElement(t.Avatar,{type:m}),f.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full"},f.default.createElement("div",{style:{width:v?"202px":"60px"},className:"pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block"},y)),f.default.createElement(r.AudioBars,{audioElement:x&&x.current,size:v?"large":"small"})),v&&f.default.createElement("div",null,f.default.createElement(a.Progress,null),f.default.createElement("div",{className:"pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7"},f.default.createElement(i.Button,{onClick:j?_:q,variant:"default",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip-pause-audio-player","data-tooltip-content":"".concat(E(j?"Tooltip.Pause":"Tooltip.Play"))},j?f.default.createElement(s.FontAwesomeIcon,{icon:l.faPause,size:"xl"}):f.default.createElement(s.FontAwesomeIcon,{icon:l.faPlay,size:"xl"})))),f.default.createElement(o.Tooltip,{className:"pi-z-20",id:"tooltip-pause-audio-player",place:"bottom"}))};exports.KeypadView=y,exports.default=y;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { Avatar } from './Avatar'\nimport { AudioBars } from '../AudioBars'\nimport Progress from './Progress'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayer, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n eventDispatch('phone-island-audio-player-played', {})\n }\n useEventListener('phone-island-audio-player-play', (data: {}) => {\n startPlaying()\n })\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n eventDispatch('phone-island-audio-player-paused', {})\n }\n useEventListener('phone-island-audio-player-pause', (data: {}) => {\n pausePlaying()\n })\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <AudioBars\n audioElement={audioPlayer && audioPlayer.current}\n size={isOpen ? 'large' : 'small'}\n />\n </div>\n {isOpen && (\n <div>\n <Progress />\n <div className='pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={audioPlayerPlaying ? `${t('Tooltip.Pause')}` : `${t('Tooltip.Play')}`}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} size='xl' />\n ) : (\n <FontAwesomeIcon icon={faPlay} size='xl' />\n )}\n </Button>\n </div>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayer","audioPlayerPlaying","isOpen","island","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","t","useTranslation","React","createElement","className","Avatar","type","style","width","AudioBars","audioElement","current","size","Progress","Button","onClick","variant","transform","concat","FontAwesomeIcon","icon","faPause","faPlay","Tooltip","id","place"],"mappings":"45CAgBaA,EAAkC,WACvC,IAAAC,EACJC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,UADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAEC,EAAWN,EAAAM,YAAEC,EAAkBP,EAAAO,mBAE3EC,EAAWP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,iBACrDC,EAAWC,EAAAA,cAEjB,SAASC,IACPF,EAASP,OAAOU,kBAAiB,WAAQ,IACzCC,gBAAc,mCAAoC,CAAA,EACnD,CAKD,SAASC,IACPL,EAASP,OAAOa,mBAChBF,gBAAc,mCAAoC,CAAA,EACnD,CAPDG,mBAAiB,kCAAkC,SAACC,GAClDN,GACF,IAMAK,mBAAiB,mCAAmC,SAACC,GACnDH,GACF,IAEQ,IAAAI,EAAMC,qBAEd,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMrB,IACdiB,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOnB,EAAS,QAAU,QAE5Be,UAAW,yFAEVlB,IAGLgB,EAAAA,QAACC,cAAAM,EAAAA,WACCC,aAAcvB,GAAeA,EAAYwB,QACzCC,KAAMvB,EAAS,QAAU,WAG5BA,GACCa,EAAA,QAAAC,cAAA,MAAA,KACED,UAAAC,cAACU,EAAQA,SAAG,MACZX,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+DACbF,EAAAA,QAAAC,cAACW,SACC,CAAAC,QAAS3B,EAAqBQ,EAAeH,EAC7CuB,QAAQ,UACRT,MAAO,CAAEU,UAAW,iCACJ,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { Avatar } from './Avatar'\nimport { AudioBars } from '../AudioBars'\nimport Progress from './Progress'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayer, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n eventDispatch('phone-island-audio-player-played', {})\n }\n useEventListener('phone-island-audio-player-play', (data: {}) => {\n startPlaying()\n })\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n eventDispatch('phone-island-audio-player-paused', {})\n }\n useEventListener('phone-island-audio-player-pause', (data: {}) => {\n pausePlaying()\n })\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <AudioBars\n audioElement={audioPlayer && audioPlayer.current}\n size={isOpen ? 'large' : 'small'}\n />\n </div>\n {isOpen && (\n <div>\n <Progress />\n <div className='pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip-pause-audio-player'\n data-tooltip-content={audioPlayerPlaying ? `${t('Tooltip.Pause')}` : `${t('Tooltip.Play')}`}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} size='xl' />\n ) : (\n <FontAwesomeIcon icon={faPlay} size='xl' />\n )}\n </Button>\n </div>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip-pause-audio-player' place='bottom' />\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayer","audioPlayerPlaying","isOpen","island","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","t","useTranslation","React","createElement","className","Avatar","type","style","width","AudioBars","audioElement","current","size","Progress","Button","onClick","variant","transform","concat","FontAwesomeIcon","icon","faPause","faPlay","Tooltip","id","place"],"mappings":"45CAgBaA,EAAkC,WACvC,IAAAC,EACJC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,UADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAEC,EAAWN,EAAAM,YAAEC,EAAkBP,EAAAO,mBAE3EC,EAAWP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,iBACrDC,EAAWC,EAAAA,cAEjB,SAASC,IACPF,EAASP,OAAOU,kBAAiB,WAAQ,IACzCC,gBAAc,mCAAoC,CAAA,EACnD,CAKD,SAASC,IACPL,EAASP,OAAOa,mBAChBF,gBAAc,mCAAoC,CAAA,EACnD,CAPDG,mBAAiB,kCAAkC,SAACC,GAClDN,GACF,IAMAK,mBAAiB,mCAAmC,SAACC,GACnDH,GACF,IAEQ,IAAAI,EAAMC,qBAEd,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMrB,IACdiB,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOnB,EAAS,QAAU,QAE5Be,UAAW,yFAEVlB,IAGLgB,EAAAA,QAACC,cAAAM,EAAAA,WACCC,aAAcvB,GAAeA,EAAYwB,QACzCC,KAAMvB,EAAS,QAAU,WAG5BA,GACCa,EAAA,QAAAC,cAAA,MAAA,KACED,UAAAC,cAACU,EAAQA,SAAG,MACZX,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+DACbF,EAAAA,QAAAC,cAACW,SACC,CAAAC,QAAS3B,EAAqBQ,EAAeH,EAC7CuB,QAAQ,UACRT,MAAO,CAAEU,UAAW,iCACJ,6BAA4B,uBACD,GAAAC,OAAGlB,EAAxBZ,EAA0B,gBAA0B,kBAEzEA,EACCc,EAAAA,QAACC,cAAAgB,mBAAgBC,KAAMC,EAAAA,QAAST,KAAK,OAErCV,wBAACiB,EAAeA,gBAAA,CAACC,KAAME,SAAQV,KAAK,UAO9CV,EAAAA,QAAAC,cAACoB,UAAQ,CAAAnB,UAAU,UAAUoB,GAAG,6BAA6BC,MAAM,WAGzE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../lib/phone/call.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../lib/phone/call.js"),o=require("../../utils/customHooks/useEventListener.js"),a=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/react-redux/es/index.js");var n=require("../../store/index.js");require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js");var i=require("../../lib/webrtc/messages.js");require("../../node_modules/mic-check/lib/index.js");var l=require("../../static/outgoing_ringtone.js");require("../Island.js");var r=require("../../services/astproxy.js"),s=require("../Button.js"),c=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),d=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var u=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),p=require("../TransferView/TransferActions.js"),m=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var f=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var v=require("../../lib/user/default_device.js"),x=require("../../node_modules/react-redux/es/hooks/useSelector.js"),E=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=h(e);exports.default=function(){var e=x.useSelector((function(e){return e.currentCall})),h=e.paused,g=e.muted,y=e.isRecording,T=x.useSelector((function(e){return e.currentCall.parked})),b=x.useSelector((function(e){return e.island})),q=b.view,C=b.actionsExpanded,w=x.useSelector((function(e){return e.currentCall.transferring})),k=x.useSelector((function(e){return e.listen})),_=E.useDispatch();function A(){_.island.setIslandView("keypad"!==q?"keypad":"call"),a.eventDispatch("phone-island-call-keypad-opened",{})}function F(){_.island.setIslandView("transfer"!==q?"transfer":"call"),a.eventDispatch("phone-island-call-transfer-opened",{})}function I(){v.isWebRTC()?i.sendDTMF("*"):r.sendPhysicalDTMF("*"),n.store.getState().player.audioPlayerPlaying||_.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){v.isWebRTC()?i.sendDTMF("1"):r.sendPhysicalDTMF("1"),_.player.stopAudioPlayer(),w&&setTimeout((function(){_.currentCall.updateTransferring(!1)}),500),a.eventDispatch("phone-island-call-transfer-canceled",{})}),500)}o.useEventListener("phone-island-call-keypad-open",(function(){A()})),o.useEventListener("phone-island-call-transfer-open",(function(){F()})),o.useEventListener("phone-island-call-transfer-cancel",(function(){I()})),o.useEventListener("phone-island-call-actions-open",(function(){_.island.toggleActionsExpanded(!0),a.eventDispatch("phone-island-call-actions-opened",{})})),o.useEventListener("phone-island-call-actions-close",(function(){_.island.toggleActionsExpanded(!1),a.eventDispatch("phone-island-call-actions-closed",{})}));var z=f.useTranslation().t;return j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"".concat(k.isListen||k.isIntrude?k.isIntrude?"pi-mb-6 pi-grid pi-grid-cols-1 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center":"pi-hidden":"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"," ")},!(k.isIntrude||k.isListen)&&j.default.createElement(s.Button,{variant:"default",active:!!h,onClick:function(){return h?t.unpauseCurrentCall():t.pauseCurrentCall()},"data-tooltip-id":"tooltip-pause","data-tooltip-content":"".concat(z(h?"Tooltip.Play":"Tooltip.Pause"))},h?j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:d.faPlay}):j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:d.faPause})),!k.isListen&&j.default.createElement(s.Button,{variant:"default",active:!!g,onClick:function(){return g?t.unmuteCurrentCall():t.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(z(g?"Tooltip.Unmute":"Tooltip.Mute"))},g?j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:d.faMicrophoneSlash}):j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:d.faMicrophone})),!(k.isIntrude||k.isListen)&&j.default.createElement(s.Button,{active:w,onClick:w?I:F,variant:"default","data-tooltip-id":"tooltip-transfer","data-tooltip-content":"".concat(z(w?"Tooltip.Cancel transfer":"Tooltip.Transfer"))},w?j.default.createElement(c.FontAwesomeIcon,{className:"",size:"xl",icon:d.faArrowDownUpAcrossLine}):j.default.createElement(c.FontAwesomeIcon,{size:"xl",className:"pi-rotate-90",icon:d.faArrowRightArrowLeft})),!(k.isIntrude||k.isListen)&&j.default.createElement(s.Button,{active:C,variant:"transparent",onClick:function(){C?(_.island.toggleActionsExpanded(!1),a.eventDispatch("phone-island-call-actions-closed",{})):(_.island.toggleActionsExpanded(!0),a.eventDispatch("phone-island-call-actions-opened",{}))},"data-tooltip-id":"tooltip-expand","data-tooltip-content":"".concat(z(C?"Tooltip.Collapse":"Tooltip.Expand"))},C?j.default.createElement(c.FontAwesomeIcon,{className:"pi-text-gray-700 dark:pi-text-gray-100",size:"xl",icon:d.faChevronUp}):j.default.createElement(c.FontAwesomeIcon,{size:"xl",className:"pi-text-gray-700 dark:pi-text-gray-100",icon:d.faChevronDown}))),C?j.default.createElement(j.default.Fragment,null," ",j.default.createElement("div",{className:"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},j.default.createElement(s.Button,{active:"keypad"===q,variant:"default",onClick:A,"data-tooltip-id":"tooltip-keyboard","data-tooltip-content":z("Tooltip.Keyboard")||""},j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:u.faGridRound})),j.default.createElement(s.Button,{active:y,"data-stop-propagation":!0,variant:"default",onClick:function(){return t.recordCurrentCall(y)},"data-tooltip-id":"tooltip-record","data-tooltip-content":y?z("Tooltip.Stop recording")||"":z("Tooltip.Record")||""},y?j.default.createElement(c.FontAwesomeIcon,{icon:d.faStop,size:"xl"}):j.default.createElement("div",{className:"custom-circle-dot-wrapper","data-stop-propagation":!0},j.default.createElement(c.FontAwesomeIcon,{icon:d.faCircleDot}),j.default.createElement(c.FontAwesomeIcon,{icon:d.faCircle,className:"inner-dot"}))),j.default.createElement(s.Button,{active:T,variant:"default",onClick:t.parkCurrentCall,"data-tooltip-id":"tooltip-park","data-tooltip-content":z("Tooltip.Park")||""},j.default.createElement(c.FontAwesomeIcon,{size:"xl",icon:d.faSquareParking})),w&&j.default.createElement(p.TransferActions,null))):j.default.createElement(j.default.Fragment,null),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-transfer",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-pause",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-mute",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-expand",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-keyboard",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-record",place:"bottom"}),j.default.createElement(m.Tooltip,{className:"pi-z-20",id:"tooltip-park",place:"bottom"}))};
|
|
2
2
|
//# sourceMappingURL=Actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n parkCurrentCall,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faArrowDownUpAcrossLine,\n faSquareParking,\n faChevronDown,\n faChevronUp,\n faArrowRightArrowLeft,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faGridRound } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { useEventListener, eventDispatch } from '../../utils'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n const parked = useSelector((state: RootState) => state.currentCall.parked)\n\n // Get isOpen and view from island store\n const { view, actionsExpanded } = useSelector((state: RootState) => state.island)\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n eventDispatch('phone-island-call-keypad-opened', {})\n }\n useEventListener('phone-island-call-keypad-open', () => {\n openKeypad()\n })\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n eventDispatch('phone-island-call-transfer-opened', {})\n }\n useEventListener('phone-island-call-transfer-open', () => {\n transfer()\n })\n useEventListener('phone-island-call-transfer-cancel', () => {\n cancelTransfer()\n })\n\n // Cancels the current transfer through dtmfs\n function cancelTransfer() {\n if (isWebRTC()) {\n sendDTMF('*')\n } else {\n sendPhysicalDTMF('*')\n }\n\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n if (isWebRTC()) {\n sendDTMF('1')\n } else {\n sendPhysicalDTMF('1')\n }\n\n dispatch.player.stopAudioPlayer()\n // The workarround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }\n\n useEventListener('phone-island-call-actions-open', () => {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n })\n useEventListener('phone-island-call-actions-close', () => {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n })\n function toggleActionsExpanded() {\n if (actionsExpanded) {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n } else {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n }\n }\n\n const { t } = useTranslation()\n\n // Phone island header section\n return (\n <>\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={paused ? `${t('Tooltip.Play')}` : `${t('Tooltip.Pause')}`}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPause} />\n )}\n </Button>\n\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={muted ? `${t('Tooltip.Unmute')}` : `${t('Tooltip.Mute')}`}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophone} />\n )}\n </Button>\n\n <Button\n active={transferring}\n onClick={transferring ? cancelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip'\n data-tooltip-content={\n transferring ? `${t('Tooltip.Cancel transfer')}` : `${t('Tooltip.Transfer')}`\n }\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' className='pi-rotate-90' icon={faArrowRightArrowLeft} />\n )}\n </Button>\n\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={() => toggleActionsExpanded()}\n data-tooltip-id='tooltip'\n data-tooltip-content={\n actionsExpanded ? `${t('Tooltip.Collapse')}` : `${t('Tooltip.Expand')}`\n }\n >\n {actionsExpanded ? (\n <FontAwesomeIcon\n className='pi-text-gray-700 dark:pi-text-gray-100'\n size='xl'\n icon={faChevronUp}\n />\n ) : (\n <FontAwesomeIcon\n size='xl'\n className='pi-text-gray-700 dark:pi-text-gray-100'\n icon={faChevronDown}\n />\n )}\n </Button>\n </div>\n {/* Actions expanded section */}\n {actionsExpanded ? (\n <>\n {' '}\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n active={view === 'keypad'}\n variant='default'\n onClick={openKeypad}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Keyboard') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faGridRound} />\n </Button>\n <Button\n active={parked}\n variant='default'\n onClick={parkCurrentCall}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Park') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faSquareParking} />\n </Button>\n {transferring && <TransferActions />}\n </div>\n </>\n ) : (\n <></>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","parked","_b","island","view","actionsExpanded","transferring","dispatch","useDispatch","openKeypad","setIslandView","eventDispatch","transfer","cancelTransfer","isWebRTC","sendDTMF","sendPhysicalDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","useEventListener","toggleActionsExpanded","t","useTranslation","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","concat","FontAwesomeIcon","size","icon","faPlay","faPause","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophone","faArrowDownUpAcrossLine","faArrowRightArrowLeft","faChevronUp","faChevronDown","faGridRound","parkCurrentCall","faSquareParking","TransferActions","Tooltip","id","place"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n parkCurrentCall,\n recordCurrentCall,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faArrowDownUpAcrossLine,\n faSquareParking,\n faChevronDown,\n faChevronUp,\n faArrowRightArrowLeft,\n faCircleDot,\n faCircle,\n faStop,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faGridRound } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { useEventListener, eventDispatch } from '../../utils'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted, isRecording } = useSelector((state: RootState) => state.currentCall)\n const parked = useSelector((state: RootState) => state.currentCall.parked)\n\n // Get isOpen and view from island store\n const { view, actionsExpanded } = useSelector((state: RootState) => state.island)\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n eventDispatch('phone-island-call-keypad-opened', {})\n }\n useEventListener('phone-island-call-keypad-open', () => {\n openKeypad()\n })\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n eventDispatch('phone-island-call-transfer-opened', {})\n }\n useEventListener('phone-island-call-transfer-open', () => {\n transfer()\n })\n useEventListener('phone-island-call-transfer-cancel', () => {\n cancelTransfer()\n })\n\n // Cancels the current transfer through dtmfs\n function cancelTransfer() {\n if (isWebRTC()) {\n sendDTMF('*')\n } else {\n sendPhysicalDTMF('*')\n }\n\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n if (isWebRTC()) {\n sendDTMF('1')\n } else {\n sendPhysicalDTMF('1')\n }\n\n dispatch.player.stopAudioPlayer()\n // The workarround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }\n\n useEventListener('phone-island-call-actions-open', () => {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n })\n useEventListener('phone-island-call-actions-close', () => {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n })\n function toggleActionsExpanded() {\n if (actionsExpanded) {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n } else {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n }\n }\n\n const { t } = useTranslation()\n // Phone island header section\n return (\n <>\n <div\n className={`${\n !intrudeListenStatus.isListen && !intrudeListenStatus.isIntrude\n ? 'pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'\n : intrudeListenStatus.isIntrude\n ? 'pi-mb-6 pi-grid pi-grid-cols-1 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'\n : 'pi-hidden'\n } `}\n >\n {!(intrudeListenStatus.isIntrude || intrudeListenStatus.isListen) && (\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n data-tooltip-id='tooltip-pause'\n data-tooltip-content={paused ? `${t('Tooltip.Play')}` : `${t('Tooltip.Pause')}`}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPause} />\n )}\n </Button>\n )}\n {!intrudeListenStatus.isListen && (\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n data-tooltip-id='tooltip-mute'\n data-tooltip-content={muted ? `${t('Tooltip.Unmute')}` : `${t('Tooltip.Mute')}`}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophone} />\n )}\n </Button>\n )}\n\n {!(intrudeListenStatus.isIntrude || intrudeListenStatus.isListen) && (\n <Button\n active={transferring}\n onClick={transferring ? cancelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip-transfer'\n data-tooltip-content={\n transferring ? `${t('Tooltip.Cancel transfer')}` : `${t('Tooltip.Transfer')}`\n }\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' className='pi-rotate-90' icon={faArrowRightArrowLeft} />\n )}\n </Button>\n )}\n\n {!(intrudeListenStatus.isIntrude || intrudeListenStatus.isListen) && (\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={() => toggleActionsExpanded()}\n data-tooltip-id='tooltip-expand'\n data-tooltip-content={\n actionsExpanded ? `${t('Tooltip.Collapse')}` : `${t('Tooltip.Expand')}`\n }\n >\n {actionsExpanded ? (\n <FontAwesomeIcon\n className='pi-text-gray-700 dark:pi-text-gray-100'\n size='xl'\n icon={faChevronUp}\n />\n ) : (\n <FontAwesomeIcon\n size='xl'\n className='pi-text-gray-700 dark:pi-text-gray-100'\n icon={faChevronDown}\n />\n )}\n </Button>\n )}\n </div>\n {/* Actions expanded section */}\n {actionsExpanded ? (\n <>\n {' '}\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n active={view === 'keypad'}\n variant='default'\n onClick={openKeypad}\n data-tooltip-id='tooltip-keyboard'\n data-tooltip-content={t('Tooltip.Keyboard') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faGridRound} />\n </Button>\n <Button\n active={isRecording}\n data-stop-propagation={true}\n variant='default'\n onClick={() => recordCurrentCall(isRecording)}\n data-tooltip-id='tooltip-record'\n data-tooltip-content={\n isRecording ? t('Tooltip.Stop recording') || '' : t('Tooltip.Record') || ''\n }\n >\n {isRecording ? (\n <FontAwesomeIcon icon={faStop} size='xl' />\n ) : (\n <div className='custom-circle-dot-wrapper' data-stop-propagation={true}>\n <FontAwesomeIcon icon={faCircleDot} />\n <FontAwesomeIcon icon={faCircle} className='inner-dot' />\n </div>\n )}\n </Button>\n <Button\n active={parked}\n variant='default'\n onClick={parkCurrentCall}\n data-tooltip-id='tooltip-park'\n data-tooltip-content={t('Tooltip.Park') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faSquareParking} />\n </Button>\n {transferring && <TransferActions />}\n </div>\n </>\n ) : (\n <></>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip-transfer' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-pause' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-mute' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-expand' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-keyboard' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-record' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-park' place='bottom' />\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","isRecording","parked","_b","island","view","actionsExpanded","transferring","intrudeListenStatus","listen","dispatch","useDispatch","openKeypad","setIslandView","eventDispatch","transfer","cancelTransfer","isWebRTC","sendDTMF","sendPhysicalDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","useEventListener","toggleActionsExpanded","t","useTranslation","React","createElement","Fragment","className","concat","isListen","isIntrude","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPause","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophone","faArrowDownUpAcrossLine","faArrowRightArrowLeft","faChevronUp","faChevronDown","faGridRound","recordCurrentCall","faStop","faCircleDot","faCircle","parkCurrentCall","faSquareParking","TransferActions","Tooltip","id","place"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js");require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var l=require("../Button.js"),a=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var o=require("./Timer.js"),s=require("./Number.js"),u=require("./DisplayName.js"),d=require("./Avatar.js"),c=require("./Actions.js"),p=require("../Hangup.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var m=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=v(e);function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js");require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var l=require("../Button.js"),a=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var o=require("./Timer.js"),s=require("./Number.js"),u=require("./DisplayName.js"),d=require("./Avatar.js"),c=require("./Actions.js"),p=require("../Hangup.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var m=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=v(e);function E(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),v=e.incoming,j=e.accepted,w=e.outgoing,b=e.startTime,x=e.paused;e.username;var h=e.number,q=e.isRecording,y=f.useSelector((function(e){return e.currentCall})),_=f.useSelector((function(e){return e.island})).isOpen,I=f.useSelector((function(e){return e.webrtc})).remoteAudioStream,A=f.useSelector((function(e){return e.listen})),N=f.useSelector((function(e){return e.listen})),S=N.isListen,L=N.isIntrude,T=m.useTranslation().t;return g.default.createElement("div",{className:"pi-bg-red pi-content-center pi-justify-center"},g.default.createElement(t.StyledCallView,{incoming:v,accepted:j,outgoing:w,isOpen:_},g.default.createElement(t.StyledTopContent,{isOpen:_,incoming:v,accepted:j,outgoing:w},(null==A?void 0:A.isListen)?g.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover"),icon:n.faEarListen}):(null==A?void 0:A.isIntrude)?g.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover"),icon:n.faHandPointUp}):""!==h&&""!==(null==y?void 0:y.username)&&"undefined"!==(null==y?void 0:y.username)?g.default.createElement(d.default,null):(!v||""!==(null==y?void 0:y.username)&&"undefined"!==(null==y?void 0:y.username))&&(!j||w||""!==(null==y?void 0:y.username)&&"undefined"!==(null==y?void 0:y.username))?!w||""!==(null==y?void 0:y.username)&&"undefined"!==(null==y?void 0:y.username)?w&&j&&(""===(null==y?void 0:y.username)||"undefined"===(null==y?void 0:y.username))?g.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]"),icon:n.faArrowLeft}):g.default.createElement(g.default.Fragment,null):g.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]"),icon:n.faArrowLeft}):g.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi--rotate-45":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi--rotate-45"),icon:n.faArrowLeft}),_?(null==A?void 0:A.isIntrude)?g.default.createElement(t.StyledDetails,null,g.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"}," ",T("Common.Intrude"),(null==A?void 0:A.isIntrudeExtension)?" - ".concat(null==A?void 0:A.isIntrudeExtension):""),j?g.default.createElement(o.default,{startTime:b,isHome:!0}):(null==A?void 0:A.isIntrudeExtension)?"".concat(null==A?void 0:A.isIntrudeExtension):""):(null==A?void 0:A.isListen)?g.default.createElement(t.StyledDetails,null,g.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"}," ",T("Common.Listen"),(null==A?void 0:A.isListenExtension)?" - ".concat(null==A?void 0:A.isListenExtension):""),j?g.default.createElement(o.default,{startTime:b,isHome:!0}):(null==A?void 0:A.isListenExtension)?"".concat(null==A?void 0:A.isListenExtension):""," "):g.default.createElement(t.StyledDetails,null,g.default.createElement(u.default,null),j?g.default.createElement(o.default,{startTime:b,isHome:!0}):g.default.createElement(s.default,null)):null,!_&&!j&&g.default.createElement(u.default,null),!_&&j&&g.default.createElement(o.default,{startTime:b,isHome:!0}),j&&q?g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:"".concat(_?"pi-h-12 pi-w-12":"pi-h-6 pi-w-6"," pi-flex pi-justify-center pi-items-center")},g.default.createElement("div",{className:"".concat(_?"pi-h-8":"pi-h-4 pi-w-4 pi-rounded-full"," pi-w-fit pi-flex pi-justify-center pi-items-center pi-gap-1 pi-overflow-hidden")},g.default.createElement("span",{className:"".concat(_?"pi-w-8 pi-h-8":"pi-h-6 pi-w-6"," pi-animate-ping pi-absolute pi-inline-flex pi-rounded-full pi-bg-red-400 pi-opacity-75 ")}),g.default.createElement(i.FontAwesomeIcon,{className:"pi-w-4 pi-h-6 pi-rotate-45 pi-text-red-500",icon:n.faCircle})))):j&&I?g.default.createElement(g.default.Fragment,null,g.default.createElement(a.AudioBars,{audioStream:I,paused:x,size:_?"large":"small"})):g.default.createElement(g.default.Fragment,null)),_&&g.default.createElement("div",{className:"".concat(S||L?"":"pi-grid pi-gap-y-5"," ")},j&&g.default.createElement(c.default,null),g.default.createElement("div",{className:"pi-grid ".concat(E(w,j)?"pi-grid-cols-2":j?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"," pi-gap-3.5")},g.default.createElement(p.default,{description:T("Tooltip.Hangup and transfer")}),E(w,j)&&g.default.createElement(l.Button,{onClick:r.answerIncomingCall,variant:"green","data-tooltip-id":"tooltip-left","data-tooltip-content":T("Tooltip.Answer")||""},g.default.createElement(i.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:n.faPhone}))))))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone, faEarListen, faHandPointUp, faArrowLeft } from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\nimport { useTranslation } from 'react-i18next'\nimport { Tooltip } from 'react-tooltip'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall state\n const { incoming, accepted, outgoing, startTime, paused, username, number } = useSelector(\n (state: RootState) => state.currentCall,\n )\n\n const currentCallDetails: any = useSelector((state: RootState) => state.currentCall)\n // Get isOpen and view from island state\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc state\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-bg-red pi-content-center pi-justify-center'>\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent\n isOpen={isOpen}\n incoming={incoming}\n accepted={accepted}\n outgoing={outgoing}\n >\n {intrudeListenStatus?.isListen ? (\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faEarListen}\n />\n ) : intrudeListenStatus?.isIntrude ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faHandPointUp}\n />\n ) : number !== '' &&\n currentCallDetails?.username !== '' &&\n currentCallDetails?.username !== 'undefined' ? (\n <Avatar />\n ) : incoming &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi--rotate-45'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi--rotate-45'\n }`}\n icon={faArrowLeft}\n />\n ) : accepted &&\n !outgoing &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi--rotate-45'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi--rotate-45'\n }`}\n icon={faArrowLeft}\n />\n ) : outgoing &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n // set a loading avatar when the call is not attached to a user\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n }`}\n icon={faArrowLeft}\n />\n ) : outgoing &&\n accepted &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n // set a loading avatar when the call is not attached to a user\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n }`}\n icon={faArrowLeft}\n />\n ) : (\n <></>\n )}\n {isOpen ? (\n intrudeListenStatus?.isIntrude ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Intrude')}\n {intrudeListenStatus?.isIntrudeExtension\n ? ` - ${intrudeListenStatus?.isIntrudeExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} isHome/>\n ) : intrudeListenStatus?.isIntrudeExtension ? (\n `${intrudeListenStatus?.isIntrudeExtension}`\n ) : (\n ''\n )}\n </StyledDetails>\n ) : intrudeListenStatus?.isListen ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Listen')}\n {intrudeListenStatus?.isListenExtension\n ? ` - ${intrudeListenStatus?.isListenExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} isHome/>\n ) : intrudeListenStatus?.isListenExtension ? (\n `${intrudeListenStatus?.isListenExtension}`\n ) : (\n ''\n )}{' '}\n </StyledDetails>\n ) : (\n <StyledDetails>\n <DisplayName />\n {accepted ? <Timer startTime={startTime} isHome/> : <Number />}\n </StyledDetails>\n )\n ) : null}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} isHome/>}\n {accepted && remoteAudioStream && (\n <AudioBars\n audioStream={remoteAudioStream}\n paused={paused}\n size={isOpen ? 'large' : 'small'}\n />\n )}\n </StyledTopContent>\n {isOpen && (\n <div className='pi-grid pi-gap-y-5'>\n {accepted && <Actions />}\n <div\n className={`pi-grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'pi-grid-cols-2'\n : accepted\n ? 'pi-grid-cols-1 pi-justify-items-center'\n : 'pi-grid-cols-1 pi-justify-items-end'\n } pi-gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n {/* {incoming || outgoing ? (\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='pi-rotate-135 pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n ) : ( */}\n <Hangup description={t('Tooltip.Hangup and transfer')} />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button\n onClick={answerIncomingCall}\n variant='green'\n data-tooltip-id='tooltip-left'\n data-tooltip-content={t('Tooltip.Answer') || ''}\n >\n <FontAwesomeIcon className='pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n </div>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","startTime","paused","username","number","currentCallDetails","isOpen","island","remoteAudioStream","webrtc","intrudeListenStatus","listen","t","useTranslation","React","createElement","className","StyledCallView","StyledTopContent","isListen","FontAwesomeIcon","icon","faEarListen","isIntrude","faHandPointUp","Avatar","faArrowLeft","StyledDetails","isIntrudeExtension","Timer","isHome","concat","isListenExtension","DisplayName","Number","AudioBars","audioStream","size","Actions","Hangup","description","Button","onClick","answerIncomingCall","variant","faPhone"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPhone,\n faEarListen,\n faHandPointUp,\n faArrowLeft,\n faCircle,\n} from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\nimport { useTranslation } from 'react-i18next'\nimport { Tooltip } from 'react-tooltip'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall state\n const { incoming, accepted, outgoing, startTime, paused, username, number, isRecording } =\n useSelector((state: RootState) => state.currentCall)\n\n const currentCallDetails: any = useSelector((state: RootState) => state.currentCall)\n // Get isOpen and view from island state\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc state\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n const { isListen, isIntrude } = useSelector((state: RootState) => state.listen)\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-bg-red pi-content-center pi-justify-center'>\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent\n isOpen={isOpen}\n incoming={incoming}\n accepted={accepted}\n outgoing={outgoing}\n >\n {intrudeListenStatus?.isListen ? (\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faEarListen}\n />\n ) : intrudeListenStatus?.isIntrude ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faHandPointUp}\n />\n ) : number !== '' &&\n currentCallDetails?.username !== '' &&\n currentCallDetails?.username !== 'undefined' ? (\n <Avatar />\n ) : incoming &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi--rotate-45'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi--rotate-45'\n }`}\n icon={faArrowLeft}\n />\n ) : accepted &&\n !outgoing &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi--rotate-45'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi--rotate-45'\n }`}\n icon={faArrowLeft}\n />\n ) : outgoing &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n // set a loading avatar when the call is not attached to a user\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n }`}\n icon={faArrowLeft}\n />\n ) : outgoing &&\n accepted &&\n (currentCallDetails?.username === '' ||\n currentCallDetails?.username === 'undefined') ? (\n // set a loading avatar when the call is not attached to a user\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover pi-rotate-[135deg]'\n }`}\n icon={faArrowLeft}\n />\n ) : (\n <></>\n )}\n {isOpen ? (\n intrudeListenStatus?.isIntrude ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Intrude')}\n {intrudeListenStatus?.isIntrudeExtension\n ? ` - ${intrudeListenStatus?.isIntrudeExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} isHome />\n ) : intrudeListenStatus?.isIntrudeExtension ? (\n `${intrudeListenStatus?.isIntrudeExtension}`\n ) : (\n ''\n )}\n </StyledDetails>\n ) : intrudeListenStatus?.isListen ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Listen')}\n {intrudeListenStatus?.isListenExtension\n ? ` - ${intrudeListenStatus?.isListenExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} isHome />\n ) : intrudeListenStatus?.isListenExtension ? (\n `${intrudeListenStatus?.isListenExtension}`\n ) : (\n ''\n )}{' '}\n </StyledDetails>\n ) : (\n <StyledDetails>\n <DisplayName />\n {accepted ? <Timer startTime={startTime} isHome /> : <Number />}\n </StyledDetails>\n )\n ) : null}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} isHome />}\n {accepted && isRecording ? (\n <>\n <div\n className={`${\n !isOpen ? 'pi-h-6 pi-w-6' : 'pi-h-12 pi-w-12'\n } pi-flex pi-justify-center pi-items-center`}\n >\n <div\n className={`${\n !isOpen ? 'pi-h-4 pi-w-4 pi-rounded-full' : 'pi-h-8'\n } pi-w-fit pi-flex pi-justify-center pi-items-center pi-gap-1 pi-overflow-hidden`}\n >\n <span\n className={`${\n !isOpen ? 'pi-h-6 pi-w-6' : 'pi-w-8 pi-h-8'\n } pi-animate-ping pi-absolute pi-inline-flex pi-rounded-full pi-bg-red-400 pi-opacity-75 `}\n ></span>\n <FontAwesomeIcon\n className='pi-w-4 pi-h-6 pi-rotate-45 pi-text-red-500'\n icon={faCircle}\n ></FontAwesomeIcon>\n </div>\n </div>\n </>\n ) : accepted && remoteAudioStream ? (\n <>\n <AudioBars\n audioStream={remoteAudioStream}\n paused={paused}\n size={isOpen ? 'large' : 'small'}\n />\n </>\n ) : (\n <></>\n )}\n </StyledTopContent>\n {isOpen && (\n <div className={`${!(isListen || isIntrude) ? 'pi-grid pi-gap-y-5' : ''} `}>\n {accepted && <Actions />}\n <div\n className={`pi-grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'pi-grid-cols-2'\n : accepted\n ? 'pi-grid-cols-1 pi-justify-items-center'\n : 'pi-grid-cols-1 pi-justify-items-end'\n } pi-gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n {/* {incoming || outgoing ? (\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='pi-rotate-135 pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n ) : ( */}\n <Hangup description={t('Tooltip.Hangup and transfer')} />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button\n onClick={answerIncomingCall}\n variant='green'\n data-tooltip-id='tooltip-left'\n data-tooltip-content={t('Tooltip.Answer') || ''}\n >\n <FontAwesomeIcon className='pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n </div>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","startTime","paused","number","isRecording","currentCallDetails","isOpen","island","remoteAudioStream","webrtc","intrudeListenStatus","listen","_b","isListen","isIntrude","t","useTranslation","React","createElement","className","StyledCallView","StyledTopContent","FontAwesomeIcon","icon","faEarListen","faHandPointUp","username","Avatar","faArrowLeft","StyledDetails","isIntrudeExtension","Timer","isHome","concat","isListenExtension","DisplayName","Number","Fragment","faCircle","AudioBars","audioStream","size","Actions","Hangup","description","Button","onClick","answerIncomingCall","variant","faPhone"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var s=require("../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../node_modules/react-i18next/dist/es/context.js");var a=require("../node_modules/react-i18next/dist/es/useTranslation.js");require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var n=require("./SwitchInputView/DropdownContent.js"),l=require("../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../node_modules/react-redux/es/hooks/useDispatch.js"),d=require("../_virtual/framer-motion.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=c(e);exports.default=function(e){e.clickCallback,e.isDestination;var c=e.description,m=l.useSelector((function(e){return e.currentCall})),f=m.transferring,j=m.incoming,x=m.accepted,_=u.useDispatch(),h=l.useSelector((function(e){return e.island})).isOpen;var q=a.useTranslation().t;return p.default.createElement(p.default.Fragment,null,p.default.createElement("div",{className:" ".concat(f?"pi-grid pi-w-full pi-space-x-2 pi-justify-start":"pi-flex pi-justify-center")},p.default.createElement(d.framerMotion.exports.motion.div,{className:"".concat(f&&c?"pi-grid pi-grid-cols-[12rem,1rem] pi-ml-4 pi-justify-start":"pi-flex pi-w-12"," ")},p.default.createElement(t.Button,{onClick:function(){return j?o.hangupAllExtensions():o.hangupCurrentCall(),void(f&&setTimeout((function(){_.alerts.setAlert("call_transfered"),setTimeout((function(){_.alerts.removeAlert("call_transfered")}),2e3)}),300))},variant:"red",className:"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full","data-tooltip-id":c&&f?"tooltip-top-transfer":"tooltip-left-transfer","data-tooltip-content":c&&f?c:"".concat(q("Tooltip.Hangup"))},p.default.createElement(r.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:i.faPhone}),f&&c&&p.default.createElement(d.framerMotion.exports.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},c)),h&&x&&p.default.createElement("div",{className:"".concat(f&&c?"pi-grid pi-grid-cols-1 pi-ml-8":"pi-flex pi-items-center pi-justify-end pi-ml-16")},p.default.createElement(n.default,{"data-stop-propagation":!0})))),p.default.createElement(s.Tooltip,{className:"pi-z-20",id:"tooltip-left-transfer",place:"left"}),p.default.createElement(s.Tooltip,{className:"pi-z-20",id:"tooltip-top-transfer",place:"top"}))};
|
|
2
2
|
//# sourceMappingURL=Hangup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@fortawesome/free-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { hangupAllExtensions } from '../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport DropdownContent from './SwitchInputView/DropdownContent'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination, description }) => {\n const { transferring, incoming, accepted } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n }, 2000)\n }, 300)\n }\n }\n\n const { t } = useTranslation()\n\n // Phone island footer section\n return (\n <>\n <div\n className={` ${\n transferring\n ? 'pi-grid pi-w-full pi-space-x-2 pi-justify-start'\n : 'pi-flex pi-justify-center'\n }`}\n >\n {/* The button to hangup the currentCall */}\n <motion.div\n className={`${\n transferring && description\n ? 'pi-grid pi-grid-cols-[12rem,1rem] pi-ml-4 pi-justify-start'\n : 'pi-flex pi-w-12'\n } `}\n >\n <Button\n onClick={() => handleHangup()}\n variant='red'\n className='pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n data-tooltip-id={description && transferring ? 'tooltip-top' : 'tooltip-left'}\n data-tooltip-content={\n description && transferring ? description : `${t('Tooltip.Hangup')}`\n }\n // data-tooltip-placement=\"top\"\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {transferring && description && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n {description}\n </motion.div>\n )}\n </Button>\n {isOpen && accepted && (\n <div\n className={`${\n transferring && description\n ? 'pi-grid pi-grid-cols-1 pi-ml-8'\n : 'pi-flex pi-items-center pi-justify-end pi-ml-16'\n }`}\n >\n <DropdownContent data-stop-propagation={true}></DropdownContent>\n </div>\n )}\n </motion.div>\n </div>\n <Tooltip className='pi-z-20' id='tooltip
|
|
1
|
+
{"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@fortawesome/free-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { hangupAllExtensions } from '../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport DropdownContent from './SwitchInputView/DropdownContent'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination, description }) => {\n const { transferring, incoming, accepted } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n }, 2000)\n }, 300)\n }\n }\n\n const { t } = useTranslation()\n\n // Phone island footer section\n return (\n <>\n <div\n className={` ${\n transferring\n ? 'pi-grid pi-w-full pi-space-x-2 pi-justify-start'\n : 'pi-flex pi-justify-center'\n }`}\n >\n {/* The button to hangup the currentCall */}\n <motion.div\n className={`${\n transferring && description\n ? 'pi-grid pi-grid-cols-[12rem,1rem] pi-ml-4 pi-justify-start'\n : 'pi-flex pi-w-12'\n } `}\n >\n <Button\n onClick={() => handleHangup()}\n variant='red'\n className='pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n data-tooltip-id={description && transferring ? 'tooltip-top-transfer' : 'tooltip-left-transfer'}\n data-tooltip-content={\n description && transferring ? description : `${t('Tooltip.Hangup')}`\n }\n // data-tooltip-placement=\"top\"\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {transferring && description && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n {description}\n </motion.div>\n )}\n </Button>\n {isOpen && accepted && (\n <div\n className={`${\n transferring && description\n ? 'pi-grid pi-grid-cols-1 pi-ml-8'\n : 'pi-flex pi-items-center pi-justify-end pi-ml-16'\n }`}\n >\n <DropdownContent data-stop-propagation={true}></DropdownContent>\n </div>\n )}\n </motion.div>\n </div>\n <Tooltip className='pi-z-20' id='tooltip-left-transfer' place='left' />\n <Tooltip className='pi-z-20' id='tooltip-top-transfer' place='top' />\n </>\n )\n}\n\nexport default Hangup\n\ninterface HangupProps {\n clickCallback?: () => void\n isDestination?: boolean\n description?: any\n}\n"],"names":["_a","isDestination","description","_b","useSelector","state","currentCall","transferring","incoming","accepted","dispatch","useDispatch","isOpen","island","t","useTranslation","React","createElement","Fragment","className","concat","motion","div","Button","onClick","hangupAllExtensions","hangupCurrentCall","setTimeout","alerts","setAlert","removeAlert","variant","FontAwesomeIcon","icon","faPhone","framerMotion","exports","style","height","DropdownContent","Tooltip","id","place"],"mappings":"g4CAoBgC,SAACA,mBAA8BA,EAAAC,cAAE,IAAAC,EAAWF,EAAAE,YACpEC,EAAuCC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,eAA7EC,EAAYJ,EAAAI,aAAEC,EAAQL,EAAAK,SAAEC,EAAQN,EAAAM,SAClCC,EAAWC,EAAAA,cACTC,EAAWR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,iBAmBnD,IAAAC,EAAMC,qBAGd,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EACE,QAAAC,cAAA,MAAA,CAAAE,UAAW,IAAAC,OACTb,EACI,kDACA,8BAINS,UAACC,cAAAI,EAAAA,aAAAA,QAAAA,OAAOC,IAAG,CACTH,UAAW,GAAAC,OACTb,GAAgBL,EACZ,6DACA,kBACH,MAEHc,EAAAA,QAACC,cAAAM,EAAAA,QACCC,QAAS,WAAM,OArCnBhB,EACFiB,EAAAA,sBAEAC,EAAAA,yBAGEnB,GACFoB,YAAW,WACTjB,EAASkB,OAAOC,SAAS,mBACzBF,YAAW,WACTjB,EAASkB,OAAOE,YAAY,kBAC7B,GAAE,IACJ,GAAE,KAyBgC,EAC7BC,QAAQ,MACRZ,UAAU,2EAA0E,kBACnEjB,GAAeK,EAAe,uBAAyB,wBAEtE,uBAAAL,GAAeK,EAAeL,EAAc,UAAGY,EAAE,oBAInDE,EAAC,QAAAC,cAAAe,mBAAgBb,UAAU,8BAA8Bc,KAAMC,EAAAA,UAC9D3B,GAAgBL,GACfc,EAAA,QAAAC,cAACI,EAAMc,aAAAC,QAAAf,OAACC,IACN,CAAAe,MAAO,CAAEC,OAAQ,QACjBnB,UAAU,2CAETjB,IAINU,GAAUH,GACTO,EAAA,QAAAC,cAAA,MAAA,CACEE,UAAW,GAAAC,OACTb,GAAgBL,EACZ,iCACA,oDAGNc,EAAA,QAAAC,cAACsB,UAAuC,CAAA,yBAAA,OAKhDvB,UAAAC,cAACuB,EAAOA,QAAA,CAACrB,UAAU,UAAUsB,GAAG,wBAAwBC,MAAM,SAC9D1B,EAAAA,QAAAC,cAACuB,UAAQ,CAAArB,UAAU,UAAUsB,GAAG,uBAAuBC,MAAM,QAGnE"}
|
|
@@ -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"),require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../_virtual/framer-motion.js");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js"),require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../_virtual/framer-motion.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=i(e),r=function(e){var i=e.children,r=t.useSelector((function(e){return e.currentCall})),n=r.incoming,h=r.outgoing,l=r.accepted,o=r.transferring,c=t.useSelector((function(e){return e.listen})).isListen,s=t.useSelector((function(e){return e.island})),p=s.view,g=s.isOpen,u=s.actionsExpanded,x=t.useSelector((function(e){return e.alerts.status})).activeAlertsCount,w=t.useSelector((function(e){return e.motions})),f=w.variants,m=w.border_radius_collapsed,v=w.border_radius_expanded,_=w.padding_x_collapsed,y=w.padding_y_collapsed,b=w.padding_expanded;var k=function(){var e={width:0,height:0};switch(p){case"call":g?l&&o?e=u?{width:f.call.expanded.transfer.actionsExpanded.width,height:f.call.expanded.transfer.actionsExpanded.height}:{width:f.call.expanded.transfer.width,height:f.call.expanded.transfer.height}:l&&u?e={width:f.call.expanded.accepted.actionsExpanded.width,height:f.call.expanded.accepted.actionsExpanded.height}:l&&!c?e={width:f.call.expanded.accepted.width,height:f.call.expanded.accepted.height}:l&&c?e={width:f.call.expanded.listening.width,height:f.call.expanded.listening.height}:n?e={width:f.call.expanded.incoming.width,height:f.call.expanded.incoming.height}:h&&(e={width:f.call.expanded.outgoing.width,height:f.call.expanded.outgoing.height}):e={width:f.call.collapsed.width,height:f.call.collapsed.height};break;case"keypad":e=g?{width:f.keypad.expanded.width,height:f.keypad.expanded.height}:{width:f.transfer.collapsed.width,height:f.transfer.collapsed.height};break;case"transfer":e=g?{width:f.transfer.expanded.width,height:f.transfer.expanded.height}:{width:f.transfer.collapsed.width,height:f.transfer.collapsed.height};break;case"player":e=g?{width:f.player.expanded.width,height:f.player.expanded.height}:{width:f.player.collapsed.width,height:f.player.collapsed.height};break;case"recorder":e=g?{width:f.recorder.expanded.width,height:f.recorder.expanded.height}:{width:f.recorder.collapsed.width,height:f.recorder.collapsed.height}}var t=x>0;return{width:"".concat(0===e.width&&t?f.alerts.width:e.width,"px"),height:"".concat(t&&g?e.height+f.alerts.height+(0===e.height?2*b:b):e.height,"px"),borderRadius:"".concat(g?v:m,"px"),padding:g?"".concat(b,"px"):"".concat(_,"px ").concat(y,"px")}}();return a.default.createElement(d.framerMotion.exports.motion.div,{className:"pi-font-sans pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs pi-cursor-pointer dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow",animate:k},i&&i)};exports.IslandMotion=r,exports.default=r;
|
|
2
2
|
//# sourceMappingURL=IslandMotion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion/dist/framer-motion'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const { incoming, outgoing, accepted, transferring } = useSelector(\n (state: RootState) => state.currentCall,\n )\n const { view, isOpen, actionsExpanded } = useSelector((state: RootState) => state.island)\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n\n function getVariant() {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n }\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring) {\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) {\n size = {\n width: variants.call.expanded.accepted.width,\n height: variants.call.expanded.accepted.height,\n }\n } else if (incoming) {\n size = {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (outgoing) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n case 'keypad':\n if (isOpen) {\n size = {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n } else {\n size = {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n }\n break\n case 'transfer':\n if (isOpen) {\n size = {\n width: variants.transfer.expanded.width,\n height: variants.transfer.expanded.height,\n }\n } else {\n size = {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n }\n break\n case 'player':\n if (isOpen) {\n size = {\n width: variants.player.expanded.width,\n height: variants.player.expanded.height,\n }\n } else {\n size = {\n width: variants.player.collapsed.width,\n height: variants.player.collapsed.height,\n }\n }\n break\n case 'recorder':\n if (isOpen) {\n size = {\n width: variants.recorder.expanded.width,\n height: variants.recorder.expanded.height,\n }\n } else {\n size = {\n width: variants.recorder.collapsed.width,\n height: variants.recorder.collapsed.height,\n }\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 isAlert && isOpen\n ? size.height +\n variants.alerts.height +\n (size.height === 0 ? padding_expanded * 2 : padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen ? `${border_radius_expanded}px` : `${border_radius_collapsed}px`,\n padding: isOpen\n ? `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }\n\n const motionVariants = getVariant()\n\n return (\n <motion.div\n className='pi-font-sans pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs pi-cursor-pointer dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow'\n animate={motionVariants}\n >\n {children && children}\n </motion.div>\n )\n}\n\nexport interface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","_c","island","view","isOpen","actionsExpanded","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","padding_x_collapsed","padding_y_collapsed","padding_expanded","motionVariants","size","width","height","call","expanded","transfer","collapsed","keypad","player","recorder","isAlert","concat","borderRadius","padding","getVariant","React","createElement","motion","framerMotion","exports","div","className","animate"],"mappings":"+YAQaA,EAAsC,SAACC,GAAE,IAAAC,EAAQD,EAAAC,SAEtDC,EAAiDC,eACrD,SAACC,GAAqB,OAAAA,EAAMC,eADtBC,EAAQJ,EAAAI,SAAEC,EAAQL,EAAAK,SAAEC,EAAQN,EAAAM,SAAEC,EAAYP,EAAAO,
|
|
1
|
+
{"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion/dist/framer-motion'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const { incoming, outgoing, accepted, transferring } = useSelector(\n (state: RootState) => state.currentCall,\n )\n const { isListen } = useSelector((state: RootState) => state.listen)\n const { view, isOpen, actionsExpanded } = useSelector((state: RootState) => state.island)\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n\n function getVariant() {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n }\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring) {\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) {\n size = {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (outgoing) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n case 'keypad':\n if (isOpen) {\n size = {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n } else {\n size = {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n }\n break\n case 'transfer':\n if (isOpen) {\n size = {\n width: variants.transfer.expanded.width,\n height: variants.transfer.expanded.height,\n }\n } else {\n size = {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n }\n break\n case 'player':\n if (isOpen) {\n size = {\n width: variants.player.expanded.width,\n height: variants.player.expanded.height,\n }\n } else {\n size = {\n width: variants.player.collapsed.width,\n height: variants.player.collapsed.height,\n }\n }\n break\n case 'recorder':\n if (isOpen) {\n size = {\n width: variants.recorder.expanded.width,\n height: variants.recorder.expanded.height,\n }\n } else {\n size = {\n width: variants.recorder.collapsed.width,\n height: variants.recorder.collapsed.height,\n }\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 isAlert && isOpen\n ? size.height +\n variants.alerts.height +\n (size.height === 0 ? padding_expanded * 2 : padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen ? `${border_radius_expanded}px` : `${border_radius_collapsed}px`,\n padding: isOpen\n ? `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }\n\n const motionVariants = getVariant()\n\n return (\n <motion.div\n className='pi-font-sans pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs pi-cursor-pointer dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow'\n animate={motionVariants}\n >\n {children && children}\n </motion.div>\n )\n}\n\nexport interface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","isListen","listen","_c","island","view","isOpen","actionsExpanded","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","padding_x_collapsed","padding_y_collapsed","padding_expanded","motionVariants","size","width","height","call","expanded","transfer","listening","collapsed","keypad","player","recorder","isAlert","concat","borderRadius","padding","getVariant","React","createElement","motion","framerMotion","exports","div","className","animate"],"mappings":"+YAQaA,EAAsC,SAACC,GAAE,IAAAC,EAAQD,EAAAC,SAEtDC,EAAiDC,eACrD,SAACC,GAAqB,OAAAA,EAAMC,eADtBC,EAAQJ,EAAAI,SAAEC,EAAQL,EAAAK,SAAEC,EAAQN,EAAAM,SAAEC,EAAYP,EAAAO,aAG1CC,EAAaP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,mBACvDC,EAAoCT,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMS,UAA1EC,EAAIF,EAAAE,KAAEC,EAAMH,EAAAG,OAAEC,EAAeJ,EAAAI,gBAC7BC,EAAsBd,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMc,OAAOC,4BACvEC,EAOFjB,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMiB,OAAN,IANpCC,EAAQF,EAAAE,SACRC,EAAuBH,EAAAG,wBACvBC,2BACAC,EAAmBL,EAAAK,oBACnBC,EAAmBN,EAAAM,oBACnBC,qBAiIF,IAAMC,EA9HN,WAEE,IAAIC,EAAkB,CACpBC,MAAO,EACPC,OAAQ,GAEV,OAAQjB,GACN,IAAK,OACCC,EACEP,GAAYC,EAEZoB,EADEb,EACK,CACLc,MAAOR,EAASU,KAAKC,SAASC,SAASlB,gBAAgBc,MACvDC,OAAQT,EAASU,KAAKC,SAASC,SAASlB,gBAAgBe,QAGnD,CACLD,MAAOR,EAASU,KAAKC,SAASC,SAASJ,MACvCC,OAAQT,EAASU,KAAKC,SAASC,SAASH,QAGnCvB,GAAYQ,EACrBa,EAAO,CACLC,MAAOR,EAASU,KAAKC,SAASzB,SAASQ,gBAAgBc,MACvDC,OAAQT,EAASU,KAAKC,SAASzB,SAASQ,gBAAgBe,QAEjDvB,IAAaE,EACtBmB,EAAO,CACLC,MAAOR,EAASU,KAAKC,SAASzB,SAASsB,MACvCC,OAAQT,EAASU,KAAKC,SAASzB,SAASuB,QAEjCvB,GAAa,EACtBqB,EAAO,CACLC,MAAOR,EAASU,KAAKC,SAASE,UAAUL,MACxCC,OAAQT,EAASU,KAAKC,SAASE,UAAUJ,QAElCzB,EACTuB,EAAO,CACLC,MAAOR,EAASU,KAAKC,SAAS3B,SAASwB,MACvCC,OAAQT,EAASU,KAAKC,SAAS3B,SAASyB,QAEjCxB,IACTsB,EAAO,CACLC,MAAOR,EAASU,KAAKC,SAAS1B,SAASuB,MACvCC,OAAQT,EAASU,KAAKC,SAAS1B,SAASwB,SAI5CF,EAAO,CACLC,MAAOR,EAASU,KAAKI,UAAUN,MAC/BC,OAAQT,EAASU,KAAKI,UAAUL,QAGpC,MACF,IAAK,SAEDF,EADEd,EACK,CACLe,MAAOR,EAASe,OAAOJ,SAASH,MAChCC,OAAQT,EAASe,OAAOJ,SAASF,QAG5B,CACLD,MAAOR,EAASY,SAASE,UAAUN,MACnCC,OAAQT,EAASY,SAASE,UAAUL,QAGxC,MACF,IAAK,WAEDF,EADEd,EACK,CACLe,MAAOR,EAASY,SAASD,SAASH,MAClCC,OAAQT,EAASY,SAASD,SAASF,QAG9B,CACLD,MAAOR,EAASY,SAASE,UAAUN,MACnCC,OAAQT,EAASY,SAASE,UAAUL,QAGxC,MACF,IAAK,SAEDF,EADEd,EACK,CACLe,MAAOR,EAASgB,OAAOL,SAASH,MAChCC,OAAQT,EAASgB,OAAOL,SAASF,QAG5B,CACLD,MAAOR,EAASgB,OAAOF,UAAUN,MACjCC,OAAQT,EAASgB,OAAOF,UAAUL,QAGtC,MACF,IAAK,WAEDF,EADEd,EACK,CACLe,MAAOR,EAASiB,SAASN,SAASH,MAClCC,OAAQT,EAASiB,SAASN,SAASF,QAG9B,CACLD,MAAOR,EAASiB,SAASH,UAAUN,MACnCC,OAAQT,EAASiB,SAASH,UAAUL,QAM5C,IAAMS,EAAmBvB,EAAoB,EAE7C,MAAO,CACLa,MAAO,UAAkB,IAAfD,EAAKC,OAAeU,EAAUlB,EAASJ,OAAOY,MAAQD,EAAKC,MAAS,MAC9EC,OAAQ,GAAAU,OACND,GAAWzB,EACPc,EAAKE,OACLT,EAASJ,OAAOa,QACC,IAAhBF,EAAKE,OAAkC,EAAnBJ,EAAuBA,GAC5CE,EAAKE,OACP,MACJW,aAAuB,GAAAD,OAAT1B,EAAYS,EAAgCD,EAAV,MAChDoB,QAAS5B,EACL,GAAG0B,OAAAd,EAAoB,MACvB,GAAAc,OAAGhB,EAAmB,OAAAgB,OAAMf,EAAuB,MAE1D,CAEsBkB,GAEvB,OACEC,UAACC,cAAAC,EAAMC,aAAAC,QAAAF,OAACG,IAAG,CACTC,UAAU,oNACVC,QAASxB,GAER3B,GAAYA,EAGnB"}
|
|
@@ -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"),o=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../services/offhour.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../lib/phone/call.js"),s=require("../../utils/customHooks/useEventListener.js"),l=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var d=require("../../events/RecorderEvents.js"),c=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var u=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var p=require("../SwitchInputView/DropdownContent.js"),m=require("../../node_modules/react-redux/es/utils/shallowEqual.js");require("../../node_modules/react-redux/es/components/Context.js"),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 f=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),g=require("../../node_modules/react-redux/es/hooks/useSelector.js");function
|
|
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"),o=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../services/offhour.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../lib/phone/call.js"),s=require("../../utils/customHooks/useEventListener.js"),l=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var d=require("../../events/RecorderEvents.js"),c=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var u=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var p=require("../SwitchInputView/DropdownContent.js"),m=require("../../node_modules/react-redux/es/utils/shallowEqual.js");require("../../node_modules/react-redux/es/components/Context.js"),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 f=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),g=require("../../node_modules/react-redux/es/hooks/useSelector.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=v(t);exports.Actions=function(){var v=f.useDispatch(),w=g.useSelector((function(e){return{incoming:e.recorder.incoming,waiting:e.recorder.waiting,recording:e.recorder.recording,recorded:e.recorder.recorded,playing:e.recorder.playing}}),m.default),j=w.incoming,y=w.waiting,E=w.recording,x=w.recorded,_=w.playing;function q(){return e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return v.recorder.setRecording(!0),v.recorder.setWaiting(!0),[4,i.startAnnouncementRecording()];case 1:return(t=e.sent()).tempFilename&&v.recorder.setTempFilename(t.tempFilename),v.recorder.setStartTime("".concat(Date.now()/1e3)),l.eventDispatch("phone-island-recording-started",{}),[2]}}))}))}function b(){v.recorder.setWaiting(!0),a.hangupCurrentCall(),v.recorder.setRecorded(!0),l.eventDispatch("phone-island-recording-stopped",{})}function T(){v.player.startAudioPlayer((function(){v.recorder.setPlaying(!1),v.recorder.setPaused(!0)})),v.recorder.setPlaying(!0),l.eventDispatch("phone-island-recording-played",{})}function P(){v.player.pauseAudioPlayer(),v.recorder.setPlaying(!1),v.recorder.setPaused(!0),l.eventDispatch("phone-island-recording-paused",{})}function C(){v.recorder.resetRecorded(),l.eventDispatch("phone-island-recording-deleted",{})}function z(){_&&(v.player.pauseAudioPlayer(),v.recorder.setPlaying(!1),v.recorder.setPaused(!0)),d.dispatchRecordingSave(),v.island.setIslandView(null)}s.useEventListener("phone-island-recording-start",(function(e){q()})),s.useEventListener("phone-island-recording-stop",(function(e){b()})),s.useEventListener("phone-island-recording-play",(function(e){T()})),s.useEventListener("phone-island-recording-pause",(function(e){P()})),s.useEventListener("phone-island-recording-delete",(function(e){C()})),s.useEventListener("phone-island-recording-save",(function(e){z()})),t.useEffect((function(){E||v.recorder.setWaiting(!1)}),[E]),t.useEffect((function(){j&&(a.answerIncomingCall(),v.recorder.setIncoming(!1),v.recorder.setWaiting(!1))}),[j]);var A=u.useTranslation().t;return h.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-pt-9 pi-gap-6",style:x?{paddingTop:"2rem"}:{}},E&&h.default.createElement(r.Button,{onClick:b,variant:"default",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip-stop-recorder-view","data-tooltip-content":A("Tooltip.Stop")||""},y?h.default.createElement(o.FontAwesomeIcon,{icon:n.faCircleNotch,className:"fa-spin pi-loader",size:"lg"}):h.default.createElement(o.FontAwesomeIcon,{icon:n.faStop,size:"xl"})),x&&!E&&h.default.createElement(h.default.Fragment,null,h.default.createElement(r.Button,{onClick:C,variant:"default","data-tooltip-id":"tooltip-delete-recorder-view","data-tooltip-content":A("Tooltip.Delete")||""},h.default.createElement(o.FontAwesomeIcon,{icon:n.faTrash,size:"xl"})),_?h.default.createElement(r.Button,{onClick:P,variant:"default",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip-pause-recorder-view","data-tooltip-content":A("Tooltip.Pause")||""},h.default.createElement(o.FontAwesomeIcon,{icon:n.faPause,size:"xl"})):h.default.createElement(r.Button,{onClick:T,variant:"default",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip-play-recorder-view","data-tooltip-content":A("Tooltip.Play")||""},h.default.createElement(o.FontAwesomeIcon,{icon:n.faPlay,size:"xl"})),h.default.createElement(r.Button,{onClick:z,variant:"green","data-tooltip-id":"tooltip-confirm-record-view","data-tooltip-content":A("Tooltip.Confirm")||""},h.default.createElement(o.FontAwesomeIcon,{icon:n.faCheck,size:"xl"}))),!E&&!x&&h.default.createElement(r.Button,{onClick:q,variant:"red",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip-start-recording-recorder-view","data-tooltip-content":A("Tooltip.Start recording")||"",className:"pi-flex pi-justify-center pi-ml-[4.7rem]"},y?h.default.createElement(o.FontAwesomeIcon,{icon:n.faCircleNotch,className:"fa-spin pi-loader",size:"lg"}):h.default.createElement(o.FontAwesomeIcon,{icon:n.faRecordVinyl,size:"xl"})),!E&&!x&&h.default.createElement("div",{className:"pi-flex-none pi-justify-end pi-ml-11 pi-w-2"},h.default.createElement(p.default,{"data-stop-propagation":!0})),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-start-recording-recorder-view",place:"bottom"}),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-stop-recorder-view",place:"bottom"}),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-play-recorder-view",place:"bottom"}),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-pause-recorder-view",place:"bottom"}),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-delete-recorder-view",place:"bottom"}),h.default.createElement(c.Tooltip,{className:"pi-z-20",id:"tooltip-confirm-record-view",place:"bottom"}))};
|
|
2
2
|
//# sourceMappingURL=Actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../src/components/RecorderView/Actions.tsx"],"sourcesContent":["//\n// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n//\n\nimport React, { type FC, useEffect } from 'react'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faTrash,\n faCheck,\n faRecordVinyl,\n faStop,\n faCircleNotch,\n} from '@fortawesome/free-solid-svg-icons'\nimport { startAnnouncementRecording } from '../../services/offhour'\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { hangupCurrentCall, answerIncomingCall } from '../../lib/phone/call'\nimport { dispatchRecordingSave } from '../../events'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport DropdownContent from '../SwitchInputView/DropdownContent'\n\nexport const Actions: FC<{}> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { incoming, waiting, recording, recorded, playing } = useSelector(\n (state: RootState) => ({\n incoming: state.recorder.incoming,\n waiting: state.recorder.waiting,\n recording: state.recorder.recording,\n recorded: state.recorder.recorded,\n playing: state.recorder.playing,\n }),\n shallowEqual,\n )\n\n async function handleStart() {\n // Update the recorder state\n dispatch.recorder.setRecording(true)\n dispatch.recorder.setWaiting(true)\n // Call the api to start the recording call\n const data: { tempFilename: string } | null = await startAnnouncementRecording()\n // Set the returned temp file name to the store\n if (data.tempFilename) dispatch.recorder.setTempFilename(data.tempFilename)\n // Set the start time of recording\n dispatch.recorder.setStartTime(`${Date.now() / 1000}`)\n eventDispatch('phone-island-recording-started', {})\n }\n useEventListener('phone-island-recording-start', (data: {}) => {\n handleStart()\n })\n\n function handleStop() {\n // Set waiting to true\n dispatch.recorder.setWaiting(true)\n // Call the function to hangup the current call used for recording\n hangupCurrentCall()\n dispatch.recorder.setRecorded(true)\n eventDispatch('phone-island-recording-stopped', {})\n }\n useEventListener('phone-island-recording-stop', (data: {}) => {\n handleStop()\n })\n\n function handlePlay() {\n dispatch.player.startAudioPlayer(() => {\n // The callback for the end event of the audio player\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n })\n dispatch.recorder.setPlaying(true)\n eventDispatch('phone-island-recording-played', {})\n }\n useEventListener('phone-island-recording-play', (data: {}) => {\n handlePlay()\n })\n\n function handlePause() {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n eventDispatch('phone-island-recording-paused', {})\n }\n useEventListener('phone-island-recording-pause', (data: {}) => {\n handlePause()\n })\n\n function handleDelete() {\n dispatch.recorder.resetRecorded()\n eventDispatch('phone-island-recording-deleted', {})\n }\n useEventListener('phone-island-recording-delete', (data: {}) => {\n handleDelete()\n })\n\n function handleSaveRecording() {\n // check if the audio is playing and pause it\n if (playing) {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n }\n // Dispatch the reconrding save event\n dispatchRecordingSave()\n // Close the Island\n dispatch.island.setIslandView(null)\n }\n useEventListener('phone-island-recording-save', (data: {}) => {\n handleSaveRecording()\n })\n\n useEffect(() => {\n if (!recording) {\n dispatch.recorder.setWaiting(false)\n }\n }, [recording])\n\n useEffect(() => {\n if (incoming) {\n // Answer the incoming call for recording\n answerIncomingCall()\n // Reset incoming to recorder state\n dispatch.recorder.setIncoming(false)\n dispatch.recorder.setWaiting(false)\n }\n }, [incoming])\n\n const { t } = useTranslation()\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-pt-9 pi-gap-6`}\n style={recorded ? { paddingTop: '2rem' } : {}}\n >\n {recording && (\n <Button\n onClick={handleStop}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Stop') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faStop} size='xl' />\n )}\n </Button>\n )}\n {recorded && !recording && (\n <>\n <Button\n onClick={handleDelete}\n variant='default'\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Delete') || ''}\n >\n <FontAwesomeIcon icon={faTrash} size='xl' />\n </Button>\n {playing ? (\n <Button\n onClick={handlePause}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Pause') || ''}\n >\n <FontAwesomeIcon icon={faPause} size='xl' />\n </Button>\n ) : (\n <Button\n onClick={handlePlay}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Play') || ''}\n >\n <FontAwesomeIcon icon={faPlay} size='xl' />\n </Button>\n )}\n <Button\n onClick={handleSaveRecording}\n variant='green'\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Confirm') || ''}\n >\n <FontAwesomeIcon icon={faCheck} size='xl' />\n </Button>\n </>\n )}\n {!recording && !recorded && (\n <Button\n onClick={handleStart}\n variant='red'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Start recording') || ''}\n className='pi-flex pi-justify-center pi-ml-[4.7rem]'\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faRecordVinyl} size='xl' />\n )}\n </Button>\n )}\n {!recording && !recorded && (\n <div\n className='pi-flex-none pi-justify-end pi-ml-11 pi-w-2'\n >\n <DropdownContent data-stop-propagation={true}></DropdownContent>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </div>\n )\n}\n"],"names":["dispatch","useDispatch","_a","useSelector","state","incoming","recorder","waiting","recording","recorded","playing","shallowEqual","handleStart","setRecording","setWaiting","startAnnouncementRecording","data","sent","tempFilename","setTempFilename","setStartTime","concat","Date","now","eventDispatch","handleStop","hangupCurrentCall","setRecorded","handlePlay","player","startAudioPlayer","setPlaying","setPaused","handlePause","pauseAudioPlayer","handleDelete","resetRecorded","handleSaveRecording","dispatchRecordingSave","island","setIslandView","useEventListener","useEffect","answerIncomingCall","setIncoming","t","useTranslation","React","className","style","paddingTop","createElement","Button","onClick","variant","transform","FontAwesomeIcon","icon","faCircleNotch","size","faStop","Fragment","faTrash","faPause","faPlay","faCheck","faRecordVinyl","DropdownContent","Tooltip","id","place"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../src/components/RecorderView/Actions.tsx"],"sourcesContent":["//\n// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n//\n\nimport React, { type FC, useEffect } from 'react'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faTrash,\n faCheck,\n faRecordVinyl,\n faStop,\n faCircleNotch,\n} from '@fortawesome/free-solid-svg-icons'\nimport { startAnnouncementRecording } from '../../services/offhour'\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { hangupCurrentCall, answerIncomingCall } from '../../lib/phone/call'\nimport { dispatchRecordingSave } from '../../events'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport DropdownContent from '../SwitchInputView/DropdownContent'\n\nexport const Actions: FC<{}> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { incoming, waiting, recording, recorded, playing } = useSelector(\n (state: RootState) => ({\n incoming: state.recorder.incoming,\n waiting: state.recorder.waiting,\n recording: state.recorder.recording,\n recorded: state.recorder.recorded,\n playing: state.recorder.playing,\n }),\n shallowEqual,\n )\n\n async function handleStart() {\n // Update the recorder state\n dispatch.recorder.setRecording(true)\n dispatch.recorder.setWaiting(true)\n // Call the api to start the recording call\n const data: { tempFilename: string } | null = await startAnnouncementRecording()\n // Set the returned temp file name to the store\n if (data.tempFilename) dispatch.recorder.setTempFilename(data.tempFilename)\n // Set the start time of recording\n dispatch.recorder.setStartTime(`${Date.now() / 1000}`)\n eventDispatch('phone-island-recording-started', {})\n }\n useEventListener('phone-island-recording-start', (data: {}) => {\n handleStart()\n })\n\n function handleStop() {\n // Set waiting to true\n dispatch.recorder.setWaiting(true)\n // Call the function to hangup the current call used for recording\n hangupCurrentCall()\n dispatch.recorder.setRecorded(true)\n eventDispatch('phone-island-recording-stopped', {})\n }\n useEventListener('phone-island-recording-stop', (data: {}) => {\n handleStop()\n })\n\n function handlePlay() {\n dispatch.player.startAudioPlayer(() => {\n // The callback for the end event of the audio player\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n })\n dispatch.recorder.setPlaying(true)\n eventDispatch('phone-island-recording-played', {})\n }\n useEventListener('phone-island-recording-play', (data: {}) => {\n handlePlay()\n })\n\n function handlePause() {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n eventDispatch('phone-island-recording-paused', {})\n }\n useEventListener('phone-island-recording-pause', (data: {}) => {\n handlePause()\n })\n\n function handleDelete() {\n dispatch.recorder.resetRecorded()\n eventDispatch('phone-island-recording-deleted', {})\n }\n useEventListener('phone-island-recording-delete', (data: {}) => {\n handleDelete()\n })\n\n function handleSaveRecording() {\n // check if the audio is playing and pause it\n if (playing) {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n }\n // Dispatch the reconrding save event\n dispatchRecordingSave()\n // Close the Island\n dispatch.island.setIslandView(null)\n }\n useEventListener('phone-island-recording-save', (data: {}) => {\n handleSaveRecording()\n })\n\n useEffect(() => {\n if (!recording) {\n dispatch.recorder.setWaiting(false)\n }\n }, [recording])\n\n useEffect(() => {\n if (incoming) {\n // Answer the incoming call for recording\n answerIncomingCall()\n // Reset incoming to recorder state\n dispatch.recorder.setIncoming(false)\n dispatch.recorder.setWaiting(false)\n }\n }, [incoming])\n\n const { t } = useTranslation()\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-pt-9 pi-gap-6`}\n style={recorded ? { paddingTop: '2rem' } : {}}\n >\n {recording && (\n <Button\n onClick={handleStop}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip-stop-recorder-view'\n data-tooltip-content={t('Tooltip.Stop') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faStop} size='xl' />\n )}\n </Button>\n )}\n {recorded && !recording && (\n <>\n <Button\n onClick={handleDelete}\n variant='default'\n data-tooltip-id='tooltip-delete-recorder-view'\n data-tooltip-content={t('Tooltip.Delete') || ''}\n >\n <FontAwesomeIcon icon={faTrash} size='xl' />\n </Button>\n {playing ? (\n <Button\n onClick={handlePause}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip-pause-recorder-view'\n data-tooltip-content={t('Tooltip.Pause') || ''}\n >\n <FontAwesomeIcon icon={faPause} size='xl' />\n </Button>\n ) : (\n <Button\n onClick={handlePlay}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip-play-recorder-view'\n data-tooltip-content={t('Tooltip.Play') || ''}\n >\n <FontAwesomeIcon icon={faPlay} size='xl' />\n </Button>\n )}\n <Button\n onClick={handleSaveRecording}\n variant='green'\n data-tooltip-id='tooltip-confirm-record-view'\n data-tooltip-content={t('Tooltip.Confirm') || ''}\n >\n <FontAwesomeIcon icon={faCheck} size='xl' />\n </Button>\n </>\n )}\n {!recording && !recorded && (\n <Button\n onClick={handleStart}\n variant='red'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip-start-recording-recorder-view'\n data-tooltip-content={t('Tooltip.Start recording') || ''}\n className='pi-flex pi-justify-center pi-ml-[4.7rem]'\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faRecordVinyl} size='xl' />\n )}\n </Button>\n )}\n {!recording && !recorded && (\n <div\n className='pi-flex-none pi-justify-end pi-ml-11 pi-w-2'\n >\n <DropdownContent data-stop-propagation={true}></DropdownContent>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip-start-recording-recorder-view' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-stop-recorder-view' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-play-recorder-view' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-pause-recorder-view' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-delete-recorder-view' place='bottom' />\n <Tooltip className='pi-z-20' id='tooltip-confirm-record-view' place='bottom' />\n\n </div>\n )\n}\n"],"names":["dispatch","useDispatch","_a","useSelector","state","incoming","recorder","waiting","recording","recorded","playing","shallowEqual","handleStart","setRecording","setWaiting","startAnnouncementRecording","data","sent","tempFilename","setTempFilename","setStartTime","concat","Date","now","eventDispatch","handleStop","hangupCurrentCall","setRecorded","handlePlay","player","startAudioPlayer","setPlaying","setPaused","handlePause","pauseAudioPlayer","handleDelete","resetRecorded","handleSaveRecording","dispatchRecordingSave","island","setIslandView","useEventListener","useEffect","answerIncomingCall","setIncoming","t","useTranslation","React","className","style","paddingTop","createElement","Button","onClick","variant","transform","FontAwesomeIcon","icon","faCircleNotch","size","faStop","Fragment","faTrash","faPause","faPlay","faCheck","faRecordVinyl","DropdownContent","Tooltip","id","place"],"mappings":"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"}
|