@nethesis/phone-island 0.14.4 → 0.14.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});exports.__exports={};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
2
2
  //# sourceMappingURL=index6.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
2
2
  //# sourceMappingURL=index7.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.__exports={};
2
2
  //# sourceMappingURL=index8.js.map
@@ -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");var i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.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 n=require("../../lib/phone/call.js"),l=require("../CustomThemedTooltip.js"),s=require("./hooks/useSideViewLogic.js"),a=require("./components/SideViewButton.js"),u=require("../../services/user.js"),d=require("../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js"),c=require("../../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),p=require("../../node_modules/react-redux/es/hooks/useSelector.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=m(t),h={initial:{x:-76},animate:{x:4,transition:{duration:.1,ease:"easeOut"}},exit:{x:-76,transition:{duration:.1,ease:"easeIn"}}},v={borderTopRightRadius:"20px",borderBottomRightRadius:"20px",width:"80px",transformOrigin:"right"},b=t.memo((function(m){var b=m.isVisible,g=m.uaType,_=p.useSelector((function(e){return e.island})).isOpen,j=p.useSelector((function(e){return e.currentCall})).isRecording,x=r.useTranslation().t,T=t.useState(!1),y=T[0],S=T[1],q=t.useState(void 0),C=q[0],k=q[1],w=s.useSideViewLogic(g,C),E=w.videoInputDevices,V=w.isVideoCallButtonVisible,R=w.canRecord,B=w.canShareScreen,I=w.canSwitchDevice,A=w.showUrlButton,D=w.isUrlButtonEnabled,P=w.goToVideoCall,U=w.goToScreenSharing,O=w.closeSideViewAndLaunchEvent;t.useEffect((function(){b&&e.__awaiter(void 0,void 0,void 0,(function(){var t,i,o,r;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,u.getParamUrl()];case 1:return t=e.sent(),i=(null==t?void 0:t.url)||"",o=i&&""!==i.trim(),S(o),k(null==t?void 0:t.only_queues),[3,3];case 2:return r=e.sent(),S(!1),k(void 0),console.error("Error fetching URL parameter:",r),[3,3];case 3:return[2]}}))}))}),[b]);var L=t.useCallback((function(){n.recordCurrentCall(j)}),[j]),M=t.useMemo((function(){return[R&&{key:"record",active:j,onClick:L,tooltipId:"tooltip-record",tooltipContent:j?x("Tooltip.Stop recording")||"":x("Tooltip.Record")||"",icon:j?i.faStop:o.faRecord},(null==E?void 0:E.length)>0&&{key:"video",onClick:P,tooltipId:"tooltip-video",tooltipContent:V?x("Tooltip.Enable camera")||"":x("Tooltip.Enable camera permission")||"",disabled:!V,icon:V?i.faVideo:i.faVideoSlash},B&&{key:"screen-share",onClick:U,tooltipId:"tooltip-screen-share",tooltipContent:x("Tooltip.Share screen")||"",icon:i.faDisplay},A&&y&&D&&{key:"url",onClick:function(){return O("openUrl")},tooltipId:"tooltip-open-url",tooltipContent:x("Tooltip.Open url")||"",icon:i.faArrowUpRightFromSquare},I&&{key:"switch-device",onClick:function(){return O("switchDevice")},tooltipId:"tooltip-switch-device",tooltipContent:x("Tooltip.Switch device")||"",icon:o.faArrowsRepeat}].filter((function(e){return Boolean(e)}))}),[R,j,L,x,null==E?void 0:E.length,P,V,B,U,A,y,D,O,I]),N=t.useMemo((function(){return"pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ".concat(_?"pi-py-6":"pi-py-4")}),[_]);return f.default.createElement(f.default.Fragment,null,f.default.createElement(d.AnimatePresence,null,b&&f.default.createElement(c.motion.div,e.__assign({className:N,style:v},h),f.default.createElement("div",{className:"pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9"},M.map((function(t){var i=t.key,o=e.__rest(t,["key"]);return f.default.createElement(a.SideViewButton,e.__assign({key:i},o))}))))),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-record",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-video",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-screen-share",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-switch-device",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-open-url",place:"left"}))}));b.displayName="SideView",exports.default=b;
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");var i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.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 n=require("../../lib/phone/call.js"),l=require("../CustomThemedTooltip.js"),s=require("./hooks/useSideViewLogic.js"),a=require("./components/SideViewButton.js"),u=require("../../services/user.js"),d=require("../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js"),c=require("../../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),p=require("../../node_modules/react-redux/es/hooks/useSelector.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=m(t),h={initial:{x:-76},animate:{x:4,transition:{duration:.1,ease:"easeOut"}},exit:{x:-76,transition:{duration:.1,ease:"easeIn"}}},v={borderTopRightRadius:"20px",borderBottomRightRadius:"20px",width:"80px",transformOrigin:"right"},b=t.memo((function(m){var b=m.isVisible,g=m.uaType,_=p.useSelector((function(e){return e.island})).isOpen,j=p.useSelector((function(e){return e.currentCall})).isRecording,x=r.useTranslation().t,T=t.useState(!1),S=T[0],y=T[1],q=t.useState(void 0),C=q[0],k=q[1],w=t.useState(void 0),E=w[0],V=w[1],R=s.useSideViewLogic(g,C,E),B=R.videoInputDevices,I=R.isVideoCallButtonVisible,A=R.canRecord,D=R.canShareScreen,P=R.canSwitchDevice,U=R.showUrlButton,O=R.isUrlButtonEnabled,L=R.goToVideoCall,M=R.goToScreenSharing,N=R.closeSideViewAndLaunchEvent;t.useEffect((function(){b&&e.__awaiter(void 0,void 0,void 0,(function(){var t,i,o,r;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,u.getParamUrl()];case 1:return t=e.sent(),i=(null==t?void 0:t.url)||"",o=i&&""!==i.trim(),y(o),k(null==t?void 0:t.only_queues),V(i),[3,3];case 2:return r=e.sent(),y(!1),k(void 0),V(void 0),console.error("Error fetching URL parameter:",r),[3,3];case 3:return[2]}}))}))}),[b]);var W=t.useCallback((function(){n.recordCurrentCall(j)}),[j]),F=t.useMemo((function(){return[A&&{key:"record",active:j,onClick:W,tooltipId:"tooltip-record",tooltipContent:j?x("Tooltip.Stop recording")||"":x("Tooltip.Record")||"",icon:j?i.faStop:o.faRecord},(null==B?void 0:B.length)>0&&{key:"video",onClick:L,tooltipId:"tooltip-video",tooltipContent:I?x("Tooltip.Enable camera")||"":x("Tooltip.Enable camera permission")||"",disabled:!I,icon:I?i.faVideo:i.faVideoSlash},D&&{key:"screen-share",onClick:M,tooltipId:"tooltip-screen-share",tooltipContent:x("Tooltip.Share screen")||"",icon:i.faDisplay},U&&S&&O&&{key:"url",onClick:function(){return N("openUrl")},tooltipId:"tooltip-open-url",tooltipContent:x("Tooltip.Open url")||"",icon:i.faArrowUpRightFromSquare},P&&{key:"switch-device",onClick:function(){return N("switchDevice")},tooltipId:"tooltip-switch-device",tooltipContent:x("Tooltip.Switch device")||"",icon:o.faArrowsRepeat}].filter((function(e){return Boolean(e)}))}),[A,j,W,x,null==B?void 0:B.length,L,I,D,M,U,S,O,N,P]),z=t.useMemo((function(){return"pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ".concat(_?"pi-py-6":"pi-py-4")}),[_]);return f.default.createElement(f.default.Fragment,null,f.default.createElement(d.AnimatePresence,null,b&&f.default.createElement(c.motion.div,e.__assign({className:z,style:v},h),f.default.createElement("div",{className:"pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9"},F.map((function(t){var i=t.key,o=e.__rest(t,["key"]);return f.default.createElement(a.SideViewButton,e.__assign({key:i},o))}))))),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-record",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-video",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-screen-share",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-switch-device",place:"left"}),f.default.createElement(l.CustomThemedTooltip,{id:"tooltip-open-url",place:"left"}))}));b.displayName="SideView",exports.default=b;
2
2
  //# sourceMappingURL=SideView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideView.js","sources":["../../../src/components/SideView/SideView.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, memo, useEffect, useState } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport {\n faArrowUpRightFromSquare,\n faDisplay,\n faStop,\n faVideo,\n faVideoSlash,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faArrowsRepeat, faRecord } from '@nethesis/nethesis-solid-svg-icons'\nimport { useTranslation } from 'react-i18next'\nimport { recordCurrentCall } from '../../lib/phone/call'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useSideViewLogic } from './hooks/useSideViewLogic'\nimport { SideViewButton } from './components/SideViewButton'\nimport { getParamUrl } from '../../services/user'\n\nconst ANIMATION_CONFIG = {\n initial: { x: -76 },\n animate: { x: 4, transition: { duration: 0.1, ease: 'easeOut' } },\n exit: { x: -76, transition: { duration: 0.1, ease: 'easeIn' } },\n} as const\n\nconst STYLE_CONFIG = {\n borderTopRightRadius: '20px',\n borderBottomRightRadius: '20px',\n width: '80px',\n transformOrigin: 'right',\n} as const\n\ninterface ButtonConfig {\n active?: boolean\n onClick: () => void | Promise<void>\n tooltipId: string\n tooltipContent: string\n icon: any\n disabled?: boolean\n}\n\ninterface ButtonConfigWithKey extends ButtonConfig {\n key: string\n}\n\nconst SideView: FC<SideViewTypes> = memo(({ isVisible, uaType }) => {\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { isRecording } = useSelector((state: RootState) => state.currentCall)\n const { t } = useTranslation()\n const [hasValidUrl, setHasValidUrl] = useState(false)\n const [onlyQueues, setOnlyQueues] = useState<boolean | undefined>(undefined)\n\n const {\n videoInputDevices,\n isVideoCallButtonVisible,\n canRecord,\n canShareScreen,\n canSwitchDevice,\n showUrlButton,\n isUrlButtonEnabled,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n } = useSideViewLogic(uaType, onlyQueues)\n useEffect(() => {\n const checkParamUrl = async () => {\n try {\n const paramUrlResponse: any = await getParamUrl()\n // Verify that the response contains a valid URL (not empty)\n const url = paramUrlResponse?.url || ''\n const isValid = url && url.trim() !== ''\n\n setHasValidUrl(isValid)\n setOnlyQueues(paramUrlResponse?.only_queues)\n } catch (error) {\n setHasValidUrl(false)\n setOnlyQueues(undefined)\n console.error('Error fetching URL parameter:', error)\n }\n }\n\n if (isVisible) {\n checkParamUrl()\n }\n }, [isVisible])\n\n const handleRecordClick = useCallback(() => {\n recordCurrentCall(isRecording)\n }, [isRecording])\n\n const buttonConfigs = useMemo(() => {\n const configs: (ButtonConfigWithKey | false)[] = [\n canRecord && {\n key: 'record',\n active: isRecording,\n onClick: handleRecordClick,\n tooltipId: 'tooltip-record',\n tooltipContent: isRecording ? t('Tooltip.Stop recording') || '' : t('Tooltip.Record') || '',\n icon: isRecording ? faStop : faRecord,\n },\n videoInputDevices?.length > 0 && {\n key: 'video',\n onClick: goToVideoCall,\n tooltipId: 'tooltip-video',\n tooltipContent: isVideoCallButtonVisible\n ? t('Tooltip.Enable camera') || ''\n : t('Tooltip.Enable camera permission') || '',\n disabled: !isVideoCallButtonVisible,\n icon: isVideoCallButtonVisible ? faVideo : faVideoSlash,\n },\n canShareScreen && {\n key: 'screen-share',\n onClick: goToScreenSharing,\n tooltipId: 'tooltip-screen-share',\n tooltipContent: t('Tooltip.Share screen') || '',\n icon: faDisplay,\n },\n showUrlButton &&\n hasValidUrl &&\n isUrlButtonEnabled && {\n key: 'url',\n onClick: () => closeSideViewAndLaunchEvent('openUrl'),\n tooltipId: 'tooltip-open-url',\n tooltipContent: t('Tooltip.Open url') || '',\n icon: faArrowUpRightFromSquare,\n },\n canSwitchDevice && {\n key: 'switch-device',\n onClick: () => closeSideViewAndLaunchEvent('switchDevice'),\n tooltipId: 'tooltip-switch-device',\n tooltipContent: t('Tooltip.Switch device') || '',\n icon: faArrowsRepeat,\n },\n ]\n\n return configs.filter((config): config is ButtonConfigWithKey => Boolean(config))\n }, [\n canRecord,\n isRecording,\n handleRecordClick,\n t,\n videoInputDevices?.length,\n goToVideoCall,\n isVideoCallButtonVisible,\n canShareScreen,\n goToScreenSharing,\n showUrlButton,\n hasValidUrl,\n isUrlButtonEnabled,\n closeSideViewAndLaunchEvent,\n canSwitchDevice,\n ])\n\n const containerClassName = useMemo(\n () =>\n `pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ${\n isOpen ? 'pi-py-6' : 'pi-py-4'\n }`,\n [isOpen],\n )\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9'>\n {buttonConfigs.map(({ key, ...config }) => (\n <SideViewButton key={key} {...config} />\n ))}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n <CustomThemedTooltip id='tooltip-record' place='left' />\n <CustomThemedTooltip id='tooltip-video' place='left' />\n <CustomThemedTooltip id='tooltip-screen-share' place='left' />\n <CustomThemedTooltip id='tooltip-switch-device' place='left' />\n <CustomThemedTooltip id='tooltip-open-url' place='left' />\n </>\n )\n})\n\nSideView.displayName = 'SideView'\n\nexport default SideView\n\ninterface SideViewTypes {\n isVisible: boolean\n uaType?: string\n}\n"],"names":["ANIMATION_CONFIG","initial","x","animate","transition","duration","ease","exit","STYLE_CONFIG","borderTopRightRadius","borderBottomRightRadius","width","transformOrigin","SideView","memo","_a","isVisible","uaType","isOpen","useSelector","state","island","isRecording","currentCall","t","useTranslation","_b","useState","hasValidUrl","setHasValidUrl","_c","undefined","onlyQueues","setOnlyQueues","_d","useSideViewLogic","videoInputDevices","isVideoCallButtonVisible","canRecord","canShareScreen","canSwitchDevice","showUrlButton","isUrlButtonEnabled","goToVideoCall","goToScreenSharing","closeSideViewAndLaunchEvent","useEffect","__awaiter","getParamUrl","paramUrlResponse","sent","url","isValid","trim","only_queues","console","error","error_1","handleRecordClick","useCallback","recordCurrentCall","buttonConfigs","useMemo","key","active","onClick","tooltipId","tooltipContent","icon","faStop","faRecord","length","disabled","faVideo","faVideoSlash","faDisplay","faArrowUpRightFromSquare","faArrowsRepeat","filter","config","Boolean","containerClassName","concat","React","createElement","Fragment","AnimatePresence","motion","div","__assign","className","style","map","__rest","SideViewButton","CustomThemedTooltip","id","place","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"SideView.js","sources":["../../../src/components/SideView/SideView.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, memo, useEffect, useState } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport {\n faArrowUpRightFromSquare,\n faDisplay,\n faStop,\n faVideo,\n faVideoSlash,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faArrowsRepeat, faRecord } from '@nethesis/nethesis-solid-svg-icons'\nimport { useTranslation } from 'react-i18next'\nimport { recordCurrentCall } from '../../lib/phone/call'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useSideViewLogic } from './hooks/useSideViewLogic'\nimport { SideViewButton } from './components/SideViewButton'\nimport { getParamUrl } from '../../services/user'\n\nconst ANIMATION_CONFIG = {\n initial: { x: -76 },\n animate: { x: 4, transition: { duration: 0.1, ease: 'easeOut' } },\n exit: { x: -76, transition: { duration: 0.1, ease: 'easeIn' } },\n} as const\n\nconst STYLE_CONFIG = {\n borderTopRightRadius: '20px',\n borderBottomRightRadius: '20px',\n width: '80px',\n transformOrigin: 'right',\n} as const\n\ninterface ButtonConfig {\n active?: boolean\n onClick: () => void | Promise<void>\n tooltipId: string\n tooltipContent: string\n icon: any\n disabled?: boolean\n}\n\ninterface ButtonConfigWithKey extends ButtonConfig {\n key: string\n}\n\nconst SideView: FC<SideViewTypes> = memo(({ isVisible, uaType }) => {\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { isRecording } = useSelector((state: RootState) => state.currentCall)\n const { t } = useTranslation()\n const [hasValidUrl, setHasValidUrl] = useState(false)\n const [onlyQueues, setOnlyQueues] = useState<boolean | undefined>(undefined)\n const [urlParam, setUrlParam] = useState<string | undefined>(undefined)\n\n const {\n videoInputDevices,\n isVideoCallButtonVisible,\n canRecord,\n canShareScreen,\n canSwitchDevice,\n showUrlButton,\n isUrlButtonEnabled,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n } = useSideViewLogic(uaType, onlyQueues, urlParam)\n useEffect(() => {\n const checkParamUrl = async () => {\n try {\n const paramUrlResponse: any = await getParamUrl()\n // Verify that the response contains a valid URL (not empty)\n const url = paramUrlResponse?.url || ''\n const isValid = url && url.trim() !== ''\n\n setHasValidUrl(isValid)\n setOnlyQueues(paramUrlResponse?.only_queues)\n setUrlParam(url)\n } catch (error) {\n setHasValidUrl(false)\n setOnlyQueues(undefined)\n setUrlParam(undefined)\n console.error('Error fetching URL parameter:', error)\n }\n }\n\n if (isVisible) {\n checkParamUrl()\n }\n }, [isVisible])\n\n const handleRecordClick = useCallback(() => {\n recordCurrentCall(isRecording)\n }, [isRecording])\n\n const buttonConfigs = useMemo(() => {\n const configs: (ButtonConfigWithKey | false)[] = [\n canRecord && {\n key: 'record',\n active: isRecording,\n onClick: handleRecordClick,\n tooltipId: 'tooltip-record',\n tooltipContent: isRecording ? t('Tooltip.Stop recording') || '' : t('Tooltip.Record') || '',\n icon: isRecording ? faStop : faRecord,\n },\n videoInputDevices?.length > 0 && {\n key: 'video',\n onClick: goToVideoCall,\n tooltipId: 'tooltip-video',\n tooltipContent: isVideoCallButtonVisible\n ? t('Tooltip.Enable camera') || ''\n : t('Tooltip.Enable camera permission') || '',\n disabled: !isVideoCallButtonVisible,\n icon: isVideoCallButtonVisible ? faVideo : faVideoSlash,\n },\n canShareScreen && {\n key: 'screen-share',\n onClick: goToScreenSharing,\n tooltipId: 'tooltip-screen-share',\n tooltipContent: t('Tooltip.Share screen') || '',\n icon: faDisplay,\n },\n showUrlButton &&\n hasValidUrl &&\n isUrlButtonEnabled && {\n key: 'url',\n onClick: () => closeSideViewAndLaunchEvent('openUrl'),\n tooltipId: 'tooltip-open-url',\n tooltipContent: t('Tooltip.Open url') || '',\n icon: faArrowUpRightFromSquare,\n },\n canSwitchDevice && {\n key: 'switch-device',\n onClick: () => closeSideViewAndLaunchEvent('switchDevice'),\n tooltipId: 'tooltip-switch-device',\n tooltipContent: t('Tooltip.Switch device') || '',\n icon: faArrowsRepeat,\n },\n ]\n\n return configs.filter((config): config is ButtonConfigWithKey => Boolean(config))\n }, [\n canRecord,\n isRecording,\n handleRecordClick,\n t,\n videoInputDevices?.length,\n goToVideoCall,\n isVideoCallButtonVisible,\n canShareScreen,\n goToScreenSharing,\n showUrlButton,\n hasValidUrl,\n isUrlButtonEnabled,\n closeSideViewAndLaunchEvent,\n canSwitchDevice,\n ])\n\n const containerClassName = useMemo(\n () =>\n `pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ${\n isOpen ? 'pi-py-6' : 'pi-py-4'\n }`,\n [isOpen],\n )\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9'>\n {buttonConfigs.map(({ key, ...config }) => (\n <SideViewButton key={key} {...config} />\n ))}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n <CustomThemedTooltip id='tooltip-record' place='left' />\n <CustomThemedTooltip id='tooltip-video' place='left' />\n <CustomThemedTooltip id='tooltip-screen-share' place='left' />\n <CustomThemedTooltip id='tooltip-switch-device' place='left' />\n <CustomThemedTooltip id='tooltip-open-url' place='left' />\n </>\n )\n})\n\nSideView.displayName = 'SideView'\n\nexport default SideView\n\ninterface SideViewTypes {\n isVisible: boolean\n uaType?: string\n}\n"],"names":["ANIMATION_CONFIG","initial","x","animate","transition","duration","ease","exit","STYLE_CONFIG","borderTopRightRadius","borderBottomRightRadius","width","transformOrigin","SideView","memo","_a","isVisible","uaType","isOpen","useSelector","state","island","isRecording","currentCall","t","useTranslation","_b","useState","hasValidUrl","setHasValidUrl","_c","undefined","onlyQueues","setOnlyQueues","_d","urlParam","setUrlParam","_e","useSideViewLogic","videoInputDevices","isVideoCallButtonVisible","canRecord","canShareScreen","canSwitchDevice","showUrlButton","isUrlButtonEnabled","goToVideoCall","goToScreenSharing","closeSideViewAndLaunchEvent","useEffect","__awaiter","getParamUrl","paramUrlResponse","sent","url","isValid","trim","only_queues","console","error","error_1","handleRecordClick","useCallback","recordCurrentCall","buttonConfigs","useMemo","key","active","onClick","tooltipId","tooltipContent","icon","faStop","faRecord","length","disabled","faVideo","faVideoSlash","faDisplay","faArrowUpRightFromSquare","faArrowsRepeat","filter","config","Boolean","containerClassName","concat","React","createElement","Fragment","AnimatePresence","motion","div","__assign","className","style","map","__rest","SideViewButton","CustomThemedTooltip","id","place","displayName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),u=require("../../../lib/webrtc/janus.js"),o=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),l=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),s=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(d,c){var a,v,h,g,p,f,m,b,_=l.useDispatch(),S=s.useSelector((function(e){return e.currentUser})),w=s.useSelector((function(e){return e.users})),j=i.store.select.mediaDevices.videoInputDevices(i.store.getState()),k=n.useRef(u.default),q=s.useSelector((function(e){return e.currentUser.conversations})),C=n.useState([]),D=C[0],V=C[1],T=n.useState(!0),I=T[0],N=T[1],Q=n.useCallback((function(e){if(_.island.toggleSideViewVisible(!1),"openUrl"===e){var n=Object.values(q).find((function(e){return Object.keys(e).length>0})),i=n?Object.values(n)[0]:null;if((null==i?void 0:i.connected)&&"in"===(null==i?void 0:i.direction))if(c&&(null==i?void 0:i.throughQueue)){var r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected};t.eventDispatch("phone-island-url-parameter-opened",r)}else if(!c&&((null==i?void 0:i.throughTrunk)||(null==i?void 0:i.throughQueue))){r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&_.island.setIslandView(e)}),[_.island,q,c]),x=n.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n;return e.__generator(this,(function(e){switch(e.label){case 0:return j.length>0?[4,o.checkWebCamPermission()]:[3,2];case 1:return n=e.sent(),N(n),[2,n];case 2:return N(!1),[2,!1]}}))}))}),[j.length]),O=n.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,x()];case 1:return e.sent()&&(Q("video"),i.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[x,Q]),U=n.useCallback((function(){Q("video"),i.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[Q]),y=n.useMemo((function(){var e;return(null===(e=null==S?void 0:S.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(a=null==S?void 0:S.profile)||void 0===a?void 0:a.macro_permissions]),E=n.useMemo((function(){var e,n,i,r,u,o,t;return{canRecord:(null===(i=null===(n=null===(e=null==y?void 0:y.settings)||void 0===e?void 0:e.permissions)||void 0===n?void 0:n.recording)||void 0===i?void 0:i.value)||!1,canShareScreen:"safari"!==k.current.webRTCAdapter.browserDetails.browser&&((null===(o=null===(u=null===(r=null==y?void 0:y.nethvoice_cti)||void 0===r?void 0:r.permissions)||void 0===u?void 0:u.screen_sharing)||void 0===o?void 0:o.value)||!1),canSwitchDevice:(null==D?void 0:D.length)>0,showUrlButton:"nethlink"!==(null===(t=null==S?void 0:S.default_device)||void 0===t?void 0:t.type)&&"desktop"===d}}),[null===(g=null===(h=null===(v=null==y?void 0:y.settings)||void 0===v?void 0:v.permissions)||void 0===h?void 0:h.recording)||void 0===g?void 0:g.value,null===(m=null===(f=null===(p=null==y?void 0:y.nethvoice_cti)||void 0===p?void 0:p.permissions)||void 0===f?void 0:f.screen_sharing)||void 0===m?void 0:m.value,null==D?void 0:D.length,null===(b=null==S?void 0:S.default_device)||void 0===b?void 0:b.type,d]),M=n.useMemo((function(){var e=Object.values(q).find((function(e){return Object.keys(e).length>0})),n=e?Object.values(e)[0]:null;return!(!(null==n?void 0:n.connected)||"in"!==(null==n?void 0:n.direction))&&(!(!c||!(null==n?void 0:n.throughQueue))||!(c||!(null==n?void 0:n.throughTrunk)&&!(null==n?void 0:n.throughQueue)))}),[q,c]);return n.useEffect((function(){if(S&&w){var e=r.getAvailableDevices(S,w);V(e)}}),[S,w]),e.__assign(e.__assign({userInformation:S,availableDevices:D,videoInputDevices:j,isVideoCallButtonVisible:I,isUrlButtonEnabled:M},E),{goToVideoCall:O,goToScreenSharing:U,closeSideViewAndLaunchEvent:Q})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),u=require("../../../lib/webrtc/janus.js"),o=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),l=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),s=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(d,c,a){var v,h,g,p,f,m,b,_,S=l.useDispatch(),w=s.useSelector((function(e){return e.currentUser})),j=s.useSelector((function(e){return e.users})),k=i.store.select.mediaDevices.videoInputDevices(i.store.getState()),q=n.useRef(u.default),C=s.useSelector((function(e){return e.currentUser.conversations})),D=n.useState([]),V=D[0],T=D[1],I=n.useState(!0),N=I[0],Q=I[1],x=n.useCallback((function(e){if(S.island.toggleSideViewVisible(!1),"openUrl"===e){var n=Object.values(C).find((function(e){return Object.keys(e).length>0})),i=n?Object.values(n)[0]:null;if((null==i?void 0:i.connected)&&"in"===(null==i?void 0:i.direction))if(c&&(null==i?void 0:i.throughQueue)){var r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected,url:a};t.eventDispatch("phone-island-url-parameter-opened",r)}else if(!c&&((null==i?void 0:i.throughTrunk)||(null==i?void 0:i.throughQueue))){r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected,url:a};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&S.island.setIslandView(e)}),[S.island,C,c,a]),O=n.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n;return e.__generator(this,(function(e){switch(e.label){case 0:return k.length>0?[4,o.checkWebCamPermission()]:[3,2];case 1:return n=e.sent(),Q(n),[2,n];case 2:return Q(!1),[2,!1]}}))}))}),[k.length]),U=n.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,O()];case 1:return e.sent()&&(x("video"),i.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[O,x]),y=n.useCallback((function(){x("video"),i.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[x]),E=n.useMemo((function(){var e;return(null===(e=null==w?void 0:w.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(v=null==w?void 0:w.profile)||void 0===v?void 0:v.macro_permissions]),M=n.useMemo((function(){var e,n,i,r,u,o,t;return{canRecord:(null===(i=null===(n=null===(e=null==E?void 0:E.settings)||void 0===e?void 0:e.permissions)||void 0===n?void 0:n.recording)||void 0===i?void 0:i.value)||!1,canShareScreen:"safari"!==q.current.webRTCAdapter.browserDetails.browser&&((null===(o=null===(u=null===(r=null==E?void 0:E.nethvoice_cti)||void 0===r?void 0:r.permissions)||void 0===u?void 0:u.screen_sharing)||void 0===o?void 0:o.value)||!1),canSwitchDevice:(null==V?void 0:V.length)>0,showUrlButton:"nethlink"!==(null===(t=null==w?void 0:w.default_device)||void 0===t?void 0:t.type)&&"desktop"===d}}),[null===(p=null===(g=null===(h=null==E?void 0:E.settings)||void 0===h?void 0:h.permissions)||void 0===g?void 0:g.recording)||void 0===p?void 0:p.value,null===(b=null===(m=null===(f=null==E?void 0:E.nethvoice_cti)||void 0===f?void 0:f.permissions)||void 0===m?void 0:m.screen_sharing)||void 0===b?void 0:b.value,null==V?void 0:V.length,null===(_=null==w?void 0:w.default_device)||void 0===_?void 0:_.type,d]),A=n.useMemo((function(){var e=Object.values(C).find((function(e){return Object.keys(e).length>0})),n=e?Object.values(e)[0]:null;return!(!(null==n?void 0:n.connected)||"in"!==(null==n?void 0:n.direction))&&(!(!c||!(null==n?void 0:n.throughQueue))||!(c||!(null==n?void 0:n.throughTrunk)&&!(null==n?void 0:n.throughQueue)))}),[C,c]);return n.useEffect((function(){if(w&&j){var e=r.getAvailableDevices(w,j);T(e)}}),[w,j]),e.__assign(e.__assign({userInformation:w,availableDevices:V,videoInputDevices:k,isVideoCallButtonVisible:N,isUrlButtonEnabled:A},M),{goToVideoCall:U,goToScreenSharing:y,closeSideViewAndLaunchEvent:x})};
2
2
  //# sourceMappingURL=useSideViewLogic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport const useSideViewLogic = (uaType?: string, onlyQueues?: boolean) => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n if (onlyQueues && conversationData?.throughQueue) {\n // Open URL only for queue calls when onlyQueues is true\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n } else if (\n !onlyQueues &&\n (conversationData?.throughTrunk || conversationData?.throughQueue)\n ) {\n // Open URL for both trunk and queue calls when onlyQueues is false\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations, onlyQueues],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus.current.webRTCAdapter.browserDetails.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n showUrlButton: userInformation?.default_device?.type !== 'nethlink' && uaType === 'desktop',\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n if (onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (!onlyQueues && (conversationData?.throughTrunk || conversationData?.throughQueue)) {\n return true\n }\n\n return false\n }, [conversations, onlyQueues])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n }\n}\n"],"names":["uaType","onlyQueues","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","closeSideViewAndLaunchEvent","useCallback","viewType","island","toggleSideViewVisible","activeConversation","Object","values","find","conv","keys","length","conversationData","connected","direction","throughQueue","eventData","counterpartNum","counterpartName","owner","uniqueId","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","current","webRTCAdapter","browserDetails","browser","_f","_e","nethvoice_cti","_d","screen_sharing","canSwitchDevice","showUrlButton","_g","default_device","type","_h","isUrlButtonEnabled","useEffect","devices","getAvailableDevices","__assign"],"mappings":"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"}
1
+ {"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport const useSideViewLogic = (uaType?: string, onlyQueues?: boolean, urlParam?: string) => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n if (onlyQueues && conversationData?.throughQueue) {\n // Open URL only for queue calls when onlyQueues is true\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n url: urlParam,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n } else if (\n !onlyQueues &&\n (conversationData?.throughTrunk || conversationData?.throughQueue)\n ) {\n // Open URL for both trunk and queue calls when onlyQueues is false\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n url: urlParam,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations, onlyQueues, urlParam],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus.current.webRTCAdapter.browserDetails.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n showUrlButton: userInformation?.default_device?.type !== 'nethlink' && uaType === 'desktop',\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n if (onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (!onlyQueues && (conversationData?.throughTrunk || conversationData?.throughQueue)) {\n return true\n }\n\n return false\n }, [conversations, onlyQueues])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n }\n}\n"],"names":["uaType","onlyQueues","urlParam","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","closeSideViewAndLaunchEvent","useCallback","viewType","island","toggleSideViewVisible","activeConversation","Object","values","find","conv","keys","length","conversationData","connected","direction","throughQueue","eventData","counterpartNum","counterpartName","owner","uniqueId","throughTrunk","url","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","current","webRTCAdapter","browserDetails","browser","_f","_e","nethvoice_cti","_d","screen_sharing","canSwitchDevice","showUrlButton","_g","default_device","type","_h","isUrlButtonEnabled","useEffect","devices","getAvailableDevices","__assign"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../node_modules/mic-check/lib/index.js");var e=require("../webrtc/janus.js"),i=require("../../store/index.js"),r=require("../user/default_device.js");require("react");var t=require("../../utils/genericFunctions/localStorage.js"),s=require("../../_virtual/index6.js"),n=e.default;exports.checkMediaPermissions=function(){if(r.isPhysical())return i.store.dispatch.alerts.removeAlert("browser_permissions"),i.store.dispatch.alerts.removeAlert("user_permissions"),i.store.dispatch.alerts.removeAlert("busy_camera"),void i.store.dispatch.alerts.removeAlert("unknown_media_permissions");s.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,o=e.type,u=null!==(t=((r={})[s.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[s.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[o])&&void 0!==t?t:{alert:"unknown_media_permissions",message:"WebRTC: can't access audio or camera on this device. unknown error"};i.store.dispatch.alerts.setAlert(u.alert),n.error&&n.error(u.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){s.__exports.requestMediaPermissions({video:!0}).then((function(){e(!0)})).catch((function(i){console.error("Error requesting webcam permission:",i),e(!1)}))}))},exports.getCurrentAudioInputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-input-device").deviceId||null;return i.store.select.mediaDevices.audioInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null;return i.store.select.mediaDevices.audioOutputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null;return i.store.select.mediaDevices.videoInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getSupportedDevices=function(e){var i,r,t=!1,s=!1,o=!1,u=!1;i=function(){var i={audio:t,audioCap:o,video:s,videoCap:u};n.log&&n.log("supportedDevices=",i),e()},r=[],navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){var i=!1;r.forEach((function(r){r.deviceId===e.deviceId&&r.kind===e.kind&&(i=!0)})),i||("videoinput"!==e.kind||u||(u=!0),"audioinput"!==e.kind||o||(o=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(s=!0),r.push(e))})),i&&i()}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../node_modules/mic-check/lib/index.js");var e=require("../webrtc/janus.js"),i=require("../../store/index.js"),r=require("../user/default_device.js");require("react");var t=require("../../utils/genericFunctions/localStorage.js"),s=require("../../_virtual/index8.js"),n=e.default;exports.checkMediaPermissions=function(){if(r.isPhysical())return i.store.dispatch.alerts.removeAlert("browser_permissions"),i.store.dispatch.alerts.removeAlert("user_permissions"),i.store.dispatch.alerts.removeAlert("busy_camera"),void i.store.dispatch.alerts.removeAlert("unknown_media_permissions");s.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,o=e.type,u=null!==(t=((r={})[s.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[s.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[o])&&void 0!==t?t:{alert:"unknown_media_permissions",message:"WebRTC: can't access audio or camera on this device. unknown error"};i.store.dispatch.alerts.setAlert(u.alert),n.error&&n.error(u.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){s.__exports.requestMediaPermissions({video:!0}).then((function(){e(!0)})).catch((function(i){console.error("Error requesting webcam permission:",i),e(!1)}))}))},exports.getCurrentAudioInputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-input-device").deviceId||null;return i.store.select.mediaDevices.audioInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null;return i.store.select.mediaDevices.audioOutputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null;return i.store.select.mediaDevices.videoInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getSupportedDevices=function(e){var i,r,t=!1,s=!1,o=!1,u=!1;i=function(){var i={audio:t,audioCap:o,video:s,videoCap:u};n.log&&n.log("supportedDevices=",i),e()},r=[],navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){var i=!1;r.forEach((function(r){r.deviceId===e.deviceId&&r.kind===e.kind&&(i=!0)})),i||("videoinput"!==e.kind||u||(u=!0),"audioinput"!==e.kind||o||(o=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(s=!0),r.push(e))})),i&&i()}))};
2
2
  //# sourceMappingURL=devices.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var r=require("react"),t=require("../../../_virtual/index7.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(r);function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?s(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){if(null==e)return{};var t,o,n=function(e,r){if(null==e)return{};var t,o,n={},s=Object.keys(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function f(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(!e)return;if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return c(e,r)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=new Array(r);t<r;t++)o[t]=e[t];return o}function u(e){return r=e,(r-=0)==r?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,r){return r?r.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1);var r}var y=["style"];var b=!1;try{b="production"===process.env.NODE_ENV}catch(e){}function d(r){return r&&"object"===a(r)&&r.prefix&&r.iconName&&r.icon?r:e.parse.icon?e.parse.icon(r):null===r?null:r&&"object"===a(r)&&r.prefix&&r.iconName?r:Array.isArray(r)&&2===r.length?{prefix:r[0],iconName:r[1]}:"string"==typeof r?{prefix:"fas",iconName:r}:void 0}function x(e,r){return Array.isArray(r)&&r.length>0||!Array.isArray(r)&&r?i({},e,r):{}}var m=n.default.forwardRef((function(r,t){var o=r.icon,n=r.mask,s=r.symbol,a=r.className,l=r.title,c=r.titleId,u=r.maskId,y=d(o),v=x("classes",[].concat(f(function(e){var r,t=e.beat,o=e.fade,n=e.beatFade,s=e.bounce,p=e.shake,a=e.flash,l=e.spin,f=e.spinPulse,c=e.spinReverse,u=e.pulse,y=e.fixedWidth,b=e.inverse,d=e.border,x=e.listItem,m=e.flip,O=e.size,v=e.rotation,T=e.pull,h=(i(r={"fa-beat":t,"fa-fade":o,"fa-beat-fade":n,"fa-bounce":s,"fa-shake":p,"fa-flash":a,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":f,"fa-pulse":u,"fa-fw":y,"fa-inverse":b,"fa-border":d,"fa-li":x,"fa-flip":!0===m,"fa-flip-horizontal":"horizontal"===m||"both"===m,"fa-flip-vertical":"vertical"===m||"both"===m},"fa-".concat(O),null!=O),i(r,"fa-rotate-".concat(v),null!=v&&0!==v),i(r,"fa-pull-".concat(T),null!=T),i(r,"fa-swap-opacity",e.swapOpacity),r);return Object.keys(h).map((function(e){return h[e]?e:null})).filter((function(e){return e}))}(r)),f(a.split(" ")))),T=x("transform","string"==typeof r.transform?e.parse.transform(r.transform):r.transform),h=x("mask",d(n)),g=e.icon(y,p(p(p(p({},v),T),h),{},{symbol:s,title:l,titleId:c,maskId:u}));if(!g)return function(){var e;!b&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",y),null;var j=g.abstract,w={ref:t};return Object.keys(r).forEach((function(e){m.defaultProps.hasOwnProperty(e)||(w[e]=r[e])})),O(j[0],w)}));m.displayName="FontAwesomeIcon",m.propTypes={beat:t.propTypes.exports.bool,border:t.propTypes.exports.bool,beatFade:t.propTypes.exports.bool,bounce:t.propTypes.exports.bool,className:t.propTypes.exports.string,fade:t.propTypes.exports.bool,flash:t.propTypes.exports.bool,mask:t.propTypes.exports.oneOfType([t.propTypes.exports.object,t.propTypes.exports.array,t.propTypes.exports.string]),maskId:t.propTypes.exports.string,fixedWidth:t.propTypes.exports.bool,inverse:t.propTypes.exports.bool,flip:t.propTypes.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:t.propTypes.exports.oneOfType([t.propTypes.exports.object,t.propTypes.exports.array,t.propTypes.exports.string]),listItem:t.propTypes.exports.bool,pull:t.propTypes.exports.oneOf(["right","left"]),pulse:t.propTypes.exports.bool,rotation:t.propTypes.exports.oneOf([0,90,180,270]),shake:t.propTypes.exports.bool,size:t.propTypes.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:t.propTypes.exports.bool,spinPulse:t.propTypes.exports.bool,spinReverse:t.propTypes.exports.bool,symbol:t.propTypes.exports.oneOfType([t.propTypes.exports.bool,t.propTypes.exports.string]),title:t.propTypes.exports.string,titleId:t.propTypes.exports.string,transform:t.propTypes.exports.oneOfType([t.propTypes.exports.string,t.propTypes.exports.object]),swapOpacity:t.propTypes.exports.bool},m.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var O=function e(r,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof t)return t;var n=(t.children||[]).map((function(t){return e(r,t)})),s=Object.keys(t.attributes||{}).reduce((function(e,r){var o=t.attributes[r];switch(r){case"class":e.attrs.className=o,delete t.attributes.class;break;case"style":e.attrs.style=o.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,r){var t,o=r.indexOf(":"),n=u(r.slice(0,o)),s=r.slice(o+1).trim();return n.startsWith("webkit")?e[(t=n,t.charAt(0).toUpperCase()+t.slice(1))]=s:e[n]=s,e}),{});break;default:0===r.indexOf("aria-")||0===r.indexOf("data-")?e.attrs[r.toLowerCase()]=o:e.attrs[u(r)]=o}return e}),{attrs:{}}),a=o.style,i=void 0===a?{}:a,c=l(o,y);return s.attrs.style=p(p({},s.attrs.style),i),r.apply(void 0,[t.tag,p(p({},s.attrs),c)].concat(f(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var r=require("react"),t=require("../../../_virtual/index6.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(r);function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?s(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){if(null==e)return{};var t,o,n=function(e,r){if(null==e)return{};var t,o,n={},s=Object.keys(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function f(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(!e)return;if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return c(e,r)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=new Array(r);t<r;t++)o[t]=e[t];return o}function u(e){return r=e,(r-=0)==r?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,r){return r?r.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1);var r}var y=["style"];var b=!1;try{b="production"===process.env.NODE_ENV}catch(e){}function d(r){return r&&"object"===a(r)&&r.prefix&&r.iconName&&r.icon?r:e.parse.icon?e.parse.icon(r):null===r?null:r&&"object"===a(r)&&r.prefix&&r.iconName?r:Array.isArray(r)&&2===r.length?{prefix:r[0],iconName:r[1]}:"string"==typeof r?{prefix:"fas",iconName:r}:void 0}function x(e,r){return Array.isArray(r)&&r.length>0||!Array.isArray(r)&&r?i({},e,r):{}}var m=n.default.forwardRef((function(r,t){var o=r.icon,n=r.mask,s=r.symbol,a=r.className,l=r.title,c=r.titleId,u=r.maskId,y=d(o),v=x("classes",[].concat(f(function(e){var r,t=e.beat,o=e.fade,n=e.beatFade,s=e.bounce,p=e.shake,a=e.flash,l=e.spin,f=e.spinPulse,c=e.spinReverse,u=e.pulse,y=e.fixedWidth,b=e.inverse,d=e.border,x=e.listItem,m=e.flip,O=e.size,v=e.rotation,T=e.pull,h=(i(r={"fa-beat":t,"fa-fade":o,"fa-beat-fade":n,"fa-bounce":s,"fa-shake":p,"fa-flash":a,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":f,"fa-pulse":u,"fa-fw":y,"fa-inverse":b,"fa-border":d,"fa-li":x,"fa-flip":!0===m,"fa-flip-horizontal":"horizontal"===m||"both"===m,"fa-flip-vertical":"vertical"===m||"both"===m},"fa-".concat(O),null!=O),i(r,"fa-rotate-".concat(v),null!=v&&0!==v),i(r,"fa-pull-".concat(T),null!=T),i(r,"fa-swap-opacity",e.swapOpacity),r);return Object.keys(h).map((function(e){return h[e]?e:null})).filter((function(e){return e}))}(r)),f(a.split(" ")))),T=x("transform","string"==typeof r.transform?e.parse.transform(r.transform):r.transform),h=x("mask",d(n)),g=e.icon(y,p(p(p(p({},v),T),h),{},{symbol:s,title:l,titleId:c,maskId:u}));if(!g)return function(){var e;!b&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",y),null;var j=g.abstract,w={ref:t};return Object.keys(r).forEach((function(e){m.defaultProps.hasOwnProperty(e)||(w[e]=r[e])})),O(j[0],w)}));m.displayName="FontAwesomeIcon",m.propTypes={beat:t.propTypes.exports.bool,border:t.propTypes.exports.bool,beatFade:t.propTypes.exports.bool,bounce:t.propTypes.exports.bool,className:t.propTypes.exports.string,fade:t.propTypes.exports.bool,flash:t.propTypes.exports.bool,mask:t.propTypes.exports.oneOfType([t.propTypes.exports.object,t.propTypes.exports.array,t.propTypes.exports.string]),maskId:t.propTypes.exports.string,fixedWidth:t.propTypes.exports.bool,inverse:t.propTypes.exports.bool,flip:t.propTypes.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:t.propTypes.exports.oneOfType([t.propTypes.exports.object,t.propTypes.exports.array,t.propTypes.exports.string]),listItem:t.propTypes.exports.bool,pull:t.propTypes.exports.oneOf(["right","left"]),pulse:t.propTypes.exports.bool,rotation:t.propTypes.exports.oneOf([0,90,180,270]),shake:t.propTypes.exports.bool,size:t.propTypes.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:t.propTypes.exports.bool,spinPulse:t.propTypes.exports.bool,spinReverse:t.propTypes.exports.bool,symbol:t.propTypes.exports.oneOfType([t.propTypes.exports.bool,t.propTypes.exports.string]),title:t.propTypes.exports.string,titleId:t.propTypes.exports.string,transform:t.propTypes.exports.oneOfType([t.propTypes.exports.string,t.propTypes.exports.object]),swapOpacity:t.propTypes.exports.bool},m.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var O=function e(r,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof t)return t;var n=(t.children||[]).map((function(t){return e(r,t)})),s=Object.keys(t.attributes||{}).reduce((function(e,r){var o=t.attributes[r];switch(r){case"class":e.attrs.className=o,delete t.attributes.class;break;case"style":e.attrs.style=o.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,r){var t,o=r.indexOf(":"),n=u(r.slice(0,o)),s=r.slice(o+1).trim();return n.startsWith("webkit")?e[(t=n,t.charAt(0).toUpperCase()+t.slice(1))]=s:e[n]=s,e}),{});break;default:0===r.indexOf("aria-")||0===r.indexOf("data-")?e.attrs[r.toLowerCase()]=o:e.attrs[u(r)]=o}return e}),{attrs:{}}),a=o.style,i=void 0===a?{}:a,c=l(o,y);return s.attrs.style=p(p({},s.attrs.style),i),r.apply(void 0,[t.tag,p(p({},s.attrs),c)].concat(f(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=m;
