@nethesis/phone-island 0.7.109 → 0.7.111
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.js +1 -1
- package/dist/App.js.map +1 -1
- package/dist/_virtual/arrayLikeToArray.js +2 -0
- package/dist/_virtual/arrayLikeToArray.js.map +1 -0
- package/dist/_virtual/arrayWithHoles.js +2 -0
- package/dist/_virtual/arrayWithHoles.js.map +1 -0
- package/dist/_virtual/browser-ponyfill.js +2 -0
- package/dist/_virtual/browser-ponyfill.js.map +1 -0
- package/dist/_virtual/classCallCheck.js +2 -0
- package/dist/_virtual/classCallCheck.js.map +1 -0
- package/dist/_virtual/createClass.js +2 -0
- package/dist/_virtual/createClass.js.map +1 -0
- package/dist/_virtual/defineProperty.js +2 -0
- package/dist/_virtual/defineProperty.js.map +1 -0
- package/dist/_virtual/getFetch.cjs.js +2 -0
- package/dist/_virtual/getFetch.cjs.js.map +1 -0
- package/dist/_virtual/iterableToArrayLimit.js +2 -0
- package/dist/_virtual/iterableToArrayLimit.js.map +1 -0
- package/dist/_virtual/nonIterableRest.js +2 -0
- package/dist/_virtual/nonIterableRest.js.map +1 -0
- package/dist/_virtual/objectWithoutProperties.js +2 -0
- package/dist/_virtual/objectWithoutProperties.js.map +1 -0
- package/dist/_virtual/objectWithoutPropertiesLoose.js +2 -0
- package/dist/_virtual/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/_virtual/slicedToArray.js +2 -0
- package/dist/_virtual/slicedToArray.js.map +1 -0
- package/dist/_virtual/toPrimitive.js +2 -0
- package/dist/_virtual/toPrimitive.js.map +1 -0
- package/dist/_virtual/toPropertyKey.js +2 -0
- package/dist/_virtual/toPropertyKey.js.map +1 -0
- package/dist/_virtual/typeof.js +2 -0
- package/dist/_virtual/typeof.js.map +1 -0
- package/dist/_virtual/unsupportedIterableToArray.js +2 -0
- package/dist/_virtual/unsupportedIterableToArray.js.map +1 -0
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/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/Hangup.d.ts +1 -1
- 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/RecorderView/Actions.js +1 -1
- package/dist/components/RecorderView/Actions.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/lib/i18n.d.ts +2 -0
- package/dist/lib/i18n.js +2 -0
- package/dist/lib/i18n.js.map +1 -0
- package/dist/node_modules/cross-fetch/dist/browser-ponyfill.js +2 -0
- package/dist/node_modules/cross-fetch/dist/browser-ponyfill.js.map +1 -0
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js +2 -0
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js.map +1 -0
- package/dist/node_modules/i18next/dist/esm/i18next.js +2 -0
- package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/createClass.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/createClass.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/defineProperty.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/inherits.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/inherits.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toArray.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toArray.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +2 -0
- package/dist/node_modules/i18next/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/createClass.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/createClass.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/node_modules/i18next-http-backend/esm/getFetch.cjs.js +2 -0
- package/dist/node_modules/i18next-http-backend/esm/getFetch.cjs.js.map +1 -0
- package/dist/node_modules/i18next-http-backend/esm/index.js +2 -0
- package/dist/node_modules/i18next-http-backend/esm/index.js.map +1 -0
- package/dist/node_modules/i18next-http-backend/esm/request.js +2 -0
- package/dist/node_modules/i18next-http-backend/esm/request.js.map +1 -0
- package/dist/node_modules/i18next-http-backend/esm/utils.js +2 -0
- package/dist/node_modules/i18next-http-backend/esm/utils.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/context.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/defaults.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/unescape.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/unescape.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/utils.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPrimitive.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPropertyKey.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +2 -0
- package/dist/node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/void-elements/index.js +2 -0
- package/dist/node_modules/void-elements/index.js.map +1 -0
- package/package.json +6 -2
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"),n=require("./components/Island.js"),o=require("./components/RestAPI.js"),a=require("./utils/customHooks/useEventListener.js");require("./node_modules/react-redux/es/index.js");var u=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/framer-motion/dist/framer-motion.js");var i=require("./node_modules/js-base64/base64.mjs.js"),d=require("./workers/wake_up.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var
|
|
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"),n=require("./components/Island.js"),o=require("./components/RestAPI.js"),a=require("./utils/customHooks/useEventListener.js");require("./node_modules/react-redux/es/index.js");var u=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/framer-motion/dist/framer-motion.js");var i=require("./node_modules/js-base64/base64.mjs.js"),d=require("./workers/wake_up.js"),l=require("./lib/i18n.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var c=require("./node_modules/react-redux/es/components/Provider.js");function m(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 f=m(e),p=function(m){var p=m.dataConfig,j=m.showAlways,q=void 0!==j&&j,v=i.Base64.atob(p||"").split(":"),E=v[0],h=v[1],_=v[2],x=v[3],k=v[4],b=v[5],w=v[6],S=e.useState(!1),I=S[0],P=S[1],y=e.useState(!1),C=y[0],A=y[1],L=e.useState(!1),N=L[0],R=L[1];e.useEffect((function(){var e=new Worker(d.default,{type:"module"});return e.onmessage=function(e){"wakeup"===e.data&&P(!0)},function(){e.terminate()}}),[]),e.useEffect((function(){N&&C&&(P(!1),A(!1),R(!1))}),[N,C]),a.useEventListener("phone-island-listen-call",(function(e){u.store.dispatch.listen.setUpdateListenStatus(!0,e.to)})),a.useEventListener("phone-island-intrude-call",(function(e){u.store.dispatch.listen.setUpdateIntrudeStatus(!0,e.to)}));var T=e.useState(!0),g=T[0],H=T[1];return e.useEffect((function(){g&&(l.loadI18n(),H(!1))}),[g]),f.default.createElement(f.default.Fragment,null,f.default.createElement(c.default,{store:u.store},f.default.createElement(r.WebRTC,{hostName:E,sipExten:x,sipSecret:k,sipHost:b,sipPort:w,reload:I,reloadedCallback:function(){return A(!0)}},f.default.createElement(o.RestAPI,{hostName:E,username:h,authToken:_},f.default.createElement(s.Socket,{hostName:E,username:h,authToken:_,reload:I,reloadedCallback:function(){return R(!0)}},f.default.createElement(t.Events,{sipHost:b},f.default.createElement(n.Island,{showAlways:q})))))))};p.displayName="PhoneIsland",exports.PhoneIsland=p;
|
|
2
2
|
//# sourceMappingURL=App.js.map
|
package/dist/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener } from './utils'\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 // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-listen-call', (data: any) => {\n store.dispatch.listen.setUpdateListenStatus(true, data.to)\n })\n\n useEventListener('phone-island-intrude-call', (data: any) => {\n store.dispatch.listen.setUpdateIntrudeStatus(true, data.to)\n })\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n >\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","_c","useState","reload","setReload","_d","reloadedWebRTC","setReloadedWebRTC","_e","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","listen","setUpdateListenStatus","to","setUpdateIntrudeStatus","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","username","authToken","Socket","Events","Island","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\nimport loadI18n from './lib/i18n'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener } from './utils'\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 // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-listen-call', (data: any) => {\n store.dispatch.listen.setUpdateListenStatus(true, data.to)\n })\n\n useEventListener('phone-island-intrude-call', (data: any) => {\n store.dispatch.listen.setUpdateIntrudeStatus(true, data.to)\n })\n\n const [firstRenderI18n, setFirstRenderI18n] = useState(true)\n //initialize i18n\n useEffect(() => {\n if (firstRenderI18n) {\n loadI18n()\n setFirstRenderI18n(false)\n }\n }, [firstRenderI18n])\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n >\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","_c","useState","reload","setReload","_d","reloadedWebRTC","setReloadedWebRTC","_e","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","listen","setUpdateListenStatus","to","setUpdateIntrudeStatus","_f","firstRenderI18n","setFirstRenderI18n","loadI18n","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","username","authToken","Socket","Events","Island","displayName"],"mappings":"0kCAgBaA,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,GAG1BW,EAAsBC,EAAAA,UAAkB,GAAvCC,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAClBI,EAAsCH,EAAAA,UAAkB,GAAvDI,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAClCG,EAAsCN,EAAAA,UAAkB,GAAvDO,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAExCG,EAAAA,WAAU,WACR,IAAMC,EAAS,IAAIC,OAAOC,EAAAA,QAAc,CAAEC,KAAM,WAQhD,OAPAH,EAAOI,UAAY,SAACC,GAEC,WAAfA,EAAMC,MACRd,GAAU,EAEd,EAEO,WACLQ,EAAOO,WACT,CACD,GAAE,IAEHR,EAAAA,WAAU,WACJF,GAAkBH,IACpBF,GAAU,GACVG,GAAkB,GAClBG,GAAkB,GAEtB,GAAG,CAACD,EAAgBH,IAEpBc,mBAAiB,4BAA4B,SAACF,GAC5CG,EAAKA,MAACC,SAASC,OAAOC,uBAAsB,EAAMN,EAAKO,GACzD,IAEAL,mBAAiB,6BAA6B,SAACF,GAC7CG,EAAKA,MAACC,SAASC,OAAOG,wBAAuB,EAAMR,EAAKO,GAC1D,IAEM,IAAAE,EAAwCzB,EAAAA,UAAS,GAAhD0B,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,GAS1C,OAPAhB,EAAAA,WAAU,WACJiB,IACFE,EAAAA,WACAD,GAAmB,GAEvB,GAAG,CAACD,IAGFG,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAACE,EAAAA,QAAQ,CAACb,MAAOA,EAAAA,OACfU,UAAAC,cAACG,EAAMA,OAAA,CACLC,SAAU1C,EACV2C,SAAUxC,EACVyC,UAAWxC,EACXyC,QAASxC,EACTyC,QAASxC,EACTG,OAAQA,EACRsC,iBAAkB,WAAM,OAAAlC,GAAkB,KAE1CwB,UAAAC,cAACU,EAAOA,QAAA,CAACN,SAAU1C,EAAWiD,SAAUhD,EAAUiD,UAAWhD,GAC3DmC,EAAC,QAAAC,cAAAa,SACC,CAAAT,SAAU1C,EACViD,SAAUhD,EACViD,UAAWhD,EACXO,OAAQA,EACRsC,iBAAkB,WAAM,OAAA/B,GAAkB,KAE1CqB,EAAAA,QAAAC,cAACc,EAAAA,OAAM,CAACP,QAASxC,GACfgC,UAAAC,cAACe,EAAMA,OAAA,CAAC1D,WAAYA,SAQpC,EAEAJ,EAAY+D,YAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrayLikeToArray.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrayWithHoles.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-ponyfill.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classCallCheck.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createClass.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineProperty.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFetch.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterableToArrayLimit.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonIterableRest.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectWithoutProperties.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectWithoutPropertiesLoose.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slicedToArray.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toPrimitive.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toPropertyKey.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeof.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupportedIterableToArray.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("./Avatar.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("./Avatar.js"),r=require("../AudioBars.js"),a=require("./Progress.js"),i=require("../Button.js"),l=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),o=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),s=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var n=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=c(e),m=function(){var e=u.useSelector((function(e){return e.player})),c=e.audioPlayerTrackType,m=e.audioPlayerTrackName,f=e.audioPlayer,x=e.audioPlayerPlaying,y=u.useSelector((function(e){return e.island})).isOpen,j=d.useDispatch();var v=n.useTranslation().t;return p.default.createElement("div",{className:"pi-flex pi-gap-7 pi-flex-col"},p.default.createElement("div",{className:"pi-flex pi-gap-4"},p.default.createElement(t.Avatar,{type:c}),p.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full"},p.default.createElement("div",{style:{width:y?"202px":"60px"},className:"pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block"},m)),p.default.createElement(r.AudioBars,{audioElement:f&&f.current,size:y?"large":"small"})),y&&p.default.createElement("div",null,p.default.createElement(a.Progress,null),p.default.createElement("div",{className:"pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7"},p.default.createElement(i.Button,{onClick:x?function(){j.player.pauseAudioPlayer()}:function(){j.player.startAudioPlayer((function(){}))},variant:"default",style:{transform:"scale(1.15)"},"data-tooltip-id":"tooltip","data-tooltip-content":"".concat(v(x?"Tooltip.Pause":"Tooltip.Play"))},x?p.default.createElement(l.FontAwesomeIcon,{icon:o.faPause,size:"xl"}):p.default.createElement(l.FontAwesomeIcon,{icon:o.faPlay,size:"xl"})))),p.default.createElement(s.Tooltip,{className:"pi-z-20",id:"tooltip",place:"bottom"}))};exports.KeypadView=m,exports.default=m;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { Avatar } from './Avatar'\nimport { AudioBars } from '../AudioBars'\nimport Progress from './Progress'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayer, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n }\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n }\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <AudioBars\n audioElement={audioPlayer && audioPlayer.current}\n size={isOpen ? 'large' : 'small'}\n />\n </div>\n {isOpen && (\n <div>\n <Progress />\n <div className='pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={audioPlayerPlaying ? 'Pause' : 'Play'}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} size='xl' />\n ) : (\n <FontAwesomeIcon icon={faPlay} size='xl' />\n )}\n </Button>\n </div>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayer","audioPlayerPlaying","isOpen","island","dispatch","useDispatch","React","createElement","className","Avatar","type","style","width","AudioBars","audioElement","current","size","Progress","Button","onClick","pauseAudioPlayer","startAudioPlayer","variant","transform","FontAwesomeIcon","icon","faPause","faPlay","Tooltip","id","place"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { Avatar } from './Avatar'\nimport { AudioBars } from '../AudioBars'\nimport Progress from './Progress'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { useTranslation } from 'react-i18next'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayer, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n }\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n }\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <AudioBars\n audioElement={audioPlayer && audioPlayer.current}\n size={isOpen ? 'large' : 'small'}\n />\n </div>\n {isOpen && (\n <div>\n <Progress />\n <div className='pi-w-full pi-flex pi-justify-center pi-items-center pi-pt-7'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n style={{ transform: 'scale(1.15)' }}\n data-tooltip-id='tooltip'\n data-tooltip-content={audioPlayerPlaying ? `${t('Tooltip.Pause')}` : `${t('Tooltip.Play')}`}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} size='xl' />\n ) : (\n <FontAwesomeIcon icon={faPlay} size='xl' />\n )}\n </Button>\n </div>\n </div>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayer","audioPlayerPlaying","isOpen","island","dispatch","useDispatch","t","useTranslation","React","createElement","className","Avatar","type","style","width","AudioBars","audioElement","current","size","Progress","Button","onClick","pauseAudioPlayer","startAudioPlayer","variant","transform","concat","FontAwesomeIcon","icon","faPause","faPlay","Tooltip","id","place"],"mappings":"wyCAeaA,EAAkC,WACvC,IAAAC,EACJC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,UADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAEC,EAAWN,EAAAM,YAAEC,EAAkBP,EAAAO,mBAE3EC,EAAWP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,iBACrDC,EAAWC,EAAAA,cAUT,IAAAC,EAAMC,qBAEd,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMd,IACdU,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOZ,EAAS,QAAU,QAE5BQ,UAAW,yFAEVX,IAGLS,EAAAA,QAACC,cAAAM,EAAAA,WACCC,aAAchB,GAAeA,EAAYiB,QACzCC,KAAMhB,EAAS,QAAU,WAG5BA,GACCM,EAAA,QAAAC,cAAA,MAAA,KACED,UAAAC,cAACU,EAAQA,SAAG,MACZX,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+DACbF,EAAAA,QAAAC,cAACW,SACC,CAAAC,QAASpB,EA9BrB,WACEG,EAASP,OAAOyB,kBACjB,EAND,WACElB,EAASP,OAAO0B,kBAAiB,WAAQ,GAC1C,EAiCWC,QAAQ,UACRX,MAAO,CAAEY,UAAW,iCACJ,UAAS,uBACkB,GAAAC,OAAGpB,EAAxBL,EAA0B,gBAA0B,kBAEzEA,EACCO,EAAAA,QAACC,cAAAkB,mBAAgBC,KAAMC,EAAAA,QAASX,KAAK,OAErCV,wBAACmB,EAAeA,gBAAA,CAACC,KAAME,SAAQZ,KAAK,UAO9CV,EAAAA,QAAAC,cAACsB,UAAQ,CAAArB,UAAU,UAAUsB,GAAG,UAAUC,MAAM,WAGtD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../../lib/phone/call.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../../lib/phone/call.js"),o=require("../../utils/customHooks/useEventListener.js"),r=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js");require("../../node_modules/socket.io-client/build/esm/index.js"),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/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),p=require("../TransferView/TransferActions.js"),m=require("../../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var f=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var j=require("../../node_modules/react-redux/es/hooks/useSelector.js"),v=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var q=x(t);exports.default=function(){var t=j.useSelector((function(e){return e.currentCall})),x=t.paused,_=t.muted,g=j.useSelector((function(e){return e.currentCall.parked})),E=j.useSelector((function(e){return e.island})),h=E.view,y=E.actionsExpanded,C=j.useSelector((function(e){return e.currentCall.transferring})),w=v.useDispatch();o.useEventListener("phone-island-transfer-call",(function(t){!function(t){e.__awaiter(this,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,n.attendedTransfer(t)];case 1:return e.sent()&&(w.currentCall.updateCurrentCall({transferring:!0,paused:!1}),w.player.playRemoteAudio()),[2]}}))}))}(t.to)}));var b=f.useTranslation().t;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:!!x,onClick:function(){return x?n.unpauseCurrentCall():n.pauseCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":"".concat(b(x?"Tooltip.Play":"Tooltip.Pause"))},x?q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPause})),q.default.createElement(s.Button,{variant:"default",active:!!_,onClick:function(){return _?n.unmuteCurrentCall():n.muteCurrentCall()},"data-tooltip-id":"tooltip","data-tooltip-content":"".concat(b(_?"Tooltip.Unmute":"Tooltip.Mute"))},_?q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophone})),q.default.createElement(s.Button,{active:C,onClick:C?function(){i.sendDTMF("*"),a.store.getState().player.audioPlayerPlaying||w.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),w.player.stopAudioPlayer(),C&&setTimeout((function(){w.currentCall.updateTransferring(!1)}),500)}),500)}:function(){w.island.setIslandView("transfer"!==h?"transfer":"call"),n.pauseCurrentCall()},variant:"default","data-tooltip-id":"tooltip","data-tooltip-content":"".concat(b(C?"Tooltip.Cancel transfer":"Tooltip.Transfer"))},C?q.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",className:"pi-rotate-90",icon:c.faArrowRightArrowLeft})),q.default.createElement(s.Button,{active:y,variant:"transparent",onClick:function(){y?w.island.toggleActionsExpanded(!1):w.island.toggleActionsExpanded(!0)},"data-tooltip-id":"tooltip","data-tooltip-content":"".concat(b(y?"Tooltip.Collapse":"Tooltip.Expand"))},y?q.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faChevronUp}):q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faChevronDown}))),y?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,{active:"keypad"===h,variant:"default",onClick:function(){w.island.setIslandView("keypad"!==h?"keypad":"call")},"data-tooltip-id":"tooltip","data-tooltip-content":b("Tooltip.Keyboard")},q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:d.faGridRound})),q.default.createElement(s.Button,{active:g,variant:"default",onClick:function(){n.park(),w.currentCall.setParked(!0),r.eventDispatch("phone-island-call-parked",{})},"data-tooltip-id":"tooltip","data-tooltip-content":b("Tooltip.Park")},q.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faSquareParking})),C&&q.default.createElement(p.TransferActions,null))):q.default.createElement(q.default.Fragment,null),q.default.createElement(m.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 muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n attendedTransfer,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faArrowDownUpAcrossLine,\n faSquareParking,\n faChevronDown,\n faChevronUp,\n faArrowRightArrowLeft,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faGridRound } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { park } from '../../lib/phone/call'\nimport { eventDispatch, useEventListener } from '../../utils'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n const parked = useSelector((state: RootState) => state.currentCall.parked)\n\n // Get isOpen and view from island store\n const { view, actionsExpanded } = useSelector((state: RootState) => state.island)\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Pause the call\n pauseCurrentCall()\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n // The workarround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n }, 500)\n }\n\n function toggleActionsExpanded() {\n if (actionsExpanded) {\n dispatch.island.toggleActionsExpanded(false)\n } else {\n dispatch.island.toggleActionsExpanded(true)\n }\n }\n\n function parkAction() {\n park()\n dispatch.currentCall.setParked(true)\n eventDispatch('phone-island-call-parked', {})\n }\n\n /**\n * Event listner for phone-island-transfer-call event\n */\n useEventListener('phone-island-transfer-call', (data) => {\n const transferNumber = data.to\n handleAttendedTransfer(transferNumber)\n })\n\n async function handleAttendedTransfer(number: string) {\n // Send attended transfer message\n const transferringMessageSent = await attendedTransfer(number)\n if (transferringMessageSent) {\n // Set transferring and disable pause\n dispatch.currentCall.updateCurrentCall({\n transferring: true,\n paused: false,\n })\n // Play the remote audio element\n dispatch.player.playRemoteAudio()\n }\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={faPause} />\n )}\n </Button>\n\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={muted ? 'Unmute' : 'Mute'}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophone} />\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' className='pi-rotate-90' icon={faArrowRightArrowLeft} />\n )}\n </Button>\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={() => toggleActionsExpanded()}\n data-tooltip-id='tooltip'\n data-tooltip-content={actionsExpanded ? 'Collapse' : 'Expand'}\n >\n {actionsExpanded ? (\n <FontAwesomeIcon className='' size='xl' icon={faChevronUp} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faChevronDown} />\n )}\n </Button>\n </div>\n {/* Actions expanded section */}\n {actionsExpanded ? (\n <>\n {' '}\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n active={view === 'keypad'}\n variant='default'\n onClick={openKeypad}\n data-tooltip-id='tooltip'\n data-tooltip-content='Keyboard'\n >\n <FontAwesomeIcon size='xl' icon={faGridRound} />\n </Button>\n <Button\n active={parked}\n variant='default'\n onClick={parkAction}\n data-tooltip-id='tooltip'\n data-tooltip-content='Park'\n >\n <FontAwesomeIcon size='xl' icon={faSquareParking} />\n </Button>\n {transferring && <TransferActions />}\n </div>\n </>\n ) : (\n <></>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","parked","_b","island","view","actionsExpanded","transferring","dispatch","useDispatch","useEventListener","data","number","attendedTransfer","sent","updateCurrentCall","player","playRemoteAudio","handleAttendedTransfer","to","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPause","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophone","sendDTMF","store","getState","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","setIslandView","faArrowDownUpAcrossLine","faArrowRightArrowLeft","toggleActionsExpanded","faChevronUp","faChevronDown","faGridRound","park","setParked","eventDispatch","faSquareParking","TransferActions","Tooltip","id","place"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n attendedTransfer,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faArrowDownUpAcrossLine,\n faSquareParking,\n faChevronDown,\n faChevronUp,\n faArrowRightArrowLeft,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faGridRound } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { park } from '../../lib/phone/call'\nimport { eventDispatch, useEventListener } from '../../utils'\nimport { useTranslation } from 'react-i18next'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n const parked = useSelector((state: RootState) => state.currentCall.parked)\n\n // Get isOpen and view from island store\n const { view, actionsExpanded } = useSelector((state: RootState) => state.island)\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n // Open the transfer view\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Pause the call\n pauseCurrentCall()\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n // The workarround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n }, 500)\n }\n\n function toggleActionsExpanded() {\n if (actionsExpanded) {\n dispatch.island.toggleActionsExpanded(false)\n } else {\n dispatch.island.toggleActionsExpanded(true)\n }\n }\n\n function parkAction() {\n park()\n dispatch.currentCall.setParked(true)\n eventDispatch('phone-island-call-parked', {})\n }\n\n /**\n * Event listner for phone-island-transfer-call event\n */\n useEventListener('phone-island-transfer-call', (data) => {\n const transferNumber = data.to\n handleAttendedTransfer(transferNumber)\n })\n\n async function handleAttendedTransfer(number: string) {\n // Send attended transfer message\n const transferringMessageSent = await attendedTransfer(number)\n if (transferringMessageSent) {\n // Set transferring and disable pause\n dispatch.currentCall.updateCurrentCall({\n transferring: true,\n paused: false,\n })\n // Play the remote audio element\n dispatch.player.playRemoteAudio()\n }\n }\n\n const { t } = useTranslation()\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 ? `${t('Tooltip.Play')}` : `${t('Tooltip.Pause')}`}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPause} />\n )}\n </Button>\n\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n data-tooltip-id='tooltip'\n data-tooltip-content={muted ? `${t('Tooltip.Unmute')}` : `${t('Tooltip.Mute')}`}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophone} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip'\n data-tooltip-content={\n transferring ? `${t('Tooltip.Cancel transfer')}` : `${t('Tooltip.Transfer')}`\n }\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' className='pi-rotate-90' icon={faArrowRightArrowLeft} />\n )}\n </Button>\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={() => toggleActionsExpanded()}\n data-tooltip-id='tooltip'\n data-tooltip-content={\n actionsExpanded ? `${t('Tooltip.Collapse')}` : `${t('Tooltip.Expand')}`\n }\n >\n {actionsExpanded ? (\n <FontAwesomeIcon className='' size='xl' icon={faChevronUp} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faChevronDown} />\n )}\n </Button>\n </div>\n {/* Actions expanded section */}\n {actionsExpanded ? (\n <>\n {' '}\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n active={view === 'keypad'}\n variant='default'\n onClick={openKeypad}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Keyboard')}\n >\n <FontAwesomeIcon size='xl' icon={faGridRound} />\n </Button>\n <Button\n active={parked}\n variant='default'\n onClick={parkAction}\n data-tooltip-id='tooltip'\n data-tooltip-content={t('Tooltip.Park')}\n >\n <FontAwesomeIcon size='xl' icon={faSquareParking} />\n </Button>\n {transferring && <TransferActions />}\n </div>\n </>\n ) : (\n <></>\n )}\n {/* Buttons tooltips */}\n <Tooltip className='pi-z-20' id='tooltip' place='bottom' />\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","parked","_b","island","view","actionsExpanded","transferring","dispatch","useDispatch","useEventListener","data","number","attendedTransfer","sent","updateCurrentCall","player","playRemoteAudio","handleAttendedTransfer","to","t","useTranslation","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","concat","FontAwesomeIcon","size","icon","faPlay","faPause","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophone","sendDTMF","store","getState","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","setIslandView","faArrowDownUpAcrossLine","faArrowRightArrowLeft","toggleActionsExpanded","faChevronUp","faChevronDown","faGridRound","park","setParked","eventDispatch","faSquareParking","TransferActions","Tooltip","id","place"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/framer-motion/dist/framer-motion.js"),require("../../node_modules/react-redux/es/index.js");var r=require("../../_virtual/framer-motion.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js");function
|
|
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"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var i=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var r=require("../../_virtual/framer-motion.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=l(e);exports.default=function(){var l=e.useState(!1),o=l[0],s=l[1],u=e.useRef(null),d=e.useRef(null),c=r.framerMotion.exports.motion(t.StyledName),p=n.useSelector((function(e){return e.currentCall})).displayName,m=n.useSelector((function(e){return e.listen})),f=i.useTranslation().t;return e.useLayoutEffect((function(){u.current&&d.current&&d.current.clientWidth-u.current.clientWidth>5&&s(!0)})),a.default.createElement(a.default.Fragment,null,(null==m?void 0:m.isIntrude)?a.default.createElement(c,{ref:u,className:"pi-whitespace-nowrap pi-relative pi-overflow-hidden"},a.default.createElement("div",{className:"pi-w-fit pi-relative pi-inline-block ".concat(o&&"animated-text"),ref:d},""!==(null==m?void 0:m.isIntrudeExtension)?"".concat(f("Common.Intrude"))+"-"+(null==m?void 0:m.isIntrudeExtension):"-"),a.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"})):(null==m?void 0:m.isListen)?a.default.createElement(c,{ref:u,className:"pi-whitespace-nowrap pi-relative pi-overflow-hidden"},a.default.createElement("div",{className:"pi-w-fit pi-relative pi-inline-block ".concat(o&&"animated-text"),ref:d},""!==(null==m?void 0:m.isListenExtension)?"".concat(f("Common.Listen"))+"-"+(null==m?void 0:m.isListenExtension):"-"),a.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"})):a.default.createElement(c,{ref:u,className:"pi-whitespace-nowrap pi-relative pi-overflow-hidden"},a.default.createElement("div",{className:"pi-w-fit pi-relative pi-inline-block ".concat(o&&"animated-text"),ref:d},p&&"<unknown>"===p?"PBX":p&&p),a.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 const intrudeListenStatus = useSelector((state: RootState) => state.listen)\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 <>\n {
|
|
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'\nimport { useTranslation } from 'react-i18next'\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 const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n const { t } = useTranslation()\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 <>\n {intrudeListenStatus?.isIntrude ? (\n <NameMotion\n ref={nameContainer}\n className='pi-whitespace-nowrap pi-relative pi-overflow-hidden'\n >\n <div\n className={`pi-w-fit pi-relative pi-inline-block ${animateText && 'animated-text'}`}\n ref={nameText}\n >\n {intrudeListenStatus?.isIntrudeExtension !== ''\n ? `${t('Common.Intrude')}` + '-' + intrudeListenStatus?.isIntrudeExtension\n : '-'}\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 ) : intrudeListenStatus?.isListen ? (\n <NameMotion\n ref={nameContainer}\n className='pi-whitespace-nowrap pi-relative pi-overflow-hidden'\n >\n <div\n className={`pi-w-fit pi-relative pi-inline-block ${animateText && 'animated-text'}`}\n ref={nameText}\n >\n {intrudeListenStatus?.isListenExtension !== ''\n ? `${t('Common.Listen')}` + '-' + intrudeListenStatus?.isListenExtension\n : '-'}\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 <NameMotion\n ref={nameContainer}\n className='pi-whitespace-nowrap pi-relative pi-overflow-hidden'\n >\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 )\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","intrudeListenStatus","listen","t","useTranslation","useLayoutEffect","current","clientWidth","React","isIntrude","createElement","ref","className","concat","isIntrudeExtension","isListen","isListenExtension"],"mappings":"yjCAU0C,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,2BAC1DC,EAAsBH,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMG,MAAN,IAEtDC,EAAMC,qBAYd,OAVAC,EAAAA,iBAAgB,WAEZd,EAAce,SACdb,EAASa,SACTb,EAASa,QAAQC,YAAchB,EAAce,QAAQC,YAAc,GAEnEjB,GAAe,EAEnB,IAGEkB,iDACGP,aAAmB,EAAnBA,EAAqBQ,WACpBD,EAAAA,QAACE,cAAAhB,EACC,CAAAiB,IAAKpB,EACLqB,UAAU,uDAEVJ,UACEE,cAAA,MAAA,CAAAE,UAAW,wCAAwCC,OAAAxB,GAAe,iBAClEsB,IAAKlB,GAEwC,MAA5CQ,eAAAA,EAAqBa,oBAClB,GAAGD,OAAAV,EAAE,mBAAsB,KAAMF,eAAAA,EAAqBa,oBACtD,KAENN,EAAAA,QAAAE,cAAA,MAAA,CAAKE,UAAU,2GAEfX,aAAA,EAAAA,EAAqBc,UACvBP,UAACE,cAAAhB,EACC,CAAAiB,IAAKpB,EACLqB,UAAU,uDAEVJ,UACEE,cAAA,MAAA,CAAAE,UAAW,wCAAwCC,OAAAxB,GAAe,iBAClEsB,IAAKlB,GAEuC,MAA3CQ,eAAAA,EAAqBe,mBAClB,GAAGH,OAAAV,EAAE,kBAAqB,KAAMF,eAAAA,EAAqBe,mBACrD,KAENR,EAAA,QAAAE,cAAA,MAAA,CAAKE,UAAU,0GAGjBJ,EAAC,QAAAE,cAAAhB,GACCiB,IAAKpB,EACLqB,UAAU,uDAEVJ,EACE,QAAAE,cAAA,MAAA,CAAAE,UAAW,wCAAAC,OAAwCxB,GAAe,iBAClEsB,IAAKlB,GAEJI,GAA+B,cAAhBA,EAA8B,MAAQA,GAAeA,GAEvEW,EAAK,QAAAE,cAAA,MAAA,CAAAE,UAAU,0GAKzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js");require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var l=require("../Button.js"),s=require("../AudioBars.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var a=require("./Timer.js"),o=require("./Number.js"),u=require("./DisplayName.js"),d=require("./Avatar.js"),c=require("./Actions.js"),m=require("../Hangup.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var p=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var f=require("../../node_modules/react-redux/es/hooks/useSelector.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=j(e);function E(e,t){return!e&&!t}exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),j=e.incoming,b=e.accepted,g=e.outgoing,q=e.startTime,x=e.paused,_=f.useSelector((function(e){return e.island})).isOpen,y=f.useSelector((function(e){return e.webrtc})).remoteAudioStream,w=f.useSelector((function(e){return e.listen})),h=p.useTranslation().t;return v.default.createElement("div",{className:"pi-bg-red pi-content-center pi-justify-center"},v.default.createElement(t.StyledCallView,{incoming:j,accepted:b,outgoing:g,isOpen:_},v.default.createElement(t.StyledTopContent,{isOpen:_,incoming:j,accepted:b,outgoing:g},(null==w?void 0:w.isListen)?v.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover"),icon:n.faEarListen}):(null==w?void 0:w.isIntrude)?v.default.createElement(i.FontAwesomeIcon,{className:"".concat(_?"pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover":"pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover"),icon:n.faHandPointUp}):v.default.createElement(d.default,null),_?(null==w?void 0:w.isIntrude)?v.default.createElement(t.StyledDetails,null,v.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"}," ",h("Common.Intrude"),(null==w?void 0:w.isIntrudeExtension)?" - ".concat(null==w?void 0:w.isIntrudeExtension):""),b?v.default.createElement(a.default,{startTime:q}):(null==w?void 0:w.isIntrudeExtension)?"".concat(null==w?void 0:w.isIntrudeExtension):""):(null==w?void 0:w.isListen)?v.default.createElement(t.StyledDetails,null,v.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"}," ",h("Common.Listen"),(null==w?void 0:w.isListenExtension)?" - ".concat(null==w?void 0:w.isListenExtension):""),b?v.default.createElement(a.default,{startTime:q}):(null==w?void 0:w.isListenExtension)?"".concat(null==w?void 0:w.isListenExtension):""," "):v.default.createElement(t.StyledDetails,null,v.default.createElement(u.default,null),b?v.default.createElement(a.default,{startTime:q}):v.default.createElement(o.default,null)):null,!_&&!b&&v.default.createElement(u.default,null),!_&&b&&v.default.createElement(a.default,{startTime:q}),b&&y&&v.default.createElement(s.AudioBars,{audioStream:y,paused:x,size:_?"large":"small"})),_&&v.default.createElement("div",{className:"pi-grid pi-gap-y-5"},b&&v.default.createElement(c.default,null),v.default.createElement("div",{className:"pi-grid ".concat(E(g,b)?"pi-grid-cols-2":b?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"," pi-gap-3.5")},v.default.createElement(m.default,{description:h("Tooltip.Hangup and transfer")}),E(g,b)&&v.default.createElement(l.Button,{onClick:r.answerIncomingCall,variant:"green"},v.default.createElement(i.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:n.faPhone}))))))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone, faEarListen, faHandPointUp } from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall state\n const { incoming, accepted, outgoing, startTime, paused } = useSelector(\n (state: RootState) => state.currentCall,\n )\n // Get isOpen and view from island state\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc state\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n return (\n <div className='pi-bg-red pi-content-center pi-justify-center'>\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent\n isOpen={isOpen}\n incoming={incoming}\n accepted={accepted}\n outgoing={outgoing}\n >\n {intrudeListenStatus?.isListen ? (\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faEarListen}\n />\n ) : intrudeListenStatus?.isIntrude ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faHandPointUp}\n />\n ) : (\n <Avatar />\n )}\n {isOpen ? (\n intrudeListenStatus?.isIntrude ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n Intrude\n {intrudeListenStatus?.isIntrudeExtension\n ? ` - ${intrudeListenStatus?.isIntrudeExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} />\n ) : intrudeListenStatus?.isIntrudeExtension ? (\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone, faEarListen, faHandPointUp } from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\nimport Hangup from '../Hangup'\nimport { useTranslation } from 'react-i18next'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall state\n const { incoming, accepted, outgoing, startTime, paused } = useSelector(\n (state: RootState) => state.currentCall,\n )\n // Get isOpen and view from island state\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc state\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n const { t } = useTranslation()\n\n return (\n <div className='pi-bg-red pi-content-center pi-justify-center'>\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent\n isOpen={isOpen}\n incoming={incoming}\n accepted={accepted}\n outgoing={outgoing}\n >\n {intrudeListenStatus?.isListen ? (\n <FontAwesomeIcon\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faEarListen}\n />\n ) : intrudeListenStatus?.isIntrude ? (\n <FontAwesomeIcon\n // className='pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n className={`${\n isOpen\n ? 'pi-relative pi-z-30 pi-h-12 pi-w-12 pi-rounded-sm pi-bg-cover'\n : 'pi-relative pi-z-30 pi-h-6 pi-w-6 pi-rounded-sm pi-bg-cover'\n }`}\n icon={faHandPointUp}\n />\n ) : (\n <Avatar />\n )}\n {isOpen ? (\n intrudeListenStatus?.isIntrude ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Intrude')}\n {intrudeListenStatus?.isIntrudeExtension\n ? ` - ${intrudeListenStatus?.isIntrudeExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} />\n ) : intrudeListenStatus?.isIntrudeExtension ? (\n `${intrudeListenStatus?.isIntrudeExtension}`\n ) : (\n ''\n )}\n </StyledDetails>\n ) : intrudeListenStatus?.isListen ? (\n <StyledDetails>\n <span className='pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base'>\n {' '}\n {t('Common.Listen')}\n {intrudeListenStatus?.isListenExtension\n ? ` - ${intrudeListenStatus?.isListenExtension}`\n : ''}\n </span>\n {accepted ? (\n <Timer startTime={startTime} />\n ) : intrudeListenStatus?.isListenExtension ? (\n `${intrudeListenStatus?.isListenExtension}`\n ) : (\n ''\n )}{' '}\n </StyledDetails>\n ) : (\n <StyledDetails>\n <DisplayName />\n {accepted ? <Timer startTime={startTime} /> : <Number />}\n </StyledDetails>\n )\n ) : null}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer startTime={startTime} />}\n {accepted && remoteAudioStream && (\n <AudioBars\n audioStream={remoteAudioStream}\n paused={paused}\n size={isOpen ? 'large' : 'small'}\n />\n )}\n </StyledTopContent>\n {isOpen && (\n <div className='pi-grid pi-gap-y-5'>\n {accepted && <Actions />}\n <div\n className={`pi-grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'pi-grid-cols-2'\n : accepted\n ? 'pi-grid-cols-1 pi-justify-items-center'\n : 'pi-grid-cols-1 pi-justify-items-end'\n } pi-gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n {/* {incoming || outgoing ? (\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='pi-rotate-135 pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n ) : ( */}\n <Hangup description={t('Tooltip.Hangup and transfer')} />\n {/* )} */}\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button onClick={answerIncomingCall} variant='green'>\n <FontAwesomeIcon className='pi-w-6 pi-h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n </div>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","startTime","paused","isOpen","island","remoteAudioStream","webrtc","intrudeListenStatus","listen","t","useTranslation","React","createElement","className","StyledCallView","StyledTopContent","isListen","FontAwesomeIcon","icon","faEarListen","isIntrude","faHandPointUp","Avatar","StyledDetails","isIntrudeExtension","Timer","concat","isListenExtension","DisplayName","Number","AudioBars","audioStream","size","Actions","Hangup","description","Button","onClick","answerIncomingCall","variant","faPhone"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),o=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/framer-motion.js");var t=require("./Button.js"),r=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),o=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js");var s=require("../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../node_modules/react-i18next/dist/es/context.js");var n=require("../node_modules/react-i18next/dist/es/useTranslation.js");require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var a=require("../node_modules/react-redux/es/hooks/useSelector.js"),l=require("../node_modules/react-redux/es/hooks/useDispatch.js"),u=require("../_virtual/framer-motion.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=d(e);exports.default=function(e){e.clickCallback,e.isDestination;var d=e.description,m=a.useSelector((function(e){return e.currentCall})),p=m.transferring,f=m.incoming,j=l.useDispatch();var _=n.useTranslation().t;return c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pi-flex pi-justify-center ".concat(p&&"pi-w-full")},c.default.createElement(u.framerMotion.exports.motion.div,{className:"".concat(p&&d?"pi-w-full":"pi-w-12")},c.default.createElement(t.Button,{onClick:function(){return f?i.hangupAllExtensions():i.hangupCurrentCall(),void(p&&setTimeout((function(){j.alerts.setAlert("call_transfered"),setTimeout((function(){j.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":d&&p?d:"".concat(_("Tooltip.Hangup"))},c.default.createElement(r.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:o.faPhone}),p&&d&&c.default.createElement(u.framerMotion.exports.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},d)))),c.default.createElement(s.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 '@fortawesome/free-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { hangupAllExtensions } from '../lib/phone/call'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination, description }) => {\n const { transferring, incoming } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n }, 2000)\n }, 300)\n }\n }\n\n 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?:
|
|
1
|
+
{"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@fortawesome/free-solid-svg-icons'\nimport { hangupCurrentCall } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { Tooltip } from 'react-tooltip/dist/react-tooltip.min.cjs'\nimport { hangupAllExtensions } from '../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({ clickCallback, isDestination, description }) => {\n const { transferring, incoming } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n }, 2000)\n }, 300)\n }\n }\n\n const { t } = useTranslation()\n\n 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={\n description && transferring ? description : `${t('Tooltip.Hangup')}`\n }\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?: any\n}\n"],"names":["_a","isDestination","description","_b","useSelector","state","currentCall","transferring","incoming","dispatch","useDispatch","t","useTranslation","React","createElement","Fragment","className","concat","motion","div","Button","onClick","hangupAllExtensions","hangupCurrentCall","setTimeout","alerts","setAlert","removeAlert","variant","FontAwesomeIcon","icon","faPhone","framerMotion","exports","style","height","Tooltip","id","place"],"mappings":"80CAmBgC,SAACA,mBAA8BA,EAAAC,cAAE,IAAAC,EAAWF,EAAAE,YACpEC,EAA6BC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAA9EC,iBAAcC,aAChBC,EAAWC,EAAAA,cAmBT,IAAAC,EAAMC,qBAEd,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,UAAAC,cAAA,MAAA,CAAKE,UAAW,6BAAAC,OAA6BV,GAAgB,cAE3DM,EAAAA,QAAAC,cAACI,8BAAOC,KAAIH,UAAW,UAAGT,GAAgBL,EAAc,YAAc,YACpEW,EAAAA,QAAAC,cAACM,SACC,CAAAC,QAAS,WAAM,OAxBnBb,EACFc,EAAAA,sBAEAC,EAAAA,yBAGEhB,GACFiB,YAAW,WACTf,EAASgB,OAAOC,SAAS,mBACzBF,YAAW,WACTf,EAASgB,OAAOE,YAAY,kBAC7B,GAAE,IACJ,GAAE,KAYkB,EACfC,QAAQ,MACRZ,UAAU,2EACM,kBAAA,iCAEdd,GAAeK,EAAeL,EAAc,GAAGe,OAAAN,EAAE,oBAGnDE,EAAC,QAAAC,cAAAe,mBAAgBb,UAAU,8BAA8Bc,KAAMC,EAAAA,UAC9DxB,GAAgBL,GACfW,EAAA,QAAAC,cAACI,EAAMc,aAAAC,QAAAf,OAACC,IAAG,CACTe,MAAO,CAAEC,OAAQ,QACjBnB,UAAU,2CAETd,MAMXW,EAAAA,QAAAC,cAACsB,UAAQ,CAAApB,UAAU,UAAUqB,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"),require("../node_modules/react-tooltip/dist/react-tooltip.min.cjs.js");var s=require("./TransferView/TransferList.js"),o=require("./RecorderView/index.js"),d=require("./IslandMotion.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../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"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js"),require("../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../node_modules/react-i18next/dist/es/context.js"),require("../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("./TransferView/TransferList.js"),o=require("./RecorderView/index.js"),d=require("./IslandMotion.js"),c=require("./IslandDrag.js"),f=require("./Close.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 y=j(e),E=function(j){var E=j.showAlways,q=m.useSelector((function(e){return e.currentCall})),w=q.incoming,x=q.accepted,V=q.outgoing,_=q.transferring,h=m.useSelector((function(e){return e.island})).view,b=m.useSelector((function(e){return e.alerts.status})).activeAlertsCount,v=m.useSelector((function(e){return e.player})).audioPlayerLoop,g=e.useRef(null),P=p.useDispatch(),I=e.useRef(null),R=e.useRef(null),A=e.useRef(null),C=e.useRef(null),k=e.useRef(null);t.useIsomorphicLayoutEffect((function(){P.player.updatePlayer({audioPlayer:I,localAudio:R,localVideo:C,remoteVideo:k,remoteAudio:A})}),[]),e.useEffect((function(){(w||V)&&P.island.setIslandView("call")}),[w,V]);var S=e.useState(""),T=S[0],L=S[1];return e.useEffect((function(){setTimeout((function(){L(h)}),200)}),[h]),y.default.createElement("div",{ref:g,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||x||E||b>0||"player"===h||"recorder"===h)&&y.default.createElement(y.default.Fragment,null,y.default.createElement(c.IslandDrag,{islandContainerRef:g},y.default.createElement(n.default,{isVisible:"keypad"===h||"transfer"===h||_}),y.default.createElement(d.IslandMotion,null,y.default.createElement(u.AlertGuard,null,"call"===T?y.default.createElement(i.default,{forView:"call"},y.default.createElement(r.default,null)):"keypad"===T?y.default.createElement(i.default,{forView:"keypad"},y.default.createElement(l.default,null)):"transfer"===T?y.default.createElement(i.default,{forView:"transfer"},y.default.createElement(s.TransferListView,null)):"player"===T?y.default.createElement(i.default,{forView:"player"},y.default.createElement(a.KeypadView,null)):"recorder"===T?y.default.createElement(i.default,{forView:"recorder"},y.default.createElement(o.RecorderView,null)):y.default.createElement(y.default.Fragment,null))),y.default.createElement(f.Close,null))),y.default.createElement("div",{className:"pi-hidden"},y.default.createElement("audio",{loop:v,ref:I}),y.default.createElement("audio",{muted:!0,ref:R}),y.default.createElement("audio",{autoPlay:!0,ref:A}),y.default.createElement("video",{muted:!0,autoPlay:!0,ref:C}),y.default.createElement("video",{autoPlay:!0,muted:!0,ref:k})))};E.displayName="Island",exports.Island=E;
|
|
2
2
|
//# sourceMappingURL=Island.js.map
|