@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.
- package/dist/App.d.ts +1 -0
- package/dist/App.js +1 -1
- package/dist/App.js.map +1 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/_virtual/floating-ui.dom.esm.js +2 -0
- package/dist/_virtual/floating-ui.dom.esm.js.map +1 -0
- package/dist/_virtual/index.js +1 -1
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/_virtual/index8.js +1 -1
- package/dist/_virtual/index9.js +2 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/react-tooltip.min.cjs.js +2 -0
- package/dist/_virtual/react-tooltip.min.cjs.js.map +1 -0
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/Avatar.js +1 -1
- package/dist/components/CallView/Avatar.js.map +1 -1
- package/dist/components/CallView/BackCall.js +1 -1
- package/dist/components/CallView/BackCall.js.map +1 -1
- package/dist/components/CallView/DisplayName.js +1 -1
- package/dist/components/CallView/DisplayName.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/Events.d.ts +1 -0
- package/dist/components/Events.js +1 -1
- package/dist/components/Events.js.map +1 -1
- package/dist/components/Hangup.d.ts +1 -0
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/Island.js +1 -1
- package/dist/components/Island.js.map +1 -1
- package/dist/components/KeypadView/index.js +1 -1
- package/dist/components/KeypadView/index.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/TransferView/ListAvatar.d.ts +2 -2
- package/dist/components/TransferView/ListAvatar.js +1 -1
- package/dist/components/TransferView/ListAvatar.js.map +1 -1
- package/dist/components/TransferView/TransferActions.js +1 -1
- package/dist/components/TransferView/TransferActions.js.map +1 -1
- package/dist/components/TransferView/TransferList.js +1 -1
- package/dist/components/TransferView/TransferList.js.map +1 -1
- package/dist/components/WebRTC.d.ts +2 -0
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/CallEvents.d.ts +3 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/phone/call.d.ts +2 -2
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/webrtc/messages.d.ts +6 -1
- package/dist/lib/webrtc/messages.js +1 -1
- package/dist/lib/webrtc/messages.js.map +1 -1
- package/dist/models/currentCall.d.ts +67 -0
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/motions.js +1 -1
- package/dist/models/motions.js.map +1 -1
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +1 -1
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +2 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js.map +1 -0
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/@rematch/core/dist/core.esm.js +1 -1
- package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -1
- package/dist/node_modules/bowser/es5.js +1 -1
- package/dist/node_modules/bowser/es5.js.map +1 -1
- package/dist/node_modules/classnames/index.js +7 -0
- package/dist/node_modules/classnames/index.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/socket.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transport.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transport.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/util.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/commons.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/index.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/framer-motion.js +1 -1
- package/dist/node_modules/framer-motion/dist/framer-motion.js.map +1 -1
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +9 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +9 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/immer/dist/immer.esm.mjs.js +1 -1
- package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
- package/dist/node_modules/mic-check/lib/index.js +1 -1
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +1 -1
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -1
- package/dist/node_modules/moment/moment.js +2 -2
- package/dist/node_modules/moment/moment.js.map +1 -1
- package/dist/node_modules/prop-types/checkPropTypes.js +1 -1
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +9 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +9 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js +9 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +9 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-is/index.js.map +1 -1
- package/dist/node_modules/react-moment/dist/index.js +2 -2
- package/dist/node_modules/react-moment/dist/index.js.map +1 -1
- package/dist/node_modules/react-redux/es/components/Context.js +1 -1
- package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
- package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
- package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
- package/dist/node_modules/react-redux/es/hooks/useDispatch.js +1 -1
- package/dist/node_modules/react-redux/es/hooks/useDispatch.js.map +1 -1
- package/dist/node_modules/react-redux/es/hooks/useReduxContext.js +1 -1
- package/dist/node_modules/react-redux/es/hooks/useReduxContext.js.map +1 -1
- package/dist/node_modules/react-redux/es/hooks/useSelector.js +1 -1
- package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
- package/dist/node_modules/react-redux/es/hooks/useStore.js +1 -1
- package/dist/node_modules/react-redux/es/hooks/useStore.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
- package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/batch.js +1 -1
- package/dist/node_modules/react-redux/es/utils/batch.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js +1 -1
- package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js +10 -1
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js +10 -1
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.cjs.js +2 -0
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.cjs.js.map +1 -0
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.css.js +2 -0
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.css.js.map +1 -0
- package/dist/node_modules/redux/es/redux.js +1 -1
- package/dist/node_modules/redux/es/redux.js.map +1 -1
- package/dist/node_modules/sdp/sdp.js +1 -1
- package/dist/node_modules/sdp/sdp.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/index.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/index.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/manager.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/socket.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/url.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/url.js.map +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/binary.js +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/binary.js.map +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/index.js +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/index.js.map +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -1
- package/dist/node_modules/style-inject/dist/style-inject.es.js +2 -0
- package/dist/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +1 -1
- package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
- package/dist/services/astproxy.js +1 -1
- package/dist/services/astproxy.js.map +1 -1
- package/dist/styles/Island.styles.js +1 -1
- package/dist/styles/Island.styles.js.map +1 -1
- package/package.json +3 -2
- package/dist/node_modules/engine.io-client/build/esm/index.js +0 -2
- package/dist/node_modules/engine.io-client/build/esm/index.js.map +0 -1
package/dist/App.d.ts
CHANGED
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")
|
|
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
|
|
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(
|
|
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":""}
|
package/dist/_virtual/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.classnames={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/_virtual/index3.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index3.js.map
|
package/dist/_virtual/index4.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.dist={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index4.js.map
|
package/dist/_virtual/index5.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.shim={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index5.js.map
|
package/dist/_virtual/index6.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index6.js.map
|
package/dist/_virtual/index8.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -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"]),
|
|
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,
|
|
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"),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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"),
|
|
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
|
|
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"),
|
|
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,
|
|
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,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,
|
|
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":"
|
|
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"}
|
|
@@ -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"),
|
|
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 {
|
|
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),
|
|
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
|
|
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"),
|
|
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
|