@nethesis/phone-island 0.7.96 → 0.7.97
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/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/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +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 +65 -0
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/island.d.ts +4 -0
- package/dist/models/island.js +1 -1
- package/dist/models/island.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/@nethesis/nethesis-light-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/services/astproxy.d.ts +5 -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"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),a=require("../../lib/phone/call.js"),n=require("../../static/icons/PhoneKeypadLight.js"),r=require("../../static/icons/PhoneKeypadSolid.js");require("../../node_modules/react-redux/es/index.js");var o=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 s=require("../Button.js"),u=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),c=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../TransferView/TransferActions.js"),f=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js"),p=require("../../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=j(e);exports.default=function(){var e=p.useSelector((function(e){return e.currentCall})),j=e.paused,E=e.muted,g=p.useSelector((function(e){return e.currentCall.parked})),x=p.useSelector((function(e){return e.island})),C=x.view,w=x.actionsExpanded,y=p.useSelector((function(e){return e.currentCall.transferring})),q=m.useDispatch();return v.default.createElement(v.default.Fragment,null,v.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"},v.default.createElement(s.Button,{variant:"default",active:!!j,onClick:function(){return j?a.unpauseCurrentCall():a.pauseCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":j?"Play":"Pause"},j?v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faPause})),v.default.createElement(s.Button,{variant:"default",active:!!E,onClick:function(){return E?a.unmuteCurrentCall():a.muteCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":E?"Unmute":"Mute"},E?v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faMicrophone})),v.default.createElement(s.Button,{active:y,onClick:y?function(){i.sendDTMF("*"),o.store.getState().player.audioPlayerPlaying||q.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),q.player.stopAudioPlayer(),y&&setTimeout((function(){q.currentCall.updateTransferring(!1)}),500)}),500)}:function(){q.island.setIslandView("transfer"!==C?"transfer":"call"),a.pauseCurrentCall()},variant:"default","data-tooltip-id":"tooltip","data-tooltip-content":y?"Cancel transfer":"Transfer"},y?v.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faArrowDownArrowUp})),v.default.createElement(s.Button,{active:w,variant:"transparent",onClick:function(){w?q.island.toggleActionsExpanded(!1):q.island.toggleActionsExpanded(!0)},"data-tooltip-id":"tooltip","data-tooltip-content":w?"Collapse":"Expand"},w?v.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:t.faChevronUp}):v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faChevronDown}))),w?v.default.createElement(v.default.Fragment,null," ",v.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"},v.default.createElement(s.Button,{active:"keypad"===C,variant:"default",onClick:function(){q.island.setIslandView("keypad"!==C?"keypad":"call")},"data-tooltip-id":"tooltip","data-tooltip-content":"Keyboard"},"keypad"===C?v.default.createElement(r.default,null):v.default.createElement(n.default,null)),v.default.createElement(s.Button,{active:g,variant:"default",onClick:function(){a.park(),q.currentCall.setParked(!0)},"data-tooltip-id":"tooltip","data-tooltip-content":"Park"},v.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:g?c.faCircleParking:t.faCircleParking})))):v.default.createElement(v.default.Fragment,null),y&&v.default.createElement(d.TransferActions,null),v.default.createElement(f.Tooltip,{className:"pi-z-20",id:"tooltip",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 faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n} 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'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen and view from island store\n const { view } = useSelector((state: RootState) => state.island)\n const
|
|
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 faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n faCircleParking,\n faChevronDown,\n faChevronUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n faCircleParking as faCircleParkingSolid,\n} 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 { park } from '../../lib/phone/call'\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 }\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Pause the call\n pauseCurrentCall()\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\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 sendDTMF('1')\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 }, 500)\n }\n\n function toggleActionsExpanded() {\n if (actionsExpanded) {\n dispatch.island.toggleActionsExpanded(false)\n } else {\n dispatch.island.toggleActionsExpanded(true)\n }\n }\n\n function parkAction() {\n park()\n dispatch.currentCall.setParked(true)\n }\n\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 ? 'Play' : 'Pause'}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPauseRegular} />\n )}\n </Button>\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 ? 'Unmute' : 'Mute'}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophoneLight} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip'\n data-tooltip-content={transferring ? 'Cancel transfer' : 'Transfer'}\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faArrowDownArrowUp} />\n )}\n </Button>\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={() => toggleActionsExpanded()}\n data-tooltip-id='tooltip'\n data-tooltip-content={actionsExpanded ? 'Collapse' : 'Expand'}\n >\n {actionsExpanded ? (\n <FontAwesomeIcon className='' size='xl' icon={faChevronUp} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faChevronDown} />\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='Keyboard'\n >\n {view === 'keypad' ? <PhoneKeypadSolid /> : <PhoneKeypadLight />}\n </Button>\n <Button\n active={parked}\n variant='default'\n onClick={parkAction}\n data-tooltip-id='tooltip'\n data-tooltip-content='Park'\n >\n <FontAwesomeIcon size='xl' icon={parked ? faCircleParkingSolid : faCircleParking} />\n </Button>\n </div>\n </>\n ) : (\n <></>\n )}\n\n {transferring && <TransferActions />}\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","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPauseRegular","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophoneLight","sendDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","setIslandView","faArrowDownUpAcrossLine","faArrowDownArrowUp","toggleActionsExpanded","faChevronUp","faChevronDown","PhoneKeypadSolid","PhoneKeypadLight","park","setParked","faCircleParkingSolid","faCircleParking","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 r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),a=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),i=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 n=require("../Button.js"),l=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var u=require("./Timer.js"),s=require("./Number.js"),d=require("./DisplayName.js"),o=require("./Avatar.js"),c=require("./Actions.js"),m=require("../Hangup.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);function g(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.incoming,q=e.accepted,E=e.outgoing,v=e.startTime,y=e.paused,
|
|
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 r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),a=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),i=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 n=require("../Button.js"),l=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var u=require("./Timer.js"),s=require("./Number.js"),d=require("./DisplayName.js"),o=require("./Avatar.js"),c=require("./Actions.js"),m=require("../Hangup.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);function g(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.incoming,q=e.accepted,E=e.outgoing,v=e.startTime,y=e.paused,b=f.useSelector((function(e){return e.island})).isOpen,x=f.useSelector((function(e){return e.webrtc})).remoteAudioStream;return j.default.createElement("div",{className:"pi-bg-red pi-flex pi-content-center pi-justify-center"},j.default.createElement(t.StyledCallView,{incoming:p,accepted:q,outgoing:E,isOpen:b},j.default.createElement(t.StyledTopContent,{isOpen:b,incoming:p,accepted:q,outgoing:E},j.default.createElement(o.default,null),b&&j.default.createElement(t.StyledDetails,null,j.default.createElement(d.default,null),q?j.default.createElement(u.default,{startTime:v}):j.default.createElement(s.default,null)),!b&&!q&&j.default.createElement(d.default,null),!b&&q&&j.default.createElement(u.default,{startTime:v}),q&&x&&j.default.createElement(l.AudioBars,{audioStream:x,paused:y,size:b?"large":"small"})),b&&j.default.createElement("div",{className:"pi-grid pi-gap-y-5"},q&&j.default.createElement(c.default,null),j.default.createElement("div",{className:"pi-grid ".concat(g(E,q)?"pi-grid-cols-2":q?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"," pi-gap-3.5")},j.default.createElement(m.default,{description:"Hangup and transfer"}),g(E,q)&&j.default.createElement(n.Button,{onClick:i.answerIncomingCall,variant:"green"},j.default.createElement(r.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:a.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 } from '@nethesis/nethesis-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'\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 } = useSelector(\n (state: RootState) => state.currentCall,\n )\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 return (\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n
|
|
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 } from '@nethesis/nethesis-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'\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 } = useSelector(\n (state: RootState) => state.currentCall,\n )\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 return (\n <div className='pi-bg-red pi-flex 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 <Avatar />\n {isOpen && (\n <StyledDetails>\n <DisplayName />\n {/* The timer when expanded */}\n {accepted ? <Timer startTime={startTime} /> : <Number />}\n </StyledDetails>\n )}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} />}\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='Hangup and transfer' />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button onClick={answerIncomingCall} variant='green'>\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","isOpen","island","remoteAudioStream","webrtc","React","createElement","className","StyledCallView","StyledTopContent","Avatar","StyledDetails","DisplayName","Timer","Number","AudioBars","audioStream","size","Actions","concat","Hangup","description","Button","onClick","answerIncomingCall","variant","FontAwesomeIcon","icon","faPhone"],"mappings":"4kCAmBA,SAASA,EAAgBC,EAAmBC,GAC1C,OAAQD,IAAaC,CACvB,iBAKoC,WAE5B,IAAAC,EAAsDC,EAAAA,aAC1D,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IADjCC,EAAQJ,EAAAI,SAAEL,EAAQC,EAAAD,SAAED,EAAQE,EAAAF,SAAEO,EAASL,EAAAK,UAAEC,EAAMN,EAAAM,OAI/CC,EAAWN,eAAY,SAACC,GAAqB,OAAAA,EAAMM,iBAGnDC,EAAsBR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,4BAEtE,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,yDACbF,EAAAA,QAAAC,cAACE,iBAAe,CAAAV,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,EAAUS,OAAQA,GAClFI,EAAAA,QAAAC,cAACG,mBACC,CAAAR,OAAQA,EACRH,SAAUA,EACVL,SAAUA,EACVD,SAAUA,GAEVa,UAAAC,cAACI,EAAM,QAAG,MACTT,GACCI,EAAA,QAAAC,cAACK,EAAAA,cAAa,KACZN,UAAAC,cAACM,EAAW,QAAG,MAEdnB,EAAWY,EAAAA,QAACC,cAAAO,EAAK,SAACd,UAAWA,IAAgBM,wBAACS,UAAM,QAIvDb,IAAWR,GAAYY,EAAA,QAAAC,cAACM,EAAW,QAAG,OAEtCX,GAAUR,GAAYY,UAAAC,cAACO,EAAAA,QAAM,CAAAd,UAAWA,IACzCN,GAAYU,GACXE,EAAC,QAAAC,cAAAS,EAASA,UACR,CAAAC,YAAab,EACbH,OAAQA,EACRiB,KAAMhB,EAAS,QAAU,WAI9BA,GACCI,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAU,sBACZd,GAAYY,EAAC,QAAAC,cAAAY,EAAAA,QAAU,MACxBb,UACEC,cAAA,MAAA,CAAAC,UAAW,WACTY,OAAA5B,EAAgBC,EAAUC,GACtB,iBACAA,EACA,yCACA,sCACO,gBAQbY,EAAAA,QAAAC,cAACc,EAAAA,QAAM,CAACC,YAAY,wBAGnB9B,EAAgBC,EAAUC,IACzBY,UAAAC,cAACgB,EAAMA,OAAA,CAACC,QAASC,qBAAoBC,QAAQ,SAC3CpB,EAAAA,QAAAC,cAACoB,kBAAgB,CAAAnB,UAAU,gBAAgBoB,KAAMC,EAAAA,cASnE"}
|
|
@@ -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 a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(e),r=function(e){var a=e.children,r=t.useSelector((function(e){return e.currentCall})),h=r.incoming,n=r.outgoing,o=r.accepted,c=r.transferring,l=t.useSelector((function(e){return e.island})),s=l.view,p=l.isOpen,g=l.actionsExpanded,u=t.useSelector((function(e){return e.alerts.status})).activeAlertsCount,x=t.useSelector((function(e){return e.motions})),w=x.variants,f=x.border_radius_collapsed,m=x.border_radius_expanded,v=x.padding_x_collapsed,_=x.padding_y_collapsed,b=x.padding_expanded;var y=function(){var e={width:0,height:0};switch(s){case"call":p?o&&c?e={width:w.call.expanded.transfer.width,height:w.call.expanded.transfer.height}:o&&g?e={width:w.call.expanded.accepted.actionsExpanded.width,height:w.call.expanded.accepted.actionsExpanded.height}:o?e={width:w.call.expanded.accepted.width,height:w.call.expanded.accepted.height}:h?e={width:w.call.expanded.incoming.width,height:w.call.expanded.incoming.height}:n&&(e={width:w.call.expanded.outgoing.width,height:w.call.expanded.outgoing.height}):e={width:w.call.collapsed.width,height:w.call.collapsed.height};break;case"keypad":e=p?{width:w.keypad.expanded.width,height:w.keypad.expanded.height}:{width:w.transfer.collapsed.width,height:w.transfer.collapsed.height};break;case"transfer":e=p?{width:w.transfer.expanded.width,height:w.transfer.expanded.height}:{width:w.transfer.collapsed.width,height:w.transfer.collapsed.height};break;case"player":e=p?{width:w.player.expanded.width,height:w.player.expanded.height}:{width:w.player.collapsed.width,height:w.player.collapsed.height};break;case"recorder":e=p?{width:w.recorder.expanded.width,height:w.recorder.expanded.height}:{width:w.recorder.collapsed.width,height:w.recorder.collapsed.height}}var t=u>0;return{width:"".concat(0===e.width&&t?w.alerts.width:e.width,"px"),height:"".concat(t&&p?e.height+w.alerts.height+(0===e.height?2*b:b):e.height,"px"),borderRadius:"".concat(p?m:f,"px"),padding:p?"".concat(b,"px"):"".concat(v,"px ").concat(_,"px")}}();return i.default.createElement(d.framerMotion.exports.motion.div,{className:"pi-font-sans pi-pointer-events-auto pi-overflow-hidden pi-bg-black pi-text-xs pi-cursor-pointer pi-text-white hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow",animate:y},a&&a)};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 } = 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 size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.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 pi-bg-black pi-text-xs pi-cursor-pointer pi-text-white 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","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,aAG5CC,
|
|
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 size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.height,\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 pi-bg-black pi-text-xs pi-cursor-pointer pi-text-white 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":"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"}
|
package/dist/lib/phone/call.d.ts
CHANGED
package/dist/lib/phone/call.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("../devices/devices.js"),r=require("../webrtc/janus.js"),n=require("../webrtc/messages.js"),o=require("../../store/index.js"),a=require("../user/default_device.js"),s=require("../../services/astproxy.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("../devices/devices.js"),r=require("../webrtc/janus.js"),n=require("../webrtc/messages.js"),o=require("../../store/index.js"),a=require("../user/default_device.js"),s=require("../../services/astproxy.js"),i=require("../../static/dtmf/index.js");function u(o){var a=this;t.getSupportedDevices((function(){return e.__awaiter(a,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return r.default.log("This is a SIP call"),[4,n.call(o,{audio:{mandatory:{echoCancellation:!1,googEchoCancellation:!1,googAutoGainControl:!1,googAutoGainControl2:!1,googNoiseSuppression:!1,googHighpassFilter:!1,googTypingNoiseDetection:!1}},audioSend:!0,audioRecv:!0,videoSend:!1,videoRecv:!1})];case 1:return e.sent(),[2]}}))}))}))}exports.answerIncomingCall=function(){a.isWebRTC()&&n.answerWebRTC()},exports.attendedTransfer=function(t){return e.__awaiter(this,void 0,void 0,(function(){var r,n;return e.__generator(this,(function(e){switch(e.label){case 0:return r=o.store.getState().currentCall.conversationId,n=o.store.getState().currentUser.default_device,r&&(null==n?void 0:n.id)&&t?[4,s.attendedTransfer({convid:r,to:t,endpointId:n.id})]:[3,2];case 1:return[2,e.sent()];case 2:return[2]}}))}))},exports.callNumber=function(e,t){u("sip:".concat(e,"@").concat(t))},exports.callSipURI=u,exports.hangupAllExtensions=function(){var e=o.store.getState().currentUser.conversations,t=function(t){Object.keys(e[t]).forEach((function(e){s.hangupConversation({convid:e,endpointId:t})}))};for(var r in e)t(r)},exports.hangupCurrentCall=function(){var e=o.store.getState().currentCall,t=e.outgoing,r=e.accepted;(t||r)&&n.hangup(),o.store.dispatch.player.stopAudioPlayer(),o.store.dispatch.currentCall.reset()},exports.muteCurrentCall=function(){a.isWebRTC()&&n.muteWebRTC()&&o.store.dispatch.currentCall.updateCurrentCall({muted:!0})},exports.park=function(){var e,t=null===(e=o.store.getState().currentUser.endpoints)||void 0===e?void 0:e.mainextension[0].id,r=o.store.getState().currentCall.conversationId;t&&r&&s.parkConversation({applicantId:t,convid:r,endpointId:t})},exports.pauseCurrentCall=function(){a.isWebRTC()&&n.pauseWebRTC()&&(o.store.dispatch.currentCall.updateCurrentCall({paused:!0}),o.store.dispatch.player.pauseRemoteAudio())},exports.playDtmfAudio=function(e){"*"===e&&(e="star"),"#"===e&&(e="pound"),o.store.dispatch.player.updateStartAudioPlayer({src:i.default["dtmf_".concat(e)]})},exports.unmuteCurrentCall=function(){a.isWebRTC()&&n.unmuteWebRTC()&&o.store.dispatch.currentCall.updateCurrentCall({muted:!1})},exports.unpauseCurrentCall=function(){a.isWebRTC()&&n.unpauseWebRTC()&&(o.store.dispatch.currentCall.updateCurrentCall({paused:!1}),o.store.dispatch.player.playRemoteAudio())};
|
|
2
2
|
//# sourceMappingURL=call.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sources":["../../../src/lib/phone/call.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { getSupportedDevices } from '../devices/devices'\nimport Janus from '../webrtc/janus'\nimport {\n call,\n hangup,\n answerWebRTC,\n muteWebRTC,\n unmuteWebRTC,\n pauseWebRTC,\n unpauseWebRTC,\n} from '../webrtc/messages'\nimport { store } from '../../store'\nimport { isWebRTC } from '../user/default_device'\nimport {\n blindTransfer as blindTransferRequest,\n attendedTransfer as attendedTransferRequest,\n} from '../../services/astproxy'\nimport dtmfAudios from '../../static/dtmf'\nimport { hangupConversation } from '../../services/astproxy'\n\n/**\n * Starts a call to a number\n * @param number The number string\n */\nexport function callNumber(number: string, sipHost: string) {\n const sipURI = `sip:${number}@${sipHost}`\n callSipURI(sipURI)\n}\n\n/**\n * Starts a call to a SIP URI\n *\n * @param sipURI The SIP URI string\n */\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n await call(sipURI, {\n audio: {\n mandatory: {\n echoCancellation: false,\n googEchoCancellation: false,\n googAutoGainControl: false,\n googAutoGainControl2: false,\n googNoiseSuppression: false,\n googHighpassFilter: false,\n googTypingNoiseDetection: false,\n },\n },\n audioSend: true,\n audioRecv: true,\n videoSend: false,\n videoRecv: false,\n })\n })\n}\n\n/**\n * Answer incoming call\n */\nexport function answerIncomingCall() {\n if (isWebRTC()) {\n answerWebRTC()\n }\n}\n\n/**\n * Hangup all the conversations of all the extensions of the current user\n */\nexport function hangupAllExtensions() {\n // Get current user endpoints\n const { conversations } = store.getState().currentUser\n // Hangup all the conversations of all extensions of the current user\n for (const extension in conversations) {\n const conversationsIds = Object.keys(conversations[extension])\n conversationsIds.forEach((id) => {\n hangupConversation({\n convid: id,\n endpointId: extension,\n })\n })\n }\n}\n\n/**\n * Hangup current call\n */\nexport function hangupCurrentCall() {\n const { outgoing, accepted } = store.getState().currentCall\n if (outgoing || accepted) {\n hangup()\n }\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.currentCall.reset()\n}\n\n/**\n * Mute the current call\n */\nexport function muteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const muted = muteWebRTC()\n if (muted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: true,\n })\n }\n }\n}\n\n/**\n * Unmute the current call\n */\nexport function unmuteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unmuted = unmuteWebRTC()\n if (unmuted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: false,\n })\n }\n }\n}\n\n/**\n * Pause the current call\n */\nexport function pauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const paused = pauseWebRTC()\n if (paused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: true,\n })\n // Pause remote audio\n store.dispatch.player.pauseRemoteAudio()\n }\n }\n}\n\n/**\n * Unpause the current call\n */\nexport function unpauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unpaused = unpauseWebRTC()\n if (unpaused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: false,\n })\n // Play remote audio\n store.dispatch.player.playRemoteAudio()\n }\n }\n}\n\n/**\n * Transfer the current call through a blind transfer (not in use)\n */\nexport async function blindTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through blind transfer\n if (conversationId && default_device?.id && number) {\n return await blindTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Transfer the current call through a attended transfer\n */\nexport async function attendedTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through attended transfer\n if (conversationId && default_device?.id && number) {\n return await attendedTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Play the dtmf audio files\n */\nexport function playDtmfAudio(key: string) {\n if (key === '*') key = 'star'\n if (key === '#') key = 'pound'\n store.dispatch.player.updateStartAudioPlayer({ src: dtmfAudios[`dtmf_${key}`] })\n}\n"],"names":["callSipURI","sipURI","_this","this","getSupportedDevices","__awaiter","Janus","log","call","audio","mandatory","echoCancellation","googEchoCancellation","googAutoGainControl","googAutoGainControl2","googNoiseSuppression","googHighpassFilter","googTypingNoiseDetection","audioSend","audioRecv","videoSend","videoRecv","_a","sent","isWebRTC","answerWebRTC","number","conversationId","store","getState","currentCall","default_device","currentUser","id","attendedTransferRequest","convid","to","endpointId","sipHost","concat","conversations","extension","Object","keys","forEach","hangupConversation","outgoing","accepted","hangup","dispatch","player","stopAudioPlayer","reset","muteWebRTC","updateCurrentCall","muted","pauseWebRTC","paused","pauseRemoteAudio","key","updateStartAudioPlayer","src","dtmfAudios","unmuteWebRTC","unpauseWebRTC","playRemoteAudio"],"mappings":"0XAqCM,SAAUA,EAAWC,GAA3B,IAsBCC,EAAAC,KArBCC,EAAmBA,qBAAC,WAAA,OAAAC,EAAAA,UAAAH,OAAA,OAAA,GAAA,yEAGlB,OADAI,UAAMC,IAAI,sBACJ,CAAA,EAAAC,EAAIA,KAACP,EAAQ,CACjBQ,MAAO,CACLC,UAAW,CACTC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,0BAA0B,IAG9BC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,mBAfbC,EAAAC,cAiBD,GAAA,GACH,uCAMMC,EAAQA,YACVC,EAAAA,cAEJ,2BAoHM,SAAiCC,2HAKjC,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMQ,mBAAwB,CACnCC,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,qBAzKe,SAAWI,EAAgBY,GAEzCtC,EADe,OAAAuC,OAAOb,EAAU,KAAAa,OAAAD,GAElC,8DA6CU,IAAAE,EAAkBZ,EAAKA,MAACC,WAAWG,YAAWQ,yBAE3CC,GACgBC,OAAOC,KAAKH,EAAcC,IAClCG,SAAQ,SAACX,GACxBY,qBAAmB,CACjBV,OAAQF,EACRI,WAAYI,GAEhB,KAPF,IAAK,IAAMA,KAAaD,IAAbC,EASb,uCAMQ,IAAAnB,EAAyBM,EAAAA,MAAMC,WAAWC,YAAxCgB,EAAQxB,EAAAwB,SAAEC,cACdD,GAAYC,IACdC,EAAAA,SAEFpB,EAAAA,MAAMqB,SAASC,OAAOC,kBACtBvB,EAAAA,MAAMqB,SAASnB,YAAYsB,OAC7B,qCAOM5B,EAAQA,YACI6B,EAAAA,cAEZzB,QAAMqB,SAASnB,YAAYwB,kBAAkB,CAC3CC,OAAO,GAIf,
|
|
1
|
+
{"version":3,"file":"call.js","sources":["../../../src/lib/phone/call.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { getSupportedDevices } from '../devices/devices'\nimport Janus from '../webrtc/janus'\nimport {\n call,\n hangup,\n answerWebRTC,\n muteWebRTC,\n unmuteWebRTC,\n pauseWebRTC,\n unpauseWebRTC,\n} from '../webrtc/messages'\nimport { store } from '../../store'\nimport { isWebRTC } from '../user/default_device'\nimport {\n blindTransfer as blindTransferRequest,\n attendedTransfer as attendedTransferRequest,\n} from '../../services/astproxy'\nimport dtmfAudios from '../../static/dtmf'\nimport { hangupConversation, parkConversation } from '../../services/astproxy'\n\n/**\n * Starts a call to a number\n * @param number The number string\n */\nexport function callNumber(number: string, sipHost: string) {\n const sipURI = `sip:${number}@${sipHost}`\n callSipURI(sipURI)\n}\n\n/**\n * Starts a call to a SIP URI\n *\n * @param sipURI The SIP URI string\n */\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n await call(sipURI, {\n audio: {\n mandatory: {\n echoCancellation: false,\n googEchoCancellation: false,\n googAutoGainControl: false,\n googAutoGainControl2: false,\n googNoiseSuppression: false,\n googHighpassFilter: false,\n googTypingNoiseDetection: false,\n },\n },\n audioSend: true,\n audioRecv: true,\n videoSend: false,\n videoRecv: false,\n })\n })\n}\n\n/**\n * Answer incoming call\n */\nexport function answerIncomingCall() {\n if (isWebRTC()) {\n answerWebRTC()\n }\n}\n\n/**\n * Hangup all the conversations of all the extensions of the current user\n */\nexport function hangupAllExtensions() {\n // Get current user endpoints\n const { conversations } = store.getState().currentUser\n // Hangup all the conversations of all extensions of the current user\n for (const extension in conversations) {\n const conversationsIds = Object.keys(conversations[extension])\n conversationsIds.forEach((id) => {\n hangupConversation({\n convid: id,\n endpointId: extension,\n })\n })\n }\n}\n\n/**\n * Hangup current call\n */\nexport function hangupCurrentCall() {\n const { outgoing, accepted } = store.getState().currentCall\n if (outgoing || accepted) {\n hangup()\n }\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.currentCall.reset()\n}\n\n/**\n * Mute the current call\n */\nexport function muteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const muted = muteWebRTC()\n if (muted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: true,\n })\n }\n }\n}\n\n/**\n * Unmute the current call\n */\nexport function unmuteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unmuted = unmuteWebRTC()\n if (unmuted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: false,\n })\n }\n }\n}\n\n/**\n * Pause the current call\n */\nexport function pauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const paused = pauseWebRTC()\n if (paused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: true,\n })\n // Pause remote audio\n store.dispatch.player.pauseRemoteAudio()\n }\n }\n}\n\n/**\n * Unpause the current call\n */\nexport function unpauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unpaused = unpauseWebRTC()\n if (unpaused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: false,\n })\n // Play remote audio\n store.dispatch.player.playRemoteAudio()\n }\n }\n}\n\n/**\n * Transfer the current call through a blind transfer (not in use)\n */\nexport async function blindTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through blind transfer\n if (conversationId && default_device?.id && number) {\n return await blindTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Transfer the current call through a attended transfer\n */\nexport async function attendedTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through attended transfer\n if (conversationId && default_device?.id && number) {\n return await attendedTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Play the dtmf audio files\n */\nexport function playDtmfAudio(key: string) {\n if (key === '*') key = 'star'\n if (key === '#') key = 'pound'\n store.dispatch.player.updateStartAudioPlayer({ src: dtmfAudios[`dtmf_${key}`] })\n}\n\nexport function park() {\n const mainExtension = store.getState().currentUser.endpoints?.mainextension[0].id\n const conversationId = store.getState().currentCall.conversationId\n\n if (mainExtension && conversationId) {\n parkConversation({\n applicantId: mainExtension,\n convid: conversationId,\n endpointId: mainExtension,\n })\n }\n}\n"],"names":["callSipURI","sipURI","_this","this","getSupportedDevices","__awaiter","Janus","log","call","audio","mandatory","echoCancellation","googEchoCancellation","googAutoGainControl","googAutoGainControl2","googNoiseSuppression","googHighpassFilter","googTypingNoiseDetection","audioSend","audioRecv","videoSend","videoRecv","_a","sent","isWebRTC","answerWebRTC","number","conversationId","store","getState","currentCall","default_device","currentUser","id","attendedTransferRequest","convid","to","endpointId","sipHost","concat","conversations","extension","Object","keys","forEach","hangupConversation","outgoing","accepted","hangup","dispatch","player","stopAudioPlayer","reset","muteWebRTC","updateCurrentCall","muted","mainExtension","endpoints","mainextension","parkConversation","applicantId","pauseWebRTC","paused","pauseRemoteAudio","key","updateStartAudioPlayer","src","dtmfAudios","unmuteWebRTC","unpauseWebRTC","playRemoteAudio"],"mappings":"0XAqCM,SAAUA,EAAWC,GAA3B,IAsBCC,EAAAC,KArBCC,EAAmBA,qBAAC,WAAA,OAAAC,EAAAA,UAAAH,OAAA,OAAA,GAAA,yEAGlB,OADAI,UAAMC,IAAI,sBACJ,CAAA,EAAAC,EAAIA,KAACP,EAAQ,CACjBQ,MAAO,CACLC,UAAW,CACTC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,0BAA0B,IAG9BC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,mBAfbC,EAAAC,cAiBD,GAAA,GACH,uCAMMC,EAAQA,YACVC,EAAAA,cAEJ,2BAoHM,SAAiCC,2HAKjC,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMQ,mBAAwB,CACnCC,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,qBAzKe,SAAWI,EAAgBY,GAEzCtC,EADe,OAAAuC,OAAOb,EAAU,KAAAa,OAAAD,GAElC,8DA6CU,IAAAE,EAAkBZ,EAAKA,MAACC,WAAWG,YAAWQ,yBAE3CC,GACgBC,OAAOC,KAAKH,EAAcC,IAClCG,SAAQ,SAACX,GACxBY,qBAAmB,CACjBV,OAAQF,EACRI,WAAYI,GAEhB,KAPF,IAAK,IAAMA,KAAaD,IAAbC,EASb,uCAMQ,IAAAnB,EAAyBM,EAAAA,MAAMC,WAAWC,YAAxCgB,EAAQxB,EAAAwB,SAAEC,cACdD,GAAYC,IACdC,EAAAA,SAEFpB,EAAAA,MAAMqB,SAASC,OAAOC,kBACtBvB,EAAAA,MAAMqB,SAASnB,YAAYsB,OAC7B,qCAOM5B,EAAQA,YACI6B,EAAAA,cAEZzB,QAAMqB,SAASnB,YAAYwB,kBAAkB,CAC3CC,OAAO,GAIf,gCA+FQC,EAAwD,QAAxClC,EAAAM,EAAAA,MAAMC,WAAWG,YAAYyB,iBAAW,IAAAnC,OAAA,EAAAA,EAAAoC,cAAc,GAAGzB,GACzEN,EAAiBC,EAAKA,MAACC,WAAWC,YAAYH,eAEhD6B,GAAiB7B,GACnBgC,mBAAiB,CACfC,YAAaJ,EACbrB,OAAQR,EACRU,WAAYmB,GAGlB,sCAnFMhC,EAAQA,YACKqC,EAAAA,gBAEbjC,QAAMqB,SAASnB,YAAYwB,kBAAkB,CAC3CQ,QAAQ,IAGVlC,EAAAA,MAAMqB,SAASC,OAAOa,mBAG5B,wBAwDM,SAAwBC,GAChB,MAARA,IAAaA,EAAM,QACX,MAARA,IAAaA,EAAM,SACvBpC,EAAAA,MAAMqB,SAASC,OAAOe,uBAAuB,CAAEC,IAAKC,UAAW,QAAQ5B,OAAAyB,KACzE,uCArFMxC,EAAQA,YACM4C,EAAAA,gBAEdxC,QAAMqB,SAASnB,YAAYwB,kBAAkB,CAC3CC,OAAO,GAIf,wCAwBM/B,EAAQA,YACO6C,EAAAA,kBAEfzC,QAAMqB,SAASnB,YAAYwB,kBAAkB,CAC3CQ,QAAQ,IAGVlC,EAAAA,MAAMqB,SAASC,OAAOoB,kBAG5B"}
|
|
@@ -13,6 +13,7 @@ export declare const currentCall: {
|
|
|
13
13
|
accepted: boolean;
|
|
14
14
|
outgoingSocket: boolean;
|
|
15
15
|
outgoingWebRTC: boolean;
|
|
16
|
+
parked: boolean;
|
|
16
17
|
outgoing: boolean;
|
|
17
18
|
startTime: string;
|
|
18
19
|
muted: boolean;
|
|
@@ -46,6 +47,7 @@ export declare const currentCall: {
|
|
|
46
47
|
accepted: boolean;
|
|
47
48
|
outgoingSocket: boolean;
|
|
48
49
|
outgoingWebRTC: boolean;
|
|
50
|
+
parked: boolean;
|
|
49
51
|
outgoing: boolean;
|
|
50
52
|
startTime: string;
|
|
51
53
|
muted: boolean;
|
|
@@ -65,6 +67,7 @@ export declare const currentCall: {
|
|
|
65
67
|
number: string;
|
|
66
68
|
incomingSocket: boolean;
|
|
67
69
|
incomingWebRTC: boolean;
|
|
70
|
+
parked: boolean;
|
|
68
71
|
incoming: boolean;
|
|
69
72
|
acceptedSocket: boolean;
|
|
70
73
|
acceptedWebRTC: boolean;
|
|
@@ -95,6 +98,7 @@ export declare const currentCall: {
|
|
|
95
98
|
accepted: boolean;
|
|
96
99
|
outgoingSocket: boolean;
|
|
97
100
|
outgoingWebRTC: boolean;
|
|
101
|
+
parked: boolean;
|
|
98
102
|
outgoing: boolean;
|
|
99
103
|
startTime: string;
|
|
100
104
|
muted: boolean;
|
|
@@ -120,6 +124,7 @@ export declare const currentCall: {
|
|
|
120
124
|
accepted: boolean;
|
|
121
125
|
outgoingSocket: boolean;
|
|
122
126
|
outgoingWebRTC: boolean;
|
|
127
|
+
parked: boolean;
|
|
123
128
|
outgoing: boolean;
|
|
124
129
|
startTime: string;
|
|
125
130
|
muted: boolean;
|
|
@@ -144,6 +149,7 @@ export declare const currentCall: {
|
|
|
144
149
|
accepted: boolean;
|
|
145
150
|
outgoingSocket: boolean;
|
|
146
151
|
outgoingWebRTC: boolean;
|
|
152
|
+
parked: boolean;
|
|
147
153
|
outgoing: boolean;
|
|
148
154
|
startTime: string;
|
|
149
155
|
muted: boolean;
|
|
@@ -169,6 +175,7 @@ export declare const currentCall: {
|
|
|
169
175
|
accepted: boolean;
|
|
170
176
|
outgoingSocket: boolean;
|
|
171
177
|
outgoingWebRTC: boolean;
|
|
178
|
+
parked: boolean;
|
|
172
179
|
outgoing: boolean;
|
|
173
180
|
startTime: string;
|
|
174
181
|
muted: boolean;
|
|
@@ -193,6 +200,7 @@ export declare const currentCall: {
|
|
|
193
200
|
accepted: boolean;
|
|
194
201
|
outgoingSocket: boolean;
|
|
195
202
|
outgoingWebRTC: boolean;
|
|
203
|
+
parked: boolean;
|
|
196
204
|
outgoing: boolean;
|
|
197
205
|
startTime: string;
|
|
198
206
|
muted: boolean;
|
|
@@ -218,6 +226,7 @@ export declare const currentCall: {
|
|
|
218
226
|
accepted: boolean;
|
|
219
227
|
outgoingSocket: boolean;
|
|
220
228
|
outgoingWebRTC: boolean;
|
|
229
|
+
parked: boolean;
|
|
221
230
|
outgoing: boolean;
|
|
222
231
|
startTime: string;
|
|
223
232
|
muted: boolean;
|
|
@@ -242,6 +251,7 @@ export declare const currentCall: {
|
|
|
242
251
|
accepted: boolean;
|
|
243
252
|
outgoingSocket: boolean;
|
|
244
253
|
outgoingWebRTC: boolean;
|
|
254
|
+
parked: boolean;
|
|
245
255
|
outgoing: boolean;
|
|
246
256
|
startTime: string;
|
|
247
257
|
muted: boolean;
|
|
@@ -266,6 +276,58 @@ export declare const currentCall: {
|
|
|
266
276
|
accepted: boolean;
|
|
267
277
|
outgoingSocket: boolean;
|
|
268
278
|
outgoingWebRTC: boolean;
|
|
279
|
+
parked: boolean;
|
|
280
|
+
outgoing: boolean;
|
|
281
|
+
startTime: string;
|
|
282
|
+
muted: boolean;
|
|
283
|
+
paused: boolean;
|
|
284
|
+
keypadValue: string;
|
|
285
|
+
conversationId: string;
|
|
286
|
+
transferring: boolean;
|
|
287
|
+
transferringName: string;
|
|
288
|
+
transferringNumber: string;
|
|
289
|
+
transferringStartTime: string;
|
|
290
|
+
transferSwitching: boolean;
|
|
291
|
+
transferCalls: any[];
|
|
292
|
+
};
|
|
293
|
+
setParked: (state: {
|
|
294
|
+
displayName: string;
|
|
295
|
+
username: string;
|
|
296
|
+
number: string;
|
|
297
|
+
incomingSocket: boolean;
|
|
298
|
+
incomingWebRTC: boolean;
|
|
299
|
+
incoming: boolean;
|
|
300
|
+
acceptedSocket: boolean;
|
|
301
|
+
acceptedWebRTC: boolean;
|
|
302
|
+
accepted: boolean;
|
|
303
|
+
outgoingSocket: boolean;
|
|
304
|
+
outgoingWebRTC: boolean;
|
|
305
|
+
parked: boolean;
|
|
306
|
+
outgoing: boolean;
|
|
307
|
+
startTime: string;
|
|
308
|
+
muted: boolean;
|
|
309
|
+
paused: boolean;
|
|
310
|
+
keypadValue: string;
|
|
311
|
+
conversationId: string;
|
|
312
|
+
transferring: boolean;
|
|
313
|
+
transferringName: string;
|
|
314
|
+
transferringNumber: string;
|
|
315
|
+
transferringStartTime: string;
|
|
316
|
+
transferSwitching: boolean;
|
|
317
|
+
transferCalls: any[];
|
|
318
|
+
}, payload: boolean) => {
|
|
319
|
+
displayName: string;
|
|
320
|
+
username: string;
|
|
321
|
+
number: string;
|
|
322
|
+
incomingSocket: boolean;
|
|
323
|
+
incomingWebRTC: boolean;
|
|
324
|
+
incoming: boolean;
|
|
325
|
+
acceptedSocket: boolean;
|
|
326
|
+
acceptedWebRTC: boolean;
|
|
327
|
+
accepted: boolean;
|
|
328
|
+
outgoingSocket: boolean;
|
|
329
|
+
outgoingWebRTC: boolean;
|
|
330
|
+
parked: boolean;
|
|
269
331
|
outgoing: boolean;
|
|
270
332
|
startTime: string;
|
|
271
333
|
muted: boolean;
|
|
@@ -291,6 +353,7 @@ export declare const currentCall: {
|
|
|
291
353
|
accepted: boolean;
|
|
292
354
|
outgoingSocket: boolean;
|
|
293
355
|
outgoingWebRTC: boolean;
|
|
356
|
+
parked: boolean;
|
|
294
357
|
outgoing: boolean;
|
|
295
358
|
startTime: string;
|
|
296
359
|
muted: boolean;
|
|
@@ -318,6 +381,7 @@ export declare const currentCall: {
|
|
|
318
381
|
accepted: boolean;
|
|
319
382
|
outgoingSocket: boolean;
|
|
320
383
|
outgoingWebRTC: boolean;
|
|
384
|
+
parked: boolean;
|
|
321
385
|
outgoing: boolean;
|
|
322
386
|
startTime: string;
|
|
323
387
|
muted: boolean;
|
|
@@ -344,6 +408,7 @@ export interface CurrentCallTypes {
|
|
|
344
408
|
number?: string;
|
|
345
409
|
incomingSocket?: boolean;
|
|
346
410
|
incomingWebRTC?: boolean;
|
|
411
|
+
parked?: boolean;
|
|
347
412
|
incoming?: boolean;
|
|
348
413
|
acceptedSocket?: boolean;
|
|
349
414
|
acceptedWebRTC?: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("../node_modules/@rematch/core/dist/core.esm.js"),n=require("../static/incoming_ringtone.js"),t=require("../events/CallEvents.js");require("react"),require("../store/index.js"),require("../node_modules/react-redux/es/index.js");var a={displayName:"",username:"",number:"",incomingSocket:!1,incomingWebRTC:!1,incoming:!1,acceptedSocket:!1,acceptedWebRTC:!1,accepted:!1,outgoingSocket:!1,outgoingWebRTC:!1,outgoing:!1,startTime:"",muted:!1,paused:!1,keypadValue:"",conversationId:"",transferring:!1,transferringName:"",transferringNumber:"",transferringStartTime:"",transferSwitching:!1,transferCalls:new Array},i=r.createModel()({state:a,reducers:{updateCurrentCall:function(r,n){return e.__assign(e.__assign(e.__assign({},r),n),{transferCalls:r.transferCalls})},updateKeypadValue:function(r,n){return e.__assign(e.__assign({},r),{keypadValue:n})},updateTransferring:function(r,n){return e.__assign(e.__assign({},r),{transferring:n})},updateTransferSwitching:function(r,n){return e.__assign(e.__assign({},r),{transferSwitching:n})},addTransferCalls:function(r,n){return r.transferCalls.find((function(e){return e.number===n.number}))?r:e.__assign(e.__assign({},r),{transferCalls:e.__spreadArray(e.__spreadArray([],r.transferCalls,!0),[n],!1)})},reset:function(){return a}},effects:function(r){return{checkIncomingUpdatePlay:function(t,a){var i,s;("webrtc"===(null===(i=a.currentUser.default_device)||void 0===i?void 0:i.type)&&t.incomingWebRTC||"physical"===(null===(s=a.currentUser.default_device)||void 0===s?void 0:s.type)&&t.incomingSocket)&&(t.incoming=!0,r.player.updateStartAudioPlayer({src:n.default,loop:!0})),r.currentCall.updateCurrentCall(e.__assign({},t))},checkOutgoingUpdate:function(n,a){var i,s;("webrtc"===(null===(i=a.currentUser.default_device)||void 0===i?void 0:i.type)&&n.outgoingWebRTC||"physical"===(null===(s=a.currentUser.default_device)||void 0===s?void 0:s.type)&&n.outgoingSocket)&&(n.outgoing=!0,t.dispatchOutgoingCallStarted(n.displayName,n.number)),r.currentCall.updateCurrentCall(e.__assign({},n))},checkAcceptedUpdate:function(n,t){var a,i;("webrtc"===(null===(a=t.currentUser.default_device)||void 0===a?void 0:a.type)&&n.acceptedWebRTC||"physical"===(null===(i=t.currentUser.default_device)||void 0===i?void 0:i.type)&&n.acceptedSocket)&&(n.accepted=!0),r.currentCall.updateCurrentCall(e.__assign({},n))}}}});exports.currentCall=i;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("../node_modules/@rematch/core/dist/core.esm.js"),n=require("../static/incoming_ringtone.js"),t=require("../events/CallEvents.js");require("react"),require("../store/index.js"),require("../node_modules/react-redux/es/index.js");var a={displayName:"",username:"",number:"",incomingSocket:!1,incomingWebRTC:!1,incoming:!1,acceptedSocket:!1,acceptedWebRTC:!1,accepted:!1,outgoingSocket:!1,outgoingWebRTC:!1,parked:!1,outgoing:!1,startTime:"",muted:!1,paused:!1,keypadValue:"",conversationId:"",transferring:!1,transferringName:"",transferringNumber:"",transferringStartTime:"",transferSwitching:!1,transferCalls:new Array},i=r.createModel()({state:a,reducers:{updateCurrentCall:function(r,n){return e.__assign(e.__assign(e.__assign({},r),n),{transferCalls:r.transferCalls})},updateKeypadValue:function(r,n){return e.__assign(e.__assign({},r),{keypadValue:n})},updateTransferring:function(r,n){return e.__assign(e.__assign({},r),{transferring:n})},updateTransferSwitching:function(r,n){return e.__assign(e.__assign({},r),{transferSwitching:n})},addTransferCalls:function(r,n){return r.transferCalls.find((function(e){return e.number===n.number}))?r:e.__assign(e.__assign({},r),{transferCalls:e.__spreadArray(e.__spreadArray([],r.transferCalls,!0),[n],!1)})},setParked:function(e,r){return e.parked=r,e},reset:function(){return a}},effects:function(r){return{checkIncomingUpdatePlay:function(t,a){var i,s;("webrtc"===(null===(i=a.currentUser.default_device)||void 0===i?void 0:i.type)&&t.incomingWebRTC||"physical"===(null===(s=a.currentUser.default_device)||void 0===s?void 0:s.type)&&t.incomingSocket)&&(t.incoming=!0,r.player.updateStartAudioPlayer({src:n.default,loop:!0})),r.currentCall.updateCurrentCall(e.__assign({},t))},checkOutgoingUpdate:function(n,a){var i,s;("webrtc"===(null===(i=a.currentUser.default_device)||void 0===i?void 0:i.type)&&n.outgoingWebRTC||"physical"===(null===(s=a.currentUser.default_device)||void 0===s?void 0:s.type)&&n.outgoingSocket)&&(n.outgoing=!0,t.dispatchOutgoingCallStarted(n.displayName,n.number)),r.currentCall.updateCurrentCall(e.__assign({},n))},checkAcceptedUpdate:function(n,t){var a,i;("webrtc"===(null===(a=t.currentUser.default_device)||void 0===a?void 0:a.type)&&n.acceptedWebRTC||"physical"===(null===(i=t.currentUser.default_device)||void 0===i?void 0:i.type)&&n.acceptedSocket)&&(n.accepted=!0),r.currentCall.updateCurrentCall(e.__assign({},n))}}}});exports.currentCall=i;
|
|
2
2
|
//# sourceMappingURL=currentCall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currentCall.js","sources":["../../src/models/currentCall.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport incomingRingtone from '../static/incoming_ringtone'\nimport { dispatchOutgoingCallStarted } from '../events/index'\n\nconst defaultState = {\n displayName: '',\n username: '',\n number: '',\n incomingSocket: false,\n incomingWebRTC: false,\n incoming: false,\n acceptedSocket: false,\n acceptedWebRTC: false,\n accepted: false,\n outgoingSocket: false,\n outgoingWebRTC: false,\n outgoing: false,\n startTime: '',\n muted: false,\n paused: false,\n keypadValue: '',\n conversationId: '',\n transferring: false,\n transferringName: '',\n transferringNumber: '',\n transferringStartTime: '',\n transferSwitching: false,\n transferCalls: new Array(),\n}\n\nexport const currentCall = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateCurrentCall: (state, payload: CurrentCallTypes) => {\n return {\n ...state,\n ...payload,\n transferCalls: state.transferCalls,\n }\n },\n updateKeypadValue: (state, payload: string) => {\n return {\n ...state,\n keypadValue: payload,\n }\n },\n updateTransferring: (state, payload: boolean) => {\n return {\n ...state,\n transferring: payload,\n }\n },\n updateTransferSwitching: (state, payload: boolean) => {\n return {\n ...state,\n transferSwitching: payload,\n }\n },\n addTransferCalls: (state, payload: TransferCallsTypes) => {\n if (state.transferCalls.find((item) => item.number === payload.number)) {\n return state\n } else {\n return {\n ...state,\n transferCalls: [...state.transferCalls, payload],\n }\n }\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n checkIncomingUpdatePlay: (payload: CurrentCallTypes, rootState) => {\n // Check call type and incoming confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.incomingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.incomingSocket)\n ) {\n payload.incoming = true\n\n // Update local player and play the audio\n dispatch.player.updateStartAudioPlayer({ src: incomingRingtone, loop: true })\n }\n // Update the current call values and set incoming\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkOutgoingUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and outgoing confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.outgoingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.outgoingSocket)\n ) {\n payload.outgoing = true\n // Dispatch an event for outgoing call\n dispatchOutgoingCallStarted(payload.displayName, payload.number)\n }\n // Update the current call values and set outgoing\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkAcceptedUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and accepted confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.acceptedWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.acceptedSocket)\n ) {\n payload.accepted = true\n // TODO - dispatch accepted event\n }\n // Update the current call values\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n }),\n})\n\nexport type TransferCallsTypes = {\n type: 'transferred' | 'destination'\n displayName: string\n number: string\n startTime: string\n}\n\nexport interface CurrentCallTypes {\n displayName?: string\n username?: string\n number?: string\n incomingSocket?: boolean\n incomingWebRTC?: boolean\n incoming?: boolean\n acceptedSocket?: boolean\n acceptedWebRTC?: boolean\n accepted?: boolean\n outgoingSocket?: boolean\n outgoingWebRTC?: boolean\n outgoing?: boolean\n startTime?: string\n muted?: boolean\n paused?: boolean\n conversationId?: string\n transferring?: boolean\n transferringName?: string\n transferringNumber?: string\n transferringStartTime?: string\n transferSwitching?: boolean\n transferCalls?: TransferCallsTypes[]\n}\n"],"names":["defaultState","displayName","username","number","incomingSocket","incomingWebRTC","incoming","acceptedSocket","acceptedWebRTC","accepted","outgoingSocket","outgoingWebRTC","outgoing","startTime","muted","paused","keypadValue","conversationId","transferring","transferringName","transferringNumber","transferringStartTime","transferSwitching","transferCalls","Array","currentCall","createModel","state","reducers","updateCurrentCall","payload","__assign","updateKeypadValue","updateTransferring","updateTransferSwitching","addTransferCalls","find","item","__spreadArray","reset","effects","dispatch","checkIncomingUpdatePlay","rootState","_a","currentUser","default_device","type","_b","player","updateStartAudioPlayer","src","incomingRingtone","loop","checkOutgoingUpdate","dispatchOutgoingCallStarted","checkAcceptedUpdate"],"mappings":"sWAQA,IAAMA,EAAe,CACnBC,YAAa,GACbC,SAAU,GACVC,OAAQ,GACRC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,UAAW,GACXC,OAAO,EACPC,QAAQ,EACRC,YAAa,GACbC,eAAgB,GAChBC,cAAc,EACdC,iBAAkB,GAClBC,mBAAoB,GACpBC,sBAAuB,GACvBC,mBAAmB,EACnBC,cAAe,IAAIC,OAGRC,EAAcC,EAAWA,aAAXA,CAAyB,CAClDC,
|
|
1
|
+
{"version":3,"file":"currentCall.js","sources":["../../src/models/currentCall.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport incomingRingtone from '../static/incoming_ringtone'\nimport { dispatchOutgoingCallStarted } from '../events/index'\n\nconst defaultState = {\n displayName: '',\n username: '',\n number: '',\n incomingSocket: false,\n incomingWebRTC: false,\n incoming: false,\n acceptedSocket: false,\n acceptedWebRTC: false,\n accepted: false,\n outgoingSocket: false,\n outgoingWebRTC: false,\n parked: false,\n outgoing: false,\n startTime: '',\n muted: false,\n paused: false,\n keypadValue: '',\n conversationId: '',\n transferring: false,\n transferringName: '',\n transferringNumber: '',\n transferringStartTime: '',\n transferSwitching: false,\n transferCalls: new Array(),\n}\n\nexport const currentCall = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateCurrentCall: (state, payload: CurrentCallTypes) => {\n return {\n ...state,\n ...payload,\n transferCalls: state.transferCalls,\n }\n },\n updateKeypadValue: (state, payload: string) => {\n return {\n ...state,\n keypadValue: payload,\n }\n },\n updateTransferring: (state, payload: boolean) => {\n return {\n ...state,\n transferring: payload,\n }\n },\n updateTransferSwitching: (state, payload: boolean) => {\n return {\n ...state,\n transferSwitching: payload,\n }\n },\n addTransferCalls: (state, payload: TransferCallsTypes) => {\n if (state.transferCalls.find((item) => item.number === payload.number)) {\n return state\n } else {\n return {\n ...state,\n transferCalls: [...state.transferCalls, payload],\n }\n }\n },\n setParked: (state, payload: boolean) => {\n state.parked = payload\n return state\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n checkIncomingUpdatePlay: (payload: CurrentCallTypes, rootState) => {\n // Check call type and incoming confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.incomingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.incomingSocket)\n ) {\n payload.incoming = true\n\n // Update local player and play the audio\n dispatch.player.updateStartAudioPlayer({ src: incomingRingtone, loop: true })\n }\n // Update the current call values and set incoming\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkOutgoingUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and outgoing confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.outgoingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.outgoingSocket)\n ) {\n payload.outgoing = true\n // Dispatch an event for outgoing call\n dispatchOutgoingCallStarted(payload.displayName, payload.number)\n }\n // Update the current call values and set outgoing\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkAcceptedUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and accepted confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.acceptedWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.acceptedSocket)\n ) {\n payload.accepted = true\n // TODO - dispatch accepted event\n }\n // Update the current call values\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n }),\n})\n\nexport type TransferCallsTypes = {\n type: 'transferred' | 'destination'\n displayName: string\n number: string\n startTime: string\n}\n\nexport interface CurrentCallTypes {\n displayName?: string\n username?: string\n number?: string\n incomingSocket?: boolean\n incomingWebRTC?: boolean\n parked?: boolean\n incoming?: boolean\n acceptedSocket?: boolean\n acceptedWebRTC?: boolean\n accepted?: boolean\n outgoingSocket?: boolean\n outgoingWebRTC?: boolean\n outgoing?: boolean\n startTime?: string\n muted?: boolean\n paused?: boolean\n conversationId?: string\n transferring?: boolean\n transferringName?: string\n transferringNumber?: string\n transferringStartTime?: string\n transferSwitching?: boolean\n transferCalls?: TransferCallsTypes[]\n}\n"],"names":["defaultState","displayName","username","number","incomingSocket","incomingWebRTC","incoming","acceptedSocket","acceptedWebRTC","accepted","outgoingSocket","outgoingWebRTC","parked","outgoing","startTime","muted","paused","keypadValue","conversationId","transferring","transferringName","transferringNumber","transferringStartTime","transferSwitching","transferCalls","Array","currentCall","createModel","state","reducers","updateCurrentCall","payload","__assign","updateKeypadValue","updateTransferring","updateTransferSwitching","addTransferCalls","find","item","__spreadArray","setParked","reset","effects","dispatch","checkIncomingUpdatePlay","rootState","_a","currentUser","default_device","type","_b","player","updateStartAudioPlayer","src","incomingRingtone","loop","checkOutgoingUpdate","dispatchOutgoingCallStarted","checkAcceptedUpdate"],"mappings":"sWAQA,IAAMA,EAAe,CACnBC,YAAa,GACbC,SAAU,GACVC,OAAQ,GACRC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,EAChBC,QAAQ,EACRC,UAAU,EACVC,UAAW,GACXC,OAAO,EACPC,QAAQ,EACRC,YAAa,GACbC,eAAgB,GAChBC,cAAc,EACdC,iBAAkB,GAClBC,mBAAoB,GACpBC,sBAAuB,GACvBC,mBAAmB,EACnBC,cAAe,IAAIC,OAGRC,EAAcC,EAAWA,aAAXA,CAAyB,CAClDC,MAAO5B,EACP6B,SAAU,CACRC,kBAAmB,SAACF,EAAOG,GACzB,OACKC,WAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,GACAG,GAAO,CACVP,cAAeI,EAAMJ,eAExB,EACDS,kBAAmB,SAACL,EAAOG,GACzB,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRX,YAAac,GAEhB,EACDG,mBAAoB,SAACN,EAAOG,GAC1B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRT,aAAcY,GAEjB,EACDI,wBAAyB,SAACP,EAAOG,GAC/B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRL,kBAAmBQ,GAEtB,EACDK,iBAAkB,SAACR,EAAOG,GACxB,OAAIH,EAAMJ,cAAca,MAAK,SAACC,GAAS,OAAAA,EAAKnC,SAAW4B,EAAQ5B,MAAM,IAC5DyB,EAGFI,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHJ,cAAae,EAAAA,cAAAA,EAAAA,cAAA,GAAMX,EAAMJ,eAAe,GAAA,CAAAO,IACzC,IAEJ,EACDS,UAAW,SAACZ,EAAOG,GAEjB,OADAH,EAAMhB,OAASmB,EACRH,CACR,EACDa,MAAO,WACL,OAAOzC,CACR,GAEH0C,QAAS,SAACC,GAAa,MAAC,CACtBC,wBAAyB,SAACb,EAA2Bc,YAGD,YAAT,QAAtCC,EAAAD,EAAUE,YAAYC,sBAAgB,IAAAF,OAAA,EAAAA,EAAAG,OAAqBlB,EAAQ1B,gBACpB,cAAX,QAApC6C,EAAAL,EAAUE,YAAYC,sBAAc,IAAAE,OAAA,EAAAA,EAAED,OAAuBlB,EAAQ3B,kBAEtE2B,EAAQzB,UAAW,EAGnBqC,EAASQ,OAAOC,uBAAuB,CAAEC,IAAKC,EAAAA,QAAkBC,MAAM,KAGxEZ,EAASjB,YAAYI,kBAChBE,EAAAA,SAAA,CAAA,EAAAD,GAEN,EACDyB,oBAAqB,SAACzB,EAA2Bc,YAGG,YAAT,QAAtCC,EAAAD,EAAUE,YAAYC,sBAAgB,IAAAF,OAAA,EAAAA,EAAAG,OAAqBlB,EAAQpB,gBACpB,cAAX,QAApCuC,EAAAL,EAAUE,YAAYC,sBAAc,IAAAE,OAAA,EAAAA,EAAED,OAAuBlB,EAAQrB,kBAEtEqB,EAAQlB,UAAW,EAEnB4C,EAAAA,4BAA4B1B,EAAQ9B,YAAa8B,EAAQ5B,SAG3DwC,EAASjB,YAAYI,kBAChBE,EAAAA,SAAA,CAAA,EAAAD,GAEN,EACD2B,oBAAqB,SAAC3B,EAA2Bc,YAGG,YAAT,QAAtCC,EAAAD,EAAUE,YAAYC,sBAAgB,IAAAF,OAAA,EAAAA,EAAAG,OAAqBlB,EAAQvB,gBACpB,cAAX,QAApC0C,EAAAL,EAAUE,YAAYC,sBAAc,IAAAE,OAAA,EAAAA,EAAED,OAAuBlB,EAAQxB,kBAEtEwB,EAAQtB,UAAW,GAIrBkC,EAASjB,YAAYI,kBAChBE,EAAAA,SAAA,CAAA,EAAAD,GAEN,EACD"}
|
package/dist/models/island.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const island: {
|
|
|
11
11
|
setIslandView: (state: IslandTypes, payload: IslandViewType | null) => {
|
|
12
12
|
view: IslandViewType | null;
|
|
13
13
|
isOpen: boolean;
|
|
14
|
+
actionsExpanded: boolean;
|
|
14
15
|
startPosition: {
|
|
15
16
|
x: number;
|
|
16
17
|
y: number;
|
|
@@ -19,11 +20,13 @@ export declare const island: {
|
|
|
19
20
|
toggleIsOpen: (state: IslandTypes, payload: boolean) => {
|
|
20
21
|
isOpen: boolean;
|
|
21
22
|
view?: IslandViewType | null | undefined;
|
|
23
|
+
actionsExpanded: boolean;
|
|
22
24
|
startPosition: {
|
|
23
25
|
x: number;
|
|
24
26
|
y: number;
|
|
25
27
|
};
|
|
26
28
|
};
|
|
29
|
+
toggleActionsExpanded: (state: IslandTypes, payload: boolean) => IslandTypes;
|
|
27
30
|
};
|
|
28
31
|
} & ({} | {
|
|
29
32
|
baseReducer: import("redux").Reducer<IslandTypes, import("redux").AnyAction>;
|
|
@@ -32,6 +35,7 @@ type IslandViewType = 'call' | 'keypad' | 'player' | 'transfer' | 'recorder';
|
|
|
32
35
|
interface IslandTypes {
|
|
33
36
|
view?: IslandViewType | null;
|
|
34
37
|
isOpen: boolean;
|
|
38
|
+
actionsExpanded: boolean;
|
|
35
39
|
startPosition: {
|
|
36
40
|
x: number;
|
|
37
41
|
y: number;
|
package/dist/models/island.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),s=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{view:null,isOpen:!0,startPosition:{x:0,y:0}},reducers:{setIslandView:function(s,n){return e.__assign(e.__assign({},s),{view:n})},toggleIsOpen:function(s,n){return e.__assign(e.__assign({},s),{isOpen:n})}},effects:function(e){return{handleToggleIsOpen:function(s,n){n.island.isOpen&&n.alerts.status.activeAlertsCount>0&&!n.currentCall.displayName?e.island.toggleIsOpen(!0):e.island.toggleIsOpen(!n.island.isOpen)}}}});exports.island=s;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),s=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{view:null,isOpen:!0,actionsExpanded:!1,startPosition:{x:0,y:0}},reducers:{setIslandView:function(s,n){return e.__assign(e.__assign({},s),{view:n})},toggleIsOpen:function(s,n){return e.__assign(e.__assign({},s),{isOpen:n})},toggleActionsExpanded:function(e,s){return e.actionsExpanded=s,e}},effects:function(e){return{handleToggleIsOpen:function(s,n){n.island.isOpen&&n.alerts.status.activeAlertsCount>0&&!n.currentCall.displayName?e.island.toggleIsOpen(!0):e.island.toggleIsOpen(!n.island.isOpen)}}}});exports.island=s;
|
|
2
2
|
//# sourceMappingURL=island.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"island.js","sources":["../../src/models/island.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nconst defaultState: IslandTypes = {\n view: null,\n isOpen: true,\n startPosition: {\n x: 0,\n y: 0,\n },\n}\n\nexport const island = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n setIslandView: (state, payload: IslandViewType | null) => {\n return {\n ...state,\n view: payload,\n }\n },\n toggleIsOpen: (state, payload: boolean) => {\n return {\n ...state,\n isOpen: payload,\n }\n },\n },\n effects: (dispatch) => ({\n handleToggleIsOpen: (_: void, rootState) => {\n if (\n rootState.island.isOpen &&\n rootState.alerts.status.activeAlertsCount > 0 &&\n !rootState.currentCall.displayName\n ) {\n dispatch.island.toggleIsOpen(true)\n } else {\n dispatch.island.toggleIsOpen(!rootState.island.isOpen)\n }\n },\n }),\n})\n\ntype IslandViewType = 'call' | 'keypad' | 'player' | 'transfer' | 'recorder'\n\ninterface IslandTypes {\n view?: IslandViewType | null\n isOpen: boolean\n startPosition: {\n x: number\n y: number\n }\n}\n"],"names":["island","createModel","state","view","isOpen","startPosition","x","y","reducers","setIslandView","payload","__assign","toggleIsOpen","effects","dispatch","handleToggleIsOpen","_","rootState","alerts","status","activeAlertsCount","currentCall","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"island.js","sources":["../../src/models/island.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nconst defaultState: IslandTypes = {\n view: null,\n isOpen: true,\n actionsExpanded: false,\n startPosition: {\n x: 0,\n y: 0,\n },\n}\n\nexport const island = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n setIslandView: (state, payload: IslandViewType | null) => {\n return {\n ...state,\n view: payload,\n }\n },\n toggleIsOpen: (state, payload: boolean) => {\n return {\n ...state,\n isOpen: payload,\n }\n },\n toggleActionsExpanded: (state, payload: boolean) => {\n state.actionsExpanded = payload\n return state\n },\n },\n effects: (dispatch) => ({\n handleToggleIsOpen: (_: void, rootState) => {\n if (\n rootState.island.isOpen &&\n rootState.alerts.status.activeAlertsCount > 0 &&\n !rootState.currentCall.displayName\n ) {\n dispatch.island.toggleIsOpen(true)\n } else {\n dispatch.island.toggleIsOpen(!rootState.island.isOpen)\n }\n },\n }),\n})\n\ntype IslandViewType = 'call' | 'keypad' | 'player' | 'transfer' | 'recorder'\n\ninterface IslandTypes {\n view?: IslandViewType | null\n isOpen: boolean\n actionsExpanded: boolean\n startPosition: {\n x: number\n y: number\n }\n}\n"],"names":["island","createModel","state","view","isOpen","actionsExpanded","startPosition","x","y","reducers","setIslandView","payload","__assign","toggleIsOpen","toggleActionsExpanded","effects","dispatch","handleToggleIsOpen","_","rootState","alerts","status","activeAlertsCount","currentCall","displayName"],"mappings":"wHAgBaA,4DAAoBC,aAAXA,CAAyB,CAC7CC,MAXgC,CAChCC,KAAM,KACNC,QAAQ,EACRC,iBAAiB,EACjBC,cAAe,CACbC,EAAG,EACHC,EAAG,IAMLC,SAAU,CACRC,cAAe,SAACR,EAAOS,GACrB,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKV,GAAK,CACRC,KAAMQ,GAET,EACDE,aAAc,SAACX,EAAOS,GACpB,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKV,GAAK,CACRE,OAAQO,GAEX,EACDG,sBAAuB,SAACZ,EAAOS,GAE7B,OADAT,EAAMG,gBAAkBM,EACjBT,CACR,GAEHa,QAAS,SAACC,GAAa,MAAC,CACtBC,mBAAoB,SAACC,EAASC,GAE1BA,EAAUnB,OAAOI,QACjBe,EAAUC,OAAOC,OAAOC,kBAAoB,IAC3CH,EAAUI,YAAYC,YAEvBR,EAAShB,OAAOa,cAAa,GAE7BG,EAAShB,OAAOa,cAAcM,EAAUnB,OAAOI,OAElD,EACD"}
|
package/dist/models/motions.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ declare const defaultState: {
|
|
|
19
19
|
accepted: {
|
|
20
20
|
width: number;
|
|
21
21
|
height: number;
|
|
22
|
+
actionsExpanded: {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
};
|
|
22
26
|
};
|
|
23
27
|
transfer: {
|
|
24
28
|
width: number;
|
|
@@ -98,6 +102,10 @@ export declare const motions: {
|
|
|
98
102
|
accepted: {
|
|
99
103
|
width: number;
|
|
100
104
|
height: number;
|
|
105
|
+
actionsExpanded: {
|
|
106
|
+
width: number;
|
|
107
|
+
height: number;
|
|
108
|
+
};
|
|
101
109
|
};
|
|
102
110
|
transfer: {
|
|
103
111
|
width: number;
|
|
@@ -180,6 +188,10 @@ export declare const motions: {
|
|
|
180
188
|
accepted: {
|
|
181
189
|
width: number;
|
|
182
190
|
height: number;
|
|
191
|
+
actionsExpanded: {
|
|
192
|
+
width: number;
|
|
193
|
+
height: number;
|
|
194
|
+
};
|
|
183
195
|
};
|
|
184
196
|
transfer: {
|
|
185
197
|
width: number;
|
|
@@ -258,6 +270,10 @@ export declare const motions: {
|
|
|
258
270
|
accepted: {
|
|
259
271
|
width: number;
|
|
260
272
|
height: number;
|
|
273
|
+
actionsExpanded: {
|
|
274
|
+
width: number;
|
|
275
|
+
height: number;
|
|
276
|
+
};
|
|
261
277
|
};
|
|
262
278
|
transfer: {
|
|
263
279
|
width: number;
|
package/dist/models/motions.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{padding_expanded:24,padding_x_collapsed:8,padding_y_collapsed:16,border_radius_expanded:20,border_radius_collapsed:99,variants:{call:{expanded:{incoming:{width:418,height:96},outgoing:{width:418,height:96},accepted:{width:348,height:236},transfer:{width:348,height:304}},collapsed:{width:168,height:40}},keypad:{expanded:{width:338,height:400},collapsed:{width:168,height:40}},transfer:{expanded:{width:408,height:410},collapsed:{width:168,height:40}},player:{expanded:{width:374,height:236},collapsed:{width:168,height:40}},recorder:{expanded:{width:374,height:256},collapsed:{width:168,height:40}},alerts:{width:418,height:88}}}});exports.motions=e;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{padding_expanded:24,padding_x_collapsed:8,padding_y_collapsed:16,border_radius_expanded:20,border_radius_collapsed:99,variants:{call:{expanded:{incoming:{width:418,height:96},outgoing:{width:418,height:96},accepted:{width:348,height:236,actionsExpanded:{width:348,height:304}},transfer:{width:348,height:304}},collapsed:{width:168,height:40}},keypad:{expanded:{width:338,height:400},collapsed:{width:168,height:40}},transfer:{expanded:{width:408,height:410},collapsed:{width:168,height:40}},player:{expanded:{width:374,height:236},collapsed:{width:168,height:40}},recorder:{expanded:{width:374,height:256},collapsed:{width:168,height:40}},alerts:{width:418,height:88}}}});exports.motions=e;
|
|
2
2
|
//# sourceMappingURL=motions.js.map
|