@nethesis/phone-island 0.7.78 → 0.7.80

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 (239) hide show
  1. package/dist/App.d.ts +1 -0
  2. package/dist/App.js +1 -1
  3. package/dist/App.js.map +1 -1
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
  5. package/dist/_virtual/floating-ui.dom.esm.js +2 -0
  6. package/dist/_virtual/floating-ui.dom.esm.js.map +1 -0
  7. package/dist/_virtual/index.js +1 -1
  8. package/dist/_virtual/index3.js +1 -1
  9. package/dist/_virtual/index4.js +1 -1
  10. package/dist/_virtual/index5.js +1 -1
  11. package/dist/_virtual/index6.js +1 -1
  12. package/dist/_virtual/index8.js +1 -1
  13. package/dist/_virtual/index9.js +2 -0
  14. package/dist/_virtual/index9.js.map +1 -0
  15. package/dist/_virtual/react-tooltip.min.cjs.js +2 -0
  16. package/dist/_virtual/react-tooltip.min.cjs.js.map +1 -0
  17. package/dist/components/Button.js +1 -1
  18. package/dist/components/Button.js.map +1 -1
  19. package/dist/components/CallView/Actions.js +1 -1
  20. package/dist/components/CallView/Actions.js.map +1 -1
  21. package/dist/components/CallView/Avatar.js +1 -1
  22. package/dist/components/CallView/Avatar.js.map +1 -1
  23. package/dist/components/CallView/BackCall.js +1 -1
  24. package/dist/components/CallView/BackCall.js.map +1 -1
  25. package/dist/components/CallView/DisplayName.js +1 -1
  26. package/dist/components/CallView/DisplayName.js.map +1 -1
  27. package/dist/components/CallView/index.js +1 -1
  28. package/dist/components/CallView/index.js.map +1 -1
  29. package/dist/components/Events.d.ts +1 -0
  30. package/dist/components/Events.js +1 -1
  31. package/dist/components/Events.js.map +1 -1
  32. package/dist/components/Hangup.d.ts +1 -0
  33. package/dist/components/Hangup.js +1 -1
  34. package/dist/components/Hangup.js.map +1 -1
  35. package/dist/components/Island.js +1 -1
  36. package/dist/components/Island.js.map +1 -1
  37. package/dist/components/KeypadView/index.js +1 -1
  38. package/dist/components/KeypadView/index.js.map +1 -1
  39. package/dist/components/Socket.js +1 -1
  40. package/dist/components/Socket.js.map +1 -1
  41. package/dist/components/TransferView/ListAvatar.d.ts +2 -2
  42. package/dist/components/TransferView/ListAvatar.js +1 -1
  43. package/dist/components/TransferView/ListAvatar.js.map +1 -1
  44. package/dist/components/TransferView/TransferActions.js +1 -1
  45. package/dist/components/TransferView/TransferActions.js.map +1 -1
  46. package/dist/components/TransferView/TransferList.js +1 -1
  47. package/dist/components/TransferView/TransferList.js.map +1 -1
  48. package/dist/components/WebRTC.d.ts +2 -0
  49. package/dist/components/WebRTC.js +1 -1
  50. package/dist/components/WebRTC.js.map +1 -1
  51. package/dist/events/CallEvents.d.ts +3 -1
  52. package/dist/events/CallEvents.js +1 -1
  53. package/dist/events/CallEvents.js.map +1 -1
  54. package/dist/index.css +1 -1
  55. package/dist/lib/devices/devices.js +1 -1
  56. package/dist/lib/phone/call.d.ts +2 -2
  57. package/dist/lib/phone/call.js +1 -1
  58. package/dist/lib/phone/call.js.map +1 -1
  59. package/dist/lib/webrtc/messages.d.ts +6 -1
  60. package/dist/lib/webrtc/messages.js +1 -1
  61. package/dist/lib/webrtc/messages.js.map +1 -1
  62. package/dist/models/currentCall.d.ts +67 -0
  63. package/dist/models/currentCall.js +1 -1
  64. package/dist/models/currentCall.js.map +1 -1
  65. package/dist/models/motions.js +1 -1
  66. package/dist/models/motions.js.map +1 -1
  67. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +1 -1
  68. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -1
  69. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs.js +2 -0
  70. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs.js.map +1 -0
  71. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +2 -0
  72. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js.map +1 -0
  73. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
  74. package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js +1 -1
  75. package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js.map +1 -1
  76. package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js +1 -1
  77. package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js.map +1 -1
  78. package/dist/node_modules/@rematch/core/dist/core.esm.js +1 -1
  79. package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -1
  80. package/dist/node_modules/bowser/es5.js +1 -1
  81. package/dist/node_modules/bowser/es5.js.map +1 -1
  82. package/dist/node_modules/classnames/index.js +7 -0
  83. package/dist/node_modules/classnames/index.js.map +1 -0
  84. package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js +1 -1
  85. package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js.map +1 -1
  86. package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js +1 -1
  87. package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js.map +1 -1
  88. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +1 -1
  89. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -1
  90. package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js +1 -1
  91. package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js.map +1 -1
  92. package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js +1 -1
  93. package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js.map +1 -1
  94. package/dist/node_modules/engine.io-client/build/esm/socket.js +1 -1
  95. package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -1
  96. package/dist/node_modules/engine.io-client/build/esm/transport.js +1 -1
  97. package/dist/node_modules/engine.io-client/build/esm/transport.js.map +1 -1
  98. package/dist/node_modules/engine.io-client/build/esm/transports/index.js +1 -1
  99. package/dist/node_modules/engine.io-client/build/esm/transports/index.js.map +1 -1
  100. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +1 -1
  101. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -1
  102. package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js +1 -1
  103. package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js.map +1 -1
  104. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +1 -1
  105. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -1
  106. package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js +1 -1
  107. package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js.map +1 -1
  108. package/dist/node_modules/engine.io-client/build/esm/util.js +1 -1
  109. package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -1
  110. package/dist/node_modules/engine.io-parser/build/esm/commons.js +1 -1
  111. package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -1
  112. package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +1 -1
  113. package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -1
  114. package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +1 -1
  115. package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -1
  116. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +1 -1
  117. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -1
  118. package/dist/node_modules/engine.io-parser/build/esm/index.js +1 -1
  119. package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -1
  120. package/dist/node_modules/framer-motion/dist/framer-motion.js +1 -1
  121. package/dist/node_modules/framer-motion/dist/framer-motion.js.map +1 -1
  122. package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
  123. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +9 -1
  124. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  125. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +9 -1
  126. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  127. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  128. package/dist/node_modules/immer/dist/immer.esm.mjs.js +1 -1
  129. package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -1
  130. package/dist/node_modules/js-base64/base64.mjs.js +1 -1
  131. package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
  132. package/dist/node_modules/mic-check/lib/index.js +1 -1
  133. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +1 -1
  134. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -1
  135. package/dist/node_modules/moment/moment.js +2 -2
  136. package/dist/node_modules/moment/moment.js.map +1 -1
  137. package/dist/node_modules/prop-types/checkPropTypes.js +1 -1
  138. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
  139. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +1 -1
  140. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  141. package/dist/node_modules/prop-types/index.js +1 -1
  142. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +9 -1
  143. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  144. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +9 -1
  145. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  146. package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
  147. package/dist/node_modules/react-is/cjs/react-is.development.js +9 -1
  148. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  149. package/dist/node_modules/react-is/cjs/react-is.production.min.js +9 -1
  150. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  151. package/dist/node_modules/react-is/index.js +1 -1
  152. package/dist/node_modules/react-is/index.js.map +1 -1
  153. package/dist/node_modules/react-moment/dist/index.js +2 -2
  154. package/dist/node_modules/react-moment/dist/index.js.map +1 -1
  155. package/dist/node_modules/react-redux/es/components/Context.js +1 -1
  156. package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
  157. package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
  158. package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
  159. package/dist/node_modules/react-redux/es/hooks/useDispatch.js +1 -1
  160. package/dist/node_modules/react-redux/es/hooks/useDispatch.js.map +1 -1
  161. package/dist/node_modules/react-redux/es/hooks/useReduxContext.js +1 -1
  162. package/dist/node_modules/react-redux/es/hooks/useReduxContext.js.map +1 -1
  163. package/dist/node_modules/react-redux/es/hooks/useSelector.js +1 -1
  164. package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
  165. package/dist/node_modules/react-redux/es/hooks/useStore.js +1 -1
  166. package/dist/node_modules/react-redux/es/hooks/useStore.js.map +1 -1
  167. package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
  168. package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
  169. package/dist/node_modules/react-redux/es/utils/batch.js +1 -1
  170. package/dist/node_modules/react-redux/es/utils/batch.js.map +1 -1
  171. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
  172. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
  173. package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js +1 -1
  174. package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -1
  175. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js +10 -1
  176. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  177. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js +10 -1
  178. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  179. package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
  180. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.cjs.js +2 -0
  181. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.cjs.js.map +1 -0
  182. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.css.js +2 -0
  183. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.css.js.map +1 -0
  184. package/dist/node_modules/redux/es/redux.js +1 -1
  185. package/dist/node_modules/redux/es/redux.js.map +1 -1
  186. package/dist/node_modules/sdp/sdp.js +1 -1
  187. package/dist/node_modules/sdp/sdp.js.map +1 -1
  188. package/dist/node_modules/socket.io-client/build/esm/index.js +1 -1
  189. package/dist/node_modules/socket.io-client/build/esm/index.js.map +1 -1
  190. package/dist/node_modules/socket.io-client/build/esm/manager.js +1 -1
  191. package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -1
  192. package/dist/node_modules/socket.io-client/build/esm/socket.js +1 -1
  193. package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -1
  194. package/dist/node_modules/socket.io-client/build/esm/url.js +1 -1
  195. package/dist/node_modules/socket.io-client/build/esm/url.js.map +1 -1
  196. package/dist/node_modules/socket.io-parser/build/esm/binary.js +1 -1
  197. package/dist/node_modules/socket.io-parser/build/esm/binary.js.map +1 -1
  198. package/dist/node_modules/socket.io-parser/build/esm/index.js +1 -1
  199. package/dist/node_modules/socket.io-parser/build/esm/index.js.map +1 -1
  200. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +1 -1
  201. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -1
  202. package/dist/node_modules/style-inject/dist/style-inject.es.js +2 -0
  203. package/dist/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  204. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
  205. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
  206. package/dist/node_modules/tslib/tslib.es6.js +1 -1
  207. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  208. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +1 -1
  209. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +1 -1
  210. package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
  211. package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js +1 -1
  212. package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js.map +1 -1
  213. package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js +1 -1
  214. package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js.map +1 -1
  215. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +1 -1
  216. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -1
  217. package/dist/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js +1 -1
  218. package/dist/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js.map +1 -1
  219. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
  220. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
  221. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
  222. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
  223. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
  224. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
  225. package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js +1 -1
  226. package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js.map +1 -1
  227. package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js +1 -1
  228. package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js.map +1 -1
  229. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +1 -1
  230. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -1
  231. package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
  232. package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
  233. package/dist/services/astproxy.js +1 -1
  234. package/dist/services/astproxy.js.map +1 -1
  235. package/dist/styles/Island.styles.js +1 -1
  236. package/dist/styles/Island.styles.js.map +1 -1
  237. package/package.json +3 -2
  238. package/dist/node_modules/engine.io-client/build/esm/index.js +0 -2
  239. package/dist/node_modules/engine.io-client/build/esm/index.js.map +0 -1
