@nethesis/phone-island 1.1.1-dev.3 → 1.1.1-dev.5

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.
@@ -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"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),o=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e),a="tooltip-device",u={webrtc:{icon:o.faHeadset,labelKey:"Call.Web phone"},nethlink:{icon:o.faDesktop,labelKey:"Call.Desktop phone"},physical:{icon:i.faOfficePhone,labelKey:"Common.Physical phone"},mobile:{icon:o.faMobileScreen,labelKey:"Phone Island.Mobile app"}},d=e.memo(function(){var e=r.useTranslation().t,o=n.useSelector(function(e){return e.currentCall}),i=o.counterpartDeviceType,s=o.number,d=i?u[i]:void 0;if(!d)return null;var c=e(d.labelKey),p=s?"".concat(c,": ").concat(s):c;return l.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark","data-tooltip-id":a,"data-tooltip-content":p,"aria-label":p},l.default.createElement(t.FontAwesomeIcon,{icon:d.icon,className:"pi-h-5 pi-w-5"}))});exports.DEVICE_TOOLTIP_ID=a,exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),o=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),n=require("../../lib/phone/counterpartDevice.js"),s=require("../../node_modules/react-redux/es/hooks/useSelector.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=l(e),u="tooltip-device",c={webrtc:{icon:o.faHeadset,labelKey:"Call.Web phone"},nethlink:{icon:o.faDesktop,labelKey:"Call.Desktop phone"},physical:{icon:i.faOfficePhone,labelKey:"Common.Physical phone"},mobile:{icon:o.faMobileScreen,labelKey:"Phone Island.Mobile app"}},d=e.memo(function(){var e=r.useTranslation().t,o=s.useSelector(function(e){return e.currentCall.counterpartDeviceType}),i=s.useSelector(function(e){return n.getMainExtensionNumber(e.currentCall.number,e.users)}),l=o?c[o]:void 0;if(!l)return null;var d=e(l.labelKey),p=i?"".concat(d,": ").concat(i):d;return a.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark","data-tooltip-id":u,"data-tooltip-content":p,"aria-label":p},a.default.createElement(t.FontAwesomeIcon,{icon:l.icon,className:"pi-h-5 pi-w-5"}))});exports.DEVICE_TOOLTIP_ID=u,exports.default=d;
2
2
  //# sourceMappingURL=DeviceIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceIcon.js","sources":["../../../src/components/CallView/DeviceIcon.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport type { IconProp } from '@fortawesome/fontawesome-svg-core'\nimport { faDesktop, faHeadset, faMobileScreen } from '@fortawesome/free-solid-svg-icons'\nimport { faOfficePhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState } from '../../store'\n\nexport const DEVICE_TOOLTIP_ID = 'tooltip-device'\n\nconst DEVICE_ICONS: Record<string, { icon: IconProp; labelKey: string }> = {\n webrtc: { icon: faHeadset, labelKey: 'Call.Web phone' },\n nethlink: { icon: faDesktop, labelKey: 'Call.Desktop phone' },\n physical: { icon: faOfficePhone as IconProp, labelKey: 'Common.Physical phone' },\n mobile: { icon: faMobileScreen, labelKey: 'Phone Island.Mobile app' },\n}\n\nconst DeviceIcon: FC = () => {\n const { t } = useTranslation()\n const { counterpartDeviceType, number } = useSelector((state: RootState) => state.currentCall)\n\n const device = counterpartDeviceType ? DEVICE_ICONS[counterpartDeviceType] : undefined\n if (!device) return null\n\n const label = t(device.labelKey)\n const tooltipContent = number ? `${label}: ${number}` : label\n\n return (\n <span\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark'\n data-tooltip-id={DEVICE_TOOLTIP_ID}\n data-tooltip-content={tooltipContent}\n aria-label={tooltipContent}\n >\n <FontAwesomeIcon icon={device.icon} className='pi-h-5 pi-w-5' />\n </span>\n )\n}\n\nexport default memo(DeviceIcon)\n"],"names":["DEVICE_TOOLTIP_ID","DEVICE_ICONS","webrtc","icon","faHeadset","labelKey","nethlink","faDesktop","physical","faOfficePhone","mobile","faMobileScreen","memo","t","useTranslation","_a","useSelector","state","currentCall","counterpartDeviceType","number","device","undefined","label","tooltipContent","concat","React","createElement","className","FontAwesomeIcon"],"mappings":"+gCAYaA,EAAoB,iBAE3BC,EAAqE,CACzEC,OAAQ,CAAEC,KAAMC,YAAWC,SAAU,kBACrCC,SAAU,CAAEH,KAAMI,YAAWF,SAAU,sBACvCG,SAAU,CAAEL,KAAMM,gBAA2BJ,SAAU,yBACvDK,OAAQ,CAAEP,KAAMQ,iBAAgBN,SAAU,4BAyB7BO,EAAAA,EAAAA,KAtBQ,WACb,IAAAC,EAAMC,qBACRC,EAAoCC,EAAAA,YAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,GAArFC,0BAAuBC,WAEzBC,EAASF,EAAwBlB,EAAakB,QAAyBG,EAC7E,IAAKD,EAAQ,OAAO,KAEpB,IAAME,EAAQV,EAAEQ,EAAOhB,UACjBmB,EAAiBJ,EAAS,GAAAK,OAAGF,EAAK,MAAAE,OAAKL,GAAWG,EAExD,OACEG,UACEC,cAAA,OAAA,CAAAC,UAAU,+JACO5B,EAAiB,uBACZwB,EAAc,aACxBA,GAEZE,UAAAC,cAACE,EAAeA,gBAAA,CAAC1B,KAAMkB,EAAOlB,KAAMyB,UAAU,kBAGpD"}
