@nethesis/phone-island 0.18.9 → 0.18.10

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.exports={};var e={get exports(){return exports.exports},set exports(e){exports.exports=e}};exports.__module=e;
2
2
  //# sourceMappingURL=index6.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.exports={};var e={get exports(){return exports.exports},set exports(e){exports.exports=e}};exports.__module=e;
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"),i=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../lib/island/island.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../../lib/phone/call.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 o=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("../../utils/customHooks/useEventListener.js"),u=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var c=require("../CustomThemedTooltip.js"),d=require("../../services/phonebook.js"),p=require("./SelectContactNumberView.js"),m=require("../../node_modules/lodash/debounce.js"),f=require("./ListAvatar.js"),v=require("../../node_modules/react-redux/es/hooks/useSelector.js"),g=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=h(t);exports.ContactListView=function(){var h=v.useSelector((function(e){return e.island})),x=h.isOpen,E=h.contactListView,y=v.useSelector((function(e){return e.users})).endpoints,N=v.useSelector((function(e){return e.currentUser})).username,w=t.useState(!1),k=w[0],j=w[1],C=t.useState([]),T=C[0],_=C[1],q=t.useState([]),P=q[0],L=q[1],S=t.useState(),A=S[0],I=S[1],F=t.useState(!0),B=F[0],H=F[1],O=t.useState(""),z=O[0],V=O[1],D=t.useState(),M=D[0],R=D[1],U=t.useRef(null),W=t.useState(!1),$=W[0],G=W[1],J=t.useState(10),K=J[0],Q=J[1],X=g.useDispatch(),Y=t.useMemo((function(){return e.__spreadArray(e.__spreadArray([],T,!0),P,!0)}),[T,P]),Z=t.useRef(m.default((function(e){te(e)}),300)).current;function ee(e){if(void 0===e&&(e=""),e=e.trim().toLowerCase(),y){var t=null==Object?void 0:Object.values(y).filter((function(t){var i,a,r,n,l;return(null==t?void 0:t.username)!==N&&((null===(i=null==t?void 0:t.endpoints)||void 0===i?void 0:i.extension.find((function(t){var i,a;return null===(a=null===(i=null==t?void 0:t.id)||void 0===i?void 0:i.toLowerCase())||void 0===a?void 0:a.startsWith(e)})))||(null===(r=null===(a=null==t?void 0:t.username)||void 0===a?void 0:a.toLowerCase())||void 0===r?void 0:r.includes(e))||(null===(l=null===(n=null==t?void 0:t.name)||void 0===n?void 0:n.toLowerCase())||void 0===l?void 0:l.includes(e)))}));_(t)}}function te(t){return void 0===t&&(t=""),e.__awaiter(this,void 0,void 0,(function(){var i,a;return e.__generator(this,(function(e){switch(e.label){case 0:j(!1),t=t.trim().toLowerCase(),/^[0-9*#+]+$/.test(t)?R(!0):R(!1),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,d.searchPhonebook(1,t,"")];case 2:return i=e.sent(),L(i.rows),[3,4];case 3:return a=e.sent(),console.error("Error fetching phonebook:",a),[3,4];case 4:return j(!0),[2]}}))}))}function ie(e){return e&&"object"==typeof e&&"endpoints"in e&&"username"in e}function ae(e){return e&&"object"==typeof e&&"source"in e&&"name"in e}function re(e){var t;return null===(t=["online","voicemail","cellphone","callforward"])||void 0===t?void 0:t.includes(e)}t.useEffect((function(){return function(){Z.cancel()}}),[Z]),s.useEventListener("phone-island-call-transfer",(function(e){l.handleAttendedTransfer(e.number,X),u.eventDispatch("phone-island-call-transfer-opened",{})})),t.useEffect((function(){y&&N&&(ee(z),B&&(te(z),H(!1)))}),[y,N]),t.useEffect((function(){var e,t,i=function(){var e,t,i;G(!!(U.current&&U.current.scrollTop>3)),U.current&&(null===(e=U.current)||void 0===e?void 0:e.offsetHeight)+(null===(t=U.current)||void 0===t?void 0:t.scrollTop)>=(null===(i=U.current)||void 0===i?void 0:i.scrollHeight)-10&&Q((function(e){return e+10}))};return x?null===(e=U.current)||void 0===e||e.addEventListener("scroll",i):null===(t=U.current)||void 0===t||t.removeEventListener("scroll",i),function(){var e;return null===(e=U.current)||void 0===e?void 0:e.removeEventListener("scroll",i)}}),[x]);var ne=o.useTranslation().t,le=b.default.createElement("div",{className:"pi-relative pi-flex pi-flex-col"},b.default.createElement("div",{className:"pi-relative pi-z-50"},b.default.createElement("div",{className:"pi-flex pi-gap-4"},b.default.createElement(i.Button,{variant:"transparent",onClick:function(){l.isInsideConferenceList()&&u.eventDispatch("phone-island-conference-list-close",{}),r.backToPreviousView()},"data-tooltip-id":"contact-list-tooltip-back-to-call","data-tooltip-content":ne("Tooltip.Back to call")||""},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faArrowLeft})),b.default.createElement("input",{"data-stop-propagation":!0,type:"text",onChange:function(e){V(e.currentTarget.value),Z(e.currentTarget.value),ee(e.currentTarget.value)},value:z,placeholder:ne("Common.Search contact or phone number")||"",autoFocus:!0,spellCheck:!1,className:"pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-sm pi-px-5 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]"}))),!k&&b.default.createElement("div",{className:"pi-mt-6"},Array.from({length:5}).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-animate-pulse pi-flex pi-items-center pi-space-x-4 pi-px-3 pi-py-1"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-2 pi-w-full"},b.default.createElement("div",{className:"pi-h-3 pi-w-4/5 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"}),b.default.createElement("div",{className:"pi-h-3 pi-w-1/2 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-pr-2"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})))}))),b.default.createElement("div",{className:k?"":"pi-hidden"},b.default.createElement("div",{className:"pi-z-30 pi-h-6 pi-pointer-events-none pi-bg-transparent pi-mt-7 pi-pr-4"},$&&b.default.createElement("div",{className:"pi-h-6 pi-w-full pi-bg-gradient-to-b dark:pi-from-black pi-from-gray-100 pi-to-transparent pi-z-100"})),b.default.createElement("div",{style:{marginTop:"-22px"},className:"pi-flex pi-flex-col pi-gap-7"},b.default.createElement("div",{style:{height:"17rem"},ref:U,className:"pi-relative pi-w-full pi-flex pi-flex-col pi-gap-1 pi-overflow-y-auto pi-overflow-x-hidden pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-gray-200 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25"},M&&b.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},b.default.createElement(f.default,{placeHolderIcon:n.faUser}),b.default.createElement("div",null,b.default.createElement("div",{className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},ne("Common.Phone number entered")),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},z))),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(z,X)},variant:"green","data-tooltip-id":"contact-list-tooltip-call-to-transfer","data-tooltip-content":l.isInsideConferenceList()?ne("Conference.Add participant"):ne("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})))),Y&&Y.slice(0,K).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},function(){var t,i;return ie(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{username:null==e?void 0:e.username,status:null==e?void 0:e.mainPresence,placeHolderIcon:n.faHeadset}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},e.name),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id))):ae(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{placeHolderIcon:"person"===(null==e?void 0:e.kind)?n.faUser:n.faBuilding}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},(null==e?void 0:e.displayName)||"-"),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},b.default.createElement("span",null,d.getMainPhoneNumber(e)||"-"),d.getTotalPhoneNumbers(e)>1&&b.default.createElement("span",{className:"pi-ml-2"},ne("Common.plus_x_others",{count:d.getTotalPhoneNumbers(e)-1}))))):void 0}()),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},ie(e)?b.default.createElement(i.Button,{onClick:function(){var t,i;return re(null==e?void 0:e.mainPresence)&&l.clickTransferOrConference(null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id,X)},variant:"green",disabled:!re(null==e?void 0:e.mainPresence),"data-tooltip-id":re(null==e?void 0:e.mainPresence)?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?ne("Conference.Add participant"):ne("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):ae(e)?d.getTotalPhoneNumbers(e)<2?b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(d.getMainPhoneNumber(e),X)},variant:"green",disabled:0==d.getTotalPhoneNumbers(e),"data-tooltip-id":d.getTotalPhoneNumbers(e)>0?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?ne("Conference.Add participant"):ne("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):b.default.createElement(i.Button,{onClick:function(){return I(e),void X.island.setContactListView("selectContactNumber")},variant:"transparent","data-tooltip-id":"contact-list-tooltip-left","data-tooltip-content":ne("Tooltip.Select phone number")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faAngleRight})):void 0))})),0===Y.length&&!M&&b.default.createElement("p",{className:" pi-font-medium pi-w-full pi-flex pi-justify-center pi-text-sm"},ne("No contacts found"))))));return b.default.createElement(b.default.Fragment,null,function(){switch(E){case"main":default:return le;case"selectContactNumber":return b.default.createElement(p.SelectContactNumberView,{contact:A})}}(),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-left",place:"left"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-back-to-call",place:"right"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-call-to-transfer",place:"left"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),i=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../lib/island/island.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../../lib/phone/call.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 o=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("../../utils/customHooks/useEventListener.js"),u=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var c=require("../CustomThemedTooltip.js"),d=require("../../services/phonebook.js"),p=require("./SelectContactNumberView.js"),m=require("../../node_modules/lodash/debounce.js"),f=require("./ListAvatar.js"),v=require("../../node_modules/react-redux/es/hooks/useSelector.js"),h=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=g(t);exports.ContactListView=function(){var g=v.useSelector((function(e){return e.island})),x=g.isOpen,E=g.contactListView,y=v.useSelector((function(e){return e.users})).endpoints,N=v.useSelector((function(e){return e.currentUser})).username,w=t.useState(!1),k=w[0],j=w[1],C=t.useState([]),T=C[0],_=C[1],q=t.useState([]),P=q[0],L=q[1],S=t.useState(),A=S[0],I=S[1],F=t.useState(!0),B=F[0],H=F[1],O=t.useState(""),z=O[0],D=O[1],V=t.useState(),M=V[0],R=V[1],U=t.useRef(null),W=t.useState(!1),$=W[0],G=W[1],J=t.useState(10),K=J[0],Q=J[1],X=h.useDispatch(),Y=v.useSelector((function(e){return e.currentCall})).paused,Z=t.useMemo((function(){return e.__spreadArray(e.__spreadArray([],T,!0),P,!0)}),[T,P]),ee=t.useRef(m.default((function(e){ie(e)}),300)).current;function te(e){if(void 0===e&&(e=""),e=e.trim().toLowerCase(),y){var t=null==Object?void 0:Object.values(y).filter((function(t){var i,a,r,n,l;return(null==t?void 0:t.username)!==N&&((null===(i=null==t?void 0:t.endpoints)||void 0===i?void 0:i.extension.find((function(t){var i,a;return null===(a=null===(i=null==t?void 0:t.id)||void 0===i?void 0:i.toLowerCase())||void 0===a?void 0:a.startsWith(e)})))||(null===(r=null===(a=null==t?void 0:t.username)||void 0===a?void 0:a.toLowerCase())||void 0===r?void 0:r.includes(e))||(null===(l=null===(n=null==t?void 0:t.name)||void 0===n?void 0:n.toLowerCase())||void 0===l?void 0:l.includes(e)))}));_(t)}}function ie(t){return void 0===t&&(t=""),e.__awaiter(this,void 0,void 0,(function(){var i,a;return e.__generator(this,(function(e){switch(e.label){case 0:j(!1),t=t.trim().toLowerCase(),/^[0-9*#+]+$/.test(t)?R(!0):R(!1),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,d.searchPhonebook(1,t,"")];case 2:return i=e.sent(),L(i.rows),[3,4];case 3:return a=e.sent(),console.error("Error fetching phonebook:",a),[3,4];case 4:return j(!0),[2]}}))}))}function ae(e){return e&&"object"==typeof e&&"endpoints"in e&&"username"in e}function re(e){return e&&"object"==typeof e&&"source"in e&&"name"in e}function ne(e){var t;return null===(t=["online","voicemail","cellphone","callforward"])||void 0===t?void 0:t.includes(e)}t.useEffect((function(){return function(){ee.cancel()}}),[ee]),s.useEventListener("phone-island-call-transfer",(function(e){l.handleAttendedTransfer(e.number,X),u.eventDispatch("phone-island-call-transfer-opened",{})})),t.useEffect((function(){y&&N&&(te(z),B&&(ie(z),H(!1)))}),[y,N]),t.useEffect((function(){var e,t,i=function(){var e,t,i;G(!!(U.current&&U.current.scrollTop>3)),U.current&&(null===(e=U.current)||void 0===e?void 0:e.offsetHeight)+(null===(t=U.current)||void 0===t?void 0:t.scrollTop)>=(null===(i=U.current)||void 0===i?void 0:i.scrollHeight)-10&&Q((function(e){return e+10}))};return x?null===(e=U.current)||void 0===e||e.addEventListener("scroll",i):null===(t=U.current)||void 0===t||t.removeEventListener("scroll",i),function(){var e;return null===(e=U.current)||void 0===e?void 0:e.removeEventListener("scroll",i)}}),[x]);var le=o.useTranslation().t,oe=b.default.createElement("div",{className:"pi-relative pi-flex pi-flex-col"},b.default.createElement("div",{className:"pi-relative pi-z-50"},b.default.createElement("div",{className:"pi-flex pi-gap-4"},b.default.createElement(i.Button,{variant:"transparent",onClick:function(){l.isInsideConferenceList()&&u.eventDispatch("phone-island-conference-list-close",{}),Y&&u.eventDispatch("phone-island-call-unhold",{}),r.backToPreviousView()},"data-tooltip-id":"contact-list-tooltip-back-to-call","data-tooltip-content":le("Tooltip.Back to call")||""},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faArrowLeft})),b.default.createElement("input",{"data-stop-propagation":!0,type:"text",onChange:function(e){D(e.currentTarget.value),ee(e.currentTarget.value),te(e.currentTarget.value)},value:z,placeholder:le("Common.Search contact or phone number")||"",autoFocus:!0,spellCheck:!1,className:"pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-sm pi-px-5 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]"}))),!k&&b.default.createElement("div",{className:"pi-mt-6"},Array.from({length:5}).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-animate-pulse pi-flex pi-items-center pi-space-x-4 pi-px-3 pi-py-1"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-2 pi-w-full"},b.default.createElement("div",{className:"pi-h-3 pi-w-4/5 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"}),b.default.createElement("div",{className:"pi-h-3 pi-w-1/2 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-pr-2"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})))}))),b.default.createElement("div",{className:k?"":"pi-hidden"},b.default.createElement("div",{className:"pi-z-30 pi-h-6 pi-pointer-events-none pi-bg-transparent pi-mt-7 pi-pr-4"},$&&b.default.createElement("div",{className:"pi-h-6 pi-w-full pi-bg-gradient-to-b dark:pi-from-black pi-from-gray-100 pi-to-transparent pi-z-100"})),b.default.createElement("div",{style:{marginTop:"-22px"},className:"pi-flex pi-flex-col pi-gap-7"},b.default.createElement("div",{style:{height:"17rem"},ref:U,className:"pi-relative pi-w-full pi-flex pi-flex-col pi-gap-1 pi-overflow-y-auto pi-overflow-x-hidden pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-gray-200 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25"},M&&b.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},b.default.createElement(f.default,{placeHolderIcon:n.faUser}),b.default.createElement("div",null,b.default.createElement("div",{className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},le("Common.Phone number entered")),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},z))),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(z,X)},variant:"green","data-tooltip-id":"contact-list-tooltip-call-to-transfer","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})))),Z&&Z.slice(0,K).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},function(){var t,i;return ae(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{username:null==e?void 0:e.username,status:null==e?void 0:e.mainPresence,placeHolderIcon:n.faHeadset}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},e.name),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id))):re(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{placeHolderIcon:"person"===(null==e?void 0:e.kind)?n.faUser:n.faBuilding}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},(null==e?void 0:e.displayName)||"-"),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},b.default.createElement("span",null,d.getMainPhoneNumber(e)||"-"),d.getTotalPhoneNumbers(e)>1&&b.default.createElement("span",{className:"pi-ml-2"},le("Common.plus_x_others",{count:d.getTotalPhoneNumbers(e)-1}))))):void 0}()),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},ae(e)?b.default.createElement(i.Button,{onClick:function(){var t,i;return ne(null==e?void 0:e.mainPresence)&&l.clickTransferOrConference(null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id,X)},variant:"green",disabled:!ne(null==e?void 0:e.mainPresence),"data-tooltip-id":ne(null==e?void 0:e.mainPresence)?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):re(e)?d.getTotalPhoneNumbers(e)<2?b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(d.getMainPhoneNumber(e),X)},variant:"green",disabled:0==d.getTotalPhoneNumbers(e),"data-tooltip-id":d.getTotalPhoneNumbers(e)>0?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):b.default.createElement(i.Button,{onClick:function(){return I(e),void X.island.setContactListView("selectContactNumber")},variant:"transparent","data-tooltip-id":"contact-list-tooltip-left","data-tooltip-content":le("Tooltip.Select phone number")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faAngleRight})):void 0))})),0===Z.length&&!M&&b.default.createElement("p",{className:" pi-font-medium pi-w-full pi-flex pi-justify-center pi-text-sm"},le("No contacts found"))))));return b.default.createElement(b.default.Fragment,null,function(){switch(E){case"main":default:return oe;case"selectContactNumber":return b.default.createElement(p.SelectContactNumberView,{contact:A})}}(),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-left",place:"left"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-back-to-call",place:"right"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-call-to-transfer",place:"left"}))};
2
2
  //# sourceMappingURL=ContactListView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactListView.js","sources":["../../../src/components/ContactView/ContactListView.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useEffect, useState, FormEvent, useRef, useMemo } from 'react'\nimport { Button } from '../Button'\nimport { RootState } from '../../store'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { backToPreviousView } from '../../lib/island/island'\nimport {\n faPhone,\n faArrowLeft,\n faUser,\n faBuilding,\n faAngleRight,\n faHeadset,\n} from '@fortawesome/free-solid-svg-icons'\nimport { UserEndpointsTypes } from '../../types'\nimport {\n clickTransferOrConference,\n handleAttendedTransfer,\n isInsideConferenceList,\n} from '../../lib/phone/call'\nimport { Dispatch } from '../../store'\nimport { unpauseCurrentCall } from '../../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { getMainPhoneNumber, getTotalPhoneNumbers, searchPhonebook } from '../../services/phonebook'\nimport { PhonebookContact } from '../../types/phonebook'\nimport { SelectContactNumberView } from './SelectContactNumberView'\nimport debounce from 'lodash/debounce'\nimport ListAvatar from './ListAvatar'\n\nconst USERS_NUMBER_PER_PAGE = 10\nconst SHOW_LIST_GRADIENT_DISTANCE = 3\n\nexport const ContactListView: FC<ContactListViewProps> = () => {\n const { isOpen, contactListView } = useSelector((state: RootState) => state.island)\n const { endpoints } = useSelector((state: RootState) => state.users)\n const { username } = useSelector((state: RootState) => state.currentUser)\n const [loaded, setLoaded] = useState<boolean>(false)\n const [filteredOperators, setFilteredOperators] = useState<UserEndpointsTypes[]>([])\n const [filteredPhonebookContacts, setFilteredPhonebookContacts] = useState<PhonebookContact[]>([])\n const [currentContact, setCurrentContact] = useState<PhonebookContact>()\n const [firstPhonebookLoading, setFirstPhonebookLoading] = useState(true)\n const [searchQuery, setSearchQuery] = useState('')\n const [showPhoneNumberTyped, setShowPhoneNumberTyped] = useState<boolean>()\n const relativeRef = useRef<HTMLDivElement>(null)\n const [showGradient, setShowGradient] = useState<boolean>(false)\n const [showingUsers, setShowingUsers] = useState<number>(USERS_NUMBER_PER_PAGE)\n const dispatch = useDispatch<Dispatch>()\n\n const filteredContacts = useMemo(() => {\n return [...filteredOperators, ...filteredPhonebookContacts]\n }, [filteredOperators, filteredPhonebookContacts])\n\n // debounce phonebook search\n const debouncedSearchPhonebookContacts = useRef(\n debounce((value: string) => {\n retrievePhonebookContacts(value)\n }, 300), // debounce delay\n ).current\n\n // cleanup the debounce function on unmount\n useEffect(() => {\n return () => {\n debouncedSearchPhonebookContacts.cancel()\n }\n }, [debouncedSearchPhonebookContacts])\n\n function searchQueryChanged(event: FormEvent<HTMLInputElement>) {\n setSearchQuery(event.currentTarget.value)\n debouncedSearchPhonebookContacts(event.currentTarget.value)\n filterOperators(event.currentTarget.value)\n }\n\n function retrieveContacts() {\n filterOperators(searchQuery)\n\n // load phonebook contacts only once\n\n if (firstPhonebookLoading) {\n retrievePhonebookContacts(searchQuery)\n setFirstPhonebookLoading(false)\n }\n }\n\n function filterOperators(textQuery: string = '') {\n textQuery = textQuery.trim().toLowerCase()\n\n if (endpoints) {\n const operators = Object?.values(endpoints).filter(\n (userEndpoints: UserEndpointsTypes) =>\n // Remove the currentUser from the list\n userEndpoints?.username !== username &&\n (userEndpoints?.endpoints?.extension.find((extension) =>\n extension?.id?.toLowerCase()?.startsWith(textQuery),\n ) ||\n userEndpoints?.username?.toLowerCase()?.includes(textQuery) ||\n userEndpoints?.name?.toLowerCase()?.includes(textQuery)),\n )\n setFilteredOperators(operators)\n }\n }\n\n async function retrievePhonebookContacts(textQuery: string = '') {\n setLoaded(false)\n textQuery = textQuery.trim().toLowerCase()\n\n // phone number typed\n\n if (/^[0-9*#+]+$/.test(textQuery)) {\n setShowPhoneNumberTyped(true)\n } else {\n setShowPhoneNumberTyped(false)\n }\n\n // search phonebook\n\n try {\n const phonebookSearchResult = await searchPhonebook(1, textQuery, '')\n setFilteredPhonebookContacts(phonebookSearchResult.rows)\n } catch (error) {\n console.error('Error fetching phonebook:', error)\n }\n setLoaded(true)\n }\n\n useEventListener('phone-island-call-transfer', (data: CallStartTypes) => {\n handleAttendedTransfer(data.number, dispatch)\n eventDispatch('phone-island-call-transfer-opened', {})\n })\n\n // Retrieve\n useEffect(() => {\n if (endpoints && username) {\n retrieveContacts()\n }\n }, [endpoints, username])\n\n useEffect(() => {\n // Handle users list scrolling\n const handleScroll = () => {\n setShowGradient(\n relativeRef.current && relativeRef.current.scrollTop > SHOW_LIST_GRADIENT_DISTANCE\n ? true\n : false,\n )\n // Manage scroll to bottom\n if (\n relativeRef.current &&\n relativeRef.current?.offsetHeight + relativeRef.current?.scrollTop >=\n relativeRef.current?.scrollHeight - 10\n ) {\n // Improve showing users\n setShowingUsers((state) => state + USERS_NUMBER_PER_PAGE)\n }\n }\n // Manage expansion and collapsing\n if (isOpen) {\n relativeRef.current?.addEventListener('scroll', handleScroll)\n } else {\n relativeRef.current?.removeEventListener('scroll', handleScroll)\n }\n return () => relativeRef.current?.removeEventListener('scroll', handleScroll)\n }, [isOpen])\n\n function handleBackClick() {\n if (isInsideConferenceList()) {\n // Close the conference list\n eventDispatch('phone-island-conference-list-close', {})\n }\n // Open the call view\n backToPreviousView()\n }\n\n function isUserEndpointsType(obj: any): obj is UserEndpointsTypes {\n return obj && typeof obj === 'object' && 'endpoints' in obj && 'username' in obj\n }\n\n function isPhonebookContact(obj: any): obj is PhonebookContact {\n return obj && typeof obj === 'object' && 'source' in obj && 'name' in obj\n }\n\n function isContactAvailable(mainPresence: string): boolean {\n return ['online', 'voicemail', 'cellphone', 'callforward']?.includes(mainPresence)\n }\n\n function goToSelectNumberView(phonebookContact: PhonebookContact): void {\n setCurrentContact(phonebookContact)\n dispatch.island.setContactListView('selectContactNumber')\n }\n\n const { t } = useTranslation()\n\n const mainView = (\n <div className='pi-relative pi-flex pi-flex-col'>\n {/* Top section */}\n <div className='pi-relative pi-z-50'>\n <div className='pi-flex pi-gap-4'>\n <Button\n variant='transparent'\n onClick={handleBackClick}\n data-tooltip-id='contact-list-tooltip-back-to-call'\n data-tooltip-content={t('Tooltip.Back to call') || ''}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faArrowLeft} />\n </Button>\n <input\n data-stop-propagation={true}\n type='text'\n onChange={searchQueryChanged}\n value={searchQuery}\n placeholder={t('Common.Search contact or phone number') || ''}\n autoFocus\n spellCheck={false}\n className='pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-sm pi-px-5 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]'\n />\n </div>\n </div>\n {/* skeleton loader */}\n {!loaded && (\n <div className='pi-mt-6'>\n {Array.from({ length: 5 }).map((_, i) => (\n <div\n key={i}\n className='pi-animate-pulse pi-flex pi-items-center pi-space-x-4 pi-px-3 pi-py-1'\n >\n <div className='pi-flex pi-items-center pi-justify-center'>\n <div className='pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n <div className='pi-flex pi-flex-col pi-gap-2 pi-w-full'>\n <div className='pi-h-3 pi-w-4/5 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n <div className='pi-h-3 pi-w-1/2 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n <div className='pi-flex pi-items-center pi-justify-center pi-pr-2'>\n <div className='pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n </div>\n ))}\n </div>\n )}\n\n {/* contact list */}\n <div className={!loaded ? 'pi-hidden' : ''}>\n {/* List shadow */}\n <div className='pi-z-30 pi-h-6 pi-pointer-events-none pi-bg-transparent pi-mt-7 pi-pr-4'>\n {showGradient && (\n <div className='pi-h-6 pi-w-full pi-bg-gradient-to-b dark:pi-from-black pi-from-gray-100 pi-to-transparent pi-z-100'></div>\n )}\n </div>\n <div style={{ marginTop: '-22px' }} className='pi-flex pi-flex-col pi-gap-7'>\n {/* List section */}\n <div\n style={{ height: '17rem' }}\n ref={relativeRef}\n className='pi-relative pi-w-full pi-flex pi-flex-col pi-gap-1 pi-overflow-y-auto pi-overflow-x-hidden pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-gray-200 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25'\n >\n {/* The custom searched number */}\n {showPhoneNumberTyped && (\n <div className='pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800'>\n <div className='pi-flex pi-items-center pi-gap-4'>\n <ListAvatar placeHolderIcon={faUser} />\n <div>\n <div className='pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium'>\n {t('Common.Phone number entered')}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n {searchQuery}\n </div>\n </div>\n </div>\n <div className='pi-flex pi-gap-3.5'>\n <Button\n onClick={() => clickTransferOrConference(searchQuery, dispatch)}\n variant='green'\n data-tooltip-id='contact-list-tooltip-call-to-transfer'\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n </div>\n </div>\n )}\n {/* Operators and phonebook contacts list */}\n {filteredContacts &&\n filteredContacts.slice(0, showingUsers).map((filteredContact, i) => (\n <div\n key={i}\n className='pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800'\n >\n <div className='pi-flex pi-items-center pi-gap-4'>\n {(() => {\n if (isUserEndpointsType(filteredContact)) {\n return (\n <>\n <ListAvatar\n username={filteredContact?.username}\n status={filteredContact?.mainPresence}\n placeHolderIcon={faHeadset}\n />\n <div>\n <div\n data-stop-propagation={true}\n className={`pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium`}\n >\n {filteredContact.name}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n {filteredContact?.endpoints?.mainextension[0]?.id}\n </div>\n </div>\n </>\n )\n } else if (isPhonebookContact(filteredContact)) {\n return (\n <>\n <ListAvatar\n placeHolderIcon={\n filteredContact?.kind === 'person' ? faUser : faBuilding\n }\n />\n <div>\n <div\n data-stop-propagation={true}\n className='pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium'\n >\n {filteredContact?.displayName || '-'}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n <span>{getMainPhoneNumber(filteredContact) || '-'}</span>\n {getTotalPhoneNumbers(filteredContact) > 1 && (\n <span className='pi-ml-2'>\n {t('Common.plus_x_others', {\n count: getTotalPhoneNumbers(filteredContact) - 1,\n })}\n </span>\n )}\n </div>\n </div>\n </>\n )\n }\n })()}\n </div>\n <div className='pi-flex pi-gap-3.5'>\n {(() => {\n if (isUserEndpointsType(filteredContact)) {\n return (\n <Button\n onClick={() =>\n isContactAvailable(filteredContact?.mainPresence) &&\n clickTransferOrConference(\n filteredContact?.endpoints?.mainextension[0]?.id,\n dispatch,\n )\n }\n variant='green'\n disabled={!isContactAvailable(filteredContact?.mainPresence)}\n data-tooltip-id={\n isContactAvailable(filteredContact?.mainPresence)\n ? 'contact-list-tooltip-left'\n : ''\n }\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n )\n } else if (isPhonebookContact(filteredContact)) {\n if (getTotalPhoneNumbers(filteredContact) < 2) {\n return (\n <Button\n onClick={() =>\n clickTransferOrConference(\n getMainPhoneNumber(filteredContact),\n dispatch,\n )\n }\n variant='green'\n disabled={getTotalPhoneNumbers(filteredContact) == 0}\n data-tooltip-id={\n getTotalPhoneNumbers(filteredContact) > 0\n ? 'contact-list-tooltip-left'\n : ''\n }\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n )\n } else {\n // change view to show contact numbers\n return (\n <Button\n onClick={() => goToSelectNumberView(filteredContact)}\n variant='transparent'\n data-tooltip-id={'contact-list-tooltip-left'}\n data-tooltip-content={t('Tooltip.Select phone number')}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faAngleRight} />\n </Button>\n )\n }\n }\n })()}\n </div>\n </div>\n ))}\n {filteredContacts.length === 0 && !showPhoneNumberTyped && (\n <p className=' pi-font-medium pi-w-full pi-flex pi-justify-center pi-text-sm'>\n {t('No contacts found')}\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n\n return (\n <>\n {(() => {\n switch (contactListView) {\n case 'main':\n return mainView\n case 'selectContactNumber':\n return <SelectContactNumberView contact={currentContact} />\n default:\n return mainView\n }\n })()}\n <CustomThemedTooltip className='pi-z-1000' id='contact-list-tooltip-left' place='left' />\n <CustomThemedTooltip\n className='pi-z-1000'\n id='contact-list-tooltip-back-to-call'\n place='right'\n />\n <CustomThemedTooltip\n className='pi-z-1000'\n id='contact-list-tooltip-call-to-transfer'\n place='left'\n />\n </>\n )\n}\n\ninterface ContactListViewProps {}\n\ninterface CallStartTypes {\n number: string\n}\n"],"names":["_a","useSelector","state","island","isOpen","contactListView","endpoints","users","username","currentUser","_b","useState","loaded","setLoaded","_c","filteredOperators","setFilteredOperators","_d","filteredPhonebookContacts","setFilteredPhonebookContacts","_e","currentContact","setCurrentContact","_f","firstPhonebookLoading","setFirstPhonebookLoading","_g","searchQuery","setSearchQuery","_h","showPhoneNumberTyped","setShowPhoneNumberTyped","relativeRef","useRef","_j","showGradient","setShowGradient","_k","showingUsers","setShowingUsers","dispatch","useDispatch","filteredContacts","useMemo","__spreadArray","debouncedSearchPhonebookContacts","debounce","value","retrievePhonebookContacts","current","filterOperators","textQuery","trim","toLowerCase","operators","Object","values","filter","userEndpoints","extension","find","id","startsWith","includes","name","test","searchPhonebook","phonebookSearchResult","sent","rows","console","error","error_1","isUserEndpointsType","obj","isPhonebookContact","isContactAvailable","mainPresence","useEffect","cancel","useEventListener","data","handleAttendedTransfer","number","eventDispatch","handleScroll","scrollTop","offsetHeight","scrollHeight","addEventListener","removeEventListener","t","useTranslation","mainView","React","createElement","className","Button","variant","onClick","isInsideConferenceList","backToPreviousView","FontAwesomeIcon","icon","faArrowLeft","type","onChange","event","currentTarget","placeholder","autoFocus","spellCheck","Array","from","length","map","_","i","key","style","marginTop","height","ref","ListAvatar","placeHolderIcon","faUser","clickTransferOrConference","faPhone","slice","filteredContact","Fragment","status","faHeadset","mainextension","kind","faBuilding","displayName","getMainPhoneNumber","getTotalPhoneNumbers","count","disabled","setContactListView","faAngleRight","SelectContactNumberView","contact","CustomThemedTooltip","place"],"mappings":"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"}
1
+ {"version":3,"file":"ContactListView.js","sources":["../../../src/components/ContactView/ContactListView.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useEffect, useState, FormEvent, useRef, useMemo } from 'react'\nimport { Button } from '../Button'\nimport { RootState } from '../../store'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { backToPreviousView } from '../../lib/island/island'\nimport {\n faPhone,\n faArrowLeft,\n faUser,\n faBuilding,\n faAngleRight,\n faHeadset,\n} from '@fortawesome/free-solid-svg-icons'\nimport { UserEndpointsTypes } from '../../types'\nimport {\n clickTransferOrConference,\n handleAttendedTransfer,\n isInsideConferenceList,\n} from '../../lib/phone/call'\nimport { Dispatch } from '../../store'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { getMainPhoneNumber, getTotalPhoneNumbers, searchPhonebook } from '../../services/phonebook'\nimport { PhonebookContact } from '../../types/phonebook'\nimport { SelectContactNumberView } from './SelectContactNumberView'\nimport debounce from 'lodash/debounce'\nimport ListAvatar from './ListAvatar'\n\nconst USERS_NUMBER_PER_PAGE = 10\nconst SHOW_LIST_GRADIENT_DISTANCE = 3\n\nexport const ContactListView: FC<ContactListViewProps> = () => {\n const { isOpen, contactListView } = useSelector((state: RootState) => state.island)\n const { endpoints } = useSelector((state: RootState) => state.users)\n const { username } = useSelector((state: RootState) => state.currentUser)\n const [loaded, setLoaded] = useState<boolean>(false)\n const [filteredOperators, setFilteredOperators] = useState<UserEndpointsTypes[]>([])\n const [filteredPhonebookContacts, setFilteredPhonebookContacts] = useState<PhonebookContact[]>([])\n const [currentContact, setCurrentContact] = useState<PhonebookContact>()\n const [firstPhonebookLoading, setFirstPhonebookLoading] = useState(true)\n const [searchQuery, setSearchQuery] = useState('')\n const [showPhoneNumberTyped, setShowPhoneNumberTyped] = useState<boolean>()\n const relativeRef = useRef<HTMLDivElement>(null)\n const [showGradient, setShowGradient] = useState<boolean>(false)\n const [showingUsers, setShowingUsers] = useState<number>(USERS_NUMBER_PER_PAGE)\n const dispatch = useDispatch<Dispatch>()\n const { paused } = useSelector((state: RootState) => state.currentCall)\n\n const filteredContacts = useMemo(() => {\n return [...filteredOperators, ...filteredPhonebookContacts]\n }, [filteredOperators, filteredPhonebookContacts])\n\n // debounce phonebook search\n const debouncedSearchPhonebookContacts = useRef(\n debounce((value: string) => {\n retrievePhonebookContacts(value)\n }, 300), // debounce delay\n ).current\n\n // cleanup the debounce function on unmount\n useEffect(() => {\n return () => {\n debouncedSearchPhonebookContacts.cancel()\n }\n }, [debouncedSearchPhonebookContacts])\n\n function searchQueryChanged(event: FormEvent<HTMLInputElement>) {\n setSearchQuery(event.currentTarget.value)\n debouncedSearchPhonebookContacts(event.currentTarget.value)\n filterOperators(event.currentTarget.value)\n }\n\n function retrieveContacts() {\n filterOperators(searchQuery)\n\n // load phonebook contacts only once\n\n if (firstPhonebookLoading) {\n retrievePhonebookContacts(searchQuery)\n setFirstPhonebookLoading(false)\n }\n }\n\n function filterOperators(textQuery: string = '') {\n textQuery = textQuery.trim().toLowerCase()\n\n if (endpoints) {\n const operators = Object?.values(endpoints).filter(\n (userEndpoints: UserEndpointsTypes) =>\n // Remove the currentUser from the list\n userEndpoints?.username !== username &&\n (userEndpoints?.endpoints?.extension.find((extension) =>\n extension?.id?.toLowerCase()?.startsWith(textQuery),\n ) ||\n userEndpoints?.username?.toLowerCase()?.includes(textQuery) ||\n userEndpoints?.name?.toLowerCase()?.includes(textQuery)),\n )\n setFilteredOperators(operators)\n }\n }\n\n async function retrievePhonebookContacts(textQuery: string = '') {\n setLoaded(false)\n textQuery = textQuery.trim().toLowerCase()\n\n // phone number typed\n\n if (/^[0-9*#+]+$/.test(textQuery)) {\n setShowPhoneNumberTyped(true)\n } else {\n setShowPhoneNumberTyped(false)\n }\n\n // search phonebook\n\n try {\n const phonebookSearchResult = await searchPhonebook(1, textQuery, '')\n setFilteredPhonebookContacts(phonebookSearchResult.rows)\n } catch (error) {\n console.error('Error fetching phonebook:', error)\n }\n setLoaded(true)\n }\n\n useEventListener('phone-island-call-transfer', (data: CallStartTypes) => {\n handleAttendedTransfer(data.number, dispatch)\n eventDispatch('phone-island-call-transfer-opened', {})\n })\n\n // Retrieve\n useEffect(() => {\n if (endpoints && username) {\n retrieveContacts()\n }\n }, [endpoints, username])\n\n useEffect(() => {\n // Handle users list scrolling\n const handleScroll = () => {\n setShowGradient(\n relativeRef.current && relativeRef.current.scrollTop > SHOW_LIST_GRADIENT_DISTANCE\n ? true\n : false,\n )\n // Manage scroll to bottom\n if (\n relativeRef.current &&\n relativeRef.current?.offsetHeight + relativeRef.current?.scrollTop >=\n relativeRef.current?.scrollHeight - 10\n ) {\n // Improve showing users\n setShowingUsers((state) => state + USERS_NUMBER_PER_PAGE)\n }\n }\n // Manage expansion and collapsing\n if (isOpen) {\n relativeRef.current?.addEventListener('scroll', handleScroll)\n } else {\n relativeRef.current?.removeEventListener('scroll', handleScroll)\n }\n return () => relativeRef.current?.removeEventListener('scroll', handleScroll)\n }, [isOpen])\n\n function handleBackClick() {\n if (isInsideConferenceList()) {\n // Close the conference list\n eventDispatch('phone-island-conference-list-close', {})\n }\n // Unhold the call if it was paused during transfer selection\n if (paused) {\n eventDispatch('phone-island-call-unhold', {})\n }\n // Open the call view\n backToPreviousView()\n }\n\n function isUserEndpointsType(obj: any): obj is UserEndpointsTypes {\n return obj && typeof obj === 'object' && 'endpoints' in obj && 'username' in obj\n }\n\n function isPhonebookContact(obj: any): obj is PhonebookContact {\n return obj && typeof obj === 'object' && 'source' in obj && 'name' in obj\n }\n\n function isContactAvailable(mainPresence: string): boolean {\n return ['online', 'voicemail', 'cellphone', 'callforward']?.includes(mainPresence)\n }\n\n function goToSelectNumberView(phonebookContact: PhonebookContact): void {\n setCurrentContact(phonebookContact)\n dispatch.island.setContactListView('selectContactNumber')\n }\n\n const { t } = useTranslation()\n\n const mainView = (\n <div className='pi-relative pi-flex pi-flex-col'>\n {/* Top section */}\n <div className='pi-relative pi-z-50'>\n <div className='pi-flex pi-gap-4'>\n <Button\n variant='transparent'\n onClick={handleBackClick}\n data-tooltip-id='contact-list-tooltip-back-to-call'\n data-tooltip-content={t('Tooltip.Back to call') || ''}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faArrowLeft} />\n </Button>\n <input\n data-stop-propagation={true}\n type='text'\n onChange={searchQueryChanged}\n value={searchQuery}\n placeholder={t('Common.Search contact or phone number') || ''}\n autoFocus\n spellCheck={false}\n className='pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-sm pi-px-5 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]'\n />\n </div>\n </div>\n {/* skeleton loader */}\n {!loaded && (\n <div className='pi-mt-6'>\n {Array.from({ length: 5 }).map((_, i) => (\n <div\n key={i}\n className='pi-animate-pulse pi-flex pi-items-center pi-space-x-4 pi-px-3 pi-py-1'\n >\n <div className='pi-flex pi-items-center pi-justify-center'>\n <div className='pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n <div className='pi-flex pi-flex-col pi-gap-2 pi-w-full'>\n <div className='pi-h-3 pi-w-4/5 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n <div className='pi-h-3 pi-w-1/2 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n <div className='pi-flex pi-items-center pi-justify-center pi-pr-2'>\n <div className='pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700'></div>\n </div>\n </div>\n ))}\n </div>\n )}\n\n {/* contact list */}\n <div className={!loaded ? 'pi-hidden' : ''}>\n {/* List shadow */}\n <div className='pi-z-30 pi-h-6 pi-pointer-events-none pi-bg-transparent pi-mt-7 pi-pr-4'>\n {showGradient && (\n <div className='pi-h-6 pi-w-full pi-bg-gradient-to-b dark:pi-from-black pi-from-gray-100 pi-to-transparent pi-z-100'></div>\n )}\n </div>\n <div style={{ marginTop: '-22px' }} className='pi-flex pi-flex-col pi-gap-7'>\n {/* List section */}\n <div\n style={{ height: '17rem' }}\n ref={relativeRef}\n className='pi-relative pi-w-full pi-flex pi-flex-col pi-gap-1 pi-overflow-y-auto pi-overflow-x-hidden pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-gray-200 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25'\n >\n {/* The custom searched number */}\n {showPhoneNumberTyped && (\n <div className='pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800'>\n <div className='pi-flex pi-items-center pi-gap-4'>\n <ListAvatar placeHolderIcon={faUser} />\n <div>\n <div className='pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium'>\n {t('Common.Phone number entered')}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n {searchQuery}\n </div>\n </div>\n </div>\n <div className='pi-flex pi-gap-3.5'>\n <Button\n onClick={() => clickTransferOrConference(searchQuery, dispatch)}\n variant='green'\n data-tooltip-id='contact-list-tooltip-call-to-transfer'\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n </div>\n </div>\n )}\n {/* Operators and phonebook contacts list */}\n {filteredContacts &&\n filteredContacts.slice(0, showingUsers).map((filteredContact, i) => (\n <div\n key={i}\n className='pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800'\n >\n <div className='pi-flex pi-items-center pi-gap-4'>\n {(() => {\n if (isUserEndpointsType(filteredContact)) {\n return (\n <>\n <ListAvatar\n username={filteredContact?.username}\n status={filteredContact?.mainPresence}\n placeHolderIcon={faHeadset}\n />\n <div>\n <div\n data-stop-propagation={true}\n className={`pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium`}\n >\n {filteredContact.name}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n {filteredContact?.endpoints?.mainextension[0]?.id}\n </div>\n </div>\n </>\n )\n } else if (isPhonebookContact(filteredContact)) {\n return (\n <>\n <ListAvatar\n placeHolderIcon={\n filteredContact?.kind === 'person' ? faUser : faBuilding\n }\n />\n <div>\n <div\n data-stop-propagation={true}\n className='pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium'\n >\n {filteredContact?.displayName || '-'}\n </div>\n <div className='pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300'>\n <span>{getMainPhoneNumber(filteredContact) || '-'}</span>\n {getTotalPhoneNumbers(filteredContact) > 1 && (\n <span className='pi-ml-2'>\n {t('Common.plus_x_others', {\n count: getTotalPhoneNumbers(filteredContact) - 1,\n })}\n </span>\n )}\n </div>\n </div>\n </>\n )\n }\n })()}\n </div>\n <div className='pi-flex pi-gap-3.5'>\n {(() => {\n if (isUserEndpointsType(filteredContact)) {\n return (\n <Button\n onClick={() =>\n isContactAvailable(filteredContact?.mainPresence) &&\n clickTransferOrConference(\n filteredContact?.endpoints?.mainextension[0]?.id,\n dispatch,\n )\n }\n variant='green'\n disabled={!isContactAvailable(filteredContact?.mainPresence)}\n data-tooltip-id={\n isContactAvailable(filteredContact?.mainPresence)\n ? 'contact-list-tooltip-left'\n : ''\n }\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n )\n } else if (isPhonebookContact(filteredContact)) {\n if (getTotalPhoneNumbers(filteredContact) < 2) {\n return (\n <Button\n onClick={() =>\n clickTransferOrConference(\n getMainPhoneNumber(filteredContact),\n dispatch,\n )\n }\n variant='green'\n disabled={getTotalPhoneNumbers(filteredContact) == 0}\n data-tooltip-id={\n getTotalPhoneNumbers(filteredContact) > 0\n ? 'contact-list-tooltip-left'\n : ''\n }\n data-tooltip-content={\n isInsideConferenceList()\n ? t('Conference.Add participant')\n : t('Tooltip.Transfer call')\n }\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faPhone} />\n </Button>\n )\n } else {\n // change view to show contact numbers\n return (\n <Button\n onClick={() => goToSelectNumberView(filteredContact)}\n variant='transparent'\n data-tooltip-id={'contact-list-tooltip-left'}\n data-tooltip-content={t('Tooltip.Select phone number')}\n >\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faAngleRight} />\n </Button>\n )\n }\n }\n })()}\n </div>\n </div>\n ))}\n {filteredContacts.length === 0 && !showPhoneNumberTyped && (\n <p className=' pi-font-medium pi-w-full pi-flex pi-justify-center pi-text-sm'>\n {t('No contacts found')}\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n\n return (\n <>\n {(() => {\n switch (contactListView) {\n case 'main':\n return mainView\n case 'selectContactNumber':\n return <SelectContactNumberView contact={currentContact} />\n default:\n return mainView\n }\n })()}\n <CustomThemedTooltip className='pi-z-1000' id='contact-list-tooltip-left' place='left' />\n <CustomThemedTooltip\n className='pi-z-1000'\n id='contact-list-tooltip-back-to-call'\n place='right'\n />\n <CustomThemedTooltip\n className='pi-z-1000'\n id='contact-list-tooltip-call-to-transfer'\n place='left'\n />\n </>\n )\n}\n\ninterface ContactListViewProps {}\n\ninterface CallStartTypes {\n number: string\n}\n"],"names":["_a","useSelector","state","island","isOpen","contactListView","endpoints","users","username","currentUser","_b","useState","loaded","setLoaded","_c","filteredOperators","setFilteredOperators","_d","filteredPhonebookContacts","setFilteredPhonebookContacts","_e","currentContact","setCurrentContact","_f","firstPhonebookLoading","setFirstPhonebookLoading","_g","searchQuery","setSearchQuery","_h","showPhoneNumberTyped","setShowPhoneNumberTyped","relativeRef","useRef","_j","showGradient","setShowGradient","_k","showingUsers","setShowingUsers","dispatch","useDispatch","paused","currentCall","filteredContacts","useMemo","__spreadArray","debouncedSearchPhonebookContacts","debounce","value","retrievePhonebookContacts","current","filterOperators","textQuery","trim","toLowerCase","operators","Object","values","filter","userEndpoints","extension","find","id","startsWith","includes","name","test","searchPhonebook","phonebookSearchResult","sent","rows","console","error","error_1","isUserEndpointsType","obj","isPhonebookContact","isContactAvailable","mainPresence","useEffect","cancel","useEventListener","data","handleAttendedTransfer","number","eventDispatch","handleScroll","scrollTop","offsetHeight","scrollHeight","addEventListener","removeEventListener","t","useTranslation","mainView","React","createElement","className","Button","variant","onClick","isInsideConferenceList","backToPreviousView","FontAwesomeIcon","icon","faArrowLeft","type","onChange","event","currentTarget","placeholder","autoFocus","spellCheck","Array","from","length","map","_","i","key","style","marginTop","height","ref","ListAvatar","placeHolderIcon","faUser","clickTransferOrConference","faPhone","slice","filteredContact","Fragment","status","faHeadset","mainextension","kind","faBuilding","displayName","getMainPhoneNumber","getTotalPhoneNumbers","count","disabled","setContactListView","faAngleRight","SelectContactNumberView","contact","CustomThemedTooltip","place"],"mappings":"yhDAoCyD,WACjD,IAAAA,EAA8BC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,MAAM,IAA1EC,WAAQC,oBACRC,EAAcL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,mBACtDC,EAAaP,eAAY,SAACC,GAAqB,OAAAA,EAAMO,wBACvDC,EAAsBC,EAAAA,UAAkB,GAAvCC,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAClBI,EAA4CH,EAAAA,SAA+B,IAA1EI,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GACxCG,EAA4DN,EAAAA,SAA6B,IAAxFO,EAAyBD,EAAA,GAAEE,EAA4BF,EAAA,GACxDG,EAAsCT,aAArCU,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAClCG,EAAoDZ,EAAAA,UAAS,GAA5Da,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GAChDG,EAAgCf,EAAAA,SAAS,IAAxCgB,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAkDlB,aAAjDmB,EAAoBD,EAAA,GAAEE,EAAuBF,EAAA,GAC9CG,EAAcC,SAAuB,MACrCC,EAAkCvB,EAAAA,UAAkB,GAAnDwB,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAC9BG,EAAkC1B,EAAAA,SAhBZ,IAgBrB2B,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAC9BG,EAAWC,EAAAA,cACTC,EAAWzC,eAAY,SAACC,GAAqB,OAAAA,EAAMyC,sBAErDC,EAAmBC,EAAAA,SAAQ,WAC/B,OAAWC,EAAAA,cAAAA,EAAAA,cAAA,GAAA/B,GAAsB,GAAAG,GAA0B,EAC7D,GAAG,CAACH,EAAmBG,IAGjB6B,GAAmCd,EAAAA,OACvCe,EAAQ,SAAC,SAACC,GACRC,GAA0BD,EAC5B,GAAG,MACHE,QA0BF,SAASC,GAAgBC,GAGvB,QAHuB,IAAAA,IAAAA,EAAsB,IAC7CA,EAAYA,EAAUC,OAAOC,cAEzBjD,EAAW,CACb,IAAMkD,EAAYC,kBAAA,EAAAA,OAAQC,OAAOpD,GAAWqD,QAC1C,SAACC,iBAEC,OAAAA,eAAAA,EAAepD,YAAaA,KACH,QAAxBR,EAAA4D,eAAAA,EAAetD,iBAAS,IAAAN,OAAA,EAAAA,EAAE6D,UAAUC,MAAK,SAACD,GACzC,IAAA7D,EAAAU,EAAA,eAAAA,EAAa,QAAbV,EAAA6D,aAAA,EAAAA,EAAWE,UAAE,IAAA/D,OAAA,EAAAA,EAAEuD,oCAAeS,WAAWX,EAAU,OAEX,QAAxCvC,EAAyB,UAAzB8C,aAAa,EAAbA,EAAepD,gBAAU,IAAAE,OAAA,EAAAA,EAAA6C,qBAAe,IAAAzC,OAAA,EAAAA,EAAAmD,SAASZ,cACjDjC,EAAmB,UAAnBwC,aAAA,EAAAA,EAAeM,YAAI,IAAAjD,OAAA,EAAAA,EAAEsC,oCAAeU,SAASZ,IAAW,IAE9DrC,EAAqBwC,EACtB,CACF,CAED,SAAeN,GAA0BG,eAAA,IAAAA,IAAAA,EAAsB,qHAC7DxC,GAAU,GACVwC,EAAYA,EAAUC,OAAOC,cAIzB,cAAcY,KAAKd,GACrBtB,GAAwB,GAExBA,GAAwB,oBAMM,6BAAM,CAAA,EAAAqC,EAAeA,gBAAC,EAAGf,EAAW,mBAA5DgB,EAAwBrE,EAAuCsE,OACrEnD,EAA6BkD,EAAsBE,qCAEnDC,QAAQC,MAAM,4BAA6BC,uBAE7C7D,GAAU,aACX,CAsDD,SAAS8D,GAAoBC,GAC3B,OAAOA,GAAsB,iBAARA,GAAoB,cAAeA,GAAO,aAAcA,CAC9E,CAED,SAASC,GAAmBD,GAC1B,OAAOA,GAAsB,iBAARA,GAAoB,WAAYA,GAAO,SAAUA,CACvE,CAED,SAASE,GAAmBC,SAC1B,OAA4D,QAArD/E,EAAA,CAAC,SAAU,YAAa,YAAa,sBAAgB,IAAAA,OAAA,EAAAA,EAAAiE,SAASc,EACtE,CA9HDC,EAAAA,WAAU,WACR,OAAO,WACLjC,GAAiCkC,QACnC,CACF,GAAG,CAAClC,KA4DJmC,mBAAiB,8BAA8B,SAACC,GAC9CC,EAAAA,uBAAuBD,EAAKE,OAAQ7C,GACpC8C,gBAAc,oCAAqC,CAAA,EACrD,IAGAN,EAAAA,WAAU,WACJ1E,GAAaE,IA1DjB4C,GAAgBzB,GAIZH,IACF0B,GAA0BvB,GAC1BF,GAAyB,IAuD7B,GAAG,CAACnB,EAAWE,IAEfwE,EAAAA,WAAU,mBAEFO,EAAe,qBACnBnD,KACEJ,EAAYmB,SAAWnB,EAAYmB,QAAQqC,UA/Gf,IAqH5BxD,EAAYmB,UACS,QAArBnD,EAAAgC,EAAYmB,eAAS,IAAAnD,OAAA,EAAAA,EAAAyF,eAAkC,QAAnB/E,EAAAsB,EAAYmB,eAAO,IAAAzC,OAAA,EAAAA,EAAE8E,qBACvD1E,EAAAkB,EAAYmB,8BAASuC,cAAe,IAGtCnD,GAAgB,SAACrC,GAAU,OAAAA,EA3HL,EA2HkC,GAE5D,EAOA,OALIE,EACmB,QAArBJ,EAAAgC,EAAYmB,eAAS,IAAAnD,GAAAA,EAAA2F,iBAAiB,SAAUJ,GAE3B,QAArB7E,EAAAsB,EAAYmB,eAAS,IAAAzC,GAAAA,EAAAkF,oBAAoB,SAAUL,GAE9C,WAAM,IAAAvF,EAAA,OAAmB,QAAnBA,EAAAgC,EAAYmB,eAAO,IAAAnD,OAAA,EAAAA,EAAE4F,oBAAoB,SAAUL,GAClE,GAAG,CAACnF,IAgCI,IAAAyF,GAAMC,qBAERC,GACJC,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,mCAEbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,uBACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oBACbF,EAAAA,QAAAC,cAACE,EAAAA,OACC,CAAAC,QAAQ,cACRC,QAvCV,WACMC,EAAsBA,0BAExBhB,gBAAc,qCAAsC,CAAA,GAGlD5C,GACF4C,gBAAc,2BAA4B,CAAA,GAG5CiB,EAAAA,oBACD,EA4BiC,kBACR,oCACM,uBAAAV,GAAE,yBAA2B,IAEnDG,UAACC,cAAAO,EAAAA,gBAAgB,CAAAN,UAAU,gBAAgBO,KAAMC,EAAWA,eAE9DV,EAAAA,QAAAC,cAAA,QAAA,CAAA,yBACyB,EACvBU,KAAK,OACLC,SAjJV,SAA4BC,GAC1BjF,EAAeiF,EAAMC,cAAc7D,OACnCF,GAAiC8D,EAAMC,cAAc7D,OACrDG,GAAgByD,EAAMC,cAAc7D,MACrC,EA8ISA,MAAOtB,EACPoF,YAAalB,GAAE,0CAA4C,GAC3DmB,WACA,EAAAC,YAAY,EACZf,UAAU,6aAKdtF,GACAoF,EAAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,WACZgB,MAAMC,KAAK,CAAEC,OAAQ,IAAKC,KAAI,SAACC,EAAGC,GAAM,OACvCvB,EAAA,QAAAC,cAAA,MAAA,CACEuB,IAAKD,EACLrB,UAAU,yEAEVF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,6CACbF,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,wEAEjBF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,0CACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,kEACfF,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,mEAEjBF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qDACbF,UAAKC,cAAA,MAAA,CAAAC,UAAU,wEAGpB,KAKLF,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAYtF,EAAuB,GAAd,aAExBoF,EAAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,2EACZ/D,GACC6D,EAAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,yGAGnBF,UAAKC,cAAA,MAAA,CAAAwB,MAAO,CAAEC,UAAW,SAAWxB,UAAU,gCAE5CF,EAAAA,QAAAC,cAAA,MAAA,CACEwB,MAAO,CAAEE,OAAQ,SACjBC,IAAK5F,EACLkE,UAAU,qUAGTpE,GACCkE,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAU,qIACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,oCACbF,EAAAA,QAAAC,cAAC4B,EAAAA,QAAU,CAACC,gBAAiBC,EAAMA,SACnC/B,UAAAC,cAAA,MAAA,KACED,UAAKC,cAAA,MAAA,CAAAC,UAAU,8DACZL,GAAE,gCAELG,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,iEACZvE,KAIPqE,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,sBACbF,EAAC,QAAAC,cAAAE,UACCE,QAAS,WAAM,OAAA2B,EAAAA,0BAA0BrG,EAAaa,EAAvC,EACf4D,QAAQ,QACQ,kBAAA,wCAEd,uBAAAE,2BACIT,GAAE,8BACFA,GAAE,0BAGRG,UAAAC,cAACO,EAAeA,gBAAA,CAACN,UAAU,gBAAgBO,KAAMwB,EAAOA,aAM/DrF,GACCA,EAAiBsF,MAAM,EAAG5F,GAAc+E,KAAI,SAACc,EAAiBZ,GAAM,OAClEvB,EACE,QAAAC,cAAA,MAAA,CAAAuB,IAAKD,EACLrB,UAAU,qIAEVF,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,oCACZ,mBACC,OAAIvB,GAAoBwD,GAEpBnC,UAAAC,cAAAD,EAAA,QAAAoC,SAAA,KACEpC,EAAAA,QAACC,cAAA4B,UACC,CAAArH,SAAU2H,aAAe,EAAfA,EAAiB3H,SAC3B6H,OAAQF,aAAA,EAAAA,EAAiBpD,aACzB+C,gBAAiBQ,EAASA,YAE5BtC,UAAAC,cAAA,MAAA,KACED,UACyBC,cAAA,MAAA,CAAA,yBAAA,EACvBC,UAAW,8DAEViC,EAAgBjE,MAEnB8B,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAU,iEACgC,QAA5CxF,EAA4B,UAA5ByH,aAAe,EAAfA,EAAiB7H,iBAAW,IAAAN,OAAA,EAAAA,EAAAuI,cAAc,UAAE,IAAA7H,OAAA,EAAAA,EAAEqD,MAK9Cc,GAAmBsD,GAE1BnC,UAAAC,cAAAD,EAAA,QAAAoC,SAAA,KACEpC,EAAC,QAAAC,cAAA4B,WACCC,gBAC4B,YAA1BK,aAAe,EAAfA,EAAiBK,MAAoBT,EAAAA,OAASU,EAAAA,aAGlDzC,UAAAC,cAAA,MAAA,KACED,EAAA,QAAAC,cAAA,MAAA,CAAA,yBACyB,EACvBC,UAAU,+DAETiC,eAAAA,EAAiBO,cAAe,KAEnC1C,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,iEACbF,EAAA,QAAAC,cAAA,OAAA,KAAO0C,EAAAA,mBAAmBR,IAAoB,KAC7CS,EAAAA,qBAAqBT,GAAmB,GACvCnC,EAAM,QAAAC,cAAA,OAAA,CAAAC,UAAU,WACbL,GAAE,uBAAwB,CACzBgD,MAAOD,EAAAA,qBAAqBT,GAAmB,aApBxD,CA6BR,CAnDA,IAqDHnC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,sBAEPvB,GAAoBwD,GAEpBnC,EAAA,QAAAC,cAACE,SAAM,CACLE,QAAS,mBACP,OAAAvB,GAAmBqD,aAAA,EAAAA,EAAiBpD,eACpCiD,EAAAA,0BAC8C,kBAA5ChI,EAAAmI,aAAe,EAAfA,EAAiB7H,gCAAWiI,cAAc,UAAE,IAAA7H,OAAA,EAAAA,EAAEqD,GAC9CvB,EACD,EAEH4D,QAAQ,QACR0C,UAAWhE,GAAmBqD,aAAe,EAAfA,EAAiBpD,cAE7C,kBAAAD,GAAmBqD,aAAA,EAAAA,EAAiBpD,cAChC,4BACA,GAGJ,uBAAAuB,2BACIT,GAAE,8BACFA,GAAE,0BAGRG,UAAAC,cAACO,EAAAA,gBAAe,CAACN,UAAU,gBAAgBO,KAAMwB,aAG5CpD,GAAmBsD,GACxBS,EAAoBA,qBAACT,GAAmB,EAExCnC,EAAA,QAAAC,cAACE,SAAM,CACLE,QAAS,WACP,OAAA2B,EAAyBA,0BACvBW,EAAkBA,mBAACR,GACnB3F,EACD,EAEH4D,QAAQ,QACR0C,SAAmD,GAAzCF,uBAAqBT,GAE7B,kBAAAS,uBAAqBT,GAAmB,EACpC,4BACA,GAGJ,uBAAA7B,2BACIT,GAAE,8BACFA,GAAE,0BAGRG,UAAAC,cAACO,EAAAA,gBAAe,CAACN,UAAU,gBAAgBO,KAAMwB,aAMnDjC,EAAAA,QAACC,cAAAE,EAAMA,OACL,CAAAE,QAAS,WAAM,OA1NzC/E,EA0N8D6G,QAzN9D3F,EAASrC,OAAO4I,mBAAmB,wBA0NT3C,QAAQ,cAAa,kBACJ,4BACK,uBAAAP,GAAE,gCAExBG,UAAAC,cAACO,EAAAA,gBAAe,CAACN,UAAU,gBAAgBO,KAAMuC,uBAnClD,OA4CY,IAA5BpG,EAAiBwE,SAAiBtF,GACjCkE,EAAA,QAAAC,cAAA,IAAA,CAAGC,UAAU,kEACVL,GAAE,0BASjB,OACEG,UAAAC,cAAAD,EAAA,QAAAoC,SAAA,KACG,WACC,OAAQ/H,GACN,IAAK,OAIL,QACE,OAAO0F,GAHT,IAAK,sBACH,OAAOC,EAAAA,sBAACiD,EAAAA,wBAAuB,CAACC,QAAS7H,IAI9C,CATA,GAUD2E,UAAAC,cAACkD,EAAmBA,oBAAA,CAACjD,UAAU,YAAYnC,GAAG,4BAA4BqF,MAAM,SAChFpD,UAAAC,cAACkD,EAAmBA,oBAAA,CAClBjD,UAAU,YACVnC,GAAG,oCACHqF,MAAM,UAERpD,EAAAA,QAAAC,cAACkD,sBACC,CAAAjD,UAAU,YACVnC,GAAG,wCACHqF,MAAM,SAId"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../node_modules/@fortawesome/react-fontawesome/index.es.js");require("../node_modules/react-redux/es/index.js");var r=require("../store/index.js"),s=require("./Button.js"),i=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js");var n=require("../lib/user/default_device.js"),o=require("../lib/webrtc/messages.js"),a=require("../services/astproxy.js"),l=require("../static/outgoing_ringtone.js"),u=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),c=require("../node_modules/i18next/dist/esm/i18next.js"),d=require("../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),p=require("../lib/phone/call.js"),f=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=j(e),h=function(e){var j=e.tooltipPlace,h=void 0===j?"bottom":j,q=f.useSelector((function(e){return e.island})),w=q.view,g=q.sideViewIsVisible,x=q.transcriptionViewIsVisible,b=m.useDispatch(),_=f.useSelector((function(e){return e.currentCall.transferring})),y=f.useSelector((function(e){return e.listen}));return v.default.createElement(v.default.Fragment,null,!(y.isIntrude||y.isListen)&&v.default.createElement(v.default.Fragment,null,v.default.createElement(s.Button,{active:_,onClick:_?function(){p.forceHangupConversation(),r.store.getState().player.audioPlayerPlaying||b.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){n.isWebRTC()?o.sendDTMF("1"):a.sendPhysicalDTMF("1"),b.player.stopAudioPlayer(),_&&setTimeout((function(){b.currentCall.updateTransferring(!1)}),500),i.eventDispatch("phone-island-call-transfer-canceled",{})}),500)}:function(){b.island.setIslandView("transfer"!==w?"transfer":"call"),g&&i.eventDispatch("phone-island-sideview-close",{}),x&&i.eventDispatch("phone-island-transcription-close",{}),i.eventDispatch("phone-island-call-transfer-opened",{})},variant:"default","data-tooltip-id":"tooltip-transfer","data-tooltip-content":"".concat(_?c.t("Tooltip.Cancel transfer"):c.t("Tooltip.Transfer"))},_?v.default.createElement(t.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:u.faArrowDownUpAcrossLine}):v.default.createElement(t.FontAwesomeIcon,{className:"pi-rotate-90 pi-h-6 pi-w-6",icon:u.faArrowRightArrowLeft})),v.default.createElement(d.Tooltip,{className:"pi-z-20",id:"tooltip-transfer",place:h})))};exports.TransferButton=h,exports.default=h;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../node_modules/@fortawesome/react-fontawesome/index.es.js");require("../node_modules/react-redux/es/index.js");var r=require("../store/index.js"),s=require("./Button.js"),n=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js");var i=require("../lib/user/default_device.js"),o=require("../lib/webrtc/messages.js"),a=require("../services/astproxy.js"),l=require("../static/outgoing_ringtone.js"),u=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),c=require("../node_modules/i18next/dist/esm/i18next.js"),d=require("../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),p=require("../lib/phone/call.js"),f=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=h(e),j=function(e){var h=e.tooltipPlace,j=void 0===h?"bottom":h,q=f.useSelector((function(e){return e.island})),w=q.view,g=q.sideViewIsVisible,x=q.transcriptionViewIsVisible,b=m.useDispatch(),_=f.useSelector((function(e){return e.currentCall.transferring})),y=f.useSelector((function(e){return e.listen}));return v.default.createElement(v.default.Fragment,null,!(y.isIntrude||y.isListen)&&v.default.createElement(v.default.Fragment,null,v.default.createElement(s.Button,{active:_,onClick:_?function(){p.forceHangupConversation(),r.store.getState().player.audioPlayerPlaying||b.player.updateStartAudioPlayer({src:l.default,loop:!0}),setTimeout((function(){i.isWebRTC()?o.sendDTMF("1"):a.sendPhysicalDTMF("1"),b.player.stopAudioPlayer(),_&&setTimeout((function(){b.currentCall.updateTransferring(!1)}),500),n.eventDispatch("phone-island-call-transfer-canceled",{})}),500)}:function(){b.island.setIslandView("transfer"!==w?"transfer":"call"),g&&n.eventDispatch("phone-island-sideview-close",{}),x&&n.eventDispatch("phone-island-transcription-close",{}),n.eventDispatch("phone-island-call-hold",{}),n.eventDispatch("phone-island-call-transfer-opened",{})},variant:"default","data-tooltip-id":"tooltip-transfer","data-tooltip-content":"".concat(_?c.t("Tooltip.Cancel transfer"):c.t("Tooltip.Transfer"))},_?v.default.createElement(t.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:u.faArrowDownUpAcrossLine}):v.default.createElement(t.FontAwesomeIcon,{className:"pi-rotate-90 pi-h-6 pi-w-6",icon:u.faArrowRightArrowLeft})),v.default.createElement(d.Tooltip,{className:"pi-z-20",id:"tooltip-transfer",place:j})))};exports.TransferButton=j,exports.default=j;
2
2
  //# sourceMappingURL=TransferButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransferButton.js","sources":["../../src/components/TransferButton.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\nimport React, { type FC } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../store'\nimport { Button } from './Button'\nimport { eventDispatch } from '../utils'\nimport { isWebRTC } from '../lib/user/default_device'\nimport { sendDTMF } from '../lib/webrtc/messages'\nimport { sendPhysicalDTMF } from '../services/astproxy'\nimport outgoingRingtone from '../static/outgoing_ringtone'\nimport { faArrowDownUpAcrossLine, faArrowRightArrowLeft } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { PlacesType, Tooltip } from 'react-tooltip'\nimport { forceHangupConversation} from '../lib/phone/call'\n\ninterface TransferButtonProps {\n tooltipPlace?: PlacesType\n}\n\nexport const TransferButton: FC<TransferButtonProps> = ({ tooltipPlace = 'bottom' }) => {\n const { view, sideViewIsVisible, transcriptionViewIsVisible } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n function transfer() {\n // Open the transfer view\n\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Check if sideView is visible and close it\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n // Check if transcriptionView is visible and close it\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n eventDispatch('phone-island-call-transfer-opened', {})\n }\n\n // Cancels the current transfer through dtmfs\n function cancelTransfer() {\n forceHangupConversation()\n\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n if (isWebRTC()) {\n sendDTMF('1')\n } else {\n sendPhysicalDTMF('1')\n }\n\n dispatch.player.stopAudioPlayer()\n // The workaround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }\n\n return (\n <>\n {!(intrudeListenStatus.isIntrude || intrudeListenStatus.isListen) && (\n <>\n <Button\n active={transferring}\n onClick={transferring ? cancelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip-transfer'\n data-tooltip-content={\n transferring ? `${t('Tooltip.Cancel transfer')}` : `${t('Tooltip.Transfer')}`\n }\n >\n {transferring ? (\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon\n className='pi-rotate-90 pi-h-6 pi-w-6'\n icon={faArrowRightArrowLeft}\n />\n )}\n </Button>\n <Tooltip className='pi-z-20' id='tooltip-transfer' place={tooltipPlace} />\n </>\n )}\n </>\n )\n}\n\nexport default TransferButton\n"],"names":["TransferButton","_a","_b","tooltipPlace","_c","useSelector","state","island","view","sideViewIsVisible","transcriptionViewIsVisible","dispatch","useDispatch","transferring","currentCall","intrudeListenStatus","listen","React","createElement","Fragment","isIntrude","isListen","Button","active","onClick","forceHangupConversation","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","isWebRTC","sendDTMF","sendPhysicalDTMF","stopAudioPlayer","updateTransferring","eventDispatch","setIslandView","variant","concat","t","FontAwesomeIcon","className","icon","faArrowDownUpAcrossLine","faArrowRightArrowLeft","Tooltip","id","place"],"mappings":"o+BAqBaA,EAA0C,SAACC,GAAE,IAAAC,EAAAD,EAAAE,aAAAA,OAAe,IAAAD,EAAA,SAAQA,EACzEE,EAA0DC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,UAAhGC,EAAIJ,EAAAI,KAAEC,EAAiBL,EAAAK,kBAAEC,EAA0BN,EAAAM,2BACrDC,EAAWC,EAAAA,cACXC,EAAeR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,YAAYD,YAAlB,IACjDE,EAAsBV,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMU,MAAN,IAgD9D,OACEC,EAAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,OACKJ,EAAoBK,WAAaL,EAAoBM,WACtDJ,EAAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,KACEF,UAAAC,cAACI,EAAMA,OACL,CAAAC,OAAQV,EACRW,QAASX,EApCnB,WACEY,EAAAA,0BAE+BC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDlB,EAASiB,OAAOE,uBAAuB,CACrCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACLC,EAAQA,WACVC,EAAQA,SAAC,KAETC,EAAgBA,iBAAC,KAGnB1B,EAASiB,OAAOU,kBAEZzB,GACFqB,YAAW,WACTvB,EAASG,YAAYyB,oBAAmB,EACzC,GAAE,KAGLC,gBAAc,sCAAuC,CAAA,EACtD,GAAE,IACJ,EA5CD,WAGE7B,EAASJ,OAAOkC,cAAuB,aAATjC,EAAsB,WAAa,QAE7DC,GACF+B,gBAAc,8BAA+B,CAAA,GAG3C9B,GACF8B,gBAAc,mCAAoC,CAAA,GAEpDA,gBAAc,oCAAqC,CAAA,EACpD,EAwCSE,QAAQ,UACQ,kBAAA,mBAEd,uBAAe,GAAGC,OAAlB9B,EAAkB+B,IAAE,2BAAkCA,EAAAA,EAAE,sBAGzD/B,EACCI,EAAAA,QAAAC,cAAC2B,kBAAgB,CAAAC,UAAU,gBAAgBC,KAAMC,EAAuBA,0BAExE/B,EAAAA,sBAAC4B,kBAAe,CACdC,UAAU,6BACVC,KAAME,2BAIZhC,EAAAA,QAAAC,cAACgC,UAAQ,CAAAJ,UAAU,UAAUK,GAAG,mBAAmBC,MAAOjD,KAKpE"}
