@nethesis/phone-island 0.14.2 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/App.js.map +1 -1
  3. package/dist/components/AlertView/index.js +1 -1
  4. package/dist/components/AlertView/index.js.map +1 -1
  5. package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
  6. package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
  7. package/dist/components/AudioPlayerView/Progress.js +1 -1
  8. package/dist/components/AudioPlayerView/Progress.js.map +1 -1
  9. package/dist/components/AudioPlayerView/index.js +1 -1
  10. package/dist/components/AudioPlayerView/index.js.map +1 -1
  11. package/dist/components/Button.js +1 -1
  12. package/dist/components/Button.js.map +1 -1
  13. package/dist/components/CallView/Actions.js +1 -1
  14. package/dist/components/CallView/Actions.js.map +1 -1
  15. package/dist/components/CallView/index.js +1 -1
  16. package/dist/components/CallView/index.js.map +1 -1
  17. package/dist/components/ConferenceView/index.js +1 -1
  18. package/dist/components/ConferenceView/index.js.map +1 -1
  19. package/dist/components/ContactView/ContactListView.js +1 -1
  20. package/dist/components/ContactView/ContactListView.js.map +1 -1
  21. package/dist/components/Events.js +1 -1
  22. package/dist/components/Events.js.map +1 -1
  23. package/dist/components/Hangup.js +1 -1
  24. package/dist/components/Hangup.js.map +1 -1
  25. package/dist/components/Island.js +1 -1
  26. package/dist/components/Island.js.map +1 -1
  27. package/dist/components/IslandMotion.js +1 -1
  28. package/dist/components/IslandMotion.js.map +1 -1
  29. package/dist/components/KeypadView/Actions.js +1 -1
  30. package/dist/components/KeypadView/index.js +1 -1
  31. package/dist/components/KeypadView/index.js.map +1 -1
  32. package/dist/components/RecorderView/index.js +1 -1
  33. package/dist/components/RecorderView/index.js.map +1 -1
  34. package/dist/components/RestAPI.js +1 -1
  35. package/dist/components/RestAPI.js.map +1 -1
  36. package/dist/components/SettingsView/ThemeView.js +1 -1
  37. package/dist/components/SettingsView/ThemeView.js.map +1 -1
  38. package/dist/components/Socket.js +1 -1
  39. package/dist/components/Socket.js.map +1 -1
  40. package/dist/components/StreamingAnswerView/index.js +2 -0
  41. package/dist/components/StreamingAnswerView/index.js.map +1 -0
  42. package/dist/components/StreamingImage/index.js +2 -0
  43. package/dist/components/StreamingImage/index.js.map +1 -0
  44. package/dist/components/SwitchDeviceView/index.js +1 -1
  45. package/dist/components/SwitchDeviceView/index.js.map +1 -1
  46. package/dist/components/SwitchInputView/DropdownContent.js +1 -1
  47. package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
  48. package/dist/components/VideoStreamingEmptyState/index.js +2 -0
  49. package/dist/components/VideoStreamingEmptyState/index.js.map +1 -0
  50. package/dist/components/VideoStreamingSkeleton/index.js +2 -0
  51. package/dist/components/VideoStreamingSkeleton/index.js.map +1 -0
  52. package/dist/events/CallEvents.js +1 -1
  53. package/dist/events/CallEvents.js.map +1 -1
  54. package/dist/events/PlayerEvents.js +1 -1
  55. package/dist/events/PlayerEvents.js.map +1 -1
  56. package/dist/events/RecorderEvents.js +1 -1
  57. package/dist/events/SocketEvents.js +1 -1
  58. package/dist/events/SocketEvents.js.map +1 -1
  59. package/dist/index.css +1 -1
  60. package/dist/lib/phone/call.js +1 -1
  61. package/dist/lib/phone/call.js.map +1 -1
  62. package/dist/lib/storage/local_storage.js +1 -1
  63. package/dist/lib/storage/local_storage.js.map +1 -1
  64. package/dist/models/currentCall.js +1 -1
  65. package/dist/models/currentCall.js.map +1 -1
  66. package/dist/models/index.js +1 -1
  67. package/dist/models/index.js.map +1 -1
  68. package/dist/models/island.js +1 -1
  69. package/dist/models/island.js.map +1 -1
  70. package/dist/models/motions.js +1 -1
  71. package/dist/models/motions.js.map +1 -1
  72. package/dist/models/streaming.js +2 -0
  73. package/dist/models/streaming.js.map +1 -0
  74. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
  75. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
  76. package/dist/public/locales/en/translation.json.js +1 -1
  77. package/dist/public/locales/it/translation.json.js +1 -1
  78. package/dist/services/user.js +1 -1
  79. package/dist/services/user.js.map +1 -1
  80. package/dist/styles/Island.styles.js +1 -1
  81. package/dist/styles/Island.styles.js.map +1 -1
  82. package/dist/utils/genericFunctions/isBackCallVisible.js +1 -1
  83. package/dist/utils/genericFunctions/isBackCallVisible.js.map +1 -1
  84. package/dist/utils/genericFunctions/stringUtils.js +2 -0
  85. package/dist/utils/genericFunctions/stringUtils.js.map +1 -0
  86. package/dist/utils/streaming/getStreamingSourceId.js +2 -0
  87. package/dist/utils/streaming/getStreamingSourceId.js.map +1 -0
  88. package/dist/utils/streaming/isFromStreaming.js +2 -0
  89. package/dist/utils/streaming/isFromStreaming.js.map +1 -0
  90. package/dist/utils/streaming/streamingUtils.js +2 -0
  91. package/dist/utils/streaming/streamingUtils.js.map +1 -0
  92. package/package.json +1 -1
