@nethesis/phone-island 1.1.6 → 1.1.8-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AlertView/index.js +1 -1
- package/dist/components/AlertView/index.js.map +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
- package/dist/components/AudioPlayerView/Progress.js +1 -1
- package/dist/components/AudioPlayerView/Progress.js.map +1 -1
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/Number.js +1 -1
- package/dist/components/CallView/Number.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/ConferenceView/index.js +1 -1
- package/dist/components/ConferenceView/index.js.map +1 -1
- package/dist/components/ContactView/ContactListView.js +1 -1
- package/dist/components/ContactView/ContactListView.js.map +1 -1
- package/dist/components/ContactView/TransferActions.js +1 -1
- package/dist/components/ContactView/TransferActions.js.map +1 -1
- package/dist/components/CustomThemedTooltip.js.map +1 -1
- package/dist/components/Events.js +1 -1
- package/dist/components/Events.js.map +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/IslandDrag.js +1 -1
- package/dist/components/IslandDrag.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/KeypadView/Actions.js +1 -1
- package/dist/components/KeypadView/Actions.js.map +1 -1
- package/dist/components/KeypadView/index.js +1 -1
- package/dist/components/KeypadView/index.js.map +1 -1
- package/dist/components/PhysicalRecorderView/index.js +1 -1
- package/dist/components/PhysicalRecorderView/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/SettingsView/AudioView.js +1 -1
- package/dist/components/SettingsView/AudioView.js.map +1 -1
- package/dist/components/SettingsView/MicrophoneView.js +1 -1
- package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
- package/dist/components/SettingsView/ThemeView.js +1 -1
- package/dist/components/SettingsView/ThemeView.js.map +1 -1
- package/dist/components/SettingsView/VideoInputView.js +1 -1
- package/dist/components/SettingsView/VideoInputView.js.map +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/StreamingAnswerView/index.js +1 -1
- package/dist/components/StreamingAnswerView/index.js.map +1 -1
- package/dist/components/StreamingImage/index.js +1 -1
- package/dist/components/StreamingImage/index.js.map +1 -1
- package/dist/components/StreamingUnlock/index.js +2 -0
- package/dist/components/StreamingUnlock/index.js.map +1 -0
- package/dist/components/StreamingVideo/index.js +2 -0
- package/dist/components/StreamingVideo/index.js.map +1 -0
- package/dist/components/SwitchInputView/DropdownContent.js +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
- package/dist/components/SwitchInputView/Index.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
- package/dist/components/TransferButton.js +1 -1
- package/dist/components/TransferButton.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/events/PlayerEvents.js +1 -1
- package/dist/events/PlayerEvents.js.map +1 -1
- package/dist/events/RecorderEvents.js +1 -1
- package/dist/events/RecorderEvents.js.map +1 -1
- package/dist/events/SocketEvents.js +1 -1
- package/dist/events/SocketEvents.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/darkTheme.js +1 -1
- package/dist/lib/darkTheme.js.map +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/devices/devices.js.map +1 -1
- package/dist/lib/island/island.js +1 -1
- package/dist/lib/island/island.js.map +1 -1
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/phone/video.js +1 -1
- package/dist/lib/phone/video.js.map +1 -1
- package/dist/lib/storage/local_storage.js +1 -1
- package/dist/lib/storage/local_storage.js.map +1 -1
- package/dist/lib/streaming/streamingVideo.js +2 -0
- package/dist/lib/streaming/streamingVideo.js.map +1 -0
- package/dist/lib/streaming/whepPlayer.js +2 -0
- package/dist/lib/streaming/whepPlayer.js.map +1 -0
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/island.js +1 -1
- package/dist/models/island.js.map +1 -1
- package/dist/models/motions.js +1 -1
- package/dist/models/motions.js.map +1 -1
- package/dist/models/streaming.js +1 -1
- package/dist/models/streaming.js.map +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/public/locales/en/translation.json.js +1 -1
- package/dist/public/locales/it/translation.json.js +1 -1
- package/dist/services/user.js +1 -1
- package/dist/services/user.js.map +1 -1
- package/dist/utils/customHooks/useStreamingAspectRatio.js +2 -0
- package/dist/utils/customHooks/useStreamingAspectRatio.js.map +1 -0
- package/dist/utils/customHooks/useStreamingContentHeight.js +2 -0
- package/dist/utils/customHooks/useStreamingContentHeight.js.map +1 -0
- package/dist/utils/customHooks/useStreamingVideo.js +2 -0
- package/dist/utils/customHooks/useStreamingVideo.js.map +1 -0
- package/dist/utils/streaming/previewSize.js +2 -0
- package/dist/utils/streaming/previewSize.js.map +1 -0
- package/dist/utils/streaming/streamingUtils.js +1 -1
- package/dist/utils/streaming/streamingUtils.js.map +1 -1
- package/dist/utils/streaming/videoSource.js +2 -0
- package/dist/utils/streaming/videoSource.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../Button.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js");var o=require("../CustomThemedTooltip.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js"),s=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=d(e);exports.default=function(e){var d=e.uaType,u=n.useSelector(function(e){return e.alerts}).data,p=n.useSelector(function(e){return e.currentUser}).default_device,m=s.useDispatch(),f=Object.values(u).filter(function(e){return e.active}),v=f.length>0?f[f.length-1]:null;return v&&c.default.createElement("div",{className:"pi-relative pi-rounded-md pi-w-full pi-flex"},c.default.createElement("div",{className:"pi-flex pi-items-center"},c.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-bg-green-200 dark:pi-bg-green-900":"pi-bg-rose-200 dark:pi-bg-rose-900")},c.default.createElement(t.FontAwesomeIcon,{icon:"call_transfered"===(null==v?void 0:v.type)?r.faCircleCheck:r.faCircleXmark,className:"pi-h-5 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-text-green-700 dark:pi-text-green-200":"pi-text-rose-700 dark:pi-text-rose-200"),"aria-hidden":"true"})),c.default.createElement("div",{className:"ml-3"},c.default.createElement("h3",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property"},i.t("Errors.".concat(null==v?void 0:v.type))),c.default.createElement("div",{className:"pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5"},i.t("Errors.".concat(null==v?void 0:v.message))))),c.default.createElement(l.Button,{variant:"transparent",onClick:function(){"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?window.location.reload():"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?a.eventDispatch("phone-island-reload-component",{force:!0}):(m.alerts.removeAllAlerts(),a.eventDispatch("phone-island-all-alerts-removed",{}))},className:"pi-absolute pi--right-6 pi-transform pi--translate-y-1/2","data-tooltip-id":"tooltip-close-alert","data-tooltip-content":"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)||"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?"".concat(i.t("Tooltip.Reload")):"".concat(i.t("Tooltip.Close alert"))},c.default.createElement(t.FontAwesomeIcon,{icon:"nethlink"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)||"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?r.faArrowRotateRight:r.faTimes,className:"pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4"})),c.default.createElement(o.CustomThemedTooltip,{id:"tooltip-close-alert",place:"left"}))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),r=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../Button.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),a=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../services/user.js");var o=require("../CustomThemedTooltip.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js"),s=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=d(e);exports.default=function(e){var d=e.uaType,u=n.useSelector(function(e){return e.alerts}).data,p=n.useSelector(function(e){return e.currentUser}).default_device,m=s.useDispatch(),f=Object.values(u).filter(function(e){return e.active}),v=f.length>0?f[f.length-1]:null;return v&&c.default.createElement("div",{className:"pi-relative pi-rounded-md pi-w-full pi-flex"},c.default.createElement("div",{className:"pi-flex pi-items-center"},c.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-bg-green-200 dark:pi-bg-green-900":"pi-bg-rose-200 dark:pi-bg-rose-900")},c.default.createElement(t.FontAwesomeIcon,{icon:"call_transfered"===(null==v?void 0:v.type)?r.faCircleCheck:r.faCircleXmark,className:"pi-h-5 pi-w-10 ".concat("call_transfered"===(null==v?void 0:v.type)?"pi-text-green-700 dark:pi-text-green-200":"pi-text-rose-700 dark:pi-text-rose-200"),"aria-hidden":"true"})),c.default.createElement("div",{className:"ml-3"},c.default.createElement("h3",{className:"pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property"},i.t("Errors.".concat(null==v?void 0:v.type))),c.default.createElement("div",{className:"pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5"},i.t("Errors.".concat(null==v?void 0:v.message))))),c.default.createElement(l.Button,{variant:"transparent",onClick:function(){"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)?window.location.reload():"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?a.eventDispatch("phone-island-reload-component",{force:!0}):(m.alerts.removeAllAlerts(),a.eventDispatch("phone-island-all-alerts-removed",{}))},className:"pi-absolute pi--right-6 pi-transform pi--translate-y-1/2","data-tooltip-id":"tooltip-close-alert","data-tooltip-content":"nethlink"===(null==p?void 0:p.type)&&"mobile"===d&&"call_transfered"!==(null==v?void 0:v.type)||"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?"".concat(i.t("Tooltip.Reload")):"".concat(i.t("Tooltip.Close alert"))},c.default.createElement(t.FontAwesomeIcon,{icon:"nethlink"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)||"webrtc"===(null==p?void 0:p.type)&&"call_transfered"!==(null==v?void 0:v.type)?r.faArrowRotateRight:r.faTimes,className:"pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4"})),c.default.createElement(o.CustomThemedTooltip,{id:"tooltip-close-alert",place:"left"}))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AlertView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faTimes,\n faCircleXmark,\n faCircleCheck,\n faArrowRotateRight,\n} from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\n/**\n * Shows user alerts\n */\nconst AlertView: FC<AlertViewProp> = ({ uaType }) => {\n const { data } = useSelector((state: RootState) => state.alerts)\n const { default_device } = useSelector((state: RootState) => state.currentUser)\n const dispatch = useDispatch<Dispatch>()\n\n // Extract active alerts\n const activeAlerts = Object.values(data).filter((alert: any) => alert.active)\n\n // Display the latest active alert\n const latestAlert = activeAlerts.length > 0 ? activeAlerts[activeAlerts.length - 1] : null\n\n const handleClearAllAlerts = () => {\n dispatch.alerts.removeAllAlerts()\n eventDispatch('phone-island-all-alerts-removed', {})\n }\n\n const reloadPhoneIsland = () => {\n window.location.reload()\n }\n\n const handleReloadComponent = () => {\n eventDispatch('phone-island-reload-component', { force: true })\n }\n\n return (\n latestAlert && (\n <div className='pi-relative pi-rounded-md pi-w-full pi-flex'>\n <div className='pi-flex pi-items-center'>\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-bg-green-200 dark:pi-bg-green-900'\n : 'pi-bg-rose-200 dark:pi-bg-rose-900'\n }`}\n >\n {/* Icon */}\n <FontAwesomeIcon\n icon={latestAlert?.type === 'call_transfered' ? faCircleCheck : faCircleXmark}\n className={`pi-h-5 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-text-green-700 dark:pi-text-green-200'\n : 'pi-text-rose-700 dark:pi-text-rose-200'\n }`}\n aria-hidden='true'\n />\n </div>\n\n <div className='ml-3'>\n <h3 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property'>\n {t(`Errors.${latestAlert?.type}`)}\n </h3>\n <div className='pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5'>\n {t(`Errors.${latestAlert?.message}`)}\n </div>\n </div>\n </div>\n\n {/* Close button */}\n <Button\n variant='transparent'\n onClick={() => {\n if (default_device?.type === 'nethlink' && uaType === 'mobile' && latestAlert?.type !== 'call_transfered') {\n reloadPhoneIsland()\n } else if (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered') {\n handleReloadComponent()\n } else {\n handleClearAllAlerts()\n }\n }}\n className='pi-absolute pi--right-6 pi-transform pi--translate-y-1/2'\n data-tooltip-id='tooltip-close-alert'\n data-tooltip-content={\n (default_device?.type === 'nethlink' && uaType === 'mobile' && latestAlert?.type !== 'call_transfered') ||\n (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered')\n ? `${t('Tooltip.Reload')}`\n : `${t('Tooltip.Close alert')}`\n }\n >\n <FontAwesomeIcon\n icon={\n (default_device?.type === 'nethlink' && latestAlert?.type !== 'call_transfered') ||\n (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered')\n ? faArrowRotateRight\n : faTimes\n }\n className='pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4'\n />\n </Button>\n <CustomThemedTooltip id='tooltip-close-alert' place='left' />\n </div>\n )\n )\n}\n\ninterface AlertViewProp {\n uaType?: string\n}\n\nexport default AlertView\n"],"names":["_a","uaType","data","useSelector","state","alerts","default_device","currentUser","dispatch","useDispatch","activeAlerts","Object","values","filter","alert","active","latestAlert","length","React","createElement","className","concat","type","FontAwesomeIcon","icon","faCircleCheck","faCircleXmark","t","message","Button","variant","onClick","window","location","reload","eventDispatch","force","removeAllAlerts","faArrowRotateRight","faTimes","CustomThemedTooltip","id","place"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AlertView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faTimes,\n faCircleXmark,\n faCircleCheck,\n faArrowRotateRight,\n} from '@fortawesome/free-solid-svg-icons'\nimport { Button } from '../Button'\nimport { t } from 'i18next'\nimport { eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\n/**\n * Shows user alerts\n */\nconst AlertView: FC<AlertViewProp> = ({ uaType }) => {\n const { data } = useSelector((state: RootState) => state.alerts)\n const { default_device } = useSelector((state: RootState) => state.currentUser)\n const dispatch = useDispatch<Dispatch>()\n\n // Extract active alerts\n const activeAlerts = Object.values(data).filter((alert: any) => alert.active)\n\n // Display the latest active alert\n const latestAlert = activeAlerts.length > 0 ? activeAlerts[activeAlerts.length - 1] : null\n\n const handleClearAllAlerts = () => {\n dispatch.alerts.removeAllAlerts()\n eventDispatch('phone-island-all-alerts-removed', {})\n }\n\n const reloadPhoneIsland = () => {\n window.location.reload()\n }\n\n const handleReloadComponent = () => {\n eventDispatch('phone-island-reload-component', { force: true })\n }\n\n return (\n latestAlert && (\n <div className='pi-relative pi-rounded-md pi-w-full pi-flex'>\n <div className='pi-flex pi-items-center'>\n <div\n className={`pi-flex pi-items-center pi-justify-center pi-flex-shrink-0 pi-mr-4 pi-rounded-full pi-h-10 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-bg-green-200 dark:pi-bg-green-900'\n : 'pi-bg-rose-200 dark:pi-bg-rose-900'\n }`}\n >\n {/* Icon */}\n <FontAwesomeIcon\n icon={latestAlert?.type === 'call_transfered' ? faCircleCheck : faCircleXmark}\n className={`pi-h-5 pi-w-10 ${\n latestAlert?.type === 'call_transfered'\n ? 'pi-text-green-700 dark:pi-text-green-200'\n : 'pi-text-rose-700 dark:pi-text-rose-200'\n }`}\n aria-hidden='true'\n />\n </div>\n\n <div className='ml-3'>\n <h3 className='pi-text-lg pi-font-medium pi-text-gray-900 dark:pi-text-gray-50 pi-dark:text-rose-100 margin-block-property'>\n {t(`Errors.${latestAlert?.type}`)}\n </h3>\n <div className='pi-text-sm pi-font-normal pi-text-gray-700 dark:pi-text-gray-200 pi-dark:text-rose-200 pi-leading-5'>\n {t(`Errors.${latestAlert?.message}`)}\n </div>\n </div>\n </div>\n\n {/* Close button */}\n <Button\n variant='transparent'\n onClick={() => {\n if (default_device?.type === 'nethlink' && uaType === 'mobile' && latestAlert?.type !== 'call_transfered') {\n reloadPhoneIsland()\n } else if (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered') {\n handleReloadComponent()\n } else {\n handleClearAllAlerts()\n }\n }}\n className='pi-absolute pi--right-6 pi-transform pi--translate-y-1/2'\n data-tooltip-id='tooltip-close-alert'\n data-tooltip-content={\n (default_device?.type === 'nethlink' && uaType === 'mobile' && latestAlert?.type !== 'call_transfered') ||\n (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered')\n ? `${t('Tooltip.Reload')}`\n : `${t('Tooltip.Close alert')}`\n }\n >\n <FontAwesomeIcon\n icon={\n (default_device?.type === 'nethlink' && latestAlert?.type !== 'call_transfered') ||\n (default_device?.type === 'webrtc' && latestAlert?.type !== 'call_transfered')\n ? faArrowRotateRight\n : faTimes\n }\n className='pi-text-gray-700 dark:pi-text-gray-50 pi-w-4 pi-h-4'\n />\n </Button>\n <CustomThemedTooltip id='tooltip-close-alert' place='left' />\n </div>\n )\n )\n}\n\ninterface AlertViewProp {\n uaType?: string\n}\n\nexport default AlertView\n"],"names":["_a","uaType","data","useSelector","state","alerts","default_device","currentUser","dispatch","useDispatch","activeAlerts","Object","values","filter","alert","active","latestAlert","length","React","createElement","className","concat","type","FontAwesomeIcon","icon","faCircleCheck","faCircleXmark","t","message","Button","variant","onClick","window","location","reload","eventDispatch","force","removeAllAlerts","faArrowRotateRight","faTimes","CustomThemedTooltip","id","place"],"mappings":"20BAqBqC,SAACA,GAAE,IAAAC,EAAMD,EAAAC,OACpCC,EAASC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,cACjDC,EAAmBH,cAAY,SAACC,GAAqB,OAAAA,EAAMG,6BAC7DC,EAAWC,EAAAA,cAGXC,EAAeC,OAAOC,OAAOV,GAAMW,OAAO,SAACC,GAAe,OAAAA,EAAMC,MAAM,GAGtEC,EAAcN,EAAaO,OAAS,EAAIP,EAAaA,EAAaO,OAAS,GAAK,KAetF,OACED,GACEE,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+CACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2BACbF,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,sGACTC,OAAsB,qBAAtBL,aAAW,EAAXA,EAAaM,MACT,uCACA,uCAINJ,EAAAA,QAAAC,cAACI,EAAAA,gBAAe,CACdC,KAA4B,qBAAtBR,aAAW,EAAXA,EAAaM,MAA6BG,EAAaA,cAAGC,EAAaA,cAC7EN,UAAW,kBACTC,OAAsB,qBAAtBL,aAAA,EAAAA,EAAaM,MACT,2CACA,0CAEM,cAAA,UAIhBJ,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,QACbF,EAAA,QAAAC,cAAA,KAAA,CAAIC,UAAU,+GACXO,EAACA,EAAC,UAAUN,OAAAL,eAAAA,EAAaM,QAE5BJ,UAAAC,cAAA,MAAA,CAAKC,UAAU,uGACZO,EAAAA,EAAE,iBAAUX,aAAW,EAAXA,EAAaY,aAMhCV,EAAA,QAAAC,cAACU,EAAMA,OACL,CAAAC,QAAQ,cACRC,QAAS,WACsB,cAAzBzB,aAAc,EAAdA,EAAgBgB,OAAkC,WAAXrB,GAA6C,qBAAtBe,aAAW,EAAXA,EAAaM,MA5CvFU,OAAOC,SAASC,SA8C4B,YAAzB5B,eAAAA,EAAgBgB,OAA2C,qBAAtBN,aAAA,EAAAA,EAAaM,MA1CrEa,EAAAA,cAAc,gCAAiC,CAAEC,OAAO,KATxD5B,EAASH,OAAOgC,kBAChBF,gBAAc,kCAAmC,CAAA,GAuD1C,EACDf,UAAU,6EACM,sBAAqB,uBAET,cAAzBd,aAAc,EAAdA,EAAgBgB,OAAkC,WAAXrB,GAA6C,qBAAtBe,eAAAA,EAAaM,OAClD,YAAzBhB,eAAAA,EAAgBgB,OAA2C,qBAAtBN,aAAW,EAAXA,EAAaM,MAC/C,GAAGD,OAAAM,IAAE,mBACL,GAAGN,OAAAM,IAAE,yBAGXT,EAAAA,QAACC,cAAAI,kBACC,CAAAC,KAC4B,cAAzBlB,aAAA,EAAAA,EAAgBgB,OAA6C,qBAAtBN,aAAA,EAAAA,EAAaM,OAC3B,YAAzBhB,eAAAA,EAAgBgB,OAA2C,qBAAtBN,aAAW,EAAXA,EAAaM,MAC/CgB,EAAkBA,mBAClBC,UAENnB,UAAU,yDAGdF,UAAAC,cAACqB,EAAmBA,oBAAA,CAACC,GAAG,sBAAsBC,MAAM,SAI5D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../utils/customHooks/useEventListener.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("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../services/user.js");var a=require("../Button.js"),r=require("../CustomThemedTooltip.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var n=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),l=require("../../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=p(e),c=function(){var e=l.useSelector(function(e){return e.player}).audioPlayerPlaying,p=n.useTranslation().t,c=u.useDispatch();function m(){c.player.startAudioPlayer(function(){}),s.eventDispatch("phone-island-audio-player-played",{})}function f(){c.player.pauseAudioPlayer(),s.eventDispatch("phone-island-audio-player-paused",{})}return o.useEventListener("phone-island-audio-player-play",function(e){m()}),o.useEventListener("phone-island-audio-player-pause",function(e){f()}),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto"},d.default.createElement(a.Button,{variant:"transparent",disabled:!0,className:"pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faDownLeftAndUpRightToCenter,className:"pi-w-6 pi-h-6"})),d.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-flex-grow"},d.default.createElement(a.Button,{onClick:e?f:m,variant:"default",className:"pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center","data-tooltip-id":"tooltip-confirm-play-pause-player","data-tooltip-content":e?p("Tooltip.Pause")||"":p("Tooltip.Play")||""},e?d.default.createElement(t.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-6 pi-w-6"}):d.default.createElement(t.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-6 pi-w-6"}))),d.default.createElement("div",{onClick:function(){return c.island.setIslandView("settings")},"data-tooltip-id":"tooltip-settings-view-recorder","data-tooltip-content":p("Tooltip.Go to settings")||"",className:"pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none"},d.default.createElement(t.FontAwesomeIcon,{icon:i.faGear,className:"pi-h-6 pi-w-6"})),d.default.createElement(r.CustomThemedTooltip,{id:"tooltip-settings-view-recorder",place:"top"}),d.default.createElement(r.CustomThemedTooltip,{id:"tooltip-pause-audio-player",place:"bottom"}),d.default.createElement(r.CustomThemedTooltip,{id:"tooltip-confirm-play-pause-player",place:"top"}))};exports.PlayerFooterActions=c,exports.default=c;
|
|
2
2
|
//# sourceMappingURL=PlayerFooterActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerFooterActions.js","sources":["../../../src/components/AudioPlayerView/PlayerFooterActions.tsx"],"sourcesContent":["import React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlay,\n faPause,\n faDownLeftAndUpRightToCenter,\n faGear,\n} from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\nimport { Button } from '../Button'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useTranslation } from 'react-i18next'\n\nexport const PlayerFooterActions: FC<PlayerFooterActionsTypes> = () => {\n const { audioPlayerPlaying } = useSelector((state: RootState) => state.player)\n const { t } = useTranslation()\n\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n eventDispatch('phone-island-audio-player-played', {})\n }\n useEventListener('phone-island-audio-player-play', (data: {}) => {\n startPlaying()\n })\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n eventDispatch('phone-island-audio-player-paused', {})\n }\n useEventListener('phone-island-audio-player-pause', (data: {}) => {\n pausePlaying()\n })\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button \n variant='transparent' \n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-play-pause-player'\n data-tooltip-content={audioPlayerPlaying ? t('Tooltip.Pause') || '' : t('Tooltip.Play') || ''}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} className='pi-h-6 pi-w-6' />\n ) : (\n <FontAwesomeIcon icon={faPlay} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n <CustomThemedTooltip id='tooltip-pause-audio-player' place='bottom' />\n <CustomThemedTooltip id='tooltip-confirm-play-pause-player' place='top' />\n </div>\n )\n}\n\nexport default PlayerFooterActions\nexport interface PlayerFooterActionsTypes {}\n"],"names":["PlayerFooterActions","audioPlayerPlaying","useSelector","state","player","t","useTranslation","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faPause","faPlay","island","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlayerFooterActions.js","sources":["../../../src/components/AudioPlayerView/PlayerFooterActions.tsx"],"sourcesContent":["import React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { useDispatch } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlay,\n faPause,\n faDownLeftAndUpRightToCenter,\n faGear,\n} from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\nimport { Button } from '../Button'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useTranslation } from 'react-i18next'\n\nexport const PlayerFooterActions: FC<PlayerFooterActionsTypes> = () => {\n const { audioPlayerPlaying } = useSelector((state: RootState) => state.player)\n const { t } = useTranslation()\n\n const dispatch = useDispatch<Dispatch>()\n\n function startPlaying() {\n dispatch.player.startAudioPlayer(() => {})\n eventDispatch('phone-island-audio-player-played', {})\n }\n useEventListener('phone-island-audio-player-play', (data: {}) => {\n startPlaying()\n })\n\n function pausePlaying() {\n dispatch.player.pauseAudioPlayer()\n eventDispatch('phone-island-audio-player-paused', {})\n }\n useEventListener('phone-island-audio-player-pause', (data: {}) => {\n pausePlaying()\n })\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button \n variant='transparent' \n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n <Button\n onClick={audioPlayerPlaying ? pausePlaying : startPlaying}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-play-pause-player'\n data-tooltip-content={audioPlayerPlaying ? t('Tooltip.Pause') || '' : t('Tooltip.Play') || ''}\n >\n {audioPlayerPlaying ? (\n <FontAwesomeIcon icon={faPause} className='pi-h-6 pi-w-6' />\n ) : (\n <FontAwesomeIcon icon={faPlay} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n <CustomThemedTooltip id='tooltip-pause-audio-player' place='bottom' />\n <CustomThemedTooltip id='tooltip-confirm-play-pause-player' place='top' />\n </div>\n )\n}\n\nexport default PlayerFooterActions\nexport interface PlayerFooterActionsTypes {}\n"],"names":["PlayerFooterActions","audioPlayerPlaying","useSelector","state","player","t","useTranslation","dispatch","useDispatch","startPlaying","startAudioPlayer","eventDispatch","pausePlaying","pauseAudioPlayer","useEventListener","data","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faPause","faPlay","island","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"6/BAgBaA,EAAoD,WACvD,IAAAC,EAAuBC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAC/DC,EAAMC,qBAERC,EAAWC,EAAAA,cAEjB,SAASC,IACPF,EAASH,OAAOM,iBAAiB,WAAQ,GACzCC,gBAAc,mCAAoC,CAAA,EACnD,CAKD,SAASC,IACPL,EAASH,OAAOS,mBAChBF,gBAAc,mCAAoC,CAAA,EACnD,CAKD,OAZAG,mBAAiB,iCAAkC,SAACC,GAClDN,GACF,GAMAK,mBAAiB,kCAAmC,SAACC,GACnDH,GACF,GAGEI,EAAA,QAAAC,cAAA,MAAA,CACEC,UAAW,4FAEXF,UAACC,cAAAE,EAAMA,OACL,CAAAC,QAAQ,cACRC,UAAQ,EACRH,UAAU,wEAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,6BAA8BN,UAAU,mBAGjEF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,0DACbF,UAAAC,cAACE,EAAAA,OACC,CAAAM,QAASxB,EAAqBW,EAAeH,EAC7CW,QAAQ,UACRF,UAAU,4EACM,kBAAA,oCACM,uBAAAjB,EAAqBI,EAAE,kBAAoB,GAAKA,EAAE,iBAAmB,IAE1FJ,EACCe,EAAAA,QAACC,cAAAK,EAAeA,iBAACC,KAAMG,UAASR,UAAU,kBAE1CF,UAAAC,cAACK,EAAeA,gBAAC,CAAAC,KAAMI,EAAMA,OAAET,UAAU,oBAK/CF,UACEC,cAAA,MAAA,CAAAQ,QAAS,WAAM,OAAAlB,EAASqB,OAAOC,cAAc,aAC7B,kBAAA,iCACM,uBAAAxB,EAAE,2BAA6B,GACrDa,UAAU,iIAEVF,UAACC,cAAAK,EAAAA,gBAAgB,CAAAC,KAAMO,EAAAA,OAAQZ,UAAW,mBAI5CF,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,iCAAiCC,MAAM,QAC/DjB,EAAC,QAAAC,cAAAc,uBAAoBC,GAAG,6BAA6BC,MAAM,WAC3DjB,UAAAC,cAACc,EAAAA,oBAAmB,CAACC,GAAG,oCAAoCC,MAAM,QAGxE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../utils/genericFunctions/player.js"),r=require("../../styles/CustomRange.styles.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js");var s=require("../../node_modules/react-redux/es/hooks/useSelector.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/genericFunctions/player.js"),r=require("../../styles/CustomRange.styles.js"),a=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../services/user.js");var s=require("../../node_modules/react-redux/es/hooks/useSelector.js"),u=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=l(e),d=r.StyledCustomRange,p=function(r){var l=r.isPlayer,p=s.useSelector(function(e){return e.player}),f=p.audioPlayer,m=p.audioPlayerPlaying,y=p.audioPlayerTrackDuration,g=e.useRef(),x=e.useRef(),v=e.useState("00:00"),h=v[0],w=v[1],E=e.useState(),P=E[0],j=E[1],k=u.useDispatch(),q=e.useState(y&&Math.round(y)||0),N=q[0],A=q[1],F=s.useSelector(function(e){return e.recorder});F.recorded,F.playing;var C=e.useState(!1),b=C[0],D=C[1],S=e.useCallback(function(){var e,r=null===(e=null==f?void 0:f.current)||void 0===e?void 0:e.currentTime;r&&w(t.formatTime(Math.round(r))),g.current.value=r,N&&r&&g.current.style.setProperty("--range-progress","".concat(r/N*100,"%")),x.current=requestAnimationFrame(S)},[f,N,g]);function _(e){e.stopPropagation()}function T(){k.player.pauseAudioPlayer(),k.recorder.setPlaying(!1),k.recorder.setPaused(!0),o.eventDispatch("phone-island-recording-paused",{})}function M(){k.player.startAudioPlayer(function(){k.recorder.setPlaying(!1),k.recorder.setPaused(!0)}),k.recorder.setPlaying(!0),o.eventDispatch("phone-island-recording-played",{})}function R(){k.recorder.resetRecorded(),o.eventDispatch("phone-island-recording-deleted",{})}return e.useEffect(function(){m?x.current=requestAnimationFrame(S):cancelAnimationFrame(x.current)},[m]),e.useEffect(function(){y&&(A(Math.round(y)),j(t.formatTime(y)))},[y]),e.useEffect(function(){return function(){cancelAnimationFrame(x.current)}},[]),n.useEventListener("phone-island-recording-pause",function(e){T()}),n.useEventListener("phone-island-recording-play",function(e){M()}),n.useEventListener("phone-island-recording-delete",function(e){R()}),c.default.createElement("div",{className:"pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2"},c.default.createElement("div",{className:"pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2"},l?c.default.createElement("div",{className:"pi-cursor-pointer pi-flex-none",onClick:function(){if(null==f?void 0:f.current){var e=!b;f.current.muted=e,D(e)}}},c.default.createElement(a.FontAwesomeIcon,{icon:b?i.faVolumeXmark:i.faVolumeHigh,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement(c.default.Fragment,null,m?c.default.createElement("div",{onClick:T,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-pause-recorder-view","data-tooltip-content":"Pause"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPause,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"})):c.default.createElement("div",{onClick:M,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-play-recorder-view","data-tooltip-content":"Play"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faPlay,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300"}))),c.default.createElement("div",{className:"pi-w-full pi-flex-grow pi-mx-2",onClick:_,onMouseDown:_,onTouchStart:_},c.default.createElement(d,{"data-stop-propagation":!0,ref:g,defaultValue:0,type:"range",step:"1",min:"0",max:N&&N||0,onChange:function(){k.player.setAudioPlayerCurrentTime(g.current.value)},className:"pi-text-green-600 dark:pi-text-green-500"})),!l&&c.default.createElement("div",{onClick:R,className:"pi-cursor-pointer pi-flex-none","data-tooltip-id":"tooltip-delete-recorder-view","data-tooltip-content":"Delete"},c.default.createElement(a.FontAwesomeIcon,{icon:i.faTrash,className:"pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200"}))),c.default.createElement("div",{className:"pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1"},c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},h),c.default.createElement("div",{className:"pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]"},P)))};exports.Progress=p,exports.default=p;
|
|
2
2
|
//# sourceMappingURL=Progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.js","sources":["../../../src/components/AudioPlayerView/Progress.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect, useRef, useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { formatTime } from '../../utils/genericFunctions/player'\nimport { useDispatch } from 'react-redux'\nimport { StyledCustomRange } from '../../styles/CustomRange.styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlay, faPause, faTrash, faVolumeHigh, faVolumeXmark } from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\n\nconst StyledCustomRangeInput =\n StyledCustomRange as unknown as React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<'input'> & React.RefAttributes<HTMLInputElement>\n >\n\nexport const Progress: FC<ProgressTypes> = ({ isPlayer }) => {\n const { audioPlayer, audioPlayerPlaying, audioPlayerTrackDuration } = useSelector(\n (state: RootState) => state.player,\n )\n const progressBarRef = useRef<any>()\n const progressAnimationRef = useRef<any>()\n const [timeProgress, setTimeProgress] = useState<string>('00:00')\n const [displayDuration, setDisplayDuration] = useState<string>()\n const dispatch = useDispatch<Dispatch>()\n const [trackDuration, setTrackDuration] = useState<number>(\n (audioPlayerTrackDuration && Math.round(audioPlayerTrackDuration)) || 0,\n )\n const { recorded, playing } = useSelector((state: RootState) => state.recorder)\n const [isMuted, setIsMuted] = useState<boolean>(false)\n\n const progressAnimation = useCallback(() => {\n const currentTime = audioPlayer?.current?.currentTime\n currentTime && setTimeProgress(formatTime(Math.round(currentTime)))\n progressBarRef.current.value = currentTime\n trackDuration &&\n currentTime &&\n progressBarRef.current.style.setProperty(\n '--range-progress',\n `${(currentTime / trackDuration) * 100}%`,\n )\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n }, [audioPlayer, trackDuration, progressBarRef])\n\n useEffect(() => {\n if (audioPlayerPlaying) {\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n } else {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [audioPlayerPlaying])\n\n useEffect(() => {\n if (audioPlayerTrackDuration) {\n setTrackDuration(Math.round(audioPlayerTrackDuration))\n setDisplayDuration(formatTime(audioPlayerTrackDuration))\n }\n }, [audioPlayerTrackDuration])\n\n useEffect(() => {\n return () => {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [])\n\n function handleProgressChange() {\n dispatch.player.setAudioPlayerCurrentTime(progressBarRef.current.value)\n }\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n function handlePause() {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n eventDispatch('phone-island-recording-paused', {})\n }\n useEventListener('phone-island-recording-pause', (data: {}) => {\n handlePause()\n })\n\n function handlePlay() {\n dispatch.player.startAudioPlayer(() => {\n // The callback for the end event of the audio player\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n })\n dispatch.recorder.setPlaying(true)\n eventDispatch('phone-island-recording-played', {})\n }\n useEventListener('phone-island-recording-play', (data: {}) => {\n handlePlay()\n })\n\n function handleDelete() {\n dispatch.recorder.resetRecorded()\n eventDispatch('phone-island-recording-deleted', {})\n }\n useEventListener('phone-island-recording-delete', (data: {}) => {\n handleDelete()\n })\n\n function handleToggleMute() {\n if (audioPlayer?.current) {\n const newMuteState = !isMuted\n audioPlayer.current.muted = newMuteState\n setIsMuted(newMuteState)\n }\n }\n\n return (\n <div className='pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2'>\n {/* Player controls with progress bar */}\n <div className='pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2'>\n {isPlayer ? (\n <div className='pi-cursor-pointer pi-flex-none' onClick={handleToggleMute}>\n <FontAwesomeIcon\n icon={isMuted ? faVolumeXmark : faVolumeHigh}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <>\n {audioPlayerPlaying ? (\n <div\n onClick={handlePause}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-pause-recorder-view'\n data-tooltip-content={'Pause'}\n >\n <FontAwesomeIcon\n icon={faPause}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <div\n onClick={handlePlay}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-play-recorder-view'\n data-tooltip-content={'Play'}\n >\n <FontAwesomeIcon\n icon={faPlay}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n )}\n </>\n )}\n\n <div\n className='pi-w-full pi-flex-grow pi-mx-2'\n onClick={stopPropagation}\n onMouseDown={stopPropagation}\n onTouchStart={stopPropagation}\n >\n <StyledCustomRangeInput\n data-stop-propagation={true}\n ref={progressBarRef}\n defaultValue={0}\n type='range'\n step='1'\n min='0'\n max={(trackDuration && trackDuration) || 0}\n onChange={handleProgressChange}\n className='pi-text-green-600 dark:pi-text-green-500'\n />\n </div>\n\n {!isPlayer && (\n <div\n onClick={handleDelete}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-delete-recorder-view'\n data-tooltip-content={'Delete'}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200'\n />\n </div>\n )}\n </div>\n\n {/* Time indicators */}\n <div className='pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1'>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {timeProgress}\n </div>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {displayDuration}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Progress\nexport interface ProgressTypes {\n isPlayer?: boolean\n}\n"],"names":["StyledCustomRangeInput","StyledCustomRange","Progress","_a","isPlayer","_b","useSelector","state","player","audioPlayer","audioPlayerPlaying","audioPlayerTrackDuration","progressBarRef","useRef","progressAnimationRef","_c","useState","timeProgress","setTimeProgress","_d","displayDuration","setDisplayDuration","dispatch","useDispatch","_e","Math","round","trackDuration","setTrackDuration","_f","recorder","_g","isMuted","setIsMuted","progressAnimation","useCallback","currentTime","current","formatTime","value","style","setProperty","requestAnimationFrame","stopPropagation","e","handlePause","pauseAudioPlayer","setPlaying","setPaused","eventDispatch","handlePlay","startAudioPlayer","handleDelete","resetRecorded","useEffect","cancelAnimationFrame","useEventListener","data","React","createElement","className","onClick","newMuteState","muted","FontAwesomeIcon","icon","faVolumeXmark","faVolumeHigh","Fragment","faPause","faPlay","onMouseDown","onTouchStart","ref","defaultValue","type","step","min","max","onChange","setAudioPlayerCurrentTime","faTrash"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../src/components/AudioPlayerView/Progress.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect, useRef, useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { formatTime } from '../../utils/genericFunctions/player'\nimport { useDispatch } from 'react-redux'\nimport { StyledCustomRange } from '../../styles/CustomRange.styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlay, faPause, faTrash, faVolumeHigh, faVolumeXmark } from '@fortawesome/free-solid-svg-icons'\nimport { eventDispatch, useEventListener } from '../../utils'\n\nconst StyledCustomRangeInput =\n StyledCustomRange as unknown as React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<'input'> & React.RefAttributes<HTMLInputElement>\n >\n\nexport const Progress: FC<ProgressTypes> = ({ isPlayer }) => {\n const { audioPlayer, audioPlayerPlaying, audioPlayerTrackDuration } = useSelector(\n (state: RootState) => state.player,\n )\n const progressBarRef = useRef<any>()\n const progressAnimationRef = useRef<any>()\n const [timeProgress, setTimeProgress] = useState<string>('00:00')\n const [displayDuration, setDisplayDuration] = useState<string>()\n const dispatch = useDispatch<Dispatch>()\n const [trackDuration, setTrackDuration] = useState<number>(\n (audioPlayerTrackDuration && Math.round(audioPlayerTrackDuration)) || 0,\n )\n const { recorded, playing } = useSelector((state: RootState) => state.recorder)\n const [isMuted, setIsMuted] = useState<boolean>(false)\n\n const progressAnimation = useCallback(() => {\n const currentTime = audioPlayer?.current?.currentTime\n currentTime && setTimeProgress(formatTime(Math.round(currentTime)))\n progressBarRef.current.value = currentTime\n trackDuration &&\n currentTime &&\n progressBarRef.current.style.setProperty(\n '--range-progress',\n `${(currentTime / trackDuration) * 100}%`,\n )\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n }, [audioPlayer, trackDuration, progressBarRef])\n\n useEffect(() => {\n if (audioPlayerPlaying) {\n progressAnimationRef.current = requestAnimationFrame(progressAnimation)\n } else {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [audioPlayerPlaying])\n\n useEffect(() => {\n if (audioPlayerTrackDuration) {\n setTrackDuration(Math.round(audioPlayerTrackDuration))\n setDisplayDuration(formatTime(audioPlayerTrackDuration))\n }\n }, [audioPlayerTrackDuration])\n\n useEffect(() => {\n return () => {\n cancelAnimationFrame(progressAnimationRef.current)\n }\n }, [])\n\n function handleProgressChange() {\n dispatch.player.setAudioPlayerCurrentTime(progressBarRef.current.value)\n }\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n function handlePause() {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n eventDispatch('phone-island-recording-paused', {})\n }\n useEventListener('phone-island-recording-pause', (data: {}) => {\n handlePause()\n })\n\n function handlePlay() {\n dispatch.player.startAudioPlayer(() => {\n // The callback for the end event of the audio player\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n })\n dispatch.recorder.setPlaying(true)\n eventDispatch('phone-island-recording-played', {})\n }\n useEventListener('phone-island-recording-play', (data: {}) => {\n handlePlay()\n })\n\n function handleDelete() {\n dispatch.recorder.resetRecorded()\n eventDispatch('phone-island-recording-deleted', {})\n }\n useEventListener('phone-island-recording-delete', (data: {}) => {\n handleDelete()\n })\n\n function handleToggleMute() {\n if (audioPlayer?.current) {\n const newMuteState = !isMuted\n audioPlayer.current.muted = newMuteState\n setIsMuted(newMuteState)\n }\n }\n\n return (\n <div className='pi-w-full pi-h-full pi-flex pi-flex-col pi-items-center pi-justify-between pi-px-2'>\n {/* Player controls with progress bar */}\n <div className='pi-w-full pi-flex pi-items-center pi-justify-between pi-gap-2'>\n {isPlayer ? (\n <div className='pi-cursor-pointer pi-flex-none' onClick={handleToggleMute}>\n <FontAwesomeIcon\n icon={isMuted ? faVolumeXmark : faVolumeHigh}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <>\n {audioPlayerPlaying ? (\n <div\n onClick={handlePause}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-pause-recorder-view'\n data-tooltip-content={'Pause'}\n >\n <FontAwesomeIcon\n icon={faPause}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n ) : (\n <div\n onClick={handlePlay}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-play-recorder-view'\n data-tooltip-content={'Play'}\n >\n <FontAwesomeIcon\n icon={faPlay}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-300'\n />\n </div>\n )}\n </>\n )}\n\n <div\n className='pi-w-full pi-flex-grow pi-mx-2'\n onClick={stopPropagation}\n onMouseDown={stopPropagation}\n onTouchStart={stopPropagation}\n >\n <StyledCustomRangeInput\n data-stop-propagation={true}\n ref={progressBarRef}\n defaultValue={0}\n type='range'\n step='1'\n min='0'\n max={(trackDuration && trackDuration) || 0}\n onChange={handleProgressChange}\n className='pi-text-green-600 dark:pi-text-green-500'\n />\n </div>\n\n {!isPlayer && (\n <div\n onClick={handleDelete}\n className='pi-cursor-pointer pi-flex-none'\n data-tooltip-id='tooltip-delete-recorder-view'\n data-tooltip-content={'Delete'}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className='pi-h-4 pi-w-4 pi-text-gray-700 dark:pi-text-gray-200'\n />\n </div>\n )}\n </div>\n\n {/* Time indicators */}\n <div className='pi-flex pi-justify-between pi-w-full pi-text-xs pi-mt-2 pi-mb-1'>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {timeProgress}\n </div>\n <div className='pi-font-medium pi-text-gray-700 dark:pi-text-gray-200 pi-truncate pi-max-w-[45%]'>\n {displayDuration}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Progress\nexport interface ProgressTypes {\n isPlayer?: boolean\n}\n"],"names":["StyledCustomRangeInput","StyledCustomRange","Progress","_a","isPlayer","_b","useSelector","state","player","audioPlayer","audioPlayerPlaying","audioPlayerTrackDuration","progressBarRef","useRef","progressAnimationRef","_c","useState","timeProgress","setTimeProgress","_d","displayDuration","setDisplayDuration","dispatch","useDispatch","_e","Math","round","trackDuration","setTrackDuration","_f","recorder","_g","isMuted","setIsMuted","progressAnimation","useCallback","currentTime","current","formatTime","value","style","setProperty","requestAnimationFrame","stopPropagation","e","handlePause","pauseAudioPlayer","setPlaying","setPaused","eventDispatch","handlePlay","startAudioPlayer","handleDelete","resetRecorded","useEffect","cancelAnimationFrame","useEventListener","data","React","createElement","className","onClick","newMuteState","muted","FontAwesomeIcon","icon","faVolumeXmark","faVolumeHigh","Fragment","faPause","faPlay","onMouseDown","onTouchStart","ref","defaultValue","type","step","min","max","onChange","setAudioPlayerCurrentTime","faTrash"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("./Avatar.js"),r=require("./Progress.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var s=require("../../node_modules/react-i18next/dist/es/useTranslation.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("./Progress.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var s=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),i=require("./PlayerFooterActions.js"),a=require("../Button.js"),o=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../services/user.js");var n=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),l=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js"),d=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=c(e),m=function(){var e=u.useSelector(function(e){return e.player}),c=e.audioPlayerTrackType,m=e.audioPlayerTrackName,f=e.audioPlayerPlaying,x=u.useSelector(function(e){return e.island}).isOpen;function v(e){e.stopPropagation()}var j=s.useTranslation().t,y=d.useDispatch();return p.default.createElement("div",{className:"pi-flex pi-gap-7 pi-flex-col"},p.default.createElement("div",{className:"pi-flex pi-gap-4"},p.default.createElement(t.Avatar,{type:c}),p.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full"},p.default.createElement("div",{style:{width:x?"202px":"60px"},className:"pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block"},m)),p.default.createElement(a.Button,{onClick:function(){return f&&(y.player.stopAudioPlayer(),o.eventDispatch("phone-island-audio-player-close",{})),void y.island.resetPlayerClose()},variant:"transparentSettings","data-tooltip-id":"tooltip-close-settings","data-tooltip-content":j("Common.Close")||""},p.default.createElement(n.FontAwesomeIcon,{icon:l.faXmark,className:"pi-w-5 pi-h-5"}))),x&&p.default.createElement("div",{onClick:v,onMouseDown:v,onTouchStart:v},p.default.createElement(r.Progress,{isPlayer:!0}),p.default.createElement(i.PlayerFooterActions,null)))};exports.KeypadView=m,exports.default=m;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { Avatar } from './Avatar'\nimport Progress from './Progress'\nimport { useTranslation } from 'react-i18next'\nimport PlayerFooterActions from './PlayerFooterActions'\nimport { Button } from '../Button'\nimport { eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n const { t } = useTranslation()\n\n // Initialize state dispatch\n const dispatch = useDispatch<Dispatch>()\n\n function playerClose() {\n if (audioPlayerPlaying) {\n dispatch.player.stopAudioPlayer()\n eventDispatch('phone-island-audio-player-close', {})\n }\n dispatch.island.resetPlayerClose()\n }\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <Button\n onClick={() => playerClose()}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n {isOpen && (\n <div onClick={stopPropagation} onMouseDown={stopPropagation} onTouchStart={stopPropagation}>\n {/* add prop to indicate that is audioplayer view */}\n <Progress isPlayer />\n <PlayerFooterActions />\n </div>\n )}\n {/* Buttons tooltips */}\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayerPlaying","isOpen","island","stopPropagation","e","t","useTranslation","dispatch","useDispatch","React","createElement","className","Avatar","type","style","width","Button","onClick","stopAudioPlayer","eventDispatch","resetPlayerClose","variant","FontAwesomeIcon","icon","faXmark","onMouseDown","onTouchStart","Progress","isPlayer","PlayerFooterActions"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AudioPlayerView/index.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { Avatar } from './Avatar'\nimport Progress from './Progress'\nimport { useTranslation } from 'react-i18next'\nimport PlayerFooterActions from './PlayerFooterActions'\nimport { Button } from '../Button'\nimport { eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\n\nexport const KeypadView: FC<KeypadViewTypes> = () => {\n const { audioPlayerTrackType, audioPlayerTrackName, audioPlayerPlaying } =\n useSelector((state: RootState) => state.player)\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n function stopPropagation(e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) {\n e.stopPropagation()\n }\n\n const { t } = useTranslation()\n\n // Initialize state dispatch\n const dispatch = useDispatch<Dispatch>()\n\n function playerClose() {\n if (audioPlayerPlaying) {\n dispatch.player.stopAudioPlayer()\n eventDispatch('phone-island-audio-player-close', {})\n }\n dispatch.island.resetPlayerClose()\n }\n\n return (\n <div className='pi-flex pi-gap-7 pi-flex-col'>\n <div className='pi-flex pi-gap-4'>\n <Avatar type={audioPlayerTrackType} />\n <div className='pi-flex pi-items-center pi-w-full'>\n <div\n style={{\n width: isOpen ? '202px' : '60px',\n }}\n className={`pi-text-base pi-overflow-hidden pi-text-ellipsis pi-whitespace-nowrap pi-inline-block`}\n >\n {audioPlayerTrackName}\n </div>\n </div>\n <Button\n onClick={() => playerClose()}\n variant='transparentSettings'\n data-tooltip-id='tooltip-close-settings'\n data-tooltip-content={t('Common.Close') || ''}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n {isOpen && (\n <div onClick={stopPropagation} onMouseDown={stopPropagation} onTouchStart={stopPropagation}>\n {/* add prop to indicate that is audioplayer view */}\n <Progress isPlayer />\n <PlayerFooterActions />\n </div>\n )}\n {/* Buttons tooltips */}\n </div>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n"],"names":["KeypadView","_a","useSelector","state","player","audioPlayerTrackType","audioPlayerTrackName","audioPlayerPlaying","isOpen","island","stopPropagation","e","t","useTranslation","dispatch","useDispatch","React","createElement","className","Avatar","type","style","width","Button","onClick","stopAudioPlayer","eventDispatch","resetPlayerClose","variant","FontAwesomeIcon","icon","faXmark","onMouseDown","onTouchStart","Progress","isPlayer","PlayerFooterActions"],"mappings":"u/BAeaA,EAAkC,WACvC,IAAAC,EACJC,EAAAA,YAAY,SAACC,GAAqB,OAAAA,EAAMC,SADlCC,EAAoBJ,EAAAI,qBAAEC,EAAoBL,EAAAK,qBAAEC,EAAkBN,EAAAM,mBAE9DC,EAAWN,cAAY,SAACC,GAAqB,OAAAA,EAAMM,gBAE3D,SAASC,EAAgBC,GACvBA,EAAED,iBACH,CAEO,IAAAE,EAAMC,qBAGRC,EAAWC,EAAAA,cAUjB,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OAAM,CAACC,KAAMf,IACdW,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAAC,cAAA,MAAA,CACEI,MAAO,CACLC,MAAOd,EAAS,QAAU,QAE5BU,UAAW,yFAEVZ,IAGLU,EAAC,QAAAC,cAAAM,UACCC,QAAS,WAAM,OAtBjBjB,IACFO,EAASV,OAAOqB,kBAChBC,gBAAc,kCAAmC,CAAA,SAEnDZ,EAASL,OAAOkB,kBAkBkB,EAC5BC,QAAQ,wCACQ,yBAAwB,uBAClBhB,EAAE,iBAAmB,IAE3CI,UAACC,cAAAY,EAAAA,gBAAgB,CAAAC,KAAMC,EAAAA,QAASb,UAAU,oBAG7CV,GACCQ,EAAK,QAAAC,cAAA,MAAA,CAAAO,QAASd,EAAiBsB,YAAatB,EAAiBuB,aAAcvB,GAEzEM,EAAAA,QAACC,cAAAiB,EAAAA,SAAS,CAAAC,UAAW,IACrBnB,EAAAA,QAAAC,cAACmB,EAAAA,oBAAsB,OAMjC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("../node_modules/tslib/tslib.es6.js"),e=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}require("../store/index.js");var p=a(e);exports.Button=function(e){var a=e.children,n=e.variant,t=e.active,o=void 0!==t&&t,d=e.conference,g=void 0!==d&&d,s=e.className,l=void 0===s?"":s,u=r.__rest(e,["children","variant","active","conference","className"]),c={base:"pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",green:"pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",default:"pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full",neutral:"pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full",transparent:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full",transparentSideView:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark",transparentSettings:"pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded",gray:"dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56"},background:{base:{default:"pi-bg-gray-700 dark:pi-bg-gray-300"},active:{default:"pi-bg-gray-500 dark:pi-bg-gray-50"}}};return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",r.__assign({"data-stop-propagation":!0,className:i.classNames(o&&c.background.active[n]?c.background.active[n]:c.background.base[n]&&c.background.base[n],c.base,n&&c.variant[n],l&&l,g?"pi-font-medium":"pi-font-light")},u),a))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("../node_modules/tslib/tslib.es6.js"),e=require("react"),i=require("../utils/genericFunctions/classNames.js");function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}require("../store/index.js"),require("../services/user.js");var p=a(e);exports.Button=function(e){var a=e.children,n=e.variant,t=e.active,o=void 0!==t&&t,d=e.conference,g=void 0!==d&&d,s=e.className,l=void 0===s?"":s,u=r.__rest(e,["children","variant","active","conference","className"]),c={base:"pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0",variant:{red:"pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",green:"pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full",default:"pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full",neutral:"pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full",transparent:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full",transparentSideView:"pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark",transparentSettings:"pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded",gray:"dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56"},background:{base:{default:"pi-bg-gray-700 dark:pi-bg-gray-300"},active:{default:"pi-bg-gray-500 dark:pi-bg-gray-50"}}};return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",r.__assign({"data-stop-propagation":!0,className:i.classNames(o&&c.background.active[n]?c.background.active[n]:c.background.base[n]&&c.background.base[n],c.base,n&&c.variant[n],l&&l,g?"pi-font-medium":"pi-font-light")},u),a))};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant:\n | 'red'\n | 'green'\n | 'default'\n | 'neutral'\n | 'transparent'\n | 'transparentSideView'\n | 'transparentSettings'\n | 'gray'\n active?: boolean\n conference?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n conference = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n green:\n 'pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n default:\n 'pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full',\n neutral:\n 'pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full',\n transparent:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full',\n transparentSideView:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark',\n transparentSettings:\n 'pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded',\n gray: 'dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700 dark:pi-bg-gray-300',\n },\n active: {\n default: 'pi-bg-gray-500 dark:pi-bg-gray-50',\n },\n },\n }\n\n return (\n <>\n <button\n data-stop-propagation={true}\n className={classNames(\n active && classes.background.active[variant]\n ? classes.background.active[variant]\n : classes.background.base[variant] && classes.background.base[variant],\n classes.base,\n variant && classes.variant[variant],\n className && className,\n conference ? 'pi-font-medium' : 'pi-font-light',\n )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","conference","_d","className","props","__rest","classes","base","red","green","default","neutral","transparent","transparentSideView","transparentSettings","gray","background","React","createElement","Fragment","__assign","classNames"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant:\n | 'red'\n | 'green'\n | 'default'\n | 'neutral'\n | 'transparent'\n | 'transparentSideView'\n | 'transparentSettings'\n | 'gray'\n active?: boolean\n conference?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({\n children,\n variant,\n active = false,\n conference = false,\n className = '',\n ...props\n}) => {\n const classes = {\n base: 'pi-flex pi-content-center pi-items-center pi-justify-center pi-tracking-wide pi-duration-200 pi-transform pi-outline-none focus:pi-ring-2 focus:pi-z-20 focus:pi-ring-offset-2 disabled:pi-opacity-40 disabled:pi-cursor-not-allowed pi-border pi-border-transparent focus:pi-ring-offset-white dark:focus:pi-ring-offset-black pi-text-sm pi-leading-4 pi-col-start-auto pi-transition-color pi-shrink-0',\n variant: {\n red: 'pi-bg-phoneIslandClose dark:pi-bg-phoneIslandCloseDark hover:pi-bg-phoneIslandCloseHover dark:hover:pi-bg-phoneIslandCloseHoverDark focus:pi-ring-emerald-500 dark:focus:ring-emerald-300 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n green:\n 'pi-bg-phoneIslandCall dark:pi-bg-phoneIslandCallDark hover:pi-bg-phoneIslandCallHover dark:hover:pi-bg-phoneIslandCallHoverDark focus:pi-ring-green-500 focus:dark:pi-ring-200 pi-text-white dark:pi-text-gray-950 pi-h-12 pi-w-12 pi-rounded-full',\n default:\n 'pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-h-12 pi-w-12 pi-rounded-full',\n neutral:\n 'pi-bg-transparent enabled:hover:pi-bg-gray-500 enabled:hover:pi-border-gray-500 pi-border pi-border-gray-700 focus:pi-ring-0 pi-h-12 pi-w-12 pi-rounded-full',\n transparent:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-12 pi-rounded-full',\n transparentSideView:\n 'pi-bg-transparent dark:enabled:hover:pi-bg-gray-600 enabled:hover:pi-bg-gray-600 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-h-8 pi-w-8 pi-rounded pi-text-iconWhite dark:pi-text-iconWhiteDark',\n transparentSettings:\n 'pi-bg-transparent dark:hover:pi-bg-gray-600 hover:pi-bg-gray-300 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 dark:pi-text-white pi-h-8 pi-w-8 pi-rounded',\n gray: 'dark:pi-bg-gray-300 pi-bg-gray-700 hover:pi-bg-gray-800 dark:hover:pi-bg-gray-50 focus:pi-ring-gray-500 dark:focus:ring-gray-300 pi-text-gray-50 dark:pi-text-gray-900 pi-rounded-full pi-py-4 pi-px-4 pi-max-w-56',\n },\n background: {\n base: {\n default: 'pi-bg-gray-700 dark:pi-bg-gray-300',\n },\n active: {\n default: 'pi-bg-gray-500 dark:pi-bg-gray-50',\n },\n },\n }\n\n return (\n <>\n <button\n data-stop-propagation={true}\n className={classNames(\n active && classes.background.active[variant]\n ? classes.background.active[variant]\n : classes.background.base[variant] && classes.background.base[variant],\n classes.base,\n variant && classes.variant[variant],\n className && className,\n conference ? 'pi-font-medium' : 'pi-font-light',\n )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","conference","_d","className","props","__rest","classes","base","red","green","default","neutral","transparent","transparentSideView","transparentSettings","gray","background","React","createElement","Fragment","__assign","classNames"],"mappings":"8VAqBuC,SAACA,GACtC,IAAAC,EAAQD,EAAAC,SACRC,EAAOF,EAAAE,QACPC,EAAcH,EAAAI,OAAdA,OAAM,IAAAD,GAAQA,EACdE,EAAkBL,EAAAM,WAAlBA,OAAU,IAAAD,GAAQA,EAClBE,EAAAP,EAAAQ,UAAAA,OAAY,IAAAD,EAAA,GAAEA,EACXE,EAAKC,EAAAA,OAAAV,EAN8B,0DAQhCW,EAAU,CACdC,KAAM,4YACNV,QAAS,CACPW,IAAK,gQACLC,MACE,qPACFC,QACE,uPACFC,QACE,+JACFC,YACE,iSACFC,oBACE,sQACFC,oBACE,4NACFC,KAAM,sNAERC,WAAY,CACVT,KAAM,CACJG,QAAS,sCAEXX,OAAQ,CACNW,QAAS,uCAKf,OACEO,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBjB,UAAWkB,EAAAA,WACTtB,GAAUO,EAAQU,WAAWjB,OAAOF,GAChCS,EAAQU,WAAWjB,OAAOF,GAC1BS,EAAQU,WAAWT,KAAKV,IAAYS,EAAQU,WAAWT,KAAKV,GAChES,EAAQC,KACRV,GAAWS,EAAQT,QAAQA,GAC3BM,GAAaA,EACbF,EAAa,iBAAmB,kBAE9BG,GAEHR,GAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../../lib/phone/call.js"),i=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),a=require("../../store/index.js");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var l=require("../../services/astproxy.js"),s=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js");var r=require("../../lib/webrtc/messages.js"),c=require("../../static/outgoing_ringtone.js");require("../Island.js");var u=require("../Button.js"),d=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),p=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/i18next/dist/esm/i18next.js");var f=require("../CustomThemedTooltip.js");require("../TranscriptionView/TranscriptionView.js");var m=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/react-i18next/dist/es/context.js");var v=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),h=require("../TransferButton.js"),C=require("../../node_modules/react-redux/es/hooks/useDispatch.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"),i=require("../../utils/customHooks/useEventListener.js"),o=require("../../utils/genericFunctions/eventDispatch.js"),a=require("../../store/index.js");require("../../services/user.js"),require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var l=require("../../services/astproxy.js"),s=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js");var r=require("../../lib/webrtc/messages.js"),c=require("../../static/outgoing_ringtone.js");require("../Island.js");var u=require("../Button.js"),d=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),p=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/i18next/dist/esm/i18next.js");var f=require("../CustomThemedTooltip.js");require("../TranscriptionView/TranscriptionView.js");var m=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/react-i18next/dist/es/context.js");var v=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),h=require("../TransferButton.js"),C=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),j=require("../../node_modules/react-redux/es/hooks/useSelector.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=T(t),E=g.default.memo(function(e){var t=e.active,n=e.onClick,i=e.tooltipId,o=e.tooltipContent,a=e.icon,l=e.activeIcon,s=void 0===l?a:l;return g.default.createElement(u.Button,{variant:"default",active:t,onClick:n,"data-tooltip-id":i,"data-tooltip-content":o},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:t?s:a}))}),b=g.default.memo(function(){var T,b,k,w,y=v.useTranslation().t,x=C.useDispatch(),q=j.useSelector(function(e){return e.currentCall}),D=q.paused,_=q.muted,I=q.parked,A=q.transferring,P=j.useSelector(function(e){return e.island}),M=P.view,V=P.actionsExpanded,S=P.sideViewIsVisible,F=P.transcriptionViewIsVisible,L=j.useSelector(function(e){return e.listen}),B=j.useSelector(function(e){return e.conference}),N=B.isActive,R=B.conferenceStartedFrom,U=j.useSelector(function(e){return null==e?void 0:e.currentUser}),O=U.username,G=U.profile,H=t.useRef(!1),K=t.useRef(!1),W=t.useMemo(function(){return""!==O&&R===O},[O,R]),z=t.useMemo(function(){return N&&!W},[N,W]),J=t.useMemo(function(){return(null==L?void 0:L.isIntrude)||(null==L?void 0:L.isListen)},[L]),Q=t.useCallback(function(){_?n.unmuteCurrentCall():n.muteCurrentCall()},[_]),X=t.useCallback(function(){D?n.unpauseCurrentCall():n.pauseCurrentCall()},[D]),Y=t.useCallback(function(){x.island.setIslandView("keypad"!==M?"keypad":"call"),S&&o.eventDispatch("phone-island-sideview-close",{}),F&&o.eventDispatch("phone-island-transcription-close",{}),o.eventDispatch("phone-island-call-keypad-opened",{})},[M,S,F,x.island]),Z=t.useCallback(function(){var e=!V;x.island.toggleActionsExpanded(e),o.eventDispatch("phone-island-call-actions-".concat(e?"opened":"closed"),{}),e||o.eventDispatch("phone-island-sideview-close",{})},[V,F,x.island]),$=t.useCallback(function(){S?o.eventDispatch("phone-island-sideview-close",{}):(F&&o.eventDispatch("phone-island-transcription-close",{}),o.eventDispatch("phone-island-sideview-open",{}))},[S,F]),ee=t.useCallback(function(){x.island.setIslandView("transfer"!==M?"transfer":"call"),S&&o.eventDispatch("phone-island-sideview-close",{}),F&&o.eventDispatch("phone-island-transcription-close",{}),o.eventDispatch("phone-island-call-transfer-opened",{})},[M,S,F,x.island]),te=t.useCallback(function(){o.eventDispatch("phone-island-conference-list-open",{}),x.island.setIslandView("transfer"!==M?"transfer":"call"),S&&o.eventDispatch("phone-island-sideview-close",{}),F&&o.eventDispatch("phone-island-transcription-close",{})},[M,S,F,x.island]),ne=t.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return x.island.setIslandView("waitingConference"),[4,n.startConference()];case 1:return e.sent(),[2]}})})},[x.island]),ie=t.useCallback(function(){N?ne():te()},[N,ne,te]),oe=t.useMemo(function(){return N&&"call"===M&&!V&&!H.current&&W},[N,M,V,W]),ae=t.useMemo(function(){return N&&"call"===M&&V&&!K.current&&""!==O&&!W},[N,M,V,O,W]);t.useEffect(function(){oe&&(x.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{}),H.current=!0)},[oe,x.island]),t.useEffect(function(){ae&&(x.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{}),K.current=!0)},[ae,x.island]);var le=t.useCallback(function(){var e=s.isWebRTC()?r.sendDTMF:l.sendPhysicalDTMF;e("*"),a.store.getState().player.audioPlayerPlaying||x.player.updateStartAudioPlayer({src:c.default,loop:!0}),setTimeout(function(){e("1"),x.player.stopAudioPlayer(),A&&setTimeout(function(){x.currentCall.updateTransferring(!1)},500),o.eventDispatch("phone-island-call-transfer-canceled",{})},500)},[A,x.player,x.currentCall]);i.useEventListener("phone-island-call-keypad-open",Y),i.useEventListener("phone-island-call-transfer-open",ee),i.useEventListener("phone-island-call-transfer-cancel",le),i.useEventListener("phone-island-call-actions-open",function(){x.island.toggleActionsExpanded(!0),o.eventDispatch("phone-island-call-actions-opened",{})}),i.useEventListener("phone-island-call-actions-close",function(){x.island.toggleActionsExpanded(!1),o.eventDispatch("phone-island-call-actions-closed",{})});var se=t.useMemo(function(){return(null==L?void 0:L.isListen)||(null==L?void 0:L.isIntrude)||N&&!W?L.isIntrude?"pi-mb-6 pi-grid pi-grid-cols-1 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center":N&&!W?"pi-flex pi-items-center pi-justify-center pi-gap-4":"pi-hidden":"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},[L,N,W]);return g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:se},!J&&g.default.createElement(E,{active:D,onClick:X,tooltipId:"tooltip-pause",tooltipContent:y(D?"Tooltip.Play":"Tooltip.Pause"),icon:p.faPause,activeIcon:p.faPlay}),!(null==L?void 0:L.isListen)&&g.default.createElement(E,{active:_,onClick:Q,tooltipId:"tooltip-mute",tooltipContent:y(_?"Tooltip.Unmute":"Tooltip.Mute"),icon:p.faMicrophone,activeIcon:p.faMicrophoneSlash}),!z&&g.default.createElement(h.TransferButton,null),!J&&!z&&g.default.createElement(u.Button,{active:V,variant:"transparent",onClick:Z,"data-tooltip-id":"tooltip-expand","data-tooltip-content":y(V?"Tooltip.Collapse":"Tooltip.Expand")},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:V?p.faAngleUp:p.faAngleDown}))),V&&g.default.createElement("div",{className:"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},g.default.createElement(E,{active:"keypad"===M,onClick:Y,tooltipId:"tooltip-keyboard",tooltipContent:y("Tooltip.Keyboard"),icon:m.faGridRound}),g.default.createElement(E,{active:I,onClick:n.parkCurrentCall,tooltipId:"tooltip-park",tooltipContent:y("Tooltip.Park"),icon:p.faSquareParking}),(null===(w=null===(k=null===(b=null===(T=null==G?void 0:G.macro_permissions)||void 0===T?void 0:T.settings)||void 0===b?void 0:b.permissions)||void 0===k?void 0:k.conference)||void 0===w?void 0:w.value)&&g.default.createElement(u.Button,{"data-stop-propagation":!0,variant:"default",onClick:ie,"data-tooltip-id":"tooltip-conference","data-tooltip-content":N?y("Tooltip.Conference")||"":y("Tooltip.Add user to conference")||""},g.default.createElement(d.FontAwesomeIcon,{icon:N?p.faPlus:p.faUserPlus,className:"pi-h-6 pi-w-6"})),g.default.createElement(u.Button,{variant:"default",onClick:$,"data-tooltip-id":"tooltip-sideView","data-tooltip-content":y("Tooltip.Other actions")||""},g.default.createElement(d.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S?m.faClose:m.faOpen}))),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-transfer",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-pause",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-mute",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-expand",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-keyboard",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-conference",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-park",place:"bottom"}),g.default.createElement(f.CustomThemedTooltip,{id:"tooltip-sideView",place:"left"}))});exports.default=b;
|
|
2
2
|
//# sourceMappingURL=Actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useMemo, useEffect, useRef, useCallback } from 'react'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n parkCurrentCall,\n startConference,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faSquareParking,\n faUserPlus,\n faPlus,\n faAngleDown,\n faAngleUp,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faClose, faGridRound, faOpen } 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 { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport TransferButton from '../TransferButton'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core'\n\ninterface ActionButtonProps {\n active: boolean\n onClick: () => void\n tooltipId: string\n tooltipContent: string\n icon: IconDefinition\n activeIcon?: IconDefinition\n}\n\nconst ActionButton: React.FC<ActionButtonProps> = React.memo(\n ({ active, onClick, tooltipId, tooltipContent, icon, activeIcon = icon }) => (\n <Button\n variant='default'\n active={active}\n onClick={onClick}\n data-tooltip-id={tooltipId}\n data-tooltip-content={tooltipContent}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={active ? activeIcon : icon} />\n </Button>\n ),\n)\n\nconst Actions: FC = () => {\n const { t } = useTranslation()\n const dispatch = useDispatch<Dispatch>()\n\n const { paused, muted, parked, transferring } = useSelector(\n (state: RootState) => state.currentCall,\n )\n const { view, actionsExpanded, sideViewIsVisible, transcriptionViewIsVisible } = useSelector(\n (state: RootState) => state.island,\n )\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username, profile } = useSelector((state: RootState) => state?.currentUser)\n\n // Check if the actions should be expanded automatically\n const autoExpandedRef = useRef(false)\n // Check if the actions should be collapsed automatically\n const autoCollapsedRef = useRef(false)\n\n const isOwnerOfConference = useMemo(\n () => username !== '' && conferenceStartedFrom === username,\n [username, conferenceStartedFrom],\n )\n\n const shouldHideTransferButton = useMemo(\n () => isActive && !isOwnerOfConference,\n [isActive, isOwnerOfConference],\n )\n\n const shouldHideButtons = useMemo(\n () => intrudeListenStatus?.isIntrude || intrudeListenStatus?.isListen,\n [intrudeListenStatus],\n )\n\n const toggleMute = useCallback(() => {\n muted ? unmuteCurrentCall() : muteCurrentCall()\n }, [muted])\n\n const togglePause = useCallback(() => {\n paused ? unpauseCurrentCall() : pauseCurrentCall()\n }, [paused])\n\n const openKeypad = useCallback(() => {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-call-keypad-opened', {})\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const toggleActionsExpanded = useCallback(() => {\n const newState = !actionsExpanded\n dispatch.island.toggleActionsExpanded(newState)\n eventDispatch(`phone-island-call-actions-${newState ? 'opened' : 'closed'}`, {})\n if (!newState) {\n eventDispatch('phone-island-sideview-close', {})\n }\n }, [actionsExpanded, transcriptionViewIsVisible, dispatch.island])\n\n const toggleSideView = useCallback(() => {\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n } else {\n // When opening SideView, close TranscriptionView if it's open\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-sideview-open', {})\n }\n }, [sideViewIsVisible, transcriptionViewIsVisible])\n\n const transfer = useCallback(() => {\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-call-transfer-opened', {})\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const beginConference = useCallback(() => {\n eventDispatch('phone-island-conference-list-open', {})\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const addUserToConference = useCallback(async () => {\n dispatch.island.setIslandView('waitingConference')\n await startConference()\n }, [dispatch.island])\n\n const handleConferenceAction = useCallback(() => {\n isActive ? addUserToConference() : beginConference()\n }, [isActive, addUserToConference, beginConference])\n\n const shouldExpandActions = useMemo(() => {\n return (\n isActive &&\n view === 'call' &&\n !actionsExpanded &&\n !autoExpandedRef.current &&\n isOwnerOfConference\n )\n }, [isActive, view, actionsExpanded, isOwnerOfConference])\n\n // Check if user is not the owner of the conference\n const shouldCollapseActions = useMemo(() => {\n return (\n isActive &&\n view === 'call' &&\n actionsExpanded &&\n !autoCollapsedRef.current &&\n username !== '' &&\n !isOwnerOfConference\n )\n }, [isActive, view, actionsExpanded, username, isOwnerOfConference])\n\n // Automatically expand actions if the user has enabled conference\n useEffect(() => {\n if (shouldExpandActions) {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n autoExpandedRef.current = true\n }\n }, [shouldExpandActions, dispatch.island])\n\n // Automatically collapse actions if the user is not the owner of the conference\n useEffect(() => {\n if (shouldCollapseActions) {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n autoCollapsedRef.current = true\n }\n }, [shouldCollapseActions, dispatch.island])\n\n const cancelTransfer = useCallback(() => {\n const sendDtmfFunc = isWebRTC() ? sendDTMF : sendPhysicalDTMF\n\n sendDtmfFunc('*')\n\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\n setTimeout(() => {\n sendDtmfFunc('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\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }, [transferring, dispatch.player, dispatch.currentCall])\n\n useEventListener('phone-island-call-keypad-open', openKeypad)\n useEventListener('phone-island-call-transfer-open', transfer)\n useEventListener('phone-island-call-transfer-cancel', cancelTransfer)\n useEventListener('phone-island-call-actions-open', () => {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n })\n useEventListener('phone-island-call-actions-close', () => {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n })\n\n const mainGridClassName = useMemo(() => {\n if (\n intrudeListenStatus?.isListen ||\n intrudeListenStatus?.isIntrude ||\n (isActive && !isOwnerOfConference)\n ) {\n if (intrudeListenStatus.isIntrude) {\n return 'pi-mb-6 pi-grid pi-grid-cols-1 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'\n }\n if (isActive && !isOwnerOfConference) {\n return 'pi-flex pi-items-center pi-justify-center pi-gap-4'\n }\n return 'pi-hidden'\n }\n return '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 }, [intrudeListenStatus, isActive, isOwnerOfConference])\n\n return (\n <>\n <div className={mainGridClassName}>\n {!shouldHideButtons && (\n <ActionButton\n active={paused}\n onClick={togglePause}\n tooltipId='tooltip-pause'\n tooltipContent={paused ? t('Tooltip.Play') : t('Tooltip.Pause')}\n icon={faPause}\n activeIcon={faPlay}\n />\n )}\n\n {!intrudeListenStatus?.isListen && (\n <ActionButton\n active={muted}\n onClick={toggleMute}\n tooltipId='tooltip-mute'\n tooltipContent={muted ? t('Tooltip.Unmute') : t('Tooltip.Mute')}\n icon={faMicrophone}\n activeIcon={faMicrophoneSlash}\n />\n )}\n\n {!shouldHideTransferButton && <TransferButton />}\n\n {!shouldHideButtons && !shouldHideTransferButton && (\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={toggleActionsExpanded}\n data-tooltip-id='tooltip-expand'\n data-tooltip-content={actionsExpanded ? t('Tooltip.Collapse') : t('Tooltip.Expand')}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={actionsExpanded ? faAngleUp : faAngleDown}\n />\n </Button>\n )}\n </div>\n\n {/* Actions expanded section */}\n {actionsExpanded && (\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 <ActionButton\n active={view === 'keypad'}\n onClick={openKeypad}\n tooltipId='tooltip-keyboard'\n tooltipContent={t('Tooltip.Keyboard')}\n icon={faGridRound}\n />\n\n <ActionButton\n active={parked}\n onClick={parkCurrentCall}\n tooltipId='tooltip-park'\n tooltipContent={t('Tooltip.Park')}\n icon={faSquareParking}\n />\n\n {profile?.macro_permissions?.settings?.permissions?.conference?.value && (\n <Button\n data-stop-propagation={true}\n variant='default'\n onClick={handleConferenceAction}\n data-tooltip-id='tooltip-conference'\n data-tooltip-content={\n isActive ? t('Tooltip.Conference') || '' : t('Tooltip.Add user to conference') || ''\n }\n >\n <FontAwesomeIcon icon={isActive ? faPlus : faUserPlus} className='pi-h-6 pi-w-6' />\n </Button>\n )}\n\n <Button\n variant='default'\n onClick={toggleSideView}\n data-tooltip-id='tooltip-sideView'\n data-tooltip-content={t('Tooltip.Other actions') || ''}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={sideViewIsVisible ? faClose : faOpen}\n />\n </Button>\n </div>\n )}\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-transfer' place='bottom' />\n <CustomThemedTooltip id='tooltip-pause' place='bottom' />\n <CustomThemedTooltip id='tooltip-mute' place='bottom' />\n <CustomThemedTooltip id='tooltip-expand' place='bottom' />\n <CustomThemedTooltip id='tooltip-keyboard' place='bottom' />\n <CustomThemedTooltip id='tooltip-conference' place='bottom' />\n <CustomThemedTooltip id='tooltip-park' place='bottom' />\n <CustomThemedTooltip id='tooltip-sideView' place='left' />\n </>\n )\n}\n\nexport default React.memo(Actions)\n"],"names":["ActionButton","React","memo","_a","active","onClick","tooltipId","tooltipContent","icon","_b","activeIcon","createElement","Button","variant","FontAwesomeIcon","className","Actions$1","t","useTranslation","dispatch","useDispatch","_e","useSelector","state","currentCall","paused","muted","parked","transferring","_f","island","view","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","intrudeListenStatus","listen","_g","conference","isActive","conferenceStartedFrom","_h","currentUser","username","profile","autoExpandedRef","useRef","autoCollapsedRef","isOwnerOfConference","useMemo","shouldHideTransferButton","shouldHideButtons","isIntrude","isListen","toggleMute","useCallback","unmuteCurrentCall","muteCurrentCall","togglePause","unpauseCurrentCall","pauseCurrentCall","openKeypad","setIslandView","eventDispatch","toggleActionsExpanded","newState","concat","toggleSideView","transfer","beginConference","addUserToConference","__awaiter","startConference","sent","handleConferenceAction","shouldExpandActions","current","shouldCollapseActions","useEffect","cancelTransfer","sendDtmfFunc","isWebRTC","sendDTMF","sendPhysicalDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","useEventListener","mainGridClassName","Fragment","faPause","faPlay","faMicrophone","faMicrophoneSlash","TransferButton","faAngleUp","faAngleDown","faGridRound","parkCurrentCall","faSquareParking","_d","_c","macro_permissions","settings","permissions","value","faPlus","faUserPlus","faClose","faOpen","CustomThemedTooltip","id","place"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useMemo, useEffect, useRef, useCallback } from 'react'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n parkCurrentCall,\n startConference,\n} from '../../lib/phone/call'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPause,\n faPlay,\n faMicrophone,\n faMicrophoneSlash,\n faSquareParking,\n faUserPlus,\n faPlus,\n faAngleDown,\n faAngleUp,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faClose, faGridRound, faOpen } 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 { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport TransferButton from '../TransferButton'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core'\n\ninterface ActionButtonProps {\n active: boolean\n onClick: () => void\n tooltipId: string\n tooltipContent: string\n icon: IconDefinition\n activeIcon?: IconDefinition\n}\n\nconst ActionButton: React.FC<ActionButtonProps> = React.memo(\n ({ active, onClick, tooltipId, tooltipContent, icon, activeIcon = icon }) => (\n <Button\n variant='default'\n active={active}\n onClick={onClick}\n data-tooltip-id={tooltipId}\n data-tooltip-content={tooltipContent}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={active ? activeIcon : icon} />\n </Button>\n ),\n)\n\nconst Actions: FC = () => {\n const { t } = useTranslation()\n const dispatch = useDispatch<Dispatch>()\n\n const { paused, muted, parked, transferring } = useSelector(\n (state: RootState) => state.currentCall,\n )\n const { view, actionsExpanded, sideViewIsVisible, transcriptionViewIsVisible } = useSelector(\n (state: RootState) => state.island,\n )\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username, profile } = useSelector((state: RootState) => state?.currentUser)\n\n // Check if the actions should be expanded automatically\n const autoExpandedRef = useRef(false)\n // Check if the actions should be collapsed automatically\n const autoCollapsedRef = useRef(false)\n\n const isOwnerOfConference = useMemo(\n () => username !== '' && conferenceStartedFrom === username,\n [username, conferenceStartedFrom],\n )\n\n const shouldHideTransferButton = useMemo(\n () => isActive && !isOwnerOfConference,\n [isActive, isOwnerOfConference],\n )\n\n const shouldHideButtons = useMemo(\n () => intrudeListenStatus?.isIntrude || intrudeListenStatus?.isListen,\n [intrudeListenStatus],\n )\n\n const toggleMute = useCallback(() => {\n muted ? unmuteCurrentCall() : muteCurrentCall()\n }, [muted])\n\n const togglePause = useCallback(() => {\n paused ? unpauseCurrentCall() : pauseCurrentCall()\n }, [paused])\n\n const openKeypad = useCallback(() => {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-call-keypad-opened', {})\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const toggleActionsExpanded = useCallback(() => {\n const newState = !actionsExpanded\n dispatch.island.toggleActionsExpanded(newState)\n eventDispatch(`phone-island-call-actions-${newState ? 'opened' : 'closed'}`, {})\n if (!newState) {\n eventDispatch('phone-island-sideview-close', {})\n }\n }, [actionsExpanded, transcriptionViewIsVisible, dispatch.island])\n\n const toggleSideView = useCallback(() => {\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n } else {\n // When opening SideView, close TranscriptionView if it's open\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-sideview-open', {})\n }\n }, [sideViewIsVisible, transcriptionViewIsVisible])\n\n const transfer = useCallback(() => {\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-call-transfer-opened', {})\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const beginConference = useCallback(() => {\n eventDispatch('phone-island-conference-list-open', {})\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n }, [view, sideViewIsVisible, transcriptionViewIsVisible, dispatch.island])\n\n const addUserToConference = useCallback(async () => {\n dispatch.island.setIslandView('waitingConference')\n await startConference()\n }, [dispatch.island])\n\n const handleConferenceAction = useCallback(() => {\n isActive ? addUserToConference() : beginConference()\n }, [isActive, addUserToConference, beginConference])\n\n const shouldExpandActions = useMemo(() => {\n return (\n isActive &&\n view === 'call' &&\n !actionsExpanded &&\n !autoExpandedRef.current &&\n isOwnerOfConference\n )\n }, [isActive, view, actionsExpanded, isOwnerOfConference])\n\n // Check if user is not the owner of the conference\n const shouldCollapseActions = useMemo(() => {\n return (\n isActive &&\n view === 'call' &&\n actionsExpanded &&\n !autoCollapsedRef.current &&\n username !== '' &&\n !isOwnerOfConference\n )\n }, [isActive, view, actionsExpanded, username, isOwnerOfConference])\n\n // Automatically expand actions if the user has enabled conference\n useEffect(() => {\n if (shouldExpandActions) {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n autoExpandedRef.current = true\n }\n }, [shouldExpandActions, dispatch.island])\n\n // Automatically collapse actions if the user is not the owner of the conference\n useEffect(() => {\n if (shouldCollapseActions) {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n autoCollapsedRef.current = true\n }\n }, [shouldCollapseActions, dispatch.island])\n\n const cancelTransfer = useCallback(() => {\n const sendDtmfFunc = isWebRTC() ? sendDTMF : sendPhysicalDTMF\n\n sendDtmfFunc('*')\n\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\n setTimeout(() => {\n sendDtmfFunc('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\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }, [transferring, dispatch.player, dispatch.currentCall])\n\n useEventListener('phone-island-call-keypad-open', openKeypad)\n useEventListener('phone-island-call-transfer-open', transfer)\n useEventListener('phone-island-call-transfer-cancel', cancelTransfer)\n useEventListener('phone-island-call-actions-open', () => {\n dispatch.island.toggleActionsExpanded(true)\n eventDispatch('phone-island-call-actions-opened', {})\n })\n useEventListener('phone-island-call-actions-close', () => {\n dispatch.island.toggleActionsExpanded(false)\n eventDispatch('phone-island-call-actions-closed', {})\n })\n\n const mainGridClassName = useMemo(() => {\n if (\n intrudeListenStatus?.isListen ||\n intrudeListenStatus?.isIntrude ||\n (isActive && !isOwnerOfConference)\n ) {\n if (intrudeListenStatus.isIntrude) {\n return 'pi-mb-6 pi-grid pi-grid-cols-1 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'\n }\n if (isActive && !isOwnerOfConference) {\n return 'pi-flex pi-items-center pi-justify-center pi-gap-4'\n }\n return 'pi-hidden'\n }\n return '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 }, [intrudeListenStatus, isActive, isOwnerOfConference])\n\n return (\n <>\n <div className={mainGridClassName}>\n {!shouldHideButtons && (\n <ActionButton\n active={paused}\n onClick={togglePause}\n tooltipId='tooltip-pause'\n tooltipContent={paused ? t('Tooltip.Play') : t('Tooltip.Pause')}\n icon={faPause}\n activeIcon={faPlay}\n />\n )}\n\n {!intrudeListenStatus?.isListen && (\n <ActionButton\n active={muted}\n onClick={toggleMute}\n tooltipId='tooltip-mute'\n tooltipContent={muted ? t('Tooltip.Unmute') : t('Tooltip.Mute')}\n icon={faMicrophone}\n activeIcon={faMicrophoneSlash}\n />\n )}\n\n {!shouldHideTransferButton && <TransferButton />}\n\n {!shouldHideButtons && !shouldHideTransferButton && (\n <Button\n active={actionsExpanded}\n variant='transparent'\n onClick={toggleActionsExpanded}\n data-tooltip-id='tooltip-expand'\n data-tooltip-content={actionsExpanded ? t('Tooltip.Collapse') : t('Tooltip.Expand')}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={actionsExpanded ? faAngleUp : faAngleDown}\n />\n </Button>\n )}\n </div>\n\n {/* Actions expanded section */}\n {actionsExpanded && (\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 <ActionButton\n active={view === 'keypad'}\n onClick={openKeypad}\n tooltipId='tooltip-keyboard'\n tooltipContent={t('Tooltip.Keyboard')}\n icon={faGridRound}\n />\n\n <ActionButton\n active={parked}\n onClick={parkCurrentCall}\n tooltipId='tooltip-park'\n tooltipContent={t('Tooltip.Park')}\n icon={faSquareParking}\n />\n\n {profile?.macro_permissions?.settings?.permissions?.conference?.value && (\n <Button\n data-stop-propagation={true}\n variant='default'\n onClick={handleConferenceAction}\n data-tooltip-id='tooltip-conference'\n data-tooltip-content={\n isActive ? t('Tooltip.Conference') || '' : t('Tooltip.Add user to conference') || ''\n }\n >\n <FontAwesomeIcon icon={isActive ? faPlus : faUserPlus} className='pi-h-6 pi-w-6' />\n </Button>\n )}\n\n <Button\n variant='default'\n onClick={toggleSideView}\n data-tooltip-id='tooltip-sideView'\n data-tooltip-content={t('Tooltip.Other actions') || ''}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={sideViewIsVisible ? faClose : faOpen}\n />\n </Button>\n </div>\n )}\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-transfer' place='bottom' />\n <CustomThemedTooltip id='tooltip-pause' place='bottom' />\n <CustomThemedTooltip id='tooltip-mute' place='bottom' />\n <CustomThemedTooltip id='tooltip-expand' place='bottom' />\n <CustomThemedTooltip id='tooltip-keyboard' place='bottom' />\n <CustomThemedTooltip id='tooltip-conference' place='bottom' />\n <CustomThemedTooltip id='tooltip-park' place='bottom' />\n <CustomThemedTooltip id='tooltip-sideView' place='left' />\n </>\n )\n}\n\nexport default React.memo(Actions)\n"],"names":["ActionButton","React","memo","_a","active","onClick","tooltipId","tooltipContent","icon","_b","activeIcon","createElement","Button","variant","FontAwesomeIcon","className","Actions$1","t","useTranslation","dispatch","useDispatch","_e","useSelector","state","currentCall","paused","muted","parked","transferring","_f","island","view","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","intrudeListenStatus","listen","_g","conference","isActive","conferenceStartedFrom","_h","currentUser","username","profile","autoExpandedRef","useRef","autoCollapsedRef","isOwnerOfConference","useMemo","shouldHideTransferButton","shouldHideButtons","isIntrude","isListen","toggleMute","useCallback","unmuteCurrentCall","muteCurrentCall","togglePause","unpauseCurrentCall","pauseCurrentCall","openKeypad","setIslandView","eventDispatch","toggleActionsExpanded","newState","concat","toggleSideView","transfer","beginConference","addUserToConference","__awaiter","startConference","sent","handleConferenceAction","shouldExpandActions","current","shouldCollapseActions","useEffect","cancelTransfer","sendDtmfFunc","isWebRTC","sendDTMF","sendPhysicalDTMF","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","updateTransferring","useEventListener","mainGridClassName","Fragment","faPause","faPlay","faMicrophone","faMicrophoneSlash","TransferButton","faAngleUp","faAngleDown","faGridRound","parkCurrentCall","faSquareParking","_d","_c","macro_permissions","settings","permissions","value","faPlus","faUserPlus","faClose","faOpen","CustomThemedTooltip","id","place"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var r=require("../../styles/Island.styles.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.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");require("../../node_modules/react-redux/es/index.js");var r=require("../../styles/Island.styles.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),n=require("../../lib/phone/counterpartDevice.js"),s=require("../../node_modules/react-redux/es/hooks/useSelector.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(e);exports.default=function(){var e=s.useSelector(function(e){return n.getMainExtensionNumber(e.currentCall.number,e.users)}),u=s.useSelector(function(e){return e.island}).isOpen,a=t.useTranslation().t,i="unknown"===e?a("TextScroll.unknown"):e||a("Call.In progress...")||"-";return o.default.createElement(r.StyledNumber,{isOpen:u},o.default.createElement("span",{className:"dark:pi-text-gray-50 pi-text-gray-600"},i))};
|
|
2
2
|
//# sourceMappingURL=Number.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.js","sources":["../../../src/components/CallView/Number.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledNumber } from '../../styles/Island.styles'\nimport { useTranslation } from 'react-i18next'\n\nconst Number: FC = () => {\n const
|
|
1
|
+
{"version":3,"file":"Number.js","sources":["../../../src/components/CallView/Number.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledNumber } from '../../styles/Island.styles'\nimport { useTranslation } from 'react-i18next'\nimport { getMainExtensionNumber } from '../../lib/phone/counterpartDevice'\n\nconst Number: FC = () => {\n const number = useSelector((state: RootState) =>\n getMainExtensionNumber(state.currentCall.number, state.users),\n )\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { t } = useTranslation()\n\n const displayNumber =\n number === 'unknown' ? t('TextScroll.unknown') : number || t('Call.In progress...') || '-'\n\n return (\n <StyledNumber isOpen={isOpen}>\n <span className='dark:pi-text-gray-50 pi-text-gray-600'>{displayNumber}</span>\n </StyledNumber>\n )\n}\n\nexport default Number\n"],"names":["number","useSelector","state","getMainExtensionNumber","currentCall","users","isOpen","island","t","useTranslation","displayNumber","React","createElement","StyledNumber","className"],"mappings":"8lBAUmB,WACjB,IAAMA,EAASC,cAAY,SAACC,GAC1B,OAAAC,EAAAA,uBAAuBD,EAAME,YAAYJ,OAAQE,EAAMG,MAAvD,GAEMC,EAAWL,cAAY,SAACC,GAAqB,OAAAA,EAAMK,gBACnDC,EAAMC,qBAERC,EACO,YAAXV,EAAuBQ,EAAE,sBAAwBR,GAAUQ,EAAE,wBAA0B,IAEzF,OACEG,EAAC,QAAAC,cAAAC,EAAYA,aAAC,CAAAP,OAAQA,GACpBK,EAAM,QAAAC,cAAA,OAAA,CAAAE,UAAU,yCAAyCJ,GAG/D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),a=require("../../utils/streaming/streamingUtils.js"),l=require("../../lib/phone/call.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var n=require("../../lib/phone/conversation.js"),r=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../Island.js");var o=require("../Button.js"),u=require("../AudioBars.js");require("../../node_modules/i18next/dist/esm/i18next.js");var s=require("../CustomThemedTooltip.js");require("../TranscriptionView/TranscriptionView.js");var c=require("./Timer.js"),d=require("./Number.js"),p=require("./DisplayName.js"),m=require("./Avatar.js"),f=require("./DeviceIcon.js"),g=require("./NumberPopover.js"),x=require("../../styles/Island.styles.js"),E=require("./Actions.js"),v=require("../Hangup.js");require("../../node_modules/react-i18next/dist/es/context.js");var w=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),h=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),N=require("../StreamingImage/index.js"),j=require("../VideoStreamingSkeleton/index.js"),b=require("../VideoStreamingEmptyState/index.js"),y=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),q=require("../../node_modules/react-redux/es/hooks/useSelector.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=T(e);function C(e,t){return!e&&!t}var k=e.memo(function(e){var t=e.children,i=e.className,a=void 0===i?"pi-gap-1 pi-grid-rows-2":i;return _.default.createElement("div",{className:"pi-grid pi-min-w-0 pi-self-center pi-grid-cols-1 ".concat(a)},t)});k.displayName="Details";var I=e.memo(function(e){var a=e.label,l=e.tooltipContent;return a?_.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-text-iconSecondary dark:pi-text-indigo-400","data-tooltip-id":l?"tooltip-queue":void 0,"data-tooltip-content":l||""},_.default.createElement(t.FontAwesomeIcon,{icon:i.faUsers,className:"pi-h-5 pi-w-5"})):null});I.displayName="QueueBadge";var S=e.memo(function(e){var a=e.label,l=e.tooltipContent;return a?_.default.createElement("span",{className:"pi-inline-flex pi-w-fit pi-max-w-full pi-flex-none pi-items-center pi-gap-1.5 pi-self-start pi-rounded-full pi-bg-iconSecondary pi-px-2.5 pi-py-1 pi-text-xs pi-font-medium pi-leading-none pi-text-iconWhite dark:pi-bg-iconSecondaryDark","data-tooltip-id":l?"tooltip-queue":void 0,"data-tooltip-content":l||"","aria-label":l||a},_.default.createElement(t.FontAwesomeIcon,{icon:i.faUsers,className:"pi-h-3 pi-w-3 pi-flex-none"}),_.default.createElement("span",{className:"pi-block pi-max-w-28 pi-truncate"},a)):null});S.displayName="IncomingQueueBadge";var A=e.memo(function(){var T,A=w.useTranslation().t,O=y.useDispatch(),F=q.useSelector(function(e){return e.currentCall}),M=F.incoming,P=F.accepted,B=F.outgoing,D=F.startTime,U=F.paused,V=F.number,W=F.displayName,z=F.isRecording,L=F.streamingSourceNumber,H=F.queueName,Q=F.queueNumber,R=F.throughQueue,G=F.counterpartDeviceType,J=q.useSelector(function(e){return e.island}),K=J.isOpen,X=J.isFromStreaming,Y=q.useSelector(function(e){return e.webrtc}).remoteAudioStream,Z=q.useSelector(function(e){return e.listen}),$=Z.isListen,ee=Z.isIntrude,te=Z.isListenExtension,ie=Z.isIntrudeExtension,ae=q.useSelector(function(e){return e.alerts}).data,le=q.useSelector(function(e){return e.currentUser}),ne=q.useSelector(function(e){return e.streaming}),re=ne.videoSources,oe=ne.sourceImages,ue=e.useMemo(function(){return Object.values(ae).filter(function(e){return e.active})},[ae]),se=e.useMemo(function(){return ue.length>0?ue[ue.length-1]:null},[ue]),ce=e.useMemo(function(){return X&&L&&!P},[X,L,P]),de=e.useMemo(function(){if(!L||!re)return{canUnlock:!1,tooltipText:""};var e=Object.values(re).find(function(e){return(null==e?void 0:e.extension)===L}),t=Boolean((null==e?void 0:e.cmdOpen)&&""!==(null==e?void 0:e.cmdOpen.trim()));return{canUnlock:t,tooltipText:t&&e?"".concat(A("VideoStreaming.Open"),": ").concat(null==e?void 0:e.description):""}},[L,re,A]),pe=e.useMemo(function(){return n.isNumberOnlyName(W)},[W]),me=e.useMemo(function(){return!pe&&(e=V,(e||"").replace(/\D/g,"")).length>0;var e},[pe,V]),fe=Boolean(G),ge=e.useMemo(function(){return H||Q||""},[H,Q]),xe=e.useMemo(function(){return R&&ge?"".concat(A("Common.Queue"),": ").concat(ge):""},[R,ge,A]),Ee=e.useMemo(function(){return Boolean(M&&!P&&R&&ge)},[P,M,R,ge]),ve=e.useCallback(function(){var e;return _.default.createElement("div",{className:"pi-text-gray-600 dark:pi-text-gray-300 pi-font-normal pi-text-sm pi-flex pi-items-center pi-truncate"},_.default.createElement(t.FontAwesomeIcon,{size:"sm",icon:h.faOfficePhone,className:"pi-mr-1"}),_.default.createElement("span",{className:"pi-max-w-16 pi-truncate"},(null===(e=null==le?void 0:le.default_device)||void 0===e?void 0:e.description)||A("Common.Physical phone")))},[null===(T=null==le?void 0:le.default_device)||void 0===T?void 0:T.description,A]),we=e.useCallback(function(e){var a=K?"pi-h-12 pi-w-12":"pi-h-6 pi-w-6",l=K?"pi-h-8":"pi-h-4 pi-w-4 pi-rounded-full",n=K?"pi-w-8 pi-h-8":"pi-h-6 pi-w-6",r="red"===e?"pi-bg-red-400":"pi-bg-green-400",o="red"===e?"pi-text-red-500":"pi-text-green-500";return _.default.createElement("div",{className:"".concat(a," pi-flex pi-justify-center pi-items-center")},_.default.createElement("div",{className:"".concat(l," pi-w-fit pi-flex pi-justify-center pi-items-center pi-gap-1 pi-overflow-hidden")},_.default.createElement("span",{className:"".concat(n," pi-animate-ping pi-absolute pi-inline-flex pi-rounded-full ").concat(r," pi-opacity-75")}),_.default.createElement(t.FontAwesomeIcon,{className:"pi-w-4 pi-h-6 pi-rotate-45 ".concat(o),icon:i.faCircle})))},[K]),he=e.useMemo(function(){var e="pi-grid pi-items-center";return K&&(e=Ee?"pi-grid pi-items-center":"pi-grid pi-items-start",P?e+=" pi-grid-rows-[72px_1fr]":M?e+=" pi-grid-cols-[256px_114px]":B&&(e+=" pi-grid-cols-[1fr_84px]")),ce?"pi-flex pi-flex-col":e},[K,P,M,B,ce,Ee]),Ne=e.useMemo(function(){var e=K&&!Ee?"start":"center";return"pi-grid ".concat(K&&!P&&B?"pi-grid-cols-[48px_1fr]":K&&!P&&M?"pi-grid-cols-[48px_1fr_1px]":K&&P?"pi-grid-cols-[48px_164px_48px]":K||P?"pi-grid-cols-[24px_66px_24px]":"pi-grid-cols-[24px_102px]"," pi-gap-").concat(K?"5":"3"," pi-items-").concat(e," pi-justify-center pi-w-full")},[K,P,M,B,Ee]),je=e.useMemo(function(){return ce?"pi-grid-cols-3":C(B,P)?"pi-grid-cols-2":P?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"},[ce,B,P]),be=e.useCallback(function(){var e=K?"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";return $?_.default.createElement(t.FontAwesomeIcon,{className:e,icon:i.faEarListen}):ee?_.default.createElement(t.FontAwesomeIcon,{className:e,icon:i.faHandPointUp}):_.default.createElement(m.default,null)},[K,$,ee]),ye=e.useCallback(function(e,t){return fe||t?_.default.createElement("div",{className:"pi-flex pi-min-w-0 pi-items-center pi-gap-2"},fe&&_.default.createElement(f.default,null),e):e},[fe]),qe=e.useCallback(function(){return K?ee?_.default.createElement(k,null,_.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"},A("Common.Intrude"),ie?" - ".concat(ie):""),P?r.isPhysical()?ve():_.default.createElement(c.default,{startTime:D,isNotAlwaysWhite:!0}):ie?"".concat(ie):""):$?_.default.createElement(k,null,_.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"},A("Common.Listen"),te?" - ".concat(te):""),P?r.isPhysical()?ve():_.default.createElement(c.default,{startTime:D,isNotAlwaysWhite:!0}):te?"".concat(te):""):Ee?_.default.createElement(k,{className:pe?"pi-grid-rows-[20px_24px] pi-gap-0.5":"pi-grid-rows-[20px_24px_24px] pi-gap-0.5"},_.default.createElement(S,{label:ge,tooltipContent:xe}),_.default.createElement(p.default,null),!pe&&_.default.createElement(d.default,null)):_.default.createElement(k,null,P&&R&&ge?_.default.createElement("div",{className:"pi-flex pi-min-w-0 pi-items-center pi-gap-2"},_.default.createElement("div",{className:"pi-min-w-0 pi-flex-1"},_.default.createElement(p.default,null)),_.default.createElement(I,{label:ge,tooltipContent:xe})):_.default.createElement(p.default,null),P?ye(_.default.createElement(_.default.Fragment,null,r.isPhysical()?ve():me?_.default.createElement("span",{className:"pi-grid pi-items-center"},_.default.createElement(x.StyledTimer,{isOpen:K,size:"large","aria-hidden":"true",className:"pi-invisible pi-col-start-1 pi-row-start-1"},"00:00:00"),_.default.createElement("span",{className:"pi-col-start-1 pi-row-start-1"},_.default.createElement(c.default,{startTime:D,isNotAlwaysWhite:!0}))):_.default.createElement(c.default,{startTime:D,isNotAlwaysWhite:!0}),me&&_.default.createElement(g.default,null)),me):ye(pe&&(B||M)?_.default.createElement(x.StyledNumber,{isOpen:K},_.default.createElement("span",{className:"dark:pi-text-gray-50 pi-text-gray-600"},A(B?"Call.Calling...":"Call.Incoming call"))):_.default.createElement(d.default,null),!1)):null},[M,B,pe,me,ye,K,ee,$,P,D,ie,te,A,ve,P,R,ge,xe,Ee]),Te=e.useCallback(function(){return P&&z?we("red"):P&&Y&&!r.isPhysical()?_.default.createElement(u.AudioBars,{audioStream:Y,paused:U,size:K?"large":"small"}):P&&r.isPhysical()?we("green"):null},[P,z,Y,K,U,we]),_e=e.useCallback(function(){if(!re||0===Object.keys(re).length||!L)return _.default.createElement(j.default,{className:"pi-w-full pi-h-40 pi-mt-4"});var e=Object.values(re).find(function(e){return e.extension===L});return e&&(oe[e.id]||e.image)?_.default.createElement(N.default,null):_.default.createElement(b.default,{className:"pi-w-full pi-h-40 pi-mt-4"})},[L,re,oe]);if(null!==se)return null;return _.default.createElement("div",{className:"pi-bg-red pi-content-center pi-justify-center"},_.default.createElement("div",{className:he},ce?_.default.createElement(_.default.Fragment,null,_.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-w-full pi-gap-2"},_.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4 pi-min-w-0 pi-flex-1"},be(),_.default.createElement("div",{className:"pi-flex pi-flex-col pi-justify-center pi-space-y-2 pi-min-w-0"},_.default.createElement(p.default,null),_.default.createElement(d.default,null))),_.default.createElement("div",{className:"pi-flex pi-gap-2 pi-flex-shrink-0"},_.default.createElement(v.default,{description:A("Tooltip.Hangup")}),!B&&_.default.createElement(o.Button,{onClick:function(){return l.answerIncomingCall(),void setTimeout(function(){O.island.setIslandView("streamingAnswer")},200)},variant:"green","data-tooltip-id":"tooltip-answer","data-tooltip-content":A("Tooltip.Answer")||""},_.default.createElement(t.FontAwesomeIcon,{className:"pi-w-5 pi-h-5",icon:i.faPhone})),(null==de?void 0:de.canUnlock)&&_.default.createElement(o.Button,{variant:"default",onClick:a.handleStreamingUnlock,"data-tooltip-id":"tooltip-unlock","data-tooltip-content":null==de?void 0:de.tooltipText},_.default.createElement(t.FontAwesomeIcon,{className:"pi-w-5 pi-h-5",icon:i.faUnlock})))),_e()):_.default.createElement(_.default.Fragment,null,_.default.createElement("div",{className:Ne},be(),qe(),!K&&!P&&_.default.createElement(p.default,null),!K&&P&&_.default.createElement(c.default,{startTime:D,isNotAlwaysWhite:!0}),Te()),K&&_.default.createElement(_.default.Fragment,null,_.default.createElement("div",{className:"".concat($||ee?"":"pi-grid pi-gap-y-5")},P&&_.default.createElement(E.default,null),_.default.createElement("div",{className:"pi-grid ".concat(je," pi-gap-3.5")},_.default.createElement(v.default,{description:A("Tooltip.Hangup and transfer")}),C(B,P)&&_.default.createElement(o.Button,{onClick:l.answerIncomingCall,variant:"green","data-tooltip-id":"tooltip-answer-left","data-tooltip-content":A("Tooltip.Answer")||""},_.default.createElement(t.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:i.faPhone}))))))),_.default.createElement(s.CustomThemedTooltip,{id:"tooltip-answer-left",place:"left"}),_.default.createElement(s.CustomThemedTooltip,{id:"tooltip-answer",place:"left"}),_.default.createElement(s.CustomThemedTooltip,{id:"tooltip-unlock",place:"left"}),_.default.createElement(s.CustomThemedTooltip,{id:"tooltip-display-name",place:"bottom"}),_.default.createElement(s.CustomThemedTooltip,{id:"tooltip-queue",place:"bottom"}),_.default.createElement(s.CustomThemedTooltip,{id:f.DEVICE_TOOLTIP_ID,place:"right",offset:11,maxWidth:"300px"}))});exports.default=A;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../services/user.js");var a=require("../../utils/streaming/videoSource.js"),l=require("../../lib/phone/call.js");require("../../node_modules/socket.io-client/build/esm/index.js");var n=require("../../lib/phone/conversation.js"),r=require("../../lib/user/default_device.js");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../Island.js");var s=require("../Button.js"),o=require("../AudioBars.js");require("../../node_modules/i18next/dist/esm/i18next.js");var u=require("../CustomThemedTooltip.js");require("../TranscriptionView/TranscriptionView.js");var c=require("./Timer.js"),d=require("./Number.js"),p=require("./DisplayName.js"),m=require("./Avatar.js"),f=require("./DeviceIcon.js"),g=require("./NumberPopover.js"),x=require("../../styles/Island.styles.js"),E=require("./Actions.js"),v=require("../Hangup.js");require("../../node_modules/react-i18next/dist/es/context.js");var w=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),h=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),N=require("../StreamingImage/index.js"),b=require("../StreamingVideo/index.js"),j=require("../StreamingUnlock/index.js"),y=require("../VideoStreamingSkeleton/index.js"),q=require("../VideoStreamingEmptyState/index.js"),C=require("../../utils/customHooks/useStreamingAspectRatio.js"),S=require("../../utils/streaming/previewSize.js"),_=require("../../utils/customHooks/useStreamingContentHeight.js"),k=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),T=require("../../node_modules/react-redux/es/hooks/useSelector.js");function I(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var A=I(e);function P(e,t){return!e&&!t}var F=e.memo(function(e){var t=e.children,i=e.className,a=void 0===i?"pi-gap-1 pi-grid-rows-2":i;return A.default.createElement("div",{className:"pi-grid pi-min-w-0 pi-self-center pi-grid-cols-1 ".concat(a)},t)});F.displayName="Details";var M=e.memo(function(e){var a=e.label,l=e.tooltipContent;return a?A.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-text-iconSecondary dark:pi-text-indigo-400","data-tooltip-id":l?"tooltip-queue":void 0,"data-tooltip-content":l||""},A.default.createElement(t.FontAwesomeIcon,{icon:i.faUsers,className:"pi-h-5 pi-w-5"})):null});M.displayName="QueueBadge";var O=e.memo(function(e){var a=e.label,l=e.tooltipContent;return a?A.default.createElement("span",{className:"pi-inline-flex pi-w-fit pi-max-w-full pi-flex-none pi-items-center pi-gap-1.5 pi-self-start pi-rounded-full pi-bg-iconSecondary pi-px-2.5 pi-py-1 pi-text-xs pi-font-medium pi-leading-none pi-text-iconWhite dark:pi-bg-iconSecondaryDark","data-tooltip-id":l?"tooltip-queue":void 0,"data-tooltip-content":l||"","aria-label":l||a},A.default.createElement(t.FontAwesomeIcon,{icon:i.faUsers,className:"pi-h-3 pi-w-3 pi-flex-none"}),A.default.createElement("span",{className:"pi-block pi-max-w-28 pi-truncate"},a)):null});O.displayName="IncomingQueueBadge";var B=e.memo(function(){var I,B=w.useTranslation().t,D=k.useDispatch(),V=T.useSelector(function(e){return e.currentCall}),H=V.incoming,W=V.accepted,z=V.outgoing,R=V.startTime,U=V.paused,L=V.number,Q=V.displayName,G=V.isRecording,J=V.streamingSourceNumber,K=V.queueName,X=V.queueNumber,Y=V.throughQueue,Z=V.counterpartDeviceType,$=T.useSelector(function(e){return e.island}),ee=$.isOpen,te=$.isFromStreaming,ie=T.useSelector(function(e){return e.webrtc}).remoteAudioStream,ae=T.useSelector(function(e){return e.listen}),le=ae.isListen,ne=ae.isIntrude,re=ae.isListenExtension,se=ae.isIntrudeExtension,oe=T.useSelector(function(e){return e.alerts}).data,ue=T.useSelector(function(e){return e.currentUser}),ce=T.useSelector(function(e){return e.streaming}),de=ce.videoSources,pe=ce.sourceImages,me=ce.gateChooserOpen,fe=e.useState(null),ge=fe[0],xe=fe[1],Ee=S.getStreamingPreviewBoxRatio(C.useStreamingAspectRatio()),ve=e.useMemo(function(){return Object.values(oe).filter(function(e){return e.active})},[oe]),we=e.useMemo(function(){return ve.length>0?ve[ve.length-1]:null},[ve]),he=e.useMemo(function(){return te&&J&&!W},[te,J,W]),Ne=e.useMemo(function(){return a.findVideoSourceByNumber(de,J)},[J,de]),be=e.useMemo(function(){return n.isNumberOnlyName(Q)},[Q]),je=e.useMemo(function(){return!be&&(e=L,(e||"").replace(/\D/g,"")).length>0;var e},[be,L]),ye=Boolean(Z),qe=e.useMemo(function(){return K||X||""},[K,X]),Ce=e.useMemo(function(){return Y&&qe?"".concat(B("Common.Queue"),": ").concat(qe):""},[Y,qe,B]),Se=e.useMemo(function(){return Boolean(H&&!W&&Y&&qe)},[W,H,Y,qe]),_e=e.useCallback(function(){var e;return A.default.createElement("div",{className:"pi-text-gray-600 dark:pi-text-gray-300 pi-font-normal pi-text-sm pi-flex pi-items-center pi-truncate"},A.default.createElement(t.FontAwesomeIcon,{size:"sm",icon:h.faOfficePhone,className:"pi-mr-1"}),A.default.createElement("span",{className:"pi-max-w-16 pi-truncate"},(null===(e=null==ue?void 0:ue.default_device)||void 0===e?void 0:e.description)||B("Common.Physical phone")))},[null===(I=null==ue?void 0:ue.default_device)||void 0===I?void 0:I.description,B]),ke=e.useCallback(function(e){var a=ee?"pi-h-12 pi-w-12":"pi-h-6 pi-w-6",l=ee?"pi-h-8":"pi-h-4 pi-w-4 pi-rounded-full",n=ee?"pi-w-8 pi-h-8":"pi-h-6 pi-w-6",r="red"===e?"pi-bg-red-400":"pi-bg-green-400",s="red"===e?"pi-text-red-500":"pi-text-green-500";return A.default.createElement("div",{className:"".concat(a," pi-flex pi-justify-center pi-items-center")},A.default.createElement("div",{className:"".concat(l," pi-w-fit pi-flex pi-justify-center pi-items-center pi-gap-1 pi-overflow-hidden")},A.default.createElement("span",{className:"".concat(n," pi-animate-ping pi-absolute pi-inline-flex pi-rounded-full ").concat(r," pi-opacity-75")}),A.default.createElement(t.FontAwesomeIcon,{className:"pi-w-4 pi-h-6 pi-rotate-45 ".concat(s),icon:i.faCircle})))},[ee]),Te=e.useMemo(function(){var e="pi-grid pi-items-center";return ee&&(e=Se?"pi-grid pi-items-center":"pi-grid pi-items-start",W?e+=" pi-grid-rows-[72px_1fr]":H?e+=" pi-grid-cols-[256px_114px]":z&&(e+=" pi-grid-cols-[1fr_84px]")),he?"pi-flex pi-flex-col":e},[ee,W,H,z,he,Se]),Ie=e.useMemo(function(){var e=ee&&!Se?"start":"center";return"pi-grid ".concat(ee&&!W&&z?"pi-grid-cols-[48px_1fr]":ee&&!W&&H?"pi-grid-cols-[48px_1fr_1px]":ee&&W?"pi-grid-cols-[48px_164px_48px]":ee||W?"pi-grid-cols-[24px_66px_24px]":"pi-grid-cols-[24px_102px]"," pi-gap-").concat(ee?"5":"3"," pi-items-").concat(e," pi-justify-center pi-w-full")},[ee,W,H,z,Se]),Ae=e.useMemo(function(){return he?"pi-grid-cols-3":P(z,W)?"pi-grid-cols-2":W?"pi-grid-cols-1 pi-justify-items-center":"pi-grid-cols-1 pi-justify-items-end"},[he,z,W]),Pe=e.useCallback(function(){var e=ee?"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";return le?A.default.createElement(t.FontAwesomeIcon,{className:e,icon:i.faEarListen}):ne?A.default.createElement(t.FontAwesomeIcon,{className:e,icon:i.faHandPointUp}):A.default.createElement(m.default,null)},[ee,le,ne]),Fe=e.useCallback(function(e,t){return ye||t?A.default.createElement("div",{className:"pi-flex pi-min-w-0 pi-items-center pi-gap-2"},ye&&A.default.createElement(f.default,null),e):e},[ye]),Me=e.useCallback(function(){return ee?ne?A.default.createElement(F,null,A.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"},B("Common.Intrude"),se?" - ".concat(se):""),W?r.isPhysical()?_e():A.default.createElement(c.default,{startTime:R,isNotAlwaysWhite:!0}):se?"".concat(se):""):le?A.default.createElement(F,null,A.default.createElement("span",{className:"pi-justify-center pi-w-fit pi-relative pi-inline-block pi-font-bold pi-text-base"},B("Common.Listen"),re?" - ".concat(re):""),W?r.isPhysical()?_e():A.default.createElement(c.default,{startTime:R,isNotAlwaysWhite:!0}):re?"".concat(re):""):Se?A.default.createElement(F,{className:be?"pi-grid-rows-[20px_24px] pi-gap-0.5":"pi-grid-rows-[20px_24px_24px] pi-gap-0.5"},A.default.createElement(O,{label:qe,tooltipContent:Ce}),A.default.createElement(p.default,null),!be&&A.default.createElement(d.default,null)):A.default.createElement(F,null,W&&Y&&qe?A.default.createElement("div",{className:"pi-flex pi-min-w-0 pi-items-center pi-gap-2"},A.default.createElement("div",{className:"pi-min-w-0 pi-flex-1"},A.default.createElement(p.default,null)),A.default.createElement(M,{label:qe,tooltipContent:Ce})):A.default.createElement(p.default,null),W?Fe(A.default.createElement(A.default.Fragment,null,r.isPhysical()?_e():je?A.default.createElement("span",{className:"pi-grid pi-items-center"},A.default.createElement(x.StyledTimer,{isOpen:ee,size:"large","aria-hidden":"true",className:"pi-invisible pi-col-start-1 pi-row-start-1"},"00:00:00"),A.default.createElement("span",{className:"pi-col-start-1 pi-row-start-1"},A.default.createElement(c.default,{startTime:R,isNotAlwaysWhite:!0}))):A.default.createElement(c.default,{startTime:R,isNotAlwaysWhite:!0}),je&&A.default.createElement(g.default,null)),je):Fe(be&&(z||H)?A.default.createElement(x.StyledNumber,{isOpen:ee},A.default.createElement("span",{className:"dark:pi-text-gray-50 pi-text-gray-600"},B(z?"Call.Calling...":"Call.Incoming call"))):A.default.createElement(d.default,null),!1)):null},[H,z,be,je,Fe,ee,ne,le,W,R,se,re,B,_e,W,Y,qe,Ce,Se]),Oe=e.useCallback(function(){return W&&G?ke("red"):W&&ie&&!r.isPhysical()?A.default.createElement(o.AudioBars,{audioStream:ie,paused:U,size:ee?"large":"small"}):W&&r.isPhysical()?ke("green"):null},[W,G,ie,ee,U,ke]),Be=_.useStreamingContentHeight("call",Boolean(he&&ee)),De=e.useCallback(function(){var e=function(e){return A.default.createElement("div",{className:"pi-relative pi-mt-4 pi-w-full pi-flex-shrink-0",style:{aspectRatio:Ee}},e)},t="pi-absolute pi-inset-0";if(!de||0===Object.keys(de).length||!J)return e(A.default.createElement(y.default,{className:t}));var i=Ne;return i?a.isRtspVideoSource(i)?e(A.default.createElement("div",{className:t},A.default.createElement(b.default,{source:i,active:ee,className:"pi-h-full pi-w-full pi-rounded-lg pi-border pi-border-gray-300 dark:pi-border-gray-700 pi-bg-black"}))):e(pe[i.id]||i.image?A.default.createElement(N.default,{className:t}):A.default.createElement(q.default,{className:t})):e(A.default.createElement(q.default,{className:t}))},[J,de,pe,Ne,ee,Ee]);if(null!==we)return null;return A.default.createElement("div",{className:"pi-bg-red pi-content-center pi-justify-center"},A.default.createElement("div",{className:Te,ref:he?Be:void 0},he?A.default.createElement(A.default.Fragment,null,A.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-w-full pi-gap-2"},A.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4 pi-flex-1 pi-min-w-0"},Pe(),A.default.createElement("div",{className:"pi-flex pi-flex-col pi-justify-center pi-space-y-2 pi-min-w-0"},A.default.createElement(p.default,null),A.default.createElement(d.default,null))),A.default.createElement("div",{className:"pi-flex pi-gap-2 pi-flex-shrink-0"},A.default.createElement(v.default,{description:B("Tooltip.Hangup")}),!z&&A.default.createElement(s.Button,{onClick:function(){return l.answerIncomingCall(),void setTimeout(function(){D.island.setIslandView("streamingAnswer")},200)},variant:"green","data-tooltip-id":"tooltip-answer","data-tooltip-content":B("Tooltip.Answer")||""},A.default.createElement(t.FontAwesomeIcon,{className:"pi-w-5 pi-h-5",icon:i.faPhone})),Ne&&A.default.createElement(j.StreamingUnlock,{source:Ne,tooltipId:"tooltip-unlock",tooltipPlace:"bottom-end",onChoose:ee?void 0:function(){return D.island.toggleIsOpen(!0)},onChooserChange:D.streaming.setGateChooserOpen,gatesContainer:ge}))),A.default.createElement("div",{ref:xe,className:me?"pi-mt-3 pi-flex pi-h-10 pi-w-full":"pi-hidden"}),De()):A.default.createElement(A.default.Fragment,null,A.default.createElement("div",{className:Ie},Pe(),Me(),!ee&&!W&&A.default.createElement(p.default,null),!ee&&W&&A.default.createElement(c.default,{startTime:R,isNotAlwaysWhite:!0}),Oe()),ee&&A.default.createElement(A.default.Fragment,null,A.default.createElement("div",{className:"".concat(le||ne?"":"pi-grid pi-gap-y-5")},W&&A.default.createElement(E.default,null),A.default.createElement("div",{className:"pi-grid ".concat(Ae," pi-gap-3.5")},A.default.createElement(v.default,{description:B("Tooltip.Hangup and transfer")}),P(z,W)&&A.default.createElement(s.Button,{onClick:l.answerIncomingCall,variant:"green","data-tooltip-id":"tooltip-answer-left","data-tooltip-content":B("Tooltip.Answer")||""},A.default.createElement(t.FontAwesomeIcon,{className:"pi-w-6 pi-h-6",icon:i.faPhone}))))))),A.default.createElement(u.CustomThemedTooltip,{id:"tooltip-answer-left",place:"left"}),A.default.createElement(u.CustomThemedTooltip,{id:"tooltip-answer",place:"left"}),A.default.createElement(u.CustomThemedTooltip,{id:"tooltip-display-name",place:"bottom"}),A.default.createElement(u.CustomThemedTooltip,{id:"tooltip-queue",place:"bottom"}),A.default.createElement(u.CustomThemedTooltip,{id:f.DEVICE_TOOLTIP_ID,place:"right",offset:11,maxWidth:"300px"}))});exports.default=B;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|