1
+ {"version":3,"file":"TransferButton.js","sources":["../../src/components/TransferButton.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\nimport React, { type FC } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../store'\nimport { Button } from './Button'\nimport { eventDispatch } from '../utils'\nimport { isWebRTC } from '../lib/user/default_device'\nimport { sendDTMF } from '../lib/webrtc/messages'\nimport { sendPhysicalDTMF } from '../services/astproxy'\nimport outgoingRingtone from '../static/outgoing_ringtone'\nimport { faArrowDownUpAcrossLine, faArrowRightArrowLeft } from '@fortawesome/free-solid-svg-icons'\nimport { t } from 'i18next'\nimport { PlacesType, Tooltip } from 'react-tooltip'\nimport { forceHangupConversation} from '../lib/phone/call'\n\ninterface TransferButtonProps {\n tooltipPlace?: PlacesType\n}\n\nexport const TransferButton: FC<TransferButtonProps> = ({ tooltipPlace = 'bottom' }) => {\n const { view, sideViewIsVisible, transcriptionViewIsVisible } = useSelector((state: RootState) => state.island)\n const dispatch = useDispatch<Dispatch>()\n const transferring = useSelector((state: RootState) => state.currentCall.transferring)\n const intrudeListenStatus = useSelector((state: RootState) => state.listen)\n\n function transfer() {\n // Open the transfer view\n\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n // Check if sideView is visible and close it\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n // Check if transcriptionView is visible and close it\n if (transcriptionViewIsVisible) {\n eventDispatch('phone-island-transcription-close', {})\n }\n // Hold current call during transfer selection\n eventDispatch('phone-island-call-hold', {})\n eventDispatch('phone-island-call-transfer-opened', {})\n }\n\n // Cancels the current transfer through dtmfs\n function cancelTransfer() {\n forceHangupConversation()\n\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateStartAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n if (isWebRTC()) {\n sendDTMF('1')\n } else {\n sendPhysicalDTMF('1')\n }\n\n dispatch.player.stopAudioPlayer()\n // The workaround to disable transfer because of the wrong conv.connection value from ws\n if (transferring) {\n setTimeout(() => {\n dispatch.currentCall.updateTransferring(false)\n }, 500)\n }\n\n eventDispatch('phone-island-call-transfer-canceled', {})\n }, 500)\n }\n\n return (\n <>\n {!(intrudeListenStatus.isIntrude || intrudeListenStatus.isListen) && (\n <>\n <Button\n active={transferring}\n onClick={transferring ? cancelTransfer : transfer}\n variant='default'\n data-tooltip-id='tooltip-transfer'\n data-tooltip-content={\n transferring ? `${t('Tooltip.Cancel transfer')}` : `${t('Tooltip.Transfer')}`\n }\n >\n {transferring ? (\n <FontAwesomeIcon className='pi-h-6 pi-w-6' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon\n className='pi-rotate-90 pi-h-6 pi-w-6'\n icon={faArrowRightArrowLeft}\n />\n )}\n </Button>\n <Tooltip className='pi-z-20' id='tooltip-transfer' place={tooltipPlace} />\n </>\n )}\n </>\n )\n}\n\nexport default TransferButton\n"],"names":["TransferButton","_a","_b","tooltipPlace","_c","useSelector","state","island","view","sideViewIsVisible","transcriptionViewIsVisible","dispatch","useDispatch","transferring","currentCall","intrudeListenStatus","listen","React","createElement","Fragment","isIntrude","isListen","Button","active","onClick","forceHangupConversation","store","getState","player","audioPlayerPlaying","updateStartAudioPlayer","src","outgoingRingtone","loop","setTimeout","isWebRTC","sendDTMF","sendPhysicalDTMF","stopAudioPlayer","updateTransferring","eventDispatch","setIslandView","variant","concat","t","FontAwesomeIcon","className","icon","faArrowDownUpAcrossLine","faArrowRightArrowLeft","Tooltip","id","place"],"mappings":"o+BAqBaA,EAA0C,SAACC,GAAE,IAAAC,EAAAD,EAAAE,aAAAA,OAAe,IAAAD,EAAA,SAAQA,EACzEE,EAA0DC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,UAAhGC,EAAIJ,EAAAI,KAAEC,EAAiBL,EAAAK,kBAAEC,EAA0BN,EAAAM,2BACrDC,EAAWC,EAAAA,cACXC,EAAeR,eAAY,SAACC,GAAqB,OAAAA,EAAMQ,YAAYD,YAAlB,IACjDE,EAAsBV,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMU,MAAN,IAkD9D,OACEC,EAAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,OACKJ,EAAoBK,WAAaL,EAAoBM,WACtDJ,EAAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,KACEF,UAAAC,cAACI,EAAMA,OACL,CAAAC,OAAQV,EACRW,QAASX,EApCnB,WACEY,EAAAA,0BAE+BC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDlB,EAASiB,OAAOE,uBAAuB,CACrCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACLC,EAAQA,WACVC,EAAQA,SAAC,KAETC,EAAgBA,iBAAC,KAGnB1B,EAASiB,OAAOU,kBAEZzB,GACFqB,YAAW,WACTvB,EAASG,YAAYyB,oBAAmB,EACzC,GAAE,KAGLC,gBAAc,sCAAuC,CAAA,EACtD,GAAE,IACJ,EA9CD,WAGE7B,EAASJ,OAAOkC,cAAuB,aAATjC,EAAsB,WAAa,QAE7DC,GACF+B,gBAAc,8BAA+B,CAAA,GAG3C9B,GACF8B,gBAAc,mCAAoC,CAAA,GAGpDA,gBAAc,yBAA0B,CAAA,GACxCA,gBAAc,oCAAqC,CAAA,EACpD,EAwCSE,QAAQ,UACQ,kBAAA,mBAEd,uBAAe,GAAGC,OAAlB9B,EAAkB+B,IAAE,2BAAkCA,EAAAA,EAAE,sBAGzD/B,EACCI,EAAAA,QAAAC,cAAC2B,kBAAgB,CAAAC,UAAU,gBAAgBC,KAAMC,EAAuBA,0BAExE/B,EAAAA,sBAAC4B,kBAAe,CACdC,UAAU,6BACVC,KAAME,2BAIZhC,EAAAA,QAAAC,cAACgC,UAAQ,CAAAJ,UAAU,UAAUK,GAAG,mBAAmBC,MAAOjD,KAKpE"}
@@ -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");require("../../node_modules/tslib/tslib.es6.js");var n=require("../../_virtual/index6.js"),o=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");n.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,s=e.type,d=null!==(t=((r={})[n.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[n.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[s])&&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(d.alert),o.error&&o.error(d.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){n.__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,r=i.store.select.mediaDevices.audioInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-input-device",{deviceId:o})),o},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null,r=i.store.select.mediaDevices.audioOutputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio output device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-output-device",{deviceId:o})),o},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null,r=i.store.select.mediaDevices.videoInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Video input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-video-input-device",{deviceId:o})),o},exports.getSupportedDevices=function(e){var i,r,t=!1,n=!1,s=!1,d=!1;i=function(){var i={audio:t,audioCap:s,video:n,videoCap:d};o.log&&o.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||d||(d=!0),"audioinput"!==e.kind||s||(s=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(n=!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");require("../../node_modules/tslib/tslib.es6.js");var n=require("../../_virtual/index8.js"),o=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");n.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,s=e.type,d=null!==(t=((r={})[n.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[n.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[s])&&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(d.alert),o.error&&o.error(d.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){n.__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,r=i.store.select.mediaDevices.audioInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-input-device",{deviceId:o})),o},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null,r=i.store.select.mediaDevices.audioOutputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio output device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-output-device",{deviceId:o})),o},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null,r=i.store.select.mediaDevices.videoInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Video input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-video-input-device",{deviceId:o})),o},exports.getSupportedDevices=function(e){var i,r,t=!1,n=!1,s=!1,d=!1;i=function(){var i={audio:t,audioCap:s,video:n,videoCap:d};o.log&&o.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||d||(d=!0),"audioinput"!==e.kind||s||(s=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(n=!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 t=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var e=require("react"),r=require("../../../_virtual/index7.js");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=o(e);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o}function i(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var o,n,a,i,s=[],l=!0,f=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(o=a.call(r)).done)&&(s.push(o.value),s.length!==e);l=!0);}catch(t){f=!0,n=t}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw n}}return s}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||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(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function p(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}var b;try{var y=require("@fortawesome/fontawesome-svg-core/package.json");b=y.version}catch(t){b="undefined"!=typeof process&&process.env.FA_VERSION||"7.0.0"}function m(t){var e=t.beat,r=t.fade,o=t.beatFade,n=t.bounce,a=t.shake,s=t.flash,l=t.spin,u=t.spinPulse,c=t.spinReverse,p=t.pulse,y=t.fixedWidth,m=t.inverse,d=t.border,x=t.listItem,v=t.flip,h=t.size,g=t.rotation,O=t.pull,w=t.swapOpacity,j=t.rotateBy,A=t.widthAuto,I=function(t,e){for(var r=f(t.split("-"),2),o=r[0],n=r[1],a=f(e.split("-"),2),i=a[0],s=a[1],l=o.split("."),u=i.split("."),c=0;c<Math.max(l.length,u.length);c++){var p=l[c]||"0",b=u[c]||"0",y=parseInt(p,10),m=parseInt(b,10);if(y!==m)return y>m}for(var d=0;d<Math.max(l.length,u.length);d++){var x=l[d]||"0",v=u[d]||"0";if(x!==v&&x.length!==v.length)return x.length<v.length}return!(n&&!s)}(b,"7.0.0"),k=i(i(i(i(i(i({"fa-beat":e,"fa-fade":r,"fa-beat-fade":o,"fa-bounce":n,"fa-shake":a,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":u,"fa-pulse":p,"fa-fw":y,"fa-inverse":m,"fa-border":d,"fa-li":x,"fa-flip":!0===v,"fa-flip-horizontal":"horizontal"===v||"both"===v,"fa-flip-vertical":"vertical"===v||"both"===v},"fa-".concat(h),null!=h),"fa-rotate-".concat(g),null!=g&&0!==g),"fa-pull-".concat(O),null!=O),"fa-swap-opacity",w),"fa-rotate-by",I&&j),"fa-width-auto",I&&A);return Object.keys(k).map((function(t){return k[t]?t:null})).filter((function(t){return t}))}function d(t){return e=t,(e-=0)==e?t:(t=t.replace(/[\-_\s]+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))).substr(0,1).toLowerCase()+t.substr(1);var e}var x=["style"];var v=!1;try{v="production"===process.env.NODE_ENV}catch(t){}function h(e){return e&&"object"===c(e)&&e.prefix&&e.iconName&&e.icon?e:t.parse.icon?t.parse.icon(e):null===e?null:e&&"object"===c(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?i({},t,e):{}}var O={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,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,widthAuto:!1},w=n.default.forwardRef((function(e,r){var o=l(l({},O),e),n=o.icon,a=o.mask,i=o.symbol,s=o.className,f=o.title,c=o.titleId,p=o.maskId,b=h(n),y=g("classes",[].concat(u(m(o)),u((s||"").split(" ")))),d=g("transform","string"==typeof o.transform?t.parse.transform(o.transform):o.transform),x=g("mask",h(a)),w=t.icon(b,l(l(l(l({},y),d),x),{},{symbol:i,title:f,titleId:c,maskId:p}));if(!w)return function(){var t;!v&&console&&"function"==typeof console.error&&(t=console).error.apply(t,arguments)}("Could not find icon",b),null;var A=w.abstract,I={ref:r};return Object.keys(o).forEach((function(t){O.hasOwnProperty(t)||(I[t]=o[t])})),j(A[0],I)}));w.displayName="FontAwesomeIcon",w.propTypes={beat:r.exports.bool,border:r.exports.bool,beatFade:r.exports.bool,bounce:r.exports.bool,className:r.exports.string,fade:r.exports.bool,flash:r.exports.bool,mask:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),maskId:r.exports.string,fixedWidth:r.exports.bool,inverse:r.exports.bool,flip:r.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),listItem:r.exports.bool,pull:r.exports.oneOf(["right","left"]),pulse:r.exports.bool,rotation:r.exports.oneOf([0,90,180,270]),rotateBy:r.exports.bool,shake:r.exports.bool,size:r.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:r.exports.bool,spinPulse:r.exports.bool,spinReverse:r.exports.bool,symbol:r.exports.oneOfType([r.exports.bool,r.exports.string]),title:r.exports.string,titleId:r.exports.string,transform:r.exports.oneOfType([r.exports.string,r.exports.object]),swapOpacity:r.exports.bool,widthAuto:r.exports.bool};var j=function t(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof r)return r;var n=(r.children||[]).map((function(r){return t(e,r)})),a=Object.keys(r.attributes||{}).reduce((function(t,e){var o=r.attributes[e];switch(e){case"class":t.attrs.className=o,delete r.attributes.class;break;case"style":t.attrs.style=o.split(";").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,e){var r,o=e.indexOf(":"),n=d(e.slice(0,o)),a=e.slice(o+1).trim();return n.startsWith("webkit")?t[(r=n,r.charAt(0).toUpperCase()+r.slice(1))]=a:t[n]=a,t}),{});break;default:0===e.indexOf("aria-")||0===e.indexOf("data-")?t.attrs[e.toLowerCase()]=o:t.attrs[d(e)]=o}return t}),{attrs:{}}),i=o.style,s=void 0===i?{}:i,f=function(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r={};for(var o in t)if({}.hasOwnProperty.call(t,o)){if(-1!==e.indexOf(o))continue;r[o]=t[o]}return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o<a.length;o++)r=a[o],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}(o,x);return a.attrs.style=l(l({},a.attrs.style),s),e.apply(void 0,[r.tag,l(l({},a.attrs),f)].concat(u(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=w;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var e=require("react"),r=require("../../../_virtual/index6.js");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=o(e);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o}function i(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var o,n,a,i,s=[],l=!0,f=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(o=a.call(r)).done)&&(s.push(o.value),s.length!==e);l=!0);}catch(t){f=!0,n=t}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw n}}return s}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||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(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function p(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}var b;try{var y=require("@fortawesome/fontawesome-svg-core/package.json");b=y.version}catch(t){b="undefined"!=typeof process&&process.env.FA_VERSION||"7.0.0"}function m(t){var e=t.beat,r=t.fade,o=t.beatFade,n=t.bounce,a=t.shake,s=t.flash,l=t.spin,u=t.spinPulse,c=t.spinReverse,p=t.pulse,y=t.fixedWidth,m=t.inverse,d=t.border,x=t.listItem,v=t.flip,h=t.size,g=t.rotation,O=t.pull,w=t.swapOpacity,j=t.rotateBy,A=t.widthAuto,I=function(t,e){for(var r=f(t.split("-"),2),o=r[0],n=r[1],a=f(e.split("-"),2),i=a[0],s=a[1],l=o.split("."),u=i.split("."),c=0;c<Math.max(l.length,u.length);c++){var p=l[c]||"0",b=u[c]||"0",y=parseInt(p,10),m=parseInt(b,10);if(y!==m)return y>m}for(var d=0;d<Math.max(l.length,u.length);d++){var x=l[d]||"0",v=u[d]||"0";if(x!==v&&x.length!==v.length)return x.length<v.length}return!(n&&!s)}(b,"7.0.0"),k=i(i(i(i(i(i({"fa-beat":e,"fa-fade":r,"fa-beat-fade":o,"fa-bounce":n,"fa-shake":a,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":u,"fa-pulse":p,"fa-fw":y,"fa-inverse":m,"fa-border":d,"fa-li":x,"fa-flip":!0===v,"fa-flip-horizontal":"horizontal"===v||"both"===v,"fa-flip-vertical":"vertical"===v||"both"===v},"fa-".concat(h),null!=h),"fa-rotate-".concat(g),null!=g&&0!==g),"fa-pull-".concat(O),null!=O),"fa-swap-opacity",w),"fa-rotate-by",I&&j),"fa-width-auto",I&&A);return Object.keys(k).map((function(t){return k[t]?t:null})).filter((function(t){return t}))}function d(t){return e=t,(e-=0)==e?t:(t=t.replace(/[\-_\s]+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))).substr(0,1).toLowerCase()+t.substr(1);var e}var x=["style"];var v=!1;try{v="production"===process.env.NODE_ENV}catch(t){}function h(e){return e&&"object"===c(e)&&e.prefix&&e.iconName&&e.icon?e:t.parse.icon?t.parse.icon(e):null===e?null:e&&"object"===c(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?i({},t,e):{}}var O={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,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,widthAuto:!1},w=n.default.forwardRef((function(e,r){var o=l(l({},O),e),n=o.icon,a=o.mask,i=o.symbol,s=o.className,f=o.title,c=o.titleId,p=o.maskId,b=h(n),y=g("classes",[].concat(u(m(o)),u((s||"").split(" ")))),d=g("transform","string"==typeof o.transform?t.parse.transform(o.transform):o.transform),x=g("mask",h(a)),w=t.icon(b,l(l(l(l({},y),d),x),{},{symbol:i,title:f,titleId:c,maskId:p}));if(!w)return function(){var t;!v&&console&&"function"==typeof console.error&&(t=console).error.apply(t,arguments)}("Could not find icon",b),null;var A=w.abstract,I={ref:r};return Object.keys(o).forEach((function(t){O.hasOwnProperty(t)||(I[t]=o[t])})),j(A[0],I)}));w.displayName="FontAwesomeIcon",w.propTypes={beat:r.exports.bool,border:r.exports.bool,beatFade:r.exports.bool,bounce:r.exports.bool,className:r.exports.string,fade:r.exports.bool,flash:r.exports.bool,mask:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),maskId:r.exports.string,fixedWidth:r.exports.bool,inverse:r.exports.bool,flip:r.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),listItem:r.exports.bool,pull:r.exports.oneOf(["right","left"]),pulse:r.exports.bool,rotation:r.exports.oneOf([0,90,180,270]),rotateBy:r.exports.bool,shake:r.exports.bool,size:r.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:r.exports.bool,spinPulse:r.exports.bool,spinReverse:r.exports.bool,symbol:r.exports.oneOfType([r.exports.bool,r.exports.string]),title:r.exports.string,titleId:r.exports.string,transform:r.exports.oneOfType([r.exports.string,r.exports.object]),swapOpacity:r.exports.bool,widthAuto:r.exports.bool};var j=function t(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof r)return r;var n=(r.children||[]).map((function(r){return t(e,r)})),a=Object.keys(r.attributes||{}).reduce((function(t,e){var o=r.attributes[e];switch(e){case"class":t.attrs.className=o,delete r.attributes.class;break;case"style":t.attrs.style=o.split(";").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,e){var r,o=e.indexOf(":"),n=d(e.slice(0,o)),a=e.slice(o+1).trim();return n.startsWith("webkit")?t[(r=n,r.charAt(0).toUpperCase()+r.slice(1))]=a:t[n]=a,t}),{});break;default:0===e.indexOf("aria-")||0===e.indexOf("data-")?t.attrs[e.toLowerCase()]=o:t.attrs[d(e)]=o}return t}),{attrs:{}}),i=o.style,s=void 0===i?{}:i,f=function(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r={};for(var o in t)if({}.hasOwnProperty.call(t,o)){if(-1!==e.indexOf(o))continue;r[o]=t[o]}return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o<a.length;o++)r=a[o],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}(o,x);return a.attrs.style=l(l({},a.attrs.style),s),e.apply(void 0,[r.tag,l(l({},a.attrs),f)].concat(u(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=w;
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"),t=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var s=r.__require();e.__module.exports=t.__require()(s.isElement,!0)}else e.__module.exports=i.__require()();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e.exports}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/index6.js"),r=require("./node_modules/react-is/index.js"),t=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var s=r.__require();e.__module.exports=t.__require()(s.isElement,!0)}else e.__module.exports=i.__require()();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e.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.__module,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.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.__module,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.exports;var i};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="@nethesis/phone-island",s="Nethesis",t="0.18.9",r="NethVoice CTI Phone Island",i=["nethserver","nethesis","nethvoice","phone","island"],o="https://github.com/nethesis/phone-island#readme",n="https://github.com/nethesis/dev/issues",p={type:"git",url:"https://github.com/nethesis/phone-island.git"},l=["dist"],a="dist/index.js",d="dist/index.d.ts",c={access:"public"},u={main:!1,types:!1,default:{distDir:"./dist-widget"}},m={"@fortawesome/free-solid-svg-icons":"^6.2.1","@fortawesome/react-fontawesome":"^0.2.0","@headlessui/react":"^2.2.8","@nethesis/nethesis-light-svg-icons":"github:nethesis/Font-Awesome#ns-light","@nethesis/nethesis-solid-svg-icons":"github:nethesis/Font-Awesome#ns-solid","@rematch/core":"^2.2.0","@rematch/immer":"^2.1.3","@rematch/select":"^3.1.2","@swc/helpers":"^0.4.12","@testing-library/jest-dom":"^5.11.4","@testing-library/user-event":"^12.1.10","framer-motion":"^12.0.0",i18next:"^22.4.9","i18next-browser-languagedetector":"^7.0.1","i18next-http-backend":"^2.1.1","js-base64":"^3.7.3",lodash:"^4.17.21","mic-check":"^1.1.0",react:"^18.2.0","react-dom":"^18.2.0","react-i18next":"^12.1.5","react-moment":"^1.1.2","react-redux":"^8.0.5","react-scripts":"^5.0.1","react-tooltip":"^5.28.0","socket.io-client":"^4.5.3","styled-components":"^5.3.6","webrtc-adapter":"^9.0.1"},b={start:"react-scripts start",dev:"storybook dev -p 6006",test:"react-scripts test",watch:"rollup -w -c","watch:css":"npx tailwindcss -o ./dist/index.css --watch",build:"rm -rf ./dist && npm run build:css && rollup -c","build:css":"NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:win":"del /s /q dist && npm run build:wincss && rollup -c --configPlugin typescript","build:wincss":"set NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:widget":"rm -rf ./dist-widget && parcel build ./src/index.widget.tsx --no-source-maps","serve:widget":"rm -rf ./widget-example/static/* && cp -rf ./dist-widget/* ./widget-example/static && npx http-server ./widget-example -o -c-1","build-storybook":"storybook build -s public",release:"npm publish","release:widget":"np patch",format:"prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",bump:"node bump-version.js","build-pack":"npm run bump && npm run build && npm pack","build-pack:win":"npm run bump && npm run build:win && npm pack","publish:minor":"npm version minor --allow-same-version -m v%s --force","publish:major":"npm version major --allow-same-version -m v%s --force","publish:patch":"npm version patch --allow-same-version -m v%s --force",preversion:"rm -rf dist-widget && npm run build:widget && git add dist-widget/index.widget.js dist-widget/index.widget.css && git commit -m 'chore(widget): release for jsDelivr'",postversion:"git push origin main --tags","revert-bump":"node revert-bump.js"},g={production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]},h={"@babel/core":"^7.20.2","@babel/preset-env":"^7.20.2","@parcel/transformer-typescript-types":"^2.8.0","@rollup/plugin-babel":"^6.0.2","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^9.0.2","@storybook/addon-actions":"7.6.23","@storybook/addon-essentials":"7.6.23","@storybook/addon-interactions":"7.6.23","@storybook/addon-links":"7.6.23","@storybook/node-logger":"7.6.20","@storybook/preset-create-react-app":"7.6.21","@storybook/react":"7.6.20","@storybook/react-webpack5":"^7.6.20","@storybook/testing-library":"^0.0.13","@testing-library/react":"^13.4.0","@types/audioworklet":"^0.0.95","@types/jest":"^29.2.2","@types/react":"^18.0.26","@types/react-dom":"^18.0.9","@types/styled-components":"^5.1.26",autoprefixer:"^10.4.20",babel:"^6.23.0","babel-plugin-named-exports-order":"^0.0.2",buffer:"^5.7.1","css-loader":"^7.1.2","eslint-plugin-storybook":"^0.9.0",np:"^7.6.2",parcel:"^2.0.0",postcss:"^8.4.49","postcss-loader":"^8.1.1",prettier:"^2.8.0","prop-types":"^15.8.1",rollup:"^2.79.1","rollup-plugin-generate-package-json":"^3.2.0","rollup-plugin-postcss":"^4.0.2",storybook:"^7.6.20","style-loader":"^4.0.0","tailwind-scrollbar":"^3.1.0",tailwindcss:"^3.4.16",typescript:"^4.8.4","webm-duration-fix":"^1.0.4",webpack:"^5.74.0"},w={"nth-check":"^2.0.1"},x="GPL-3.0-or-later",y={name:e,author:s,version:t,description:r,keywords:i,homepage:o,bugs:n,repository:p,private:!1,files:l,main:a,types:d,publishConfig:c,targets:u,dependencies:m,scripts:b,browserslist:g,devDependencies:h,overrides:w,license:x};exports.author=s,exports.browserslist=g,exports.bugs=n,exports.default=y,exports.dependencies=m,exports.description=r,exports.devDependencies=h,exports.files=l,exports.homepage=o,exports.keywords=i,exports.license=x,exports.main=a,exports.name=e,exports.overrides=w,exports.publishConfig=c,exports.repository=p,exports.scripts=b,exports.targets=u,exports.types=d,exports.version=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="@nethesis/phone-island",s="Nethesis",t="0.18.10",r="NethVoice CTI Phone Island",i=["nethserver","nethesis","nethvoice","phone","island"],o="https://github.com/nethesis/phone-island#readme",n="https://github.com/nethesis/dev/issues",p={type:"git",url:"https://github.com/nethesis/phone-island.git"},l=["dist"],a="dist/index.js",d="dist/index.d.ts",c={access:"public"},u={main:!1,types:!1,default:{distDir:"./dist-widget"}},m={"@fortawesome/free-solid-svg-icons":"^6.2.1","@fortawesome/react-fontawesome":"^0.2.0","@headlessui/react":"^2.2.8","@nethesis/nethesis-light-svg-icons":"github:nethesis/Font-Awesome#ns-light","@nethesis/nethesis-solid-svg-icons":"github:nethesis/Font-Awesome#ns-solid","@rematch/core":"^2.2.0","@rematch/immer":"^2.1.3","@rematch/select":"^3.1.2","@swc/helpers":"^0.4.12","@testing-library/jest-dom":"^5.11.4","@testing-library/user-event":"^12.1.10","framer-motion":"^12.0.0",i18next:"^22.4.9","i18next-browser-languagedetector":"^7.0.1","i18next-http-backend":"^2.1.1","js-base64":"^3.7.3",lodash:"^4.17.21","mic-check":"^1.1.0",react:"^18.2.0","react-dom":"^18.2.0","react-i18next":"^12.1.5","react-moment":"^1.1.2","react-redux":"^8.0.5","react-scripts":"^5.0.1","react-tooltip":"^5.28.0","socket.io-client":"^4.5.3","styled-components":"^5.3.6","webrtc-adapter":"^9.0.1"},b={start:"react-scripts start",dev:"storybook dev -p 6006",test:"react-scripts test",watch:"rollup -w -c","watch:css":"npx tailwindcss -o ./dist/index.css --watch",build:"rm -rf ./dist && npm run build:css && rollup -c","build:css":"NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:win":"del /s /q dist && npm run build:wincss && rollup -c --configPlugin typescript","build:wincss":"set NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:widget":"rm -rf ./dist-widget && parcel build ./src/index.widget.tsx --no-source-maps","serve:widget":"rm -rf ./widget-example/static/* && cp -rf ./dist-widget/* ./widget-example/static && npx http-server ./widget-example -o -c-1","build-storybook":"storybook build -s public",release:"npm publish","release:widget":"np patch",format:"prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",bump:"node bump-version.js","build-pack":"npm run bump && npm run build && npm pack","build-pack:win":"npm run bump && npm run build:win && npm pack","publish:minor":"npm version minor --allow-same-version -m v%s --force","publish:major":"npm version major --allow-same-version -m v%s --force","publish:patch":"npm version patch --allow-same-version -m v%s --force",preversion:"rm -rf dist-widget && npm run build:widget && git add dist-widget/index.widget.js dist-widget/index.widget.css && git commit -m 'chore(widget): release for jsDelivr'",postversion:"git push origin main --tags","revert-bump":"node revert-bump.js"},g={production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]},h={"@babel/core":"^7.20.2","@babel/preset-env":"^7.20.2","@parcel/transformer-typescript-types":"^2.8.0","@rollup/plugin-babel":"^6.0.2","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^9.0.2","@storybook/addon-actions":"7.6.23","@storybook/addon-essentials":"7.6.23","@storybook/addon-interactions":"7.6.23","@storybook/addon-links":"7.6.23","@storybook/node-logger":"7.6.20","@storybook/preset-create-react-app":"7.6.21","@storybook/react":"7.6.20","@storybook/react-webpack5":"^7.6.20","@storybook/testing-library":"^0.0.13","@testing-library/react":"^13.4.0","@types/audioworklet":"^0.0.95","@types/jest":"^29.2.2","@types/react":"^18.0.26","@types/react-dom":"^18.0.9","@types/styled-components":"^5.1.26",autoprefixer:"^10.4.20",babel:"^6.23.0","babel-plugin-named-exports-order":"^0.0.2",buffer:"^5.7.1","css-loader":"^7.1.2","eslint-plugin-storybook":"^0.9.0",np:"^7.6.2",parcel:"^2.0.0",postcss:"^8.4.49","postcss-loader":"^8.1.1",prettier:"^2.8.0","prop-types":"^15.8.1",rollup:"^2.79.1","rollup-plugin-generate-package-json":"^3.2.0","rollup-plugin-postcss":"^4.0.2",storybook:"^7.6.20","style-loader":"^4.0.0","tailwind-scrollbar":"^3.1.0",tailwindcss:"^3.4.16",typescript:"^4.8.4","webm-duration-fix":"^1.0.4",webpack:"^5.74.0"},w={"nth-check":"^2.0.1"},x="GPL-3.0-or-later",y={name:e,author:s,version:t,description:r,keywords:i,homepage:o,bugs:n,repository:p,private:!1,files:l,main:a,types:d,publishConfig:c,targets:u,dependencies:m,scripts:b,browserslist:g,devDependencies:h,overrides:w,license:x};exports.author=s,exports.browserslist=g,exports.bugs=n,exports.default=y,exports.dependencies=m,exports.description=r,exports.devDependencies=h,exports.files=l,exports.homepage=o,exports.keywords=i,exports.license=x,exports.main=a,exports.name=e,exports.overrides=w,exports.publishConfig=c,exports.repository=p,exports.scripts=b,exports.targets=u,exports.types=d,exports.version=t;
2
2
  //# sourceMappingURL=package.json.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("../store/index.js");exports.answerPhysical=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o,i,c;return e.__generator(this,(function(u){switch(u.label){case 0:if(r=t.store.getState().currentUser.default_device,void 0===((null==r?void 0:r.id)||(null==r?void 0:r.exten)))return[3,4];s={endpointId:(null==r?void 0:r.exten)||(null==r?void 0:r.id),endpointType:"extension"},u.label=1;case 1:return u.trys.push([1,3,,4]),n=t.store.getState().fetchDefaults,a=n.baseURL,o=n.headers,[4,fetch("".concat(a,"/astproxy/answer"),{method:"POST",headers:e.__assign({},o),body:JSON.stringify(s)})];case 2:if(!(i=u.sent()).ok)throw new Error(i.statusText);return[2,!0];case 3:throw c=u.sent(),new Error(c);case 4:return[2]}}))}))},exports.attendedTransfer=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/atxfer"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.blindTransfer=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/blindtransfer"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.callPhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u;return e.__generator(this,(function(h){switch(h.label){case 0:s=t.store.getState().currentCall.ownerExtension,n={endpointId:s,endpointTpe:"extension",number:r},h.label=1;case 1:return h.trys.push([1,3,,4]),a=t.store.getState().fetchDefaults,o=a.baseURL,i=a.headers,[4,fetch("".concat(o,"/astproxy/call"),{method:"POST",headers:e.__assign({},i),body:JSON.stringify(n)})];case 2:if(!(c=h.sent()).ok)throw new Error(c.statusText);return[2,!0];case 3:throw u=h.sent(),new Error(u);case 4:return[2]}}))}))},exports.endConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/end_conf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.forceHangup=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/force_hangup"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.getAllExtensions=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,3,,4]),r=t.store.getState().fetchDefaults,s=r.baseURL,n=r.headers,[4,fetch("".concat(s,"/astproxy/extensions"),{headers:e.__assign({},n)})];case 1:if(!(a=i.sent()).ok)throw new Error(a.statusText);return[4,a.json()];case 2:return[2,i.sent()];case 3:throw o=i.sent(),new Error(o);case 4:return[2]}}))}))},exports.hangupConversation=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/hangup"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.hangupPhysical=function(){var r;return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d,f,l,_;return e.__generator(this,(function(w){switch(w.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o=t.store.getState().currentUser,c="/astproxy/",u="",""!==(null==(i={convid:a,endpointId:n,endpointType:"extension"})?void 0:i.convid)&&void 0!==(null==i?void 0:i.convid)?u="hangup":(u="cancel",i.endpointId=null===(r=null==o?void 0:o.default_device)||void 0===r?void 0:r.id),w.label=1;case 1:return w.trys.push([1,3,,4]),h=t.store.getState().fetchDefaults,d=h.baseURL,f=h.headers,[4,fetch("".concat(d)+"".concat(c)+"".concat(u),{method:"POST",headers:e.__assign({},f),body:JSON.stringify(i)})];case 2:if(!(l=w.sent()).ok)throw new Error(l.statusText);return[2,!0];case 3:throw _=w.sent(),new Error(_);case 4:return[2]}}))}))},exports.hangupPhysicalRecordingCall=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o,i,c,u,h;return e.__generator(this,(function(d){switch(d.label){case 0:r=t.store.getState().physicalRecorder,s=r.ownerExtension,n=r.conversationId,a={convid:n,endpointId:s,endpointType:"extension"},d.label=1;case 1:return d.trys.push([1,3,,4]),o=t.store.getState().fetchDefaults,i=o.baseURL,c=o.headers,[4,fetch("".concat(i,"/astproxy/hangup"),{method:"POST",headers:e.__assign({},c),body:JSON.stringify(a)})];case 2:if(!(u=d.sent()).ok)throw new Error(u.statusText);return[2,!0];case 3:throw h=d.sent(),new Error(h);case 4:return[2]}}))}))},exports.hangupUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/hangup_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.joinMyConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/join_myconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.mutePhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d;return e.__generator(this,(function(f){switch(f.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o={convid:a,endpointId:n},f.label=1;case 1:return f.trys.push([1,3,,4]),i=t.store.getState().fetchDefaults,c=i.baseURL,u=i.headers,[4,fetch("".concat(c,"/astproxy/toggle_mute"),{method:"POST",headers:e.__assign({},u),body:JSON.stringify(o)})];case 2:if(!(h=f.sent()).ok)throw new Error(h.statusText);return t.store.dispatch.currentCall.updateCurrentCall({muted:r}),[2,!0];case 3:throw d=f.sent(),new Error(d);case 4:return[2]}}))}))},exports.muteUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/mute_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.parkConversation=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/park"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.pausePhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h;return e.__generator(this,(function(d){switch(d.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,s.conversationId,a={endpointId:n},d.label=1;case 1:return d.trys.push([1,3,,4]),o=t.store.getState().fetchDefaults,i=o.baseURL,c=o.headers,[4,fetch("".concat(i,"/astproxy/toggle_hold"),{method:"POST",headers:e.__assign({},c),body:JSON.stringify(a)})];case 2:if(!(u=d.sent()).ok)throw new Error(u.statusText);return t.store.dispatch.currentCall.updateCurrentCall({paused:r}),[2,!0];case 3:throw h=d.sent(),new Error(h);case 4:return[2]}}))}))},exports.sendPhysicalDTMF=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d;return e.__generator(this,(function(f){switch(f.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o={convid:a,endpointId:n,tone:r.toString()},f.label=1;case 1:return f.trys.push([1,3,,4]),i=t.store.getState().fetchDefaults,c=i.baseURL,u=i.headers,[4,fetch("".concat(c,"/astproxy/dtmf"),{method:"POST",headers:e.__assign({},u),body:JSON.stringify(o)})];case 2:if(!(h=f.sent()).ok)throw new Error(h.statusText);return[2,!0];case 3:throw d=f.sent(),new Error(d);case 4:return[2]}}))}))},exports.startConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/start_conf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.toggleRecord=function(r,s){return e.__awaiter(this,void 0,void 0,(function(){var n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),n=t.store.getState().fetchDefaults,a=n.baseURL,o=n.headers,[4,fetch("".concat(a,"/astproxy/").concat(r),{method:"POST",headers:e.__assign({},o),body:JSON.stringify(s)})];case 1:if(!(i=c.sent()).ok)throw new Error(i.statusText);return[2,!0];case 2:throw c.sent();case 3:return[2]}}))}))},exports.unmuteUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/unmute_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("../store/index.js");exports.answerPhysical=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o,i,c;return e.__generator(this,(function(u){switch(u.label){case 0:if(r=t.store.getState().currentUser.default_device,void 0===((null==r?void 0:r.id)||(null==r?void 0:r.exten)))return[3,4];s={endpointId:(null==r?void 0:r.exten)||(null==r?void 0:r.id),endpointType:"extension"},u.label=1;case 1:return u.trys.push([1,3,,4]),n=t.store.getState().fetchDefaults,a=n.baseURL,o=n.headers,[4,fetch("".concat(a,"/astproxy/answer"),{method:"POST",headers:e.__assign({},o),body:JSON.stringify(s)})];case 2:if(!(i=u.sent()).ok)throw new Error(i.statusText);return[2,!0];case 3:throw c=u.sent(),new Error(c);case 4:return[2]}}))}))},exports.attendedTransfer=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/atxfer"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.blindTransfer=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/blindtransfer"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.callPhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u;return e.__generator(this,(function(h){switch(h.label){case 0:s=t.store.getState().currentCall.ownerExtension,n={endpointId:s,endpointTpe:"extension",number:r},h.label=1;case 1:return h.trys.push([1,3,,4]),a=t.store.getState().fetchDefaults,o=a.baseURL,i=a.headers,[4,fetch("".concat(o,"/astproxy/call"),{method:"POST",headers:e.__assign({},i),body:JSON.stringify(n)})];case 2:if(!(c=h.sent()).ok)throw new Error(c.statusText);return[2,!0];case 3:throw u=h.sent(),new Error(u);case 4:return[2]}}))}))},exports.endConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/end_conf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.forceHangup=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/force_hangup"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.getAllExtensions=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,3,,4]),r=t.store.getState().fetchDefaults,s=r.baseURL,n=r.headers,[4,fetch("".concat(s,"/astproxy/extensions"),{headers:e.__assign({},n)})];case 1:if(!(a=i.sent()).ok)throw new Error(a.statusText);return[4,a.json()];case 2:return[2,i.sent()];case 3:throw o=i.sent(),new Error(o);case 4:return[2]}}))}))},exports.hangupConversation=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/hangup"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.hangupPhysical=function(){var r;return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d,f,l,_;return e.__generator(this,(function(w){switch(w.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o=t.store.getState().currentUser,c="/astproxy/",u="",""!==(null==(i={convid:a,endpointId:n,endpointType:"extension"})?void 0:i.convid)&&void 0!==(null==i?void 0:i.convid)?u="hangup":(u="cancel",i.endpointId=null===(r=null==o?void 0:o.default_device)||void 0===r?void 0:r.id),w.label=1;case 1:return w.trys.push([1,3,,4]),h=t.store.getState().fetchDefaults,d=h.baseURL,f=h.headers,[4,fetch("".concat(d)+"".concat(c)+"".concat(u),{method:"POST",headers:e.__assign({},f),body:JSON.stringify(i)})];case 2:if(!(l=w.sent()).ok)throw new Error(l.statusText);return[2,!0];case 3:throw _=w.sent(),new Error(_);case 4:return[2]}}))}))},exports.hangupPhysicalRecordingCall=function(){return e.__awaiter(this,void 0,void 0,(function(){var r,s,n,a,o,i,c,u,h;return e.__generator(this,(function(d){switch(d.label){case 0:r=t.store.getState().physicalRecorder,s=r.ownerExtension,n=r.conversationId,a={convid:n,endpointId:s,endpointType:"extension"},d.label=1;case 1:return d.trys.push([1,3,,4]),o=t.store.getState().fetchDefaults,i=o.baseURL,c=o.headers,[4,fetch("".concat(i,"/astproxy/hangup"),{method:"POST",headers:e.__assign({},c),body:JSON.stringify(a)})];case 2:if(!(u=d.sent()).ok)throw new Error(u.statusText);return[2,!0];case 3:throw h=d.sent(),new Error(h);case 4:return[2]}}))}))},exports.hangupUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/hangup_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.joinMyConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/join_myconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.mutePhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d;return e.__generator(this,(function(f){switch(f.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o={convid:a,endpointId:n},f.label=1;case 1:return f.trys.push([1,3,,4]),i=t.store.getState().fetchDefaults,c=i.baseURL,u=i.headers,[4,fetch("".concat(c,"/astproxy/toggle_mute"),{method:"POST",headers:e.__assign({},u),body:JSON.stringify(o)})];case 2:if(!(h=f.sent()).ok)throw new Error(h.statusText);return t.store.dispatch.currentCall.updateCurrentCall({muted:r}),[2,!0];case 3:throw d=f.sent(),new Error(d);case 4:return[2]}}))}))},exports.muteUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/mute_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.parkConversation=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/park"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=c.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i=c.sent(),new Error(i);case 3:return[2]}}))}))},exports.pausePhysical=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d;return e.__generator(this,(function(f){switch(f.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o={convid:a,endpointId:n},f.label=1;case 1:return f.trys.push([1,3,,4]),i=t.store.getState().fetchDefaults,c=i.baseURL,u=i.headers,[4,fetch("".concat(c,"/astproxy/toggle_hold"),{method:"POST",headers:e.__assign({},u),body:JSON.stringify(o)})];case 2:if(!(h=f.sent()).ok)throw new Error(h.statusText);return t.store.dispatch.currentCall.updateCurrentCall({paused:r}),[2,!0];case 3:throw d=f.sent(),new Error(d);case 4:return[2]}}))}))},exports.sendPhysicalDTMF=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o,i,c,u,h,d;return e.__generator(this,(function(f){switch(f.label){case 0:s=t.store.getState().currentCall,n=s.ownerExtension,a=s.conversationId,o={convid:a,endpointId:n,tone:r.toString()},f.label=1;case 1:return f.trys.push([1,3,,4]),i=t.store.getState().fetchDefaults,c=i.baseURL,u=i.headers,[4,fetch("".concat(c,"/astproxy/dtmf"),{method:"POST",headers:e.__assign({},u),body:JSON.stringify(o)})];case 2:if(!(h=f.sent()).ok)throw new Error(h.statusText);return[2,!0];case 3:throw d=f.sent(),new Error(d);case 4:return[2]}}))}))},exports.startConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/start_conf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))},exports.toggleRecord=function(r,s){return e.__awaiter(this,void 0,void 0,(function(){var n,a,o,i;return e.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),n=t.store.getState().fetchDefaults,a=n.baseURL,o=n.headers,[4,fetch("".concat(a,"/astproxy/").concat(r),{method:"POST",headers:e.__assign({},o),body:JSON.stringify(s)})];case 1:if(!(i=c.sent()).ok)throw new Error(i.statusText);return[2,!0];case 2:throw c.sent();case 3:return[2]}}))}))},exports.unmuteUserConf=function(r){return e.__awaiter(this,void 0,void 0,(function(){var s,n,a,o;return e.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),s=t.store.getState().fetchDefaults,n=s.baseURL,a=s.headers,[4,fetch("".concat(n,"/astproxy/unmute_userconf"),{method:"POST",headers:e.__assign({},a),body:JSON.stringify(r)})];case 1:if(!(o=i.sent()).ok)throw new Error(o.statusText);return[2,!0];case 2:throw i.sent();case 3:return[2]}}))}))};