package/dist/App.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./node_modules/tslib/tslib.es6.js"),n=require("react"),t=require("./components/Events.js"),s=require("./components/Socket.js"),i=require("./components/WebRTC.js"),o=require("./components/Island.js"),a=require("./components/RestAPI.js"),r=require("./utils/customHooks/useEventListener.js"),c=require("./utils/genericFunctions/eventDispatch.js"),d=require("./utils/genericFunctions/localStorage.js");require("./node_modules/react-redux/es/index.js");var l=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/i18next/dist/esm/i18next.js"),require("./node_modules/react-tooltip/dist/react-tooltip.min.mjs.js");var u=require("./node_modules/js-base64/base64.mjs.js"),p=require("./workers/wake_up.js"),h=require("./lib/i18n.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var v=require("./lib/webrtc/messages.js"),f=require("./lib/darkTheme.js"),g=require("./services/user.js"),m=require("./utils/genericFunctions/isEmpty.js"),E=require("./utils/genericFunctions/checkConnection.js"),S=require("./utils/genericFunctions/isBackCallVisible.js"),I=require("./node_modules/react-redux/es/components/Provider.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("./node_modules/react-redux/node_modules/react-is/index.js"),require("./node_modules/react-redux/es/components/Context.js");var D=w(n),L=function(w){var L=w.dataConfig,j=w.showAlways,b=void 0!==j&&j,q=w.uaType,y=u.Base64.atob(L||"").split(":"),x=y[0],k=y[1],C=y[2],_=y[3],T=y[4],P=y[5],A=y[6],V=n.useState(!1),O=V[0],z=V[1],N=n.useState(!1),U=N[0],F=N[1],R=n.useState(!1),W=R[0],J=R[1];n.useEffect((function(){var e=new Worker(p.default,{type:"module"});return e.onmessage=function(e){"wakeup"===e.data&&z(!0)},function(){e.terminate()}}),[]),n.useEffect((function(){W&&U&&(z(!1),F(!1),J(!1))}),[W,U]),r.useEventListener("phone-island-expand",(function(){l.store.dispatch.island.toggleIsOpen(!0),c.eventDispatch("phone-island-expanded",{})})),r.useEventListener("phone-island-compress",(function(){l.store.dispatch.island.toggleIsOpen(!1),c.eventDispatch("phone-island-compressed",{})})),r.useEventListener("phone-island-call-keypad-close",(function(){l.store.dispatch.island.setIslandView("call"),c.eventDispatch("phone-island-call-keypad-closed",{})})),r.useEventListener("phone-island-call-transfer-close",(function(){l.store.dispatch.island.setIslandView("call"),c.eventDispatch("phone-island-call-transfer-closed",{})})),r.useEventListener("phone-island-recording-close",(function(){l.store.dispatch.island.setIslandView(null),c.eventDispatch("phone-island-recording-closed",{})})),r.useEventListener("phone-island-audio-player-close",(function(){l.store.dispatch.island.setIslandView(null),c.eventDispatch("phone-island-audio-player-closed",{})})),r.useEventListener("phone-island-detach",(function(e){v.detach(),c.eventDispatch("phone-island-detached",{})})),r.useEventListener("phone-island-audio-input-change",(function(e){d.setJSONItem("phone-island-audio-input-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-audio-input-changed",{})})),r.useEventListener("phone-island-video-input-change",(function(e){d.setJSONItem("phone-island-video-input-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-video-input-changed",{})}));var B=n.useState(!0),H=B[0],M=B[1],G=n.useState(!0),K=G[0],Q=G[1];r.useEventListener("phone-island-audio-output-change",(function(e){K||(c.eventDispatch("phone-island-call-start",{number:"*43"}),l.store.dispatch.island.setIslandView(null),l.store.dispatch.island.toggleAvoidToShow(!0)),setTimeout((function(){var n=l.store.getState().player.remoteAudio;null==n||n.current.setSinkId(e.deviceId).then((function(){console.info("Default audio output device change with success!"),d.setJSONItem("phone-island-audio-output-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-audio-output-changed",{}),c.eventDispatch("phone-island-call-end",{}),l.store.dispatch.island.toggleAvoidToShow(!1)})).catch((function(e){console.error("Default audio output device change error:",e),c.eventDispatch("phone-island-call-end",{}),l.store.dispatch.island.toggleAvoidToShow(!1)}))}),500)})),r.useEventListener("phone-island-presence-change",(function(e){g.changeOperatorStatus(e),c.eventDispatch("phone-island-presence-changed",{})})),r.useEventListener("phone-island-view-changed",(function(e){var n=null==e?void 0:e.viewType;l.store.dispatch.island.setIslandView(n)})),n.useEffect((function(){H&&(h.initI18n(),M(!1))}),[H]);var X=l.store.getState().player.remoteAudio;return n.useEffect((function(){var e;if(K&&X){var n=null===(e=d.getJSONItem("phone-island-audio-output-device"))||void 0===e?void 0:e.deviceId;c.eventDispatch("phone-island-audio-output-change",{deviceId:n}),Q(!1)}}),[K,X]),n.useEffect((function(){f.checkDarkTheme()}),[]),r.useEventListener("phone-island-theme-change",(function(e){f.setTheme(null==e?void 0:e.selectedTheme)})),r.useEventListener("phone-island-default-device-change",(function(e){l.store.dispatch.currentUser.updateCurrentDefaultDevice(null==e?void 0:e.deviceInformationObject),c.eventDispatch("phone-island-default-device-changed",{})})),r.useEventListener("phone-island-alert",(function(e){l.store.dispatch.alerts.setAlert(e.toString())})),r.useEventListener("phone-island-check-connection",(function(){E.checkInternetConnection().then((function(e){e?c.eventDispatch("phone-island-internet-connected",{}):c.eventDispatch("phone-island-internet-disconnected",{})}))})),n.useEffect((function(){var e=setInterval((function(){E.checkInternetConnection().then((function(e){e?c.eventDispatch("phone-island-internet-connected",{}):c.eventDispatch("phone-island-internet-disconnected",{})}))}),5e3);return function(){return clearInterval(e)}}),[]),r.useEventListener("phone-island-main-presence",(function(e){var n,t,s,i,o=null===(n=l.store.getState().currentUser)||void 0===n?void 0:n.username,a=l.store.getState().currentUser,r=null==a?void 0:a.mainPresence;if(void 0!==o&&""!==o&&!m.isEmpty(e[o])&&void 0!==(null===(t=e[o])||void 0===t?void 0:t.mainPresence)){var d=null===(s=e[o])||void 0===s?void 0:s.mainPresence;l.store.dispatch.currentUser.updateMainPresence(null===(i=e[o])||void 0===i?void 0:i.mainPresence),"online"===d&&"online"!==r&&c.eventDispatch("phone-island-call-ended",{})}})),r.useEventListener("phone-island-call-status",(function(){var e=l.store.getState().currentCall;console.log("Call status debug informations: ",e)})),r.useEventListener("phone-island-user-status",(function(){var e=l.store.getState().currentUser;console.log("User status debug informations: ",e)})),r.useEventListener("phone-island-all-users-status",(function(){var e=l.store.getState().users;console.log("Users status debug informations: ",e)})),r.useEventListener("phone-island-status",(function(){var e=l.store.getState().island;console.log("Phone island status debug informations: ",e)})),r.useEventListener("phone-island-webrtc-status",(function(){var e=l.store.getState().webrtc;console.log("Webrtc status debug informations: ",e)})),r.useEventListener("phone-island-player-status",(function(){var e=l.store.getState().player;console.log("Player status debug informations: ",e)})),r.useEventListener("phone-island-conference-status",(function(){var e=l.store.getState().conference;console.log("Webrtc status debug informations: ",e)})),r.useEventListener("phone-island-screen-share-status",(function(){var e=l.store.getState().screenShare;console.log("Screen share status debug information: ",e)})),r.useEventListener("phone-island-player-force-stop",(function(){l.store.dispatch.player.reset(),console.log("Audio player is interrupted")})),r.useEventListener("phone-island-sideview-open",(function(){l.store.dispatch.island.toggleSideViewVisible(!0),c.eventDispatch("phone-island-sideview-opened",{})})),r.useEventListener("phone-island-sideview-close",(function(){l.store.dispatch.island.toggleSideViewVisible(!1),c.eventDispatch("phone-island-sideview-closed",{})})),r.useEventListener("phone-island-size-change",(function(n){var t=l.store.getState().island.sideViewIsVisible,s=n.sizeInformation,i=e.__assign(e.__assign({},s),{right:t?"42px":"0px",top:S.isBackCallActive()?"40px":"0px"});c.eventDispatch("phone-island-size-changed",{sizes:i})})),r.useEventListener("phone-island-call-ended",(function(){if("online"===l.store.getState().currentUser.mainPresence){c.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),c.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.resetIslandStore()}})),r.useEventListener("phone-island-conference-list-open",(function(){l.store.dispatch.island.toggleConferenceList(!0),c.eventDispatch("phone-island-conference-list-opened",{})})),r.useEventListener("phone-island-alert-removed",(function(e){var n=l.store.getState().alerts.status.activeAlertsCount,t=l.store.getState().island,s=t.view,i=t.previousView,o=l.store.getState().conference.isActive,a=l.store.getState().alerts.data,r=l.store.getState().currentCall,d=r.incoming,u=r.outgoing,p=r.accepted,h=null==e?void 0:e.type,v=r.incoming||r.outgoing||r.accepted||""!==r.conversationId;if(!(d||u||p||n>0||"player"===s||"recorder"===s||"physicalPhoneRecorder"===s||"waitingConference"===s&&o||"transfer"===s&&o||"settings"===s&&o||"settings"===s&&("recorder"===i||"player"===i))&&0===n&&(!h||a[h]&&!a[h].active)&&!v){c.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),c.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.resetIslandStore()}})),r.useEventListener("phone-island-conference-list-close",(function(){l.store.dispatch.island.toggleConferenceList(!1),c.eventDispatch("phone-island-conference-list-closed",{})})),D.default.createElement(D.default.Fragment,null,D.default.createElement(I.default,{store:l.store},D.default.createElement(i.WebRTC,{hostName:x,sipExten:_,sipSecret:T,sipHost:P,sipPort:A,reload:O,reloadedCallback:function(){return F(!0)},uaType:q},D.default.createElement(a.RestAPI,{hostName:x,username:k,authToken:C},D.default.createElement(s.Socket,{hostName:x,username:k,authToken:C,reload:O,reloadedCallback:function(){return J(!0)},uaType:q},D.default.createElement(t.Events,{sipHost:P},D.default.createElement(o.Island,{showAlways:b,uaType:q})))))))};L.displayName="PhoneIsland",exports.PhoneIsland=L;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./node_modules/tslib/tslib.es6.js"),n=require("react"),t=require("./components/Events.js"),s=require("./components/Socket.js"),i=require("./components/WebRTC.js"),o=require("./components/Island.js"),a=require("./components/RestAPI.js"),r=require("./utils/customHooks/useEventListener.js"),c=require("./utils/genericFunctions/eventDispatch.js"),d=require("./utils/genericFunctions/localStorage.js"),l=require("./store/index.js"),u=require("./services/user.js");require("./node_modules/react-redux/es/index.js"),require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/i18next/dist/esm/i18next.js"),require("./node_modules/react-tooltip/dist/react-tooltip.min.mjs.js");var p=require("./node_modules/js-base64/base64.mjs.js"),h=require("./workers/wake_up.js"),v=require("./lib/i18n.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var f=require("./lib/webrtc/messages.js"),g=require("./lib/darkTheme.js"),m=require("./utils/genericFunctions/isEmpty.js"),E=require("./utils/genericFunctions/checkConnection.js"),S=require("./utils/genericFunctions/isBackCallVisible.js"),I=require("./node_modules/react-redux/es/components/Provider.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("./node_modules/react-redux/node_modules/react-is/index.js"),require("./node_modules/react-redux/es/components/Context.js");var D=w(n),L=function(w){var L=w.dataConfig,j=w.showAlways,b=void 0!==j&&j,q=w.uaType,y=p.Base64.atob(L||"").split(":"),x=y[0],k=y[1],C=y[2],_=y[3],T=y[4],P=y[5],A=y[6],V=n.useState(!1),O=V[0],z=V[1],N=n.useState(!1),U=N[0],F=N[1],R=n.useState(!1),W=R[0],J=R[1];n.useEffect((function(){var e=new Worker(h.default,{type:"module"});return e.onmessage=function(e){"wakeup"===e.data&&z(!0)},function(){e.terminate()}}),[]),n.useEffect((function(){W&&U&&(z(!1),F(!1),J(!1))}),[W,U]),r.useEventListener("phone-island-expand",(function(){l.store.dispatch.island.toggleIsOpen(!0),c.eventDispatch("phone-island-expanded",{})})),r.useEventListener("phone-island-compress",(function(){l.store.dispatch.island.toggleIsOpen(!1),c.eventDispatch("phone-island-compressed",{})})),r.useEventListener("phone-island-call-keypad-close",(function(){l.store.dispatch.island.setIslandView("call"),c.eventDispatch("phone-island-call-keypad-closed",{})})),r.useEventListener("phone-island-call-transfer-close",(function(){l.store.dispatch.island.setIslandView("call"),c.eventDispatch("phone-island-call-transfer-closed",{})})),r.useEventListener("phone-island-recording-close",(function(){l.store.dispatch.island.setIslandView(null),c.eventDispatch("phone-island-recording-closed",{})})),r.useEventListener("phone-island-audio-player-close",(function(){l.store.dispatch.island.setIslandView(null),c.eventDispatch("phone-island-audio-player-closed",{})})),r.useEventListener("phone-island-detach",(function(e){f.detach(),c.eventDispatch("phone-island-detached",{})})),r.useEventListener("phone-island-audio-input-change",(function(e){d.setJSONItem("phone-island-audio-input-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-audio-input-changed",{})})),r.useEventListener("phone-island-video-input-change",(function(e){d.setJSONItem("phone-island-video-input-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-video-input-changed",{})}));var B=n.useState(!0),H=B[0],M=B[1],G=n.useState(!0),K=G[0],Q=G[1];r.useEventListener("phone-island-audio-output-change",(function(e){K||(c.eventDispatch("phone-island-call-start",{number:"*43"}),l.store.dispatch.island.setIslandView(null),l.store.dispatch.island.toggleAvoidToShow(!0)),setTimeout((function(){var n=l.store.getState().player.remoteAudio;null==n||n.current.setSinkId(e.deviceId).then((function(){console.info("Default audio output device change with success!"),d.setJSONItem("phone-island-audio-output-device",{deviceId:e.deviceId}),c.eventDispatch("phone-island-audio-output-changed",{}),c.eventDispatch("phone-island-call-end",{}),l.store.dispatch.island.toggleAvoidToShow(!1)})).catch((function(e){console.error("Default audio output device change error:",e),c.eventDispatch("phone-island-call-end",{}),l.store.dispatch.island.toggleAvoidToShow(!1)}))}),500)})),r.useEventListener("phone-island-presence-change",(function(e){u.changeOperatorStatus(e),c.eventDispatch("phone-island-presence-changed",{})})),r.useEventListener("phone-island-view-changed",(function(e){var n=null==e?void 0:e.viewType;l.store.dispatch.island.setIslandView(n)})),n.useEffect((function(){H&&(v.initI18n(),M(!1))}),[H]);var X=l.store.getState().player.remoteAudio;return n.useEffect((function(){var e;if(K&&X){var n=null===(e=d.getJSONItem("phone-island-audio-output-device"))||void 0===e?void 0:e.deviceId;c.eventDispatch("phone-island-audio-output-change",{deviceId:n}),Q(!1)}}),[K,X]),n.useEffect((function(){g.checkDarkTheme()}),[]),r.useEventListener("phone-island-theme-change",(function(e){g.setTheme(null==e?void 0:e.selectedTheme)})),r.useEventListener("phone-island-default-device-change",(function(e){l.store.dispatch.currentUser.updateCurrentDefaultDevice(null==e?void 0:e.deviceInformationObject),c.eventDispatch("phone-island-default-device-changed",{})})),r.useEventListener("phone-island-alert",(function(e){l.store.dispatch.alerts.setAlert(e.toString())})),r.useEventListener("phone-island-check-connection",(function(){E.checkInternetConnection().then((function(e){e?c.eventDispatch("phone-island-internet-connected",{}):c.eventDispatch("phone-island-internet-disconnected",{})}))})),n.useEffect((function(){var e=setInterval((function(){E.checkInternetConnection().then((function(e){e?c.eventDispatch("phone-island-internet-connected",{}):c.eventDispatch("phone-island-internet-disconnected",{})}))}),5e3);return function(){return clearInterval(e)}}),[]),r.useEventListener("phone-island-main-presence",(function(e){var n,t,s,i,o=null===(n=l.store.getState().currentUser)||void 0===n?void 0:n.username,a=l.store.getState().currentUser,r=null==a?void 0:a.mainPresence;if(void 0!==o&&""!==o&&!m.isEmpty(e[o])&&void 0!==(null===(t=e[o])||void 0===t?void 0:t.mainPresence)){var d=null===(s=e[o])||void 0===s?void 0:s.mainPresence;l.store.dispatch.currentUser.updateMainPresence(null===(i=e[o])||void 0===i?void 0:i.mainPresence),"online"===d&&"online"!==r&&c.eventDispatch("phone-island-call-ended",{})}})),r.useEventListener("phone-island-call-status",(function(){var e=l.store.getState().currentCall;console.log("Call status debug informations: ",e)})),r.useEventListener("phone-island-user-status",(function(){var e=l.store.getState().currentUser;console.log("User status debug informations: ",e)})),r.useEventListener("phone-island-all-users-status",(function(){var e=l.store.getState().users;console.log("Users status debug informations: ",e)})),r.useEventListener("phone-island-status",(function(){var e=l.store.getState().island;console.log("Phone island status debug informations: ",e)})),r.useEventListener("phone-island-webrtc-status",(function(){var e=l.store.getState().webrtc;console.log("Webrtc status debug informations: ",e)})),r.useEventListener("phone-island-player-status",(function(){var e=l.store.getState().player;console.log("Player status debug informations: ",e)})),r.useEventListener("phone-island-conference-status",(function(){var e=l.store.getState().conference;console.log("Webrtc status debug informations: ",e)})),r.useEventListener("phone-island-streaming-status",(function(){var e=l.store.getState().streaming;console.log("Streaming status debug informations: ",e)})),r.useEventListener("phone-island-player-force-stop",(function(){l.store.dispatch.player.reset(),console.log("Audio player is interrupted")})),r.useEventListener("phone-island-sideview-open",(function(){l.store.dispatch.island.toggleSideViewVisible(!0),c.eventDispatch("phone-island-sideview-opened",{})})),r.useEventListener("phone-island-sideview-close",(function(){l.store.dispatch.island.toggleSideViewVisible(!1),c.eventDispatch("phone-island-sideview-closed",{})})),r.useEventListener("phone-island-size-change",(function(n){var t=l.store.getState().island.sideViewIsVisible,s=n.sizeInformation,i=e.__assign(e.__assign({},s),{right:t?"42px":"0px",top:S.isBackCallActive()?"40px":"0px"});c.eventDispatch("phone-island-size-changed",{sizes:i})})),r.useEventListener("phone-island-call-ended",(function(){if("online"===l.store.getState().currentUser.mainPresence){c.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),c.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.resetIslandStore()}})),r.useEventListener("phone-island-conference-list-open",(function(){l.store.dispatch.island.toggleConferenceList(!0),c.eventDispatch("phone-island-conference-list-opened",{})})),r.useEventListener("phone-island-alert-removed",(function(e){var n=l.store.getState().alerts.status.activeAlertsCount,t=l.store.getState().island,s=t.view,i=t.previousView,o=l.store.getState().conference.isActive,a=l.store.getState().alerts.data,r=l.store.getState().currentCall,d=r.incoming,u=r.outgoing,p=r.accepted,h=null==e?void 0:e.type,v=r.incoming||r.outgoing||r.accepted||""!==r.conversationId;if(!(d||u||p||n>0||"player"===s||"recorder"===s||"physicalPhoneRecorder"===s||"waitingConference"===s&&o||"transfer"===s&&o||"settings"===s&&o||"settings"===s&&("recorder"===i||"player"===i))&&0===n&&(!h||a[h]&&!a[h].active)&&!v){c.eventDispatch("phone-island-size-change",{sizeInformation:{width:"0px",height:"0px"}}),c.eventDispatch("phone-island-sideview-close",{}),l.store.dispatch.island.resetIslandStore()}})),r.useEventListener("phone-island-conference-list-close",(function(){l.store.dispatch.island.toggleConferenceList(!1),c.eventDispatch("phone-island-conference-list-closed",{})})),D.default.createElement(D.default.Fragment,null,D.default.createElement(I.default,{store:l.store},D.default.createElement(i.WebRTC,{hostName:x,sipExten:_,sipSecret:T,sipHost:P,sipPort:A,reload:O,reloadedCallback:function(){return F(!0)},uaType:q},D.default.createElement(a.RestAPI,{hostName:x,username:k,authToken:C},D.default.createElement(s.Socket,{hostName:x,username:k,authToken:C,reload:O,reloadedCallback:function(){return J(!0)},uaType:q},D.default.createElement(t.Events,{sipHost:P},D.default.createElement(o.Island,{showAlways:b,uaType:q})))))))};L.displayName="PhoneIsland",exports.PhoneIsland=L;
2
2
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\nimport { initI18n } from './lib/i18n'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener, eventDispatch, setJSONItem, getJSONItem } from './utils'\nimport { detach } from './lib/webrtc/messages'\nimport { checkDarkTheme, setTheme } from './lib/darkTheme'\nimport { changeOperatorStatus } from './services/user'\nimport { isEmpty } from './utils/genericFunctions/isEmpty'\nimport { checkInternetConnection } from './utils/genericFunctions/checkConnection'\nimport { isBackCallActive } from './utils/genericFunctions/isBackCallVisible'\n\ninterface PhoneIslandProps {\n dataConfig: string\n showAlways?: boolean\n uaType: string\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({\n dataConfig,\n showAlways = false,\n uaType,\n}: PhoneIslandProps) => {\n const CONFIG: string[] = Base64.atob(dataConfig || '').split(':')\n const HOST_NAME: string = CONFIG[0]\n const USERNAME: string = CONFIG[1]\n const AUTH_TOKEN: string = CONFIG[2]\n const SIP_EXTEN: string = CONFIG[3]\n const SIP_SECRET: string = CONFIG[4]\n const SIP_HOST: string = CONFIG[5]\n const SIP_PORT: string = CONFIG[6]\n\n // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-expand', () => {\n store.dispatch.island.toggleIsOpen(true)\n eventDispatch('phone-island-expanded', {})\n })\n useEventListener('phone-island-compress', () => {\n store.dispatch.island.toggleIsOpen(false)\n eventDispatch('phone-island-compressed', {})\n })\n\n useEventListener('phone-island-call-keypad-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-keypad-closed', {})\n })\n useEventListener('phone-island-call-transfer-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-transfer-closed', {})\n })\n useEventListener('phone-island-recording-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-recording-closed', {})\n })\n useEventListener('phone-island-audio-player-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-audio-player-closed', {})\n })\n\n useEventListener('phone-island-detach', (data) => {\n detach()\n eventDispatch('phone-island-detached', {})\n })\n\n useEventListener('phone-island-audio-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-audio-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-audio-input-changed', {})\n })\n\n useEventListener('phone-island-video-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-video-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-video-input-changed', {})\n })\n\n const [firstRenderI18n, setFirstRenderI18n] = useState(true)\n const [firstAudioOutputInit, setFirstAudioOutputInit] = useState(true)\n\n useEventListener('phone-island-audio-output-change', (data: DeviceInputOutputTypes) => {\n if (!firstAudioOutputInit) {\n eventDispatch('phone-island-call-start', { number: '*43' })\n store.dispatch.island.setIslandView(null)\n store.dispatch.island.toggleAvoidToShow(true)\n }\n\n setTimeout(() => {\n const remoteAudioElement: any = store.getState().player.remoteAudio\n // set audio output\n remoteAudioElement?.current\n .setSinkId(data.deviceId)\n .then(function () {\n console.info('Default audio output device change with success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: data.deviceId })\n\n // dispatch event\n eventDispatch('phone-island-audio-output-changed', {})\n eventDispatch('phone-island-call-end', {})\n store.dispatch.island.toggleAvoidToShow(false)\n })\n .catch(function (err) {\n console.error('Default audio output device change error:', err)\n eventDispatch('phone-island-call-end', {})\n store.dispatch.island.toggleAvoidToShow(false)\n })\n }, 500)\n })\n\n // Listen for the operator status change\n useEventListener('phone-island-presence-change', (data: any) => {\n changeOperatorStatus(data)\n eventDispatch('phone-island-presence-changed', {})\n })\n\n useEventListener('phone-island-view-changed', (data) => {\n const viewType = data?.viewType\n store.dispatch.island.setIslandView(viewType)\n })\n\n //initialize i18n\n useEffect(() => {\n if (firstRenderI18n) {\n initI18n()\n setFirstRenderI18n(false)\n }\n }, [firstRenderI18n])\n\n const remoteAudioElement: any = store.getState().player.remoteAudio\n\n //get output device from localstorage\n useEffect(() => {\n if (firstAudioOutputInit && remoteAudioElement) {\n const defaultAudioOutputDevice: any = getJSONItem(\n `phone-island-audio-output-device`,\n )?.deviceId\n eventDispatch('phone-island-audio-output-change', {\n deviceId: defaultAudioOutputDevice,\n })\n setFirstAudioOutputInit(false)\n }\n }, [firstAudioOutputInit, remoteAudioElement])\n\n useEffect(() => {\n checkDarkTheme()\n }, [])\n\n useEventListener('phone-island-theme-change', (theme: any) => {\n setTheme(theme?.selectedTheme)\n })\n\n useEventListener('phone-island-default-device-change', (data) => {\n store.dispatch.currentUser.updateCurrentDefaultDevice(data?.deviceInformationObject)\n eventDispatch('phone-island-default-device-changed', {})\n })\n\n useEventListener('phone-island-alert', (alertType: any) => {\n store.dispatch.alerts.setAlert(alertType.toString())\n })\n\n // Manually check if internet connection is enabled or not\n useEventListener('phone-island-check-connection', () => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n })\n\n // Check internet connection every 5 seconds\n useEffect(() => {\n const intervalId = setInterval(() => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n }, 5000)\n\n return () => clearInterval(intervalId)\n }, [])\n\n useEventListener('phone-island-main-presence', (data: any) => {\n const currentUsernameInformation: any = store.getState().currentUser?.username\n const currentUserObject: any = store.getState().currentUser\n let mainPresenceValueBeforeUpdate = currentUserObject?.mainPresence\n if (\n currentUsernameInformation !== undefined &&\n currentUsernameInformation !== '' &&\n !isEmpty(data[currentUsernameInformation]) &&\n data[currentUsernameInformation]?.mainPresence !== undefined\n ) {\n let newMainPresenceValue = data[currentUsernameInformation]?.mainPresence\n store.dispatch.currentUser.updateMainPresence(data[currentUsernameInformation]?.mainPresence)\n let mainPresenceValueAfterUpdate = newMainPresenceValue\n if (mainPresenceValueAfterUpdate === 'online' && mainPresenceValueBeforeUpdate !== 'online') {\n eventDispatch('phone-island-call-ended', {})\n }\n }\n })\n\n useEventListener('phone-island-call-status', () => {\n const callInformation = store.getState().currentCall\n console.log('Call status debug informations: ', callInformation)\n })\n\n useEventListener('phone-island-user-status', () => {\n const userInformation = store.getState().currentUser\n console.log('User status debug informations: ', userInformation)\n })\n\n useEventListener('phone-island-all-users-status', () => {\n const allUsersInformation = store.getState().users\n console.log('Users status debug informations: ', allUsersInformation)\n })\n\n useEventListener('phone-island-status', () => {\n const phoneIslandInformation = store.getState().island\n console.log('Phone island status debug informations: ', phoneIslandInformation)\n })\n\n useEventListener('phone-island-webrtc-status', () => {\n const webrtcInformation = store.getState().webrtc\n console.log('Webrtc status debug informations: ', webrtcInformation)\n })\n\n useEventListener('phone-island-player-status', () => {\n const playerInformation = store.getState().player\n console.log('Player status debug informations: ', playerInformation)\n })\n\n useEventListener('phone-island-conference-status', () => {\n const conferenceInformation = store.getState().conference\n console.log('Webrtc status debug informations: ', conferenceInformation)\n })\n\n useEventListener('phone-island-screen-share-status', () => {\n const screenShareInformation = store.getState().screenShare\n console.log('Screen share status debug information: ', screenShareInformation)\n })\n\n useEventListener('phone-island-player-force-stop', () => {\n store.dispatch.player.reset()\n console.log('Audio player is interrupted')\n })\n\n useEventListener('phone-island-sideview-open', () => {\n store.dispatch.island.toggleSideViewVisible(true)\n eventDispatch('phone-island-sideview-opened', {})\n })\n\n useEventListener('phone-island-sideview-close', () => {\n store.dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-sideview-closed', {})\n })\n\n useEventListener('phone-island-size-change', (args: any) => {\n const { sideViewIsVisible } = store.getState().island\n\n // Get current dimensions from args\n const { sizeInformation } = args\n\n // // Calculate extra row dimension ( side view and back call )\n const updatedSizeInformation = {\n ...sizeInformation,\n right: sideViewIsVisible ? '42px' : '0px',\n top: isBackCallActive() ? '40px' : '0px',\n }\n eventDispatch('phone-island-size-changed', { sizes: updatedSizeInformation })\n })\n\n // Listen for the call end event and set the island size to 0\n useEventListener('phone-island-call-ended', () => {\n const { mainPresence } = store.getState().currentUser\n if (mainPresence === 'online') {\n const sizeInformation: any = {\n width: '0px',\n height: '0px',\n }\n eventDispatch('phone-island-size-change', { sizeInformation })\n eventDispatch('phone-island-sideview-close', {})\n store.dispatch.island.resetIslandStore()\n }\n })\n\n useEventListener('phone-island-conference-list-open', () => {\n store.dispatch.island.toggleConferenceList(true)\n eventDispatch('phone-island-conference-list-opened', {})\n })\n\n useEventListener('phone-island-alert-removed', (alertRemovedType) => {\n // Get current alerts status\n const { activeAlertsCount } = store.getState().alerts.status\n const { view, previousView } = store.getState().island\n const { isActive } = store.getState().conference\n const alertsData = store.getState().alerts.data\n const currentCall = store.getState().currentCall\n const { incoming, outgoing, accepted } = currentCall\n\n // Check if alert type was provided\n const alertType = alertRemovedType?.type\n\n // Check if user is in a call\n const isInCall =\n currentCall.incoming ||\n currentCall.outgoing ||\n currentCall.accepted ||\n currentCall.conversationId !== ''\n\n // Determine if the island should remain visible\n const shouldKeepVisible =\n incoming ||\n outgoing ||\n accepted ||\n activeAlertsCount > 0 ||\n view === 'player' ||\n view === 'recorder' ||\n view === 'physicalPhoneRecorder' ||\n (view === 'waitingConference' && isActive) ||\n (view === 'transfer' && isActive) ||\n (view === 'settings' && isActive) ||\n (view === 'settings' && (previousView === 'recorder' || previousView === 'player'))\n\n // Reset the island store only if:\n // 1. The island should not remain visible\n // 2. No more active alerts\n // 3. The specific alert is not active anymore\n // 4. User is not currently in a call\n if (\n !shouldKeepVisible &&\n activeAlertsCount === 0 &&\n (!alertType || (alertsData[alertType] && !alertsData[alertType].active)) &&\n !isInCall\n ) {\n const sizeInformation: any = {\n width: '0px',\n height: '0px',\n }\n eventDispatch('phone-island-size-change', { sizeInformation })\n eventDispatch('phone-island-sideview-close', {})\n store.dispatch.island.resetIslandStore()\n }\n })\n\n useEventListener('phone-island-conference-list-close', () => {\n store.dispatch.island.toggleConferenceList(false)\n eventDispatch('phone-island-conference-list-closed', {})\n })\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n uaType={uaType}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n uaType={uaType}\n >\n <Events sipHost={SIP_HOST}>\n <Island showAlways={showAlways} uaType={uaType} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","showAlways","uaType","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","SIP_HOST","SIP_PORT","_c","useState","reload","setReload","_d","reloadedWebRTC","setReloadedWebRTC","_e","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","island","toggleIsOpen","eventDispatch","setIslandView","detach","setJSONItem","deviceId","_f","firstRenderI18n","setFirstRenderI18n","_g","firstAudioOutputInit","setFirstAudioOutputInit","number","toggleAvoidToShow","setTimeout","remoteAudioElement","getState","player","remoteAudio","current","setSinkId","then","console","info","catch","err","error","changeOperatorStatus","viewType","initI18n","defaultAudioOutputDevice","getJSONItem","checkDarkTheme","theme","setTheme","selectedTheme","currentUser","updateCurrentDefaultDevice","deviceInformationObject","alertType","alerts","setAlert","toString","checkInternetConnection","internetIsActive","intervalId","setInterval","clearInterval","currentUsernameInformation","username","currentUserObject","mainPresenceValueBeforeUpdate","mainPresence","undefined","isEmpty","newMainPresenceValue","updateMainPresence","callInformation","currentCall","log","userInformation","allUsersInformation","users","phoneIslandInformation","webrtcInformation","webrtc","playerInformation","conferenceInformation","conference","screenShareInformation","screenShare","reset","toggleSideViewVisible","args","sideViewIsVisible","sizeInformation","updatedSizeInformation","__assign","right","top","isBackCallActive","sizes","width","height","resetIslandStore","toggleConferenceList","alertRemovedType","activeAlertsCount","status","view","previousView","isActive","alertsData","incoming","outgoing","accepted","isInCall","conversationId","active","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","authToken","Socket","Events","Island","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\nimport { initI18n } from './lib/i18n'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener, eventDispatch, setJSONItem, getJSONItem } from './utils'\nimport { detach } from './lib/webrtc/messages'\nimport { checkDarkTheme, setTheme } from './lib/darkTheme'\nimport { changeOperatorStatus } from './services/user'\nimport { isEmpty } from './utils/genericFunctions/isEmpty'\nimport { checkInternetConnection } from './utils/genericFunctions/checkConnection'\nimport { isBackCallActive } from './utils/genericFunctions/isBackCallVisible'\n\ninterface PhoneIslandProps {\n dataConfig: string\n showAlways?: boolean\n uaType: string\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({\n dataConfig,\n showAlways = false,\n uaType,\n}: PhoneIslandProps) => {\n const CONFIG: string[] = Base64.atob(dataConfig || '').split(':')\n const HOST_NAME: string = CONFIG[0]\n const USERNAME: string = CONFIG[1]\n const AUTH_TOKEN: string = CONFIG[2]\n const SIP_EXTEN: string = CONFIG[3]\n const SIP_SECRET: string = CONFIG[4]\n const SIP_HOST: string = CONFIG[5]\n const SIP_PORT: string = CONFIG[6]\n\n // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-expand', () => {\n store.dispatch.island.toggleIsOpen(true)\n eventDispatch('phone-island-expanded', {})\n })\n useEventListener('phone-island-compress', () => {\n store.dispatch.island.toggleIsOpen(false)\n eventDispatch('phone-island-compressed', {})\n })\n\n useEventListener('phone-island-call-keypad-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-keypad-closed', {})\n })\n useEventListener('phone-island-call-transfer-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-transfer-closed', {})\n })\n useEventListener('phone-island-recording-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-recording-closed', {})\n })\n useEventListener('phone-island-audio-player-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-audio-player-closed', {})\n })\n\n useEventListener('phone-island-detach', (data) => {\n detach()\n eventDispatch('phone-island-detached', {})\n })\n\n useEventListener('phone-island-audio-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-audio-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-audio-input-changed', {})\n })\n\n useEventListener('phone-island-video-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-video-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-video-input-changed', {})\n })\n\n const [firstRenderI18n, setFirstRenderI18n] = useState(true)\n const [firstAudioOutputInit, setFirstAudioOutputInit] = useState(true)\n\n useEventListener('phone-island-audio-output-change', (data: DeviceInputOutputTypes) => {\n if (!firstAudioOutputInit) {\n eventDispatch('phone-island-call-start', { number: '*43' })\n store.dispatch.island.setIslandView(null)\n store.dispatch.island.toggleAvoidToShow(true)\n }\n\n setTimeout(() => {\n const remoteAudioElement: any = store.getState().player.remoteAudio\n // set audio output\n remoteAudioElement?.current\n .setSinkId(data.deviceId)\n .then(function () {\n console.info('Default audio output device change with success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: data.deviceId })\n\n // dispatch event\n eventDispatch('phone-island-audio-output-changed', {})\n eventDispatch('phone-island-call-end', {})\n store.dispatch.island.toggleAvoidToShow(false)\n })\n .catch(function (err) {\n console.error('Default audio output device change error:', err)\n eventDispatch('phone-island-call-end', {})\n store.dispatch.island.toggleAvoidToShow(false)\n })\n }, 500)\n })\n\n // Listen for the operator status change\n useEventListener('phone-island-presence-change', (data: any) => {\n changeOperatorStatus(data)\n eventDispatch('phone-island-presence-changed', {})\n })\n\n useEventListener('phone-island-view-changed', (data) => {\n const viewType = data?.viewType\n store.dispatch.island.setIslandView(viewType)\n })\n\n //initialize i18n\n useEffect(() => {\n if (firstRenderI18n) {\n initI18n()\n setFirstRenderI18n(false)\n }\n }, [firstRenderI18n])\n\n const remoteAudioElement: any = store.getState().player.remoteAudio\n\n //get output device from localstorage\n useEffect(() => {\n if (firstAudioOutputInit && remoteAudioElement) {\n const defaultAudioOutputDevice: any = getJSONItem(\n `phone-island-audio-output-device`,\n )?.deviceId\n eventDispatch('phone-island-audio-output-change', {\n deviceId: defaultAudioOutputDevice,\n })\n setFirstAudioOutputInit(false)\n }\n }, [firstAudioOutputInit, remoteAudioElement])\n\n useEffect(() => {\n checkDarkTheme()\n }, [])\n\n useEventListener('phone-island-theme-change', (theme: any) => {\n setTheme(theme?.selectedTheme)\n })\n\n useEventListener('phone-island-default-device-change', (data) => {\n store.dispatch.currentUser.updateCurrentDefaultDevice(data?.deviceInformationObject)\n eventDispatch('phone-island-default-device-changed', {})\n })\n\n useEventListener('phone-island-alert', (alertType: any) => {\n store.dispatch.alerts.setAlert(alertType.toString())\n })\n\n // Manually check if internet connection is enabled or not\n useEventListener('phone-island-check-connection', () => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n })\n\n // Check internet connection every 5 seconds\n useEffect(() => {\n const intervalId = setInterval(() => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n }, 5000)\n\n return () => clearInterval(intervalId)\n }, [])\n\n useEventListener('phone-island-main-presence', (data: any) => {\n const currentUsernameInformation: any = store.getState().currentUser?.username\n const currentUserObject: any = store.getState().currentUser\n let mainPresenceValueBeforeUpdate = currentUserObject?.mainPresence\n if (\n currentUsernameInformation !== undefined &&\n currentUsernameInformation !== '' &&\n !isEmpty(data[currentUsernameInformation]) &&\n data[currentUsernameInformation]?.mainPresence !== undefined\n ) {\n let newMainPresenceValue = data[currentUsernameInformation]?.mainPresence\n store.dispatch.currentUser.updateMainPresence(data[currentUsernameInformation]?.mainPresence)\n let mainPresenceValueAfterUpdate = newMainPresenceValue\n if (mainPresenceValueAfterUpdate === 'online' && mainPresenceValueBeforeUpdate !== 'online') {\n eventDispatch('phone-island-call-ended', {})\n }\n }\n })\n\n useEventListener('phone-island-call-status', () => {\n const callInformation = store.getState().currentCall\n console.log('Call status debug informations: ', callInformation)\n })\n\n useEventListener('phone-island-user-status', () => {\n const userInformation = store.getState().currentUser\n console.log('User status debug informations: ', userInformation)\n })\n\n useEventListener('phone-island-all-users-status', () => {\n const allUsersInformation = store.getState().users\n console.log('Users status debug informations: ', allUsersInformation)\n })\n\n useEventListener('phone-island-status', () => {\n const phoneIslandInformation = store.getState().island\n console.log('Phone island status debug informations: ', phoneIslandInformation)\n })\n\n useEventListener('phone-island-webrtc-status', () => {\n const webrtcInformation = store.getState().webrtc\n console.log('Webrtc status debug informations: ', webrtcInformation)\n })\n\n useEventListener('phone-island-player-status', () => {\n const playerInformation = store.getState().player\n console.log('Player status debug informations: ', playerInformation)\n })\n\n useEventListener('phone-island-conference-status', () => {\n const conferenceInformation = store.getState().conference\n console.log('Webrtc status debug informations: ', conferenceInformation)\n })\n\n useEventListener('phone-island-streaming-status', () => {\n const streamingInformation = store.getState().streaming\n console.log('Streaming status debug informations: ', streamingInformation)\n })\n\n useEventListener('phone-island-player-force-stop', () => {\n store.dispatch.player.reset()\n console.log('Audio player is interrupted')\n })\n\n useEventListener('phone-island-sideview-open', () => {\n store.dispatch.island.toggleSideViewVisible(true)\n eventDispatch('phone-island-sideview-opened', {})\n })\n\n useEventListener('phone-island-sideview-close', () => {\n store.dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-sideview-closed', {})\n })\n\n useEventListener('phone-island-size-change', (args: any) => {\n const { sideViewIsVisible } = store.getState().island\n\n // Get current dimensions from args\n const { sizeInformation } = args\n\n // // Calculate extra row dimension ( side view and back call )\n const updatedSizeInformation = {\n ...sizeInformation,\n right: sideViewIsVisible ? '42px' : '0px',\n top: isBackCallActive() ? '40px' : '0px',\n }\n eventDispatch('phone-island-size-changed', { sizes: updatedSizeInformation })\n })\n\n // Listen for the call end event and set the island size to 0\n useEventListener('phone-island-call-ended', () => {\n const { mainPresence } = store.getState().currentUser\n if (mainPresence === 'online') {\n const sizeInformation: any = {\n width: '0px',\n height: '0px',\n }\n eventDispatch('phone-island-size-change', { sizeInformation })\n eventDispatch('phone-island-sideview-close', {})\n store.dispatch.island.resetIslandStore()\n }\n })\n\n useEventListener('phone-island-conference-list-open', () => {\n store.dispatch.island.toggleConferenceList(true)\n eventDispatch('phone-island-conference-list-opened', {})\n })\n\n useEventListener('phone-island-alert-removed', (alertRemovedType) => {\n // Get current alerts status\n const { activeAlertsCount } = store.getState().alerts.status\n const { view, previousView } = store.getState().island\n const { isActive } = store.getState().conference\n const alertsData = store.getState().alerts.data\n const currentCall = store.getState().currentCall\n const { incoming, outgoing, accepted } = currentCall\n\n // Check if alert type was provided\n const alertType = alertRemovedType?.type\n\n // Check if user is in a call\n const isInCall =\n currentCall.incoming ||\n currentCall.outgoing ||\n currentCall.accepted ||\n currentCall.conversationId !== ''\n\n // Determine if the island should remain visible\n const shouldKeepVisible =\n incoming ||\n outgoing ||\n accepted ||\n activeAlertsCount > 0 ||\n view === 'player' ||\n view === 'recorder' ||\n view === 'physicalPhoneRecorder' ||\n (view === 'waitingConference' && isActive) ||\n (view === 'transfer' && isActive) ||\n (view === 'settings' && isActive) ||\n (view === 'settings' && (previousView === 'recorder' || previousView === 'player'))\n\n // Reset the island store only if:\n // 1. The island should not remain visible\n // 2. No more active alerts\n // 3. The specific alert is not active anymore\n // 4. User is not currently in a call\n if (\n !shouldKeepVisible &&\n activeAlertsCount === 0 &&\n (!alertType || (alertsData[alertType] && !alertsData[alertType].active)) &&\n !isInCall\n ) {\n const sizeInformation: any = {\n width: '0px',\n height: '0px',\n }\n eventDispatch('phone-island-size-change', { sizeInformation })\n eventDispatch('phone-island-sideview-close', {})\n store.dispatch.island.resetIslandStore()\n }\n })\n\n useEventListener('phone-island-conference-list-close', () => {\n store.dispatch.island.toggleConferenceList(false)\n eventDispatch('phone-island-conference-list-closed', {})\n })\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n uaType={uaType}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n uaType={uaType}\n >\n <Events sipHost={SIP_HOST}>\n <Island showAlways={showAlways} uaType={uaType} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","showAlways","uaType","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","SIP_HOST","SIP_PORT","_c","useState","reload","setReload","_d","reloadedWebRTC","setReloadedWebRTC","_e","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","island","toggleIsOpen","eventDispatch","setIslandView","detach","setJSONItem","deviceId","_f","firstRenderI18n","setFirstRenderI18n","_g","firstAudioOutputInit","setFirstAudioOutputInit","number","toggleAvoidToShow","setTimeout","remoteAudioElement","getState","player","remoteAudio","current","setSinkId","then","console","info","catch","err","error","changeOperatorStatus","viewType","initI18n","defaultAudioOutputDevice","getJSONItem","checkDarkTheme","theme","setTheme","selectedTheme","currentUser","updateCurrentDefaultDevice","deviceInformationObject","alertType","alerts","setAlert","toString","checkInternetConnection","internetIsActive","intervalId","setInterval","clearInterval","currentUsernameInformation","username","currentUserObject","mainPresenceValueBeforeUpdate","mainPresence","undefined","isEmpty","newMainPresenceValue","updateMainPresence","callInformation","currentCall","log","userInformation","allUsersInformation","users","phoneIslandInformation","webrtcInformation","webrtc","playerInformation","conferenceInformation","conference","streamingInformation","streaming","reset","toggleSideViewVisible","args","sideViewIsVisible","sizeInformation","updatedSizeInformation","__assign","right","top","isBackCallActive","sizes","width","height","resetIslandStore","toggleConferenceList","alertRemovedType","activeAlertsCount","status","view","previousView","isActive","alertsData","incoming","outgoing","accepted","isInCall","conversationId","active","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","authToken","Socket","Events","Island","displayName"],"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/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../Button.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js"),n=require("../CustomThemedTooltip.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js"),s=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(e);exports.default=function(e){var d=e.uaType,c=o.useSelector((function(e){return e.alerts})).data,p=o.useSelector((function(e){return e.currentUser})).default_device,m=s.useDispatch(),f=Object.values(c).filter((function(e){return e.active})),v=f.length>0?f[f.length-1]:null;return v&&u.default.createElement("div",{className:"pi-relative pi-rounded-md pi-w-full pi-flex"},u.default.createElement("div",{className:"pi-flex pi-items-center"},u.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-bg-green-200 dark:pi-bg-green-900":"pi-bg-rose-200 dark:pi-bg-rose-900")},u.default.createElement(t.FontAwesomeIcon,{icon:"call_transfered"===(null==v?void 0:v.type)?r.faCircleCheck:r.faCircleXmark,className:"pi-h-5 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-text-green-700 dark:pi-text-green-200":"pi-text-rose-700 dark:pi-text-rose-200"),"aria-hidden":"true"})),u.default.createElement("div",{className:"ml-3"},u.default.createElement("h3",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property"},i.t("Errors.".concat("nethlink"===(null==p?void 0:p.type)&&"webrtc_down"===(null==v?void 0:v.type)?null==v?void 0:v.nethlink_message:null==v?void 0:v.type))),u.default.createElement("div",{className:"pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5"},i.t("Errors.".concat(null==v?void 0:v.message))))),u.default.createElement(l.Button,{variant:"transparent",onClick:function(){return"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?void window.location.reload():(m.alerts.removeAllAlerts(),void a.eventDispatch("phone-island-all-alerts-removed",{}))},className:"pi-absolute pi--right-6 pi-transform pi--translate-y-1/2","data-tooltip-id":"tooltip-close-alert","data-tooltip-content":"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?"".concat(i.t("Tooltip.Reload")):"".concat(i.t("Tooltip.Close alert"))},u.default.createElement(t.FontAwesomeIcon,{icon:"nethlink"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?r.faArrowRotateRight:r.faTimes,className:"pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4"})),u.default.createElement(n.CustomThemedTooltip,{id:"tooltip-close-alert",place:"left"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../Button.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var n=require("../CustomThemedTooltip.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js"),s=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(e);exports.default=function(e){var d=e.uaType,c=o.useSelector((function(e){return e.alerts})).data,p=o.useSelector((function(e){return e.currentUser})).default_device,m=s.useDispatch(),f=Object.values(c).filter((function(e){return e.active})),v=f.length>0?f[f.length-1]:null;return v&&u.default.createElement("div",{className:"pi-relative pi-rounded-md pi-w-full pi-flex"},u.default.createElement("div",{className:"pi-flex pi-items-center"},u.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-bg-green-200 dark:pi-bg-green-900":"pi-bg-rose-200 dark:pi-bg-rose-900")},u.default.createElement(t.FontAwesomeIcon,{icon:"call_transfered"===(null==v?void 0:v.type)?r.faCircleCheck:r.faCircleXmark,className:"pi-h-5 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-text-green-700 dark:pi-text-green-200":"pi-text-rose-700 dark:pi-text-rose-200"),"aria-hidden":"true"})),u.default.createElement("div",{className:"ml-3"},u.default.createElement("h3",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property"},i.t("Errors.".concat("nethlink"===(null==p?void 0:p.type)&&"webrtc_down"===(null==v?void 0:v.type)?null==v?void 0:v.nethlink_message:null==v?void 0:v.type))),u.default.createElement("div",{className:"pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5"},i.t("Errors.".concat(null==v?void 0:v.message))))),u.default.createElement(l.Button,{variant:"transparent",onClick:function(){return"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?void window.location.reload():(m.alerts.removeAllAlerts(),void a.eventDispatch("phone-island-all-alerts-removed",{}))},className:"pi-absolute pi--right-6 pi-transform pi--translate-y-1/2","data-tooltip-id":"tooltip-close-alert","data-tooltip-content":"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?"".concat(i.t("Tooltip.Reload")):"".concat(i.t("Tooltip.Close alert"))},u.default.createElement(t.FontAwesomeIcon,{icon:"nethlink"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?r.faArrowRotateRight:r.faTimes,className:"pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4"})),u.default.createElement(n.CustomThemedTooltip,{id:"tooltip-close-alert",place:"left"}))};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AlertView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faTimes,\n faCircleXmark,\n faCircleCheck,\n faArrowRotateRight,\n} from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\n/**\n * Shows user alerts\n */\nconst AlertView: FC<AlertViewProp> = ({ uaType }) => {\n const { data } = useSelector((state: RootState) => state.alerts)\n const { default_device } = useSelector((state: RootState) => state.currentUser)\n const dispatch = useDispatch<Dispatch>()\n\n // Extract active alerts\n const activeAlerts = Object.values(data).filter((alert: any) => alert.active)\n\n // Display the latest active alert\n const latestAlert = activeAlerts.length > 0 ? activeAlerts[activeAlerts.length - 1] : null\n\n const handleClearAllAlerts = () => {\n dispatch.alerts.removeAllAlerts()\n eventDispatch('phone-island-all-alerts-removed', {})\n }\n\n const reloadPhoneIsland = () => {\n window.location.reload()\n }\n\n return (\n latestAlert && (\n <div className='pi-relative pi-rounded-md pi-w-full pi-flex'>\n <div className='pi-flex pi-items-center'>\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-bg-green-200 dark:pi-bg-green-900'\n : 'pi-bg-rose-200 dark:pi-bg-rose-900'\n }`}\n >\n {/* Icon */}\n <FontAwesomeIcon\n icon={latestAlert?.type === 'call_transfered' ? faCircleCheck : faCircleXmark}\n className={`pi-h-5 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-text-green-700 dark:pi-text-green-200'\n : 'pi-text-rose-700 dark:pi-text-rose-200'\n }`}\n aria-hidden='true'\n />\n </div>\n\n <div className='ml-3'>\n <h3 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property'>\n {t(\n `Errors.${\n default_device?.type === 'nethlink' && latestAlert?.type === 'webrtc_down'\n ? latestAlert?.nethlink_message\n : latestAlert?.type\n }`,\n )}\n </h3>\n <div className='pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5'>\n {t(`Errors.${latestAlert?.message}`)}\n </div>\n </div>\n </div>\n\n {/* Close button */}\n <Button\n variant='transparent'\n onClick={() =>\n default_device?.type === 'nethlink' &&\n uaType === 'mobile' &&\n latestAlert?.type !== 'call_transfered'\n ? reloadPhoneIsland()\n : handleClearAllAlerts()\n }\n className='pi-absolute pi--right-6 pi-transform pi--translate-y-1/2'\n data-tooltip-id='tooltip-close-alert'\n data-tooltip-content={\n default_device?.type === 'nethlink' &&\n uaType === 'mobile' &&\n latestAlert?.type !== 'call_transfered'\n ? `${t('Tooltip.Reload')}`\n : `${t('Tooltip.Close alert')}`\n }\n >\n <FontAwesomeIcon\n icon={\n default_device?.type === 'nethlink' && latestAlert?.type !== 'call_transfered'\n ? faArrowRotateRight\n : faTimes\n }\n className='pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4'\n />\n </Button>\n <CustomThemedTooltip id='tooltip-close-alert' place='left' />\n </div>\n )\n )\n}\n\ninterface AlertViewProp {\n uaType?: string\n}\n\nexport default AlertView\n"],"names":["_a","uaType","data","useSelector","state","alerts","default_device","currentUser","dispatch","useDispatch","activeAlerts","Object","values","filter","alert","active","latestAlert","length","React","createElement","className","concat","type","FontAwesomeIcon","icon","faCircleCheck","faCircleXmark","t","nethlink_message","message","Button","variant","onClick","window","location","reload","removeAllAlerts","eventDispatch","faArrowRotateRight","faTimes","CustomThemedTooltip","id","place"],"mappings":"ktBAqBqC,SAACA,GAAE,IAAAC,EAAMD,EAAAC,OACpCC,EAASC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,eACjDC,EAAmBH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,8BAC7DC,EAAWC,EAAAA,cAGXC,EAAeC,OAAOC,OAAOV,GAAMW,QAAO,SAACC,GAAe,OAAAA,EAAMC,MAAM,IAGtEC,EAAcN,EAAaO,OAAS,EAAIP,EAAaA,EAAaO,OAAS,GAAK,KAWtF,OACED,GACEE,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+CACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2BACbF,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,sGACTC,OAAsB,qBAAtBL,aAAW,EAAXA,EAAaM,MACT,uCACA,uCAINJ,EAAAA,QAAAC,cAACI,EAAAA,gBAAe,CACdC,KAA4B,qBAAtBR,aAAW,EAAXA,EAAaM,MAA6BG,EAAaA,cAAGC,EAAaA,cAC7EN,UAAW,kBACTC,OAAsB,qBAAtBL,aAAA,EAAAA,EAAaM,MACT,2CACA,0CAEM,cAAA,UAIhBJ,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,QACbF,EAAAA,QAAIC,cAAA,KAAA,CAAAC,UAAU,+GACXO,IACC,UAAAN,OAC2B,cAAzBf,aAAA,EAAAA,EAAgBgB,OAA6C,iBAAtBN,aAAW,EAAXA,EAAaM,MAChDN,aAAA,EAAAA,EAAaY,iBACbZ,aAAW,EAAXA,EAAaM,QAIvBJ,UAAAC,cAAA,MAAA,CAAKC,UAAU,uGACZO,EAAAA,EAAE,iBAAUX,aAAW,EAAXA,EAAaa,aAMhCX,EAAA,QAAAC,cAACW,EAAMA,OACL,CAAAC,QAAQ,cACRC,QAAS,WACP,MAAyB,cAAzB1B,eAAAA,EAAgBgB,OACL,WAAXrB,GACsB,qBAAtBe,aAAW,EAAXA,EAAaM,WAhDrBW,OAAOC,SAASC,UALhB3B,EAASH,OAAO+B,uBAChBC,gBAAc,kCAAmC,CAAA,GAkDzC,EAMFjB,UAAU,2DAA0D,kBACpD,sBAEd,uBAAyB,cAAzBd,aAAA,EAAAA,EAAgBgB,OACL,WAAXrB,GACsB,qBAAtBe,aAAW,EAAXA,EAAaM,MACT,GAAGD,OAAAM,IAAE,mBACL,GAAGN,OAAAM,IAAE,yBAGXT,EAAAA,QAACC,cAAAI,kBACC,CAAAC,KAC2B,cAAzBlB,aAAA,EAAAA,EAAgBgB,OAA6C,qBAAtBN,eAAAA,EAAaM,MAChDgB,EAAkBA,mBAClBC,UAENnB,UAAU,yDAGdF,UAAAC,cAACqB,EAAmBA,oBAAA,CAACC,GAAG,sBAAsBC,MAAM,SAI5D"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AlertView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faTimes,\n faCircleXmark,\n faCircleCheck,\n faArrowRotateRight,\n} from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\n/**\n * Shows user alerts\n */\nconst AlertView: FC<AlertViewProp> = ({ uaType }) => {\n const { data } = useSelector((state: RootState) => state.alerts)\n const { default_device } = useSelector((state: RootState) => state.currentUser)\n const dispatch = useDispatch<Dispatch>()\n\n // Extract active alerts\n const activeAlerts = Object.values(data).filter((alert: any) => alert.active)\n\n // Display the latest active alert\n const latestAlert = activeAlerts.length > 0 ? activeAlerts[activeAlerts.length - 1] : null\n\n const handleClearAllAlerts = () => {\n dispatch.alerts.removeAllAlerts()\n eventDispatch('phone-island-all-alerts-removed', {})\n }\n\n const reloadPhoneIsland = () => {\n window.location.reload()\n }\n\n return (\n latestAlert && (\n <div className='pi-relative pi-rounded-md pi-w-full pi-flex'>\n <div className='pi-flex pi-items-center'>\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-bg-green-200 dark:pi-bg-green-900'\n : 'pi-bg-rose-200 dark:pi-bg-rose-900'\n }`}\n >\n {/* Icon */}\n <FontAwesomeIcon\n icon={latestAlert?.type === 'call_transfered' ? faCircleCheck : faCircleXmark}\n className={`pi-h-5 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-text-green-700 dark:pi-text-green-200'\n : 'pi-text-rose-700 dark:pi-text-rose-200'\n }`}\n aria-hidden='true'\n />\n </div>\n\n <div className='ml-3'>\n <h3 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property'>\n {t(\n `Errors.${\n default_device?.type === 'nethlink' && latestAlert?.type === 'webrtc_down'\n ? latestAlert?.nethlink_message\n : latestAlert?.type\n }`,\n )}\n </h3>\n <div className='pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5'>\n {t(`Errors.${latestAlert?.message}`)}\n </div>\n </div>\n </div>\n\n {/* Close button */}\n <Button\n variant='transparent'\n onClick={() =>\n default_device?.type === 'nethlink' &&\n uaType === 'mobile' &&\n latestAlert?.type !== 'call_transfered'\n ? reloadPhoneIsland()\n : handleClearAllAlerts()\n }\n className='pi-absolute pi--right-6 pi-transform pi--translate-y-1/2'\n data-tooltip-id='tooltip-close-alert'\n data-tooltip-content={\n default_device?.type === 'nethlink' &&\n uaType === 'mobile' &&\n latestAlert?.type !== 'call_transfered'\n ? `${t('Tooltip.Reload')}`\n : `${t('Tooltip.Close alert')}`\n }\n >\n <FontAwesomeIcon\n icon={\n default_device?.type === 'nethlink' && latestAlert?.type !== 'call_transfered'\n ? faArrowRotateRight\n : faTimes\n }\n className='pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4'\n />\n </Button>\n <CustomThemedTooltip id='tooltip-close-alert' place='left' />\n </div>\n )\n )\n}\n\ninterface AlertViewProp {\n uaType?: string\n}\n\nexport default AlertView\n"],"names":["_a","uaType","data","useSelector","state","alerts","default_device","currentUser","dispatch","useDispatch","activeAlerts","Object","values","filter","alert","active","latestAlert","length","React","createElement","className","concat","type","FontAwesomeIcon","icon","faCircleCheck","faCircleXmark","t","nethlink_message","message","Button","variant","onClick","window","location","reload","removeAllAlerts","eventDispatch","faArrowRotateRight","faTimes","CustomThemedTooltip","id","place"],"mappings":"svBAqBqC,SAACA,GAAE,IAAAC,EAAMD,EAAAC,OACpCC,EAASC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,eACjDC,EAAmBH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,8BAC7DC,EAAWC,EAAAA,cAGXC,EAAeC,OAAOC,OAAOV,GAAMW,QAAO,SAACC,GAAe,OAAAA,EAAMC,MAAM,IAGtEC,EAAcN,EAAaO,OAAS,EAAIP,EAAaA,EAAaO,OAAS,GAAK,KAWtF,OACED,GACEE,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+CACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2BACbF,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,sGACTC,OAAsB,qBAAtBL,aAAW,EAAXA,EAAaM,MACT,uCACA,uCAINJ,EAAAA,QAAAC,cAACI,EAAAA,gBAAe,CACdC,KAA4B,qBAAtBR,aAAW,EAAXA,EAAaM,MAA6BG,EAAaA,cAAGC,EAAaA,cAC7EN,UAAW,kBACTC,OAAsB,qBAAtBL,aAAA,EAAAA,EAAaM,MACT,2CACA,0CAEM,cAAA,UAIhBJ,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,QACbF,EAAAA,QAAIC,cAAA,KAAA,CAAAC,UAAU,+GACXO,IACC,UAAAN,OAC2B,cAAzBf,aAAA,EAAAA,EAAgBgB,OAA6C,iBAAtBN,aAAW,EAAXA,EAAaM,MAChDN,aAAA,EAAAA,EAAaY,iBACbZ,aAAW,EAAXA,EAAaM,QAIvBJ,UAAAC,cAAA,MAAA,CAAKC,UAAU,uGACZO,EAAAA,EAAE,iBAAUX,aAAW,EAAXA,EAAaa,aAMhCX,EAAA,QAAAC,cAACW,EAAMA,OACL,CAAAC,QAAQ,cACRC,QAAS,WACP,MAAyB,cAAzB1B,eAAAA,EAAgBgB,OACL,WAAXrB,GACsB,qBAAtBe,aAAW,EAAXA,EAAaM,WAhDrBW,OAAOC,SAASC,UALhB3B,EAASH,OAAO+B,uBAChBC,gBAAc,kCAAmC,CAAA,GAkDzC,EAMFjB,UAAU,2DAA0D,kBACpD,sBAEd,uBAAyB,cAAzBd,aAAA,EAAAA,EAAgBgB,OACL,WAAXrB,GACsB,qBAAtBe,aAAW,EAAXA,EAAaM,MACT,GAAGD,OAAAM,IAAE,mBACL,GAAGN,OAAAM,IAAE,yBAGXT,EAAAA,QAACC,cAAAI,kBACC,CAAAC,KAC2B,cAAzBlB,aAAA,EAAAA,EAAgBgB,OAA6C,qBAAtBN,eAAAA,EAAaM,MAChDgB,EAAkBA,mBAClBC,UAENnB,UAAU,yDAGdF,UAAAC,cAACqB,EAAmBA,oBAAA,CAACC,GAAG,sBAAsBC,MAAM,SAI5D"}
@@ -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("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../utils/customHooks/useEventListener.js"),r=require("../../utils/genericFunctions/eventDispatch.js"),s=require("../Button.js"),a=require("../CustomThemedTooltip.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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/@babel/runtime/helpers/slicedToArray.js");var l=require("../../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=p(e),c=function(){var e=l.useSelector((function(e){return e.player})).audioPlayerPlaying,p=n.useTranslation().t,c=u.useDispatch();function m(){c.player.startAudioPlayer((function(){})),r.eventDispatch("phone-island-audio-player-played",{})}function f(){c.player.pauseAudioPlayer(),r.eventDispatch("phone-island-audio-player-paused",{})}return o.useEventListener("phone-island-audio-player-play",(function(e){m()})),o.useEventListener("phone-island-audio-player-pause",(function(e){f()})),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto"},d.default.createElement(s.Button,{variant:"transparent",disabled:!0,className:"pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faDownLeftAndUpRightToCenter,className:"pi-w-6 pi-h-6"})),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-grow"},d.default.createElement(s.Button,{onClick:e?f:m,variant:"default",className:"pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center","data-tooltip-id":"tooltip-confirm-play-pause-player","data-tooltip-content":e?p("Tooltip.Pause")||"":p("Tooltip.Play")||""},e?d.default.createElement(t.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-6 pi-w-6"}):d.default.createElement(t.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-6 pi-w-6"}))),d.default.createElement("div",{onClick:function(){return c.island.setIslandView("settings")},"data-tooltip-id":"tooltip-settings-view-recorder","data-tooltip-content":p("Tooltip.Go to settings")||"",className:"pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faGear,className:"pi-h-6 pi-w-6"})),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-settings-view-recorder",place:"top"}),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-pause-audio-player",place:"bottom"}),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-confirm-play-pause-player",place:"top"}))};exports.PlayerFooterActions=c,exports.default=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../utils/customHooks/useEventListener.js"),r=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var s=require("../Button.js"),a=require("../CustomThemedTooltip.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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/@babel/runtime/helpers/slicedToArray.js");var l=require("../../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=p(e),c=function(){var e=l.useSelector((function(e){return e.player})).audioPlayerPlaying,p=n.useTranslation().t,c=u.useDispatch();function m(){c.player.startAudioPlayer((function(){})),r.eventDispatch("phone-island-audio-player-played",{})}function f(){c.player.pauseAudioPlayer(),r.eventDispatch("phone-island-audio-player-paused",{})}return o.useEventListener("phone-island-audio-player-play",(function(e){m()})),o.useEventListener("phone-island-audio-player-pause",(function(e){f()})),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto"},d.default.createElement(s.Button,{variant:"transparent",disabled:!0,className:"pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faDownLeftAndUpRightToCenter,className:"pi-w-6 pi-h-6"})),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-grow"},d.default.createElement(s.Button,{onClick:e?f:m,variant:"default",className:"pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center","data-tooltip-id":"tooltip-confirm-play-pause-player","data-tooltip-content":e?p("Tooltip.Pause")||"":p("Tooltip.Play")||""},e?d.default.createElement(t.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-6 pi-w-6"}):d.default.createElement(t.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-6 pi-w-6"}))),d.default.createElement("div",{onClick:function(){return c.island.setIslandView("settings")},"data-tooltip-id":"tooltip-settings-view-recorder","data-tooltip-content":p("Tooltip.Go to settings")||"",className:"pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faGear,className:"pi-h-6 pi-w-6"})),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-settings-view-recorder",place:"top"}),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-pause-audio-player",place:"bottom"}),d.default.createElement(a.CustomThemedTooltip,{id:"tooltip-confirm-play-pause-player",place:"top"}))};exports.PlayerFooterActions=c,exports.default=c;
2
2
  //# sourceMappingURL=PlayerFooterActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerFooterActions.js","sources":["../../../src/components/AudioPlayerView/PlayerFooterActions.tsx"],"sourcesContent":["import React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlay,\n faPause,\n faDownLeftAndUpRightToCenter,\n faGear,\n} from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\nimport { Button } from '../Button'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useTranslation } from 'react-i18next'\n\nexport const PlayerFooterActions: FC<PlayerFooterActionsTypes> = () => {\n const { audioPlayerPlaying } = useSelector((state: RootState) => state.player)\n const { t } = useTranslation()\n\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 return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button \n variant='transparent' \n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-play-pause-player'\n data-tooltip-content={audioPlayerPlaying ? t('Tooltip.Pause') || '' : t('Tooltip.Play') || ''}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} className='pi-h-6 pi-w-6' />\n ) : (\n <FontAwesomeIcon icon={faPlay} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n <CustomThemedTooltip id='tooltip-pause-audio-player' place='bottom' />\n <CustomThemedTooltip id='tooltip-confirm-play-pause-player' place='top' />\n </div>\n )\n}\n\nexport default PlayerFooterActions\nexport interface PlayerFooterActionsTypes {}\n"],"names":["PlayerFooterActions","audioPlayerPlaying","useSelector","state","player","t","useTranslation","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faPause","faPlay","island","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"0rCAgBaA,EAAoD,WACvD,IAAAC,EAAuBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,6BAC/DC,EAAMC,qBAERC,EAAWC,EAAAA,cAEjB,SAASC,IACPF,EAASH,OAAOM,kBAAiB,WAAQ,IACzCC,gBAAc,mCAAoC,CAAA,EACnD,CAKD,SAASC,IACPL,EAASH,OAAOS,mBAChBF,gBAAc,mCAAoC,CAAA,EACnD,CAKD,OAZAG,mBAAiB,kCAAkC,SAACC,GAClDN,GACF,IAMAK,mBAAiB,mCAAmC,SAACC,GACnDH,GACF,IAGEI,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,4FAEXF,UAACC,cAAAE,EAAMA,OACL,CAAAC,QAAQ,cACRC,UAAQ,EACRH,UAAU,wEAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,6BAA8BN,UAAU,mBAGjEF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,0DACbF,UAAAC,cAACE,EAAAA,OACC,CAAAM,QAASxB,EAAqBW,EAAeH,EAC7CW,QAAQ,UACRF,UAAU,4EACM,kBAAA,oCACM,uBAAAjB,EAAqBI,EAAE,kBAAoB,GAAKA,EAAE,iBAAmB,IAE1FJ,EACCe,EAAAA,QAACC,cAAAK,EAAeA,iBAACC,KAAMG,UAASR,UAAU,kBAE1CF,UAAAC,cAACK,EAAeA,gBAAC,CAAAC,KAAMI,EAAMA,OAAET,UAAU,oBAK/CF,UACEC,cAAA,MAAA,CAAAQ,QAAS,WAAM,OAAAlB,EAASqB,OAAOC,cAAc,aAC7B,kBAAA,iCACM,uBAAAxB,EAAE,2BAA6B,GACrDa,UAAU,iIAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMO,EAAAA,OAAQZ,UAAW,mBAI5CF,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,iCAAiCC,MAAM,QAC/DjB,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,6BAA6BC,MAAM,WAC3DjB,UAAAC,cAACc,EAAAA,oBAAmB,CAACC,GAAG,oCAAoCC,MAAM,QAGxE"}