2
2
  //# sourceMappingURL=index.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../_virtual/index6.js");require("./requestMediaPermissions.js");var r=require("../../../_virtual/requestMediaPermissions.js");!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.requestMediaPermissions=e.MediaPermissionsErrorType=void 0;var i=r.__exports;Object.defineProperty(e,"MediaPermissionsErrorType",{enumerable:!0,get:function(){return i.MediaPermissionsErrorType}}),Object.defineProperty(e,"requestMediaPermissions",{enumerable:!0,get:function(){return i.requestMediaPermissions}})}(e.__exports);
1
+ "use strict";var e=require("../../../_virtual/index8.js");require("./requestMediaPermissions.js");var r=require("../../../_virtual/requestMediaPermissions.js");!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.requestMediaPermissions=e.MediaPermissionsErrorType=void 0;var i=r.__exports;Object.defineProperty(e,"MediaPermissionsErrorType",{enumerable:!0,get:function(){return i.MediaPermissionsErrorType}}),Object.defineProperty(e,"requestMediaPermissions",{enumerable:!0,get:function(){return i.requestMediaPermissions}})}(e.__exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/index7.js"),r=require("./node_modules/react-is/index.js"),s=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var o=r.__require();e.propTypes.exports=s.__require()(o.isElement,!0)}else e.propTypes.exports=i.__require()();exports.default=e.propTypes.exports;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/index6.js"),r=require("./node_modules/react-is/index.js"),s=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var o=r.__require();e.propTypes.exports=s.__require()(o.isElement,!0)}else e.propTypes.exports=i.__require()();exports.default=e.propTypes.exports;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("../../../../_virtual/index8.js"),s=require("./cjs/react-is.production.min.js"),t=require("./cjs/react-is.development.js");exports.__require=function(){return e||(e=1,i=r.reactIs,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.reactIs.exports;var i};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("../../../../_virtual/index7.js"),s=require("./cjs/react-is.production.min.js"),t=require("./cjs/react-is.development.js");exports.__require=function(){return e||(e=1,i=r.reactIs,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.reactIs.exports;var i};
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nethesis/phone-island",
3
3
  "author": "Nethesis",
4
- "version": "0.14.4",
4
+ "version": "0.14.5",
5
5
  "description": "NethVoice CTI Phone Island",
6
6
  "keywords": [
7
7
  "nethserver",