2
2
  //# sourceMappingURL=astproxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"astproxy.js","sources":["../../src/services/astproxy.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { store } from '../store'\nimport { ExtensionsTypes, TransferTypes } from '../types'\nimport { useSelector } from 'react-redux'\n\n/**\n * Get all extensions\n */\nexport async function getAllExtensions(): Promise<ExtensionsTypes> {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/extensions`, {\n headers: { ...headers },\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n const data = await response.json()\n return data\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Start blind transfer\n */\nexport async function blindTransfer(body: TransferTypes) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/blindtransfer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Start attended transfer\n */\nexport async function attendedTransfer(body: TransferTypes) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/atxfer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Hangup a conversation\n */\nexport async function hangupConversation(body: { convid: string; endpointId: string }) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Force hangup a conversation\n */\nexport async function forceHangup(body: { convid: string; endpointId: string, endpointType: string }) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/force_hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function parkConversation(body: {\n applicantId: string // Current user main extension\n convid: string\n endpointId: string // Current user main extension\n}) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/park`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function answerPhysical() {\n // get data\n const { default_device } = store.getState().currentUser\n\n let default_device_details = default_device?.id || default_device?.exten\n // compose body\n if (default_device_details !== undefined) {\n let body: any = {\n endpointId: default_device?.exten || default_device?.id,\n endpointType: 'extension',\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/answer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n }\n}\n\nexport async function hangupPhysical() {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n const currentUserInformation = store.getState().currentUser\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n endpointType: 'extension',\n }\n let astproxyUrl = '/astproxy/'\n let actionUrl = ''\n if (body?.convid !== '' && body?.convid !== undefined) {\n actionUrl = 'hangup'\n } else {\n actionUrl = 'cancel'\n // set user default device as endpointId on cancel action\n body.endpointId = currentUserInformation?.default_device?.id\n }\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n // if default device is physical check if conversation is empty or not\n // if conversation is empty then cancel the call else hangup the call\n const response = await fetch(`${baseURL}` + `${astproxyUrl}` + `${actionUrl}`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function hangupPhysicalRecordingCall() {\n // get data\n const { ownerExtension, conversationId } = store.getState().physicalRecorder\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n endpointType: 'extension',\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function mutePhysical(toggleMute: boolean) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/toggle_mute`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n store.dispatch.currentCall.updateCurrentCall({\n muted: toggleMute,\n })\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function pausePhysical(togglePause: boolean) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n endpointId: ownerExtension,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/toggle_hold`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n store.dispatch.currentCall.updateCurrentCall({\n paused: togglePause,\n })\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function sendPhysicalDTMF(key: string) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n tone: key.toString(),\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/dtmf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function callPhysical(to: string) {\n // get data\n const { ownerExtension } = store.getState().currentCall\n\n // compose body\n let body: any = {\n endpointId: ownerExtension,\n endpointTpe: 'extension',\n number: to,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/call`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function toggleRecord(recordingType: any, obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/${recordingType}`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function startConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/start_conf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function endConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/end_conf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function joinMyConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/join_myconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function muteUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/mute_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function unmuteUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/unmute_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function hangupUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n"],"names":["default_device","store","getState","currentUser","undefined","id","exten","body","endpointId","endpointType","_a","fetchDefaults","baseURL","headers","fetch","concat","method","__assign","JSON","stringify","response","_b","sent","ok","Error","statusText","error_7","error_3","error_2","to","ownerExtension","currentCall","endpointTpe","number","error_13","obj","error_5","json","error_1","error_4","conversationId","currentUserInformation","astproxyUrl","actionUrl","convid","_c","_d","error_8","physicalRecorder","error_9","toggleMute","dispatch","updateCurrentCall","muted","error_10","error_6","togglePause","paused","error_11","key","tone","toString","error_12","recordingType"],"mappings":"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"}