1
+ {"version":3,"file":"PlayerFooterActions.js","sources":["../../../src/components/AudioPlayerView/PlayerFooterActions.tsx"],"sourcesContent":["import React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlay,\n faPause,\n faDownLeftAndUpRightToCenter,\n faGear,\n} from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\nimport { Button } from '../Button'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useTranslation } from 'react-i18next'\n\nexport const PlayerFooterActions: FC<PlayerFooterActionsTypes> = () => {\n const { audioPlayerPlaying } = useSelector((state: RootState) => state.player)\n const { t } = useTranslation()\n\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 return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button \n variant='transparent' \n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-play-pause-player'\n data-tooltip-content={audioPlayerPlaying ? t('Tooltip.Pause') || '' : t('Tooltip.Play') || ''}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} className='pi-h-6 pi-w-6' />\n ) : (\n <FontAwesomeIcon icon={faPlay} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n <CustomThemedTooltip id='tooltip-pause-audio-player' place='bottom' />\n <CustomThemedTooltip id='tooltip-confirm-play-pause-player' place='top' />\n </div>\n )\n}\n\nexport default PlayerFooterActions\nexport interface PlayerFooterActionsTypes {}\n"],"names":["PlayerFooterActions","audioPlayerPlaying","useSelector","state","player","t","useTranslation","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faPause","faPlay","island","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"8tCAgBaA,EAAoD,WACvD,IAAAC,EAAuBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,6BAC/DC,EAAMC,qBAERC,EAAWC,EAAAA,cAEjB,SAASC,IACPF,EAASH,OAAOM,kBAAiB,WAAQ,IACzCC,gBAAc,mCAAoC,CAAA,EACnD,CAKD,SAASC,IACPL,EAASH,OAAOS,mBAChBF,gBAAc,mCAAoC,CAAA,EACnD,CAKD,OAZAG,mBAAiB,kCAAkC,SAACC,GAClDN,GACF,IAMAK,mBAAiB,mCAAmC,SAACC,GACnDH,GACF,IAGEI,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,4FAEXF,UAACC,cAAAE,EAAMA,OACL,CAAAC,QAAQ,cACRC,UAAQ,EACRH,UAAU,wEAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,6BAA8BN,UAAU,mBAGjEF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,0DACbF,UAAAC,cAACE,EAAAA,OACC,CAAAM,QAASxB,EAAqBW,EAAeH,EAC7CW,QAAQ,UACRF,UAAU,4EACM,kBAAA,oCACM,uBAAAjB,EAAqBI,EAAE,kBAAoB,GAAKA,EAAE,iBAAmB,IAE1FJ,EACCe,EAAAA,QAACC,cAAAK,EAAeA,iBAACC,KAAMG,UAASR,UAAU,kBAE1CF,UAAAC,cAACK,EAAeA,gBAAC,CAAAC,KAAMI,EAAMA,OAAET,UAAU,oBAK/CF,UACEC,cAAA,MAAA,CAAAQ,QAAS,WAAM,OAAAlB,EAASqB,OAAOC,cAAc,aAC7B,kBAAA,iCACM,uBAAAxB,EAAE,2BAA6B,GACrDa,UAAU,iIAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMO,EAAAA,OAAQZ,UAAW,mBAI5CF,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,iCAAiCC,MAAM,QAC/DjB,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,6BAA6BC,MAAM,WAC3DjB,UAAAC,cAACc,EAAAA,oBAAmB,CAACC,GAAG,oCAAoCC,MAAM,QAGxE"}
@@ -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("../../utils/genericFunctions/player.js"),r=require("../../styles/CustomRange.styles.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),s=require("../../node_modules/react-redux/es/hooks/useSelector.js"),l=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(e),d=function(u){var d=u.isPlayer,p=s.useSelector((function(e){return e.player})),f=p.audioPlayer,m=p.audioPlayerPlaying,y=p.audioPlayerTrackDuration,g=e.useRef(),x=e.useRef(),v=e.useState("00:00"),h=v[0],w=v[1],E=e.useState(),P=E[0],k=E[1],j=l.useDispatch(),N=e.useState(y&&Math.round(y)||0),q=N[0],A=N[1],F=s.useSelector((function(e){return e.recorder}));F.recorded,F.playing;var C=e.useState(!1),D=C[0],S=C[1],b=e.useCallback((function(){var e,r=null===(e=null==f?void 0:f.current)||void 0===e?void 0:e.currentTime;r&&w(t.formatTime(Math.round(r))),g.current.value=r,q&&r&&g.current.style.setProperty("--range-progress","".concat(r/q*100,"%")),x.current=requestAnimationFrame(b)}),[f,q,g]);function T(e){e.stopPropagation()}function _(){j.player.pauseAudioPlayer(),j.recorder.setPlaying(!1),j.recorder.setPaused(!0),o.eventDispatch("phone-island-recording-paused",{})}function M(){j.player.startAudioPlayer((function(){j.recorder.setPlaying(!1),j.recorder.setPaused(!0)})),j.recorder.setPlaying(!0),o.eventDispatch("phone-island-recording-played",{})}function R(){j.recorder.resetRecorded(),o.eventDispatch("phone-island-recording-deleted",{})}return e.useEffect((function(){m?x.current=requestAnimationFrame(b):cancelAnimationFrame(x.current)}),[m]),e.useEffect((function(){y&&(A(Math.round(y)),k(t.formatTime(y)))}),[y]),e.useEffect((function(){return function(){cancelAnimationFrame(x.current)}}),[]),n.useEventListener("phone-island-recording-pause",(function(e){_()})),n.useEventListener("phone-island-recording-play",(function(e){M()})),n.useEventListener("phone-island-recording-delete",(function(e){R()})),c.default.createElement("div",{className:"pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2"},c.default.createElement("div",{className:"pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2"},d?c.default.createElement("div",{className:"pi-cursor-pointer pi-flex-none",onClick:function(){if(null==f?void 0:f.current){var e=!D;f.current.muted=e,S(e)}}},c.default.createElement(a.FontAwesomeIcon,{icon:D?i.faVolumeXmark:i.faVolumeHigh,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement(c.default.Fragment,null,m?c.default.createElement("div",{onClick:_,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-pause-recorder-view","data-tooltip-content":"Pause"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement("div",{onClick:M,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-play-recorder-view","data-tooltip-content":"Play"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"}))),c.default.createElement("div",{className:"pi-w-full pi-flex-grow pi-mx-2",onClick:T,onMouseDown:T,onTouchStart:T},c.default.createElement(r.StyledCustomRange,{"data-stop-propagation":!0,ref:g,defaultValue:0,type:"range",step:"1",min:"0",max:q&&q||0,onChange:function(){j.player.setAudioPlayerCurrentTime(g.current.value)},className:"pi-text-green-600 dark:pi-text-green-500"})),!d&&c.default.createElement("div",{onClick:R,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-delete-recorder-view","data-tooltip-content":"Delete"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faTrash,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200"}))),c.default.createElement("div",{className:"pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1"},c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},h),c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},P)))};exports.Progress=d,exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../utils/genericFunctions/player.js"),r=require("../../styles/CustomRange.styles.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var s=require("../../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=l(e),d=function(l){var d=l.isPlayer,p=s.useSelector((function(e){return e.player})),f=p.audioPlayer,m=p.audioPlayerPlaying,y=p.audioPlayerTrackDuration,g=e.useRef(),x=e.useRef(),v=e.useState("00:00"),h=v[0],w=v[1],E=e.useState(),P=E[0],k=E[1],j=u.useDispatch(),N=e.useState(y&&Math.round(y)||0),q=N[0],A=N[1],F=s.useSelector((function(e){return e.recorder}));F.recorded,F.playing;var C=e.useState(!1),D=C[0],S=C[1],b=e.useCallback((function(){var e,r=null===(e=null==f?void 0:f.current)||void 0===e?void 0:e.currentTime;r&&w(t.formatTime(Math.round(r))),g.current.value=r,q&&r&&g.current.style.setProperty("--range-progress","".concat(r/q*100,"%")),x.current=requestAnimationFrame(b)}),[f,q,g]);function T(e){e.stopPropagation()}function _(){j.player.pauseAudioPlayer(),j.recorder.setPlaying(!1),j.recorder.setPaused(!0),o.eventDispatch("phone-island-recording-paused",{})}function M(){j.player.startAudioPlayer((function(){j.recorder.setPlaying(!1),j.recorder.setPaused(!0)})),j.recorder.setPlaying(!0),o.eventDispatch("phone-island-recording-played",{})}function R(){j.recorder.resetRecorded(),o.eventDispatch("phone-island-recording-deleted",{})}return e.useEffect((function(){m?x.current=requestAnimationFrame(b):cancelAnimationFrame(x.current)}),[m]),e.useEffect((function(){y&&(A(Math.round(y)),k(t.formatTime(y)))}),[y]),e.useEffect((function(){return function(){cancelAnimationFrame(x.current)}}),[]),n.useEventListener("phone-island-recording-pause",(function(e){_()})),n.useEventListener("phone-island-recording-play",(function(e){M()})),n.useEventListener("phone-island-recording-delete",(function(e){R()})),c.default.createElement("div",{className:"pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2"},c.default.createElement("div",{className:"pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2"},d?c.default.createElement("div",{className:"pi-cursor-pointer pi-flex-none",onClick:function(){if(null==f?void 0:f.current){var e=!D;f.current.muted=e,S(e)}}},c.default.createElement(a.FontAwesomeIcon,{icon:D?i.faVolumeXmark:i.faVolumeHigh,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement(c.default.Fragment,null,m?c.default.createElement("div",{onClick:_,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-pause-recorder-view","data-tooltip-content":"Pause"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement("div",{onClick:M,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-play-recorder-view","data-tooltip-content":"Play"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"}))),c.default.createElement("div",{className:"pi-w-full pi-flex-grow pi-mx-2",onClick:T,onMouseDown:T,onTouchStart:T},c.default.createElement(r.StyledCustomRange,{"data-stop-propagation":!0,ref:g,defaultValue:0,type:"range",step:"1",min:"0",max:q&&q||0,onChange:function(){j.player.setAudioPlayerCurrentTime(g.current.value)},className:"pi-text-green-600 dark:pi-text-green-500"})),!d&&c.default.createElement("div",{onClick:R,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-delete-recorder-view","data-tooltip-content":"Delete"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faTrash,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200"}))),c.default.createElement("div",{className:"pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1"},c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},h),c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},P)))};exports.Progress=d,exports.default=d;
2
2
  //# sourceMappingURL=Progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","sources":["../../../src/components/AudioPlayerView/Progress.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect, useRef, useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { formatTime } from '../../utils/genericFunctions/player'\nimport { useDispatch } from 'react-redux'\nimport { StyledCustomRange } from '../../styles/CustomRange.styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlay, faPause, faTrash, faVolumeHigh, faVolumeXmark } from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\n\nexport const Progress: FC<ProgressTypes> = ({ isPlayer }) => {\n const { audioPlayer, audioPlayerPlaying, audioPlayerTrackDuration } = useSelector(\n (state: RootState) => state.player,\n )\n const progressBarRef = useRef<any>()\n const progressAnimationRef = useRef<any>()\n const [timeProgress, setTimeProgress] = useState<string>('00:00')\n const [displayDuration, setDisplayDuration] = useState<string>()\n const dispatch = useDispatch<Dispatch>()\n const [trackDuration, setTrackDuration] = useState<number>(\n (audioPlayerTrackDuration && Math.round(audioPlayerTrackDuration)) || 0,\n )\n const { recorded, playing } = useSelector((state: RootState) => state.recorder)\n const [isMuted, setIsMuted] = useState<boolean>(false)\n\n const progressAnimation = useCallback(() => {\n const currentTime = audioPlayer?.current?.currentTime\n currentTime && setTimeProgress(formatTime(Math.round(currentTime)))\n progressBarRef.current.value = currentTime\n trackDuration &&\n currentTime &&\n progressBarRef.current.style.setProperty(\n '--range-progress',\n `${(currentTime / trackDuration) * 100}%`,\n )\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n }, [audioPlayer, trackDuration, progressBarRef])\n\n useEffect(() => {\n if (audioPlayerPlaying) {\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n } else {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [audioPlayerPlaying])\n\n useEffect(() => {\n if (audioPlayerTrackDuration) {\n setTrackDuration(Math.round(audioPlayerTrackDuration))\n setDisplayDuration(formatTime(audioPlayerTrackDuration))\n }\n }, [audioPlayerTrackDuration])\n\n useEffect(() => {\n return () => {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [])\n\n function handleProgressChange() {\n dispatch.player.setAudioPlayerCurrentTime(progressBarRef.current.value)\n }\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\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 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 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 handleToggleMute() {\n if (audioPlayer?.current) {\n const newMuteState = !isMuted\n audioPlayer.current.muted = newMuteState\n setIsMuted(newMuteState)\n }\n }\n\n return (\n <div className='pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2'>\n {/* Player controls with progress bar */}\n <div className='pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2'>\n {isPlayer ? (\n <div className='pi-cursor-pointer pi-flex-none' onClick={handleToggleMute}>\n <FontAwesomeIcon\n icon={isMuted ? faVolumeXmark : faVolumeHigh}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <>\n {audioPlayerPlaying ? (\n <div\n onClick={handlePause}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-pause-recorder-view'\n data-tooltip-content={'Pause'}\n >\n <FontAwesomeIcon\n icon={faPause}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <div\n onClick={handlePlay}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-play-recorder-view'\n data-tooltip-content={'Play'}\n >\n <FontAwesomeIcon\n icon={faPlay}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n )}\n </>\n )}\n\n <div\n className='pi-w-full pi-flex-grow pi-mx-2'\n onClick={stopPropagation}\n onMouseDown={stopPropagation}\n onTouchStart={stopPropagation}\n >\n <StyledCustomRange\n data-stop-propagation={true}\n ref={progressBarRef}\n defaultValue={0}\n type='range'\n step='1'\n min='0'\n max={(trackDuration && trackDuration) || 0}\n onChange={handleProgressChange}\n className='pi-text-green-600 dark:pi-text-green-500'\n />\n </div>\n\n {!isPlayer && (\n <div\n onClick={handleDelete}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-delete-recorder-view'\n data-tooltip-content={'Delete'}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200'\n />\n </div>\n )}\n </div>\n\n {/* Time indicators */}\n <div className='pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1'>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {timeProgress}\n </div>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {displayDuration}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Progress\nexport interface ProgressTypes {\n isPlayer?: boolean\n}\n"],"names":["Progress","_a","isPlayer","_b","useSelector","state","player","audioPlayer","audioPlayerPlaying","audioPlayerTrackDuration","progressBarRef","useRef","progressAnimationRef","_c","useState","timeProgress","setTimeProgress","_d","displayDuration","setDisplayDuration","dispatch","useDispatch","_e","Math","round","trackDuration","setTrackDuration","_f","recorder","_g","isMuted","setIsMuted","progressAnimation","useCallback","currentTime","current","formatTime","value","style","setProperty","requestAnimationFrame","stopPropagation","e","handlePause","pauseAudioPlayer","setPlaying","setPaused","eventDispatch","handlePlay","startAudioPlayer","handleDelete","resetRecorded","useEffect","cancelAnimationFrame","useEventListener","data","React","createElement","className","onClick","newMuteState","muted","FontAwesomeIcon","icon","faVolumeXmark","faVolumeHigh","Fragment","faPause","faPlay","onMouseDown","onTouchStart","StyledCustomRange","ref","defaultValue","type","step","min","max","onChange","setAudioPlayerCurrentTime","faTrash"],"mappings":"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"}