package/dist/App.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type FC } from 'react';
2
+ import 'react-tooltip/dist/react-tooltip.css';
2
3
  interface PhoneIslandProps {
3
4
  dataConfig: string;
4
5
  showAlways?: boolean;
package/dist/App.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./components/Events.js"),s=require("./components/Socket.js"),r=require("./components/WebRTC.js"),o=require("./components/Island.js"),n=require("./components/RestAPI.js");require("./node_modules/react-redux/es/index.js");var a=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/framer-motion/dist/framer-motion.js");var u=require("./node_modules/js-base64/base64.mjs.js"),d=require("./node_modules/react-redux/es/components/Provider.js");function l(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 i=l(e),m=function(e){var l=e.dataConfig,m=e.showAlways,c=void 0!==m&&m,f=u.Base64.atob(l||"").split(":"),j=f[0],p=f[1],q=f[2],x=f[3],h=f[4];return i.default.createElement(i.default.Fragment,null,i.default.createElement(d.default,{store:a.store},i.default.createElement(r.WebRTC,{hostName:j,sipExten:x,sipSecret:h},i.default.createElement(n.RestAPI,{hostName:j,username:p,authToken:q},i.default.createElement(s.Socket,{hostName:j,username:p,authToken:q},i.default.createElement(t.Events,null,i.default.createElement(o.Island,{showAlways:c})))))))};m.displayName="PhoneIsland",exports.PhoneIsland=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./components/Events.js"),s=require("./components/Socket.js"),r=require("./components/WebRTC.js"),o=require("./components/Island.js"),n=require("./components/RestAPI.js");require("./node_modules/react-redux/es/index.js");var a=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/framer-motion/dist/framer-motion.js");var u=require("./node_modules/js-base64/base64.mjs.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var d=require("./node_modules/react-redux/es/components/Provider.js");function i(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 l=i(e),m=function(e){var i=e.dataConfig,m=e.showAlways,c=void 0!==m&&m,f=u.Base64.atob(i||"").split(":"),j=f[0],p=f[1],q=f[2],x=f[3],_=f[4],h=f[5],v=f[6];return l.default.createElement(l.default.Fragment,null,l.default.createElement(d.default,{store:a.store},l.default.createElement(r.WebRTC,{hostName:j,sipExten:x,sipSecret:_,sipHost:h,sipPort:v},l.default.createElement(n.RestAPI,{hostName:j,username:p,authToken:q},l.default.createElement(s.Socket,{hostName:j,username:p,authToken:q},l.default.createElement(t.Events,{sipHost:h},l.default.createElement(o.Island,{showAlways:c})))))))};m.displayName="PhoneIsland",exports.PhoneIsland=m;
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 } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\n\ninterface PhoneIslandProps {\n dataConfig: string\n showAlways?: boolean\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({ dataConfig, showAlways = false }) => {\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\n return (\n <>\n <Provider store={store}>\n <WebRTC hostName={HOST_NAME} sipExten={SIP_EXTEN} sipSecret={SIP_SECRET}>\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Events>\n <Island showAlways={showAlways} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","showAlways","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","React","createElement","Fragment","Provider","store","WebRTC","hostName","sipExten","sipSecret","RestAPI","username","authToken","Socket","Events","Island","displayName"],"mappings":"84BAWaA,EAAoC,SAACC,GAAE,IAAAC,eAAYC,EAAAF,EAAAG,WAAAA,OAAU,IAAAD,GAAQA,EAC1EE,EAAmBC,EAAMA,OAACC,KAAKL,GAAc,IAAIM,MAAM,KACvDC,EAAoBJ,EAAO,GAC3BK,EAAmBL,EAAO,GAC1BM,EAAqBN,EAAO,GAC5BO,EAAoBP,EAAO,GAC3BQ,EAAqBR,EAAO,GAElC,OACES,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAACE,EAAAA,QAAQ,CAACC,MAAOA,EAAAA,OACfJ,UAAAC,cAACI,EAAMA,OAAA,CAACC,SAAUX,EAAWY,SAAUT,EAAWU,UAAWT,GAC3DC,UAAAC,cAACQ,EAAOA,QAAA,CAACH,SAAUX,EAAWe,SAAUd,EAAUe,UAAWd,GAC3DG,UAAAC,cAACW,EAAMA,OAAA,CAACN,SAAUX,EAAWe,SAAUd,EAAUe,UAAWd,GAC1DG,UAAAC,cAACY,EAAAA,OAAM,KACLb,UAAAC,cAACa,EAAMA,OAAA,CAACxB,WAAYA,SAQpC,EAEAJ,EAAY6B,YAAc"}
1
+ {"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\n\nimport 'react-tooltip/dist/react-tooltip.css'\n\ninterface PhoneIslandProps {\n dataConfig: string\n showAlways?: boolean\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({ dataConfig, showAlways = false }) => {\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 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 >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Events sipHost={SIP_HOST}>\n <Island showAlways={showAlways} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","showAlways","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","SIP_HOST","SIP_PORT","React","createElement","Fragment","Provider","store","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","RestAPI","username","authToken","Socket","Events","Island","displayName"],"mappings":"w9BAaaA,EAAoC,SAACC,GAAE,IAAAC,eAAYC,EAAAF,EAAAG,WAAAA,OAAU,IAAAD,GAAQA,EAC1EE,EAAmBC,EAAMA,OAACC,KAAKL,GAAc,IAAIM,MAAM,KACvDC,EAAoBJ,EAAO,GAC3BK,EAAmBL,EAAO,GAC1BM,EAAqBN,EAAO,GAC5BO,EAAoBP,EAAO,GAC3BQ,EAAqBR,EAAO,GAC5BS,EAAmBT,EAAO,GAC1BU,EAAmBV,EAAO,GAEhC,OACEW,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAACE,EAAAA,QAAQ,CAACC,MAAOA,EAAAA,OACfJ,EAAAA,QAACC,cAAAI,EAAAA,QACCC,SAAUb,EACVc,SAAUX,EACVY,UAAWX,EACXY,QAASX,EACTY,QAASX,GAETC,UAAAC,cAACU,EAAOA,QAAA,CAACL,SAAUb,EAAWmB,SAAUlB,EAAUmB,UAAWlB,GAC3DK,UAAAC,cAACa,EAAMA,OAAA,CAACR,SAAUb,EAAWmB,SAAUlB,EAAUmB,UAAWlB,GAC1DK,EAAAA,QAAAC,cAACc,EAAAA,OAAM,CAACN,QAASX,GACfE,UAAAC,cAACe,EAAMA,OAAA,CAAC5B,WAAYA,SAQpC,EAEAJ,EAAYiC,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";function t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},o.apply(this,arguments)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function a(t,e,r){return a=c()?Reflect.construct.bind():function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&u(o,r.prototype),o},a.apply(null,arguments)}function f(t){return-1!==Function.toString.call(t).indexOf("[native code]")}function l(t){var e="function"==typeof Map?new Map:void 0;return l=function(t){if(null===t||!f(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return a(t,arguments,i(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,t)},l(t)}function p(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function y(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return s(t)}function b(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=i(t)););return t}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=b(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},d.apply(this,arguments)}function h(t){if(Array.isArray(t))return x(t)}function O(t){if(Array.isArray(t))return t}function v(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function m(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i=[],u=!0,c=!1;try{for(r=r.call(t);!(u=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);u=!0);}catch(t){c=!0,o=t}finally{try{u||null==r.return||r.return()}finally{if(c)throw o}}return i}}function j(t,e){if(t){if("string"==typeof t)return x(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(t,e):void 0}}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function w(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.arrayLikeToArray=x,exports.arrayWithHoles=O,exports.arrayWithoutHoles=h,exports.assertThisInitialized=s,exports.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},exports.construct=a,exports.createClass=function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t},exports.createForOfIteratorHelper=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=j(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,i=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}},exports.createSuper=function(t){var e=c();return function(){var r,n=i(t);if(e){var o=i(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return y(this,r)}},exports.defineProperty=n,exports.extends=o,exports.get=d,exports.getPrototypeOf=i,exports.inherits=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&u(t,e)},exports.isNativeFunction=f,exports.isNativeReflectConstruct=c,exports.iterableToArray=v,exports.iterableToArrayLimit=m,exports.nonIterableRest=g,exports.nonIterableSpread=w,exports.objectDestructuringEmpty=function(t){if(null==t)throw new TypeError("Cannot destructure "+t)},exports.objectSpread2=function(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?t(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e},exports.objectWithoutProperties=function(t,e){if(null==t)return{};var r,n,o=p(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o},exports.objectWithoutPropertiesLoose=p,exports.possibleConstructorReturn=y,exports.setPrototypeOf=u,exports.slicedToArray=function(t,e){return O(t)||m(t,e)||j(t,e)||g()},exports.superPropBase=b,exports.toArray=function(t){return O(t)||v(t)||j(t)||g()},exports.toConsumableArray=function(t){return h(t)||v(t)||j(t)||w()},exports.typeof=e,exports.unsupportedIterableToArray=j,exports.wrapNativeSuper=l;
1
+ "use strict";function t(r){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(r)}function r(t,r){if(t){if("string"==typeof t)return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}function e(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}Object.defineProperty(exports,"__esModule",{value:!0}),exports.arrayLikeToArray=e,exports.createForOfIteratorHelper=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=r(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var o=0,u=function(){};return{s:u,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,f=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){f=!0,a=t},f:function(){try{i||null==n.return||n.return()}finally{if(f)throw a}}}},exports.typeof=t,exports.unsupportedIterableToArray=r;
2
2
  //# sourceMappingURL=_rollupPluginBabelHelpers.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./_commonjsHelpers.js"),s=require("../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js"),o=e.getAugmentedNamespace(s);exports.default=o;
2
+ //# sourceMappingURL=floating-ui.dom.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-ui.dom.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.classnames={exports:{}};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.dist={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
2
2
  //# sourceMappingURL=index3.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.shim={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.dist={exports:{}};
2
2
  //# sourceMappingURL=index4.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.shim={exports:{}};
2
2
  //# sourceMappingURL=index5.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
2
2
  //# sourceMappingURL=index6.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.__exports={};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
2
2
  //# sourceMappingURL=index8.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.__exports={};
2
+ //# sourceMappingURL=index9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.__exports={};
2
+ //# sourceMappingURL=react-tooltip.min.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-tooltip.min.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(r);exports.Button=function(r){var a=r.children,n=r.variant,o=r.active,s=void 0!==o&&o,p=r.className,c=void 0===p?"":p,u=e.__rest(r,["children","variant","active","className"]),g={base:"pi-flex pi-font-sans pi-font-light 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-75 pi-text-white pi-border pi-border-transparent focus:pi-ring-offset-black pi-rounded-full pi-text-sm pi-leading-4 pi-h-12 pi-w-12 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-red-600 hover:pi-bg-red-700 focus:pi-ring-red-500",green:"pi-bg-green-600 hover:pi-bg-green-700 focus:pi-ring-green-500",default:"hover:pi-bg-gray-500 focus:pi-ring-gray-500",neutral:"pi-bg-transparent hover:pi-bg-gray-500 hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0",transparent:"pi-bg-transparent hover:pi-bg-gray-500 focus:pi-ring-gray-500"},background:{base:{default:"pi-bg-gray-700"},active:{default:"pi-bg-gray-500"}}};return t.default.createElement(t.default.Fragment,null,t.default.createElement("button",e.__assign({"data-stop-propagation":!0,className:i.classNames(s&&g.background.active[n]?g.background.active[n]:g.background.base[n]&&g.background.base[n],g.base,n&&g.variant[n],c&&c)},u),a))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(r);exports.Button=function(r){var a=r.children,n=r.variant,o=r.active,s=void 0!==o&&o,p=r.className,c=void 0===p?"":p,u=e.__rest(r,["children","variant","active","className"]),d={base:"pi-flex pi-font-sans pi-font-light 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-75 pi-text-white pi-border pi-border-transparent focus:pi-ring-offset-black pi-rounded-full pi-text-sm pi-leading-4 pi-h-12 pi-w-12 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-red-600 enabled:hover:pi-bg-red-700 focus:pi-ring-red-500",green:"pi-bg-green-600 enabled:hover:pi-bg-green-700 focus:pi-ring-green-500",default:"enabled:hover:pi-bg-gray-500 focus:pi-ring-gray-500",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",transparent:"pi-bg-transparent enabled:hover:pi-bg-gray-500 focus:pi-ring-gray-500"},background:{base:{default:"pi-bg-gray-700"},active:{default:"pi-bg-gray-500"}}};return t.default.createElement(t.default.Fragment,null,t.default.createElement("button",e.__assign({"data-stop-propagation":!0,className:i.classNames(s&&d.background.active[n]?d.background.active[n]:d.background.base[n]&&d.background.base[n],d.base,n&&d.variant[n],c&&c)},u),a))};
2
2
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2022 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: 'red' | 'green' | 'default' | 'neutral' | 'transparent'\n active?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-font-sans pi-font-light 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-75 pi-text-white pi-border pi-border-transparent focus:pi-ring-offset-black pi-rounded-full pi-text-sm pi-leading-4 pi-h-12 pi-w-12 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-red-600 hover:pi-bg-red-700 focus:pi-ring-red-500',\n green: 'pi-bg-green-600 hover:pi-bg-green-700 focus:pi-ring-green-500',\n default: 'hover:pi-bg-gray-500 focus:pi-ring-gray-500',\n neutral:\n 'pi-bg-transparent hover:pi-bg-gray-500 hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0',\n transparent: 'pi-bg-transparent hover:pi-bg-gray-500 focus:pi-ring-gray-500',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700',\n },\n active: {\n default: 'pi-bg-gray-500',\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 )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","className","props","__rest","classes","base","red","green","default","neutral","transparent","background","React","createElement","Fragment","__assign","classNames"],"mappings":"kSAYuC,SAACA,GACtC,IAAAC,aACAC,YACAC,EAAAH,EAAAI,OAAAA,OAAS,IAAAD,KACTE,EAAAL,EAAAM,UAAAA,OAAY,IAAAD,EAAA,KACTE,EALmCC,EAAAA,OAAAR,EAAA,CAAA,WAAA,UAAA,SAAA,cAOhCS,EAAU,CACdC,KAAM,sZACNR,QAAS,CACPS,IAAK,0DACLC,MAAO,gEACPC,QAAS,8CACTC,QACE,+GACFC,YAAa,iEAEfC,WAAY,CACVN,KAAM,CACJG,QAAS,kBAEXT,OAAQ,CACNS,QAAS,oBAKf,OACEI,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBd,UAAWe,EAAAA,WACTjB,GAAUK,EAAQO,WAAWZ,OAAOF,GAChCO,EAAQO,WAAWZ,OAAOF,GAC1BO,EAAQO,WAAWN,KAAKR,IAAYO,EAAQO,WAAWN,KAAKR,GAChEO,EAAQC,KACRR,GAAWO,EAAQP,QAAQA,GAC3BI,GAAaA,IAEXC,GAEHN,GAIT"}
1
+ {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2022 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: 'red' | 'green' | 'default' | 'neutral' | 'transparent'\n active?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-font-sans pi-font-light 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-75 pi-text-white pi-border pi-border-transparent focus:pi-ring-offset-black pi-rounded-full pi-text-sm pi-leading-4 pi-h-12 pi-w-12 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-red-600 enabled:hover:pi-bg-red-700 focus:pi-ring-red-500',\n green: 'pi-bg-green-600 enabled:hover:pi-bg-green-700 focus:pi-ring-green-500',\n default: 'enabled:hover:pi-bg-gray-500 focus:pi-ring-gray-500',\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',\n transparent: 'pi-bg-transparent enabled:hover:pi-bg-gray-500 focus:pi-ring-gray-500',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700',\n },\n active: {\n default: 'pi-bg-gray-500',\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 )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","className","props","__rest","classes","base","red","green","default","neutral","transparent","background","React","createElement","Fragment","__assign","classNames"],"mappings":"kSAYuC,SAACA,GACtC,IAAAC,aACAC,YACAC,EAAAH,EAAAI,OAAAA,OAAS,IAAAD,KACTE,EAAAL,EAAAM,UAAAA,OAAY,IAAAD,EAAA,KACTE,EALmCC,EAAAA,OAAAR,EAAA,CAAA,WAAA,UAAA,SAAA,cAOhCS,EAAU,CACdC,KAAM,sZACNR,QAAS,CACPS,IAAK,kEACLC,MAAO,wEACPC,QAAS,sDACTC,QACE,+HACFC,YAAa,yEAEfC,WAAY,CACVN,KAAM,CACJG,QAAS,kBAEXT,OAAQ,CACNS,QAAS,oBAKf,OACEI,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBd,UAAWe,EAAAA,WACTjB,GAAUK,EAAQO,WAAWZ,OAAOF,GAChCO,EAAQO,WAAWZ,OAAOF,GAC1BO,EAAQO,WAAWN,KAAKR,IAAYO,EAAQO,WAAWN,KAAKR,GAChEO,EAAQC,KACRR,GAAWO,EAAQP,QAAQA,GAC3BI,GAAaA,IAEXC,GAEHN,GAIT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js"),n=require("../../static/icons/PhoneKeypadLight.js"),a=require("../../static/icons/PhoneKeypadSolid.js");require("../../node_modules/react-redux/es/index.js");var s=require("../../store/index.js");require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js");var i=require("../../lib/webrtc/messages.js");require("../../node_modules/mic-check/lib/index.js");var o=require("../../static/outgoing_ringtone.js");require("../Island.js");var l=require("../Button.js"),u=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),c=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../TransferView/TransferActions.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.paused,q=e.muted,v=f.useSelector((function(e){return e.island})).view,w=f.useSelector((function(e){return e.currentCall})).transferring,x=m.useDispatch();return j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},j.default.createElement(l.Button,{variant:"default",active:!!p,onClick:function(){return p?r.unpauseCurrentCall():r.pauseCurrentCall()}},p?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faPause})),j.default.createElement(l.Button,{variant:"default",active:!!q,onClick:function(){return q?r.unmuteCurrentCall():r.muteCurrentCall()}},q?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faMicrophone})),j.default.createElement(l.Button,{active:w,onClick:w?function(){i.sendDTMF("*"),s.store.getState().player.audioPlayerPlaying||x.player.updateStartAudioPlayer({src:o.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),x.player.stopAudioPlayer()}),500)}:function(){x.island.setIslandView("transfer"!==v?"transfer":"call")},variant:"default"},w?j.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faArrowDownArrowUp})),j.default.createElement(l.Button,{active:"keypad"===v,variant:"default",onClick:function(){x.island.setIslandView("keypad"!==v?"keypad":"call")}},"keypad"===v?j.default.createElement(a.default,null):j.default.createElement(n.default,null))),w&&j.default.createElement(d.TransferActions,null))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js"),a=require("../../static/icons/PhoneKeypadLight.js"),n=require("../../static/icons/PhoneKeypadSolid.js");require("../../node_modules/react-redux/es/index.js");var o=require("../../store/index.js");require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js");var i=require("../../lib/webrtc/messages.js");require("../../node_modules/mic-check/lib/index.js");var l=require("../../static/outgoing_ringtone.js");require("../Island.js");var s=require("../Button.js"),u=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),c=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../TransferView/TransferActions.js"),f=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js"),m=require("../../node_modules/react-redux/es/hooks/useSelector.js"),p=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var q=j(e);exports.default=function(){var e=m.useSelector((function(e){return e.currentCall})),j=e.paused,v=e.muted,y=m.useSelector((function(e){return e.island})).view,w=m.useSelector((function(e){return e.currentCall})).transferring,x=p.useDispatch();return q.default.createElement(q.default.Fragment,null,q.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"},q.default.createElement(s.Button,{variant:"default",active:!!j,onClick:function(){return j?r.unpauseCurrentCall():r.pauseCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":j?"Play":"Pause"},j?q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faPause})),q.default.createElement(s.Button,{variant:"default",active:!!v,onClick:function(){return v?r.unmuteCurrentCall():r.muteCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":v?"Unmute":"Mute"},v?q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faMicrophone})),q.default.createElement(s.Button,{active:w,onClick:w?function(){i.sendDTMF("*"),o.store.getState().player.audioPlayerPlaying||x.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),x.player.stopAudioPlayer(),w&&setTimeout((function(){x.currentCall.updateTransferring(!1)}),500)}),500)}:function(){x.island.setIslandView("transfer"!==y?"transfer":"call"),r.pauseCurrentCall()},variant:"default","data-tooltip-id":"tooltip","data-tooltip-content":w?"Cancel transfer":"Transfer"},w?q.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faArrowDownArrowUp})),q.default.createElement(s.Button,{active:"keypad"===y,variant:"default",onClick:function(){x.island.setIslandView("keypad"!==y?"keypad":"call")},"data-tooltip-id":"tooltip","data-tooltip-content":"Keyboard"},"keypad"===y?q.default.createElement(n.default,null):q.default.createElement(a.default,null))),w&&q.default.createElement(d.TransferActions,null),q.default.createElement(f.Tooltip,{className:"pi-z-20",id:"tooltip",place:"bottom"}))};
2
2
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n} from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen and view from island store\n const { view } = useSelector((state: RootState) => state.island)\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n }, 500)\n }\n\n return (\n <>\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPauseRegular} />\n )}\n </Button>\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophoneLight} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faArrowDownArrowUp} />\n )}\n </Button>\n <Button active={view === 'keypad'} variant='default' onClick={openKeypad}>\n {view === 'keypad' ? <PhoneKeypadSolid /> : <PhoneKeypadLight />}\n </Button>\n </div>\n {transferring && <TransferActions />}\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","view","island","transferring","dispatch","useDispatch","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPauseRegular","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophoneLight","sendDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","setIslandView","faArrowDownUpAcrossLine","faArrowDownArrowUp","PhoneKeypadSolid","PhoneKeypadLight","TransferActions"],"mappings":"uwCA+BoB,WAEZ,IAAAA,EAAoBC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAArEC,WAAQC,UAGRC,EAASL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,eACjDC,EAAiBP,eAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAE3DM,EAAWC,EAAAA,cA2BjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,sHACbH,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQb,EACRc,QAAS,WAAM,OAACd,EAASe,EAAAA,qBAAuBC,EAAAA,qBAE/ChB,EACCO,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMC,EAAAA,SAEjCb,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAME,EAAAA,WAGrCd,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQZ,EACRa,QAAS,WAAM,OAACb,EAAQqB,EAAAA,oBAAsBC,EAAAA,oBAE7CtB,EACCM,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMK,EAAAA,oBAEjCjB,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMM,EAAAA,gBAGrClB,EAAC,QAAAC,cAAAG,EAAMA,OACL,CAAAE,OAAQT,EACRU,QAASV,EA3CjB,WACEsB,EAAQA,SAAC,KACsBC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDzB,EAASwB,OAAOE,uBAAuB,CACrCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACTT,EAAQA,SAAC,KACTrB,EAASwB,OAAOO,iBACjB,GAAE,IACJ,EAnBD,WACE/B,EAASF,OAAOkC,cAAuB,aAATnC,EAAsB,WAAa,OAClE,EA+COU,QAAQ,WAEPR,EACCG,EAAAA,QAACC,cAAAS,EAAeA,gBAAC,CAAAP,UAAU,GAAGQ,KAAK,KAAKC,KAAMmB,EAAAA,0BAE9C/B,EAAC,QAAAC,cAAAS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMoB,EAAAA,sBAGrChC,EAAAA,QAAAC,cAACG,SAAM,CAACE,OAAiB,WAATX,EAAmBU,QAAQ,UAAUE,QA7D3D,WACET,EAASF,OAAOkC,cAAuB,WAATnC,EAAoB,SAAW,OAC9D,GA4DiB,WAATA,EAAoBK,wBAACiC,EAAAA,QAAgB,MAAMjC,EAAA,QAAAC,cAACiC,EAAAA,QAAgB,QAGhErC,GAAgBG,EAAAA,QAACC,cAAAkC,EAAAA,gBAAkB,MAG1C"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n} from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen and view from island store\n const { view } = useSelector((state: RootState) => state.island)\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Pause the call\n pauseCurrentCall()\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n // The workarround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n }, 500)\n }\n\n return (\n <>\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={paused ? 'Play' : 'Pause'}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPauseRegular} />\n )}\n </Button>\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={muted ? 'Unmute' : 'Mute'}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophoneLight} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip'\n data-tooltip-content={transferring ? 'Cancel transfer' : 'Transfer'}\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faArrowDownArrowUp} />\n )}\n </Button>\n <Button\n active={view === 'keypad'}\n variant='default'\n onClick={openKeypad}\n data-tooltip-id='tooltip'\n data-tooltip-content='Keyboard'\n >\n {view === 'keypad' ? <PhoneKeypadSolid /> : <PhoneKeypadLight />}\n </Button>\n </div>\n {transferring && <TransferActions />}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","view","island","transferring","dispatch","useDispatch","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPauseRegular","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophoneLight","sendDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","setIslandView","faArrowDownUpAcrossLine","faArrowDownArrowUp","PhoneKeypadSolid","PhoneKeypadLight","TransferActions","Tooltip","id","place"],"mappings":"m1CAgCoB,WAEZ,IAAAA,EAAoBC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAArEC,WAAQC,UAGRC,EAASL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,eACjDC,EAAiBP,eAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAE3DM,EAAWC,EAAAA,cAoCjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,sHACbH,UAAAC,cAACG,EAAAA,OACC,CAAAC,QAAQ,UACRC,SAAQb,EACRc,QAAS,WAAM,OAACd,EAASe,EAAAA,qBAAuBC,EAAAA,oBAAmB,kBACnD,UACM,uBAAAhB,EAAS,OAAS,SAEvCA,EACCO,UAACC,cAAAS,EAAAA,iBAAgBC,KAAK,KAAKC,KAAMC,EAAAA,SAEjCb,wBAACU,EAAAA,gBAAe,CAACC,KAAK,KAAKC,KAAME,aAGrCd,UAAAC,cAACG,EAAAA,OACC,CAAAC,QAAQ,UACRC,SAAQZ,EACRa,QAAS,WAAM,OAACb,EAAQqB,EAAAA,oBAAsBC,EAAAA,mBAAkB,kBAChD,UACM,uBAAAtB,EAAQ,SAAW,QAExCA,EACCM,UAACC,cAAAS,EAAAA,iBAAgBC,KAAK,KAAKC,KAAMK,EAAAA,oBAEjCjB,wBAACU,EAAAA,gBAAe,CAACC,KAAK,KAAKC,KAAMM,kBAGrClB,UAAAC,cAACG,EAAAA,OAAM,CACLE,OAAQT,EACRU,QAASV,EArDjB,WACEsB,EAAQA,SAAC,KACsBC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDzB,EAASwB,OAAOE,uBAAuB,CACrCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACTT,EAAQA,SAAC,KACTrB,EAASwB,OAAOO,kBAEZhC,GACF+B,YAAW,WACT9B,EAASN,YAAYsC,oBAAmB,EACzC,GAAE,IAEN,GAAE,IACJ,EA5BD,WAEEhC,EAASF,OAAOmC,cAAuB,aAATpC,EAAsB,WAAa,QAEjEc,EAAAA,kBACD,EAyDOJ,QAAQ,UAAS,kBACD,UACM,uBAAAR,EAAe,kBAAoB,YAExDA,EACCG,EAAC,QAAAC,cAAAS,EAAAA,iBAAgBP,UAAU,GAAGQ,KAAK,KAAKC,KAAMoB,4BAE9ChC,EAAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMqB,EAAAA,sBAGrCjC,EAAAA,QAAAC,cAACG,EAAAA,OACC,CAAAE,OAAiB,WAATX,EACRU,QAAQ,UACRE,QA/ER,WACET,EAASF,OAAOmC,cAAuB,WAATpC,EAAoB,SAAW,OAC9D,oBA8EuB,UAAS,uBACJ,YAEX,WAATA,EAAoBK,EAAC,QAAAC,cAAAiC,EAAgB,QAAG,MAAGlC,EAAA,QAAAC,cAACkC,UAAgB,QAGhEtC,GAAgBG,EAAC,QAAAC,cAAAmC,EAAAA,gBAAkB,MAEpCpC,EAAAA,QAAAC,cAACoC,UAAQ,CAAAlC,UAAU,UAAUmC,GAAG,UAAUC,MAAM,WAGtD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/framer-motion/dist/framer-motion.js"),require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/react-redux/es/hooks/useSelector.js"),t=require("../../_virtual/framer-motion.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(e),a={open:{width:"48px",height:"48px",borderRadius:"12px"},closed:{width:"24px",height:"24px",borderRadius:"6px"}};exports.default=function(){var e=r.useSelector((function(e){return e.currentCall})).username,i=r.useSelector((function(e){return e.avatars})).avatars,n=r.useSelector((function(e){return e.island})).isOpen,u=r.useSelector((function(e){return e.currentCall})),s=u.incoming,p=u.outgoing,c=u.accepted;return o.default.createElement(t.framerMotion.exports.motion.div,{className:"pi-relative",animate:n?"open":"closed",variants:a},(s||p&&!c)&&o.default.createElement(t.framerMotion.exports.motion.div,{style:{animation:"ping 2s cubic-bezier(0, 0, 0.2, 1) infinite",borderRadius:"4px"},animate:n?"open":"closed",variants:a,className:"pi-rounded-xl pi-bg-white pi-absolute pi-opacity-60 -pi-z-10 pi-top-0 pi-left-0 pi-animate-ping pi-h-12 pi-w-12"}),o.default.createElement(t.framerMotion.exports.motion.div,{className:"pi-z-10 pi-h-12 pi-w-12 pi-bg-gray-300 pi-rounded-sm pi-bg-cover",style:{backgroundImage:"url(".concat(i&&i[e]&&i[e],")"),backgroundRepeat:"no-repeat",backgroundSize:"contain"},animate:n?"open":"closed",variants:a}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/framer-motion/dist/framer-motion.js"),require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/react-redux/es/hooks/useSelector.js"),r=require("../../_virtual/framer-motion.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(e),o={open:{width:"48px",height:"48px",borderRadius:"12px"},closed:{width:"24px",height:"24px",borderRadius:"6px"}};exports.default=function(){var e=t.useSelector((function(e){return e.currentCall})).username,a=t.useSelector((function(e){return e.avatars})).avatars,n=t.useSelector((function(e){return e.island})).isOpen,u=t.useSelector((function(e){return e.currentCall})),s=u.incoming,l=u.outgoing,d=u.accepted;return i.default.createElement(i.default.Fragment,null,i.default.createElement(r.framerMotion.exports.motion.div,{className:"pi-relative",animate:n?"open":"closed",variants:o},(s||l&&!d)&&i.default.createElement(r.framerMotion.exports.motion.div,{style:{animationDuration:"2s"},animate:n?"open":"closed",variants:o,className:"pi-rounded-xl pi-bg-white pi-absolute pi-opacity-60 pi-top-0 pi-left-0 pi-animate-ping pi-h-12 pi-w-12"}),i.default.createElement(r.framerMotion.exports.motion.div,{className:"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-bg-gray-300 pi-rounded-sm pi-bg-cover",style:{backgroundImage:"url(".concat(a&&a[e]&&a[e],")"),backgroundRepeat:"no-repeat",backgroundSize:"contain"},animate:n?"open":"closed",variants:o})))};
2
2
  //# sourceMappingURL=Avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sources":["../../../src/components/CallView/Avatar.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\n\nconst iconVariants = {\n open: {\n width: '48px',\n height: '48px',\n borderRadius: '12px',\n },\n closed: {\n width: '24px',\n height: '24px',\n borderRadius: '6px',\n },\n}\n\nconst Avatar: FC = () => {\n // Get multiple values from currentCall store\n const { username } = useSelector((state: RootState) => state.currentCall)\n\n // Get avatars from avatars store\n const { avatars } = useSelector((state: RootState) => state.avatars)\n\n // Get isOpen from island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Get multiple values from currentCall store\n const { incoming, outgoing, accepted } = useSelector((state: RootState) => state.currentCall)\n\n return (\n <motion.div className='pi-relative' animate={isOpen ? 'open' : 'closed'} variants={iconVariants}>\n {(incoming || (outgoing && !accepted)) && (\n // The background pulse effect\n <motion.div\n style={{\n animation: 'ping 2s cubic-bezier(0, 0, 0.2, 1) infinite',\n borderRadius: '4px',\n }}\n animate={isOpen ? 'open' : 'closed'}\n variants={iconVariants}\n className={`pi-rounded-xl pi-bg-white pi-absolute pi-opacity-60 -pi-z-10 pi-top-0 pi-left-0 pi-animate-ping pi-h-12 pi-w-12`}\n ></motion.div>\n )}\n <motion.div\n className='pi-z-10 pi-h-12 pi-w-12 pi-bg-gray-300 pi-rounded-sm pi-bg-cover'\n style={{\n backgroundImage: `url(${avatars && avatars[username] && avatars[username]})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'contain',\n }}\n animate={isOpen ? 'open' : 'closed'}\n variants={iconVariants}\n />\n </motion.div>\n )\n}\n\nexport default Avatar\n"],"names":["iconVariants","open","width","height","borderRadius","closed","username","useSelector","state","currentCall","avatars","isOpen","island","_a","incoming","outgoing","accepted","React","createElement","motion","div","className","animate","variants","style","animation","backgroundImage","concat","backgroundRepeat","backgroundSize"],"mappings":"2ZAQMA,EAAe,CACnBC,KAAM,CACJC,MAAO,OACPC,OAAQ,OACRC,aAAc,QAEhBC,OAAQ,CACNH,MAAO,OACPC,OAAQ,OACRC,aAAc,wBAIC,WAET,IAAAE,EAAaC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,wBAGrDC,EAAYH,eAAY,SAACC,GAAqB,OAAAA,EAAME,mBAGpDC,EAAWJ,eAAY,SAACC,GAAqB,OAAAA,EAAMI,iBAGrDC,EAAmCN,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,eAAzEK,EAAQD,EAAAC,SAAEC,EAAQF,EAAAE,SAAEC,EAAQH,EAAAG,SAEpC,OACEC,EAAC,QAAAC,cAAAC,8BAAOC,KAAIC,UAAU,cAAcC,QAASX,EAAS,OAAS,SAAUY,SAAUvB,IAC/Ec,GAAaC,IAAaC,IAE1BC,EAAAA,QAAAC,cAACC,EAAAA,aAAAA,QAAAA,OAAOC,IAAG,CACTI,MAAO,CACLC,UAAW,8CACXrB,aAAc,OAEhBkB,QAASX,EAAS,OAAS,SAC3BY,SAAUvB,EACVqB,UAAW,oHAGfJ,EAAC,QAAAC,cAAAC,8BAAOC,IAAG,CACTC,UAAU,mEACVG,MAAO,CACLE,gBAAiB,OAAAC,OAAOjB,GAAWA,EAAQJ,IAAaI,EAAQJ,GAAY,KAC5EsB,iBAAkB,YAClBC,eAAgB,WAElBP,QAASX,EAAS,OAAS,SAC3BY,SAAUvB,IAIlB"}
1
+ {"version":3,"file":"Avatar.js","sources":["../../../src/components/CallView/Avatar.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\n\nconst iconVariants = {\n open: {\n width: '48px',\n height: '48px',\n borderRadius: '12px',\n },\n closed: {\n width: '24px',\n height: '24px',\n borderRadius: '6px',\n },\n}\n\nconst Avatar: FC = () => {\n // Get multiple values from currentCall store\n const { username } = useSelector((state: RootState) => state.currentCall)\n\n // Get avatars from avatars store\n const { avatars } = useSelector((state: RootState) => state.avatars)\n\n // Get isOpen from island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Get multiple values from currentCall store\n const { incoming, outgoing, accepted } = useSelector((state: RootState) => state.currentCall)\n\n return (\n <>\n <motion.div\n className='pi-relative'\n animate={isOpen ? 'open' : 'closed'}\n variants={iconVariants}\n >\n {(incoming || (outgoing && !accepted)) && (\n // The background pulse effect\n <motion.div\n style={{\n animationDuration: '2s'\n }}\n animate={isOpen ? 'open' : 'closed'}\n variants={iconVariants}\n className={`pi-rounded-xl pi-bg-white pi-absolute pi-opacity-60 pi-top-0 pi-left-0 pi-animate-ping pi-h-12 pi-w-12`}\n ></motion.div>\n )}\n <motion.div\n className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-bg-gray-300 pi-rounded-sm pi-bg-cover'\n style={{\n backgroundImage: `url(${avatars && avatars[username] && avatars[username]})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'contain',\n }}\n animate={isOpen ? 'open' : 'closed'}\n variants={iconVariants}\n />\n </motion.div>\n </>\n )\n}\n\nexport default Avatar\n"],"names":["iconVariants","open","width","height","borderRadius","closed","username","useSelector","state","currentCall","avatars","isOpen","island","_a","incoming","outgoing","accepted","React","createElement","Fragment","motion","div","className","animate","variants","style","animationDuration","backgroundImage","concat","backgroundRepeat","backgroundSize"],"mappings":"2ZAQMA,EAAe,CACnBC,KAAM,CACJC,MAAO,OACPC,OAAQ,OACRC,aAAc,QAEhBC,OAAQ,CACNH,MAAO,OACPC,OAAQ,OACRC,aAAc,wBAIC,WAET,IAAAE,EAAaC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,wBAGrDC,EAAYH,eAAY,SAACC,GAAqB,OAAAA,EAAME,mBAGpDC,EAAWJ,eAAY,SAACC,GAAqB,OAAAA,EAAMI,iBAGrDC,EAAmCN,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,eAAzEK,EAAQD,EAAAC,SAAEC,EAAQF,EAAAE,SAAEC,EAAQH,EAAAG,SAEpC,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAACC,cAAAE,EAAAA,aAAAA,QAAAA,OAAOC,IAAG,CACTC,UAAU,cACVC,QAASZ,EAAS,OAAS,SAC3Ba,SAAUxB,IAERc,GAAaC,IAAaC,IAE1BC,EAAAA,QAAAC,cAACE,EAAAA,aAAAA,QAAAA,OAAOC,IAAG,CACTI,MAAO,CACLC,kBAAmB,MAErBH,QAASZ,EAAS,OAAS,SAC3Ba,SAAUxB,EACVsB,UAAW,2GAGfL,EAAC,QAAAC,cAAAE,8BAAOC,IAAG,CACTC,UAAU,+EACVG,MAAO,CACLE,gBAAiB,OAAAC,OAAOlB,GAAWA,EAAQJ,IAAaI,EAAQJ,GAAY,KAC5EuB,iBAAkB,YAClBC,eAAgB,WAElBP,QAASZ,EAAS,OAAS,SAC3Ba,SAAUxB,KAKpB"}
@@ -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("./Timer.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var r=require("../../_virtual/framer-motion.js"),i=require("../../node_modules/react-redux/es/hooks/useSelector.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e);exports.default=function(e){var a=e.isVisible,s=i.useSelector((function(e){return e.currentCall})),o=s.displayName,l=s.transferring,u=s.transferringName,d=s.startTime,m=s.transferringStartTime;return n.default.createElement(r.framerMotion.exports.AnimatePresence,null,a&&n.default.createElement(r.framerMotion.exports.motion.div,{className:"pi-absolute pi-w-full pi-bg-gray-500 pi-flex pi-justify-between pi-text-white -pi-mt-10 -pi-z-10 pi-font-sans pi-px-6 pi-pt-3",style:{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",height:"60px"},initial:{y:60},animate:{y:0},exit:{y:60,transitionEnd:{display:"none"}},transition:{duration:.3}},n.default.createElement("div",{className:"pi-font-bold"},l?u:o),n.default.createElement("div",{className:""},n.default.createElement(t.default,{size:"small",startTime:l?m: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("./Timer.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var r=require("../../_virtual/framer-motion.js"),i=require("../../node_modules/react-redux/es/hooks/useSelector.js"),a=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=n(e);exports.default=function(n){var o=n.isVisible,l=i.useSelector((function(e){return e.currentCall})),u=l.number,p=l.displayName,d=l.transferring,m=l.transferringName,f=l.startTime,c=l.transferringStartTime,x=l.transferCalls,v=a.useDispatch(),b=i.useSelector((function(e){return e.island})).isOpen;return e.useEffect((function(){var e=x.find((function(e){return e.number!==u}));e&&v.currentCall.updateCurrentCall({transferringName:e.displayName,transferringStartTime:e.startTime})}),[u]),s.default.createElement(r.framerMotion.exports.AnimatePresence,null,o&&s.default.createElement(r.framerMotion.exports.motion.div,{className:"pi-absolute pi-w-full pi-bg-gray-500 pi-flex pi-justify-between pi-text-white -pi-mt-10 -pi-z-10 pi-font-sans pi-items-top ".concat(b?"pi-px-6":"pi-px-4"," pi-pt-3"),style:{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",height:"60px"},initial:{y:60},animate:{y:0},exit:{y:60,transitionEnd:{display:"none"}},transition:{duration:.3}},s.default.createElement("div",{className:"pi-font-bold pi-text-sm pi-relative"},s.default.createElement("div",{className:"pi-whitespace-nowrap pi-overflow-hidden ".concat(b?"pi-w-44":"pi-w-16")},d?m:p),s.default.createElement("div",{className:"pi-w-6 pi-absolute pi-right-0 pi-top-0 pi-h-full pi-bg-gradient-to-r pi-from-transparent pi-to-gray-500"})),s.default.createElement("div",{className:""},s.default.createElement(t.default,{size:"small",startTime:d?c:f}))))};
2
2
  //# sourceMappingURL=BackCall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackCall.js","sources":["../../../src/components/CallView/BackCall.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport Timer from './Timer'\nimport { motion, AnimatePresence } from 'framer-motion/dist/framer-motion'\n\nconst BackCall: FC<BackCallTypes> = ({ isVisible }) => {\n const { displayName, transferring, transferringName, startTime, transferringStartTime } =\n useSelector((state: RootState) => state.currentCall)\n\n return (\n <AnimatePresence>\n {isVisible && (\n <motion.div\n className='pi-absolute pi-w-full pi-bg-gray-500 pi-flex pi-justify-between pi-text-white -pi-mt-10 -pi-z-10 pi-font-sans pi-px-6 pi-pt-3'\n style={{ borderTopLeftRadius: '20px', borderTopRightRadius: '20px', height: '60px' }}\n initial={{ y: 60 }}\n animate={{ y: 0 }}\n exit={{\n y: 60,\n transitionEnd: {\n display: 'none',\n },\n }}\n transition={{ duration: 0.3 }}\n >\n <div className='pi-font-bold'>{transferring ? transferringName : displayName}</div>\n <div className=''>\n <Timer size='small' startTime={transferring ? transferringStartTime : startTime} />\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n\nexport default BackCall\n\ninterface BackCallTypes {\n isVisible: boolean\n}\n"],"names":["_a","isVisible","_b","useSelector","state","currentCall","displayName","transferring","transferringName","startTime","transferringStartTime","React","AnimatePresence","framerMotion","exports","createElement","motion","div","className","style","borderTopLeftRadius","borderTopRightRadius","height","initial","y","animate","exit","transitionEnd","display","transition","duration","Timer","size"],"mappings":"ucASoC,SAACA,GAAE,IAAAC,EAASD,EAAAC,UACxCC,EACJC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAD7CC,EAAWJ,EAAAI,YAAEC,EAAYL,EAAAK,aAAEC,EAAgBN,EAAAM,iBAAEC,EAASP,EAAAO,UAAEC,EAAqBR,EAAAQ,sBAGrF,OACEC,wBAACC,EAAeC,aAAAC,QAAAF,gBAAA,KACbX,GACCU,EAAC,QAAAI,cAAAC,EAAAA,aAAAA,QAAAA,OAAOC,KACNC,UAAU,gIACVC,MAAO,CAAEC,oBAAqB,OAAQC,qBAAsB,OAAQC,OAAQ,QAC5EC,QAAS,CAAEC,EAAG,IACdC,QAAS,CAAED,EAAG,GACdE,KAAM,CACJF,EAAG,GACHG,cAAe,CACbC,QAAS,SAGbC,WAAY,CAAEC,SAAU,KAExBnB,UAAAI,cAAA,MAAA,CAAKG,UAAU,gBAAgBX,EAAeC,EAAmBF,GACjEK,EAAAA,QAAKI,cAAA,MAAA,CAAAG,UAAU,IACbP,EAAAA,QAACI,cAAAgB,EAAAA,SAAMC,KAAK,QAAQvB,UAAWF,EAAeG,EAAwBD,MAMlF"}
1
+ {"version":3,"file":"BackCall.js","sources":["../../../src/components/CallView/BackCall.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport Timer from './Timer'\nimport { motion, AnimatePresence } from 'framer-motion/dist/framer-motion'\nimport { TransferCallsTypes } from '../../models/currentCall'\n\nconst BackCall: FC<BackCallTypes> = ({ isVisible }) => {\n const {\n number,\n displayName,\n transferring,\n transferringName,\n startTime,\n transferringStartTime,\n transferCalls,\n } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n useEffect(() => {\n const callData: TransferCallsTypes = transferCalls.find((item) => item.number !== number)\n // Handle call switch during transfer\n if (callData) {\n dispatch.currentCall.updateCurrentCall({\n transferringName: callData.displayName,\n transferringStartTime: callData.startTime,\n })\n }\n }, [number])\n\n return (\n <AnimatePresence>\n {isVisible && (\n <motion.div\n className={`pi-absolute pi-w-full pi-bg-gray-500 pi-flex pi-justify-between pi-text-white -pi-mt-10 -pi-z-10 pi-font-sans pi-items-top ${\n isOpen ? 'pi-px-6' : 'pi-px-4'\n } pi-pt-3`}\n style={{ borderTopLeftRadius: '20px', borderTopRightRadius: '20px', height: '60px' }}\n initial={{ y: 60 }}\n animate={{ y: 0 }}\n exit={{\n y: 60,\n transitionEnd: {\n display: 'none',\n },\n }}\n transition={{ duration: 0.3 }}\n >\n <div className='pi-font-bold pi-text-sm pi-relative'>\n <div\n className={`pi-whitespace-nowrap pi-overflow-hidden ${\n isOpen ? 'pi-w-44' : 'pi-w-16'\n }`}\n >\n {transferring ? transferringName : displayName}\n </div>\n <div className='pi-w-6 pi-absolute pi-right-0 pi-top-0 pi-h-full pi-bg-gradient-to-r pi-from-transparent pi-to-gray-500'></div>\n </div>\n <div className=''>\n <Timer size='small' startTime={transferring ? transferringStartTime : startTime} />\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n\nexport default BackCall\n\ninterface BackCallTypes {\n isVisible: boolean\n}\n"],"names":["_a","isVisible","_b","useSelector","state","currentCall","number","displayName","transferring","transferringName","startTime","transferringStartTime","transferCalls","dispatch","useDispatch","isOpen","island","useEffect","callData","find","item","updateCurrentCall","React","createElement","AnimatePresence","framerMotion","exports","motion","div","className","concat","style","borderTopLeftRadius","borderTopRightRadius","height","initial","y","animate","exit","transitionEnd","display","transition","duration","Timer","size"],"mappings":"2gBAUoC,SAACA,GAAE,IAAAC,EAASD,EAAAC,UACxCC,EAQFC,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMC,WAAN,IAPpCC,EAAMJ,EAAAI,OACNC,EAAWL,EAAAK,YACXC,EAAYN,EAAAM,aACZC,EAAgBP,EAAAO,iBAChBC,EAASR,EAAAQ,UACTC,EAAqBT,EAAAS,sBACrBC,kBAEIC,EAAWC,EAAAA,cAETC,EAAWZ,eAAY,SAACC,GAAqB,OAAAA,EAAMY,iBAa3D,OAXAC,EAAAA,WAAU,WACR,IAAMC,EAA+BN,EAAcO,MAAK,SAACC,GAAS,OAAAA,EAAKd,SAAWA,CAAhB,IAE9DY,GACFL,EAASR,YAAYgB,kBAAkB,CACrCZ,iBAAkBS,EAASX,YAC3BI,sBAAuBO,EAASR,WAGtC,GAAG,CAACJ,IAGFgB,EAAAA,QAACC,cAAAC,EAAeC,aAAAC,QAAAF,gBACb,KAAAvB,GACCqB,EAAC,QAAAC,cAAAI,EAAAA,aAAAA,QAAAA,OAAOC,IACN,CAAAC,UAAW,8HAAAC,OACTf,EAAS,UAAY,UAAS,YAEhCgB,MAAO,CAAEC,oBAAqB,OAAQC,qBAAsB,OAAQC,OAAQ,QAC5EC,QAAS,CAAEC,EAAG,IACdC,QAAS,CAAED,EAAG,GACdE,KAAM,CACJF,EAAG,GACHG,cAAe,CACbC,QAAS,SAGbC,WAAY,CAAEC,SAAU,KAExBpB,EAAAA,QAAKC,cAAA,MAAA,CAAAM,UAAU,uCACbP,EAAAA,QACEC,cAAA,MAAA,CAAAM,UAAW,2CACTC,OAAAf,EAAS,UAAY,YAGtBP,EAAeC,EAAmBF,GAErCe,EAAA,QAAAC,cAAA,MAAA,CAAKM,UAAU,6GAEjBP,EAAAA,QAAKC,cAAA,MAAA,CAAAM,UAAU,IACbP,EAAAA,QAACC,cAAAoB,EAAAA,SAAMC,KAAK,QAAQlC,UAAWF,EAAeG,EAAwBD,MAMlF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../../styles/Island.styles.js");require("../../node_modules/framer-motion/dist/framer-motion.js"),require("../../node_modules/react-redux/es/index.js");var t=require("../../_virtual/framer-motion.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=u(e);exports.default=function(){var u=e.useState(!1),a=u[0],o=u[1],s=e.useRef(null),l=e.useRef(null),c=t.framerMotion.exports.motion(r.StyledName),d=n.useSelector((function(e){return e.currentCall})).displayName;return e.useLayoutEffect((function(){s.current&&l.current&&l.current.clientWidth-s.current.clientWidth>5&&o(!0)})),i.default.createElement(c,{ref:s,className:"pi-whitespace-nowrap pi-overflow-hidden"},i.default.createElement("div",{className:"pi-w-fit pi-relative pi-inline-block ".concat(a&&"animate-animated-text"),ref:l},d&&"<unknown>"===d?"PBX":d&&d))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/framer-motion/dist/framer-motion.js"),require("../../node_modules/react-redux/es/index.js");var r=require("../../_virtual/framer-motion.js"),i=require("../../node_modules/react-redux/es/hooks/useSelector.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e);exports.default=function(){var a=e.useState(!1),u=a[0],o=a[1],l=e.useRef(null),s=e.useRef(null),c=r.framerMotion.exports.motion(t.StyledName),d=i.useSelector((function(e){return e.currentCall})).displayName;return e.useLayoutEffect((function(){l.current&&s.current&&s.current.clientWidth-l.current.clientWidth>5&&o(!0)})),n.default.createElement(c,{ref:l,className:"pi-whitespace-nowrap pi-relative pi-overflow-hidden"},n.default.createElement("div",{className:"pi-w-fit pi-relative pi-inline-block ".concat(u&&"animated-text"),ref:s},d&&"<unknown>"===d?"PBX":d&&d),n.default.createElement("div",{className:"pi-w-6 pi-absolute pi-right-0 pi-top-0 pi-h-full pi-bg-gradient-to-r pi-from-transparent pi-to-black"}))};
2
2
  //# sourceMappingURL=DisplayName.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayName.js","sources":["../../../src/components/CallView/DisplayName.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useLayoutEffect, type FC } from 'react'\nimport { StyledName } from '../../styles/Island.styles'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { RootState } from '../../store'\nimport { useSelector } from 'react-redux'\n\nconst DisplayName: FC<DisplayNameProps> = () => {\n const [animateText, setAnimateText] = useState<boolean>(false)\n const nameContainer = useRef<null | HTMLDivElement>(null)\n const nameText = useRef<null | HTMLDivElement>(null)\n const NameMotion = motion(StyledName)\n\n // Get the displayName of the currentCall store\n const { displayName } = useSelector((state: RootState) => state.currentCall)\n\n useLayoutEffect(() => {\n if (\n nameContainer.current &&\n nameText.current &&\n nameText.current.clientWidth - nameContainer.current.clientWidth > 5\n ) {\n setAnimateText(true)\n }\n })\n\n return (\n <NameMotion ref={nameContainer} className='pi-whitespace-nowrap pi-overflow-hidden'>\n <div\n className={`pi-w-fit pi-relative pi-inline-block ${animateText && 'animate-animated-text'}`}\n ref={nameText}\n >\n {displayName && displayName === '<unknown>' ? 'PBX' : displayName && displayName}\n </div>\n </NameMotion>\n )\n}\n\nexport default DisplayName\n\nexport interface DisplayNameProps {}\n"],"names":["_a","useState","animateText","setAnimateText","nameContainer","useRef","nameText","NameMotion","motion","StyledName","displayName","useSelector","state","currentCall","useLayoutEffect","current","clientWidth","React","createElement","ref","className","concat"],"mappings":"sdAS0C,WAClC,IAAAA,EAAgCC,EAAAA,UAAkB,GAAjDC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAC5BI,EAAgBC,SAA8B,MAC9CC,EAAWD,SAA8B,MACzCE,EAAaC,8BAAOC,EAAAA,YAGlBC,EAAgBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,2BAYhE,OAVAC,EAAAA,iBAAgB,WAEZV,EAAcW,SACdT,EAASS,SACTT,EAASS,QAAQC,YAAcZ,EAAcW,QAAQC,YAAc,GAEnEb,GAAe,EAEnB,IAGEc,EAAAA,QAACC,cAAAX,EAAW,CAAAY,IAAKf,EAAegB,UAAU,4CACxCH,UAAAC,cAAA,MAAA,CACEE,UAAW,wCAAwCC,OAAAnB,GAAe,yBAClEiB,IAAKb,GAEJI,GAA+B,cAAhBA,EAA8B,MAAQA,GAAeA,GAI7E"}
1
+ {"version":3,"file":"DisplayName.js","sources":["../../../src/components/CallView/DisplayName.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useLayoutEffect, type FC } from 'react'\nimport { StyledName } from '../../styles/Island.styles'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { RootState } from '../../store'\nimport { useSelector } from 'react-redux'\n\nconst DisplayName: FC<DisplayNameProps> = () => {\n const [animateText, setAnimateText] = useState<boolean>(false)\n const nameContainer = useRef<null | HTMLDivElement>(null)\n const nameText = useRef<null | HTMLDivElement>(null)\n const NameMotion = motion(StyledName)\n\n // Get the displayName of the currentCall store\n const { displayName } = useSelector((state: RootState) => state.currentCall)\n\n useLayoutEffect(() => {\n if (\n nameContainer.current &&\n nameText.current &&\n nameText.current.clientWidth - nameContainer.current.clientWidth > 5\n ) {\n setAnimateText(true)\n }\n })\n\n return (\n <NameMotion ref={nameContainer} className='pi-whitespace-nowrap pi-relative pi-overflow-hidden'>\n <div\n className={`pi-w-fit pi-relative pi-inline-block ${animateText && 'animated-text'}`}\n ref={nameText}\n >\n {displayName && displayName === '<unknown>' ? 'PBX' : displayName && displayName}\n </div>\n <div className='pi-w-6 pi-absolute pi-right-0 pi-top-0 pi-h-full pi-bg-gradient-to-r pi-from-transparent pi-to-black'></div>\n </NameMotion>\n )\n}\n\nexport default DisplayName\n\nexport interface DisplayNameProps {}\n"],"names":["_a","useState","animateText","setAnimateText","nameContainer","useRef","nameText","NameMotion","motion","StyledName","displayName","useSelector","state","currentCall","useLayoutEffect","current","clientWidth","React","createElement","ref","className","concat"],"mappings":"sdAS0C,WAClC,IAAAA,EAAgCC,EAAAA,UAAkB,GAAjDC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAC5BI,EAAgBC,SAA8B,MAC9CC,EAAWD,SAA8B,MACzCE,EAAaC,8BAAOC,EAAAA,YAGlBC,EAAgBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,2BAYhE,OAVAC,EAAAA,iBAAgB,WAEZV,EAAcW,SACdT,EAASS,SACTT,EAASS,QAAQC,YAAcZ,EAAcW,QAAQC,YAAc,GAEnEb,GAAe,EAEnB,IAGEc,EAAAA,QAACC,cAAAX,EAAW,CAAAY,IAAKf,EAAegB,UAAU,uDACxCH,EACE,QAAAC,cAAA,MAAA,CAAAE,UAAW,wCAAAC,OAAwCnB,GAAe,iBAClEiB,IAAKb,GAEJI,GAA+B,cAAhBA,EAA8B,MAAQA,GAAeA,GAEvEO,EAAA,QAAAC,cAAA,MAAA,CAAKE,UAAU,yGAGrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),l=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),a=require("../../lib/phone/call.js");require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var i=require("../Button.js"),u=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var n=require("./Timer.js"),s=require("./Number.js"),d=require("./DisplayName.js"),o=require("./Avatar.js"),c=require("./Actions.js"),m=require("../Hangup.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);function q(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.incoming,g=e.accepted,E=e.outgoing,v=e.startTime,y=e.paused,_=f.useSelector((function(e){return e.island})).isOpen,b=f.useSelector((function(e){return e.webrtc})).remoteAudioStream;return j.default.createElement(t.StyledCallView,{incoming:p,accepted:g,outgoing:E,isOpen:_},j.default.createElement(t.StyledTopContent,{isOpen:_,incoming:p,accepted:g,outgoing:E},j.default.createElement(o.default,null),_&&j.default.createElement(t.StyledDetails,null,j.default.createElement(d.default,null),g?j.default.createElement(n.default,{startTime:v}):j.default.createElement(s.default,null)),!_&&!g&&j.default.createElement(d.default,null),!_&&g&&j.default.createElement(n.default,{startTime:v}),g&&b&&j.default.createElement(u.AudioBars,{audioStream:b,paused:y,size:_?"large":"small"})),_&&j.default.createElement("div",{className:"pi-grid pi-gap-y-5"},g&&j.default.createElement(c.default,null),j.default.createElement("div",{className:"pi-grid ".concat(q(E,g)?"pi-grid-cols-2":g?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"," pi-gap-3.5")},j.default.createElement(m.default,null),q(E,g)&&j.default.createElement(i.Button,{onClick:a.answerIncomingCall,variant:"green"},j.default.createElement(r.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:l.faPhone})))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),a=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),i=require("../../lib/phone/call.js");require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var n=require("../Button.js"),l=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var u=require("./Timer.js"),s=require("./Number.js"),d=require("./DisplayName.js"),o=require("./Avatar.js"),c=require("./Actions.js"),m=require("../Hangup.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);function g(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.incoming,q=e.accepted,E=e.outgoing,v=e.startTime,y=e.paused,_=f.useSelector((function(e){return e.island})).isOpen,b=f.useSelector((function(e){return e.webrtc})).remoteAudioStream;return j.default.createElement(t.StyledCallView,{incoming:p,accepted:q,outgoing:E,isOpen:_},j.default.createElement(t.StyledTopContent,{isOpen:_,incoming:p,accepted:q,outgoing:E},j.default.createElement(o.default,null),_&&j.default.createElement(t.StyledDetails,null,j.default.createElement(d.default,null),q?j.default.createElement(u.default,{startTime:v}):j.default.createElement(s.default,null)),!_&&!q&&j.default.createElement(d.default,null),!_&&q&&j.default.createElement(u.default,{startTime:v}),q&&b&&j.default.createElement(l.AudioBars,{audioStream:b,paused:y,size:_?"large":"small"})),_&&j.default.createElement("div",{className:"pi-grid pi-gap-y-5"},q&&j.default.createElement(c.default,null),j.default.createElement("div",{className:"pi-grid ".concat(g(E,q)?"pi-grid-cols-2":q?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"," pi-gap-3.5")},j.default.createElement(m.default,{description:"Hangup and transfer"}),g(E,q)&&j.default.createElement(n.Button,{onClick:i.answerIncomingCall,variant:"green"},j.default.createElement(r.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:a.faPhone})))))};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall store\n const { incoming, accepted, outgoing, startTime, paused } = useSelector(\n (state: RootState) => state.currentCall,\n )\n // Get isOpen and view from island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc store\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n return (\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent isOpen={isOpen} incoming={incoming} accepted={accepted} outgoing={outgoing}>\n <Avatar />\n {isOpen && (\n <StyledDetails>\n <DisplayName />\n {/* The timer when expanded */}\n {accepted ? <Timer startTime={startTime} /> : <Number />}\n </StyledDetails>\n )}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} />}\n {accepted && remoteAudioStream && (\n <AudioBars\n audioStream={remoteAudioStream}\n paused={paused}\n size={isOpen ? 'large' : 'small'}\n />\n )}\n </StyledTopContent>\n {isOpen && (\n <div className='pi-grid pi-gap-y-5'>\n {accepted && <Actions />}\n <div\n className={`pi-grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'pi-grid-cols-2'\n : accepted\n ? 'pi-grid-cols-1 pi-justify-items-center'\n : 'pi-grid-cols-1 pi-justify-items-end'\n } pi-gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n {/* {incoming || outgoing ? (\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='pi-rotate-135 pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n ) : ( */}\n <Hangup />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button onClick={answerIncomingCall} variant='green'>\n <FontAwesomeIcon className='pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","startTime","paused","isOpen","island","remoteAudioStream","webrtc","React","createElement","StyledCallView","StyledTopContent","Avatar","StyledDetails","DisplayName","Timer","Number","AudioBars","audioStream","size","className","Actions","concat","Hangup","Button","onClick","answerIncomingCall","variant","FontAwesomeIcon","icon","faPhone"],"mappings":"4kCAmBA,SAASA,EAAgBC,EAAmBC,GAC1C,OAAQD,IAAaC,CACvB,iBAKoC,WAE5B,IAAAC,EAAsDC,EAAAA,aAC1D,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IADjCC,EAAQJ,EAAAI,SAAEL,EAAQC,EAAAD,SAAED,EAAQE,EAAAF,SAAEO,EAASL,EAAAK,UAAEC,EAAMN,EAAAM,OAI/CC,EAAWN,eAAY,SAACC,GAAqB,OAAAA,EAAMM,iBAGnDC,EAAsBR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,4BAEtE,OACEC,UAACC,cAAAC,EAAcA,gBAACT,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,EAAUS,OAAQA,GAClFI,EAAAA,QAAAC,cAACE,mBAAiB,CAAAP,OAAQA,EAAQH,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,GAClFa,UAAAC,cAACG,EAAM,QAAG,MACTR,GACCI,EAAA,QAAAC,cAACI,EAAAA,cAAa,KACZL,UAAAC,cAACK,EAAW,QAAG,MAEdlB,EAAWY,EAAAA,QAACC,cAAAM,EAAK,SAACb,UAAWA,IAAgBM,wBAACQ,UAAM,QAIvDZ,IAAWR,GAAYY,EAAA,QAAAC,cAACK,EAAW,QAAG,OAEtCV,GAAUR,GAAYY,UAAAC,cAACM,EAAAA,QAAM,CAAAb,UAAWA,IACzCN,GAAYU,GACXE,EAAC,QAAAC,cAAAQ,EAASA,UACR,CAAAC,YAAaZ,EACbH,OAAQA,EACRgB,KAAMf,EAAS,QAAU,WAI9BA,GACCI,EAAK,QAAAC,cAAA,MAAA,CAAAW,UAAU,sBACZxB,GAAYY,EAAC,QAAAC,cAAAY,EAAAA,QAAU,MACxBb,UACEC,cAAA,MAAA,CAAAW,UAAW,WACTE,OAAA5B,EAAgBC,EAAUC,GACtB,iBACAA,EACA,yCACA,sCACO,gBAQbY,UAAAC,cAACc,EAAM,QAAG,MAGT7B,EAAgBC,EAAUC,IACzBY,UAAAC,cAACe,EAAMA,OAAA,CAACC,QAASC,qBAAoBC,QAAQ,SAC3CnB,EAAAA,QAAAC,cAACmB,kBAAgB,CAAAR,UAAU,gBAAgBS,KAAMC,EAAAA,aAQjE"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall store\n const { incoming, accepted, outgoing, startTime, paused } = useSelector(\n (state: RootState) => state.currentCall,\n )\n // Get isOpen and view from island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc store\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n return (\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent isOpen={isOpen} incoming={incoming} accepted={accepted} outgoing={outgoing}>\n <Avatar />\n {isOpen && (\n <StyledDetails>\n <DisplayName />\n {/* The timer when expanded */}\n {accepted ? <Timer startTime={startTime} /> : <Number />}\n </StyledDetails>\n )}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} />}\n {accepted && remoteAudioStream && (\n <AudioBars\n audioStream={remoteAudioStream}\n paused={paused}\n size={isOpen ? 'large' : 'small'}\n />\n )}\n </StyledTopContent>\n {isOpen && (\n <div className='pi-grid pi-gap-y-5'>\n {accepted && <Actions />}\n <div\n className={`pi-grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'pi-grid-cols-2'\n : accepted\n ? 'pi-grid-cols-1 pi-justify-items-center'\n : 'pi-grid-cols-1 pi-justify-items-end'\n } pi-gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n {/* {incoming || outgoing ? (\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='pi-rotate-135 pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n ) : ( */}\n <Hangup description=\"Hangup and transfer\" />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button onClick={answerIncomingCall} variant='green'>\n <FontAwesomeIcon className='pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","startTime","paused","isOpen","island","remoteAudioStream","webrtc","React","createElement","StyledCallView","StyledTopContent","Avatar","StyledDetails","DisplayName","Timer","Number","AudioBars","audioStream","size","className","Actions","concat","Hangup","description","Button","onClick","answerIncomingCall","variant","FontAwesomeIcon","icon","faPhone"],"mappings":"4kCAmBA,SAASA,EAAgBC,EAAmBC,GAC1C,OAAQD,IAAaC,CACvB,iBAKoC,WAE5B,IAAAC,EAAsDC,EAAAA,aAC1D,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IADjCC,EAAQJ,EAAAI,SAAEL,EAAQC,EAAAD,SAAED,EAAQE,EAAAF,SAAEO,EAASL,EAAAK,UAAEC,EAAMN,EAAAM,OAI/CC,EAAWN,eAAY,SAACC,GAAqB,OAAAA,EAAMM,iBAGnDC,EAAsBR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,4BAEtE,OACEC,UAACC,cAAAC,EAAcA,gBAACT,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,EAAUS,OAAQA,GAClFI,EAAAA,QAAAC,cAACE,mBAAiB,CAAAP,OAAQA,EAAQH,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,GAClFa,UAAAC,cAACG,EAAM,QAAG,MACTR,GACCI,EAAA,QAAAC,cAACI,EAAAA,cAAa,KACZL,UAAAC,cAACK,EAAW,QAAG,MAEdlB,EAAWY,EAAAA,QAACC,cAAAM,EAAK,SAACb,UAAWA,IAAgBM,wBAACQ,UAAM,QAIvDZ,IAAWR,GAAYY,EAAA,QAAAC,cAACK,EAAW,QAAG,OAEtCV,GAAUR,GAAYY,UAAAC,cAACM,EAAAA,QAAM,CAAAb,UAAWA,IACzCN,GAAYU,GACXE,EAAC,QAAAC,cAAAQ,EAASA,UACR,CAAAC,YAAaZ,EACbH,OAAQA,EACRgB,KAAMf,EAAS,QAAU,WAI9BA,GACCI,EAAK,QAAAC,cAAA,MAAA,CAAAW,UAAU,sBACZxB,GAAYY,EAAC,QAAAC,cAAAY,EAAAA,QAAU,MACxBb,UACEC,cAAA,MAAA,CAAAW,UAAW,WACTE,OAAA5B,EAAgBC,EAAUC,GACtB,iBACAA,EACA,yCACA,sCACO,gBAQbY,EAAAA,QAAAC,cAACc,EAAAA,QAAM,CAACC,YAAY,wBAGnB9B,EAAgBC,EAAUC,IACzBY,UAAAC,cAACgB,EAAMA,OAAA,CAACC,QAASC,qBAAoBC,QAAQ,SAC3CpB,EAAAA,QAAAC,cAACoB,kBAAgB,CAAAT,UAAU,gBAAgBU,KAAMC,EAAAA,aAQjE"}
@@ -1,6 +1,7 @@
1
1
  import { type ReactNode, FC } from 'react';
2
2
  interface EventsProps {
3
3
  children: ReactNode;
4
+ sipHost: string;
4
5
  }
5
6
  export declare const Events: FC<EventsProps>;
6
7
  export {};
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../events/CallEvents.js"),r=require("../events/PlayerEvents.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=l(e);exports.Events=function(e){var l=e.children;return n.default.createElement(n.default.Fragment,null,n.default.createElement(r.PlayerEvents,null),n.default.createElement(t.CallEvents,null),l)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../events/CallEvents.js"),r=require("../events/PlayerEvents.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=l(e);exports.Events=function(e){var l=e.sipHost,a=e.children;return n.default.createElement(n.default.Fragment,null,n.default.createElement(r.PlayerEvents,null),n.default.createElement(t.CallEvents,{sipHost:l}),a)};
2
2
  //# sourceMappingURL=Events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sources":["../../src/components/Events.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC } from 'react'\nimport { CallEvents, PlayerEvents } from '../events'\n\ninterface EventsProps {\n children: ReactNode\n}\n\nexport const Events: FC<EventsProps> = ({ children }) => {\n return (\n <>\n {<PlayerEvents />}\n {<CallEvents />}\n {children}\n </>\n )\n}\n"],"names":["_a","children","React","createElement","Fragment","PlayerEvents","CallEvents"],"mappings":"yQAUuC,SAACA,GAAE,IAAAC,EAAQD,EAAAC,SAChD,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACGF,UAAAC,cAACE,EAAYA,aAAG,MAChBH,UAAAC,cAACG,EAAUA,WAAG,MACdL,EAGP"}
1
+ {"version":3,"file":"Events.js","sources":["../../src/components/Events.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC } from 'react'\nimport { CallEvents, PlayerEvents } from '../events'\n\ninterface EventsProps {\n children: ReactNode\n sipHost: string\n}\n\nexport const Events: FC<EventsProps> = ({ sipHost, children }) => {\n return (\n <>\n {<PlayerEvents />}\n {<CallEvents sipHost={sipHost} />}\n {children}\n </>\n )\n}\n"],"names":["_a","sipHost","children","React","createElement","Fragment","PlayerEvents","CallEvents"],"mappings":"yQAWuC,SAACA,OAAEC,EAAOD,EAAAC,QAAEC,EAAQF,EAAAE,SACzD,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACGF,UAAAC,cAACE,EAAYA,aAAG,MAChBH,EAAAA,QAAAC,cAACG,EAAAA,WAAU,CAACN,QAASA,IACrBC,EAGP"}
@@ -7,4 +7,5 @@ export default Hangup;
7
7
  interface HangupProps {
8
8
  clickCallback?: () => void;
9
9
  isDestination?: boolean;
10
+ description?: string;
10
11
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),n=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var a=require("../node_modules/react-redux/es/hooks/useSelector.js"),o=require("../_virtual/framer-motion.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=s(e);exports.default=function(e){var s=e.clickCallback,l=e.isDestination,c=a.useSelector((function(e){return e.island})).view,d=a.useSelector((function(e){return e.currentCall})).transferring;return u.default.createElement("div",{className:"pi-flex pi-justify-center ".concat(d&&"pi-w-full")},u.default.createElement(o.framerMotion.exports.motion.div,{className:"".concat(d&&"pi-w-full"),animate:d||l?{width:"transfer"===c?"360px":"keypad"===c?"290px":"300px"}:{width:d?"100%":"48px"}},u.default.createElement(t.Button,{onClick:function(){return(d||l)&&s?s():n.hangupCurrentCall()},variant:"red",className:"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full"},u.default.createElement(r.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:i.faPhone}),(d||l)&&u.default.createElement(o.framerMotion.exports.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},"Hangup and transfer"))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),o=require("../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),i=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var a=require("../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js"),n=require("../node_modules/react-redux/es/hooks/useSelector.js"),s=require("../node_modules/react-redux/es/hooks/useDispatch.js"),l=require("../_virtual/framer-motion.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(e);exports.default=function(e){e.clickCallback,e.isDestination;var u=e.description,d=n.useSelector((function(e){return e.currentCall})).transferring,m=s.useDispatch();return c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pi-flex pi-justify-center ".concat(d&&"pi-w-full")},c.default.createElement(l.framerMotion.exports.motion.div,{className:"".concat(d&&u?"pi-w-full":"pi-w-12")},c.default.createElement(t.Button,{onClick:function(){return i.hangupCurrentCall(),void(d&&setTimeout((function(){m.alerts.setAlert("call_transfered"),setTimeout((function(){m.alerts.removeAlert("call_transfered")}),2e3)}),300))},variant:"red",className:"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full","data-tooltip-id":"tooltip","data-tooltip-content":u&&d?u:"Hangup"},c.default.createElement(r.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:o.faPhone}),d&&u&&c.default.createElement(l.framerMotion.exports.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},u)))),c.default.createElement(a.Tooltip,{className:"pi-z-20",id:"tooltip",place:"bottom"}))};
2
2
  //# sourceMappingURL=Hangup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../store'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination }) => {\n const { view } = useSelector((state: RootState) => state.island)\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n\n return (\n <div className={`pi-flex pi-justify-center ${transferring && 'pi-w-full'}`}>\n {/* The button to hangup the currentCall */}\n <motion.div\n className={`${transferring && 'pi-w-full'}`}\n animate={\n transferring || isDestination\n ? { width: view === 'transfer' ? '360px' : view === 'keypad' ? '290px' : '300px' }\n : { width: transferring ? '100%' : '48px' }\n }\n >\n <Button\n onClick={() =>\n (transferring || isDestination) && clickCallback ? clickCallback() : hangupCurrentCall()\n }\n variant='red'\n className='pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {(transferring || isDestination) && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n Hangup and transfer\n </motion.div>\n )}\n </Button>\n </motion.div>\n </div>\n )\n}\n\nexport default Hangup\n\ninterface HangupProps {\n clickCallback?: () => void\n isDestination?: boolean\n}\n"],"names":["_a","clickCallback","isDestination","view","useSelector","state","island","transferring","currentCall","React","className","createElement","motion","div","concat","animate","width","Button","onClick","hangupCurrentCall","variant","FontAwesomeIcon","icon","faPhone","framerMotion","exports","style","height"],"mappings":"mnBAegC,SAACA,OAAEC,EAAaD,EAAAC,cAAEC,EAAaF,EAAAE,cACrDC,EAASC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,eACjDC,EAAiBH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,4BAEjE,OACEC,+BAAKC,UAAW,oCAA6BH,GAAgB,cAE3DE,EAAAA,QAAAE,cAACC,EAAAA,aAAAA,QAAAA,OAAOC,IACN,CAAAH,UAAW,GAAGI,OAAAP,GAAgB,aAC9BQ,QACER,GAAgBL,EACZ,CAAEc,MAAgB,aAATb,EAAsB,QAAmB,WAATA,EAAoB,QAAU,SACvE,CAAEa,MAAOT,EAAe,OAAS,SAGvCE,EAAAA,QAACE,cAAAM,SACC,CAAAC,QAAS,WACP,OAACX,GAAgBL,IAAkBD,EAAgBA,IAAkBkB,EAAAA,mBAAmB,EAE1FC,QAAQ,MACRV,UAAU,4EAEVD,EAAC,QAAAE,cAAAU,mBAAgBX,UAAU,8BAA8BY,KAAMC,EAAAA,WAC7DhB,GAAgBL,IAChBO,EAAC,QAAAE,cAAAC,EAAMY,aAAAC,QAAAb,OAACC,IACN,CAAAa,MAAO,CAAEC,OAAQ,QACjBjB,UAAU,2CAGC,yBAMzB"}
1
+ {"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination, description }) => {\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n\n function handleHangup() {\n hangupCurrentCall()\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n }, 2000)\n }, 300)\n }\n }\n\n return (\n <>\n <div className={`pi-flex pi-justify-center ${transferring && 'pi-w-full'}`}>\n {/* The button to hangup the currentCall */}\n <motion.div className={`${transferring && description ? 'pi-w-full' : 'pi-w-12'}`}>\n <Button\n onClick={() => handleHangup()}\n variant='red'\n className='pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n data-tooltip-id='tooltip'\n data-tooltip-content={description && transferring ? description : 'Hangup'}\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {transferring && description && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n {description}\n </motion.div>\n )}\n </Button>\n </motion.div>\n </div>\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </>\n )\n}\n\nexport default Hangup\n\ninterface HangupProps {\n clickCallback?: () => void\n isDestination?: boolean\n description?: string\n}\n"],"names":["_a","isDestination","description","transferring","useSelector","state","currentCall","dispatch","useDispatch","React","createElement","Fragment","className","concat","motion","div","Button","onClick","hangupCurrentCall","setTimeout","alerts","setAlert","removeAlert","variant","FontAwesomeIcon","icon","faPhone","framerMotion","exports","style","height","Tooltip","id","place"],"mappings":"6vBAiBgC,SAACA,mBAA8BA,EAAAC,cAAE,IAAAC,EAAWF,EAAAE,YAClEC,EAAiBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAC3DC,EAAWC,EAAAA,cAejB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,UAAAC,cAAA,MAAA,CAAKE,UAAW,6BAAAC,OAA6BV,GAAgB,cAE3DM,EAAAA,QAAAC,cAACI,8BAAOC,KAAIH,UAAW,UAAGT,GAAgBD,EAAc,YAAc,YACpEO,UAAAC,cAACM,EAAAA,OAAM,CACLC,QAAS,WAAM,OAlBvBC,EAAAA,yBAEIf,GACFgB,YAAW,WACTZ,EAASa,OAAOC,SAAS,mBACzBF,YAAW,WACTZ,EAASa,OAAOE,YAAY,kBAC7B,GAAE,IACJ,GAAE,KAUkB,EACfC,QAAQ,MACRX,UAAU,2EAA0E,kBACpE,UAAS,uBACHV,GAAeC,EAAeD,EAAc,UAElEO,EAAC,QAAAC,cAAAc,mBAAgBZ,UAAU,8BAA8Ba,KAAMC,EAAAA,UAC9DvB,GAAgBD,GACfO,EAAA,QAAAC,cAACI,EAAMa,aAAAC,QAAAd,OAACC,IAAG,CACTc,MAAO,CAAEC,OAAQ,QACjBlB,UAAU,2CAETV,MAMXO,EAAAA,QAAAC,cAACqB,UAAQ,CAAAnB,UAAU,UAAUoB,GAAG,UAAUC,MAAM,WAGtD"}
@@ -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/customHooks/useIsomorphicLayoutEffect.js"),r=require("./CallView/index.js"),l=require("./KeypadView/index.js"),a=require("./AudioPlayerView/index.js"),u=require("./AlertGuard.js"),n=require("./CallView/BackCall.js"),i=require("./ViewsTransition.js");require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),require("../lib/webrtc/janus.js"),require("../store/index.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var s=require("./TransferView/TransferList.js"),o=require("./IslandMotion.js"),d=require("./IslandDrag.js"),f=require("./Close.js"),c=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=p(e),y=function(p){var y=p.showAlways,j=c.useSelector((function(e){return e.currentCall})),w=j.incoming,q=j.accepted,V=j.outgoing,v=j.transferring,h=j.transferringName,x=j.displayName,g=j.transferSwitching,C=c.useSelector((function(e){return e.island})).view,I=c.useSelector((function(e){return e.alerts.status})).activeAlertsCount,P=c.useSelector((function(e){return e.player})).audioPlayerLoop,_=e.useRef(null),b=m.useDispatch(),k=e.useRef(null),A=e.useRef(null),R=e.useRef(null),S=e.useRef(null),T=e.useRef(null);t.useIsomorphicLayoutEffect((function(){b.player.updatePlayer({audioPlayer:k,localAudio:A,localVideo:S,remoteVideo:T,remoteAudio:R})}),[]),e.useEffect((function(){(w||V)&&b.island.setIslandView("call")}),[w,V]);var L=e.useState(""),N=L[0],D=L[1];return e.useEffect((function(){setTimeout((function(){D(C)}),200)}),[C]),e.useEffect((function(){h!==x||g||b.currentCall.updateTransferring(!1)}),[h,x]),E.default.createElement("div",{ref:_,className:"pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000"},(w||V||q||y||I>0||"player"===C)&&E.default.createElement(E.default.Fragment,null,E.default.createElement(d.IslandDrag,{islandContainerRef:_},E.default.createElement(n.default,{isVisible:"keypad"===C||"transfer"===C||v}),E.default.createElement(o.IslandMotion,null,E.default.createElement(u.AlertGuard,null,"call"===N?E.default.createElement(i.default,{forView:"call"},E.default.createElement(r.default,null)):"keypad"===N?E.default.createElement(i.default,{forView:"keypad"},E.default.createElement(l.default,null)):"transfer"===N?E.default.createElement(i.default,{forView:"transfer"},E.default.createElement(s.TransferListView,null)):"player"===N?E.default.createElement(i.default,{forView:"player"},E.default.createElement(a.KeypadView,null)):E.default.createElement(E.default.Fragment,null))),E.default.createElement(f.Close,null))),E.default.createElement("div",{className:"pi-hidden"},E.default.createElement("audio",{loop:P,ref:k}),E.default.createElement("audio",{muted:!0,ref:A}),E.default.createElement("audio",{autoPlay:!0,ref:R}),E.default.createElement("video",{muted:!0,autoPlay:!0,ref:S}),E.default.createElement("video",{autoPlay:!0,ref:T})))};y.displayName="Island",exports.Island=y;
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/customHooks/useIsomorphicLayoutEffect.js"),r=require("./CallView/index.js"),l=require("./KeypadView/index.js"),a=require("./AudioPlayerView/index.js"),u=require("./AlertGuard.js"),n=require("./CallView/BackCall.js"),i=require("./ViewsTransition.js");require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),require("../lib/webrtc/janus.js"),require("../store/index.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");var s=require("./TransferView/TransferList.js"),o=require("./IslandMotion.js"),d=require("./IslandDrag.js"),f=require("./Close.js"),c=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=p(e),j=function(p){var j=p.showAlways,y=c.useSelector((function(e){return e.currentCall})),w=y.incoming,q=y.accepted,v=y.outgoing,V=y.transferring;y.transferringName,y.displayName,y.transferSwitching;var h=c.useSelector((function(e){return e.island})).view,x=c.useSelector((function(e){return e.alerts.status})).activeAlertsCount,g=c.useSelector((function(e){return e.player})).audioPlayerLoop,I=e.useRef(null),_=m.useDispatch(),C=e.useRef(null),P=e.useRef(null),b=e.useRef(null),k=e.useRef(null),A=e.useRef(null);t.useIsomorphicLayoutEffect((function(){_.player.updatePlayer({audioPlayer:C,localAudio:P,localVideo:k,remoteVideo:A,remoteAudio:b})}),[]),e.useEffect((function(){(w||v)&&_.island.setIslandView("call")}),[w,v]);var R=e.useState(""),S=R[0],L=R[1];return e.useEffect((function(){setTimeout((function(){L(h)}),200)}),[h]),E.default.createElement("div",{ref:I,className:"pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000"},(w||v||q||j||x>0||"player"===h)&&E.default.createElement(E.default.Fragment,null,E.default.createElement(d.IslandDrag,{islandContainerRef:I},E.default.createElement(n.default,{isVisible:"keypad"===h||"transfer"===h||V}),E.default.createElement(o.IslandMotion,null,E.default.createElement(u.AlertGuard,null,"call"===S?E.default.createElement(i.default,{forView:"call"},E.default.createElement(r.default,null)):"keypad"===S?E.default.createElement(i.default,{forView:"keypad"},E.default.createElement(l.default,null)):"transfer"===S?E.default.createElement(i.default,{forView:"transfer"},E.default.createElement(s.TransferListView,null)):"player"===S?E.default.createElement(i.default,{forView:"player"},E.default.createElement(a.KeypadView,null)):E.default.createElement(E.default.Fragment,null))),E.default.createElement(f.Close,null))),E.default.createElement("div",{className:"pi-hidden"},E.default.createElement("audio",{loop:g,ref:C}),E.default.createElement("audio",{muted:!0,ref:P}),E.default.createElement("audio",{autoPlay:!0,ref:b}),E.default.createElement("video",{muted:!0,autoPlay:!0,ref:k}),E.default.createElement("video",{autoPlay:!0,ref:A})))};j.displayName="Island",exports.Island=j;
2
2
  //# sourceMappingURL=Island.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useEffect, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport { useIsomorphicLayoutEffect } from '../utils'\nimport CallView from './CallView'\nimport KeyboardView from './KeypadView'\nimport AudioPlayerView from './AudioPlayerView'\nimport { AlertGuard } from './AlertGuard'\nimport BackCall from './CallView/BackCall'\nimport ViewsTransition from './ViewsTransition'\nimport { TransferListView } from './TransferView'\nimport IslandMotions from './IslandMotion'\nimport IslandDrag from './IslandDrag'\nimport Close from './Close'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n */\nexport const Island: FC<IslandProps> = ({ showAlways }) => {\n // Get the currentCall info\n const {\n incoming,\n accepted,\n outgoing,\n transferring,\n transferringName,\n displayName,\n transferSwitching,\n } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen from island store\n const { view } = useSelector((state: RootState) => state.island)\n\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n\n // Get audioPlayerLoop value from player store\n const { audioPlayerLoop } = useSelector((state: RootState) => state.player)\n\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n const localVideo = useRef<HTMLVideoElement>(null)\n const remoteVideo = useRef<HTMLVideoElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer,\n localAudio: localAudio,\n localVideo: localVideo,\n remoteVideo: remoteVideo,\n remoteAudio: remoteAudio,\n })\n }, [])\n\n // Handle and apply view switch logic\n useEffect(() => {\n if (incoming || outgoing) {\n dispatch.island.setIslandView('call')\n }\n }, [incoming, outgoing])\n\n const [currentView, setCurrentView] = useState<any>('')\n\n // Handle island view change\n useEffect(() => {\n setTimeout(() => {\n setCurrentView(view)\n }, 200)\n }, [view])\n\n // Set transferring to false when names are equal\n useEffect(() => {\n if (transferringName === displayName && !transferSwitching) {\n dispatch.currentCall.updateTransferring(false)\n }\n }, [transferringName, displayName])\n\n return (\n <div\n ref={islandContainerRef}\n className='pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000'\n >\n {(incoming ||\n outgoing ||\n accepted ||\n showAlways ||\n activeAlertsCount > 0 ||\n view === 'player') && (\n <>\n <IslandDrag islandContainerRef={islandContainerRef}>\n {/* Add background call visibility logic */}\n <BackCall isVisible={view === 'keypad' || view === 'transfer' || transferring} />\n <IslandMotions>\n {/* The views logic */}\n <AlertGuard>\n {currentView === 'call' ? (\n <ViewsTransition forView='call'>\n <CallView />\n </ViewsTransition>\n ) : currentView === 'keypad' ? (\n <ViewsTransition forView='keypad'>\n <KeyboardView />\n </ViewsTransition>\n ) : currentView === 'transfer' ? (\n <ViewsTransition forView='transfer'>\n <TransferListView />\n </ViewsTransition>\n ) : currentView === 'player' ? (\n <ViewsTransition forView='player'>\n <AudioPlayerView />\n </ViewsTransition>\n ) : (\n <></>\n )}\n </AlertGuard>\n </IslandMotions>\n <Close />\n </IslandDrag>\n </>\n )}\n <div className='pi-hidden'>\n <audio loop={audioPlayerLoop} ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n <video muted={true} autoPlay ref={localVideo}></video>\n <video autoPlay ref={remoteVideo}></video>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n}\n"],"names":["Island","_a","showAlways","_b","useSelector","state","currentCall","incoming","accepted","outgoing","transferring","transferringName","displayName","transferSwitching","view","island","activeAlertsCount","alerts","status","audioPlayerLoop","player","islandContainerRef","useRef","dispatch","useDispatch","audioPlayer","localAudio","remoteAudio","localVideo","remoteVideo","useIsomorphicLayoutEffect","updatePlayer","useEffect","setIslandView","_c","useState","currentView","setCurrentView","setTimeout","updateTransferring","React","ref","className","createElement","Fragment","IslandDrag","BackCall","isVisible","IslandMotions","AlertGuard","ViewsTransition","forView","CallView","KeyboardView","TransferListView","AudioPlayerView","Close","loop","muted","autoPlay"],"mappings":"+7BAuBaA,EAA0B,SAACC,GAAE,IAAAC,EAAUD,EAAAC,WAE5CC,EAQFC,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMC,WAAN,IAPpCC,EAAQJ,EAAAI,SACRC,EAAQL,EAAAK,SACRC,EAAQN,EAAAM,SACRC,EAAYP,EAAAO,aACZC,EAAgBR,EAAAQ,iBAChBC,EAAWT,EAAAS,YACXC,sBAIMC,EAASV,eAAY,SAACC,GAAqB,OAAAA,EAAMU,eAGjDC,EAAsBZ,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMY,OAAOC,4BAGrEC,EAAoBf,eAAY,SAACC,GAAqB,OAAAA,EAAMe,0BAG9DC,EAAqBC,SAAY,MAGjCC,EAAWC,EAAAA,cAEXC,EAAcH,SAAyB,MACvCI,EAAaJ,SAAyB,MACtCK,EAAcL,SAAyB,MACvCM,EAAaN,SAAyB,MACtCO,EAAcP,SAAyB,MAE7CQ,EAAAA,2BAA0B,WACxBP,EAASH,OAAOW,aAAa,CAC3BN,YAAaA,EACbC,WAAYA,EACZE,WAAYA,EACZC,YAAaA,EACbF,YAAaA,GAEhB,GAAE,IAGHK,EAAAA,WAAU,YACJzB,GAAYE,IACdc,EAASR,OAAOkB,cAAc,OAElC,GAAG,CAAC1B,EAAUE,IAER,IAAAyB,EAAgCC,EAAAA,SAAc,IAA7CC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAgBlC,OAbAF,EAAAA,WAAU,WACRM,YAAW,WACTD,EAAevB,EAChB,GAAE,IACL,GAAG,CAACA,IAGJkB,EAAAA,WAAU,WACJrB,IAAqBC,GAAgBC,GACvCU,EAASjB,YAAYiC,oBAAmB,EAE5C,GAAG,CAAC5B,EAAkBC,IAGpB4B,EAAAA,6BACEC,IAAKpB,EACLqB,UAAU,yMAERnC,GACAE,GACAD,GACAN,GACAc,EAAoB,GACX,WAATF,IACA0B,EAAA,QAAAG,cAAAH,EAAA,QAAAI,SAAA,KACEJ,EAAAA,QAAAG,cAACE,EAAAA,WAAU,CAACxB,mBAAoBA,GAE9BmB,UAAAG,cAACG,EAAQ,QAAA,CAACC,UAAoB,WAATjC,GAA8B,aAATA,GAAuBJ,IACjE8B,UAAAG,cAACK,EAAAA,aAAa,KAEZR,EAAAA,QAAAG,cAACM,aAAU,KACQ,SAAhBb,EACCI,EAAC,QAAAG,cAAAO,EAAAA,QAAgB,CAAAC,QAAQ,QACvBX,EAAAA,QAAAG,cAACS,EAAAA,QAAW,OAEI,WAAhBhB,EACFI,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,UACvBX,EAAAA,QAAAG,cAACU,EAAAA,QAAe,OAEA,aAAhBjB,EACFI,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,YACvBX,EAAAA,QAAAG,cAACW,EAAAA,iBAAmB,OAEJ,WAAhBlB,EACFI,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,UACvBX,EAAAA,QAACG,cAAAY,aAAkB,OAGrBf,EAAAA,QAAAG,cAAAH,UAAAI,SAAA,QAINJ,EAAAA,QAAAG,cAACa,EAAAA,MAAK,QAIZhB,EAAAA,QAAKG,cAAA,MAAA,CAAAD,UAAU,aACbF,EAAA,QAAAG,cAAA,QAAA,CAAOc,KAAMtC,EAAiBsB,IAAKhB,IACnCe,EAAA,QAAAG,cAAA,QAAA,CAAOe,OAAO,EAAMjB,IAAKf,IACzBc,EAAA,QAAAG,cAAA,QAAA,CAAOgB,UAAQ,EAAClB,IAAKd,IACrBa,UAAOG,cAAA,QAAA,CAAAe,OAAO,EAAMC,UAAS,EAAAlB,IAAKb,IAClCY,UAAOG,cAAA,QAAA,CAAAgB,YAASlB,IAAKZ,KAI7B,EAEA7B,EAAOY,YAAc"}
1
+ {"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useEffect, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport { useIsomorphicLayoutEffect } from '../utils'\nimport CallView from './CallView'\nimport KeyboardView from './KeypadView'\nimport AudioPlayerView from './AudioPlayerView'\nimport { AlertGuard } from './AlertGuard'\nimport BackCall from './CallView/BackCall'\nimport ViewsTransition from './ViewsTransition'\nimport { TransferListView } from './TransferView'\nimport IslandMotions from './IslandMotion'\nimport IslandDrag from './IslandDrag'\nimport Close from './Close'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n */\nexport const Island: FC<IslandProps> = ({ showAlways }) => {\n // Get the currentCall info\n const {\n incoming,\n accepted,\n outgoing,\n transferring,\n transferringName,\n displayName,\n transferSwitching,\n } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen from island store\n const { view } = useSelector((state: RootState) => state.island)\n\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n\n // Get audioPlayerLoop value from player store\n const { audioPlayerLoop } = useSelector((state: RootState) => state.player)\n\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n const localVideo = useRef<HTMLVideoElement>(null)\n const remoteVideo = useRef<HTMLVideoElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer,\n localAudio: localAudio,\n localVideo: localVideo,\n remoteVideo: remoteVideo,\n remoteAudio: remoteAudio,\n })\n }, [])\n\n // Handle and apply view switch logic\n useEffect(() => {\n if (incoming || outgoing) {\n dispatch.island.setIslandView('call')\n }\n }, [incoming, outgoing])\n\n const [currentView, setCurrentView] = useState<any>('')\n\n // Handle island view change\n useEffect(() => {\n setTimeout(() => {\n setCurrentView(view)\n }, 200)\n }, [view])\n\n return (\n <div\n ref={islandContainerRef}\n className='pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000'\n >\n {(incoming ||\n outgoing ||\n accepted ||\n showAlways ||\n activeAlertsCount > 0 ||\n view === 'player') && (\n <>\n <IslandDrag islandContainerRef={islandContainerRef}>\n {/* Add background call visibility logic */}\n <BackCall isVisible={view === 'keypad' || view === 'transfer' || transferring} />\n <IslandMotions>\n {/* The views logic */}\n <AlertGuard>\n {currentView === 'call' ? (\n <ViewsTransition forView='call'>\n <CallView />\n </ViewsTransition>\n ) : currentView === 'keypad' ? (\n <ViewsTransition forView='keypad'>\n <KeyboardView />\n </ViewsTransition>\n ) : currentView === 'transfer' ? (\n <ViewsTransition forView='transfer'>\n <TransferListView />\n </ViewsTransition>\n ) : currentView === 'player' ? (\n <ViewsTransition forView='player'>\n <AudioPlayerView />\n </ViewsTransition>\n ) : (\n <></>\n )}\n </AlertGuard>\n </IslandMotions>\n <Close />\n </IslandDrag>\n </>\n )}\n <div className='pi-hidden'>\n <audio loop={audioPlayerLoop} ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n <video muted={true} autoPlay ref={localVideo}></video>\n <video autoPlay ref={remoteVideo}></video>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n}\n"],"names":["Island","_a","showAlways","_b","useSelector","state","currentCall","incoming","accepted","outgoing","transferring","transferringName","displayName","view","island","activeAlertsCount","alerts","status","audioPlayerLoop","player","islandContainerRef","useRef","dispatch","useDispatch","audioPlayer","localAudio","remoteAudio","localVideo","remoteVideo","useIsomorphicLayoutEffect","updatePlayer","useEffect","setIslandView","_c","useState","currentView","setCurrentView","setTimeout","React","ref","className","createElement","Fragment","IslandDrag","BackCall","isVisible","IslandMotions","AlertGuard","ViewsTransition","forView","CallView","KeyboardView","TransferListView","AudioPlayerView","Close","loop","muted","autoPlay"],"mappings":"sgCAuBaA,EAA0B,SAACC,GAAE,IAAAC,EAAUD,EAAAC,WAE5CC,EAQFC,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMC,WAAN,IAPpCC,EAAQJ,EAAAI,SACRC,EAAQL,EAAAK,SACRC,EAAQN,EAAAM,SACRC,EAAYP,EAAAO,aACIP,EAAAQ,iBACLR,EAAAS,gCAKL,IAAAC,EAAST,eAAY,SAACC,GAAqB,OAAAA,EAAMS,eAGjDC,EAAsBX,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMW,OAAOC,4BAGrEC,EAAoBd,eAAY,SAACC,GAAqB,OAAAA,EAAMc,0BAG9DC,EAAqBC,SAAY,MAGjCC,EAAWC,EAAAA,cAEXC,EAAcH,SAAyB,MACvCI,EAAaJ,SAAyB,MACtCK,EAAcL,SAAyB,MACvCM,EAAaN,SAAyB,MACtCO,EAAcP,SAAyB,MAE7CQ,EAAAA,2BAA0B,WACxBP,EAASH,OAAOW,aAAa,CAC3BN,YAAaA,EACbC,WAAYA,EACZE,WAAYA,EACZC,YAAaA,EACbF,YAAaA,GAEhB,GAAE,IAGHK,EAAAA,WAAU,YACJxB,GAAYE,IACda,EAASR,OAAOkB,cAAc,OAElC,GAAG,CAACzB,EAAUE,IAER,IAAAwB,EAAgCC,EAAAA,SAAc,IAA7CC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GASlC,OANAF,EAAAA,WAAU,WACRM,YAAW,WACTD,EAAevB,EAChB,GAAE,IACL,GAAG,CAACA,IAGFyB,EAAAA,6BACEC,IAAKnB,EACLoB,UAAU,yMAERjC,GACAE,GACAD,GACAN,GACAa,EAAoB,GACX,WAATF,IACAyB,EAAA,QAAAG,cAAAH,EAAA,QAAAI,SAAA,KACEJ,EAAAA,QAAAG,cAACE,EAAAA,WAAU,CAACvB,mBAAoBA,GAE9BkB,UAAAG,cAACG,EAAQ,QAAA,CAACC,UAAoB,WAAThC,GAA8B,aAATA,GAAuBH,IACjE4B,UAAAG,cAACK,EAAAA,aAAa,KAEZR,EAAAA,QAAAG,cAACM,aAAU,KACQ,SAAhBZ,EACCG,EAAC,QAAAG,cAAAO,EAAAA,QAAgB,CAAAC,QAAQ,QACvBX,EAAAA,QAAAG,cAACS,EAAAA,QAAW,OAEI,WAAhBf,EACFG,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,UACvBX,EAAAA,QAAAG,cAACU,EAAAA,QAAe,OAEA,aAAhBhB,EACFG,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,YACvBX,EAAAA,QAAAG,cAACW,EAAAA,iBAAmB,OAEJ,WAAhBjB,EACFG,EAAAA,QAAAG,cAACO,EAAAA,QAAgB,CAAAC,QAAQ,UACvBX,EAAAA,QAACG,cAAAY,aAAkB,OAGrBf,EAAAA,QAAAG,cAAAH,UAAAI,SAAA,QAINJ,EAAAA,QAAAG,cAACa,EAAAA,MAAK,QAIZhB,EAAAA,QAAKG,cAAA,MAAA,CAAAD,UAAU,aACbF,EAAA,QAAAG,cAAA,QAAA,CAAOc,KAAMrC,EAAiBqB,IAAKf,IACnCc,EAAA,QAAAG,cAAA,QAAA,CAAOe,OAAO,EAAMjB,IAAKd,IACzBa,EAAA,QAAAG,cAAA,QAAA,CAAOgB,UAAQ,EAAClB,IAAKb,IACrBY,UAAOG,cAAA,QAAA,CAAAe,OAAO,EAAMC,UAAS,EAAAlB,IAAKZ,IAClCW,UAAOG,cAAA,QAAA,CAAAgB,YAASlB,IAAKX,KAI7B,EAEA5B,EAAOY,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("./Actions.js"),i=require("../../lib/webrtc/messages.js"),u=require("../../lib/island/island.js"),l=require("../../lib/phone/call.js"),s=require("../Hangup.js"),o=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),c=require("../../node_modules/react-redux/es/hooks/useSelector.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=d(e),p=["0","1","2","3","4","5","6","7","8","9","*","#"];exports.default=function(){var d=o.useDispatch(),m=c.useSelector((function(e){return e.currentCall})).keypadValue,x=c.useSelector((function(e){return e.island})).isOpen,v=e.useRef(m);function b(e){d.currentCall.updateKeypadValue("".concat(v.current).concat(e)),v.current="".concat(v.current).concat(e),l.playDtmfAudio(e),i.sendDTMF(e)}return e.useEffect((function(){function e(e){p.includes(e.key)&&b(e.key)}return window.addEventListener("keydown",e),function(){return window.removeEventListener("keydown",e)}}),[]),f.default.createElement(f.default.Fragment,null,x?f.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-7"},f.default.createElement("div",{className:"pi-flex pi-gap-4"},f.default.createElement(t.Button,{variant:"transparent",onClick:u.backToCallView},f.default.createElement(a.FontAwesomeIcon,{size:"xl",icon:r.faArrowLeft})),f.default.createElement("input",{"data-stop-propagation":!0,type:"text",readOnly:!0,value:m,autoFocus:!0,className:"pi-w-full pi-rounded-full pi-bg-black pi-border-2 pi-border-emerald-500 active:pi-border-emerald-500 focus:pi-border-emerald-500 pi-text-white pi-font-sans pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0"})),f.default.createElement(n.default,{keyCallback:b}),f.default.createElement("div",{className:"pi-flex pi-justify-center"},f.default.createElement(s.default,null))):f.default.createElement("div",{className:"pi-font-medium pi-text-base"},"Keypad"))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),o=require("./Actions.js"),i=require("../../lib/webrtc/messages.js"),n=require("../../lib/island/island.js"),l=require("../../lib/phone/call.js"),u=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js"),s=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),c=require("../../node_modules/react-redux/es/hooks/useSelector.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(e),f=["0","1","2","3","4","5","6","7","8","9","*","#"];exports.default=function(){var d=s.useDispatch(),m=c.useSelector((function(e){return e.currentCall})).keypadValue,x=c.useSelector((function(e){return e.island})).isOpen,b=e.useRef(m);function j(e){d.currentCall.updateKeypadValue("".concat(b.current).concat(e)),b.current="".concat(b.current).concat(e),l.playDtmfAudio(e),i.sendDTMF(e)}return e.useEffect((function(){function e(e){f.includes(e.key)&&j(e.key)}return window.addEventListener("keydown",e),function(){return window.removeEventListener("keydown",e)}}),[]),p.default.createElement(p.default.Fragment,null,x?p.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-7"},p.default.createElement("div",{className:"pi-flex pi-gap-4"},p.default.createElement(t.Button,{variant:"transparent",onClick:n.backToCallView,"data-tooltip-id":"keyboard-tooltip","data-tooltip-content":"Back to call"},p.default.createElement(a.FontAwesomeIcon,{size:"xl",icon:r.faArrowLeft})),p.default.createElement("input",{"data-stop-propagation":!0,type:"text",readOnly:!0,value:m,autoFocus:!0,className:"pi-w-full pi-rounded-full pi-bg-black pi-border-2 pi-border-emerald-500 active:pi-border-emerald-500 focus:pi-border-emerald-500 pi-text-white pi-font-sans pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0"})),p.default.createElement(o.default,{keyCallback:j})):p.default.createElement("div",{className:"pi-font-medium pi-text-base"},"Keypad"),p.default.createElement(u.Tooltip,{className:"pi-z-1000",id:"keyboard-tooltip",place:"bottom"}))};
2
2
  //# sourceMappingURL=index.js.map