1
+ {"version":3,"file":"astproxy.js","sources":["../../src/services/astproxy.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { store } from '../store'\nimport { ExtensionsTypes, TransferTypes } from '../types'\nimport { useSelector } from 'react-redux'\n\n/**\n * Get all extensions\n */\nexport async function getAllExtensions(): Promise<ExtensionsTypes> {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/extensions`, {\n headers: { ...headers },\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n const data = await response.json()\n return data\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Start blind transfer\n */\nexport async function blindTransfer(body: TransferTypes) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/blindtransfer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Start attended transfer\n */\nexport async function attendedTransfer(body: TransferTypes) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/atxfer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Hangup a conversation\n */\nexport async function hangupConversation(body: { convid: string; endpointId: string }) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\n/**\n * Force hangup a conversation\n */\nexport async function forceHangup(body: { convid: string; endpointId: string, endpointType: string }) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/force_hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function parkConversation(body: {\n applicantId: string // Current user main extension\n convid: string\n endpointId: string // Current user main extension\n}) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/park`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function answerPhysical() {\n // get data\n const { default_device } = store.getState().currentUser\n\n let default_device_details = default_device?.id || default_device?.exten\n // compose body\n if (default_device_details !== undefined) {\n let body: any = {\n endpointId: default_device?.exten || default_device?.id,\n endpointType: 'extension',\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/answer`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n }\n}\n\nexport async function hangupPhysical() {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n const currentUserInformation = store.getState().currentUser\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n endpointType: 'extension',\n }\n let astproxyUrl = '/astproxy/'\n let actionUrl = ''\n if (body?.convid !== '' && body?.convid !== undefined) {\n actionUrl = 'hangup'\n } else {\n actionUrl = 'cancel'\n // set user default device as endpointId on cancel action\n body.endpointId = currentUserInformation?.default_device?.id\n }\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n // if default device is physical check if conversation is empty or not\n // if conversation is empty then cancel the call else hangup the call\n const response = await fetch(`${baseURL}` + `${astproxyUrl}` + `${actionUrl}`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function hangupPhysicalRecordingCall() {\n // get data\n const { ownerExtension, conversationId } = store.getState().physicalRecorder\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n endpointType: 'extension',\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function mutePhysical(toggleMute: boolean) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/toggle_mute`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n store.dispatch.currentCall.updateCurrentCall({\n muted: toggleMute,\n })\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function pausePhysical(togglePause: boolean) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/toggle_hold`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n store.dispatch.currentCall.updateCurrentCall({\n paused: togglePause,\n })\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function sendPhysicalDTMF(key: string) {\n // get data\n const { ownerExtension, conversationId } = store.getState().currentCall\n\n // compose body\n let body: any = {\n convid: conversationId,\n endpointId: ownerExtension,\n tone: key.toString(),\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/dtmf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function callPhysical(to: string) {\n // get data\n const { ownerExtension } = store.getState().currentCall\n\n // compose body\n let body: any = {\n endpointId: ownerExtension,\n endpointTpe: 'extension',\n number: to,\n }\n\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/call`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(body),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw new Error(error)\n }\n}\n\nexport async function toggleRecord(recordingType: any, obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/${recordingType}`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function startConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/start_conf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function endConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/end_conf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function joinMyConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/join_myconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function muteUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/mute_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function unmuteUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/unmute_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n\nexport async function hangupUserConf(obj: any) {\n try {\n const { baseURL, headers } = store.getState().fetchDefaults\n const response = await fetch(`${baseURL}/astproxy/hangup_userconf`, {\n method: 'POST',\n headers: { ...headers },\n body: JSON.stringify(obj),\n })\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return true\n } catch (error: any) {\n throw error\n }\n}\n"],"names":["default_device","store","getState","currentUser","undefined","id","exten","body","endpointId","endpointType","_a","fetchDefaults","baseURL","headers","fetch","concat","method","__assign","JSON","stringify","response","_b","sent","ok","Error","statusText","error_7","error_3","error_2","to","ownerExtension","currentCall","endpointTpe","number","error_13","obj","error_5","json","error_1","error_4","conversationId","currentUserInformation","astproxyUrl","actionUrl","convid","_c","_d","error_8","physicalRecorder","error_9","toggleMute","dispatch","updateCurrentCall","muted","error_10","error_6","togglePause","paused","error_11","key","tone","toString","error_12","recordingType"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nethesis/phone-island",
3
3
  "author": "Nethesis",
4
- "version": "0.18.9",
4
+ "version": "0.18.10",
5
5
  "description": "NethVoice CTI Phone Island",
6
6
  "keywords": [
7
7
  "nethserver",