1
+ {"version":3,"file":"Progress.js","sources":["../../../src/components/AudioPlayerView/Progress.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect, useRef, useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { formatTime } from '../../utils/genericFunctions/player'\nimport { useDispatch } from 'react-redux'\nimport { StyledCustomRange } from '../../styles/CustomRange.styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlay, faPause, faTrash, faVolumeHigh, faVolumeXmark } from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\n\nexport const Progress: FC<ProgressTypes> = ({ isPlayer }) => {\n const { audioPlayer, audioPlayerPlaying, audioPlayerTrackDuration } = useSelector(\n (state: RootState) => state.player,\n )\n const progressBarRef = useRef<any>()\n const progressAnimationRef = useRef<any>()\n const [timeProgress, setTimeProgress] = useState<string>('00:00')\n const [displayDuration, setDisplayDuration] = useState<string>()\n const dispatch = useDispatch<Dispatch>()\n const [trackDuration, setTrackDuration] = useState<number>(\n (audioPlayerTrackDuration && Math.round(audioPlayerTrackDuration)) || 0,\n )\n const { recorded, playing } = useSelector((state: RootState) => state.recorder)\n const [isMuted, setIsMuted] = useState<boolean>(false)\n\n const progressAnimation = useCallback(() => {\n const currentTime = audioPlayer?.current?.currentTime\n currentTime && setTimeProgress(formatTime(Math.round(currentTime)))\n progressBarRef.current.value = currentTime\n trackDuration &&\n currentTime &&\n progressBarRef.current.style.setProperty(\n '--range-progress',\n `${(currentTime / trackDuration) * 100}%`,\n )\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n }, [audioPlayer, trackDuration, progressBarRef])\n\n useEffect(() => {\n if (audioPlayerPlaying) {\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n } else {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [audioPlayerPlaying])\n\n useEffect(() => {\n if (audioPlayerTrackDuration) {\n setTrackDuration(Math.round(audioPlayerTrackDuration))\n setDisplayDuration(formatTime(audioPlayerTrackDuration))\n }\n }, [audioPlayerTrackDuration])\n\n useEffect(() => {\n return () => {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [])\n\n function handleProgressChange() {\n dispatch.player.setAudioPlayerCurrentTime(progressBarRef.current.value)\n }\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\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 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 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 handleToggleMute() {\n if (audioPlayer?.current) {\n const newMuteState = !isMuted\n audioPlayer.current.muted = newMuteState\n setIsMuted(newMuteState)\n }\n }\n\n return (\n <div className='pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2'>\n {/* Player controls with progress bar */}\n <div className='pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2'>\n {isPlayer ? (\n <div className='pi-cursor-pointer pi-flex-none' onClick={handleToggleMute}>\n <FontAwesomeIcon\n icon={isMuted ? faVolumeXmark : faVolumeHigh}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <>\n {audioPlayerPlaying ? (\n <div\n onClick={handlePause}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-pause-recorder-view'\n data-tooltip-content={'Pause'}\n >\n <FontAwesomeIcon\n icon={faPause}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <div\n onClick={handlePlay}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-play-recorder-view'\n data-tooltip-content={'Play'}\n >\n <FontAwesomeIcon\n icon={faPlay}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n )}\n </>\n )}\n\n <div\n className='pi-w-full pi-flex-grow pi-mx-2'\n onClick={stopPropagation}\n onMouseDown={stopPropagation}\n onTouchStart={stopPropagation}\n >\n <StyledCustomRange\n data-stop-propagation={true}\n ref={progressBarRef}\n defaultValue={0}\n type='range'\n step='1'\n min='0'\n max={(trackDuration && trackDuration) || 0}\n onChange={handleProgressChange}\n className='pi-text-green-600 dark:pi-text-green-500'\n />\n </div>\n\n {!isPlayer && (\n <div\n onClick={handleDelete}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-delete-recorder-view'\n data-tooltip-content={'Delete'}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200'\n />\n </div>\n )}\n </div>\n\n {/* Time indicators */}\n <div className='pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1'>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {timeProgress}\n </div>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {displayDuration}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Progress\nexport interface ProgressTypes {\n isPlayer?: boolean\n}\n"],"names":["Progress","_a","isPlayer","_b","useSelector","state","player","audioPlayer","audioPlayerPlaying","audioPlayerTrackDuration","progressBarRef","useRef","progressAnimationRef","_c","useState","timeProgress","setTimeProgress","_d","displayDuration","setDisplayDuration","dispatch","useDispatch","_e","Math","round","trackDuration","setTrackDuration","_f","recorder","_g","isMuted","setIsMuted","progressAnimation","useCallback","currentTime","current","formatTime","value","style","setProperty","requestAnimationFrame","stopPropagation","e","handlePause","pauseAudioPlayer","setPlaying","setPaused","eventDispatch","handlePlay","startAudioPlayer","handleDelete","resetRecorded","useEffect","cancelAnimationFrame","useEventListener","data","React","createElement","className","onClick","newMuteState","muted","FontAwesomeIcon","icon","faVolumeXmark","faVolumeHigh","Fragment","faPause","faPlay","onMouseDown","onTouchStart","StyledCustomRange","ref","defaultValue","type","step","min","max","onChange","setAudioPlayerCurrentTime","faTrash"],"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/react-redux/es/index.js");var t=require("./Avatar.js"),r=require("./Progress.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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 s=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var a=require("./PlayerFooterActions.js"),i=require("../Button.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),l=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=c(e),m=function(){var e=u.useSelector((function(e){return e.player})),c=e.audioPlayerTrackType,m=e.audioPlayerTrackName;e.audioPlayer;var f=e.audioPlayerPlaying,y=u.useSelector((function(e){return e.island})).isOpen;function v(e){e.stopPropagation()}var j=s.useTranslation().t,x=d.useDispatch();return p.default.createElement("div",{className:"pi-flex pi-gap-7 pi-flex-col"},p.default.createElement("div",{className:"pi-flex pi-gap-4"},p.default.createElement(t.Avatar,{type:c}),p.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full"},p.default.createElement("div",{style:{width:y?"202px":"60px"},className:"pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block"},m)),p.default.createElement(i.Button,{onClick:function(){return f&&(x.player.stopAudioPlayer(),o.eventDispatch("phone-island-audio-player-close",{})),void x.island.resetPlayerClose()},variant:"transparentSettings","data-tooltip-id":"tooltip-close-settings","data-tooltip-content":j("Common.Close")||""},p.default.createElement(l.FontAwesomeIcon,{icon:n.faXmark,className:"pi-w-5 pi-h-5"}))),y&&p.default.createElement("div",{onClick:v,onMouseDown:v,onTouchStart:v},p.default.createElement(r.Progress,{isPlayer:!0}),p.default.createElement(a.PlayerFooterActions,null)))};exports.KeypadView=m,exports.default=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var r=require("./Avatar.js"),t=require("./Progress.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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 s=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var a=require("./PlayerFooterActions.js"),i=require("../Button.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var l=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=c(e),m=function(){var e=u.useSelector((function(e){return e.player})),c=e.audioPlayerTrackType,m=e.audioPlayerTrackName;e.audioPlayer;var f=e.audioPlayerPlaying,y=u.useSelector((function(e){return e.island})).isOpen;function v(e){e.stopPropagation()}var j=s.useTranslation().t,x=d.useDispatch();return p.default.createElement("div",{className:"pi-flex pi-gap-7 pi-flex-col"},p.default.createElement("div",{className:"pi-flex pi-gap-4"},p.default.createElement(r.Avatar,{type:c}),p.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full"},p.default.createElement("div",{style:{width:y?"202px":"60px"},className:"pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block"},m)),p.default.createElement(i.Button,{onClick:function(){return f&&(x.player.stopAudioPlayer(),o.eventDispatch("phone-island-audio-player-close",{})),void x.island.resetPlayerClose()},variant:"transparentSettings","data-tooltip-id":"tooltip-close-settings","data-tooltip-content":j("Common.Close")||""},p.default.createElement(l.FontAwesomeIcon,{icon:n.faXmark,className:"pi-w-5 pi-h-5"}))),y&&p.default.createElement("div",{onClick:v,onMouseDown:v,onTouchStart:v},p.default.createElement(t.Progress,{isPlayer:!0}),p.default.createElement(a.PlayerFooterActions,null)))};exports.KeypadView=m,exports.default=m;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { Avatar } from './Avatar'\nimport Progress from './Progress'\nimport { useTranslation } from 'react-i18next'\nimport PlayerFooterActions from './PlayerFooterActions'\nimport { Button } from '../Button'\nimport { eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\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\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n const { t } = useTranslation()\n\n // Initialize state dispatch\n const dispatch = useDispatch<Dispatch>()\n\n function playerClose() {\n if (audioPlayerPlaying) {\n dispatch.player.stopAudioPlayer()\n eventDispatch('phone-island-audio-player-close', {})\n }\n dispatch.island.resetPlayerClose()\n }\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 <Button\n onClick={() => playerClose()}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n {isOpen && (\n <div onClick={stopPropagation} onMouseDown={stopPropagation} onTouchStart={stopPropagation}>\n {/* add prop to indicate that is audioplayer view */}\n <Progress isPlayer />\n <PlayerFooterActions />\n </div>\n )}\n {/* Buttons tooltips */}\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","stopPropagation","e","t","useTranslation","dispatch","useDispatch","React","createElement","className","Avatar","type","style","width","Button","onClick","stopAudioPlayer","eventDispatch","resetPlayerClose","variant","FontAwesomeIcon","icon","faXmark","onMouseDown","onTouchStart","Progress","isPlayer","PlayerFooterActions"],"mappings":"orCAeaA,EAAkC,WACvC,IAAAC,EACJC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,UADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAaL,EAAAM,YAAA,IAAEC,EAAkBP,EAAAO,mBAE3EC,EAAWP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,iBAE3D,SAASC,EAAgBC,GACvBA,EAAED,iBACH,CAEO,IAAAE,EAAMC,qBAGRC,EAAWC,EAAAA,cAUjB,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMhB,IACdY,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOd,EAAS,QAAU,QAE5BU,UAAW,yFAEVb,IAGLW,EAAC,QAAAC,cAAAM,UACCC,QAAS,WAAM,OAtBjBjB,IACFO,EAASX,OAAOsB,kBAChBC,gBAAc,kCAAmC,CAAA,SAEnDZ,EAASL,OAAOkB,kBAkBkB,EAC5BC,QAAQ,wCACQ,yBAAwB,uBAClBhB,EAAE,iBAAmB,IAE3CI,UAACC,cAAAY,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,QAASb,UAAU,oBAG7CV,GACCQ,EAAK,QAAAC,cAAA,MAAA,CAAAO,QAASd,EAAiBsB,YAAatB,EAAiBuB,aAAcvB,GAEzEM,EAAAA,QAACC,cAAAiB,EAAAA,SAAS,CAAAC,UAAW,IACrBnB,EAAAA,QAAAC,cAACmB,EAAAA,oBAAsB,OAMjC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { Avatar } from './Avatar'\nimport Progress from './Progress'\nimport { useTranslation } from 'react-i18next'\nimport PlayerFooterActions from './PlayerFooterActions'\nimport { Button } from '../Button'\nimport { eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\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\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n const { t } = useTranslation()\n\n // Initialize state dispatch\n const dispatch = useDispatch<Dispatch>()\n\n function playerClose() {\n if (audioPlayerPlaying) {\n dispatch.player.stopAudioPlayer()\n eventDispatch('phone-island-audio-player-close', {})\n }\n dispatch.island.resetPlayerClose()\n }\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 <Button\n onClick={() => playerClose()}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n {isOpen && (\n <div onClick={stopPropagation} onMouseDown={stopPropagation} onTouchStart={stopPropagation}>\n {/* add prop to indicate that is audioplayer view */}\n <Progress isPlayer />\n <PlayerFooterActions />\n </div>\n )}\n {/* Buttons tooltips */}\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","stopPropagation","e","t","useTranslation","dispatch","useDispatch","React","createElement","className","Avatar","type","style","width","Button","onClick","stopAudioPlayer","eventDispatch","resetPlayerClose","variant","FontAwesomeIcon","icon","faXmark","onMouseDown","onTouchStart","Progress","isPlayer","PlayerFooterActions"],"mappings":"wtCAeaA,EAAkC,WACvC,IAAAC,EACJC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,UADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAaL,EAAAM,YAAA,IAAEC,EAAkBP,EAAAO,mBAE3EC,EAAWP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,iBAE3D,SAASC,EAAgBC,GACvBA,EAAED,iBACH,CAEO,IAAAE,EAAMC,qBAGRC,EAAWC,EAAAA,cAUjB,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMhB,IACdY,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOd,EAAS,QAAU,QAE5BU,UAAW,yFAEVb,IAGLW,EAAC,QAAAC,cAAAM,UACCC,QAAS,WAAM,OAtBjBjB,IACFO,EAASX,OAAOsB,kBAChBC,gBAAc,kCAAmC,CAAA,SAEnDZ,EAASL,OAAOkB,kBAkBkB,EAC5BC,QAAQ,wCACQ,yBAAwB,uBAClBhB,EAAE,iBAAmB,IAE3CI,UAACC,cAAAY,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,QAASb,UAAU,oBAG7CV,GACCQ,EAAK,QAAAC,cAAA,MAAA,CAAAO,QAASd,EAAiBsB,YAAatB,EAAiBuB,aAAcvB,GAEzEM,EAAAA,QAACC,cAAAiB,EAAAA,SAAS,CAAAC,UAAW,IACrBnB,EAAAA,QAAAC,cAACmB,EAAAA,oBAAsB,OAMjC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("../node_modules/tslib/tslib.es6.js"),e=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var p=a(e);exports.Button=function(e){var a=e.children,n=e.variant,t=e.active,o=void 0!==t&&t,g=e.conference,d=void 0!==g&&g,s=e.className,l=void 0===s?"":s,u=r.__rest(e,["children","variant","active","conference","className"]),c={base:"pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",green:"pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",default:"pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full",neutral:"pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full",transparent:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full",transparentSideView:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark",transparentSettings:"pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded",gray:"dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56"},background:{base:{default:"pi-bg-gray-700 dark:pi-bg-gray-300"},active:{default:"pi-bg-gray-500 dark:pi-bg-gray-50"}}};return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",r.__assign({"data-stop-propagation":!0,className:i.classNames(o&&c.background.active[n]?c.background.active[n]:c.background.base[n]&&c.background.base[n],c.base,n&&c.variant[n],l&&l,d?"pi-font-medium":"pi-font-light")},u),a))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("../node_modules/tslib/tslib.es6.js"),e=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}require("../store/index.js");var p=a(e);exports.Button=function(e){var a=e.children,n=e.variant,t=e.active,o=void 0!==t&&t,d=e.conference,g=void 0!==d&&d,s=e.className,l=void 0===s?"":s,u=r.__rest(e,["children","variant","active","conference","className"]),c={base:"pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",green:"pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",default:"pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full",neutral:"pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full",transparent:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full",transparentSideView:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark",transparentSettings:"pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded",gray:"dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56"},background:{base:{default:"pi-bg-gray-700 dark:pi-bg-gray-300"},active:{default:"pi-bg-gray-500 dark:pi-bg-gray-50"}}};return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",r.__assign({"data-stop-propagation":!0,className:i.classNames(o&&c.background.active[n]?c.background.active[n]:c.background.base[n]&&c.background.base[n],c.base,n&&c.variant[n],l&&l,g?"pi-font-medium":"pi-font-light")},u),a))};
2
2
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant:\n | 'red'\n | 'green'\n | 'default'\n | 'neutral'\n | 'transparent'\n | 'transparentSideView'\n | 'transparentSettings'\n | 'gray'\n active?: boolean\n conference?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n conference = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n green:\n 'pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n default:\n 'pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full',\n neutral:\n 'pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full',\n transparent:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full',\n transparentSideView:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark',\n transparentSettings:\n 'pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded',\n gray: 'dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700 dark:pi-bg-gray-300',\n },\n active: {\n default: 'pi-bg-gray-500 dark:pi-bg-gray-50',\n },\n },\n }\n\n return (\n <>\n <button\n data-stop-propagation={true}\n className={classNames(\n active && classes.background.active[variant]\n ? classes.background.active[variant]\n : classes.background.base[variant] && classes.background.base[variant],\n classes.base,\n variant && classes.variant[variant],\n className && className,\n conference ? 'pi-font-medium' : 'pi-font-light',\n )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","conference","_d","className","props","__rest","classes","base","red","green","default","neutral","transparent","transparentSideView","transparentSettings","gray","background","React","createElement","Fragment","__assign","classNames"],"mappings":"kSAqBuC,SAACA,GACtC,IAAAC,EAAQD,EAAAC,SACRC,EAAOF,EAAAE,QACPC,EAAcH,EAAAI,OAAdA,OAAM,IAAAD,GAAQA,EACdE,EAAkBL,EAAAM,WAAlBA,OAAU,IAAAD,GAAQA,EAClBE,EAAAP,EAAAQ,UAAAA,OAAY,IAAAD,EAAA,GAAEA,EACXE,EAAKC,EAAAA,OAAAV,EAN8B,0DAQhCW,EAAU,CACdC,KAAM,4YACNV,QAAS,CACPW,IAAK,gQACLC,MACE,qPACFC,QACE,uPACFC,QACE,+JACFC,YACE,iSACFC,oBACE,sQACFC,oBACE,4NACFC,KAAM,sNAERC,WAAY,CACVT,KAAM,CACJG,QAAS,sCAEXX,OAAQ,CACNW,QAAS,uCAKf,OACEO,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBjB,UAAWkB,EAAAA,WACTtB,GAAUO,EAAQU,WAAWjB,OAAOF,GAChCS,EAAQU,WAAWjB,OAAOF,GAC1BS,EAAQU,WAAWT,KAAKV,IAAYS,EAAQU,WAAWT,KAAKV,GAChES,EAAQC,KACRV,GAAWS,EAAQT,QAAQA,GAC3BM,GAAaA,EACbF,EAAa,iBAAmB,kBAE9BG,GAEHR,GAIT"}
1
+ {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant:\n | 'red'\n | 'green'\n | 'default'\n | 'neutral'\n | 'transparent'\n | 'transparentSideView'\n | 'transparentSettings'\n | 'gray'\n active?: boolean\n conference?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n conference = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n green:\n 'pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n default:\n 'pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full',\n neutral:\n 'pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full',\n transparent:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full',\n transparentSideView:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark',\n transparentSettings:\n 'pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded',\n gray: 'dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700 dark:pi-bg-gray-300',\n },\n active: {\n default: 'pi-bg-gray-500 dark:pi-bg-gray-50',\n },\n },\n }\n\n return (\n <>\n <button\n data-stop-propagation={true}\n className={classNames(\n active && classes.background.active[variant]\n ? classes.background.active[variant]\n : classes.background.base[variant] && classes.background.base[variant],\n classes.base,\n variant && classes.variant[variant],\n className && className,\n conference ? 'pi-font-medium' : 'pi-font-light',\n )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","conference","_d","className","props","__rest","classes","base","red","green","default","neutral","transparent","transparentSideView","transparentSettings","gray","background","React","createElement","Fragment","__assign","classNames"],"mappings":"+TAqBuC,SAACA,GACtC,IAAAC,EAAQD,EAAAC,SACRC,EAAOF,EAAAE,QACPC,EAAcH,EAAAI,OAAdA,OAAM,IAAAD,GAAQA,EACdE,EAAkBL,EAAAM,WAAlBA,OAAU,IAAAD,GAAQA,EAClBE,EAAAP,EAAAQ,UAAAA,OAAY,IAAAD,EAAA,GAAEA,EACXE,EAAKC,EAAAA,OAAAV,EAN8B,0DAQhCW,EAAU,CACdC,KAAM,4YACNV,QAAS,CACPW,IAAK,gQACLC,MACE,qPACFC,QACE,uPACFC,QACE,+JACFC,YACE,iSACFC,oBACE,sQACFC,oBACE,4NACFC,KAAM,sNAERC,WAAY,CACVT,KAAM,CACJG,QAAS,sCAEXX,OAAQ,CACNW,QAAS,uCAKf,OACEO,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBjB,UAAWkB,EAAAA,WACTtB,GAAUO,EAAQU,WAAWjB,OAAOF,GAChCS,EAAQU,WAAWjB,OAAOF,GAC1BS,EAAQU,WAAWT,KAAKV,IAAYS,EAAQU,WAAWT,KAAKV,GAChES,EAAQC,KACRV,GAAWS,EAAQT,QAAQA,GAC3BM,GAAaA,EACbF,EAAa,iBAAmB,kBAE9BG,GAEHR,GAIT"}
@@ -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"),n=require("../../lib/phone/call.js"),i=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js");require("../../node_modules/socket.io-client/build/esm/index.js");var l=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js");var s=require("../../lib/webrtc/messages.js"),r=require("../../static/outgoing_ringtone.js");require("../Island.js");var c=require("../../services/astproxy.js"),u=require("../Button.js"),d=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),p=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/i18next/dist/esm/i18next.js");var f=require("../CustomThemedTooltip.js"),m=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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 v=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var h=require("../TransferButton.js"),C=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),b=require("../../node_modules/react-redux/es/hooks/useSelector.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=j(t),T=g.default.memo((function(e){var t=e.active,n=e.onClick,i=e.tooltipId,o=e.tooltipContent,a=e.icon,l=e.activeIcon,s=void 0===l?a:l;return g.default.createElement(u.Button,{variant:"default",active:t,onClick:n,"data-tooltip-id":i,"data-tooltip-content":o},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:t?s:a}))})),E=g.default.memo((function(){var j,E,k,y,q=v.useTranslation().t,w=C.useDispatch(),x=b.useSelector((function(e){return e.currentCall})),_=x.paused,I=x.muted,D=x.parked,A=x.transferring,P=b.useSelector((function(e){return e.island})),M=P.view,S=P.actionsExpanded,F=P.sideViewIsVisible,L=b.useSelector((function(e){return e.listen})),V=b.useSelector((function(e){return e.conference})),B=V.isActive,N=V.conferenceStartedFrom,R=b.useSelector((function(e){return null==e?void 0:e.currentUser})),U=R.username,O=R.profile,W=t.useRef(!1),G=t.useRef(!1),H=t.useMemo((function(){return""!==U&&N===U}),[U,N]),K=t.useMemo((function(){return B&&!H}),[B,H]),z=t.useMemo((function(){return(null==L?void 0:L.isIntrude)||(null==L?void 0:L.isListen)}),[L]),J=t.useCallback((function(){I?n.unmuteCurrentCall():n.muteCurrentCall()}),[I]),Q=t.useCallback((function(){_?n.unpauseCurrentCall():n.pauseCurrentCall()}),[_]),X=t.useCallback((function(){w.island.setIslandView("keypad"!==M?"keypad":"call"),F&&o.eventDispatch("phone-island-sideview-close",{}),o.eventDispatch("phone-island-call-keypad-opened",{})}),[M,F,w.island]),Y=t.useCallback((function(){var e=!S;w.island.toggleActionsExpanded(e),o.eventDispatch("phone-island-call-actions-".concat(e?"opened":"closed"),{}),e||o.eventDispatch("phone-island-sideview-close",{})}),[S,w.island]),Z=t.useCallback((function(){var e=F?"phone-island-sideview-close":"phone-island-sideview-open";o.eventDispatch(e,{})}),[F]),$=t.useCallback((function(){w.island.setIslandView("transfer"!==M?"transfer":"call"),F&&o.eventDispatch("phone-island-sideview-close",{}),o.eventDispatch("phone-island-call-transfer-opened",{})}),[M,F,w.island]),ee=t.useCallback((function(){o.eventDispatch("phone-island-conference-list-open",{}),w.island.setIslandView("transfer"!==M?"transfer":"call"),F&&o.eventDispatch("phone-island-sideview-close",{})}),[M,F,w.island]),te=t.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return w.island.setIslandView("waitingConference"),[4,n.startConference()];case 1:return e.sent(),[2]}}))}))}),[w.island]),ne=t.useCallback((function(){B?te():ee()}),[B,te,ee]),ie=t.useMemo((function(){return B&&"call"===M&&!S&&!W.current&&H}),[B,M,S,H]),oe=t.useMemo((function(){return B&&"call"===M&&S&&!G.current&&""!==U&&!H}),[B,M,S,U,H]);t.useEffect((function(){ie&&(w.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{}),W.current=!0)}),[ie,w.island]),t.useEffect((function(){oe&&(w.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{}),G.current=!0)}),[oe,w.island]);var ae=t.useCallback((function(){var e=l.isWebRTC()?s.sendDTMF:c.sendPhysicalDTMF;e("*"),a.store.getState().player.audioPlayerPlaying||w.player.updateStartAudioPlayer({src:r.default,loop:!0}),setTimeout((function(){e("1"),w.player.stopAudioPlayer(),A&&setTimeout((function(){w.currentCall.updateTransferring(!1)}),500),o.eventDispatch("phone-island-call-transfer-canceled",{})}),500)}),[A,w.player,w.currentCall]);i.useEventListener("phone-island-call-keypad-open",X),i.useEventListener("phone-island-call-transfer-open",$),i.useEventListener("phone-island-call-transfer-cancel",ae),i.useEventListener("phone-island-call-actions-open",(function(){w.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{})})),i.useEventListener("phone-island-call-actions-close",(function(){w.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{})}));var le=t.useMemo((function(){return(null==L?void 0:L.isListen)||(null==L?void 0:L.isIntrude)||B&&!H?L.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":B&&!H?"pi-flex pi-items-center pi-justify-center pi-gap-4":"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"}),[L,B,H]);return g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:le},!z&&g.default.createElement(T,{active:_,onClick:Q,tooltipId:"tooltip-pause",tooltipContent:q(_?"Tooltip.Play":"Tooltip.Pause"),icon:p.faPause,activeIcon:p.faPlay}),!(null==L?void 0:L.isListen)&&g.default.createElement(T,{active:I,onClick:J,tooltipId:"tooltip-mute",tooltipContent:q(I?"Tooltip.Unmute":"Tooltip.Mute"),icon:p.faMicrophone,activeIcon:p.faMicrophoneSlash}),!K&&g.default.createElement(h.TransferButton,null),!z&&!K&&g.default.createElement(u.Button,{active:S,variant:"transparent",onClick:Y,"data-tooltip-id":"tooltip-expand","data-tooltip-content":q(S?"Tooltip.Collapse":"Tooltip.Expand")},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S?p.faAngleUp:p.faAngleDown}))),S&&g.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"},g.default.createElement(T,{active:"keypad"===M,onClick:X,tooltipId:"tooltip-keyboard",tooltipContent:q("Tooltip.Keyboard"),icon:m.faGridRound}),g.default.createElement(T,{active:D,onClick:n.parkCurrentCall,tooltipId:"tooltip-park",tooltipContent:q("Tooltip.Park"),icon:p.faSquareParking}),(null===(y=null===(k=null===(E=null===(j=null==O?void 0:O.macro_permissions)||void 0===j?void 0:j.settings)||void 0===E?void 0:E.permissions)||void 0===k?void 0:k.conference)||void 0===y?void 0:y.value)&&g.default.createElement(u.Button,{"data-stop-propagation":!0,variant:"default",onClick:ne,"data-tooltip-id":"tooltip-conference","data-tooltip-content":B?q("Tooltip.Conference")||"":q("Tooltip.Add user to conference")||""},g.default.createElement(d.FontAwesomeIcon,{icon:B?p.faPlus:p.faUserPlus,className:"pi-h-6 pi-w-6"})),g.default.createElement(u.Button,{variant:"default",onClick:Z,"data-tooltip-id":"tooltip-sideView","data-tooltip-content":q("Tooltip.Other actions")||""},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:F?m.faClose:m.faOpen}))),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-transfer",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-pause",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-mute",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-expand",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-keyboard",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-conference",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-park",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-sideView",place:"left"}))}));exports.default=E;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../../lib/phone/call.js"),i=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),l=require("../../store/index.js");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var a=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js");var s=require("../../lib/webrtc/messages.js"),r=require("../../static/outgoing_ringtone.js");require("../Island.js");var c=require("../../services/astproxy.js"),u=require("../Button.js"),d=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),p=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/i18next/dist/esm/i18next.js");var f=require("../CustomThemedTooltip.js"),m=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../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 v=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var h=require("../TransferButton.js"),C=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),b=require("../../node_modules/react-redux/es/hooks/useSelector.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=j(t),T=g.default.memo((function(e){var t=e.active,n=e.onClick,i=e.tooltipId,o=e.tooltipContent,l=e.icon,a=e.activeIcon,s=void 0===a?l:a;return g.default.createElement(u.Button,{variant:"default",active:t,onClick:n,"data-tooltip-id":i,"data-tooltip-content":o},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:t?s:l}))})),E=g.default.memo((function(){var j,E,k,y,q=v.useTranslation().t,w=C.useDispatch(),x=b.useSelector((function(e){return e.currentCall})),_=x.paused,I=x.muted,D=x.parked,A=x.transferring,P=b.useSelector((function(e){return e.island})),M=P.view,S=P.actionsExpanded,F=P.sideViewIsVisible,L=b.useSelector((function(e){return e.listen})),V=b.useSelector((function(e){return e.conference})),B=V.isActive,N=V.conferenceStartedFrom,R=b.useSelector((function(e){return null==e?void 0:e.currentUser})),U=R.username,O=R.profile,W=t.useRef(!1),G=t.useRef(!1),H=t.useMemo((function(){return""!==U&&N===U}),[U,N]),K=t.useMemo((function(){return B&&!H}),[B,H]),z=t.useMemo((function(){return(null==L?void 0:L.isIntrude)||(null==L?void 0:L.isListen)}),[L]),J=t.useCallback((function(){I?n.unmuteCurrentCall():n.muteCurrentCall()}),[I]),Q=t.useCallback((function(){_?n.unpauseCurrentCall():n.pauseCurrentCall()}),[_]),X=t.useCallback((function(){w.island.setIslandView("keypad"!==M?"keypad":"call"),F&&o.eventDispatch("phone-island-sideview-close",{}),o.eventDispatch("phone-island-call-keypad-opened",{})}),[M,F,w.island]),Y=t.useCallback((function(){var e=!S;w.island.toggleActionsExpanded(e),o.eventDispatch("phone-island-call-actions-".concat(e?"opened":"closed"),{}),e||o.eventDispatch("phone-island-sideview-close",{})}),[S,w.island]),Z=t.useCallback((function(){var e=F?"phone-island-sideview-close":"phone-island-sideview-open";o.eventDispatch(e,{})}),[F]),$=t.useCallback((function(){w.island.setIslandView("transfer"!==M?"transfer":"call"),F&&o.eventDispatch("phone-island-sideview-close",{}),o.eventDispatch("phone-island-call-transfer-opened",{})}),[M,F,w.island]),ee=t.useCallback((function(){o.eventDispatch("phone-island-conference-list-open",{}),w.island.setIslandView("transfer"!==M?"transfer":"call"),F&&o.eventDispatch("phone-island-sideview-close",{})}),[M,F,w.island]),te=t.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return w.island.setIslandView("waitingConference"),[4,n.startConference()];case 1:return e.sent(),[2]}}))}))}),[w.island]),ne=t.useCallback((function(){B?te():ee()}),[B,te,ee]),ie=t.useMemo((function(){return B&&"call"===M&&!S&&!W.current&&H}),[B,M,S,H]),oe=t.useMemo((function(){return B&&"call"===M&&S&&!G.current&&""!==U&&!H}),[B,M,S,U,H]);t.useEffect((function(){ie&&(w.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{}),W.current=!0)}),[ie,w.island]),t.useEffect((function(){oe&&(w.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{}),G.current=!0)}),[oe,w.island]);var le=t.useCallback((function(){var e=a.isWebRTC()?s.sendDTMF:c.sendPhysicalDTMF;e("*"),l.store.getState().player.audioPlayerPlaying||w.player.updateStartAudioPlayer({src:r.default,loop:!0}),setTimeout((function(){e("1"),w.player.stopAudioPlayer(),A&&setTimeout((function(){w.currentCall.updateTransferring(!1)}),500),o.eventDispatch("phone-island-call-transfer-canceled",{})}),500)}),[A,w.player,w.currentCall]);i.useEventListener("phone-island-call-keypad-open",X),i.useEventListener("phone-island-call-transfer-open",$),i.useEventListener("phone-island-call-transfer-cancel",le),i.useEventListener("phone-island-call-actions-open",(function(){w.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{})})),i.useEventListener("phone-island-call-actions-close",(function(){w.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{})}));var ae=t.useMemo((function(){return(null==L?void 0:L.isListen)||(null==L?void 0:L.isIntrude)||B&&!H?L.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":B&&!H?"pi-flex pi-items-center pi-justify-center pi-gap-4":"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"}),[L,B,H]);return g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:ae},!z&&g.default.createElement(T,{active:_,onClick:Q,tooltipId:"tooltip-pause",tooltipContent:q(_?"Tooltip.Play":"Tooltip.Pause"),icon:p.faPause,activeIcon:p.faPlay}),!(null==L?void 0:L.isListen)&&g.default.createElement(T,{active:I,onClick:J,tooltipId:"tooltip-mute",tooltipContent:q(I?"Tooltip.Unmute":"Tooltip.Mute"),icon:p.faMicrophone,activeIcon:p.faMicrophoneSlash}),!K&&g.default.createElement(h.TransferButton,null),!z&&!K&&g.default.createElement(u.Button,{active:S,variant:"transparent",onClick:Y,"data-tooltip-id":"tooltip-expand","data-tooltip-content":q(S?"Tooltip.Collapse":"Tooltip.Expand")},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S?p.faAngleUp:p.faAngleDown}))),S&&g.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"},g.default.createElement(T,{active:"keypad"===M,onClick:X,tooltipId:"tooltip-keyboard",tooltipContent:q("Tooltip.Keyboard"),icon:m.faGridRound}),g.default.createElement(T,{active:D,onClick:n.parkCurrentCall,tooltipId:"tooltip-park",tooltipContent:q("Tooltip.Park"),icon:p.faSquareParking}),(null===(y=null===(k=null===(E=null===(j=null==O?void 0:O.macro_permissions)||void 0===j?void 0:j.settings)||void 0===E?void 0:E.permissions)||void 0===k?void 0:k.conference)||void 0===y?void 0:y.value)&&g.default.createElement(u.Button,{"data-stop-propagation":!0,variant:"default",onClick:ne,"data-tooltip-id":"tooltip-conference","data-tooltip-content":B?q("Tooltip.Conference")||"":q("Tooltip.Add user to conference")||""},g.default.createElement(d.FontAwesomeIcon,{icon:B?p.faPlus:p.faUserPlus,className:"pi-h-6 pi-w-6"})),g.default.createElement(u.Button,{variant:"default",onClick:Z,"data-tooltip-id":"tooltip-sideView","data-tooltip-content":q("Tooltip.Other actions")||""},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:F?m.faClose:m.faOpen}))),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-transfer",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-pause",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-mute",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-expand",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-keyboard",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-conference",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-park",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-sideView",place:"left"}))}));exports.default=E;
2
2
  //# sourceMappingURL=Actions.js.map