1
+ {"version":3,"file":"DeviceIcon.js","sources":["../../../src/components/CallView/DeviceIcon.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport type { IconProp } from '@fortawesome/fontawesome-svg-core'\nimport { faDesktop, faHeadset, faMobileScreen } from '@fortawesome/free-solid-svg-icons'\nimport { faOfficePhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState } from '../../store'\nimport { getMainExtensionNumber } from '../../lib/phone/counterpartDevice'\n\nexport const DEVICE_TOOLTIP_ID = 'tooltip-device'\n\nconst DEVICE_ICONS: Record<string, { icon: IconProp; labelKey: string }> = {\n webrtc: { icon: faHeadset, labelKey: 'Call.Web phone' },\n nethlink: { icon: faDesktop, labelKey: 'Call.Desktop phone' },\n physical: { icon: faOfficePhone as IconProp, labelKey: 'Common.Physical phone' },\n mobile: { icon: faMobileScreen, labelKey: 'Phone Island.Mobile app' },\n}\n\nconst DeviceIcon: FC = () => {\n const { t } = useTranslation()\n const counterpartDeviceType = useSelector(\n (state: RootState) => state.currentCall.counterpartDeviceType,\n )\n const number = useSelector((state: RootState) =>\n getMainExtensionNumber(state.currentCall.number, state.users),\n )\n\n const device = counterpartDeviceType ? DEVICE_ICONS[counterpartDeviceType] : undefined\n if (!device) return null\n\n const label = t(device.labelKey)\n const tooltipContent = number ? `${label}: ${number}` : label\n\n return (\n <span\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark'\n data-tooltip-id={DEVICE_TOOLTIP_ID}\n data-tooltip-content={tooltipContent}\n aria-label={tooltipContent}\n >\n <FontAwesomeIcon icon={device.icon} className='pi-h-5 pi-w-5' />\n </span>\n )\n}\n\nexport default memo(DeviceIcon)\n"],"names":["DEVICE_TOOLTIP_ID","DEVICE_ICONS","webrtc","icon","faHeadset","labelKey","nethlink","faDesktop","physical","faOfficePhone","mobile","faMobileScreen","memo","t","useTranslation","counterpartDeviceType","useSelector","state","currentCall","number","getMainExtensionNumber","users","device","undefined","label","tooltipContent","concat","React","createElement","className","FontAwesomeIcon"],"mappings":"ikCAaaA,EAAoB,iBAE3BC,EAAqE,CACzEC,OAAQ,CAAEC,KAAMC,YAAWC,SAAU,kBACrCC,SAAU,CAAEH,KAAMI,YAAWF,SAAU,sBACvCG,SAAU,CAAEL,KAAMM,gBAA2BJ,SAAU,yBACvDK,OAAQ,CAAEP,KAAMQ,iBAAgBN,SAAU,4BA8B7BO,EAAAA,EAAAA,KA3BQ,WACb,IAAAC,EAAMC,qBACRC,EAAwBC,cAC5B,SAACC,GAAqB,OAAAA,EAAMC,YAAYH,qBAAlB,GAElBI,EAASH,cAAY,SAACC,GAC1B,OAAAG,EAAAA,uBAAuBH,EAAMC,YAAYC,OAAQF,EAAMI,MAAvD,GAGIC,EAASP,EAAwBd,EAAac,QAAyBQ,EAC7E,IAAKD,EAAQ,OAAO,KAEpB,IAAME,EAAQX,EAAES,EAAOjB,UACjBoB,EAAiBN,EAAS,GAAAO,OAAGF,EAAK,MAAAE,OAAKP,GAAWK,EAExD,OACEG,UACEC,cAAA,OAAA,CAAAC,UAAU,+JACO7B,EAAiB,uBACZyB,EAAc,aACxBA,GAEZE,UAAAC,cAACE,EAAeA,gBAAA,CAAC3B,KAAMmB,EAAOnB,KAAM0B,UAAU,kBAGpD"}
@@ -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");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../CustomThemedTooltip.js"),a=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(t),u="tooltip-number-popover",c=function(e){var t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",t.style.opacity="0",document.body.appendChild(t),t.select();var r=!1;try{r=document.execCommand("copy")}catch(e){r=!1}return document.body.removeChild(t),r},p=t.memo(function(){var s=r.useTranslation().t,p=a.useSelector(function(e){return e.currentCall}).number,d=t.useState(!1),m=d[0],f=d[1],b=t.useRef(null),v=t.useRef(!0);t.useEffect(function(){return v.current=!0,function(){v.current=!1,b.current&&clearTimeout(b.current)}},[]),t.useEffect(function(){f(!1)},[p]);var h=t.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(t){switch(t.label){case 0:return p?[4,(r=p,e.__awaiter(void 0,void 0,void 0,function(){var t;return e.__generator(this,function(e){switch(e.label){case 0:if(!(null===(t=null===navigator||void 0===navigator?void 0:navigator.clipboard)||void 0===t?void 0:t.writeText)||!window.isSecureContext)return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,navigator.clipboard.writeText(r)];case 2:return e.sent(),[2,!0];case 3:return e.sent(),[2,c(r)];case 4:return[2,c(r)]}})}))]:[2];case 1:return t.sent()&&v.current?(f(!0),b.current&&clearTimeout(b.current),b.current=setTimeout(function(){v.current&&f(!1)},2e3),[2]):[2]}var r})})},[p]);return p?l.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center","data-stop-propagation":!0},l.default.createElement("button",{type:"button",className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500","data-tooltip-id":u,"data-stop-propagation":!0,"aria-label":s("Call.Show number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:n.faEllipsis,className:"pi-h-4 pi-w-4","data-stop-propagation":!0})),l.default.createElement(o.CustomThemedTooltip,{id:u,place:"bottom",offset:12,maxWidth:"300px",openOnClick:!0,clickable:!0,globalCloseEvents:{clickOutsideAnchor:!0,escape:!0}},l.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-2","data-stop-propagation":!0},l.default.createElement("span",{className:"pi-whitespace-nowrap","data-stop-propagation":!0},p),l.default.createElement("button",{type:"button",onClick:h,className:"pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ".concat(m?"pi-text-inherit":"pi-text-emerald-500 dark:pi-text-emerald-700"),"data-stop-propagation":!0,"aria-label":s(m?"Call.Copied":"Call.Copy number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:m?n.faCheck:n.faCopy,className:"pi-h-4 pi-w-4","data-stop-propagation":!0}))))):null});exports.default=p;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../CustomThemedTooltip.js"),a=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 l=u(t),c="tooltip-number-popover",p=function(e){var t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",t.style.opacity="0",document.body.appendChild(t),t.select();var r=!1;try{r=document.execCommand("copy")}catch(e){r=!1}return document.body.removeChild(t),r},d=t.memo(function(){var u=r.useTranslation().t,d=s.useSelector(function(e){return a.getMainExtensionNumber(e.currentCall.number,e.users)}),m=t.useState(!1),f=m[0],b=m[1],v=t.useRef(null),h=t.useRef(!0);t.useEffect(function(){return h.current=!0,function(){h.current=!1,v.current&&clearTimeout(v.current)}},[]),t.useEffect(function(){b(!1)},[d]);var x=t.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(t){switch(t.label){case 0:return d?[4,(r=d,e.__awaiter(void 0,void 0,void 0,function(){var t;return e.__generator(this,function(e){switch(e.label){case 0:if(!(null===(t=null===navigator||void 0===navigator?void 0:navigator.clipboard)||void 0===t?void 0:t.writeText)||!window.isSecureContext)return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,navigator.clipboard.writeText(r)];case 2:return e.sent(),[2,!0];case 3:return e.sent(),[2,p(r)];case 4:return[2,p(r)]}})}))]:[2];case 1:return t.sent()&&h.current?(b(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(function(){h.current&&b(!1)},2e3),[2]):[2]}var r})})},[d]);return d?l.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center","data-stop-propagation":!0},l.default.createElement("button",{type:"button",className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500","data-tooltip-id":c,"data-stop-propagation":!0,"aria-label":u("Call.Show number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:n.faEllipsis,className:"pi-h-4 pi-w-4","data-stop-propagation":!0})),l.default.createElement(o.CustomThemedTooltip,{id:c,place:"bottom",offset:12,maxWidth:"300px",openOnClick:!0,clickable:!0,globalCloseEvents:{clickOutsideAnchor:!0,escape:!0}},l.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-2","data-stop-propagation":!0},l.default.createElement("span",{className:"pi-whitespace-nowrap","data-stop-propagation":!0},d),l.default.createElement("button",{type:"button",onClick:x,className:"pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ".concat(f?"pi-text-inherit":"pi-text-emerald-500 dark:pi-text-emerald-700"),"data-stop-propagation":!0,"aria-label":u(f?"Call.Copied":"Call.Copy number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:f?n.faCheck:n.faCopy,className:"pi-h-4 pi-w-4","data-stop-propagation":!0}))))):null});exports.default=d;
2
2
  //# sourceMappingURL=NumberPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberPopover.js","sources":["../../../src/components/CallView/NumberPopover.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faCopy, faEllipsis } from '@fortawesome/free-solid-svg-icons'\nimport { RootState } from '../../store'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nconst NUMBER_POPOVER_ID = 'tooltip-number-popover'\nconst COPIED_FEEDBACK_MS = 2000\n\nconst copyWithTextarea = (text: string): boolean => {\n const textarea = document.createElement('textarea')\n textarea.value = text\n textarea.setAttribute('readonly', '')\n textarea.style.position = 'fixed'\n textarea.style.top = '-1000px'\n textarea.style.opacity = '0'\n document.body.appendChild(textarea)\n textarea.select()\n let copied = false\n try {\n copied = document.execCommand('copy')\n } catch (error) {\n copied = false\n }\n document.body.removeChild(textarea)\n return copied\n}\n\nconst copyToClipboard = async (text: string): Promise<boolean> => {\n if (navigator?.clipboard?.writeText && window.isSecureContext) {\n try {\n await navigator.clipboard.writeText(text)\n return true\n } catch (error) {\n return copyWithTextarea(text)\n }\n }\n return copyWithTextarea(text)\n}\n\nconst NumberPopover: FC = () => {\n const { t } = useTranslation()\n const { number } = useSelector((state: RootState) => state.currentCall)\n const [copied, setCopied] = useState(false)\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isMountedRef = useRef(true)\n\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n }\n }, [])\n\n useEffect(() => {\n setCopied(false)\n }, [number])\n\n const handleCopy = useCallback(async () => {\n if (!number) return\n const success = await copyToClipboard(number)\n if (!success || !isMountedRef.current) return\n setCopied(true)\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n timeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) setCopied(false)\n }, COPIED_FEEDBACK_MS)\n }, [number])\n\n if (!number) return null\n\n return (\n <span className='pi-inline-flex pi-flex-none pi-items-center' data-stop-propagation={true}>\n <button\n type='button'\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500'\n data-tooltip-id={NUMBER_POPOVER_ID}\n data-stop-propagation={true}\n aria-label={t('Call.Show number') || ''}\n >\n <FontAwesomeIcon icon={faEllipsis} className='pi-h-4 pi-w-4' data-stop-propagation={true} />\n </button>\n <CustomThemedTooltip\n id={NUMBER_POPOVER_ID}\n place='bottom'\n offset={12}\n maxWidth='300px'\n openOnClick\n clickable\n globalCloseEvents={{ clickOutsideAnchor: true, escape: true }}\n >\n <div className='pi-flex pi-items-center pi-gap-2' data-stop-propagation={true}>\n <span className='pi-whitespace-nowrap' data-stop-propagation={true}>\n {number}\n </span>\n <button\n type='button'\n onClick={handleCopy}\n className={`pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ${\n copied ? 'pi-text-inherit' : 'pi-text-emerald-500 dark:pi-text-emerald-700'\n }`}\n data-stop-propagation={true}\n aria-label={(copied ? t('Call.Copied') : t('Call.Copy number')) || ''}\n >\n <FontAwesomeIcon\n icon={copied ? faCheck : faCopy}\n className='pi-h-4 pi-w-4'\n data-stop-propagation={true}\n />\n </button>\n </div>\n </CustomThemedTooltip>\n </span>\n )\n}\n\nexport default memo(NumberPopover)\n"],"names":["NUMBER_POPOVER_ID","copyWithTextarea","text","textarea","document","createElement","value","setAttribute","style","position","top","opacity","body","appendChild","select","copied","execCommand","error","removeChild","memo","t","useTranslation","number","useSelector","state","currentCall","_a","useState","setCopied","timeoutRef","useRef","isMountedRef","useEffect","current","clearTimeout","handleCopy","useCallback","__awaiter","navigator","clipboard","writeText","window","isSecureContext","_b","sent","setTimeout","React","className","type","FontAwesomeIcon","icon","faEllipsis","CustomThemedTooltip","id","place","offset","maxWidth","openOnClick","clickable","globalCloseEvents","clickOutsideAnchor","escape","onClick","concat","faCheck","faCopy"],"mappings":"yhCAWMA,EAAoB,yBAGpBC,EAAmB,SAACC,GACxB,IAAMC,EAAWC,SAASC,cAAc,YACxCF,EAASG,MAAQJ,EACjBC,EAASI,aAAa,WAAY,IAClCJ,EAASK,MAAMC,SAAW,QAC1BN,EAASK,MAAME,IAAM,UACrBP,EAASK,MAAMG,QAAU,IACzBP,SAASQ,KAAKC,YAAYV,GAC1BA,EAASW,SACT,IAAIC,GAAS,EACb,IACEA,EAASX,SAASY,YAAY,OAC/B,CAAC,MAAOC,GACPF,GAAS,CACV,CAED,OADAX,SAASQ,KAAKM,YAAYf,GACnBY,CACT,EA2FeI,EAAAA,EAAAA,KA7EW,WAChB,IAAAC,EAAMC,qBACNC,EAAWC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,qBACrDC,EAAsBC,EAAAA,UAAS,GAA9BZ,EAAMW,EAAA,GAAEE,EAASF,EAAA,GAClBG,EAAaC,SAA6C,MAC1DC,EAAeD,UAAO,GAE5BE,EAAAA,UAAU,WAER,OADAD,EAAaE,SAAU,EAChB,WACLF,EAAaE,SAAU,EACnBJ,EAAWI,SAASC,aAAaL,EAAWI,QAClD,CACD,EAAE,IAEHD,EAAAA,UAAU,WACRJ,GAAU,EACZ,EAAG,CAACN,IAEJ,IAAMa,EAAaC,cAAY,WAAA,OAAAC,EAAAA,eAAA,OAAA,OAAA,EAAA,wEAC7B,OAAKf,EACW,CAAA,GAjCWpB,EAiCWoB,EAjCCe,EAAAA,eAAA,OAAA,OAAA,EAAA,8EACrC,KAAoB,QAApBX,EAAA,OAAAY,oBAAAA,iBAAAA,UAAWC,iBAAS,IAAAb,OAAA,EAAAA,EAAEc,aAAaC,OAAOC,gBAA1C,MAAyD,CAAA,EAAA,oBAEzD,6BAAM,CAAA,EAAAJ,UAAUC,UAAUC,UAAUtC,WACpC,OADAyC,EAAAC,OACA,CAAA,GAAO,UAEP,gBAAA,CAAA,EAAO3C,EAAiBC,IAG5B,KAAA,EAAA,MAAA,CAAA,EAAOD,EAAiBC,WAuBH,CAAA,UAEnB,OADgBwB,EAA6BkB,QAC5Bb,EAAaE,SAC9BL,GAAU,GACNC,EAAWI,SAASC,aAAaL,EAAWI,SAChDJ,EAAWI,QAAUY,WAAW,WAC1Bd,EAAaE,SAASL,GAAU,EACrC,EA5DsB,UAuDsB,CAAA,GAlCzB,IAAO1B,GAwC5B,EAAA,EAAE,CAACoB,IAEJ,OAAKA,EAGHwB,EAAAA,QAAMzC,cAAA,OAAA,CAAA0C,UAAU,uEAAqE,GACnFD,EAAA,QAAAzC,cAAA,SAAA,CACE2C,KAAK,SACLD,UAAU,ySAAwS,kBACjS/C,EAAiB,yBACX,EACX,aAAAoB,EAAE,qBAAuB,IAErC0B,EAAAA,QAAAzC,cAAC4C,kBAAe,CAACC,KAAMC,EAAAA,WAAYJ,UAAU,gBAAe,yBAAwB,KAEtFD,UAAAzC,cAAC+C,EAAmBA,oBAAA,CAClBC,GAAIrD,EACJsD,MAAM,SACNC,OAAQ,GACRC,SAAS,QACTC,aAAW,EACXC,WAAS,EACTC,kBAAmB,CAAEC,oBAAoB,EAAMC,QAAQ,IAEvDf,EAAA,QAAAzC,cAAA,MAAA,CAAK0C,UAAU,mCAAkC,yBAAwB,GACvED,UAAAzC,cAAA,OAAA,CAAM0C,UAAU,gDAA8C,GAC3DzB,GAEHwB,EAAAA,QAAAzC,cAAA,SAAA,CACE2C,KAAK,SACLc,QAAS3B,EACTY,UAAW,iHACTgB,OAAAhD,EAAS,kBAAoB,gDAER,yBAAA,eACDK,EAATL,EAAW,cAAmB,qBAAwB,IAEnE+B,EAAC,QAAAzC,cAAA4C,EAAeA,gBACd,CAAAC,KAAMnC,EAASiD,EAAAA,QAAUC,EAAAA,OACzBlB,UAAU,gBACa,yBAAA,QAtCf,IA6CtB"}
1
+ {"version":3,"file":"NumberPopover.js","sources":["../../../src/components/CallView/NumberPopover.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faCopy, faEllipsis } from '@fortawesome/free-solid-svg-icons'\nimport { RootState } from '../../store'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { getMainExtensionNumber } from '../../lib/phone/counterpartDevice'\n\nconst NUMBER_POPOVER_ID = 'tooltip-number-popover'\nconst COPIED_FEEDBACK_MS = 2000\n\nconst copyWithTextarea = (text: string): boolean => {\n const textarea = document.createElement('textarea')\n textarea.value = text\n textarea.setAttribute('readonly', '')\n textarea.style.position = 'fixed'\n textarea.style.top = '-1000px'\n textarea.style.opacity = '0'\n document.body.appendChild(textarea)\n textarea.select()\n let copied = false\n try {\n copied = document.execCommand('copy')\n } catch (error) {\n copied = false\n }\n document.body.removeChild(textarea)\n return copied\n}\n\nconst copyToClipboard = async (text: string): Promise<boolean> => {\n if (navigator?.clipboard?.writeText && window.isSecureContext) {\n try {\n await navigator.clipboard.writeText(text)\n return true\n } catch (error) {\n return copyWithTextarea(text)\n }\n }\n return copyWithTextarea(text)\n}\n\nconst NumberPopover: FC = () => {\n const { t } = useTranslation()\n const number = useSelector((state: RootState) =>\n getMainExtensionNumber(state.currentCall.number, state.users),\n )\n const [copied, setCopied] = useState(false)\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isMountedRef = useRef(true)\n\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n }\n }, [])\n\n useEffect(() => {\n setCopied(false)\n }, [number])\n\n const handleCopy = useCallback(async () => {\n if (!number) return\n const success = await copyToClipboard(number)\n if (!success || !isMountedRef.current) return\n setCopied(true)\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n timeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) setCopied(false)\n }, COPIED_FEEDBACK_MS)\n }, [number])\n\n if (!number) return null\n\n return (\n <span className='pi-inline-flex pi-flex-none pi-items-center' data-stop-propagation={true}>\n <button\n type='button'\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500'\n data-tooltip-id={NUMBER_POPOVER_ID}\n data-stop-propagation={true}\n aria-label={t('Call.Show number') || ''}\n >\n <FontAwesomeIcon icon={faEllipsis} className='pi-h-4 pi-w-4' data-stop-propagation={true} />\n </button>\n <CustomThemedTooltip\n id={NUMBER_POPOVER_ID}\n place='bottom'\n offset={12}\n maxWidth='300px'\n openOnClick\n clickable\n globalCloseEvents={{ clickOutsideAnchor: true, escape: true }}\n >\n <div className='pi-flex pi-items-center pi-gap-2' data-stop-propagation={true}>\n <span className='pi-whitespace-nowrap' data-stop-propagation={true}>\n {number}\n </span>\n <button\n type='button'\n onClick={handleCopy}\n className={`pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ${\n copied ? 'pi-text-inherit' : 'pi-text-emerald-500 dark:pi-text-emerald-700'\n }`}\n data-stop-propagation={true}\n aria-label={(copied ? t('Call.Copied') : t('Call.Copy number')) || ''}\n >\n <FontAwesomeIcon\n icon={copied ? faCheck : faCopy}\n className='pi-h-4 pi-w-4'\n data-stop-propagation={true}\n />\n </button>\n </div>\n </CustomThemedTooltip>\n </span>\n )\n}\n\nexport default memo(NumberPopover)\n"],"names":["NUMBER_POPOVER_ID","copyWithTextarea","text","textarea","document","createElement","value","setAttribute","style","position","top","opacity","body","appendChild","select","copied","execCommand","error","removeChild","memo","t","useTranslation","number","useSelector","state","getMainExtensionNumber","currentCall","users","_a","useState","setCopied","timeoutRef","useRef","isMountedRef","useEffect","current","clearTimeout","handleCopy","useCallback","__awaiter","navigator","clipboard","writeText","window","isSecureContext","_b","sent","setTimeout","React","className","type","FontAwesomeIcon","icon","faEllipsis","CustomThemedTooltip","id","place","offset","maxWidth","openOnClick","clickable","globalCloseEvents","clickOutsideAnchor","escape","onClick","concat","faCheck","faCopy"],"mappings":"2kCAYMA,EAAoB,yBAGpBC,EAAmB,SAACC,GACxB,IAAMC,EAAWC,SAASC,cAAc,YACxCF,EAASG,MAAQJ,EACjBC,EAASI,aAAa,WAAY,IAClCJ,EAASK,MAAMC,SAAW,QAC1BN,EAASK,MAAME,IAAM,UACrBP,EAASK,MAAMG,QAAU,IACzBP,SAASQ,KAAKC,YAAYV,GAC1BA,EAASW,SACT,IAAIC,GAAS,EACb,IACEA,EAASX,SAASY,YAAY,OAC/B,CAAC,MAAOC,GACPF,GAAS,CACV,CAED,OADAX,SAASQ,KAAKM,YAAYf,GACnBY,CACT,EA6FeI,EAAAA,EAAAA,KA/EW,WAChB,IAAAC,EAAMC,qBACRC,EAASC,cAAY,SAACC,GAC1B,OAAAC,EAAAA,uBAAuBD,EAAME,YAAYJ,OAAQE,EAAMG,MAAvD,GAEIC,EAAsBC,EAAAA,UAAS,GAA9Bd,EAAMa,EAAA,GAAEE,EAASF,EAAA,GAClBG,EAAaC,SAA6C,MAC1DC,EAAeD,UAAO,GAE5BE,EAAAA,UAAU,WAER,OADAD,EAAaE,SAAU,EAChB,WACLF,EAAaE,SAAU,EACnBJ,EAAWI,SAASC,aAAaL,EAAWI,QAClD,CACD,EAAE,IAEHD,EAAAA,UAAU,WACRJ,GAAU,EACZ,EAAG,CAACR,IAEJ,IAAMe,EAAaC,cAAY,WAAA,OAAAC,EAAAA,eAAA,OAAA,OAAA,EAAA,wEAC7B,OAAKjB,EACW,CAAA,GAnCWpB,EAmCWoB,EAnCCiB,EAAAA,eAAA,OAAA,OAAA,EAAA,8EACrC,KAAoB,QAApBX,EAAA,OAAAY,oBAAAA,iBAAAA,UAAWC,iBAAS,IAAAb,OAAA,EAAAA,EAAEc,aAAaC,OAAOC,gBAA1C,MAAyD,CAAA,EAAA,oBAEzD,6BAAM,CAAA,EAAAJ,UAAUC,UAAUC,UAAUxC,WACpC,OADA2C,EAAAC,OACA,CAAA,GAAO,UAEP,gBAAA,CAAA,EAAO7C,EAAiBC,IAG5B,KAAA,EAAA,MAAA,CAAA,EAAOD,EAAiBC,WAyBH,CAAA,UAEnB,OADgB0B,EAA6BkB,QAC5Bb,EAAaE,SAC9BL,GAAU,GACNC,EAAWI,SAASC,aAAaL,EAAWI,SAChDJ,EAAWI,QAAUY,WAAW,WAC1Bd,EAAaE,SAASL,GAAU,EACrC,EA9DsB,UAyDsB,CAAA,GApCzB,IAAO5B,GA0C5B,EAAA,EAAE,CAACoB,IAEJ,OAAKA,EAGH0B,EAAAA,QAAM3C,cAAA,OAAA,CAAA4C,UAAU,uEAAqE,GACnFD,EAAA,QAAA3C,cAAA,SAAA,CACE6C,KAAK,SACLD,UAAU,ySAAwS,kBACjSjD,EAAiB,yBACX,EACX,aAAAoB,EAAE,qBAAuB,IAErC4B,EAAAA,QAAA3C,cAAC8C,kBAAe,CAACC,KAAMC,EAAAA,WAAYJ,UAAU,gBAAe,yBAAwB,KAEtFD,UAAA3C,cAACiD,EAAmBA,oBAAA,CAClBC,GAAIvD,EACJwD,MAAM,SACNC,OAAQ,GACRC,SAAS,QACTC,aAAW,EACXC,WAAS,EACTC,kBAAmB,CAAEC,oBAAoB,EAAMC,QAAQ,IAEvDf,EAAA,QAAA3C,cAAA,MAAA,CAAK4C,UAAU,mCAAkC,yBAAwB,GACvED,UAAA3C,cAAA,OAAA,CAAM4C,UAAU,gDAA8C,GAC3D3B,GAEH0B,EAAAA,QAAA3C,cAAA,SAAA,CACE6C,KAAK,SACLc,QAAS3B,EACTY,UAAW,iHACTgB,OAAAlD,EAAS,kBAAoB,gDAER,yBAAA,eACDK,EAATL,EAAW,cAAmB,qBAAwB,IAEnEiC,EAAC,QAAA3C,cAAA8C,EAAeA,gBACd,CAAAC,KAAMrC,EAASmD,EAAAA,QAAUC,EAAAA,OACzBlB,UAAU,gBACa,yBAAA,QAtCf,IA6CtB"}
@@ -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"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../lib/phone/video.js"),k=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),C=require("../../node_modules/react-redux/es/hooks/useSelector.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=T(t),x=function(){var T,x,q,N,V,R,I,_,D,P,A=k.useDispatch(),L=C.useSelector(function(e){return e.currentCall}),M=L.muted,F=L.startTime,U=L.isRecording,B=L.paused,J=L.isLocalVideoEnabled,z=L.showRemoteVideoPlaceHolder,W=L.hasVideoTrackAdded,G=L.displayName,H=L.isStartingVideoCall,O=C.useSelector(function(e){return e.screenShare}),K=O.localTracks,Q=O.localVideos,X=O.role,Y=O.active,Z=O.isStartingScreenShare,$=O.isJoiningScreenShare,ee=O.isLeavingScreenShare,te=C.useSelector(function(e){return e.listen}),re=C.useSelector(function(e){return e.island}).isOpen,ae=C.useSelector(function(e){return e.webrtc}),ne=ae.janusInstance,ie=ae.remoteAudioStream,oe=a.store.getState().currentUser,le=t.useState(!1),se=le[0],ce=le[1],ue=t.useState(!1),de=ue[0],pe=ue[1],ve=t.useRef(null),me=t.useRef(null),fe=t.useRef(!1),ge=t.useRef(!1),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(null),ke=t.useRef(p.default),Ce=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect(function(){A.player.updatePlayer({localScreen:Se,remoteScreen:be,localVideo:Ee,largeRemoteVideo:we,smallRemoteVideo:ye})},[]),t.useEffect(function(){return Ie(),Te(),addEventListener("fullscreenchange",je),function(){removeEventListener("fullscreenchange",je),ve.current&&clearTimeout(ve.current)}},[]),t.useEffect(function(){H&&(Ne(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[H]),t.useEffect(function(){Z&&(De(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Pe(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[$]),t.useEffect(function(){ee&&(Le(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[ee]),t.useEffect(function(){Ie(),Te()},[re]);var Te=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&A.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},je=function(){ce(!!document.fullscreenElement)},xe=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):he.current&&(he.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",function(){xe()}),l.useEventListener("phone-island-fullscreen-exit",function(){xe()});var qe=function(e,t){A.screenShare.update({source:e});var r=null;null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(t){var n,i,o,l;r=t,A.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ke.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ke.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ke.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ke.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ke.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ke.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ke.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ke.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),a.store.getState().screenShare.remoteFeed===r)if("video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ke.current.stopAllTracks(m),void A.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ke.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ke.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ne=function(){var e,t,r,n;if(!fe.current){var i=a.store.getState().webrtc.sipcall;fe.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||A.currentCall.setVideoTrackAdded(!0)):(s.add=!0,A.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){fe.current=!1,i.send({message:{request:"update"},jsep:e}),y.notifyPeerVideoStart(),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",function(){Ne()});var Ve=function(){var t,r,n,i;if(!fe.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;fe.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});ke.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){fe.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",function(){Ve()});var Re=function(){null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(e){A.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),setTimeout(function(){!function(){var e,t;if(ke.current.isExtensionEnabled()){var r={request:"create",description:ke.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{var d=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;A.screenShare.update({room:p}),null===(s=(l=ke.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(ge.current)return void(null===(u=(c=ke.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));ge.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}}})}else null===(t=(e=ke.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()},500)):"listener"===t&&Ae(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ke.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ke.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,C=k.plugin,T=k.role,j=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===T)null===(s=(l=ke.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ke.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;ge.current=!1,null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e),A.screenShare.update({active:!1,role:""});var n=a.store.getState().screenShare.room,i=function(){return C.detach()};C.send({message:{request:"destroy",room:n},success:i,error:i})}});else if(e.publishers){var x=e.publishers;for(var q in null===(u=(c=ke.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",x),x)if(!x[q].dummy){var N=x[q].id,V=x[q].display;null===(p=(d=ke.current).debug)||void 0===p||p.call(d," >> ["+N+"] "+V),qe(N,V)}}}else if("event"===j)if("listener"===T&&e.publishers){x=e.publishers;for(var q in null===(m=(v=ke.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",x),x)if(!x[q].dummy){N=x[q].id,V=x[q].display;null===(g=(f=ke.current).debug)||void 0===g||g.call(f," >> ["+N+"] "+V),qe(N,V)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ke.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}else e.error&&(null===(E=(b=ke.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ke.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),C.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ke.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==K?void 0:K[c])){if("video"===e.kind){A.screenShare.update({localVideos:Q+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ke.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ke.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),_e(),e.addEventListener("ended",function(){Fe()}))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==K?void 0:K[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&A.screenShare.update({localVideos:Q-1});var h=null==K?void 0:K.filter(function(e){return e!==K[c]});A.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ke.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),ge.current=!1,A.screenShare.update({localTracks:{},localVideos:0})}})},Ie=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,i)},_e=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},De=function(){a.store.getState().screenShare.active||(ge.current=!1,A.screenShare.update({active:!0,role:"publisher"}),Re())};l.useEventListener("phone-island-screen-share-start",function(){De()});var Pe=function(){A.screenShare.update({active:!0,role:"listener"}),Re(),c.eventDispatch("phone-island-screen-share-joined",{})},Ae=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Le=function(){var e=a.store.getState().screenShare,t=e.remoteScreenStream,r=e.remoteFeed,n=e.plugin,i=e.role;ke.current.stopAllTracks(t),A.screenShare.update({active:!1,remoteFeed:null}),null==r||r.detach(),"listener"===i&&(null==n||n.detach()),c.eventDispatch("phone-island-screen-share-left",{})},Me=function(){pe(!0),ve.current&&(clearTimeout(ve.current),ve.current=null),me.current&&clearTimeout(me.current),me.current=setTimeout(function(){ve.current=setTimeout(function(){pe(!1)},3e3)},100)},Fe=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream,n=e.role,i=e.active,o=e.room;if(ge.current=!1,ke.current.stopAllTracks(r),A.screenShare.update({active:!1}),"publisher"===n&&i&&t){var l=function(){return t.detach()};t.send({message:{request:"destroy",room:o},success:l,error:l})}else t.detach();var s=a.store.getState().websocket.socket,u=a.store.getState().currentCall.username,d=a.store.getState().screenShare.room,p=a.store.getState().currentUser.username;s.emit("message",{message:"screenSharingStop",roomId:d,destUser:u,callUser:p}),c.eventDispatch("phone-island-screen-share-stopped",{})};l.useEventListener("phone-island-screen-share-stop",function(){Fe()});var Ue=t.useState(!0),Be=Ue[0],Je=Ue[1],ze=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==Ce?void 0:Ce.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Je(!0),[2,!0]):(Je(!1),[2,!1]);case 2:return Je(!1),[2,!1];case 3:return[2]}})})};return j.default.createElement(j.default.Fragment,null,re?j.default.createElement("div",{ref:he,onMouseMove:function(){return Me()},className:se?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},j.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},j.default.createElement("video",{autoPlay:!0,muted:!0,ref:be,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"listener"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"publisher"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:we,className:"pi-rounded-2xl ".concat(Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(Y||!z?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G)))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:Ee,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(J?"":"pi-hidden")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(J||!W?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(oe.name||"-")))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:ye,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(Y&&z&&W?"":"pi-hidden")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G))))),j.default.createElement("div",{className:"".concat(!de&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},j.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==te?void 0:te.isListen)&&j.default.createElement(r.Button,{variant:"default",active:!!M,onClick:function(){return M?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(M?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},M?j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==Ce?void 0:Ce.length)>0&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,ze()];case 1:return e.sent()&&(J?Ve():Ne()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(Be?J?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!Be,className:"".concat(Be?"":"pi-cursor-auto")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:J?i.faVideoSlash:i.faVideo})),"safari"!==ke.current.webRTCAdapter.browserDetails.browser&&(null===(V=null===(N=null===(q=null===(x=null===(T=null==oe?void 0:oe.profile)||void 0===T?void 0:T.macro_permissions)||void 0===x?void 0:x.nethvoice_cti)||void 0===q?void 0:q.permissions)||void 0===N?void 0:N.screen_sharing)||void 0===V?void 0:V.value)&&!Y&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return De()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),Y&&"publisher"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Fe()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),Y&&"listener"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return xe()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":se?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:se?i.faCompress:i.faExpand})),(null===(P=null===(D=null===(_=null===(I=null===(R=null==oe?void 0:oe.profile)||void 0===R?void 0:R.macro_permissions)||void 0===I?void 0:I.settings)||void 0===_?void 0:_.permissions)||void 0===D?void 0:D.recording)||void 0===P?void 0:P.value)&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==te?void 0:te.isIntrude)||(null==te?void 0:te.isListen))&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return B?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Fe())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":B?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faPlay:i.faPause}))),j.default.createElement(u.default,{buttonsVariant:"default"})),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},j.default.createElement(v.default,null),j.default.createElement(m.default,{startTime:F,isNotAlwaysWhite:!0}),!re&&ie&&!f.isPhysical()&&j.default.createElement(g.AudioBars,{audioStream:ie,paused:B,size:re?"large":"small"}))))};exports.VideoView=x,exports.default=x;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../lib/phone/video.js"),k=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),C=require("../../node_modules/react-redux/es/hooks/useSelector.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=T(t),x=function(){var T,x,N,V,q,R,I,_,D,P,A=k.useDispatch(),L=C.useSelector(function(e){return e.currentCall}),M=L.muted,F=L.startTime,U=L.isRecording,B=L.paused,J=L.isLocalVideoEnabled,z=L.showRemoteVideoPlaceHolder,W=L.hasVideoTrackAdded,G=L.displayName,H=L.isStartingVideoCall,O=C.useSelector(function(e){return e.screenShare}),K=O.localTracks,Q=O.localVideos,X=O.role,Y=O.active,Z=O.isStartingScreenShare,$=O.isJoiningScreenShare,ee=O.isLeavingScreenShare,te=C.useSelector(function(e){return e.listen}),re=C.useSelector(function(e){return e.island}).isOpen,ae=C.useSelector(function(e){return e.webrtc}),ne=ae.janusInstance,ie=ae.remoteAudioStream,oe=a.store.getState().currentUser,le=t.useState(!1),se=le[0],ce=le[1],ue=t.useState(!1),de=ue[0],pe=ue[1],ve=t.useRef(null),me=t.useRef(null),fe=t.useRef(!1),ge=t.useRef(!1),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(null),ke=t.useRef(p.default),Ce=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect(function(){A.player.updatePlayer({localScreen:Se,remoteScreen:be,localVideo:Ee,largeRemoteVideo:we,smallRemoteVideo:ye})},[]),t.useEffect(function(){return Ie(),Te(),addEventListener("fullscreenchange",je),function(){removeEventListener("fullscreenchange",je),ve.current&&clearTimeout(ve.current)}},[]),t.useEffect(function(){H&&(Ve(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))},[H]),t.useEffect(function(){Z&&(De(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))},[Z]),t.useEffect(function(){$&&(Pe(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))},[$]),t.useEffect(function(){ee&&(Le(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))},[ee]),t.useEffect(function(){Ie(),Te()},[re]);var Te=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&A.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},je=function(){ce(!!document.fullscreenElement)},xe=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):he.current&&(he.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",function(){xe()}),l.useEventListener("phone-island-fullscreen-exit",function(){xe()});var Ne=function(e,t){A.screenShare.update({source:e});var r=null;null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(t){var n,i,o,l;r=t,A.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ke.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ke.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ke.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ke.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ke.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ke.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ke.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ke.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),"video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ke.current.stopAllTracks(m),void A.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ke.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ke.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ke.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ke.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ve=function(){var e,t,r,n;if(!fe.current){var i=a.store.getState().webrtc.sipcall;fe.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||A.currentCall.setVideoTrackAdded(!0)):(s.add=!0,A.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){fe.current=!1,i.send({message:{request:"update"},jsep:e}),y.notifyPeerVideoStart(),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",function(){Ve()});var qe=function(){var t,r,n,i;if(!fe.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;fe.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find(function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)});ke.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){fe.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){fe.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",function(){qe()});var Re=function(){null==ne||ne.attach({plugin:"janus.plugin.videoroom",opaqueId:ke.current.randomString(32),success:function(e){A.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),setTimeout(function(){!function(){var e,t;if(ke.current.isExtensionEnabled()){var r={request:"create",description:ke.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{var d=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;A.screenShare.update({room:p}),null===(s=(l=ke.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(ge.current)return void(null===(u=(c=ke.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));ge.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}}})}else null===(t=(e=ke.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()},500)):"listener"===t&&Ae(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ke.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ke.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ke.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ke.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ke.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,C=k.plugin,T=k.role,j=e.videoroom;if(null===(o=(i=ke.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===T)null===(s=(l=ke.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ke.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;ge.current=!1,null===(r=(t=ke.current).error)||void 0===r||r.call(t,"WebRTC error:",e),A.screenShare.update({active:!1,role:""});var n=a.store.getState().screenShare.room,i=function(){return C.detach()};C.send({message:{request:"destroy",room:n},success:i,error:i})}});else if(e.publishers){var x=e.publishers;for(var N in null===(u=(c=ke.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){var V=x[N].id,q=x[N].display;null===(p=(d=ke.current).debug)||void 0===p||p.call(d," >> ["+V+"] "+q),Ne(V,q)}}}else if("event"===j)if("listener"===T&&e.publishers){x=e.publishers;for(var N in null===(m=(v=ke.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){V=x[N].id,q=x[N].display;null===(g=(f=ke.current).debug)||void 0===g||g.call(f," >> ["+V+"] "+q),Ne(V,q)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ke.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}else e.error&&(null===(E=(b=ke.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ke.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),C.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ke.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==K?void 0:K[c])){if("video"===e.kind){A.screenShare.update({localVideos:Q+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ke.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ke.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),_e(),e.addEventListener("ended",function(){Fe()}))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==K?void 0:K[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&A.screenShare.update({localVideos:Q-1});var h=null==K?void 0:K.filter(function(e){return e!==K[c]});A.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ke.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),ge.current=!1,A.screenShare.update({localTracks:{},localVideos:0})}})},Ie=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ke.current.attachMediaStream&&ke.current.attachMediaStream(t.current,i)},_e=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},De=function(){ge.current=!1,A.screenShare.update({active:!0,role:"publisher"}),Re()};l.useEventListener("phone-island-screen-share-start",function(){De()});var Pe=function(){A.screenShare.update({active:!0,role:"listener"}),Re(),c.eventDispatch("phone-island-screen-share-joined",{})},Ae=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Le=function(){var e=a.store.getState().screenShare.remoteScreenStream;ke.current.stopAllTracks(e),A.screenShare.update({active:!1}),c.eventDispatch("phone-island-screen-share-left",{})},Me=function(){pe(!0),ve.current&&(clearTimeout(ve.current),ve.current=null),me.current&&clearTimeout(me.current),me.current=setTimeout(function(){ve.current=setTimeout(function(){pe(!1)},3e3)},100)},Fe=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream;ge.current=!1,ke.current.stopAllTracks(r),A.screenShare.update({active:!1}),t.detach();var n=a.store.getState().websocket.socket,i=a.store.getState().currentCall.username,o=a.store.getState().screenShare.room,l=a.store.getState().currentUser.username;n.emit("message",{message:"screenSharingStop",roomId:o,destUser:i,callUser:l}),c.eventDispatch("phone-island-screen-share-stopped",{})};l.useEventListener("phone-island-screen-share-stop",function(){Fe()});var Ue=t.useState(!0),Be=Ue[0],Je=Ue[1],ze=function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return(null==Ce?void 0:Ce.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Je(!0),[2,!0]):(Je(!1),[2,!1]);case 2:return Je(!1),[2,!1];case 3:return[2]}})})};return j.default.createElement(j.default.Fragment,null,re?j.default.createElement("div",{ref:he,onMouseMove:function(){return Me()},className:se?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},j.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},j.default.createElement("video",{autoPlay:!0,muted:!0,ref:be,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"listener"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(Y&&"publisher"===X?"":"pi-hidden")}),j.default.createElement("video",{autoPlay:!0,muted:!0,ref:we,className:"pi-rounded-2xl ".concat(Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(Y||!z?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G)))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:Ee,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(J?"":"pi-hidden")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(J||!W?"pi-hidden":"")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(oe.name||"-")))),j.default.createElement("video",{muted:!0,autoPlay:!0,ref:ye,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!Y||z?"pi-hidden":"")}),j.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(Y&&z&&W?"":"pi-hidden")},j.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},j.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(G))))),j.default.createElement("div",{className:"".concat(!de&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},j.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==te?void 0:te.isListen)&&j.default.createElement(r.Button,{variant:"default",active:!!M,onClick:function(){return M?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(M?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},M?j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==Ce?void 0:Ce.length)>0&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,ze()];case 1:return e.sent()&&(J?qe():Ve()),[2]}})})},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(Be?J?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!Be,className:"".concat(Be?"":"pi-cursor-auto")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:J?i.faVideoSlash:i.faVideo})),"safari"!==ke.current.webRTCAdapter.browserDetails.browser&&(null===(q=null===(V=null===(N=null===(x=null===(T=null==oe?void 0:oe.profile)||void 0===T?void 0:T.macro_permissions)||void 0===x?void 0:x.nethvoice_cti)||void 0===N?void 0:N.permissions)||void 0===V?void 0:V.screen_sharing)||void 0===q?void 0:q.value)&&!Y&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return De()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),Y&&"publisher"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return Fe()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),Y&&"listener"===X&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return xe()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":se?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:se?i.faCompress:i.faExpand})),(null===(P=null===(D=null===(_=null===(I=null===(R=null==oe?void 0:oe.profile)||void 0===R?void 0:R.macro_permissions)||void 0===I?void 0:I.settings)||void 0===_?void 0:_.permissions)||void 0===D?void 0:D.recording)||void 0===P?void 0:P.value)&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==te?void 0:te.isIntrude)||(null==te?void 0:te.isListen))&&j.default.createElement(r.Button,{variant:"default",onClick:function(){return B?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Fe())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":B?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},j.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faPlay:i.faPause}))),j.default.createElement(u.default,{buttonsVariant:"default"})),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),j.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},j.default.createElement(v.default,null),j.default.createElement(m.default,{startTime:F,isNotAlwaysWhite:!0}),!re&&ie&&!f.isPhysical()&&j.default.createElement(g.AudioBars,{audioStream:ie,paused:B,size:re?"large":"small"}))))};exports.VideoView=x,exports.default=x;
2
2
  //# sourceMappingURL=index.js.map