ahs-cti 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agentDetailReport-F44HMQ5O.mjs +27 -0
- package/dist/agentDetailReport-F44HMQ5O.mjs.map +1 -0
- package/dist/{agentPerformanceReport-JZK5DN5E.mjs → agentPerformanceReport-TTOMNENK.mjs} +25 -15
- package/dist/{agentPerformanceReport-JZK5DN5E.mjs.map → agentPerformanceReport-TTOMNENK.mjs.map} +1 -1
- package/dist/auditReport-QTMAKVTN.mjs +26 -0
- package/dist/auditReport-QTMAKVTN.mjs.map +1 -0
- package/dist/{callHistory-T3M76D4B.mjs → callHistory-4J4J2XHA.mjs} +20 -10
- package/dist/{callHistory-T3M76D4B.mjs.map → callHistory-4J4J2XHA.mjs.map} +1 -1
- package/dist/{campaigns-5PVHXBSD.mjs → campaigns-N3UNUGQP.mjs} +23 -13
- package/dist/{campaigns-5PVHXBSD.mjs.map → campaigns-N3UNUGQP.mjs.map} +1 -1
- package/dist/{caroQualityAuditDashboard-EUDYZ3QY.mjs → caroQualityAuditDashboard-TNS4L2NR.mjs} +12 -2
- package/dist/{caroQualityAuditDashboard-EUDYZ3QY.mjs.map → caroQualityAuditDashboard-TNS4L2NR.mjs.map} +1 -1
- package/dist/{caroVoiceAI-GGJCVUIQ.mjs → caroVoiceAI-OUTAAIFE.mjs} +12 -2
- package/dist/{caroVoiceAI-GGJCVUIQ.mjs.map → caroVoiceAI-OUTAAIFE.mjs.map} +1 -1
- package/dist/{cdrReport-ZMDHSZUW.mjs → cdrReport-Z35OLYUL.mjs} +26 -16
- package/dist/{cdrReport-ZMDHSZUW.mjs.map → cdrReport-Z35OLYUL.mjs.map} +1 -1
- package/dist/chunk-3PNP6G5P.mjs +92 -0
- package/dist/chunk-3PNP6G5P.mjs.map +1 -0
- package/dist/{chunk-DF5EFKXC.mjs → chunk-45MLTWV7.mjs} +12 -2
- package/dist/{chunk-DF5EFKXC.mjs.map → chunk-45MLTWV7.mjs.map} +1 -1
- package/dist/chunk-635IIVZE.mjs +24 -0
- package/dist/{chunk-FRKV2U3I.mjs.map → chunk-635IIVZE.mjs.map} +1 -1
- package/dist/chunk-677RFPP5.mjs +24 -0
- package/dist/{chunk-7LE2VTAI.mjs.map → chunk-677RFPP5.mjs.map} +1 -1
- package/dist/{chunk-Q6G3MPS7.mjs → chunk-ERSNXW5X.mjs} +11 -1
- package/dist/{chunk-Q6G3MPS7.mjs.map → chunk-ERSNXW5X.mjs.map} +1 -1
- package/dist/{chunk-H7GRWLYI.mjs → chunk-G6KRLGGC.mjs} +13 -3
- package/dist/{chunk-H7GRWLYI.mjs.map → chunk-G6KRLGGC.mjs.map} +1 -1
- package/dist/chunk-GFVR3HLK.mjs +24 -0
- package/dist/{chunk-6WLG2PXL.mjs.map → chunk-GFVR3HLK.mjs.map} +1 -1
- package/dist/{chunk-E6KYWWAI.mjs → chunk-GTI2ZVQX.mjs} +12 -2
- package/dist/{chunk-E6KYWWAI.mjs.map → chunk-GTI2ZVQX.mjs.map} +1 -1
- package/dist/chunk-H22TUCN3.mjs +24 -0
- package/dist/{chunk-AOJRUZTO.mjs.map → chunk-H22TUCN3.mjs.map} +1 -1
- package/dist/{chunk-YAQYTUTX.mjs → chunk-HAOFUADN.mjs} +12 -2
- package/dist/{chunk-YAQYTUTX.mjs.map → chunk-HAOFUADN.mjs.map} +1 -1
- package/dist/{chunk-33QNSXP7.mjs → chunk-JHC7OUQG.mjs} +21 -11
- package/dist/chunk-JHC7OUQG.mjs.map +1 -0
- package/dist/chunk-KSVNZKRD.mjs +10930 -0
- package/dist/chunk-KSVNZKRD.mjs.map +1 -0
- package/dist/{chunk-VVDJLUYT.mjs → chunk-M7FJYZF6.mjs} +12 -2
- package/dist/{chunk-VVDJLUYT.mjs.map → chunk-M7FJYZF6.mjs.map} +1 -1
- package/dist/{chunk-DNTGBNZD.mjs → chunk-NDZDJWXY.mjs} +13 -3
- package/dist/{chunk-DNTGBNZD.mjs.map → chunk-NDZDJWXY.mjs.map} +1 -1
- package/dist/chunk-S2SMCH2C.mjs +71 -0
- package/dist/chunk-S2SMCH2C.mjs.map +1 -0
- package/dist/{chunk-IDZWA6HG.mjs → chunk-S34CQVTF.mjs} +14 -4
- package/dist/{chunk-IDZWA6HG.mjs.map → chunk-S34CQVTF.mjs.map} +1 -1
- package/dist/{chunk-2M3YEXYA.mjs → chunk-SUS5RUCA.mjs} +17 -7
- package/dist/{chunk-2M3YEXYA.mjs.map → chunk-SUS5RUCA.mjs.map} +1 -1
- package/dist/{chunk-3J7KQNEU.mjs → chunk-TCYBXDAP.mjs} +13 -3
- package/dist/{chunk-3J7KQNEU.mjs.map → chunk-TCYBXDAP.mjs.map} +1 -1
- package/dist/chunk-VII5JNA6.mjs +24 -0
- package/dist/{chunk-WTBVFN4H.mjs.map → chunk-VII5JNA6.mjs.map} +1 -1
- package/dist/chunk-W3ECDLUB.mjs +24 -0
- package/dist/{chunk-OHJIW3I3.mjs.map → chunk-W3ECDLUB.mjs.map} +1 -1
- package/dist/{chunk-VBIDPX5Z.mjs → chunk-Y4PAUTZ4.mjs} +13 -3
- package/dist/{chunk-VBIDPX5Z.mjs.map → chunk-Y4PAUTZ4.mjs.map} +1 -1
- package/dist/{chunk-NAZO4HKB.mjs → chunk-ZSRD3ZXF.mjs} +12 -2
- package/dist/{chunk-NAZO4HKB.mjs.map → chunk-ZSRD3ZXF.mjs.map} +1 -1
- package/dist/index.mjs +33 -23
- package/dist/index.mjs.map +1 -1
- package/dist/{liveStatus-YSBYSVOO.mjs → liveStatus-PRDEL7CK.mjs} +16 -6
- package/dist/{liveStatus-YSBYSVOO.mjs.map → liveStatus-PRDEL7CK.mjs.map} +1 -1
- package/dist/{loginReport-YIVBJVJD.mjs → loginReport-47QNACQU.mjs} +22 -12
- package/dist/{loginReport-YIVBJVJD.mjs.map → loginReport-47QNACQU.mjs.map} +1 -1
- package/dist/{managementDashboard-7EMQC2UA.mjs → managementDashboard-SZFYULKA.mjs} +22 -12
- package/dist/{managementDashboard-7EMQC2UA.mjs.map → managementDashboard-SZFYULKA.mjs.map} +1 -1
- package/dist/{qualityAuditDashboard-ENGQN2WQ.mjs → qualityAuditDashboard-FHRGB77R.mjs} +12 -2
- package/dist/{qualityAuditDashboard-ENGQN2WQ.mjs.map → qualityAuditDashboard-FHRGB77R.mjs.map} +1 -1
- package/dist-react/agentDetailReport-PDKQKJNL.mjs +23 -0
- package/dist-react/agentPerformanceReport-MU2FASNN.mjs +544 -0
- package/dist-react/agentPerformanceReport-MU2FASNN.mjs.map +1 -0
- package/dist-react/auditReport-WH2KDNYT.mjs +25 -0
- package/{dist/auditReport-6ZUJ4UFO.mjs.map → dist-react/auditReport-WH2KDNYT.mjs.map} +1 -1
- package/dist-react/callHistory-HXXRYUIV.mjs +832 -0
- package/dist-react/callHistory-HXXRYUIV.mjs.map +1 -0
- package/dist-react/campaigns-J7KIAATE.mjs +3139 -0
- package/dist-react/campaigns-J7KIAATE.mjs.map +1 -0
- package/dist-react/caroQualityAuditDashboard-THYPVOCP.mjs +76 -0
- package/dist-react/caroQualityAuditDashboard-THYPVOCP.mjs.map +1 -0
- package/dist-react/caroVoiceAI-XGDUETXI.mjs +31 -0
- package/dist-react/caroVoiceAI-XGDUETXI.mjs.map +1 -0
- package/dist-react/cdrReport-SX2FZAO6.mjs +858 -0
- package/dist-react/cdrReport-SX2FZAO6.mjs.map +1 -0
- package/dist-react/chunk-4YF4IDV6.mjs +72 -0
- package/dist-react/chunk-4YF4IDV6.mjs.map +1 -0
- package/dist-react/chunk-ADM2JJCP.mjs +190 -0
- package/dist-react/chunk-ADM2JJCP.mjs.map +1 -0
- package/dist-react/chunk-EN7HM2MD.mjs +688 -0
- package/dist-react/chunk-EN7HM2MD.mjs.map +1 -0
- package/{dist/chunk-LHE4QGJJ.mjs → dist-react/chunk-F7G2XFRU.mjs} +12 -2
- package/{dist/chunk-LHE4QGJJ.mjs.map → dist-react/chunk-F7G2XFRU.mjs.map} +1 -1
- package/{dist/chunk-DJP744FF.mjs → dist-react/chunk-GUMGXVIT.mjs} +12 -2
- package/{dist/chunk-DJP744FF.mjs.map → dist-react/chunk-GUMGXVIT.mjs.map} +1 -1
- package/dist-react/chunk-KRXHK4AU.mjs +127 -0
- package/dist-react/chunk-KRXHK4AU.mjs.map +1 -0
- package/{dist/chunk-U2UDKXMB.mjs → dist-react/chunk-LWDAC6QU.mjs} +12 -2
- package/{dist/chunk-U2UDKXMB.mjs.map → dist-react/chunk-LWDAC6QU.mjs.map} +1 -1
- package/dist-react/chunk-LX6I32Y4.mjs +106 -0
- package/dist-react/chunk-LX6I32Y4.mjs.map +1 -0
- package/dist-react/chunk-MCD5FQNY.mjs +428 -0
- package/dist-react/chunk-MCD5FQNY.mjs.map +1 -0
- package/dist-react/chunk-MD472UKG.mjs +757 -0
- package/{dist/chunk-33QNSXP7.mjs.map → dist-react/chunk-MD472UKG.mjs.map} +1 -1
- package/dist-react/chunk-ORNNWQI6.mjs +67 -0
- package/dist-react/chunk-ORNNWQI6.mjs.map +1 -0
- package/dist-react/chunk-S4J35V4B.mjs +126 -0
- package/dist-react/chunk-S4J35V4B.mjs.map +1 -0
- package/dist-react/chunk-T53WMN5A.mjs +126 -0
- package/dist-react/chunk-T53WMN5A.mjs.map +1 -0
- package/dist-react/chunk-UTSRABCL.mjs +96 -0
- package/dist-react/chunk-UTSRABCL.mjs.map +1 -0
- package/dist-react/incoming-4WP3FJI4.mp3 +0 -0
- package/dist-react/incoming.mp3 +0 -0
- package/dist-react/index.d.mts +2476 -0
- package/dist-react/index.d.ts +2477 -0
- package/dist-react/index.js +26713 -0
- package/dist-react/index.js.map +1 -0
- package/dist-react/index.mjs +4675 -0
- package/dist-react/index.mjs.map +1 -0
- package/dist-react/liveStatus-IDZ7CPYK.mjs +1087 -0
- package/dist-react/liveStatus-IDZ7CPYK.mjs.map +1 -0
- package/dist-react/loginReport-F47GUU53.mjs +990 -0
- package/dist-react/loginReport-F47GUU53.mjs.map +1 -0
- package/dist-react/managementDashboard-GC5E7NEL.mjs +540 -0
- package/dist-react/managementDashboard-GC5E7NEL.mjs.map +1 -0
- package/dist-react/qualityAuditDashboard-ZAM7HRNH.mjs +76 -0
- package/dist-react/qualityAuditDashboard-ZAM7HRNH.mjs.map +1 -0
- package/package.json +17 -2
- package/dist/agentDetailReport-ZR7U2LLB.mjs +0 -17
- package/dist/auditReport-6ZUJ4UFO.mjs +0 -16
- package/dist/chunk-6WLG2PXL.mjs +0 -14
- package/dist/chunk-7LE2VTAI.mjs +0 -14
- package/dist/chunk-AOJRUZTO.mjs +0 -14
- package/dist/chunk-FRKV2U3I.mjs +0 -14
- package/dist/chunk-OHJIW3I3.mjs +0 -14
- package/dist/chunk-WTBVFN4H.mjs +0 -14
- /package/{dist/agentDetailReport-ZR7U2LLB.mjs.map → dist-react/agentDetailReport-PDKQKJNL.mjs.map} +0 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/hooks/useClickToCall.ts","../call-control-sdk/lib/hooks/useGetAuthorizationToken.ts","../call-control-sdk/lib/hooks/useSDKState.ts","../call-control-sdk/lib/components/callControlPanel.tsx","../node_modules/@mui/icons-material/CallEnd.mjs","../node_modules/@mui/icons-material/DragIndicator.mjs","../node_modules/@mui/icons-material/Group.mjs","../node_modules/@mui/icons-material/Layers.mjs","../node_modules/@mui/icons-material/Mic.mjs","../node_modules/@mui/icons-material/MicOff.mjs","../node_modules/@mui/icons-material/Pending.mjs","../node_modules/@mui/icons-material/SupportAgent.mjs","../node_modules/@mui/icons-material/TransferWithinAStation.mjs","../node_modules/@mui/icons-material/Upcoming.mjs","../node_modules/@mui/icons-material/WifiCalling3.mjs","../node_modules/@mui/icons-material/SendRounded.mjs","../node_modules/@mui/icons-material/SmsSharp.mjs","../node_modules/@mui/icons-material/MoreVert.mjs","../call-control-sdk/lib/components/callControls.tsx","../node_modules/@mui/icons-material/Airlines.mjs","../node_modules/@mui/icons-material/Call.mjs","../node_modules/@mui/icons-material/CallSplit.mjs","../node_modules/@mui/icons-material/MemoryOutlined.mjs","../node_modules/@mui/icons-material/PhoneDisabled.mjs","../node_modules/@mui/icons-material/RecordVoiceOver.mjs","../node_modules/@mui/icons-material/Roofing.mjs","../call-control-sdk/lib/components/dialog.tsx","../call-control-sdk/lib/services/request.ts","../call-control-sdk/lib/components/styles.ts","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/services/micController.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/pages/sdkPages.tsx","../call-control-sdk/lib/hooks/useClickToConference.ts","../call-control-sdk/lib/angular-services/index.ts","../call-control-sdk/index.ts"],"sourcesContent":["import { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface EventTrackerConfig {\r\n\tapiKey: string;\r\n\ttenantId: string;\r\n\tagentId: string;\r\n\tpassword?: string;\r\n\taccessToken?: string;\r\n\tbaseUrl?: string;\r\n\r\n\tretryAttempts?: number;\r\n\tqueueSize?: number;\r\n\tflushInterval?: number;\r\n}\r\n\r\nexport interface EventData {\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface EventTrackerInstance {\r\n\tinit(config: EventTrackerConfig): Promise<string | null>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n}\r\n\r\nclass EventTrackerSDK implements EventTrackerInstance {\r\n\tprivate config: EventTrackerConfig | null = null;\r\n\tprivate ticketId: string | null = null;\r\n\tprivate baseUrl: string = \"\";\r\n\tprivate flushTimer: ReturnType<typeof setInterval> | null = null;\r\n\r\n\tasync init(config: EventTrackerConfig): Promise<any | null> {\r\n\t\tthis.config = {\r\n\t\t\tretryAttempts: 3,\r\n\t\t\tqueueSize: 100,\r\n\t\t\tflushInterval: 5000,\r\n\t\t\t...config,\r\n\t\t};\r\n\r\n\t\tthis.baseUrl = config.baseUrl || (typeof window !== \"undefined\" ? window.location.origin : \"\");\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\treturn ticket;\r\n\t}\r\n\r\n\tisInitialized(): boolean {\r\n\t\treturn this.config !== null && this.ticketId !== null;\r\n\t}\r\n\r\n\tgetConfig(): EventTrackerConfig | null {\r\n\t\treturn this.config;\r\n\t}\r\n\r\n\tgetTicketId(): string | null {\r\n\t\treturn this.ticketId;\r\n\t}\r\n\r\n\tprivate async createTicket(): Promise<any | null> {\r\n\t\tif (!this.config) {\r\n\t\t\tthrow new Error(\"EventTracker not initialized\");\r\n\t\t}\r\n\r\n\t\t// If an accessToken is already provided, skip the login API call\r\n\t\t// if (this.config.accessToken) {\r\n\t\t// \treturn { accessToken: this.config.accessToken };\r\n\t\t// }\r\n\r\n\t\ttry {\r\n\t\t\t\tconst response = await this.makeRequest(\"/api/v1/auth/login\", { // login with base url - same as main application\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tuserId: String(this.config.agentId ?? \"\"),\r\n\t\t\t\t\t// sessionId: this.config.sessionId,\r\n\t\t\t\t\tpassword: this.config.password\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\t// if (!response.ok) {\r\n\t\t\t// \tsdkStateManager.setInitCheck();\r\n\t\t\t// \tthrow new Error(`Failed to initialize: ${response.status} ${response.statusText}`);\r\n\t\t\t// }\r\n\r\n\t\t\tconst data = await response.json();\r\n\t\t\tthis.ticketId = data.ticketId;\r\n\r\n\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async makeRequest(url: string, options: RequestInit): Promise<Response> {\r\n\t\tconst fullUrl = `${this.baseUrl}${url}`;\r\n\t\tconst maxRetries = this.config?.retryAttempts || 3;\r\n\r\n\t\tfor (let attempt = 1; attempt <= maxRetries; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await fetch(fullUrl, options);\r\n\t\t\t\treturn response;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tif (attempt === maxRetries) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\r\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Max retries exceeded\");\r\n\t}\r\n\r\n\tprivate startPeriodicFlush(): void {\r\n\t\tif (this.flushTimer) {\r\n\t\t\tclearInterval(this.flushTimer);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport const eventTracker = new EventTrackerSDK();\r\n\r\nif (typeof window !== \"undefined\") {\r\n\t(window as any).EventTracker = eventTracker;\r\n}\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { removeSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_ALL_OFF, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { useToast } from \"../services/toastMessage\";\r\n\r\nexport type LogoutFunction = () => Promise<any>;\r\n\r\nexport type LogoutHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseLogoutReturn extends LogoutHookStateTypes {\r\n\tlogout: LogoutFunction;\r\n}\r\n\r\nexport interface LogoutPayload {\r\n\taction: string;\r\n\tuserId: string;\r\n}\r\n\r\nexport const useLogout = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst handleLogout = useCallback(async () => {\r\n\t\tsetLoading(true);\r\n\r\n\t\ttry {\r\n\t\t\tawait axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n\t\t} catch (err: any) {\r\n\t\t\tconst message = err?.response?.data?.message || \"Logout failed. Please try again.\";\r\n\t\t\tshowToast(message, \"error\");\r\n\t\t} finally {\r\n\t\t\tsdkStateManager.clearStorageAndReset();\r\n\t\t\tremoveSession(STORAGE_KEY);\r\n\t\t\tsetSuccess(true);\r\n\t\t\tsetLoading(false);\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\tlogout: handleLogout,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport type HookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface EndCallPayload {\r\n\tcall_id?: string;\r\n\tagent_id?: string;\r\n\tset_followUp?: string;\r\n\tcallback_date?: string;\r\n\tcallback_hrs?: number;\r\n\tcallback_mins?: number;\r\n\tmobile_number?: string;\r\n\tlist_comments?: string;\r\n\tcall_reference_id?: string;\r\n\tis_mark_as_break?: boolean;\r\n\tdisposition?: string;\r\n\tline_number?: number;\r\n\treason?: string;\r\n\tpatientLog?: any;\r\n}\r\n\r\nexport type CallTerminationFunction = (data: EndCallPayload) => Promise<any>;\r\n\r\nexport interface UseEndCallReturn extends HookStateTypes {\r\n\thandleEndCall: CallTerminationFunction;\r\n}\r\n\r\nexport const useEndCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleEndCall = useCallback(\r\n\t\tasync (data: EndCallPayload = {}) => {\r\n\t\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tcall_id: data?.call_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tagent_id: data?.agent_id ?? state?.agentId ?? \"\",\r\n\t\t\t\tset_followUp: data?.set_followUp ?? \"N\",\r\n\t\t\t\tcallback_date: data?.callback_date ?? \"\",\r\n\t\t\t\tcallback_hrs: data?.callback_hrs ?? 0,\r\n\t\t\t\tcallback_mins: data?.callback_mins ?? 0,\r\n\t\t\t\tmobile_number: data?.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n\t\t\t\tlist_comments: data?.list_comments ?? \"\",\r\n\t\t\t\tcall_reference_id: data?.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tis_mark_as_break: data?.is_mark_as_break ?? false,\r\n\t\t\t\tdisposition: data?.disposition ?? \"RES\",\r\n\t\t\t\tline_number: data?.line_number ?? 0,\r\n\t\t\t\treason: data?.reason ?? \"normal\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.END_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsdkStateManager.endCall();\r\n\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn {\r\n\t\thandleEndCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { da } from \"date-fns/locale\";\r\n\r\nexport interface StartCallPayload {\r\n\tmobileNumber: string;\r\n\tuser?: string;\r\n\tauto_answer?: boolean;\r\n\tcall_id?: string;\r\n\treference_id?: string;\r\n\tcall_source?: string;\r\n\tcaseId?: string;\r\n\tisWrapup?: boolean;\r\n\tparentCallUuid?: string;\r\n}\r\n\r\nexport type CallInitiationFunction = (data: StartCallPayload) => Promise<any>;\r\n\r\nexport type StartCalltHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseClickToCallReturn extends StartCalltHookStateTypes {\r\n\thandleStartCall: CallInitiationFunction;\r\n}\r\n\r\nexport const useClickToCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleStartCall = useCallback(async (data: StartCallPayload) => {\r\n\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\t\tconst status = state?.callData?.status;\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (status === \"IDLE\" || status === \"ONCALL\" || status === \"WRAPUP\") {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true;\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\t// Caller-supplied parentCallUuid still wins as an explicit override.\r\n\t\t\tconst liveState = sdkStateManager.getState();\r\n\t\t\tconst isWrapupCall = status === \"WRAPUP\";\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (data?.parentCallUuid) {\r\n\t\t\t\tparentCallUuid = data.parentCallUuid;\r\n\t\t\t} else if (liveState.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (liveState.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = liveState.rootCallUuid;\r\n\t\t\t\t\t} else if (state?.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: data?.mobileNumber,\r\n\t\t\t\tuser: data?.user ?? state?.agentId ?? \"\",\r\n\t\t\t\tauto_answer: data?.auto_answer ?? false,\r\n\t\t\t\tcall_id: state?.callData?.call_id ?? data?.call_id ?? \"\",\r\n\t\t\t\treference_id: data?.reference_id ?? \"\",\r\n\t\t\t\tcall_source: data?.call_source ?? \"\",\r\n\t\t\t\tcaseId: data?.caseId ?? \"\",\r\n\t\t\t\tisWrapup: data?.isWrapup ?? false,\r\n\t\t\t\tparentCallUuid:data?.parentCallUuid ?? data.parentCallUuid ?? parentCallUuid ?? \"\" ,\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CLICK_TO_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetLoading(false);\r\n\t\t\talert(\"Agent is not ready\");\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\thandleStartCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n\r\n\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport const useGetAuthorizationToken = () => {\r\n\tconst [token, setToken] = useState<string | undefined>(sdkStateManager.getSdkAuthToken());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetToken(sdkStateManager.getSdkAuthToken());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn token;\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { SDKState } from \"../../types\";\r\n\r\nexport function useSDKState(): SDKState {\r\n\tconst [state, setState] = useState<SDKState>(sdkStateManager.getState());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetState(sdkStateManager.getState());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn state;\r\n}\r\n","import { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { SDK_PERMISSIONS } from \"../permissions\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\r\n\tconst { sdk } = useSDKState();\r\n\r\n\tconst handleDataChange = useCallback(\r\n\t\t(data: any) => {\r\n\t\t\ttry {\r\n\t\t\t\tif (onDataChange && typeof onDataChange === \"function\") {\r\n\t\t\t\t\tonDataChange(data);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(\"Error in CallControlPanel data change handler:\", error);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onDataChange]\r\n\t);\r\n\r\n\tconst sdkObject = sdk?.calls;\r\n\tconst hasDialerAccess =\r\n\t\tsdkObject?.enabled &&\r\n\t\tsdkObject?.items?.some(\r\n\t\t\t(item: any) =>\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_OUTBOUND ||\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_INBOUND,\r\n\t\t);\r\n\r\n\tif (!hasDialerAccess) return null;\r\n\r\n\treturn (\r\n\t\t<SDKProvider>\r\n\t\t\t<CallControls onDataChange={handleDataChange} />\r\n\t\t</SDKProvider>\r\n\t);\r\n});\r\n\r\nCallControlPanel.displayName = \"CallControlPanel\";\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08c-.18-.17-.29-.42-.29-.7s.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71s-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28-.79-.74-1.69-1.36-2.67-1.85-.33-.16-.56-.5-.56-.9v-3.1C15.15 9.25 13.6 9 12 9\"\n}), 'CallEnd');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'DragIndicator');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5\"\n}), 'Group');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27z\"\n}), 'Layers');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z\"\n}), 'Mic');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3 3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73z\"\n}), 'MicOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5\"\n}), 'Pending');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62\"\n}, \"0\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"9\",\n cy: \"13\",\n r: \"1\"\n}, \"1\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"15\",\n cy: \"13\",\n r: \"1\"\n}, \"2\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M18 11.03C17.52 8.18 15.04 6 12.05 6c-3.03 0-6.29 2.51-6.03 6.45 2.47-1.01 4.33-3.21 4.86-5.89 1.31 2.63 4 4.44 7.12 4.47\"\n}, \"3\")], 'SupportAgent');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2M5.75 8.9 3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6q-.375 0-.75.15L2 8.3V13h2V9.65z\"\n}), 'TransferWithinAStation');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m21.16 7.26-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55M11 3h2v5h-2zm-4.6 7.81L7.81 9.4 4.26 5.84 2.84 7.26c.11.03 3.56 3.55 3.56 3.55M20 12h-5c0 1.66-1.34 3-3 3s-3-1.34-3-3H4c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2\"\n}), 'Upcoming');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06c1.18-1.18 2.8-1.91 4.59-1.91s3.42.73 4.59 1.91l1.06-1.06C20.7 3.9 18.7 3 16.49 3\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M20.03 7.46C19.12 6.56 17.87 6 16.49 6s-2.63.56-3.54 1.46l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03zm-4.95 2.13L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59s-1.05.22-1.41.59\"\n}, \"1\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"m15.63 14.4-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73c-.33-.07-.67.03-.9.26\"\n}, \"2\")], 'WifiCalling3');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m3.4 20.4 17.45-7.48c.81-.35.81-1.49 0-1.84L3.4 3.6c-.66-.29-1.39.2-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91\"\n}), 'SendRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 2H2v20l4-4h16zM9 11H7V9h2zm4 0h-2V9h2zm4 0h-2V9h2z\"\n}), 'SmsSharp');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'MoreVert');","import CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport DragIndicator from \"@mui/icons-material/DragIndicator\";\r\nimport Group from \"@mui/icons-material/Group\";\r\nimport KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Layers from \"@mui/icons-material/Layers\";\r\nimport Mic from \"@mui/icons-material/Mic\";\r\nimport MicOff from \"@mui/icons-material/MicOff\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport Pending from \"@mui/icons-material/Pending\";\r\nimport Phone from \"@mui/icons-material/Phone\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport WifiCalling3 from \"@mui/icons-material/WifiCalling3\";\r\nimport SendRounded from \"@mui/icons-material/SendRounded\";\r\nimport SmsSharp from \"@mui/icons-material/SmsSharp\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tChip,\r\n\tCircularProgress,\r\n\tFade,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTooltip,\r\n\tTypography,\r\n\tuseTheme,\r\n} from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport {\r\n\tCallHistoryDialog,\r\n\tCallTransferDialog,\r\n\tConferenceDialog,\r\n\tEndCallDispositionDialog,\r\n\tProcessorListDialog,\r\n} from \"./dialog\";\r\n\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { useDraggable } from \"../hooks/useDraggable\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createMicController, MicController } from \"../services/micController\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { CallControlPanelProps, CallStatus } from \"../../types\";\r\n\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_FLASH, USB_LIGHT_ON, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nconst getCombineConfrenceData = (localState: any, apiData: any) => {\r\n\tconst localConfrenceData = localState?.conferenceLine;\r\n\tconst apiConferenceData = apiData?.conferencestatus;\r\n\tconst updatedConferenceData = localConfrenceData.map((item: any) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: apiConferenceData?.[statusKey] ?? localState?.callData?.status,\r\n\t\t\t\tphone: localState?.callData?.phone_number ?? \"\",\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\tconst phoneKey = `line_${item.line}_phonenumber`;\r\n\r\n\t\t\tconst newStatus = apiConferenceData ? (apiConferenceData[statusKey] ?? \"IDLE\") : item.status;\r\n\t\t\tlet newPhone = apiConferenceData?.[phoneKey];\r\n\r\n\t\t\tif (newPhone === null || newPhone === \"0\" || newPhone === undefined) {\r\n\t\t\t\tnewPhone = newStatus === \"IDLE\" ? \"\" : item.phone;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: newStatus,\r\n\t\t\t\tphone: newPhone,\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\treturn updatedConferenceData;\r\n};\r\n\r\nconst formatDuration = (seconds: number): string => {\r\n\tconst mins = Math.floor(seconds / 60);\r\n\tconst secs = seconds % 60;\r\n\treturn `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}`;\r\n};\r\n\r\nexport function CallControls({ onDataChange }: CallControlPanelProps) {\r\n\tconst theme = useTheme();\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst { disabled, enabled, outlined } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst micRef = useRef<MicController | null>(null);\r\n\tconst webSocketRef = useRef<WebSocket | null>(null);\r\n\tconst audioRef = useRef<HTMLAudioElement | null>(null);\r\n\tconst reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\tconst pingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\tconst reconnectAttemptsRef = useRef<number>(0);\r\n\tconst hasFlashedRef = useRef(false);\r\n\tconst lastEventTimeRef = useRef<string | null>(null);\r\n\tconst conferenceAutoOpenedRef = useRef<boolean>(false);\r\n\t// ── NEW: ref to record when hold started ──────────────────────────────────\r\n\tconst holdStartTimeRef = useRef<number | null>(null);\r\n\t// ── NEW: ref to record when mute started ──────────────────────────────────\r\n\tconst muteStartTimeRef = useRef<number | null>(null);\r\n\r\n\tconst maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000;\r\n\tconst maxReconnectDelay = 30000;\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [ambulanceAnchorEl, setAmbulanceAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [moreOptionsAnchorEl, setMoreOptionsAnchorEl] = useState<null | HTMLElement>(null);\r\n\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState<boolean>(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState<boolean>(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState<boolean>(false);\r\n\r\n\tconst [processList, setProcessList] = useState<\r\n\t\t| {\r\n\t\t\tprocess_id: number;\r\n\t\t\tprocess_name: string;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\tconst [breaksList, setBreaksList] = useState<\r\n\t\t| {\r\n\t\t\ttype: string;\r\n\t\t\tduration: string;\r\n\t\t\tdescription: string;\r\n\t\t\tactive: boolean;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState<number>(0);\r\n\tconst [callWrapuptime, setCallWrapuptime] = useState<number | null>(null);\r\n\t// Hold duration state\r\n\tconst [holdDuration, setHoldDuration] = useState<number>(0);\r\n\t// ── NEW: mute duration state ──────────────────────────────────────────────\r\n\tconst [muteDuration, setMuteDuration] = useState<number>(0);\r\n\r\n\tconst { position, isDragging, dragRef, handleMouseDown, handleTouchStart } = useDraggable(\r\n\t\tstate.controlPanelPosition,\r\n\t\t(newPosition) => sdkStateManager.setControlPanelPosition(newPosition)\r\n\t);\r\n\r\n\tconst {\r\n\t\tposition: iframePosition,\r\n\t\tisDragging: iframeIsDragging,\r\n\t\tdragRef: iframeDragRef,\r\n\t\thandleMouseDown: iframeHandleMouseDown,\r\n\t\thandleTouchStart: iframeHandleTouchStart,\r\n\t} = useDraggable(state.iframePosition, (newPosition) =>\r\n\t\tsdkStateManager.setIframePosition(newPosition)\r\n\t);\r\n\r\n\tconst [clickToCall, { isLoading: clickToCallLoading }] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\tuser: string;\r\n\t\tauto_answer: boolean;\r\n\t\tcall_id: string;\r\n\t\treference_id: string;\r\n\t\tcall_source: string;\r\n\t\tcaseId: string;\r\n\t\tisWrapup: boolean;\r\n\t\tparentCallUuid: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsetPhoneNumber(\"\");\r\n\t\t\tsetDialerAnchorEl(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [holdOrUnHold, { isLoading: holdOrUnHoldLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [readyAgentStatus, { isLoading: agentReadyLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\trefno?: string;\r\n\t\tuserId: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setAgentStatus(\"\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst [updateAgentStatus, { isLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tbreak_type: string;\r\n\t\tuserId: string;\r\n\t}>();\r\n\r\n\tconst [sendNotification] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\ttype: string;\r\n\t}>();\r\n\r\n\tconst [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\tcall_id: string;\r\n\t\tagent_id: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: number;\r\n\t\tcallback_mins: number;\r\n\t\tmobile_number: string;\r\n\t\tlist_comments: string;\r\n\t\tcall_reference_id: string;\r\n\t\tis_mark_as_break: boolean;\r\n\t\tdisposition: string;\r\n\t\tline_number: number;\r\n\t\treason: string;\r\n\t}>({\r\n\t\tdisabledSuccessToast: true,\r\n\t\tonSuccess: (res: any) => {\r\n\t\t\tsdkStateManager.endCall();\r\n\t\t\tsetOpenCallDisposition(false);\r\n\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\tshowToast(res?.message || \"Call ended successfully\", \"success\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst handleCloseQueueCounts = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenDialer = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetShowIframe(true);\r\n\t\tsetDialerAnchorEl(event.currentTarget);\r\n\t};\r\n\tconst handleOpenAbulanceServices = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetAmbulanceAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleOpenMoreOptions = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetMoreOptionsAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tsetDialerAnchorEl(null);\r\n\t};\r\n\tconst handleCloseAmbulance = () => {\r\n\t\tsetAmbulanceAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleCloseMoreOptions = () => {\r\n\t\tsetMoreOptionsAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenAgentStatus = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetStatusAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseAgentStatus = () => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleAgentReady = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"READYAGENT\",\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\r\n\t\treadyAgentStatus(END_POINT.READY_AGENT, payload);\r\n\t};\r\n\r\n\tconst handleUpdateAgentStatus = (status: string) => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t\tconst currentStatus = state.callData?.status?.toUpperCase() as CallStatus;\r\n\t\tif ([CallStatus.ONCALL, CallStatus.RINGING, CallStatus.DIALING, CallStatus.WRAPUP].includes(currentStatus)) {\r\n\t\t\tshowToast(\"Cannot put agent on break while on a call\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst payload = {\r\n\t\t\taction: \"AGENTBREAK\",\r\n\t\t\tbreak_type: status,\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\t\tupdateAgentStatus(END_POINT.UPDATE_AGENT_BREAK, payload).then(() => {\r\n\t\t\tsdkStateManager.setAgentStatus(status);\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleStartCall = (number: string) => {\r\n\t\tif (number.length !== 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else if (!/^\\d+$/.test(number)) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true\r\n\t\t\t// (host opts out of the alternate dialog and relies on the built-in flow);\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\tconst currentStatus = (state.callData?.status ?? \"\").toUpperCase();\r\n\t\t\tconst isWrapupCall = currentStatus === CallStatus.WRAPUP;\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (!state.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (state.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = state.rootCallUuid;\r\n\t\t\t\t\t} else if (state.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuser: state.agentId,\r\n\t\t\t\tauto_answer: false,\r\n\t\t\t\tcall_id: \"\",\r\n\t\t\t\treference_id: \"\",\r\n\t\t\t\tcall_source: \"\",\r\n\t\t\t\tcaseId: \"\",\r\n\t\t\t\tisWrapup: isWrapupCall,\r\n\t\t\t\tparentCallUuid,\r\n\t\t\t};\r\n\r\n\t\t\tclickToCall(END_POINT.CLICK_TO_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\tconst handleEndCall = (data: {\r\n\t\tdisposition: { label: string; value: string; id?: number };\r\n\t\tfollowUp: { label: string; value: string };\r\n\t\tcallbackDate: string;\r\n\t\tcallbackHrs: string;\r\n\t\tcallbackMins: string;\r\n\t\tselected_break?: boolean;\r\n\t\tnotes?: string;\r\n\t}) => {\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tset_followUp: data?.followUp?.value ?? \"\",\r\n\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\tcallback_hrs: Number(data?.callbackHrs) || 0,\r\n\t\t\tcallback_mins: Number(data?.callbackMins) || 0,\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\tlist_comments: data?.notes ?? \"\",\r\n\t\t\tcall_reference_id: state.callData?.call_id ?? \"\",\r\n\t\t\tis_mark_as_break: data?.selected_break ?? false,\r\n\t\t\tdisposition: data?.disposition?.value ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\tsetPhoneNumber(\"\");\r\n\t\tendCall(END_POINT.END_CALL, payload);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n\t\t\te.preventDefault();\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"beforeunload\", handleBeforeUnload);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"beforeunload\", handleBeforeUnload);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst mic = createMicController();\r\n\t\tmicRef.current = mic;\r\n\r\n\t\tmic.start().catch((err) => {\r\n\t\t\tconsole.error(\"Failed to start mic:\", err);\r\n\t\t});\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tconst fullState = getSession(STORAGE_KEY) as any;\r\n\t\t\tconst key = event.key?.toLowerCase();\r\n\r\n\t\t\tif (!event.altKey || fullState?.callData?.status !== CallStatus.ONCALL) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"m\" && String(fullState?.callData?.mute) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tmicRef.current?.mute();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.MUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"u\" && String(fullState?.callData?.mute) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNMUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t\tmicRef.current?.unmute();\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"h\" && String(fullState?.callData?.hold) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.HOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"r\" && String(fullState?.callData?.hold) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNHOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet interval: ReturnType<typeof setInterval>;\r\n\t\tlet wrapUpinterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === CallStatus.ONCALL) {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = state.callStartTime\r\n\t\t\t\t\t? Math.floor((Date.now() - Number(state.callStartTime)) / 1000)\r\n\t\t\t\t\t: 0;\r\n\r\n\t\t\t\tsetCallDuration(elapsed);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tsetCallDuration(0);\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tstate.callData.status &&\r\n\t\t\tstate.callData.status === CallStatus.WRAPUP &&\r\n\t\t\tcallWrapuptime !== null\r\n\t\t) {\r\n\t\t\twrapUpinterval = setInterval(() => {\r\n\t\t\t\tsetCallWrapuptime((prevTime) => {\r\n\t\t\t\t\tif (prevTime === null || prevTime <= 1) {\r\n\t\t\t\t\t\tclearInterval(wrapUpinterval);\r\n\t\t\t\t\t\thandleEndCall({\r\n\t\t\t\t\t\t\tdisposition: { label: \"Auto Wrapup\", value: \"AUTO_WRAPUP\" },\r\n\t\t\t\t\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\t\t\t\t\tcallbackDate: \"\",\r\n\t\t\t\t\t\t\tcallbackHrs: \"\",\r\n\t\t\t\t\t\t\tcallbackMins: \"\",\r\n\t\t\t\t\t\t\tselected_break: false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn prevTime - 1;\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t\tif (wrapUpinterval) clearInterval(wrapUpinterval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\t// Hold duration timer\r\n\tuseEffect(() => {\r\n\t\tlet holdInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isOnHold = state.callData?.hold === 1;\r\n\r\n\t\tif (isOnHold && isOnCall) {\r\n\t\t\tif (!holdStartTimeRef.current) {\r\n\t\t\t\tholdStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tholdInterval = setInterval(() => {\r\n\t\t\t\tsetHoldDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - holdStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tholdStartTimeRef.current = null;\r\n\t\t\tsetHoldDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (holdInterval) clearInterval(holdInterval);\r\n\t\t};\r\n\t}, [state.callData?.hold, state.callData?.status]);\r\n\r\n\t// ── NEW: mute duration timer ──────────────────────────────────────────────\r\n\tuseEffect(() => {\r\n\t\tlet muteInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isMuted = state.callData?.mute === 1;\r\n\t\tconst isHeld = state.callData?.hold === 1;\r\n\r\n\t\tif (isMuted && isOnCall && !isHeld) {\r\n\t\t\t// Record start time only once when mute begins\r\n\t\t\tif (!muteStartTimeRef.current) {\r\n\t\t\t\tmuteStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tmuteInterval = setInterval(() => {\r\n\t\t\t\tsetMuteDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - muteStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\t// Reset when mute is released or call ends\r\n\t\t\tmuteStartTimeRef.current = null;\r\n\t\t\tsetMuteDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (muteInterval) clearInterval(muteInterval);\r\n\t\t};\r\n\t}, [state.callData?.mute, state.callData?.status]);\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tuseEffect(() => {\r\n\t\tcreateAudioElement()\r\n\t\t\t.then((audio) => {\r\n\t\t\t\taudioRef.current = audio;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"Failed to load audio element:\", error);\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tif (audioRef.current) {\r\n\t\t\t\taudioRef.current.pause();\r\n\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\taudioRef.current.src = \"\"; // Clear source\r\n\t\t\t\taudioRef.current = null;\r\n\t\t\t}\r\n\t\t\t// Cleanup blob URLs\r\n\t\t\tcleanupAudioResources();\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (onDataChange && state.callData) {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, call_id, call_details } =\r\n\t\t\t\tstate.callData;\r\n\t\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\t\tconst callData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: call_id,\r\n\t\t\t\tagent_id,\r\n\t\t\t\tprocess_id,\r\n\t\t\t\tprocess_name,\r\n\t\t\t\tcall_details,\r\n\t\t\t\tauto_wrapup_time: state.backendCallControls?.auto_wrapup_time ?? null,\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t\tsocket_info: state.callData\r\n\t\t\t};\r\n\t\t\tonDataChange(callData);\r\n\t\t}\r\n\t}, [state.callData, onDataChange]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\t// axiosInstance\r\n\t\t\t// \t.post(END_POINT.PROCESS_LIST, {\r\n\t\t\t// \t\tuserId: state.agentId,\r\n\t\t\t// \t\taction: \"GETAGENTPROCESSLIST\",\r\n\t\t\t// \t\trefno: \"1234221233\",\r\n\t\t\t// \t})\r\n\t\t\t// \t.then((res) => {\r\n\t\t\t// \t\t// if (res && res.data?.data && res?.data?.data?.length > 1) {\r\n\t\t\t// \t\t// \tsetProcessList(res.data.data);\r\n\t\t\t// \t\t// \tsetOpenProcessorDialog(true);\r\n\t\t\t// \t\t// } else {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\t\t// setOpenProcessorDialog(false);\r\n\t\t\t// \t\t// }\r\n\t\t\t// \t})\r\n\t\t\t// \t.catch((err) => {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t// \t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(END_POINT.BREAKS_LIST)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res && res.data?.data && res?.data?.data?.length) {\r\n\t\t\t\t\t\tsetBreaksList(res.data.data);\r\n\t\t\t\t\t\tconst liveStatus = sdkStateManager.getState().callData?.status;\r\n\t\t\t\t\t\tif (!liveStatus) {\r\n\t\t\t\t\t\t\thandleUpdateAgentStatus(res.data.data[0].type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t}\r\n\t}, [state.agentId]);\r\n\r\n\tconst connectWebSocket = () => {\r\n\t\tif (!state.agentId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\treconnectTimeoutRef.current = null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\twebSocketRef.current = new WebSocket(`${state.urlConfig?.webSocketURL}/api/v1/ws/agent/events?token=${state.authorization?.accessToken}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t}\r\n\t\t\t\tpingIntervalRef.current = setInterval(() => {\r\n\t\t\t\t\tif (webSocketRef.current && webSocketRef.current.readyState === WebSocket.OPEN) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tconsole.error(\"Failed to send ping:\", error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 30000);\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onmessage = (event) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = JSON.parse(event.data);\r\n\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst sdkState = getSession(STORAGE_KEY) as any;\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(sdkState, data);\r\n\t\t\t\t\t// console.log( \"📊 Parsed JSON:\", data);\r\n\t\t\t\t\tconst callData = {\r\n\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\tagent_id: data?.agent_id,\r\n\t\t\t\t\t\tstatus: data?.status,\r\n\t\t\t\t\t\ttype: data?.type,\r\n\t\t\t\t\t\tevent_time: data?.event_time,\r\n\t\t\t\t\t\tphone_number: data?.phone_number,\r\n\t\t\t\t\t\tcall_id: data?.call_id,\r\n\t\t\t\t\t\tprocess_id: data?.process_id,\r\n\t\t\t\t\t\tprocess_name: data?.process_name,\r\n\t\t\t\t\t\thold: data?.hold,\r\n\t\t\t\t\t\tmute: data?.mute,\r\n\t\t\t\t\t\tmode: data?.mode,\r\n\t\t\t\t\t\tqueue_name: data?.queue_name,\r\n\t\t\t\t\t\tauto_wrapup_time: data?.auto_wrapup_time ?? null,\r\n\t\t\t\t\t\t...(data?.call_details !== undefined && { call_details: data.call_details }),\r\n\t\t\t\t\t\t...(data?.break_details !== undefined && { break_details: data.break_details }),\r\n\t\t\t\t\t\t...(data?.call_sage !== undefined && { call_sage: data.call_sage }),\r\n\t\t\t\t\t};\r\n\t\t\t\t\tsdkStateManager.updateCallData(callData);\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\t\t\t\t\tsdkStateManager.setConsultInfo(data.consult_info ?? null);\r\n\r\n\t\t\t\t\tconst conferenceStatus = data?.conferencestatus;\r\n\t\t\t\t\tif (conferenceStatus) {\r\n\t\t\t\t\t\tconst hasAnsweredSecondaryLine = Object.keys(conferenceStatus).some((key) => {\r\n\t\t\t\t\t\t\tconst match = key.match(/^line_(\\d+)_status$/);\r\n\t\t\t\t\t\t\tif (!match) return false;\r\n\t\t\t\t\t\t\tconst lineNum = Number(match[1]);\r\n\t\t\t\t\t\t\tif (lineNum <= 1) return false;\r\n\t\t\t\t\t\t\tconst status = String(conferenceStatus[key] ?? \"\").toUpperCase();\r\n\t\t\t\t\t\t\treturn status === CallStatus.ONCALL;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (hasAnsweredSecondaryLine) {\r\n\t\t\t\t\t\t\tif (!conferenceAutoOpenedRef.current) {\r\n\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data?.call_consult_controls) {\r\n\t\t\t\t\t\tsdkStateManager.updateSDKConfigFromPermissions(data.call_consult_controls);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsdkStateManager.resetConsultControls();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ([CallStatus.RINGING, CallStatus.DIALING].includes(data.status as CallStatus)) {\r\n\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\tsetCallWrapuptime(sdkState?.sdkConfig?.auto_wrapup_time ?? null);\r\n\t\t\t\t\t\tsdkStateManager.updateConferenceData([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 1,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 2,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 3,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 4,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 5,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\r\n\t\t\t\t\t\tif (data?.mode !== \"manual\" && audioRef.current && state?.sdkConfig?.enableRingtone) {\r\n\t\t\t\t\t\t\taudioRef.current.play().catch((error) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Failed to play ringtone:\", error);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (audioRef.current) {\r\n\t\t\t\t\t\t\taudioRef.current.pause();\r\n\t\t\t\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === CallStatus.IDLE) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"green\"));\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.clearTransferLeadData();\r\n\t\t\t\t\t} else if (data.status === CallStatus.ONCALL) {\r\n\r\n\t\t\t\t\t\t// Start timer for new call OR transfer\r\n\t\t\t\t\t\tif (data.status === CallStatus.ONCALL) {\r\n\t\t\t\t\t\t\tsdkStateManager.startCall();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!showIframe) {\r\n\t\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data?.mute !== 1 && data?.hold !== 1) {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"red\"));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t(data?.mute === 1 || data?.hold === 1) &&\r\n\t\t\t\t\t\tdata.status === CallStatus.ONCALL\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t} else if (data.status === CallStatus.BREAK) {\r\n\t\t\t\t\t\tconst breakTime = sdkState?.sdkConfig?.break_time;\r\n\t\t\t\t\t\tconst eventTime = data?.event_time ?? null;\r\n\r\n\t\t\t\t\t\tif (eventTime !== lastEventTimeRef.current) {\r\n\t\t\t\t\t\t\thasFlashedRef.current = false;\r\n\t\t\t\t\t\t\tlastEventTimeRef.current = eventTime;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet isOverLimit = false;\r\n\t\t\t\t\t\tif (breakTime && eventTime) {\r\n\t\t\t\t\t\t\tconst differenceInMinutes =\r\n\t\t\t\t\t\t\t\t(new Date().getTime() - new Date(eventTime).getTime()) / 60000;\r\n\r\n\t\t\t\t\t\t\tif (Number(differenceInMinutes.toFixed(0)) >= Number(breakTime)) {\r\n\t\t\t\t\t\t\t\tisOverLimit = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isOverLimit) {\r\n\t\t\t\t\t\t\tif (!hasFlashedRef.current) {\r\n\t\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"yellow\", 1));\r\n\t\t\t\t\t\t\t\thasFlashedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"yellow\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (data.status === CallStatus.WRAPUP) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"green\", 1));\r\n\t\t\t\t\t\tsdkStateManager.endCall();\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch {\r\n\t\t\t\t\tconsole.error(\"📨 Raw message:\", event.data);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onclose = (event) => {\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconsole.warn(\r\n\t\t\t\t\t\t`🔄 Attempting to reconnect WebSocket (attempt ${reconnectAttemptsRef.current}/${maxReconnectAttempts}) in ${delay}ms`\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t\t}, delay);\r\n\t\t\t\t} else if (reconnectAttemptsRef.current >= maxReconnectAttempts) {\r\n\t\t\t\t\tshowToast(\"WebSocket connection failed. Please refresh the page.\", \"error\");\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onerror = (error) => {\r\n\t\t\t\tconsole.error(\"❌ WebSocket error:\", error);\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tif (reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t);\r\n\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\tconnectWebSocket();\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\t\treconnectTimeoutRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (webSocketRef.current) {\r\n\t\t\t\twebSocketRef.current.close(1000, \"Component unmounting\");\r\n\t\t\t\twebSocketRef.current = null;\r\n\t\t\t}\r\n\t\t\treconnectAttemptsRef.current = 0;\r\n\t\t};\r\n\t}, [state.agentId]);\r\n\r\n\tconst handleSendSMS = (data: any) => {\r\n\t\tsendNotification(END_POINT.SEND_NOTIFICATIONS, {\r\n\t\t\tphone_number: data?.phone_number ?? \"\",\r\n\t\t\ttype: \"ambulance\",\r\n\t\t});\r\n\t};\r\n\r\n\tif (!state.isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box>\r\n\t\t\t\t{Boolean(openProcessorDialog) && (\r\n\t\t\t\t\t<ProcessorListDialog\r\n\t\t\t\t\t\tprocessList={processList}\r\n\t\t\t\t\t\topen={openProcessorDialog}\r\n\t\t\t\t\t\tsetOpen={setOpenProcessorDialog}\r\n\t\t\t\t\t\thandleSelectedProcessor={(data: { process_id: number; process_name: string }) => {\r\n\t\t\t\t\t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\t// Derived flags used in JSX\r\n\tconst isOnHold =\r\n\t\tstate.callData?.hold === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\r\n\t// ── NEW: derived mute flag ────────────────────────────────────────────────\r\n\tconst isMuted =\r\n\t\tstate.callData?.mute === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tconst isVertical = state.sdkConfig?.sdkPosition === \"vertical\";\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Box>\r\n\t\t\t\t<Fade in={true} timeout={300}>\r\n\t\t\t\t\t<Paper\r\n\t\t\t\t\t\tref={state.sdkConfig?.isDraggable ? dragRef : null}\r\n\t\t\t\t\t\televation={\r\n\t\t\t\t\t\t\tisDragging ? 4\r\n\t\t\t\t\t\t\t\t: state.sdkConfig?.isDraggable ? 1\r\n\t\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tposition: state.sdkConfig?.isDraggable ? \"fixed\" : \"relative\",\r\n\t\t\t\t\t\t\tleft: state.sdkConfig?.isDraggable ? position.x : \"auto\",\r\n\t\t\t\t\t\t\ttop: state.sdkConfig?.isDraggable ? position.y : \"auto\",\r\n\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\twidth: isVertical ? \"180px\" : \"auto\",\r\n\t\t\t\t\t\t\tflexShrink: 0,\r\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\tp: 0.5,\r\n\t\t\t\t\t\t\tborderRadius: 3,\r\n\t\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\t\tzIndex: state.sdkConfig?.isDraggable ? Number.MAX_SAFE_INTEGER : 0,\r\n\t\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"10px 8px 4px 8px\" : \"0px 10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.isDraggable && (\r\n\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\tcomponent=\"div\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\r\n\t\t\t\t\t\t\t\t\t\tonTouchStart={handleTouchStart}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<DragIndicator />\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableQueueName &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.queue_name &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.mode !== \"manual\" && (\r\n\t\t\t\t\t\t\t\t\t\t<Chip label={state?.callData?.queue_name} />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disabledDialButton ? \"Outbound call feature is disabled\" : \"Dial\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={<WifiCalling3 />}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tDial\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<WifiCalling3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t([\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"action.selected\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{/* ── UPDATED: call duration + hold duration + mute duration display ── */}\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tonClick={() => setShowIframe(true)}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\tminWidth: \"52px\",\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() === CallStatus.BREAK && state.callData?.break_details?.value ? (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.callData.break_details.value}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1.5px solid\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpy: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: '80px',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: 'center'\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"uppercase\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{state.callData.break_details.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: isOnHold\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"warning.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isMuted\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"error.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{state.callData.status === CallStatus.WRAPUP && callWrapuptime !== null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? formatDuration(callWrapuptime)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: formatDuration(callDuration)}\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* Hold badge — only visible while call is on hold */}\r\n\t\t\t\t\t\t\t\t\t{isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"warning.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(holdDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* ── NEW: Mute badge — only visible while call is muted ── */}\r\n\t\t\t\t\t\t\t\t\t{isMuted && !isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<MicOff sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(muteDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────────── */}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────── */}\r\n\r\n\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\tsx={{ padding: \"18px 0px\" }}\r\n\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\tisLoading || agentReadyLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() ?? \"N/A\"}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonClick={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t\tdeleteIcon={<KeyboardArrowDown color=\"primary\" />}\r\n\t\t\t\t\t\t\t\t\tonDelete={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"0px 8px 8px 8px\" : \"0px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={\"Agent Ready\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SupportAgent /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleAgentReady();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tclasses={{\r\n\t\t\t\t\t\t\t\t\t\t\troot:\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"enabled\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t...(\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? outlined\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: enabled\r\n\t\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={agentReadyLoading}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Agent Ready\" : <SupportAgent />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton ? \"Hold feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.hold === 1 ? \"Resume\" : \"Hold\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? <PlayArrow /> : <Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableHoldButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{holdOrUnHoldLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? \"Resume\" : \"Hold\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.hold === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton ? \"Mute feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.mute === 1 ? \"Unmute\" : \"Mute\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? <MicOff /> : <Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableMuteButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton || state.callData?.hold === 1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? \"Unmute\" : \"Mute\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.mute === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableCallTransferButton ? \"Transfer Call feature is disabled\" : \"Transfer Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openCallTransferDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <TransferWithinAStation /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openCallTransferDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Transfer\" : <TransferWithinAStation />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableConferenceButton ? \"Conference Call feature is disabled\" : \"Conference Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openConferenceDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <Group /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openConferenceDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Conference\" : <Group />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableSmsServices && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Send SMS\"}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(ambulanceAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SmsSharp /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenAbulanceServices(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean(ambulanceAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: [CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Send SMS\" : <SmsSharp />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndCallButton ? \"End Call feature is disabled\" : \"End Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical && !endCallLoading ? <CallEnd /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenCallDisposition(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRight: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tendCallLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{endCallLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"error\" />\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"End Call\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CallEnd />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledMoreOptionsButton &&\r\n\t\t\t\t\t\t\t\t\tprocessList &&\r\n\t\t\t\t\t\t\t\t\tprocessList?.length > 1 && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={\"Switch Process\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(moreOptionsAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <MoreVert /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenMoreOptions(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={Boolean(moreOptionsAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Switch Process\" : <MoreVert />}\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Paper>\r\n\t\t\t\t</Fade>\r\n\t\t\t</Box>\r\n\r\n\t\t\t<Fade\r\n\t\t\t\tin={true}\r\n\t\t\t\ttimeout={300}\r\n\t\t\t>\r\n\t\t\t\t<Paper\r\n\t\t\t\t\tref={iframeDragRef}\r\n\t\t\t\t\televation={iframeIsDragging ? 4 : 1}\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\tleft: iframePosition.x,\r\n\t\t\t\t\t\ttop: iframePosition.y,\r\n\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\tzIndex: Number.MAX_SAFE_INTEGER,\r\n\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tvisibility: showIframe && !state.sdkConfig?.disableSoftPhone ? \"visible\" : \"hidden\",\r\n\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonMouseDown={iframeHandleMouseDown}\r\n\t\t\t\t\t\tonTouchStart={iframeHandleTouchStart}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DragIndicator\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(90deg)\",\r\n\t\t\t\t\t\t\t\tcolor: \"#7b7b7b\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t<Typography variant=\"subtitle1\" fontWeight={600} sx={{ textAlign: \"center\" }}>\r\n\t\t\t\t\t\t\tahs-cti\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={() => setShowIframe(false)}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t<iframe\r\n\t\t\t\t\t\t\t// src={`https://localhost:8443/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\tsrc={`${state.urlConfig?.iframeURL}/static/phone/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\t// src={`${state.urlConfig?.iframeURL}/static/phone/cti_index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}`}\r\n\t\t\t\t\t\t\theight={380}\r\n\r\n\t\t\t\t\t\t\twidth={420}\r\n\t\t\t\t\t\t\tallow=\"camera; microphone; autoplay\"\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tborder: \"none\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></iframe>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Fade>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={dialerAnchorEl}\r\n\t\t\t\topen={Boolean(dialerAnchorEl)}\r\n\t\t\t\tonClose={handleCloseDialer}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<TextField\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\tvalue={phoneNumber}\r\n\t\t\t\t\t\tplaceholder=\"Enter Mobile No.\"\r\n\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tconst value = e.target.value;\r\n\t\t\t\t\t\t\tif (/^\\d*$/.test(value)) {\r\n\t\t\t\t\t\t\t\tsetPhoneNumber(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\tcolor=\"info\"\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{clickToCallLoading ? (\r\n\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.success.main,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<Phone color=\"success\" />\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</IconButton>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={ambulanceAnchorEl}\r\n\t\t\t\topen={Boolean(ambulanceAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAmbulance}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Tooltip title=\"Ambulance Service\">\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\thandleSendSMS(state.callData);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tAmbulance\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"green\",\r\n\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\tmarginLeft: \"14px\",\r\n\t\t\t\t\t\t\t\t\tpadding: \"2px 6px\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tSend\r\n\t\t\t\t\t\t\t\t<SendRounded\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\ttransform: \"rotate(-16deg)\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={moreOptionsAnchorEl}\r\n\t\t\t\topen={Boolean(moreOptionsAnchorEl)}\r\n\t\t\t\tonClose={handleCloseMoreOptions}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{processList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tkey={item?.process_id}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={item?.process_name ?? \"\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.process?.process_id === item?.process_id ? \"contained\" : \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setProcess(item);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{item?.process_name ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={statusAnchorEl}\r\n\t\t\t\topen={Boolean(statusAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAgentStatus}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{!breaksList || breaksList?.length === 0 ? (\r\n\t\t\t\t\t<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t) : (\r\n\t\t\t\t\tbreaksList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\t\t\tkey={item?.type}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t// hilight background of selected\r\n\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"transparent\",\r\n\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"white\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\":hover\": {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"primary.dark\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"selected.hover\",\r\n\t\t\t\t\t\t\t\t\t\t// color:\r\n\t\t\t\t\t\t\t\t\t\t// \tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t// \t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t// \t:\t\"primary.main\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => handleUpdateAgentStatus(item?.type)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t- {item?.type}\r\n\t\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\topen={Boolean(anchorEl)}\r\n\t\t\t\tonClose={handleCloseQueueCounts}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Layers color=\"secondary\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Waiting - 25\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Pending color=\"info\" />}\r\n\t\t\t\t\t\tlabel=\"Pending - 99+\"\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Upcoming color=\"success\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Upcoming - 66\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t{Boolean(state.openConferenceDialog) && <ConferenceDialog />}\r\n\r\n\t\t\t{Boolean(state.openCallTransferDialog) && (\r\n\t\t\t\t<CallTransferDialog open={state.openCallTransferDialog} />\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallDisposition) && (\r\n\t\t\t\t<EndCallDispositionDialog\r\n\t\t\t\t\topen={openCallDisposition}\r\n\t\t\t\t\tsetOpen={setOpenCallDisposition}\r\n\t\t\t\t\tonSubmitDisposition={handleEndCall}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallHistoryDialog) && (\r\n\t\t\t\t<CallHistoryDialog\r\n\t\t\t\t\topen={openCallHistoryDialog}\r\n\t\t\t\t\tsetOpen={setOpenCallHistoryDialog}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M13 4 2 20h17l3-16zm1.5 10c-1.38 0-2.5-1.12-2.5-2.5S13.12 9 14.5 9s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n}), 'Airlines');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56-.35-.12-.74-.03-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99\"\n}), 'Call');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m14 4 2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z\"\n}), 'CallSplit');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15 9H9v6h6zm-2 4h-2v-2h2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2zm-4 6H7V7h10z\"\n}), 'MemoryOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m17.34 14.54-1.43-1.43c.56-.73 1.05-1.5 1.47-2.32l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 3.98-1.37 7.64-3.66 10.54m-2.82 2.81C11.63 19.64 7.97 21 4 21c-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c.81-.42 1.58-.9 2.3-1.46L1.39 4.22l1.42-1.41L21.19 21.2l-1.41 1.41z\"\n}), 'PhoneDisabled');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"circle\", {\n cx: \"9\",\n cy: \"9\",\n r: \"4\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4m7.76-9.64-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27M20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14\"\n}, \"1\")], 'RecordVoiceOver');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M13 18h-2v-2h2zm2-4H9v6h6zm4-4.7V4h-3v2.6L12 3 2 12h3l7-6.31L19 12h3z\"\n}), 'Roofing');","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport Airlines from \"@mui/icons-material/Airlines\";\r\nimport Call from \"@mui/icons-material/Call\";\r\nimport CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport CallSplit from \"@mui/icons-material/CallSplit\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport MemoryOutlined from \"@mui/icons-material/MemoryOutlined\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport PhoneDisabled from \"@mui/icons-material/PhoneDisabled\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport RecordVoiceOver from \"@mui/icons-material/RecordVoiceOver\";\r\nimport Roofing from \"@mui/icons-material/Roofing\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tDialog,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTypography,\r\n\tAutocomplete,\r\n\tTooltip,\r\n\tuseTheme,\r\n\tTableContainer,\r\n\tTable,\r\n\tTableHead,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTableBody,\r\n\tCircularProgress,\r\n\tCheckbox,\r\n} from \"@mui/material\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nimport { useGetRequest, usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { ConferenceLineTypes, CallStatus } from \"../../types\";\r\n\r\ntype TransferCallRequest = {\r\n\tmobile_number?: string;\r\n\tuserid?: string;\r\n\ttype?: string;\r\n\ttransfer_to?: string;\r\n\tcallreferenceid?: string;\r\n\tprocessid?: string;\r\n\tprocess_name?: string;\r\n};\r\n\r\ntype BlindTransferCallRequest = {\r\n\taction: string;\r\n\tuserid: string;\r\n\tcallreferenceid: string;\r\n\tblind_transfer_no: any;\r\n};\r\n\r\nconst ConferenceTableRow = ({ each, isLineDialing }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst theme = useTheme();\r\n\tconst { showToast } = useToast();\r\n\tconst { disabled, enabled } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst [conferenceCallStart, setConferenceCallStart] = useState(false);\r\n\tconst [conferenceCallMerge, setConferenceCallMerge] = useState(false);\r\n\tconst [conferenceCallHoldOrUnHold, setConferenceCallHoldOrUnHold] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\r\n\r\n\t// While any line is still dialing or on call (i.e. being set up before it joins\r\n\t// the conference), holding/resuming any line must be blocked.\r\n\tconst anyLineDialingOrOnCall = state?.conferenceLine?.some(\r\n\t\t(line: any) => line?.status === CallStatus.DIALING || line?.status === CallStatus.ONCALL,\r\n\t);\r\n\r\n\t// Hold/Resume is only actionable on lines already in the conference or on hold.\r\n\t// A dialing/on-call line is therefore disabled (its status isn't CONFERENCE/HOLD),\r\n\t// and while any line is still dialing or on call every line's Hold is disabled.\r\n\t// Also disabled while a hold/unhold request is in flight.\r\n\tconst holdEnabled =\r\n\t\t(each?.status === CallStatus.CONFERENCE || each?.status === CallStatus.HOLD) &&\r\n\t\t!anyLineDialingOrOnCall &&\r\n\t\t!conferenceCallHoldOrUnHold;\r\n\r\n\t// Check if the entered phone number is same as the active call number (used only as a call guard, not for UI error)\r\n\tconst isSameAsActiveCall = each?.phone === state.callData?.phone_number && !!each?.phone;\r\n\r\n\t// Show error on the DUPLICATE occurrence: any lower-numbered conference line already has the same phone\r\n\tconst isDuplicateInConference =\r\n\t\t!!each?.phone &&\r\n\t\teach?.line !== 1 &&\r\n\t\t(state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(line) => line.line < each.line && line.phone === each?.phone && !!line.phone,\r\n\t\t);\r\n\r\n\t// Only flag duplicates — no error on line 1 (active call) and no error on the first use of a number\r\n\tconst hasPhoneConflict = isDuplicateInConference;\r\n\r\n\tconst phoneConflictHelperText = isDuplicateInConference ? \"Number already used in another conference line\" : \"\";\r\n\r\n\tconst onConferenceLineUpdate = (line: ConferenceLineTypes, data: any) => {\r\n\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\r\n\t};\r\n\r\n\tconst onConferenceCallStart = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// Block dialing the same number as the active call\r\n\t\tif (line_used.phone === state.callData?.phone_number) {\r\n\t\t\tshowToast(\"Cannot conference with the active call number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Block dialing a number already used in another conference line\r\n\t\tconst isDuplicateNumber = (state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(l) => l.line !== line_used.line && l.phone === line_used.phone && !!l.phone,\r\n\t\t);\r\n\t\tif (isDuplicateNumber) {\r\n\t\t\tshowToast(\"Number already used in another conference line\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!line_used.phone || line_used.phone.length < 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallStart(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t// line_used: Number(line_used.line),\r\n\t\t\t// thirdparty_no: line_used.phone,\r\n\t\t\ttarget: line_used.phone,\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallStart(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onMergeConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallMerge(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CONFERENCE`,\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_MERGE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (state.callData?.hold === 1) {\r\n\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t}\r\n\t\t\t\tif (state.callData?.mute === 1) {\r\n\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t}\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallMerge(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onHoldOrUnHoldConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: type === \"HOLDUSER\" ? \"HOLD\" : \"UNHOLD\",\r\n\t\t\toperation: type,\r\n\t\t\thold_channel_no: type === \"HOLDUSER\" ? `hold${line_used.line}` : `unhold${line_used.line}`,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_HOLD_OR_UN_HOLD, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallHoldOrUnHold(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onEndConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// ✅ FIX: Prevent accidental hangup of the primary call channel via conference controls\r\n\t\tif (line_used.line === 1) {\r\n\t\t\tshowToast(\"Cannot end the primary call from conference controls\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallEnd(true);\r\n\r\n\t\t// Backend HangupRequest schema: call_id (required), agent_id, mobile_number,\r\n\t\t// line_number, reason. Pass line_number = the conference line being dropped\r\n\t\t// (line_number = 0 means full-call hangup, so it must be > 0 here).\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tmobile_number: line_used.phone ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEnd(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst [holdOrUnHold] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<TableRow\r\n\t\t\tkey={each.line}\r\n\t\t\tsx={{\r\n\t\t\t\tborder: \"2px solid #fff\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography>Line {each?.line ?? \"\"}. </Typography>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography\r\n\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tpx: 1,\r\n\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.status ?? \"\"}\r\n\t\t\t\t</Typography>\r\n\t\t\t</TableCell>\r\n\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<TextField\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\tplaceholder=\"Phone Number\"\r\n\t\t\t\t\tfullWidth\r\n\t\t\t\t\tvalue={each?.phone || \"\"}\r\n\t\t\t\t\terror={hasPhoneConflict}\r\n\t\t\t\t\thelperText={phoneConflictHelperText}\r\n\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\tCallStatus.DISCONNECTED,\r\n\t\t\t\t\t\t\tCallStatus.CONFERENCE,\r\n\t\t\t\t\t\t\tCallStatus.HOLD,\r\n\t\t\t\t\t\t\tCallStatus.MUTE,\r\n\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t].includes(each?.status ?? \"\") ||\r\n\t\t\t\t\t\tisLineDialing\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\tonConferenceLineUpdate(each, { phone: v });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tgap: \"10px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: holdEnabled ? \"#fff\" : \"inherit\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tUnhold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ color: holdEnabled ? \"#fff\" : \"inherit\", fontSize: \"12px\" }}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tHold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (() => {\r\n\t\t\t\t\t\tconst hasMinDigits = (each?.phone?.length ?? 0) >= 3;\r\n\t\t\t\t\t\tconst callDisabled =\r\n\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE ||\r\n\t\t\t\t\t\t\tisLineDialing ||\r\n\t\t\t\t\t\t\thasPhoneConflict ||\r\n\t\t\t\t\t\t\t!hasMinDigits;\r\n\t\t\t\t\t\tconst tooltipTitle = hasPhoneConflict\r\n\t\t\t\t\t\t\t? phoneConflictHelperText || \"Cannot dial this number\"\r\n\t\t\t\t\t\t\t: !each?.phone\r\n\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t: \"Call\";\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={callDisabled ? \"outlined\" : \"contained\"}\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\tcallDisabled\r\n\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tonConferenceCallStart(each, {});\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={callDisabled}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallStart ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"success\" />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Call\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: callDisabled ? \"default\" : \"#f3f2f2\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})()}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Merge Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.ONCALL ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.ONCALL ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonMergeConferenceCall(each, { isMergeCall: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== CallStatus.ONCALL}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ? <CircularProgress size=\"20px\" /> : <CallSplit />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t) : each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"End Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED\r\n\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED ?\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.IDLE ||\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.DISCONNECTED ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallEnd\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallEnd ? <CircularProgress size=\"20px\" color=\"error\" /> : <CallEnd />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</TableCell>\r\n\t\t</TableRow>\r\n\t);\r\n};\r\n\r\nexport function ConferenceDialog() {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [conferenceCallEndAll, setConferenceCallEndAll] = useState(false);\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t};\r\n\r\n\tconst onEndAllConferenceCalls = () => {\r\n\t\tsetConferenceCallEndAll(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"ENDCONFERENCE\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END_ALL, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEndAll(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst handleTransferConferenceCall = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"TRANSFERAPI\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_TRANSFER, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t\t// ✅ FIX: Do NOT call sdkStateManager.endCall() here.\r\n\t\t\t\t// The WebSocket will push the correct WRAPUP event — let it drive state.\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst isLineDialing = state?.conferenceLine?.some((item) => item?.status === CallStatus.DIALING);\r\n\tconst conferenceLineCount =\r\n\t\tstate?.conferenceLine?.filter((item) => item?.status === CallStatus.CONFERENCE)?.length ?? 0;\r\n\r\n\tconst isHold = state?.conferenceLine?.some((item) => item?.status === CallStatus.HOLD);\r\n\tconst isOnCall = state?.conferenceLine?.some((item) => item?.status === CallStatus.ONCALL);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={state.openConferenceDialog}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 800 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"0px 16px\",\r\n\t\t\t\t\t\t\tpaddingBottom: \"6px\",\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tcolor=\"primary.main\"\r\n\t\t\t\t\t\t\tsx={{ textTransform: \"uppercase\", fontWeight: \"bold\", fontSize: \"14px\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{state?.agentId ?? \"\"} conference\r\n\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\tonClick={handleTransferConferenceCall}\r\n\t\t\t\t\t\t\t\tdisabled={conferenceLineCount <= 1 || isHold || isLineDialing || isOnCall}\r\n\t\t\t\t\t\t\t\tstartIcon={<TransferWithinAStation />}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tExit Conference\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Close sx={{ color: \"primary.main\" }} />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"0px 15px\",\r\n\t\t\t\t\t\t\tborderRadius: \"20px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TableContainer\r\n\t\t\t\t\t\t\tcomponent={Paper}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\toutline: \"0px solid gray !important\",\r\n\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 6px #e7e5e5ff\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Table sx={{ border: \"4px solid #ffffff !important\" }}>\r\n\t\t\t\t\t\t\t\t<TableHead>\r\n\t\t\t\t\t\t\t\t\t<TableRow sx={{ border: \"2px solid #f3f3f3ff !important\" }}>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Line</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Status</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Mobile Number</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Call Actions</TableCell>\r\n\t\t\t\t\t\t\t\t\t</TableRow>\r\n\t\t\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t\t\t\t<TableBody>\r\n\t\t\t\t\t\t\t\t\t{state?.conferenceLine.map((each: any) => (\r\n\t\t\t\t\t\t\t\t\t\t<ConferenceTableRow key={each.line} each={each} isLineDialing={isLineDialing} />\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</TableBody>\r\n\t\t\t\t\t\t\t</Table>\r\n\t\t\t\t\t\t</TableContainer>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box sx={{ textAlign: \"center\", m: 2 }}>\r\n\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndConference ? \"End Conference feature is disabled\" : \"\"}>\r\n\t\t\t\t\t\t\t<Box component=\"span\">\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\tonClick={onEndAllConferenceCalls}\r\n\t\t\t\t\t\t\t\t\tdisabled={conferenceCallEndAll || conferenceLineCount <= 0 || state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"20px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{conferenceCallEndAll ? (\r\n\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ marginRight: \"8px\" }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.dark\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<PhoneDisabled sx={{ color: state.sdkConfig?.disableEndConference ? \"action.disabled\" : \"white\", fontSize: \"16px\", fontWeight: \"600\" }} />\r\n\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tEnd Conference\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallTransferDialog({ open }: any) {\r\n\tconst state = useSDKState();\r\n\tconst [mobileNumber, setMobileNumber] = useState(\"\");\r\n\r\n\t// ✅ FIX: Removed sdkStateManager.endCall() and sdkStateManager.resetConferenceLines()\r\n\t// from onSuccess. These were forcing the initial agent to IDLE immediately on the\r\n\t// client side, before the WebSocket pushed the correct WRAPUP event.\r\n\t// For a blind transfer the server will push:\r\n\t// - Initial agent → WRAPUP (via WebSocket)\r\n\t// - Transferred-to agent → RINGING → ONCALL (via WebSocket)\r\n\t// We must NOT touch local call state here — only close the dialog.\r\n\tconst [transferCall, { isLoading: isTransferLoading }] = usePostRequest<TransferCallRequest>({\r\n\t\tonSuccess: () => {\r\n\t\t\t// Close dialog only. Let WebSocket events drive all state transitions.\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [initiateConsultCall] = usePostRequest<any>({});\r\n\r\n\tconst [completeConsultTransfer, { isLoading: isCompleteConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [cancelConsultTransfer, { isLoading: isCancelConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [currentselecteTab, setCurrentselecteTab] = useState(\"queues\");\r\n\tconst [transferMenuAnchor, setTransferMenuAnchor] = useState<null | HTMLElement>(null);\r\n\tconst [pendingTransferData, setPendingTransferData] = useState<{ data: any; type: string } | null>(null);\r\n\r\n\tconst blindEnabled = !state.sdkConfig?.disableBlindTransfer;\r\n\tconst attendedEnabled = !state.sdkConfig?.disableAttendedTransfer;\r\n\tconst enabledTransferModeCount = (blindEnabled ? 1 : 0) + (attendedEnabled ? 1 : 0);\r\n\tconst singleTransferMode: \"DEFAULT\" | \"CONSULT\" | null =\r\n\t\tenabledTransferModeCount === 1 ? (blindEnabled ? \"DEFAULT\" : \"CONSULT\") : null;\r\n\r\n\tconst [getIdelAgentsList, { data: idleAgentsList, isLoading: isIdleAgentsListLoading }] =\r\n\t\tusePostRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetHospitalsServicesList,\r\n\t\t{ data: hospitalsServicesList, isLoading: isHospitalsServicesListLoading },\r\n\t] = useGetRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetProcessAndQueuesList,\r\n\t\t{ data: processAndQueuesList, isLoading: isProcessAndQueuesListLoading },\r\n\t] = usePostRequest<{\r\n\t\tstatus: string;\r\n\t\tactive: boolean;\r\n\t\tprocess?: any[];\r\n\t\tqueue?: any[];\r\n\t}>({ disabledSuccessToast: true });\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t};\r\n\r\n\tconst handleTransferCall = (data: any, type: string, mode: \"CONSULT\" | \"DEFAULT\" = \"DEFAULT\") => {\r\n\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\tif (type === \"PROCESS\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"PROCESS\",\r\n\t\t\t\ttransfer_to: data?.process_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"QUEUE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"QUEUE\",\r\n\t\t\t\ttransfer_to: data?.queue_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"AGENT\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"AGENT\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttransfer_to: data?.user_id?.toString() ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t} else if (type === \"OTHER\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\t// action: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND_TRANSFER\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttype: \"OTHER\",\r\n\t\t\t\ttransfer_to: data?.mobile_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\t// blind_transfer_no: data?.mobile_number ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleTransferClick = (e: React.MouseEvent<HTMLElement>, data: any, type: string) => {\r\n\t\tif (singleTransferMode) {\r\n\t\t\thandleTransferCall(data, type, singleTransferMode);\r\n\t\t} else {\r\n\t\t\tsetPendingTransferData({ data, type });\r\n\t\t\tsetTransferMenuAnchor(e.currentTarget);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, { status: \"ACTIVE\", active: true });\r\n\t\tgetHospitalsServicesList(END_POINT.HOSPITALS_SERVICES);\r\n\t}, []);\r\n\r\n\t// Auto-refresh the idle agents list every 3s, but only while the dialog is\r\n\t// open and the Agents tab is selected. The list is volatile (agents go\r\n\t// idle/busy constantly), so we keep it fresh; the interval is torn down as\r\n\t// soon as the user leaves the tab or closes the dialog.\r\n\tuseEffect(() => {\r\n\t\tif (!open || currentselecteTab !== \"agents\") return;\r\n\t\tconst intervalId = setInterval(() => {\r\n\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t}, 2000);\r\n\t\treturn () => clearInterval(intervalId);\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [open, currentselecteTab]);\r\n\r\n\t// Only block the dialog with the loader on the *initial* agents fetch. Once\r\n\t// we have data, background refreshes update the list silently (no flicker).\r\n\tconst idleAgentsLoaderActive = isIdleAgentsListLoading && !idleAgentsList?.data;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"lg\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 900 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t\tposition: \"relative\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ flex: 1 }}> Call Transfer</Typography>\r\n\t\t\t\t\t\t<Box sx={{ position: \"absolute\", left: \"50%\", transform: \"translateX(-50%)\" }}>\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.RINGING && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n\t\t\t\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ whiteSpace: \"nowrap\" }}>\r\n\t\t\t\t\t\t\t\t\t\tTrying to consult\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={{ display: \"inline-flex\", gap: \"3px\", alignItems: \"flex-end\", height: \"14px\" }}>\r\n\t\t\t\t\t\t\t\t\t\t{[0, 1, 2].map((i) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box key={i} component=\"span\" sx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"@keyframes jumpDot\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"0%, 60%, 100%\": { transform: \"translateY(0)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"30%\": { transform: \"translateY(-5px)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"jumpDot 1s ease-in-out infinite\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimationDelay: `${i * 0.15}s`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}>.</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCompleteConsultLoading ? <CircularProgress size={14} /> : <TransferWithinAStation sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCompleteConsultLoading || isCancelConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcompleteConsultTransfer(END_POINT.TRANSFER_COMPLETE, {}, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparams: { call_uuid: state.consultInfo.call_uuid },\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCancelConsultLoading ? <CircularProgress size={14} /> : <PhoneDisabled sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCancelConsultLoading || isCompleteConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcancelConsultTransfer(END_POINT.TRANSFER_CANCEL, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: state.consultInfo.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparticipant_identifier: state.consultInfo.participant_identifier,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tchannel_id: state.consultInfo.channel_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcall_uuid: state.consultInfo.call_uuid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbridge_id: state.consultInfo.bridge_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tCancel\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t<Box sx={{ flex: 1, display: \"flex\", justifyContent: \"flex-end\" }}>\r\n\t\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box sx={{ margin: \"10px\", borderRadius: \"10px\" }}>\r\n\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, margin: \"10px\" }}>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"process\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"process\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tProcess\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"queues\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"queues\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tQueues\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"agents\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"agents\");\r\n\t\t\t\t\t\t\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tAgents\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* {!state.sdkConfig?.disableBlindTransfer && ( */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"others\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"others\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tOthers\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* )} */}\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading ||\r\n\t\t\t\t\t\t\tidleAgentsLoaderActive ||\r\n\t\t\t\t\t\t\tisHospitalsServicesListLoading ||\r\n\t\t\t\t\t\t\tisTransferLoading) && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\theight: \"80px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<CircularProgress />\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MemoryOutlined sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(process, \"PROCESS\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Process Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.map((queue: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Airlines sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{queue.queue_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(queue, \"QUEUE\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Queues Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data && idleAgentsList?.data?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{idleAgentsList?.data && idleAgentsList?.data?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data?.map((agent: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{agent.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, agent, \"AGENT\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Agents Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"others\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(2, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{hospitalsServicesList?.data &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.map((service: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Roofing sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={`${service?.description ?? \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ color: \"text.secondary\" }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service.name}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"9px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service?.description ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : (service?.phone_number ?? \"\")}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: service?.phone_number ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{(() => {\r\n\t\t\t\t\t\t\t\t\t\t\tconst isSameAsActiveCall =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!mobileNumber && mobileNumber === (state.callData?.phone_number ?? \"\");\r\n\t\t\t\t\t\t\t\t\t\t\tconst hasMinDigits = mobileNumber.length >= 3;\r\n\t\t\t\t\t\t\t\t\t\t\tconst transferDisabled =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!state.consultInfo || !hasMinDigits || isSameAsActiveCall;\r\n\t\t\t\t\t\t\t\t\t\t\tconst tooltipTitle = state.consultInfo\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Please complete or cancel the ongoing consult transfer before proceeding.\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: isSameAsActiveCall\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Cannot transfer to the same number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: !mobileNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `Call To - ${mobileNumber}`;\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"others\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={mobileNumber}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror={isSameAsActiveCall}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={isSameAsActiveCall ? \"Cannot transfer to the same number\" : \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMobileNumber(v);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformHelperText: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"normal\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twordBreak: \"break-word\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={transferDisabled}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: mobileNumber ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t})()}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\r\n\t\t\t{/* Transfer Mode Menu */}\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={transferMenuAnchor}\r\n\t\t\t\topen={Boolean(transferMenuAnchor)}\r\n\t\t\t\tonClose={() => setTransferMenuAnchor(null)}\r\n\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"left\" }}\r\n\t\t\t\ttransformOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\r\n\t\t\t>\r\n\t\t\t\t{blindEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"DEFAULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TransferWithinAStation fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t\t{attendedEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"CONSULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<RecordVoiceOver fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tConsult then Transfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [getDispositions, data] = useGetRequest();\r\n\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\tcallbackDate: \"\",\r\n\t\tcallbackHrs: \"\",\r\n\t\tcallbackMins: \"\",\r\n\t\tselected_break: false,\r\n\t\tnotes: \"\",\r\n\t});\r\n\tconst followUpOptions = [\r\n\t\t{ label: \"Yes\", value: \"Y\" },\r\n\t\t{ label: \"No\", value: \"N\" },\r\n\t];\r\n\r\n\tconst handleChange = (\r\n\t\tfield: keyof typeof formData,\r\n\t\tvalue: { label: string } | null | string | boolean\r\n\t) => {\r\n\t\tsetFormData((prev) => ({ ...prev, [field]: value }));\r\n\t};\r\n\r\n\tconst handleReset = () => {\r\n\t\tsetFormData({\r\n\t\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\tcallbackDate: \"\",\r\n\t\t\tcallbackHrs: \"\",\r\n\t\t\tcallbackMins: \"\",\r\n\t\t\tselected_break: false,\r\n\t\t\tnotes: \"\",\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\thandleReset();\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetDispositions(END_POINT.DISPOSITIONS);\r\n\t}, []);\r\n\r\n\tconst dispositionsOptions = useMemo(() => {\r\n\t\treturn (\r\n\t\t\tdata?.data?.data\r\n\t\t\t\t?.filter((item: any) => item.name !== \"Resolved\")\r\n\t\t\t\t?.map((item: any) => ({\r\n\t\t\t\t\tlabel: item.name,\r\n\t\t\t\t\tvalue: item.code,\r\n\t\t\t\t\tid: item.disposition_id,\r\n\t\t\t\t}))\r\n\t\t\t\t?.sort((a: any, b: any) => a.label.localeCompare(b.label)) || []\r\n\t\t);\r\n\t}, [data?.data?.data]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"sm\"}\r\n\t\t\t\tfullWidth\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 600 } } }}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tminWidth: '650px'\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tsx={{ m: 1 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\t\tCall Disposition\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\tvalue={formData.disposition}\r\n\t\t\t\t\t\t\t\toptions={dispositionsOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"disposition\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Disposition\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\toptions={followUpOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.followUp}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"followUp\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Follow Up\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{/* <Autocomplete\r\n\t\t\t\t\t\t\t\toptions={breakOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.selected_break}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"selected_break\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Break\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tflex: \"1\",\r\n\t\t\t\t\t\t\t\t\tborder: \"1px solid #bdbdbd\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"5px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\t\tname=\"selected_break\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tchecked={formData.selected_break}\r\n\t\t\t\t\t\t\t\t\tonChange={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"selected_break\", event.target.checked);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinput: { \"aria-label\": \"controlled\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t\t\tMark as break\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" ? (\r\n\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Callback Date\"\r\n\t\t\t\t\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinputLabel: { shrink: true },\r\n\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\tmin: new Date().toISOString().split(\"T\")[0],\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackDate}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackDate\", e.target.value);\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = e.target.value === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tif (isToday) {\r\n\t\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\t\tconst currentHr = now.getHours();\r\n\t\t\t\t\t\t\t\t\t\t\tif (formData.callbackHrs && Number(formData.callbackHrs) < currentHr) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackHrs\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (formData.callbackHrs && Number(formData.callbackHrs) === currentHr && formData.callbackMins && Number(formData.callbackMins) < now.getMinutes()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<Box sx={{ flex: 1 }}></Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 24 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\treturn isToday && Number(option) < new Date().getHours();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackHrs || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackHrs\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Hours (0-23)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 60 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\tconst isCurrentHr = isToday && formData.callbackHrs === String(now.getHours()).padStart(2, \"0\");\r\n\t\t\t\t\t\t\t\t\t\treturn isCurrentHr && Number(option) < now.getMinutes();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackMins || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackMins\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Minutes (0-59)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t<Box sx={{ mt: 2 }}>\r\n\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\tlabel=\"Notes\"\r\n\t\t\t\t\t\t\t\tmultiline\r\n\t\t\t\t\t\t\t\tminRows={2}\r\n\t\t\t\t\t\t\t\tmaxRows={4}\r\n\t\t\t\t\t\t\t\tvalue={formData.notes}\r\n\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"notes\", e.target.value)}\r\n\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{ textAlign: \"right\", m: 2 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tcancel\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"contained\"\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={() => onSubmitDisposition(formData)}\r\n\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"10px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tSubmit\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function ProcessorListDialog({\r\n\topen,\r\n\tsetOpen,\r\n\tprocessList = null,\r\n\thandleSelectedProcessor,\r\n}: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={false}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Process List</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"6px 10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{processList.length > 0 ?\r\n\t\t\t\t\t\t\tprocessList?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\thandleSelectedProcessor(process);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallHistoryDialog({ open, setOpen }: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Call History</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\tp: 6,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tComing Soon...\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type AxiosRequestConfig } from \"axios\";\r\nimport { useCallback, useReducer } from \"react\";\r\n\r\nimport axiosInstance from \"./axios\";\r\nimport { useToast } from \"./toastMessage\";\r\nimport {\r\n\tRequestResult,\r\n\tUseGetRequest,\r\n\tRequestOptions,\r\n\tUsePostRequest,\r\n\tUsePutRequest,\r\n\tUseDeleteRequest,\r\n\tUsePatchRequest,\r\n} from \"../../types\";\r\n\r\nconst initialState = {\r\n\tisLoading: false,\r\n\tisSuccess: false,\r\n\tisError: false,\r\n\terror: null,\r\n\tdata: null,\r\n};\r\n\r\nconst reducer = (state: typeof initialState, action: { type: string; payload: any }) => {\r\n\tif (action.type === \"isLoading\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisLoading: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isSuccess\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisSuccess: true,\r\n\t\t\tdata: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isError\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisError: true,\r\n\t\t\terror: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"reset\") {\r\n\t\treturn {\r\n\t\t\tisLoading: false,\r\n\t\t\tisSuccess: false,\r\n\t\t\tisError: false,\r\n\t\t\terror: null,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\tthrow Error(\"Unknown action.\");\r\n};\r\n\r\nexport const useGetRequest = <T = UseGetRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst getRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [getRequest, state];\r\n};\r\n\r\nexport const usePostRequest = <T = UsePostRequest>(\r\n\tprops: RequestOptions = {}\r\n): [\r\n\t(_url: string, _payload: T, _config?: AxiosRequestConfig) => Promise<any>,\r\n\tRequestResult<T>,\r\n] => {\r\n\tconst { onSuccess = null, onError = null, disabledSuccessToast = false } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst postRequest = useCallback(\r\n\t\tasync (url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst res = await axiosInstance.post(url, payload, config);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\tif (!disabledSuccessToast) {\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (err: any) {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t}\r\n\t\t\t} finally {\r\n\t\t\t\tdispatch({\r\n\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\tpayload: false,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [postRequest, state];\r\n};\r\n\r\nexport const usePutRequest = <T = UsePutRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst putRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.put(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [putRequest, state];\r\n};\r\n\r\nexport const useDeleteRequest = <T = UseDeleteRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst deleteRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.delete(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [deleteRequest, state];\r\n};\r\n\r\nexport const usePatchRequest = <T = UsePatchRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst patchRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.patch(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [patchRequest, state];\r\n};\r\n","import { SxProps, useTheme } from \"@mui/material\";\r\n\r\nconst useStyles = ({\r\n disabled,\r\n enabled,\r\n outlined,\r\n}: {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n}): {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n} => {\r\n const theme = useTheme();\r\n return {\r\n disabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n opacity: 0.6,\r\n boxShadow: \"none\",\r\n cursor: \"not-allowed\",\r\n height: \"40px\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n },\r\n \"&:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n },\r\n // MUI sets `pointer-events: none` on disabled buttons, which hides the\r\n // cursor. Re-enable pointer events so `not-allowed` shows; the native\r\n // `disabled` attribute still blocks the click. Re-enabling pointer events\r\n // also revives MUI's hover/active visuals, so pin the muted look across\r\n // every interactive state — the button must never appear to \"light up\".\r\n \"&.Mui-disabled\": {\r\n pointerEvents: \"auto\",\r\n cursor: \"not-allowed\",\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n \"&:hover, &:focus, &:focus-visible, &:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n },\r\n },\r\n ...disabled,\r\n },\r\n enabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...enabled,\r\n },\r\n outlined: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n backgroundColor: theme.palette.grey[200],\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.light}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.main}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...outlined,\r\n },\r\n };\r\n};\r\n\r\nexport default useStyles;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type MouseEvent, type TouchEvent, useCallback, useRef, useState } from \"react\";\r\n\r\ninterface Position {\r\n\tx: number;\r\n\ty: number;\r\n}\r\n\r\ninterface UseDraggableReturn {\r\n\tposition: Position;\r\n\tisDragging: boolean;\r\n\tdragRef: any;\r\n\thandleMouseDown: (_e: MouseEvent<HTMLDivElement>) => void;\r\n\thandleTouchStart: (_e: TouchEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport function useDraggable(\r\n\tinitialPosition: Position,\r\n\tonPositionChange?: (_position: Position) => void\r\n): UseDraggableReturn {\r\n\tconst [position, setPosition] = useState<Position>(initialPosition);\r\n\r\n\tconst [isDragging, setIsDragging] = useState(false);\r\n\r\n\tconst dragRef = useRef<HTMLDivElement>();\r\n\r\n\tconst dragStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst elementStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst updatePosition = useCallback(\r\n\t\t(newPosition: Position) => {\r\n\t\t\tconst element = dragRef.current;\r\n\t\t\tif (!element) return;\r\n\r\n\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\tconst viewportWidth = window.innerWidth;\r\n\t\t\tconst viewportHeight = window.innerHeight;\r\n\r\n\t\t\tconst constrainedPosition = {\r\n\t\t\t\tx: Math.max(0, Math.min(newPosition.x, viewportWidth - rect.width)),\r\n\t\t\t\ty: Math.max(0, Math.min(newPosition.y, viewportHeight - rect.height)),\r\n\t\t\t};\r\n\r\n\t\t\tsetPosition(constrainedPosition);\r\n\t\t\tonPositionChange?.(constrainedPosition);\r\n\t\t},\r\n\t\t[onPositionChange]\r\n\t);\r\n\r\n\tconst handleStart = useCallback(\r\n\t\t(clientX: number, clientY: number) => {\r\n\t\t\tsetIsDragging(true);\r\n\t\t\tdragStart.current = { x: clientX, y: clientY };\r\n\t\t\telementStart.current = position;\r\n\r\n\t\t\tconst handleMove = (moveClientX: number, moveClientY: number) => {\r\n\t\t\t\tconst deltaX = moveClientX - dragStart.current.x;\r\n\t\t\t\tconst deltaY = moveClientY - dragStart.current.y;\r\n\r\n\t\t\t\tupdatePosition({\r\n\t\t\t\t\tx: elementStart.current.x + deltaX,\r\n\t\t\t\t\ty: elementStart.current.y + deltaY,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst handleMouseMove = (e: globalThis.MouseEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\thandleMove(e.clientX, e.clientY);\r\n\t\t\t};\r\n\r\n\t\t\tconst handleTouchMove = (e: globalThis.TouchEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst touch = e.touches[0];\r\n\t\t\t\tif (touch) {\r\n\t\t\t\t\thandleMove(touch.clientX, touch.clientY);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst handleEnd = () => {\r\n\t\t\t\tsetIsDragging(false);\r\n\t\t\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\t\tdocument.removeEventListener(\"mouseup\", handleEnd);\r\n\t\t\t\tdocument.removeEventListener(\"touchmove\", handleTouchMove);\r\n\t\t\t\tdocument.removeEventListener(\"touchend\", handleEnd);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.addEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\tdocument.addEventListener(\"mouseup\", handleEnd);\r\n\t\t\tdocument.addEventListener(\"touchmove\", handleTouchMove, {\r\n\t\t\t\tpassive: false,\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener(\"touchend\", handleEnd);\r\n\t\t},\r\n\t\t[position, updatePosition]\r\n\t);\r\n\r\n\tconst handleMouseDown = useCallback(\r\n\t\t(e: MouseEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\thandleStart(e.clientX, e.clientY);\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\tconst handleTouchStart = useCallback(\r\n\t\t(e: TouchEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst touch = e.touches[0];\r\n\t\t\tif (touch) {\r\n\t\t\t\thandleStart(touch.clientX, touch.clientY);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\treturn {\r\n\t\tposition,\r\n\t\tisDragging,\r\n\t\tdragRef,\r\n\t\thandleMouseDown,\r\n\t\thandleTouchStart,\r\n\t};\r\n}\r\n","// micController.ts\r\n\r\nexport type MicController = {\r\n\tstart: () => Promise<void>;\r\n\tstop: () => void;\r\n\tmute: () => void;\r\n\tunmute: () => void;\r\n\ttoggleMute: () => void;\r\n\tisMuted: () => boolean;\r\n\tgetStream: () => MediaStream | null;\r\n};\r\n\r\nexport function createMicController(\r\n\tconstraints: MediaStreamConstraints = { audio: true }\r\n): MicController {\r\n\tlet stream: MediaStream | null = null;\r\n\tlet muted = false;\r\n\r\n\tasync function start() {\r\n\t\tif (stream) return; // already started\r\n\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\r\n\t\t// default: unmuted\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = true));\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction setEnabled(enabled: boolean) {\r\n\t\tif (!stream) return;\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = enabled));\r\n\t\tmuted = !enabled;\r\n\t}\r\n\r\n\tfunction mute() {\r\n\t\tsetEnabled(false);\r\n\t}\r\n\r\n\tfunction unmute() {\r\n\t\tsetEnabled(true);\r\n\t}\r\n\r\n\tfunction toggleMute() {\r\n\t\tif (muted) {\r\n\t\t\tunmute();\r\n\t\t} else {\r\n\t\t\tmute();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction stop() {\r\n\t\tif (!stream) return;\r\n\t\tstream.getTracks().forEach((t) => t.stop());\r\n\t\tstream = null;\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction isMuted() {\r\n\t\treturn muted;\r\n\t}\r\n\r\n\tfunction getStream() {\r\n\t\treturn stream;\r\n\t}\r\n\r\n\treturn {\r\n\t\tstart,\r\n\t\tstop,\r\n\t\tmute,\r\n\t\tunmute,\r\n\t\ttoggleMute,\r\n\t\tisMuted,\r\n\t\tgetStream,\r\n\t};\r\n}\r\n","/**\r\n * Audio loader utility for handling MP3 files as buffers/blobs\r\n * This ensures the audio works correctly in bundled npm packages\r\n */\r\n\r\n// Import the MP3 file - bundler will handle this\r\n// @ts-ignore - MP3 module declaration\r\nimport incomingRingtoneUrl from \"../ringtones/incoming.mp3\";\r\n\r\nlet audioBlobUrl: string | null = null;\r\nlet audioBuffer: ArrayBuffer | null = null;\r\n\r\n/**\r\n * Loads the audio file as a blob URL for reliable playback\r\n * @returns Promise<string> - Blob URL or direct URL for the audio file\r\n */\r\nexport async function loadAudioAsBlob(): Promise<string> {\r\n\tif (audioBlobUrl) {\r\n\t\treturn audioBlobUrl;\r\n\t}\r\n\r\n\t// If the URL is already a data URL or absolute URL, use it directly\r\n\tif (\r\n\t\tincomingRingtoneUrl.startsWith(\"data:\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"http://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"https://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"blob:\")\r\n\t) {\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Try to fetch and convert to blob URL\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`HTTP ${response.status}: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\tconst blob = await response.blob();\r\n\r\n\t\t// Verify it's a valid blob\r\n\t\tif (blob.size === 0) {\r\n\t\t\tthrow new Error(\"Empty blob\");\r\n\t\t}\r\n\r\n\t\taudioBlobUrl = URL.createObjectURL(blob);\r\n\t\treturn audioBlobUrl;\r\n\t} catch (error) {\r\n\t\t// If fetch fails, the bundler may have already processed the URL\r\n\t\t// Return the original URL - it should work if tsup processed it correctly\r\n\t\tconsole.error(\"Could not create blob URL, using direct URL:\", error);\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n}\r\n\r\n/**\r\n * Loads the audio file as an ArrayBuffer\r\n * @returns Promise<ArrayBuffer> - Audio file as buffer\r\n */\r\nexport async function loadAudioAsBuffer(): Promise<ArrayBuffer> {\r\n\tif (audioBuffer) {\r\n\t\treturn audioBuffer;\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Failed to load audio: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\taudioBuffer = await response.arrayBuffer();\r\n\t\treturn audioBuffer;\r\n\t} catch (error) {\r\n\t\tconsole.error(\"Error loading audio as buffer:\", error);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\n/**\r\n * Creates an Audio element from the blob URL\r\n * @returns Promise<HTMLAudioElement> - Audio element ready to play\r\n */\r\nexport async function createAudioElement(): Promise<HTMLAudioElement> {\r\n\tconst audio = new Audio();\r\n\r\n\t// Set up audio properties before setting source\r\n\taudio.loop = true;\r\n\taudio.volume = 0.7;\r\n\taudio.preload = \"auto\";\r\n\r\n\t// Try multiple approaches to load the audio\r\n\tlet audioUrl: string = \"\";\r\n\r\n\t// First, try to get blob URL\r\n\ttry {\r\n\t\taudioUrl = await loadAudioAsBlob();\r\n\t} catch (error) {\r\n\t\tconsole.warn(\"Failed to load audio as blob, trying direct URL:\", error);\r\n\t\taudioUrl = incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Set up error handling with retry logic\r\n\tconst tryLoadAudio = async (url: string): Promise<boolean> => {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst checkCanPlay = () => {\r\n\t\t\t\t// Check if audio can play\r\n\t\t\t\tconst canPlay = audio.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\r\n\t\t\t\tif (canPlay) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check for errors\r\n\t\t\t\tif (audio.error) {\r\n\t\t\t\t\tresolve(false);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Wait a bit and check again\r\n\t\t\t\tsetTimeout(checkCanPlay, 100);\r\n\t\t\t};\r\n\r\n\t\t\taudio.addEventListener(\"canplay\", () => resolve(true), { once: true });\r\n\t\t\taudio.addEventListener(\"error\", () => resolve(false), { once: true });\r\n\t\t\taudio.src = url;\r\n\t\t\taudio.load();\r\n\r\n\t\t\t// Timeout after 2 seconds\r\n\t\t\tsetTimeout(() => resolve(false), 2000);\r\n\t\t});\r\n\t};\r\n\r\n\t// Try loading with the primary URL\r\n\tlet loaded = await tryLoadAudio(audioUrl);\r\n\r\n\t// If that fails, try the original import URL directly\r\n\tif (!loaded && audioUrl !== incomingRingtoneUrl) {\r\n\t\tloaded = await tryLoadAudio(incomingRingtoneUrl);\r\n\t\tif (loaded) {\r\n\t\t\taudioUrl = incomingRingtoneUrl;\r\n\t\t}\r\n\t}\r\n\r\n\treturn audio;\r\n}\r\n\r\n/**\r\n * Cleanup function to revoke blob URLs and free memory\r\n */\r\nexport function cleanupAudioResources(): void {\r\n\tif (audioBlobUrl) {\r\n\t\tURL.revokeObjectURL(audioBlobUrl);\r\n\t\taudioBlobUrl = null;\r\n\t}\r\n\taudioBuffer = null;\r\n}\r\n\r\n/**\r\n * Get the audio URL (blob URL or fallback to direct URL)\r\n * @returns string - Audio URL\r\n */\r\nexport function getAudioUrl(): string {\r\n\treturn audioBlobUrl || incomingRingtoneUrl;\r\n}\r\n","import React from \"react\";\r\nimport { SDKPermissionGuard } from \"../components/SDKPermissionGuard\";\r\nimport { SDK_MENU_CODES } from \"../permissions\";\r\n\r\n// ─── helper ──────────────────────────────────────────────────────────────────\r\n\r\nfunction withGuard(\r\n\tmenuCodes: string | string[],\r\n\tloader: () => Promise<{ default: React.FC<any> }>,\r\n): React.LazyExoticComponent<React.FC<any>> {\r\n\treturn React.lazy(async () => {\r\n\t\tconst mod = await loader();\r\n\t\tconst Page = mod.default;\r\n\t\tconst Guarded: React.FC<any> = (props) => (\r\n\t\t\t<SDKPermissionGuard menuFeature={menuCodes}>\r\n\t\t\t\t<Page {...props} />\r\n\t\t\t</SDKPermissionGuard>\r\n\t\t);\r\n\t\treturn { default: Guarded };\r\n\t});\r\n}\r\n\r\n// ─── page list ────────────────────────────────────────────────────────────────\r\n// Add new SDK pages here — one entry per page, guard is applied automatically.\r\n\r\nexport const SDKPages = {\r\n\tCallHistory: withGuard(SDK_MENU_CODES.CALL_HISTORY, () => import(\"./callHistory\")),\r\n\tCampaigns: withGuard(SDK_MENU_CODES.CAMPAIGNS, () => import(\"./campaigns\")),\r\n\tLoginReport: withGuard(SDK_MENU_CODES.LOGIN_REPORT, () => import(\"./loginReport\")),\r\n\tCdrReports: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./cdrReport\")),\r\n\tAuditReportPage: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./auditReport\")),\r\n\tAgentPerformanceReport: withGuard(SDK_MENU_CODES.AGENT_PERFORMANCE_REPORT, () => import(\"./agentPerformanceReport\")),\r\n\tAgentDetailReport: withGuard(SDK_MENU_CODES.AGENT_DETAIL_REPORT, () => import(\"./agentDetailReport\")),\r\n\tLiveStatus: withGuard(SDK_MENU_CODES.LIVE_STATUS, () => import(\"./liveStatus\")),\r\n\tManagementDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./managementDashboard\")),\r\n\tCaroVoiceAI: withGuard(SDK_MENU_CODES.CARO_VOICE_AI, () => import(\"./caroVoiceAI\")),\r\n\tQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./qualityAuditDashboard\")),\r\n\tCaroQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./caroQualityAuditDashboard\"))\r\n} as const;\r\n","import { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport interface UseClickToConferenceReturn {\r\n handleStartConferenceCall: (payload: ConferenceCallPayload) => Promise<any>;\r\n isLoading: boolean;\r\n isSuccess: boolean;\r\n isError: boolean;\r\n error: any;\r\n data: any;\r\n}\r\n\r\nexport const useClickToConference = (): UseClickToConferenceReturn => {\r\n const [loading, setLoading] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState<any>(null);\r\n const [data, setData] = useState<any>(null);\r\n\r\n // Track the line we dialed so we can watch for its socket update\r\n const pendingLineRef = useRef<number | null>(null);\r\n // Track the last seen conference state to detect changes\r\n const prevConferenceRef = useRef<any[]>([]);\r\n\r\n useEffect(() => {\r\n if (pendingLineRef.current === null) return;\r\n\r\n const unsubscribe = sdkStateManager.subscribe(() => {\r\n const state = sdkStateManager.getState();\r\n const targetLine = pendingLineRef.current;\r\n\r\n if (targetLine === null) return;\r\n\r\n const line = (state.conferenceLine as any[])?.find(\r\n (l) => l.line === targetLine,\r\n );\r\n\r\n // Socket has updated the line away from IDLE — conference is live\r\n if (line && line.status !== \"IDLE\") {\r\n pendingLineRef.current = null;\r\n prevConferenceRef.current = [];\r\n sdkStateManager.setOpenConferenceDialog(true);\r\n }\r\n });\r\n\r\n return unsubscribe;\r\n }, [loading]);\r\n\r\n const handleStartConferenceCall = useCallback(\r\n async (payload: ConferenceCallPayload): Promise<any> => {\r\n const state = getSession(STORAGE_KEY) as any;\r\n\r\n if (state?.callData?.status !== \"ONCALL\") {\r\n const msg = \"Conference call requires an active call (ONCALL status)\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find(\r\n (l: any) => l.line === payload.lineNumber,\r\n )\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n const msg = \"No available conference line found\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const requestPayload = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n setLoading(true);\r\n setIsError(false);\r\n setError(null);\r\n setSuccess(false);\r\n\r\n // Record which line we are waiting on so the subscriber can watch it\r\n pendingLineRef.current = availableLine.line;\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, requestPayload)\r\n .then((res) => {\r\n setData(res?.data);\r\n setSuccess(true);\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n pendingLineRef.current = null;\r\n setIsError(true);\r\n setError(err);\r\n return err?.response?.data;\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n },\r\n [],\r\n );\r\n\r\n return {\r\n handleStartConferenceCall,\r\n isLoading: loading,\r\n isSuccess: success,\r\n isError,\r\n error,\r\n data,\r\n };\r\n};\r\n","import { removeSession } from \"@react-solutions/vault\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport type { EndCallPayload } from \"../hooks/useEndCall\";\r\n\r\n// ─── Types ────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StartCallPayload {\r\n mobileNumber: string;\r\n user?: string;\r\n auto_answer?: boolean;\r\n call_id?: string;\r\n reference_id?: string;\r\n call_source?: string;\r\n caseId?: string;\r\n isWrapup?: boolean;\r\n parentCallUuid?: string;\r\n}\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport type { EndCallPayload };\r\n\r\nexport type SupervisorMonitorMode = \"listen\" | \"whisper\" | \"barge\";\r\n\r\nexport interface StartMonitoringPayload {\r\n call_id: string;\r\n mode: SupervisorMonitorMode;\r\n supervisor_extension?: string;\r\n agent_extension?: string;\r\n}\r\n\r\nexport interface StopMonitoringPayload {\r\n call_uuid: string;\r\n session_id?: string;\r\n}\r\n\r\nexport interface ChangeModePayload {\r\n call_uuid: string;\r\n mode: SupervisorMonitorMode;\r\n session_id?: string;\r\n}\r\n\r\n// ─── Actions ──────────────────────────────────────────────────────────────────\r\n\r\nexport function clickToCall(payload: StartCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"IDLE\" && state?.callData?.status !== \"ONCALL\"){\r\n // return Promise.reject(new Error(\"Agent is not ready\"));\r\n // }\r\n\r\n const body = {\r\n phone_number: payload.mobileNumber,\r\n user: payload.user ?? state?.agentId ?? \"\",\r\n auto_answer: payload.auto_answer ?? false,\r\n call_id: payload.call_id ?? state?.callData?.call_id ?? \"\",\r\n reference_id: payload.reference_id ?? \"\",\r\n call_source: payload.call_source ?? \"\",\r\n caseId: payload.caseId ?? \"\",\r\n isWrapup: payload.isWrapup ?? false,\r\n parentCallUuid: payload.parentCallUuid ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CLICK_TO_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.resetConferenceLines(); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n \r\n}\r\n\r\nexport function clickToConference(payload: ConferenceCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"ONCALL\") {\r\n // return Promise.reject(new Error(\"Conference call requires an active call (ONCALL status)\"));\r\n // }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find((l: any) => l.line === payload.lineNumber)\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n return Promise.reject(new Error(\"No available conference line found\"));\r\n }\r\n\r\n const body = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.setOpenConferenceDialog(true); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n}\r\n\r\nexport async function endCall(options: EndCallPayload = {}): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n const body = {\r\n call_id: options.call_id ?? state?.callData?.call_id ?? \"\",\r\n agent_id: options.agent_id ?? state?.agentId ?? \"\",\r\n set_followUp: options.set_followUp ?? \"N\",\r\n callback_date: options.callback_date ?? \"\",\r\n callback_hrs: options.callback_hrs ?? 0,\r\n callback_mins: options.callback_mins ?? 0,\r\n mobile_number: options.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n list_comments: options.list_comments ?? \"\",\r\n call_reference_id: options.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n is_mark_as_break: options.is_mark_as_break ?? false,\r\n disposition: options.disposition ?? \"RES\",\r\n line_number: options.line_number ?? 0,\r\n reason: options.reason ?? \"normal\",\r\n };\r\n\r\n const res = await axiosInstance.post(END_POINT.END_CALL, body);\r\n sdkStateManager.resetConferenceLines();\r\n sdkStateManager.endCall();\r\n return res.data;\r\n}\r\n\r\nexport async function logout(): Promise<void> {\r\n let logoutError: Error | undefined;\r\n\r\n try {\r\n await axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n } catch (err: any) {\r\n logoutError = new Error(err?.response?.data?.message || \"Logout failed. Please try again.\");\r\n } finally {\r\n sdkStateManager.clearStorageAndReset();\r\n removeSession(STORAGE_KEY);\r\n }\r\n\r\n if (logoutError) throw logoutError;\r\n}\r\n\r\nexport async function startMonitoring(payload: StartMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LISTEN, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function stopMonitoring(payload: StopMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LEAVE, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function changeMonitorMode(payload: ChangeModePayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_CHANGE_MODE, payload);\r\n return res.data;\r\n}\r\n\r\n/**\r\n * Set lead data that will be attached as `lead_data` in the transfer API payload.\r\n * Call this whenever the lead details change in the host application.\r\n *\r\n * @example\r\n * setTransferLeadData({ lead_id: 123, customer_name: 'John' });\r\n */\r\nexport function setTransferLeadData(data: any): void {\r\n sdkStateManager.setTransferLeadData(data);\r\n}\r\n","import { eventTracker } from \"./lib/hooks/eventsTracker\";\r\nimport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\nimport { useLogout } from \"./lib/hooks/useLogout\";\r\nimport { useEndCall } from \"./lib/hooks/useEndCall\";\r\nimport { SDKConfig, URLConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\nimport { useSDKState } from \"./lib/hooks/useSDKState\";\r\nimport { useCallMonitoring } from \"./lib/hooks/useCallMonitoring\";\r\nimport {\r\n SDK_PERMISSIONS,\r\n SDK_MENU_CODES,\r\n SDK_WILDCARD,\r\n type SDKPermissionState,\r\n type ControlsFromPermissions,\r\n type SDKPermissionContextValue,\r\n} from \"./lib/permissions\";\r\n\r\nexport { CallControlPanel } from \"./lib/components/callControlPanel\";\r\nexport { SDKPages } from \"./lib/pages\";\r\nexport {\r\n setAuditReportUrlResolver,\r\n type AuditReportUrlResolver,\r\n} from \"./lib/pages/common/components/AuditReport\";\r\nexport { SDKPermissionGuard } from \"./lib/components/SDKPermissionGuard\";\r\nexport { SDKAccessDenied } from \"./lib/components/SDKAccessDenied\";\r\nexport { useSDKPermissions } from \"./lib/hooks/useSDKPermissions\";\r\nexport type { SDKPermissionsHook } from \"./lib/hooks/useSDKPermissions\";\r\n\r\nexport type { CallControlPanelProps, CallData, SDKConfig } from \"./types\";\r\nexport type {\r\n SDKPermissionState,\r\n ControlsFromPermissions,\r\n SDKPermissionContextValue,\r\n};\r\n\r\ninterface InitSDKParams {\r\n apiKey: string;\r\n tenantId: string;\r\n agentId: string;\r\n sessionId?: string;\r\n sdkConfig?: SDKConfig;\r\n urlConfig?: URLConfig;\r\n}\r\n\r\nexport interface SDKInitResult {\r\n accessToken: string;\r\n expiration: string;\r\n ticketId: string;\r\n callControls: any;\r\n userInfo: any;\r\n}\r\n\r\nexport async function initSDK({\r\n apiKey,\r\n tenantId,\r\n agentId,\r\n sdkConfig,\r\n urlConfig,\r\n}: InitSDKParams): Promise<SDKInitResult> {\r\n if (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: API key is required\");\r\n }\r\n\r\n if (\r\n !tenantId ||\r\n typeof tenantId !== \"string\" ||\r\n tenantId.trim().length === 0\r\n ) {\r\n throw new Error(\"SDK initialization failed: Tenant ID is required\");\r\n }\r\n\r\n if (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: Agent ID is required\");\r\n }\r\n\r\n try {\r\n const initResult = await eventTracker.init({\r\n apiKey: apiKey.trim(),\r\n tenantId: tenantId.trim(),\r\n agentId: agentId.trim(),\r\n password: urlConfig?.password,\r\n accessToken: urlConfig?.accessToken,\r\n baseUrl: urlConfig?.coreBaseURL,\r\n });\r\n\r\n if (!initResult) {\r\n sdkStateManager.setInitCheck();\r\n throw new Error(\"SDK initialization failed\");\r\n }\r\n\r\n // To store all permissions,sdk & menus from init api response to STATE\r\n if (initResult.userInfo) {\r\n sdkStateManager.setSDKPermissions(initResult.userInfo);\r\n }\r\n\r\n // using stored permissions from response determining which items enables ONLY IN callcontrolpanel (hold,transfer)\r\n const permissionControlsConfig = sdkStateManager.getControlsConfig();\r\n\r\n // Remaining enalblement controls spreaded here along with callcontrolpanel controls\r\n // Combined to single control config\r\n const callcontrolConfig = {\r\n ...(initResult.callControls || {}),\r\n ...permissionControlsConfig,\r\n ...(sdkConfig || {}),\r\n // sdkPosition: 'vertical'\r\n };\r\n\r\n const res = {\r\n accessToken: initResult.accessToken,\r\n expiration: initResult.expiration,\r\n ticketId: initResult.ticketId,\r\n callControls: callcontrolConfig,\r\n userInfo: initResult.userInfo,\r\n };\r\n\r\n console.info(\"SDK initialized successfully\");\r\n\r\n sdkStateManager.initialize(\r\n apiKey.trim(),\r\n tenantId.trim(),\r\n agentId.trim(),\r\n urlConfig,\r\n res,\r\n callcontrolConfig,\r\n initResult.callControls,\r\n );\r\n\r\n return res;\r\n } catch (error) {\r\n sdkStateManager.setInitCheck();\r\n\r\n if (error instanceof Error) {\r\n throw error;\r\n }\r\n\r\n throw new Error(`SDK initialization failed: ${String(error)}`);\r\n }\r\n}\r\n\r\nexport function getSDKVersion(): string {\r\n return \"6.x.x\";\r\n}\r\n\r\nexport function isSDKInitialized(): boolean {\r\n return sdkStateManager.getState().isInitialized;\r\n}\r\n\r\nexport {\r\n useLogout,\r\n useEndCall,\r\n useClickToCall,\r\n useGetCallerData,\r\n useGetAuthorizationToken,\r\n useSDKState,\r\n useCallMonitoring,\r\n};\r\nexport type { UseClickToCallReturn, CallInitiationFunction, StartCalltHookStateTypes } from \"./lib/hooks/useClickToCall\";\r\nexport type { UseEndCallReturn, HookStateTypes, CallTerminationFunction } from \"./lib/hooks/useEndCall\";\r\nexport type { UseLogoutReturn, LogoutFunction, LogoutHookStateTypes } from \"./lib/hooks/useLogout\";\r\nexport { useClickToConference } from \"./lib/hooks/useClickToConference\";\r\nexport type { UseClickToConferenceReturn, ConferenceCallPayload as ConferenceCallHookPayload } from \"./lib/hooks/useClickToConference\";\r\n\r\nexport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\n\r\nexport {\r\n clickToCall,\r\n clickToConference,\r\n endCall,\r\n logout,\r\n startMonitoring,\r\n stopMonitoring,\r\n changeMonitorMode,\r\n setTransferLeadData,\r\n} from \"./lib/angular-services\";\r\nexport type {\r\n StartCallPayload,\r\n ConferenceCallPayload,\r\n EndCallPayload,\r\n SupervisorMonitorMode,\r\n StartMonitoringPayload,\r\n StopMonitoringPayload,\r\n ChangeModePayload,\r\n} from \"./lib/angular-services\";\r\n\r\nexport type {\r\n UseCallMonitoringReturn,\r\n} from \"./lib/hooks/useCallMonitoring\";\r\n\r\n// Entitlement exports\r\nexport { SDK_PERMISSIONS, SDK_MENU_CODES, SDK_WILDCARD };\r\n"],"mappings":"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","names":["useCallback","useState","useState","useCallback","data","_a","useCallback","useState","useState","useCallback","data","_a","useState","useState","useState","useEffect","useState","useEffect","useCallback","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","useEffect","useRef","useState","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","useEffect","useState","useCallback","useCallback","useState","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","useEffect","useCallback","useState","Fragment","jsx","jsxs","useRef","useState","clickToCall","endCall","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","useEffect","_o","_p","_q","_r","_s","_t","isOnHold","isMuted","jsx","useCallback","React","jsx","React","useCallback","useEffect","useRef","useState","useState","useRef","useEffect","useCallback","_a","_a"]}
|
|
1
|
+
{"version":3,"sources":["../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/hooks/useClickToCall.ts","../call-control-sdk/lib/hooks/useGetAuthorizationToken.ts","../call-control-sdk/lib/hooks/useSDKState.ts","../call-control-sdk/lib/components/callControlPanel.tsx","../node_modules/@mui/icons-material/CallEnd.mjs","../node_modules/@mui/icons-material/DragIndicator.mjs","../node_modules/@mui/icons-material/Group.mjs","../node_modules/@mui/icons-material/Layers.mjs","../node_modules/@mui/icons-material/Mic.mjs","../node_modules/@mui/icons-material/MicOff.mjs","../node_modules/@mui/icons-material/Pending.mjs","../node_modules/@mui/icons-material/SupportAgent.mjs","../node_modules/@mui/icons-material/TransferWithinAStation.mjs","../node_modules/@mui/icons-material/Upcoming.mjs","../node_modules/@mui/icons-material/WifiCalling3.mjs","../node_modules/@mui/icons-material/SendRounded.mjs","../node_modules/@mui/icons-material/SmsSharp.mjs","../node_modules/@mui/icons-material/MoreVert.mjs","../call-control-sdk/lib/components/callControls.tsx","../node_modules/@mui/icons-material/Airlines.mjs","../node_modules/@mui/icons-material/Call.mjs","../node_modules/@mui/icons-material/CallSplit.mjs","../node_modules/@mui/icons-material/MemoryOutlined.mjs","../node_modules/@mui/icons-material/PhoneDisabled.mjs","../node_modules/@mui/icons-material/RecordVoiceOver.mjs","../node_modules/@mui/icons-material/Roofing.mjs","../call-control-sdk/lib/components/dialog.tsx","../call-control-sdk/lib/services/request.ts","../call-control-sdk/lib/components/styles.ts","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/services/micController.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/pages/sdkPages.tsx","../call-control-sdk/lib/hooks/useClickToConference.ts","../call-control-sdk/lib/angular-services/index.ts","../call-control-sdk/index.ts"],"sourcesContent":["import { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface EventTrackerConfig {\r\n\tapiKey: string;\r\n\ttenantId: string;\r\n\tagentId: string;\r\n\tpassword?: string;\r\n\taccessToken?: string;\r\n\tbaseUrl?: string;\r\n\r\n\tretryAttempts?: number;\r\n\tqueueSize?: number;\r\n\tflushInterval?: number;\r\n}\r\n\r\nexport interface EventData {\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface EventTrackerInstance {\r\n\tinit(config: EventTrackerConfig): Promise<string | null>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n}\r\n\r\nclass EventTrackerSDK implements EventTrackerInstance {\r\n\tprivate config: EventTrackerConfig | null = null;\r\n\tprivate ticketId: string | null = null;\r\n\tprivate baseUrl: string = \"\";\r\n\tprivate flushTimer: ReturnType<typeof setInterval> | null = null;\r\n\r\n\tasync init(config: EventTrackerConfig): Promise<any | null> {\r\n\t\tthis.config = {\r\n\t\t\tretryAttempts: 3,\r\n\t\t\tqueueSize: 100,\r\n\t\t\tflushInterval: 5000,\r\n\t\t\t...config,\r\n\t\t};\r\n\r\n\t\tthis.baseUrl = config.baseUrl || (typeof window !== \"undefined\" ? window.location.origin : \"\");\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\treturn ticket;\r\n\t}\r\n\r\n\tisInitialized(): boolean {\r\n\t\treturn this.config !== null && this.ticketId !== null;\r\n\t}\r\n\r\n\tgetConfig(): EventTrackerConfig | null {\r\n\t\treturn this.config;\r\n\t}\r\n\r\n\tgetTicketId(): string | null {\r\n\t\treturn this.ticketId;\r\n\t}\r\n\r\n\tprivate async createTicket(): Promise<any | null> {\r\n\t\tif (!this.config) {\r\n\t\t\tthrow new Error(\"EventTracker not initialized\");\r\n\t\t}\r\n\r\n\t\t// If an accessToken is already provided, skip the login API call\r\n\t\t// if (this.config.accessToken) {\r\n\t\t// \treturn { accessToken: this.config.accessToken };\r\n\t\t// }\r\n\r\n\t\ttry {\r\n\t\t\t\tconst response = await this.makeRequest(\"/api/v1/auth/login\", { // login with base url - same as main application\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tuserId: String(this.config.agentId ?? \"\"),\r\n\t\t\t\t\t// sessionId: this.config.sessionId,\r\n\t\t\t\t\tpassword: this.config.password\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\t// if (!response.ok) {\r\n\t\t\t// \tsdkStateManager.setInitCheck();\r\n\t\t\t// \tthrow new Error(`Failed to initialize: ${response.status} ${response.statusText}`);\r\n\t\t\t// }\r\n\r\n\t\t\tconst data = await response.json();\r\n\t\t\tthis.ticketId = data.ticketId;\r\n\r\n\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async makeRequest(url: string, options: RequestInit): Promise<Response> {\r\n\t\tconst fullUrl = `${this.baseUrl}${url}`;\r\n\t\tconst maxRetries = this.config?.retryAttempts || 3;\r\n\r\n\t\tfor (let attempt = 1; attempt <= maxRetries; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await fetch(fullUrl, options);\r\n\t\t\t\treturn response;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tif (attempt === maxRetries) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\r\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Max retries exceeded\");\r\n\t}\r\n\r\n\tprivate startPeriodicFlush(): void {\r\n\t\tif (this.flushTimer) {\r\n\t\t\tclearInterval(this.flushTimer);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport const eventTracker = new EventTrackerSDK();\r\n\r\nif (typeof window !== \"undefined\") {\r\n\t(window as any).EventTracker = eventTracker;\r\n}\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { removeSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_ALL_OFF, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { useToast } from \"../services/toastMessage\";\r\n\r\nexport type LogoutFunction = () => Promise<any>;\r\n\r\nexport type LogoutHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseLogoutReturn extends LogoutHookStateTypes {\r\n\tlogout: LogoutFunction;\r\n}\r\n\r\nexport interface LogoutPayload {\r\n\taction: string;\r\n\tuserId: string;\r\n}\r\n\r\nexport const useLogout = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst handleLogout = useCallback(async () => {\r\n\t\tsetLoading(true);\r\n\r\n\t\ttry {\r\n\t\t\tawait axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n\t\t} catch (err: any) {\r\n\t\t\tconst message = err?.response?.data?.message || \"Logout failed. Please try again.\";\r\n\t\t\tshowToast(message, \"error\");\r\n\t\t} finally {\r\n\t\t\tsdkStateManager.clearStorageAndReset();\r\n\t\t\tremoveSession(STORAGE_KEY);\r\n\t\t\tsetSuccess(true);\r\n\t\t\tsetLoading(false);\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\tlogout: handleLogout,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport type HookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface EndCallPayload {\r\n\tcall_id?: string;\r\n\tagent_id?: string;\r\n\tset_followUp?: string;\r\n\tcallback_date?: string;\r\n\tcallback_hrs?: number;\r\n\tcallback_mins?: number;\r\n\tmobile_number?: string;\r\n\tlist_comments?: string;\r\n\tcall_reference_id?: string;\r\n\tis_mark_as_break?: boolean;\r\n\tdisposition?: string;\r\n\tline_number?: number;\r\n\treason?: string;\r\n\tpatientLog?: any;\r\n}\r\n\r\nexport type CallTerminationFunction = (data: EndCallPayload) => Promise<any>;\r\n\r\nexport interface UseEndCallReturn extends HookStateTypes {\r\n\thandleEndCall: CallTerminationFunction;\r\n}\r\n\r\nexport const useEndCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleEndCall = useCallback(\r\n\t\tasync (data: EndCallPayload = {}) => {\r\n\t\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tcall_id: data?.call_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tagent_id: data?.agent_id ?? state?.agentId ?? \"\",\r\n\t\t\t\tset_followUp: data?.set_followUp ?? \"N\",\r\n\t\t\t\tcallback_date: data?.callback_date ?? \"\",\r\n\t\t\t\tcallback_hrs: data?.callback_hrs ?? 0,\r\n\t\t\t\tcallback_mins: data?.callback_mins ?? 0,\r\n\t\t\t\tmobile_number: data?.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n\t\t\t\tlist_comments: data?.list_comments ?? \"\",\r\n\t\t\t\tcall_reference_id: data?.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tis_mark_as_break: data?.is_mark_as_break ?? false,\r\n\t\t\t\tdisposition: data?.disposition ?? \"RES\",\r\n\t\t\t\tline_number: data?.line_number ?? 0,\r\n\t\t\t\treason: data?.reason ?? \"normal\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.END_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsdkStateManager.endCall();\r\n\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn {\r\n\t\thandleEndCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { da } from \"date-fns/locale\";\r\n\r\nexport interface StartCallPayload {\r\n\tmobileNumber: string;\r\n\tuser?: string;\r\n\tauto_answer?: boolean;\r\n\tcall_id?: string;\r\n\treference_id?: string;\r\n\tcall_source?: string;\r\n\tcaseId?: string;\r\n\tisWrapup?: boolean;\r\n\tparentCallUuid?: string;\r\n}\r\n\r\nexport type CallInitiationFunction = (data: StartCallPayload) => Promise<any>;\r\n\r\nexport type StartCalltHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseClickToCallReturn extends StartCalltHookStateTypes {\r\n\thandleStartCall: CallInitiationFunction;\r\n}\r\n\r\nexport const useClickToCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleStartCall = useCallback(async (data: StartCallPayload) => {\r\n\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\t\tconst status = state?.callData?.status;\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (status === \"IDLE\" || status === \"ONCALL\" || status === \"WRAPUP\") {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true;\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\t// Caller-supplied parentCallUuid still wins as an explicit override.\r\n\t\t\tconst liveState = sdkStateManager.getState();\r\n\t\t\tconst isWrapupCall = status === \"WRAPUP\";\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (data?.parentCallUuid) {\r\n\t\t\t\tparentCallUuid = data.parentCallUuid;\r\n\t\t\t} else if (liveState.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (liveState.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = liveState.rootCallUuid;\r\n\t\t\t\t\t} else if (state?.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: data?.mobileNumber,\r\n\t\t\t\tuser: data?.user ?? state?.agentId ?? \"\",\r\n\t\t\t\tauto_answer: data?.auto_answer ?? false,\r\n\t\t\t\tcall_id: state?.callData?.call_id ?? data?.call_id ?? \"\",\r\n\t\t\t\treference_id: data?.reference_id ?? \"\",\r\n\t\t\t\tcall_source: data?.call_source ?? \"\",\r\n\t\t\t\tcaseId: data?.caseId ?? \"\",\r\n\t\t\t\tisWrapup: data?.isWrapup ?? false,\r\n\t\t\t\tparentCallUuid:data?.parentCallUuid ?? data.parentCallUuid ?? parentCallUuid ?? \"\" ,\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CLICK_TO_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetLoading(false);\r\n\t\t\talert(\"Agent is not ready\");\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\thandleStartCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n\r\n\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport const useGetAuthorizationToken = () => {\r\n\tconst [token, setToken] = useState<string | undefined>(sdkStateManager.getSdkAuthToken());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetToken(sdkStateManager.getSdkAuthToken());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn token;\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { SDKState } from \"../../types\";\r\n\r\nexport function useSDKState(): SDKState {\r\n\tconst [state, setState] = useState<SDKState>(sdkStateManager.getState());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetState(sdkStateManager.getState());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn state;\r\n}\r\n","import { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { SDK_PERMISSIONS } from \"../permissions\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\r\n\tconst { sdk } = useSDKState();\r\n\r\n\tconst handleDataChange = useCallback(\r\n\t\t(data: any) => {\r\n\t\t\ttry {\r\n\t\t\t\tif (onDataChange && typeof onDataChange === \"function\") {\r\n\t\t\t\t\tonDataChange(data);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(\"Error in CallControlPanel data change handler:\", error);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onDataChange]\r\n\t);\r\n\r\n\tconst sdkObject = sdk?.calls;\r\n\tconst hasDialerAccess =\r\n\t\tsdkObject?.enabled &&\r\n\t\tsdkObject?.items?.some(\r\n\t\t\t(item: any) =>\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_OUTBOUND ||\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_INBOUND,\r\n\t\t);\r\n\r\n\tif (!hasDialerAccess) return null;\r\n\r\n\treturn (\r\n\t\t<SDKProvider>\r\n\t\t\t<CallControls onDataChange={handleDataChange} />\r\n\t\t</SDKProvider>\r\n\t);\r\n});\r\n\r\nCallControlPanel.displayName = \"CallControlPanel\";\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08c-.18-.17-.29-.42-.29-.7s.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71s-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28-.79-.74-1.69-1.36-2.67-1.85-.33-.16-.56-.5-.56-.9v-3.1C15.15 9.25 13.6 9 12 9\"\n}), 'CallEnd');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'DragIndicator');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5\"\n}), 'Group');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27z\"\n}), 'Layers');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z\"\n}), 'Mic');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3 3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73z\"\n}), 'MicOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5\"\n}), 'Pending');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62\"\n}, \"0\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"9\",\n cy: \"13\",\n r: \"1\"\n}, \"1\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"15\",\n cy: \"13\",\n r: \"1\"\n}, \"2\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M18 11.03C17.52 8.18 15.04 6 12.05 6c-3.03 0-6.29 2.51-6.03 6.45 2.47-1.01 4.33-3.21 4.86-5.89 1.31 2.63 4 4.44 7.12 4.47\"\n}, \"3\")], 'SupportAgent');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2M5.75 8.9 3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6q-.375 0-.75.15L2 8.3V13h2V9.65z\"\n}), 'TransferWithinAStation');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m21.16 7.26-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55M11 3h2v5h-2zm-4.6 7.81L7.81 9.4 4.26 5.84 2.84 7.26c.11.03 3.56 3.55 3.56 3.55M20 12h-5c0 1.66-1.34 3-3 3s-3-1.34-3-3H4c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2\"\n}), 'Upcoming');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06c1.18-1.18 2.8-1.91 4.59-1.91s3.42.73 4.59 1.91l1.06-1.06C20.7 3.9 18.7 3 16.49 3\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M20.03 7.46C19.12 6.56 17.87 6 16.49 6s-2.63.56-3.54 1.46l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03zm-4.95 2.13L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59s-1.05.22-1.41.59\"\n}, \"1\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"m15.63 14.4-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73c-.33-.07-.67.03-.9.26\"\n}, \"2\")], 'WifiCalling3');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m3.4 20.4 17.45-7.48c.81-.35.81-1.49 0-1.84L3.4 3.6c-.66-.29-1.39.2-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91\"\n}), 'SendRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 2H2v20l4-4h16zM9 11H7V9h2zm4 0h-2V9h2zm4 0h-2V9h2z\"\n}), 'SmsSharp');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'MoreVert');","import CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport DragIndicator from \"@mui/icons-material/DragIndicator\";\r\nimport Group from \"@mui/icons-material/Group\";\r\nimport KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Layers from \"@mui/icons-material/Layers\";\r\nimport Mic from \"@mui/icons-material/Mic\";\r\nimport MicOff from \"@mui/icons-material/MicOff\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport Pending from \"@mui/icons-material/Pending\";\r\nimport Phone from \"@mui/icons-material/Phone\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport WifiCalling3 from \"@mui/icons-material/WifiCalling3\";\r\nimport SendRounded from \"@mui/icons-material/SendRounded\";\r\nimport SmsSharp from \"@mui/icons-material/SmsSharp\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tChip,\r\n\tCircularProgress,\r\n\tFade,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTooltip,\r\n\tTypography,\r\n\tuseTheme,\r\n} from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport {\r\n\tCallHistoryDialog,\r\n\tCallTransferDialog,\r\n\tConferenceDialog,\r\n\tEndCallDispositionDialog,\r\n\tProcessorListDialog,\r\n} from \"./dialog\";\r\n\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { useDraggable } from \"../hooks/useDraggable\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createMicController, MicController } from \"../services/micController\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { CallControlPanelProps, CallStatus } from \"../../types\";\r\n\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_FLASH, USB_LIGHT_ON, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nconst getCombineConfrenceData = (localState: any, apiData: any) => {\r\n\tconst localConfrenceData = localState?.conferenceLine;\r\n\tconst apiConferenceData = apiData?.conferencestatus;\r\n\tconst updatedConferenceData = localConfrenceData.map((item: any) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: apiConferenceData?.[statusKey] ?? localState?.callData?.status,\r\n\t\t\t\tphone: localState?.callData?.phone_number ?? \"\",\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\tconst phoneKey = `line_${item.line}_phonenumber`;\r\n\r\n\t\t\tconst newStatus = apiConferenceData ? (apiConferenceData[statusKey] ?? \"IDLE\") : item.status;\r\n\t\t\tlet newPhone = apiConferenceData?.[phoneKey];\r\n\r\n\t\t\tif (newPhone === null || newPhone === \"0\" || newPhone === undefined) {\r\n\t\t\t\tnewPhone = newStatus === \"IDLE\" ? \"\" : item.phone;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: newStatus,\r\n\t\t\t\tphone: newPhone,\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\treturn updatedConferenceData;\r\n};\r\n\r\nconst formatDuration = (seconds: number): string => {\r\n\tconst mins = Math.floor(seconds / 60);\r\n\tconst secs = seconds % 60;\r\n\treturn `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}`;\r\n};\r\n\r\nexport function CallControls({ onDataChange }: CallControlPanelProps) {\r\n\tconst theme = useTheme();\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst { disabled, enabled, outlined } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst micRef = useRef<MicController | null>(null);\r\n\tconst webSocketRef = useRef<WebSocket | null>(null);\r\n\tconst audioRef = useRef<HTMLAudioElement | null>(null);\r\n\tconst reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\tconst pingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\tconst reconnectAttemptsRef = useRef<number>(0);\r\n\tconst hasFlashedRef = useRef(false);\r\n\tconst lastEventTimeRef = useRef<string | null>(null);\r\n\tconst conferenceAutoOpenedRef = useRef<boolean>(false);\r\n\t// ── NEW: ref to record when hold started ──────────────────────────────────\r\n\tconst holdStartTimeRef = useRef<number | null>(null);\r\n\t// ── NEW: ref to record when mute started ──────────────────────────────────\r\n\tconst muteStartTimeRef = useRef<number | null>(null);\r\n\r\n\tconst maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000;\r\n\tconst maxReconnectDelay = 30000;\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [ambulanceAnchorEl, setAmbulanceAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [moreOptionsAnchorEl, setMoreOptionsAnchorEl] = useState<null | HTMLElement>(null);\r\n\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState<boolean>(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState<boolean>(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState<boolean>(false);\r\n\r\n\tconst [processList, setProcessList] = useState<\r\n\t\t| {\r\n\t\t\tprocess_id: number;\r\n\t\t\tprocess_name: string;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\tconst [breaksList, setBreaksList] = useState<\r\n\t\t| {\r\n\t\t\ttype: string;\r\n\t\t\tduration: string;\r\n\t\t\tdescription: string;\r\n\t\t\tactive: boolean;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState<number>(0);\r\n\tconst [callWrapuptime, setCallWrapuptime] = useState<number | null>(null);\r\n\t// Hold duration state\r\n\tconst [holdDuration, setHoldDuration] = useState<number>(0);\r\n\t// ── NEW: mute duration state ──────────────────────────────────────────────\r\n\tconst [muteDuration, setMuteDuration] = useState<number>(0);\r\n\r\n\tconst { position, isDragging, dragRef, handleMouseDown, handleTouchStart } = useDraggable(\r\n\t\tstate.controlPanelPosition,\r\n\t\t(newPosition) => sdkStateManager.setControlPanelPosition(newPosition)\r\n\t);\r\n\r\n\tconst {\r\n\t\tposition: iframePosition,\r\n\t\tisDragging: iframeIsDragging,\r\n\t\tdragRef: iframeDragRef,\r\n\t\thandleMouseDown: iframeHandleMouseDown,\r\n\t\thandleTouchStart: iframeHandleTouchStart,\r\n\t} = useDraggable(state.iframePosition, (newPosition) =>\r\n\t\tsdkStateManager.setIframePosition(newPosition)\r\n\t);\r\n\r\n\tconst [clickToCall, { isLoading: clickToCallLoading }] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\tuser: string;\r\n\t\tauto_answer: boolean;\r\n\t\tcall_id: string;\r\n\t\treference_id: string;\r\n\t\tcall_source: string;\r\n\t\tcaseId: string;\r\n\t\tisWrapup: boolean;\r\n\t\tparentCallUuid: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsetPhoneNumber(\"\");\r\n\t\t\tsetDialerAnchorEl(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [holdOrUnHold, { isLoading: holdOrUnHoldLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [readyAgentStatus, { isLoading: agentReadyLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\trefno?: string;\r\n\t\tuserId: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setAgentStatus(\"\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst [updateAgentStatus, { isLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tbreak_type: string;\r\n\t\tuserId: string;\r\n\t}>();\r\n\r\n\tconst [sendNotification] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\ttype: string;\r\n\t}>();\r\n\r\n\tconst [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\tcall_id: string;\r\n\t\tagent_id: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: number;\r\n\t\tcallback_mins: number;\r\n\t\tmobile_number: string;\r\n\t\tlist_comments: string;\r\n\t\tcall_reference_id: string;\r\n\t\tis_mark_as_break: boolean;\r\n\t\tdisposition: string;\r\n\t\tline_number: number;\r\n\t\treason: string;\r\n\t}>({\r\n\t\tdisabledSuccessToast: true,\r\n\t\tonSuccess: (res: any) => {\r\n\t\t\tsdkStateManager.endCall();\r\n\t\t\tsetOpenCallDisposition(false);\r\n\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\tshowToast(res?.message || \"Call ended successfully\", \"success\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst handleCloseQueueCounts = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenDialer = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetShowIframe(true);\r\n\t\tsetDialerAnchorEl(event.currentTarget);\r\n\t};\r\n\tconst handleOpenAbulanceServices = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetAmbulanceAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleOpenMoreOptions = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetMoreOptionsAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tsetDialerAnchorEl(null);\r\n\t};\r\n\tconst handleCloseAmbulance = () => {\r\n\t\tsetAmbulanceAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleCloseMoreOptions = () => {\r\n\t\tsetMoreOptionsAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenAgentStatus = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetStatusAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseAgentStatus = () => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleAgentReady = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"READYAGENT\",\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\r\n\t\treadyAgentStatus(END_POINT.READY_AGENT, payload);\r\n\t};\r\n\r\n\tconst handleUpdateAgentStatus = (status: string) => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t\tconst currentStatus = state.callData?.status?.toUpperCase() as CallStatus;\r\n\t\tif ([CallStatus.ONCALL, CallStatus.RINGING, CallStatus.DIALING, CallStatus.WRAPUP].includes(currentStatus)) {\r\n\t\t\tshowToast(\"Cannot put agent on break while on a call\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst payload = {\r\n\t\t\taction: \"AGENTBREAK\",\r\n\t\t\tbreak_type: status,\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\t\tupdateAgentStatus(END_POINT.UPDATE_AGENT_BREAK, payload).then(() => {\r\n\t\t\tsdkStateManager.setAgentStatus(status);\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleStartCall = (number: string) => {\r\n\t\tif (number.length !== 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else if (!/^\\d+$/.test(number)) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true\r\n\t\t\t// (host opts out of the alternate dialog and relies on the built-in flow);\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\tconst currentStatus = (state.callData?.status ?? \"\").toUpperCase();\r\n\t\t\tconst isWrapupCall = currentStatus === CallStatus.WRAPUP;\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (!state.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (state.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = state.rootCallUuid;\r\n\t\t\t\t\t} else if (state.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuser: state.agentId,\r\n\t\t\t\tauto_answer: false,\r\n\t\t\t\tcall_id: \"\",\r\n\t\t\t\treference_id: \"\",\r\n\t\t\t\tcall_source: \"\",\r\n\t\t\t\tcaseId: \"\",\r\n\t\t\t\tisWrapup: isWrapupCall,\r\n\t\t\t\tparentCallUuid,\r\n\t\t\t};\r\n\r\n\t\t\tclickToCall(END_POINT.CLICK_TO_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\tconst handleEndCall = (data: {\r\n\t\tdisposition: { label: string; value: string; id?: number };\r\n\t\tfollowUp: { label: string; value: string };\r\n\t\tcallbackDate: string;\r\n\t\tcallbackHrs: string;\r\n\t\tcallbackMins: string;\r\n\t\tselected_break?: boolean;\r\n\t\tnotes?: string;\r\n\t}) => {\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tset_followUp: data?.followUp?.value ?? \"\",\r\n\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\tcallback_hrs: Number(data?.callbackHrs) || 0,\r\n\t\t\tcallback_mins: Number(data?.callbackMins) || 0,\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\tlist_comments: data?.notes ?? \"\",\r\n\t\t\tcall_reference_id: state.callData?.call_id ?? \"\",\r\n\t\t\tis_mark_as_break: data?.selected_break ?? false,\r\n\t\t\tdisposition: data?.disposition?.value ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\tsetPhoneNumber(\"\");\r\n\t\tendCall(END_POINT.END_CALL, payload);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n\t\t\te.preventDefault();\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"beforeunload\", handleBeforeUnload);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"beforeunload\", handleBeforeUnload);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst mic = createMicController();\r\n\t\tmicRef.current = mic;\r\n\r\n\t\tmic.start().catch((err) => {\r\n\t\t\tconsole.error(\"Failed to start mic:\", err);\r\n\t\t});\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tconst fullState = getSession(STORAGE_KEY) as any;\r\n\t\t\tconst key = event.key?.toLowerCase();\r\n\r\n\t\t\tif (!event.altKey || fullState?.callData?.status !== CallStatus.ONCALL) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"m\" && String(fullState?.callData?.mute) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tmicRef.current?.mute();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.MUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"u\" && String(fullState?.callData?.mute) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNMUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t\tmicRef.current?.unmute();\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"h\" && String(fullState?.callData?.hold) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.HOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"r\" && String(fullState?.callData?.hold) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNHOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet interval: ReturnType<typeof setInterval>;\r\n\t\tlet wrapUpinterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === CallStatus.ONCALL) {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = state.callStartTime\r\n\t\t\t\t\t? Math.floor((Date.now() - Number(state.callStartTime)) / 1000)\r\n\t\t\t\t\t: 0;\r\n\r\n\t\t\t\tsetCallDuration(elapsed);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tsetCallDuration(0);\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tstate.callData.status &&\r\n\t\t\tstate.callData.status === CallStatus.WRAPUP &&\r\n\t\t\tcallWrapuptime !== null\r\n\t\t) {\r\n\t\t\twrapUpinterval = setInterval(() => {\r\n\t\t\t\tsetCallWrapuptime((prevTime) => {\r\n\t\t\t\t\tif (prevTime === null || prevTime <= 1) {\r\n\t\t\t\t\t\tclearInterval(wrapUpinterval);\r\n\t\t\t\t\t\thandleEndCall({\r\n\t\t\t\t\t\t\tdisposition: { label: \"Auto Wrapup\", value: \"AUTO_WRAPUP\" },\r\n\t\t\t\t\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\t\t\t\t\tcallbackDate: \"\",\r\n\t\t\t\t\t\t\tcallbackHrs: \"\",\r\n\t\t\t\t\t\t\tcallbackMins: \"\",\r\n\t\t\t\t\t\t\tselected_break: false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn prevTime - 1;\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t\tif (wrapUpinterval) clearInterval(wrapUpinterval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\t// Hold duration timer\r\n\tuseEffect(() => {\r\n\t\tlet holdInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isOnHold = state.callData?.hold === 1;\r\n\r\n\t\tif (isOnHold && isOnCall) {\r\n\t\t\tif (!holdStartTimeRef.current) {\r\n\t\t\t\tholdStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tholdInterval = setInterval(() => {\r\n\t\t\t\tsetHoldDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - holdStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tholdStartTimeRef.current = null;\r\n\t\t\tsetHoldDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (holdInterval) clearInterval(holdInterval);\r\n\t\t};\r\n\t}, [state.callData?.hold, state.callData?.status]);\r\n\r\n\t// ── NEW: mute duration timer ──────────────────────────────────────────────\r\n\tuseEffect(() => {\r\n\t\tlet muteInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isMuted = state.callData?.mute === 1;\r\n\t\tconst isHeld = state.callData?.hold === 1;\r\n\r\n\t\tif (isMuted && isOnCall && !isHeld) {\r\n\t\t\t// Record start time only once when mute begins\r\n\t\t\tif (!muteStartTimeRef.current) {\r\n\t\t\t\tmuteStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tmuteInterval = setInterval(() => {\r\n\t\t\t\tsetMuteDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - muteStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\t// Reset when mute is released or call ends\r\n\t\t\tmuteStartTimeRef.current = null;\r\n\t\t\tsetMuteDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (muteInterval) clearInterval(muteInterval);\r\n\t\t};\r\n\t}, [state.callData?.mute, state.callData?.status]);\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tuseEffect(() => {\r\n\t\tcreateAudioElement()\r\n\t\t\t.then((audio) => {\r\n\t\t\t\taudioRef.current = audio;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"Failed to load audio element:\", error);\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tif (audioRef.current) {\r\n\t\t\t\taudioRef.current.pause();\r\n\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\taudioRef.current.src = \"\"; // Clear source\r\n\t\t\t\taudioRef.current = null;\r\n\t\t\t}\r\n\t\t\t// Cleanup blob URLs\r\n\t\t\tcleanupAudioResources();\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (onDataChange && state.callData) {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, call_id, call_details } =\r\n\t\t\t\tstate.callData;\r\n\t\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\t\tconst callData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: call_id,\r\n\t\t\t\tagent_id,\r\n\t\t\t\tprocess_id,\r\n\t\t\t\tprocess_name,\r\n\t\t\t\tcall_details,\r\n\t\t\t\tauto_wrapup_time: state.backendCallControls?.auto_wrapup_time ?? null,\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t\tsocket_info: state.callData\r\n\t\t\t};\r\n\t\t\tonDataChange(callData);\r\n\t\t}\r\n\t}, [state.callData, onDataChange]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\t// axiosInstance\r\n\t\t\t// \t.post(END_POINT.PROCESS_LIST, {\r\n\t\t\t// \t\tuserId: state.agentId,\r\n\t\t\t// \t\taction: \"GETAGENTPROCESSLIST\",\r\n\t\t\t// \t\trefno: \"1234221233\",\r\n\t\t\t// \t})\r\n\t\t\t// \t.then((res) => {\r\n\t\t\t// \t\t// if (res && res.data?.data && res?.data?.data?.length > 1) {\r\n\t\t\t// \t\t// \tsetProcessList(res.data.data);\r\n\t\t\t// \t\t// \tsetOpenProcessorDialog(true);\r\n\t\t\t// \t\t// } else {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\t\t// setOpenProcessorDialog(false);\r\n\t\t\t// \t\t// }\r\n\t\t\t// \t})\r\n\t\t\t// \t.catch((err) => {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t// \t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(END_POINT.BREAKS_LIST)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res && res.data?.data && res?.data?.data?.length) {\r\n\t\t\t\t\t\tsetBreaksList(res.data.data);\r\n\t\t\t\t\t\tconst liveStatus = sdkStateManager.getState().callData?.status;\r\n\t\t\t\t\t\tif (!liveStatus) {\r\n\t\t\t\t\t\t\thandleUpdateAgentStatus(res.data.data[0].type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t}\r\n\t}, [state.agentId]);\r\n\r\n\tconst connectWebSocket = () => {\r\n\t\tif (!state.agentId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\treconnectTimeoutRef.current = null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\twebSocketRef.current = new WebSocket(`${state.urlConfig?.webSocketURL}/api/v1/ws/agent/events?token=${state.authorization?.accessToken}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t}\r\n\t\t\t\tpingIntervalRef.current = setInterval(() => {\r\n\t\t\t\t\tif (webSocketRef.current && webSocketRef.current.readyState === WebSocket.OPEN) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tconsole.error(\"Failed to send ping:\", error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 30000);\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onmessage = (event) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = JSON.parse(event.data);\r\n\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst sdkState = getSession(STORAGE_KEY) as any;\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(sdkState, data);\r\n\t\t\t\t\t// console.log( \"📊 Parsed JSON:\", data);\r\n\t\t\t\t\tconst callData = {\r\n\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\tagent_id: data?.agent_id,\r\n\t\t\t\t\t\tstatus: data?.status,\r\n\t\t\t\t\t\ttype: data?.type,\r\n\t\t\t\t\t\tevent_time: data?.event_time,\r\n\t\t\t\t\t\tphone_number: data?.phone_number,\r\n\t\t\t\t\t\tcall_id: data?.call_id,\r\n\t\t\t\t\t\tprocess_id: data?.process_id,\r\n\t\t\t\t\t\tprocess_name: data?.process_name,\r\n\t\t\t\t\t\thold: data?.hold,\r\n\t\t\t\t\t\tmute: data?.mute,\r\n\t\t\t\t\t\tmode: data?.mode,\r\n\t\t\t\t\t\tqueue_name: data?.queue_name,\r\n\t\t\t\t\t\tauto_wrapup_time: data?.auto_wrapup_time ?? null,\r\n\t\t\t\t\t\t...(data?.call_details !== undefined && { call_details: data.call_details }),\r\n\t\t\t\t\t\t...(data?.break_details !== undefined && { break_details: data.break_details }),\r\n\t\t\t\t\t\t...(data?.call_sage !== undefined && { call_sage: data.call_sage }),\r\n\t\t\t\t\t};\r\n\t\t\t\t\tsdkStateManager.updateCallData(callData);\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\t\t\t\t\tsdkStateManager.setConsultInfo(data.consult_info ?? null);\r\n\r\n\t\t\t\t\tconst conferenceStatus = data?.conferencestatus;\r\n\t\t\t\t\tif (conferenceStatus) {\r\n\t\t\t\t\t\tconst hasAnsweredSecondaryLine = Object.keys(conferenceStatus).some((key) => {\r\n\t\t\t\t\t\t\tconst match = key.match(/^line_(\\d+)_status$/);\r\n\t\t\t\t\t\t\tif (!match) return false;\r\n\t\t\t\t\t\t\tconst lineNum = Number(match[1]);\r\n\t\t\t\t\t\t\tif (lineNum <= 1) return false;\r\n\t\t\t\t\t\t\tconst status = String(conferenceStatus[key] ?? \"\").toUpperCase();\r\n\t\t\t\t\t\t\treturn status === CallStatus.ONCALL;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (hasAnsweredSecondaryLine) {\r\n\t\t\t\t\t\t\tif (!conferenceAutoOpenedRef.current) {\r\n\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data?.call_consult_controls) {\r\n\t\t\t\t\t\tsdkStateManager.updateSDKConfigFromPermissions(data.call_consult_controls);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsdkStateManager.resetConsultControls();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ([CallStatus.RINGING, CallStatus.DIALING].includes(data.status as CallStatus)) {\r\n\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\tsetCallWrapuptime(sdkState?.sdkConfig?.auto_wrapup_time ?? null);\r\n\t\t\t\t\t\tsdkStateManager.updateConferenceData([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 1,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 2,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 3,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 4,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 5,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\r\n\t\t\t\t\t\tif (data?.mode !== \"manual\" && audioRef.current && state?.sdkConfig?.enableRingtone) {\r\n\t\t\t\t\t\t\taudioRef.current.play().catch((error) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Failed to play ringtone:\", error);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (audioRef.current) {\r\n\t\t\t\t\t\t\taudioRef.current.pause();\r\n\t\t\t\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === CallStatus.IDLE) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"green\"));\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.clearTransferLeadData();\r\n\t\t\t\t\t} else if (data.status === CallStatus.ONCALL) {\r\n\r\n\t\t\t\t\t\t// Start timer for new call OR transfer\r\n\t\t\t\t\t\tif (data.status === CallStatus.ONCALL) {\r\n\t\t\t\t\t\t\tsdkStateManager.startCall();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!showIframe) {\r\n\t\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data?.mute !== 1 && data?.hold !== 1) {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"red\"));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t(data?.mute === 1 || data?.hold === 1) &&\r\n\t\t\t\t\t\tdata.status === CallStatus.ONCALL\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t} else if (data.status === CallStatus.BREAK) {\r\n\t\t\t\t\t\tconst breakTime = sdkState?.sdkConfig?.break_time;\r\n\t\t\t\t\t\tconst eventTime = data?.event_time ?? null;\r\n\r\n\t\t\t\t\t\tif (eventTime !== lastEventTimeRef.current) {\r\n\t\t\t\t\t\t\thasFlashedRef.current = false;\r\n\t\t\t\t\t\t\tlastEventTimeRef.current = eventTime;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet isOverLimit = false;\r\n\t\t\t\t\t\tif (breakTime && eventTime) {\r\n\t\t\t\t\t\t\tconst differenceInMinutes =\r\n\t\t\t\t\t\t\t\t(new Date().getTime() - new Date(eventTime).getTime()) / 60000;\r\n\r\n\t\t\t\t\t\t\tif (Number(differenceInMinutes.toFixed(0)) >= Number(breakTime)) {\r\n\t\t\t\t\t\t\t\tisOverLimit = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isOverLimit) {\r\n\t\t\t\t\t\t\tif (!hasFlashedRef.current) {\r\n\t\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"yellow\", 1));\r\n\t\t\t\t\t\t\t\thasFlashedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"yellow\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (data.status === CallStatus.WRAPUP) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"green\", 1));\r\n\t\t\t\t\t\tsdkStateManager.endCall();\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch {\r\n\t\t\t\t\tconsole.error(\"📨 Raw message:\", event.data);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onclose = (event) => {\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconsole.warn(\r\n\t\t\t\t\t\t`🔄 Attempting to reconnect WebSocket (attempt ${reconnectAttemptsRef.current}/${maxReconnectAttempts}) in ${delay}ms`\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t\t}, delay);\r\n\t\t\t\t} else if (reconnectAttemptsRef.current >= maxReconnectAttempts) {\r\n\t\t\t\t\tshowToast(\"WebSocket connection failed. Please refresh the page.\", \"error\");\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onerror = (error) => {\r\n\t\t\t\tconsole.error(\"❌ WebSocket error:\", error);\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tif (reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t);\r\n\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\tconnectWebSocket();\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\t\treconnectTimeoutRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (webSocketRef.current) {\r\n\t\t\t\twebSocketRef.current.close(1000, \"Component unmounting\");\r\n\t\t\t\twebSocketRef.current = null;\r\n\t\t\t}\r\n\t\t\treconnectAttemptsRef.current = 0;\r\n\t\t};\r\n\t}, [state.agentId]);\r\n\r\n\tconst handleSendSMS = (data: any) => {\r\n\t\tsendNotification(END_POINT.SEND_NOTIFICATIONS, {\r\n\t\t\tphone_number: data?.phone_number ?? \"\",\r\n\t\t\ttype: \"ambulance\",\r\n\t\t});\r\n\t};\r\n\r\n\tif (!state.isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box>\r\n\t\t\t\t{Boolean(openProcessorDialog) && (\r\n\t\t\t\t\t<ProcessorListDialog\r\n\t\t\t\t\t\tprocessList={processList}\r\n\t\t\t\t\t\topen={openProcessorDialog}\r\n\t\t\t\t\t\tsetOpen={setOpenProcessorDialog}\r\n\t\t\t\t\t\thandleSelectedProcessor={(data: { process_id: number; process_name: string }) => {\r\n\t\t\t\t\t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\t// Derived flags used in JSX\r\n\tconst isOnHold =\r\n\t\tstate.callData?.hold === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\r\n\t// ── NEW: derived mute flag ────────────────────────────────────────────────\r\n\tconst isMuted =\r\n\t\tstate.callData?.mute === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tconst isVertical = state.sdkConfig?.sdkPosition === \"vertical\";\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Box>\r\n\t\t\t\t<Fade in={true} timeout={300}>\r\n\t\t\t\t\t<Paper\r\n\t\t\t\t\t\tref={state.sdkConfig?.isDraggable ? dragRef : null}\r\n\t\t\t\t\t\televation={\r\n\t\t\t\t\t\t\tisDragging ? 4\r\n\t\t\t\t\t\t\t\t: state.sdkConfig?.isDraggable ? 1\r\n\t\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tposition: state.sdkConfig?.isDraggable ? \"fixed\" : \"relative\",\r\n\t\t\t\t\t\t\tleft: state.sdkConfig?.isDraggable ? position.x : \"auto\",\r\n\t\t\t\t\t\t\ttop: state.sdkConfig?.isDraggable ? position.y : \"auto\",\r\n\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\twidth: isVertical ? \"180px\" : \"auto\",\r\n\t\t\t\t\t\t\tflexShrink: 0,\r\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\tp: 0.5,\r\n\t\t\t\t\t\t\tborderRadius: 3,\r\n\t\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\t\tzIndex: state.sdkConfig?.isDraggable ? Number.MAX_SAFE_INTEGER : 0,\r\n\t\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"10px 8px 4px 8px\" : \"0px 10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.isDraggable && (\r\n\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\tcomponent=\"div\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\r\n\t\t\t\t\t\t\t\t\t\tonTouchStart={handleTouchStart}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<DragIndicator />\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableQueueName &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.queue_name &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.mode !== \"manual\" && (\r\n\t\t\t\t\t\t\t\t\t\t<Chip label={state?.callData?.queue_name} />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disabledDialButton ? \"Outbound call feature is disabled\" : \"Dial\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={<WifiCalling3 />}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tDial\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<WifiCalling3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t([\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"action.selected\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{/* ── UPDATED: call duration + hold duration + mute duration display ── */}\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tonClick={() => setShowIframe(true)}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\tminWidth: \"52px\",\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() === CallStatus.BREAK && state.callData?.break_details?.value ? (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.callData.break_details.value}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1.5px solid\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpy: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: '80px',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: 'center'\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"uppercase\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{state.callData.break_details.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: isOnHold\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"warning.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isMuted\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"error.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{state.callData.status === CallStatus.WRAPUP && callWrapuptime !== null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? formatDuration(callWrapuptime)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: formatDuration(callDuration)}\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* Hold badge — only visible while call is on hold */}\r\n\t\t\t\t\t\t\t\t\t{isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"warning.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(holdDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* ── NEW: Mute badge — only visible while call is muted ── */}\r\n\t\t\t\t\t\t\t\t\t{isMuted && !isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<MicOff sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(muteDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────────── */}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────── */}\r\n\r\n\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\tsx={{ padding: \"18px 0px\" }}\r\n\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\tisLoading || agentReadyLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() ?? \"N/A\"}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonClick={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t\tdeleteIcon={<KeyboardArrowDown color=\"primary\" />}\r\n\t\t\t\t\t\t\t\t\tonDelete={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"0px 8px 8px 8px\" : \"0px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={\"Agent Ready\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SupportAgent /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleAgentReady();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tclasses={{\r\n\t\t\t\t\t\t\t\t\t\t\troot:\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"enabled\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t...(\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? outlined\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: enabled\r\n\t\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={agentReadyLoading}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Agent Ready\" : <SupportAgent />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton ? \"Hold feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.hold === 1 ? \"Resume\" : \"Hold\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? <PlayArrow /> : <Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableHoldButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{holdOrUnHoldLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? \"Resume\" : \"Hold\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.hold === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton ? \"Mute feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.mute === 1 ? \"Unmute\" : \"Mute\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? <MicOff /> : <Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableMuteButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton || state.callData?.hold === 1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? \"Unmute\" : \"Mute\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.mute === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableCallTransferButton ? \"Transfer Call feature is disabled\" : \"Transfer Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openCallTransferDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <TransferWithinAStation /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openCallTransferDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Transfer\" : <TransferWithinAStation />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableConferenceButton ? \"Conference Call feature is disabled\" : \"Conference Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openConferenceDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <Group /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openConferenceDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Conference\" : <Group />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableSmsServices && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Send SMS\"}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(ambulanceAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SmsSharp /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenAbulanceServices(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean(ambulanceAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: [CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Send SMS\" : <SmsSharp />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndCallButton ? \"End Call feature is disabled\" : \"End Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical && !endCallLoading ? <CallEnd /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenCallDisposition(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRight: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tendCallLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{endCallLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"error\" />\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"End Call\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CallEnd />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledMoreOptionsButton &&\r\n\t\t\t\t\t\t\t\t\tprocessList &&\r\n\t\t\t\t\t\t\t\t\tprocessList?.length > 1 && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={\"Switch Process\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(moreOptionsAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <MoreVert /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenMoreOptions(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={Boolean(moreOptionsAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Switch Process\" : <MoreVert />}\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Paper>\r\n\t\t\t\t</Fade>\r\n\t\t\t</Box>\r\n\r\n\t\t\t<Fade\r\n\t\t\t\tin={true}\r\n\t\t\t\ttimeout={300}\r\n\t\t\t>\r\n\t\t\t\t<Paper\r\n\t\t\t\t\tref={iframeDragRef}\r\n\t\t\t\t\televation={iframeIsDragging ? 4 : 1}\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\tleft: iframePosition.x,\r\n\t\t\t\t\t\ttop: iframePosition.y,\r\n\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\tzIndex: Number.MAX_SAFE_INTEGER,\r\n\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tvisibility: showIframe && !state.sdkConfig?.disableSoftPhone ? \"visible\" : \"hidden\",\r\n\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonMouseDown={iframeHandleMouseDown}\r\n\t\t\t\t\t\tonTouchStart={iframeHandleTouchStart}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DragIndicator\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(90deg)\",\r\n\t\t\t\t\t\t\t\tcolor: \"#7b7b7b\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t<Typography variant=\"subtitle1\" fontWeight={600} sx={{ textAlign: \"center\" }}>\r\n\t\t\t\t\t\t\tahs-cti\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={() => setShowIframe(false)}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t<iframe\r\n\t\t\t\t\t\t\t// src={`https://localhost:8443/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\tsrc={`${state.urlConfig?.iframeURL}/static/phone/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\t// src={`${state.urlConfig?.iframeURL}/static/phone/cti_index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}`}\r\n\t\t\t\t\t\t\theight={380}\r\n\r\n\t\t\t\t\t\t\twidth={420}\r\n\t\t\t\t\t\t\tallow=\"camera; microphone; autoplay\"\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tborder: \"none\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></iframe>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Fade>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={dialerAnchorEl}\r\n\t\t\t\topen={Boolean(dialerAnchorEl)}\r\n\t\t\t\tonClose={handleCloseDialer}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<TextField\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\tvalue={phoneNumber}\r\n\t\t\t\t\t\tplaceholder=\"Enter Mobile No.\"\r\n\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tconst value = e.target.value;\r\n\t\t\t\t\t\t\tif (/^\\d*$/.test(value)) {\r\n\t\t\t\t\t\t\t\tsetPhoneNumber(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\tcolor=\"info\"\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{clickToCallLoading ? (\r\n\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.success.main,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<Phone color=\"success\" />\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</IconButton>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={ambulanceAnchorEl}\r\n\t\t\t\topen={Boolean(ambulanceAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAmbulance}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Tooltip title=\"Ambulance Service\">\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\thandleSendSMS(state.callData);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tAmbulance\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"green\",\r\n\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\tmarginLeft: \"14px\",\r\n\t\t\t\t\t\t\t\t\tpadding: \"2px 6px\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tSend\r\n\t\t\t\t\t\t\t\t<SendRounded\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\ttransform: \"rotate(-16deg)\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={moreOptionsAnchorEl}\r\n\t\t\t\topen={Boolean(moreOptionsAnchorEl)}\r\n\t\t\t\tonClose={handleCloseMoreOptions}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{processList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tkey={item?.process_id}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={item?.process_name ?? \"\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.process?.process_id === item?.process_id ? \"contained\" : \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setProcess(item);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{item?.process_name ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={statusAnchorEl}\r\n\t\t\t\topen={Boolean(statusAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAgentStatus}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{!breaksList || breaksList?.length === 0 ? (\r\n\t\t\t\t\t<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t) : (\r\n\t\t\t\t\tbreaksList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\t\t\tkey={item?.type}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t// hilight background of selected\r\n\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"transparent\",\r\n\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"white\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\":hover\": {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"primary.dark\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"selected.hover\",\r\n\t\t\t\t\t\t\t\t\t\t// color:\r\n\t\t\t\t\t\t\t\t\t\t// \tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t// \t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t// \t:\t\"primary.main\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => handleUpdateAgentStatus(item?.type)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t- {item?.type}\r\n\t\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\topen={Boolean(anchorEl)}\r\n\t\t\t\tonClose={handleCloseQueueCounts}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Layers color=\"secondary\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Waiting - 25\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Pending color=\"info\" />}\r\n\t\t\t\t\t\tlabel=\"Pending - 99+\"\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Upcoming color=\"success\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Upcoming - 66\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t{Boolean(state.openConferenceDialog) && <ConferenceDialog />}\r\n\r\n\t\t\t{Boolean(state.openCallTransferDialog) && (\r\n\t\t\t\t<CallTransferDialog open={state.openCallTransferDialog} />\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallDisposition) && (\r\n\t\t\t\t<EndCallDispositionDialog\r\n\t\t\t\t\topen={openCallDisposition}\r\n\t\t\t\t\tsetOpen={setOpenCallDisposition}\r\n\t\t\t\t\tonSubmitDisposition={handleEndCall}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallHistoryDialog) && (\r\n\t\t\t\t<CallHistoryDialog\r\n\t\t\t\t\topen={openCallHistoryDialog}\r\n\t\t\t\t\tsetOpen={setOpenCallHistoryDialog}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M13 4 2 20h17l3-16zm1.5 10c-1.38 0-2.5-1.12-2.5-2.5S13.12 9 14.5 9s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n}), 'Airlines');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56-.35-.12-.74-.03-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99\"\n}), 'Call');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m14 4 2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z\"\n}), 'CallSplit');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15 9H9v6h6zm-2 4h-2v-2h2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2zm-4 6H7V7h10z\"\n}), 'MemoryOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m17.34 14.54-1.43-1.43c.56-.73 1.05-1.5 1.47-2.32l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 3.98-1.37 7.64-3.66 10.54m-2.82 2.81C11.63 19.64 7.97 21 4 21c-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c.81-.42 1.58-.9 2.3-1.46L1.39 4.22l1.42-1.41L21.19 21.2l-1.41 1.41z\"\n}), 'PhoneDisabled');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"circle\", {\n cx: \"9\",\n cy: \"9\",\n r: \"4\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4m7.76-9.64-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27M20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14\"\n}, \"1\")], 'RecordVoiceOver');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M13 18h-2v-2h2zm2-4H9v6h6zm4-4.7V4h-3v2.6L12 3 2 12h3l7-6.31L19 12h3z\"\n}), 'Roofing');","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport Airlines from \"@mui/icons-material/Airlines\";\r\nimport Call from \"@mui/icons-material/Call\";\r\nimport CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport CallSplit from \"@mui/icons-material/CallSplit\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport MemoryOutlined from \"@mui/icons-material/MemoryOutlined\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport PhoneDisabled from \"@mui/icons-material/PhoneDisabled\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport RecordVoiceOver from \"@mui/icons-material/RecordVoiceOver\";\r\nimport Roofing from \"@mui/icons-material/Roofing\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tDialog,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTypography,\r\n\tAutocomplete,\r\n\tTooltip,\r\n\tuseTheme,\r\n\tTableContainer,\r\n\tTable,\r\n\tTableHead,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTableBody,\r\n\tCircularProgress,\r\n\tCheckbox,\r\n} from \"@mui/material\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nimport { useGetRequest, usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { ConferenceLineTypes, CallStatus } from \"../../types\";\r\n\r\ntype TransferCallRequest = {\r\n\tmobile_number?: string;\r\n\tuserid?: string;\r\n\ttype?: string;\r\n\ttransfer_to?: string;\r\n\tcallreferenceid?: string;\r\n\tprocessid?: string;\r\n\tprocess_name?: string;\r\n};\r\n\r\ntype BlindTransferCallRequest = {\r\n\taction: string;\r\n\tuserid: string;\r\n\tcallreferenceid: string;\r\n\tblind_transfer_no: any;\r\n};\r\n\r\nconst ConferenceTableRow = ({ each, isLineDialing }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst theme = useTheme();\r\n\tconst { showToast } = useToast();\r\n\tconst { disabled, enabled } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst [conferenceCallStart, setConferenceCallStart] = useState(false);\r\n\tconst [conferenceCallMerge, setConferenceCallMerge] = useState(false);\r\n\tconst [conferenceCallHoldOrUnHold, setConferenceCallHoldOrUnHold] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\r\n\r\n\t// While any line is still dialing or on call (i.e. being set up before it joins\r\n\t// the conference), holding/resuming any line must be blocked.\r\n\tconst anyLineDialingOrOnCall = state?.conferenceLine?.some(\r\n\t\t(line: any) => line?.status === CallStatus.DIALING || line?.status === CallStatus.ONCALL,\r\n\t);\r\n\r\n\t// Hold/Resume is only actionable on lines already in the conference or on hold.\r\n\t// A dialing/on-call line is therefore disabled (its status isn't CONFERENCE/HOLD),\r\n\t// and while any line is still dialing or on call every line's Hold is disabled.\r\n\t// Also disabled while a hold/unhold request is in flight.\r\n\tconst holdEnabled =\r\n\t\t(each?.status === CallStatus.CONFERENCE || each?.status === CallStatus.HOLD) &&\r\n\t\t!anyLineDialingOrOnCall &&\r\n\t\t!conferenceCallHoldOrUnHold;\r\n\r\n\t// Check if the entered phone number is same as the active call number (used only as a call guard, not for UI error)\r\n\tconst isSameAsActiveCall = each?.phone === state.callData?.phone_number && !!each?.phone;\r\n\r\n\t// Show error on the DUPLICATE occurrence: any lower-numbered conference line already has the same phone\r\n\tconst isDuplicateInConference =\r\n\t\t!!each?.phone &&\r\n\t\teach?.line !== 1 &&\r\n\t\t(state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(line) => line.line < each.line && line.phone === each?.phone && !!line.phone,\r\n\t\t);\r\n\r\n\t// Only flag duplicates — no error on line 1 (active call) and no error on the first use of a number\r\n\tconst hasPhoneConflict = isDuplicateInConference;\r\n\r\n\tconst phoneConflictHelperText = isDuplicateInConference ? \"Number already used in another conference line\" : \"\";\r\n\r\n\tconst onConferenceLineUpdate = (line: ConferenceLineTypes, data: any) => {\r\n\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\r\n\t};\r\n\r\n\tconst onConferenceCallStart = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// Block dialing the same number as the active call\r\n\t\tif (line_used.phone === state.callData?.phone_number) {\r\n\t\t\tshowToast(\"Cannot conference with the active call number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Block dialing a number already used in another conference line\r\n\t\tconst isDuplicateNumber = (state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(l) => l.line !== line_used.line && l.phone === line_used.phone && !!l.phone,\r\n\t\t);\r\n\t\tif (isDuplicateNumber) {\r\n\t\t\tshowToast(\"Number already used in another conference line\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!line_used.phone || line_used.phone.length < 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallStart(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t// line_used: Number(line_used.line),\r\n\t\t\t// thirdparty_no: line_used.phone,\r\n\t\t\ttarget: line_used.phone,\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallStart(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onMergeConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallMerge(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CONFERENCE`,\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_MERGE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (state.callData?.hold === 1) {\r\n\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t}\r\n\t\t\t\tif (state.callData?.mute === 1) {\r\n\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t}\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallMerge(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onHoldOrUnHoldConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: type === \"HOLDUSER\" ? \"HOLD\" : \"UNHOLD\",\r\n\t\t\toperation: type,\r\n\t\t\thold_channel_no: type === \"HOLDUSER\" ? `hold${line_used.line}` : `unhold${line_used.line}`,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_HOLD_OR_UN_HOLD, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallHoldOrUnHold(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onEndConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// ✅ FIX: Prevent accidental hangup of the primary call channel via conference controls\r\n\t\tif (line_used.line === 1) {\r\n\t\t\tshowToast(\"Cannot end the primary call from conference controls\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallEnd(true);\r\n\r\n\t\t// Backend HangupRequest schema: call_id (required), agent_id, mobile_number,\r\n\t\t// line_number, reason. Pass line_number = the conference line being dropped\r\n\t\t// (line_number = 0 means full-call hangup, so it must be > 0 here).\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tmobile_number: line_used.phone ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEnd(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst [holdOrUnHold] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<TableRow\r\n\t\t\tkey={each.line}\r\n\t\t\tsx={{\r\n\t\t\t\tborder: \"2px solid #fff\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography>Line {each?.line ?? \"\"}. </Typography>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography\r\n\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tpx: 1,\r\n\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.status ?? \"\"}\r\n\t\t\t\t</Typography>\r\n\t\t\t</TableCell>\r\n\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<TextField\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\tplaceholder=\"Phone Number\"\r\n\t\t\t\t\tfullWidth\r\n\t\t\t\t\tvalue={each?.phone || \"\"}\r\n\t\t\t\t\terror={hasPhoneConflict}\r\n\t\t\t\t\thelperText={phoneConflictHelperText}\r\n\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\tCallStatus.DISCONNECTED,\r\n\t\t\t\t\t\t\tCallStatus.CONFERENCE,\r\n\t\t\t\t\t\t\tCallStatus.HOLD,\r\n\t\t\t\t\t\t\tCallStatus.MUTE,\r\n\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t].includes(each?.status ?? \"\") ||\r\n\t\t\t\t\t\tisLineDialing\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\tonConferenceLineUpdate(each, { phone: v });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tgap: \"10px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: holdEnabled ? \"#fff\" : \"inherit\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tUnhold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ color: holdEnabled ? \"#fff\" : \"inherit\", fontSize: \"12px\" }}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tHold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (() => {\r\n\t\t\t\t\t\tconst hasMinDigits = (each?.phone?.length ?? 0) >= 3;\r\n\t\t\t\t\t\tconst callDisabled =\r\n\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE ||\r\n\t\t\t\t\t\t\tisLineDialing ||\r\n\t\t\t\t\t\t\thasPhoneConflict ||\r\n\t\t\t\t\t\t\t!hasMinDigits;\r\n\t\t\t\t\t\tconst tooltipTitle = hasPhoneConflict\r\n\t\t\t\t\t\t\t? phoneConflictHelperText || \"Cannot dial this number\"\r\n\t\t\t\t\t\t\t: !each?.phone\r\n\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t: \"Call\";\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={callDisabled ? \"outlined\" : \"contained\"}\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\tcallDisabled\r\n\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tonConferenceCallStart(each, {});\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={callDisabled}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallStart ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"success\" />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Call\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: callDisabled ? \"default\" : \"#f3f2f2\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})()}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Merge Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.ONCALL ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.ONCALL ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonMergeConferenceCall(each, { isMergeCall: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== CallStatus.ONCALL}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ? <CircularProgress size=\"20px\" /> : <CallSplit />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t) : each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"End Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED\r\n\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED ?\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.IDLE ||\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.DISCONNECTED ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallEnd\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallEnd ? <CircularProgress size=\"20px\" color=\"error\" /> : <CallEnd />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</TableCell>\r\n\t\t</TableRow>\r\n\t);\r\n};\r\n\r\nexport function ConferenceDialog() {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [conferenceCallEndAll, setConferenceCallEndAll] = useState(false);\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t};\r\n\r\n\tconst onEndAllConferenceCalls = () => {\r\n\t\tsetConferenceCallEndAll(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"ENDCONFERENCE\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END_ALL, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEndAll(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst handleTransferConferenceCall = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"TRANSFERAPI\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_TRANSFER, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t\t// ✅ FIX: Do NOT call sdkStateManager.endCall() here.\r\n\t\t\t\t// The WebSocket will push the correct WRAPUP event — let it drive state.\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst isLineDialing = state?.conferenceLine?.some((item) => item?.status === CallStatus.DIALING);\r\n\tconst conferenceLineCount =\r\n\t\tstate?.conferenceLine?.filter((item) => item?.status === CallStatus.CONFERENCE)?.length ?? 0;\r\n\r\n\tconst isHold = state?.conferenceLine?.some((item) => item?.status === CallStatus.HOLD);\r\n\tconst isOnCall = state?.conferenceLine?.some((item) => item?.status === CallStatus.ONCALL);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={state.openConferenceDialog}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 800 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"0px 16px\",\r\n\t\t\t\t\t\t\tpaddingBottom: \"6px\",\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tcolor=\"primary.main\"\r\n\t\t\t\t\t\t\tsx={{ textTransform: \"uppercase\", fontWeight: \"bold\", fontSize: \"14px\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{state?.agentId ?? \"\"} conference\r\n\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\tonClick={handleTransferConferenceCall}\r\n\t\t\t\t\t\t\t\tdisabled={conferenceLineCount <= 1 || isHold || isLineDialing || isOnCall}\r\n\t\t\t\t\t\t\t\tstartIcon={<TransferWithinAStation />}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tExit Conference\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Close sx={{ color: \"primary.main\" }} />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"0px 15px\",\r\n\t\t\t\t\t\t\tborderRadius: \"20px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TableContainer\r\n\t\t\t\t\t\t\tcomponent={Paper}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\toutline: \"0px solid gray !important\",\r\n\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 6px #e7e5e5ff\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Table sx={{ border: \"4px solid #ffffff !important\" }}>\r\n\t\t\t\t\t\t\t\t<TableHead>\r\n\t\t\t\t\t\t\t\t\t<TableRow sx={{ border: \"2px solid #f3f3f3ff !important\" }}>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Line</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Status</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Mobile Number</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Call Actions</TableCell>\r\n\t\t\t\t\t\t\t\t\t</TableRow>\r\n\t\t\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t\t\t\t<TableBody>\r\n\t\t\t\t\t\t\t\t\t{state?.conferenceLine.map((each: any) => (\r\n\t\t\t\t\t\t\t\t\t\t<ConferenceTableRow key={each.line} each={each} isLineDialing={isLineDialing} />\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</TableBody>\r\n\t\t\t\t\t\t\t</Table>\r\n\t\t\t\t\t\t</TableContainer>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box sx={{ textAlign: \"center\", m: 2 }}>\r\n\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndConference ? \"End Conference feature is disabled\" : \"\"}>\r\n\t\t\t\t\t\t\t<Box component=\"span\">\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\tonClick={onEndAllConferenceCalls}\r\n\t\t\t\t\t\t\t\t\tdisabled={conferenceCallEndAll || conferenceLineCount <= 0 || state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"20px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{conferenceCallEndAll ? (\r\n\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ marginRight: \"8px\" }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.dark\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<PhoneDisabled sx={{ color: state.sdkConfig?.disableEndConference ? \"action.disabled\" : \"white\", fontSize: \"16px\", fontWeight: \"600\" }} />\r\n\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tEnd Conference\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallTransferDialog({ open }: any) {\r\n\tconst state = useSDKState();\r\n\tconst [mobileNumber, setMobileNumber] = useState(\"\");\r\n\r\n\t// ✅ FIX: Removed sdkStateManager.endCall() and sdkStateManager.resetConferenceLines()\r\n\t// from onSuccess. These were forcing the initial agent to IDLE immediately on the\r\n\t// client side, before the WebSocket pushed the correct WRAPUP event.\r\n\t// For a blind transfer the server will push:\r\n\t// - Initial agent → WRAPUP (via WebSocket)\r\n\t// - Transferred-to agent → RINGING → ONCALL (via WebSocket)\r\n\t// We must NOT touch local call state here — only close the dialog.\r\n\tconst [transferCall, { isLoading: isTransferLoading }] = usePostRequest<TransferCallRequest>({\r\n\t\tonSuccess: () => {\r\n\t\t\t// Close dialog only. Let WebSocket events drive all state transitions.\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [initiateConsultCall] = usePostRequest<any>({});\r\n\r\n\tconst [completeConsultTransfer, { isLoading: isCompleteConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [cancelConsultTransfer, { isLoading: isCancelConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [currentselecteTab, setCurrentselecteTab] = useState(\"queues\");\r\n\tconst [transferMenuAnchor, setTransferMenuAnchor] = useState<null | HTMLElement>(null);\r\n\tconst [pendingTransferData, setPendingTransferData] = useState<{ data: any; type: string } | null>(null);\r\n\r\n\tconst blindEnabled = !state.sdkConfig?.disableBlindTransfer;\r\n\tconst attendedEnabled = !state.sdkConfig?.disableAttendedTransfer;\r\n\tconst enabledTransferModeCount = (blindEnabled ? 1 : 0) + (attendedEnabled ? 1 : 0);\r\n\tconst singleTransferMode: \"DEFAULT\" | \"CONSULT\" | null =\r\n\t\tenabledTransferModeCount === 1 ? (blindEnabled ? \"DEFAULT\" : \"CONSULT\") : null;\r\n\r\n\tconst [getIdelAgentsList, { data: idleAgentsList, isLoading: isIdleAgentsListLoading }] =\r\n\t\tusePostRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetHospitalsServicesList,\r\n\t\t{ data: hospitalsServicesList, isLoading: isHospitalsServicesListLoading },\r\n\t] = useGetRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetProcessAndQueuesList,\r\n\t\t{ data: processAndQueuesList, isLoading: isProcessAndQueuesListLoading },\r\n\t] = usePostRequest<{\r\n\t\tstatus: string;\r\n\t\tactive: boolean;\r\n\t\tprocess?: any[];\r\n\t\tqueue?: any[];\r\n\t}>({ disabledSuccessToast: true });\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t};\r\n\r\n\tconst handleTransferCall = (data: any, type: string, mode: \"CONSULT\" | \"DEFAULT\" = \"DEFAULT\") => {\r\n\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\tif (type === \"PROCESS\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"PROCESS\",\r\n\t\t\t\ttransfer_to: data?.process_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"QUEUE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"QUEUE\",\r\n\t\t\t\ttransfer_to: data?.queue_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"AGENT\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"AGENT\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttransfer_to: data?.user_id?.toString() ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t} else if (type === \"OTHER\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\t// action: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND_TRANSFER\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttype: \"OTHER\",\r\n\t\t\t\ttransfer_to: data?.mobile_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\t// blind_transfer_no: data?.mobile_number ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleTransferClick = (e: React.MouseEvent<HTMLElement>, data: any, type: string) => {\r\n\t\tif (singleTransferMode) {\r\n\t\t\thandleTransferCall(data, type, singleTransferMode);\r\n\t\t} else {\r\n\t\t\tsetPendingTransferData({ data, type });\r\n\t\t\tsetTransferMenuAnchor(e.currentTarget);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, { status: \"ACTIVE\", active: true });\r\n\t\tgetHospitalsServicesList(END_POINT.HOSPITALS_SERVICES);\r\n\t}, []);\r\n\r\n\t// Auto-refresh the idle agents list every 3s, but only while the dialog is\r\n\t// open and the Agents tab is selected. The list is volatile (agents go\r\n\t// idle/busy constantly), so we keep it fresh; the interval is torn down as\r\n\t// soon as the user leaves the tab or closes the dialog.\r\n\tuseEffect(() => {\r\n\t\tif (!open || currentselecteTab !== \"agents\") return;\r\n\t\tconst intervalId = setInterval(() => {\r\n\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t}, 2000);\r\n\t\treturn () => clearInterval(intervalId);\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [open, currentselecteTab]);\r\n\r\n\t// Only block the dialog with the loader on the *initial* agents fetch. Once\r\n\t// we have data, background refreshes update the list silently (no flicker).\r\n\tconst idleAgentsLoaderActive = isIdleAgentsListLoading && !idleAgentsList?.data;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"lg\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 900 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t\tposition: \"relative\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ flex: 1 }}> Call Transfer</Typography>\r\n\t\t\t\t\t\t<Box sx={{ position: \"absolute\", left: \"50%\", transform: \"translateX(-50%)\" }}>\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.RINGING && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n\t\t\t\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ whiteSpace: \"nowrap\" }}>\r\n\t\t\t\t\t\t\t\t\t\tTrying to consult\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={{ display: \"inline-flex\", gap: \"3px\", alignItems: \"flex-end\", height: \"14px\" }}>\r\n\t\t\t\t\t\t\t\t\t\t{[0, 1, 2].map((i) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box key={i} component=\"span\" sx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"@keyframes jumpDot\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"0%, 60%, 100%\": { transform: \"translateY(0)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"30%\": { transform: \"translateY(-5px)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"jumpDot 1s ease-in-out infinite\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimationDelay: `${i * 0.15}s`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}>.</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCompleteConsultLoading ? <CircularProgress size={14} /> : <TransferWithinAStation sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCompleteConsultLoading || isCancelConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcompleteConsultTransfer(END_POINT.TRANSFER_COMPLETE, {}, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparams: { call_uuid: state.consultInfo.call_uuid },\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCancelConsultLoading ? <CircularProgress size={14} /> : <PhoneDisabled sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCancelConsultLoading || isCompleteConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcancelConsultTransfer(END_POINT.TRANSFER_CANCEL, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: state.consultInfo.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparticipant_identifier: state.consultInfo.participant_identifier,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tchannel_id: state.consultInfo.channel_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcall_uuid: state.consultInfo.call_uuid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbridge_id: state.consultInfo.bridge_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tCancel\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t<Box sx={{ flex: 1, display: \"flex\", justifyContent: \"flex-end\" }}>\r\n\t\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box sx={{ margin: \"10px\", borderRadius: \"10px\" }}>\r\n\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, margin: \"10px\" }}>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"process\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"process\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tProcess\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"queues\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"queues\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tQueues\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"agents\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"agents\");\r\n\t\t\t\t\t\t\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tAgents\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* {!state.sdkConfig?.disableBlindTransfer && ( */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"others\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"others\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tOthers\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* )} */}\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading ||\r\n\t\t\t\t\t\t\tidleAgentsLoaderActive ||\r\n\t\t\t\t\t\t\tisHospitalsServicesListLoading ||\r\n\t\t\t\t\t\t\tisTransferLoading) && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\theight: \"80px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<CircularProgress />\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MemoryOutlined sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(process, \"PROCESS\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Process Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.map((queue: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Airlines sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{queue.queue_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(queue, \"QUEUE\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Queues Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data && idleAgentsList?.data?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{idleAgentsList?.data && idleAgentsList?.data?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data?.map((agent: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{agent.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, agent, \"AGENT\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Agents Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"others\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(2, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{hospitalsServicesList?.data &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.map((service: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Roofing sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={`${service?.description ?? \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ color: \"text.secondary\" }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service.name}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"9px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service?.description ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : (service?.phone_number ?? \"\")}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: service?.phone_number ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{(() => {\r\n\t\t\t\t\t\t\t\t\t\t\tconst isSameAsActiveCall =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!mobileNumber && mobileNumber === (state.callData?.phone_number ?? \"\");\r\n\t\t\t\t\t\t\t\t\t\t\tconst hasMinDigits = mobileNumber.length >= 3;\r\n\t\t\t\t\t\t\t\t\t\t\tconst transferDisabled =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!state.consultInfo || !hasMinDigits || isSameAsActiveCall;\r\n\t\t\t\t\t\t\t\t\t\t\tconst tooltipTitle = state.consultInfo\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Please complete or cancel the ongoing consult transfer before proceeding.\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: isSameAsActiveCall\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Cannot transfer to the same number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: !mobileNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `Call To - ${mobileNumber}`;\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"others\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={mobileNumber}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror={isSameAsActiveCall}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={isSameAsActiveCall ? \"Cannot transfer to the same number\" : \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMobileNumber(v);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformHelperText: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"normal\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twordBreak: \"break-word\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={transferDisabled}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: mobileNumber ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t})()}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\r\n\t\t\t{/* Transfer Mode Menu */}\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={transferMenuAnchor}\r\n\t\t\t\topen={Boolean(transferMenuAnchor)}\r\n\t\t\t\tonClose={() => setTransferMenuAnchor(null)}\r\n\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"left\" }}\r\n\t\t\t\ttransformOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\r\n\t\t\t>\r\n\t\t\t\t{blindEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"DEFAULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TransferWithinAStation fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t\t{attendedEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"CONSULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<RecordVoiceOver fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tConsult then Transfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [getDispositions, data] = useGetRequest();\r\n\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\tcallbackDate: \"\",\r\n\t\tcallbackHrs: \"\",\r\n\t\tcallbackMins: \"\",\r\n\t\tselected_break: false,\r\n\t\tnotes: \"\",\r\n\t});\r\n\tconst followUpOptions = [\r\n\t\t{ label: \"Yes\", value: \"Y\" },\r\n\t\t{ label: \"No\", value: \"N\" },\r\n\t];\r\n\r\n\tconst handleChange = (\r\n\t\tfield: keyof typeof formData,\r\n\t\tvalue: { label: string } | null | string | boolean\r\n\t) => {\r\n\t\tsetFormData((prev) => ({ ...prev, [field]: value }));\r\n\t};\r\n\r\n\tconst handleReset = () => {\r\n\t\tsetFormData({\r\n\t\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\tcallbackDate: \"\",\r\n\t\t\tcallbackHrs: \"\",\r\n\t\t\tcallbackMins: \"\",\r\n\t\t\tselected_break: false,\r\n\t\t\tnotes: \"\",\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\thandleReset();\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetDispositions(END_POINT.DISPOSITIONS);\r\n\t}, []);\r\n\r\n\tconst dispositionsOptions = useMemo(() => {\r\n\t\treturn (\r\n\t\t\tdata?.data?.data\r\n\t\t\t\t?.filter((item: any) => item.name !== \"Resolved\")\r\n\t\t\t\t?.map((item: any) => ({\r\n\t\t\t\t\tlabel: item.name,\r\n\t\t\t\t\tvalue: item.code,\r\n\t\t\t\t\tid: item.disposition_id,\r\n\t\t\t\t}))\r\n\t\t\t\t?.sort((a: any, b: any) => a.label.localeCompare(b.label)) || []\r\n\t\t);\r\n\t}, [data?.data?.data]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"sm\"}\r\n\t\t\t\tfullWidth\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 600 } } }}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tminWidth: '650px'\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tsx={{ m: 1 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\t\tCall Disposition\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\tvalue={formData.disposition}\r\n\t\t\t\t\t\t\t\toptions={dispositionsOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"disposition\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Disposition\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\toptions={followUpOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.followUp}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"followUp\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Follow Up\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{/* <Autocomplete\r\n\t\t\t\t\t\t\t\toptions={breakOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.selected_break}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"selected_break\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Break\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tflex: \"1\",\r\n\t\t\t\t\t\t\t\t\tborder: \"1px solid #bdbdbd\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"5px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\t\tname=\"selected_break\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tchecked={formData.selected_break}\r\n\t\t\t\t\t\t\t\t\tonChange={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"selected_break\", event.target.checked);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinput: { \"aria-label\": \"controlled\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t\t\tMark as break\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" ? (\r\n\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Callback Date\"\r\n\t\t\t\t\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinputLabel: { shrink: true },\r\n\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\tmin: new Date().toISOString().split(\"T\")[0],\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackDate}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackDate\", e.target.value);\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = e.target.value === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tif (isToday) {\r\n\t\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\t\tconst currentHr = now.getHours();\r\n\t\t\t\t\t\t\t\t\t\t\tif (formData.callbackHrs && Number(formData.callbackHrs) < currentHr) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackHrs\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (formData.callbackHrs && Number(formData.callbackHrs) === currentHr && formData.callbackMins && Number(formData.callbackMins) < now.getMinutes()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<Box sx={{ flex: 1 }}></Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 24 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\treturn isToday && Number(option) < new Date().getHours();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackHrs || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackHrs\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Hours (0-23)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 60 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\tconst isCurrentHr = isToday && formData.callbackHrs === String(now.getHours()).padStart(2, \"0\");\r\n\t\t\t\t\t\t\t\t\t\treturn isCurrentHr && Number(option) < now.getMinutes();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackMins || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackMins\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Minutes (0-59)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t<Box sx={{ mt: 2 }}>\r\n\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\tlabel=\"Notes\"\r\n\t\t\t\t\t\t\t\tmultiline\r\n\t\t\t\t\t\t\t\tminRows={2}\r\n\t\t\t\t\t\t\t\tmaxRows={4}\r\n\t\t\t\t\t\t\t\tvalue={formData.notes}\r\n\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"notes\", e.target.value)}\r\n\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{ textAlign: \"right\", m: 2 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tcancel\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"contained\"\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={() => onSubmitDisposition(formData)}\r\n\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"10px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tSubmit\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function ProcessorListDialog({\r\n\topen,\r\n\tsetOpen,\r\n\tprocessList = null,\r\n\thandleSelectedProcessor,\r\n}: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={false}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Process List</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"6px 10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{processList.length > 0 ?\r\n\t\t\t\t\t\t\tprocessList?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\thandleSelectedProcessor(process);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallHistoryDialog({ open, setOpen }: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Call History</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\tp: 6,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tComing Soon...\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type AxiosRequestConfig } from \"axios\";\r\nimport { useCallback, useReducer } from \"react\";\r\n\r\nimport axiosInstance from \"./axios\";\r\nimport { useToast } from \"./toastMessage\";\r\nimport {\r\n\tRequestResult,\r\n\tUseGetRequest,\r\n\tRequestOptions,\r\n\tUsePostRequest,\r\n\tUsePutRequest,\r\n\tUseDeleteRequest,\r\n\tUsePatchRequest,\r\n} from \"../../types\";\r\n\r\nconst initialState = {\r\n\tisLoading: false,\r\n\tisSuccess: false,\r\n\tisError: false,\r\n\terror: null,\r\n\tdata: null,\r\n};\r\n\r\nconst reducer = (state: typeof initialState, action: { type: string; payload: any }) => {\r\n\tif (action.type === \"isLoading\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisLoading: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isSuccess\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisSuccess: true,\r\n\t\t\tdata: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isError\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisError: true,\r\n\t\t\terror: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"reset\") {\r\n\t\treturn {\r\n\t\t\tisLoading: false,\r\n\t\t\tisSuccess: false,\r\n\t\t\tisError: false,\r\n\t\t\terror: null,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\tthrow Error(\"Unknown action.\");\r\n};\r\n\r\nexport const useGetRequest = <T = UseGetRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst getRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [getRequest, state];\r\n};\r\n\r\nexport const usePostRequest = <T = UsePostRequest>(\r\n\tprops: RequestOptions = {}\r\n): [\r\n\t(_url: string, _payload: T, _config?: AxiosRequestConfig) => Promise<any>,\r\n\tRequestResult<T>,\r\n] => {\r\n\tconst { onSuccess = null, onError = null, disabledSuccessToast = false } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst postRequest = useCallback(\r\n\t\tasync (url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst res = await axiosInstance.post(url, payload, config);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\tif (!disabledSuccessToast) {\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (err: any) {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t}\r\n\t\t\t} finally {\r\n\t\t\t\tdispatch({\r\n\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\tpayload: false,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [postRequest, state];\r\n};\r\n\r\nexport const usePutRequest = <T = UsePutRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst putRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.put(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [putRequest, state];\r\n};\r\n\r\nexport const useDeleteRequest = <T = UseDeleteRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst deleteRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.delete(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [deleteRequest, state];\r\n};\r\n\r\nexport const usePatchRequest = <T = UsePatchRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst patchRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.patch(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [patchRequest, state];\r\n};\r\n","import { SxProps, useTheme } from \"@mui/material\";\r\n\r\nconst useStyles = ({\r\n disabled,\r\n enabled,\r\n outlined,\r\n}: {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n}): {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n} => {\r\n const theme = useTheme();\r\n return {\r\n disabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n opacity: 0.6,\r\n boxShadow: \"none\",\r\n cursor: \"not-allowed\",\r\n height: \"40px\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n },\r\n \"&:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n },\r\n // MUI sets `pointer-events: none` on disabled buttons, which hides the\r\n // cursor. Re-enable pointer events so `not-allowed` shows; the native\r\n // `disabled` attribute still blocks the click. Re-enabling pointer events\r\n // also revives MUI's hover/active visuals, so pin the muted look across\r\n // every interactive state — the button must never appear to \"light up\".\r\n \"&.Mui-disabled\": {\r\n pointerEvents: \"auto\",\r\n cursor: \"not-allowed\",\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n \"&:hover, &:focus, &:focus-visible, &:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n },\r\n },\r\n ...disabled,\r\n },\r\n enabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...enabled,\r\n },\r\n outlined: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n backgroundColor: theme.palette.grey[200],\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.light}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.main}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...outlined,\r\n },\r\n };\r\n};\r\n\r\nexport default useStyles;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type MouseEvent, type TouchEvent, useCallback, useRef, useState } from \"react\";\r\n\r\ninterface Position {\r\n\tx: number;\r\n\ty: number;\r\n}\r\n\r\ninterface UseDraggableReturn {\r\n\tposition: Position;\r\n\tisDragging: boolean;\r\n\tdragRef: any;\r\n\thandleMouseDown: (_e: MouseEvent<HTMLDivElement>) => void;\r\n\thandleTouchStart: (_e: TouchEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport function useDraggable(\r\n\tinitialPosition: Position,\r\n\tonPositionChange?: (_position: Position) => void\r\n): UseDraggableReturn {\r\n\tconst [position, setPosition] = useState<Position>(initialPosition);\r\n\r\n\tconst [isDragging, setIsDragging] = useState(false);\r\n\r\n\tconst dragRef = useRef<HTMLDivElement>();\r\n\r\n\tconst dragStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst elementStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst updatePosition = useCallback(\r\n\t\t(newPosition: Position) => {\r\n\t\t\tconst element = dragRef.current;\r\n\t\t\tif (!element) return;\r\n\r\n\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\tconst viewportWidth = window.innerWidth;\r\n\t\t\tconst viewportHeight = window.innerHeight;\r\n\r\n\t\t\tconst constrainedPosition = {\r\n\t\t\t\tx: Math.max(0, Math.min(newPosition.x, viewportWidth - rect.width)),\r\n\t\t\t\ty: Math.max(0, Math.min(newPosition.y, viewportHeight - rect.height)),\r\n\t\t\t};\r\n\r\n\t\t\tsetPosition(constrainedPosition);\r\n\t\t\tonPositionChange?.(constrainedPosition);\r\n\t\t},\r\n\t\t[onPositionChange]\r\n\t);\r\n\r\n\tconst handleStart = useCallback(\r\n\t\t(clientX: number, clientY: number) => {\r\n\t\t\tsetIsDragging(true);\r\n\t\t\tdragStart.current = { x: clientX, y: clientY };\r\n\t\t\telementStart.current = position;\r\n\r\n\t\t\tconst handleMove = (moveClientX: number, moveClientY: number) => {\r\n\t\t\t\tconst deltaX = moveClientX - dragStart.current.x;\r\n\t\t\t\tconst deltaY = moveClientY - dragStart.current.y;\r\n\r\n\t\t\t\tupdatePosition({\r\n\t\t\t\t\tx: elementStart.current.x + deltaX,\r\n\t\t\t\t\ty: elementStart.current.y + deltaY,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst handleMouseMove = (e: globalThis.MouseEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\thandleMove(e.clientX, e.clientY);\r\n\t\t\t};\r\n\r\n\t\t\tconst handleTouchMove = (e: globalThis.TouchEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst touch = e.touches[0];\r\n\t\t\t\tif (touch) {\r\n\t\t\t\t\thandleMove(touch.clientX, touch.clientY);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst handleEnd = () => {\r\n\t\t\t\tsetIsDragging(false);\r\n\t\t\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\t\tdocument.removeEventListener(\"mouseup\", handleEnd);\r\n\t\t\t\tdocument.removeEventListener(\"touchmove\", handleTouchMove);\r\n\t\t\t\tdocument.removeEventListener(\"touchend\", handleEnd);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.addEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\tdocument.addEventListener(\"mouseup\", handleEnd);\r\n\t\t\tdocument.addEventListener(\"touchmove\", handleTouchMove, {\r\n\t\t\t\tpassive: false,\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener(\"touchend\", handleEnd);\r\n\t\t},\r\n\t\t[position, updatePosition]\r\n\t);\r\n\r\n\tconst handleMouseDown = useCallback(\r\n\t\t(e: MouseEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\thandleStart(e.clientX, e.clientY);\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\tconst handleTouchStart = useCallback(\r\n\t\t(e: TouchEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst touch = e.touches[0];\r\n\t\t\tif (touch) {\r\n\t\t\t\thandleStart(touch.clientX, touch.clientY);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\treturn {\r\n\t\tposition,\r\n\t\tisDragging,\r\n\t\tdragRef,\r\n\t\thandleMouseDown,\r\n\t\thandleTouchStart,\r\n\t};\r\n}\r\n","// micController.ts\r\n\r\nexport type MicController = {\r\n\tstart: () => Promise<void>;\r\n\tstop: () => void;\r\n\tmute: () => void;\r\n\tunmute: () => void;\r\n\ttoggleMute: () => void;\r\n\tisMuted: () => boolean;\r\n\tgetStream: () => MediaStream | null;\r\n};\r\n\r\nexport function createMicController(\r\n\tconstraints: MediaStreamConstraints = { audio: true }\r\n): MicController {\r\n\tlet stream: MediaStream | null = null;\r\n\tlet muted = false;\r\n\r\n\tasync function start() {\r\n\t\tif (stream) return; // already started\r\n\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\r\n\t\t// default: unmuted\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = true));\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction setEnabled(enabled: boolean) {\r\n\t\tif (!stream) return;\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = enabled));\r\n\t\tmuted = !enabled;\r\n\t}\r\n\r\n\tfunction mute() {\r\n\t\tsetEnabled(false);\r\n\t}\r\n\r\n\tfunction unmute() {\r\n\t\tsetEnabled(true);\r\n\t}\r\n\r\n\tfunction toggleMute() {\r\n\t\tif (muted) {\r\n\t\t\tunmute();\r\n\t\t} else {\r\n\t\t\tmute();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction stop() {\r\n\t\tif (!stream) return;\r\n\t\tstream.getTracks().forEach((t) => t.stop());\r\n\t\tstream = null;\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction isMuted() {\r\n\t\treturn muted;\r\n\t}\r\n\r\n\tfunction getStream() {\r\n\t\treturn stream;\r\n\t}\r\n\r\n\treturn {\r\n\t\tstart,\r\n\t\tstop,\r\n\t\tmute,\r\n\t\tunmute,\r\n\t\ttoggleMute,\r\n\t\tisMuted,\r\n\t\tgetStream,\r\n\t};\r\n}\r\n","/**\r\n * Audio loader utility for handling MP3 files as buffers/blobs\r\n * This ensures the audio works correctly in bundled npm packages\r\n */\r\n\r\n// Import the MP3 file - bundler will handle this\r\n// @ts-ignore - MP3 module declaration\r\nimport incomingRingtoneUrl from \"../ringtones/incoming.mp3\";\r\n\r\nlet audioBlobUrl: string | null = null;\r\nlet audioBuffer: ArrayBuffer | null = null;\r\n\r\n/**\r\n * Loads the audio file as a blob URL for reliable playback\r\n * @returns Promise<string> - Blob URL or direct URL for the audio file\r\n */\r\nexport async function loadAudioAsBlob(): Promise<string> {\r\n\tif (audioBlobUrl) {\r\n\t\treturn audioBlobUrl;\r\n\t}\r\n\r\n\t// If the URL is already a data URL or absolute URL, use it directly\r\n\tif (\r\n\t\tincomingRingtoneUrl.startsWith(\"data:\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"http://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"https://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"blob:\")\r\n\t) {\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Try to fetch and convert to blob URL\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`HTTP ${response.status}: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\tconst blob = await response.blob();\r\n\r\n\t\t// Verify it's a valid blob\r\n\t\tif (blob.size === 0) {\r\n\t\t\tthrow new Error(\"Empty blob\");\r\n\t\t}\r\n\r\n\t\taudioBlobUrl = URL.createObjectURL(blob);\r\n\t\treturn audioBlobUrl;\r\n\t} catch (error) {\r\n\t\t// If fetch fails, the bundler may have already processed the URL\r\n\t\t// Return the original URL - it should work if tsup processed it correctly\r\n\t\tconsole.error(\"Could not create blob URL, using direct URL:\", error);\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n}\r\n\r\n/**\r\n * Loads the audio file as an ArrayBuffer\r\n * @returns Promise<ArrayBuffer> - Audio file as buffer\r\n */\r\nexport async function loadAudioAsBuffer(): Promise<ArrayBuffer> {\r\n\tif (audioBuffer) {\r\n\t\treturn audioBuffer;\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Failed to load audio: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\taudioBuffer = await response.arrayBuffer();\r\n\t\treturn audioBuffer;\r\n\t} catch (error) {\r\n\t\tconsole.error(\"Error loading audio as buffer:\", error);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\n/**\r\n * Creates an Audio element from the blob URL\r\n * @returns Promise<HTMLAudioElement> - Audio element ready to play\r\n */\r\nexport async function createAudioElement(): Promise<HTMLAudioElement> {\r\n\tconst audio = new Audio();\r\n\r\n\t// Set up audio properties before setting source\r\n\taudio.loop = true;\r\n\taudio.volume = 0.7;\r\n\taudio.preload = \"auto\";\r\n\r\n\t// Try multiple approaches to load the audio\r\n\tlet audioUrl: string = \"\";\r\n\r\n\t// First, try to get blob URL\r\n\ttry {\r\n\t\taudioUrl = await loadAudioAsBlob();\r\n\t} catch (error) {\r\n\t\tconsole.warn(\"Failed to load audio as blob, trying direct URL:\", error);\r\n\t\taudioUrl = incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Set up error handling with retry logic\r\n\tconst tryLoadAudio = async (url: string): Promise<boolean> => {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst checkCanPlay = () => {\r\n\t\t\t\t// Check if audio can play\r\n\t\t\t\tconst canPlay = audio.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\r\n\t\t\t\tif (canPlay) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check for errors\r\n\t\t\t\tif (audio.error) {\r\n\t\t\t\t\tresolve(false);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Wait a bit and check again\r\n\t\t\t\tsetTimeout(checkCanPlay, 100);\r\n\t\t\t};\r\n\r\n\t\t\taudio.addEventListener(\"canplay\", () => resolve(true), { once: true });\r\n\t\t\taudio.addEventListener(\"error\", () => resolve(false), { once: true });\r\n\t\t\taudio.src = url;\r\n\t\t\taudio.load();\r\n\r\n\t\t\t// Timeout after 2 seconds\r\n\t\t\tsetTimeout(() => resolve(false), 2000);\r\n\t\t});\r\n\t};\r\n\r\n\t// Try loading with the primary URL\r\n\tlet loaded = await tryLoadAudio(audioUrl);\r\n\r\n\t// If that fails, try the original import URL directly\r\n\tif (!loaded && audioUrl !== incomingRingtoneUrl) {\r\n\t\tloaded = await tryLoadAudio(incomingRingtoneUrl);\r\n\t\tif (loaded) {\r\n\t\t\taudioUrl = incomingRingtoneUrl;\r\n\t\t}\r\n\t}\r\n\r\n\treturn audio;\r\n}\r\n\r\n/**\r\n * Cleanup function to revoke blob URLs and free memory\r\n */\r\nexport function cleanupAudioResources(): void {\r\n\tif (audioBlobUrl) {\r\n\t\tURL.revokeObjectURL(audioBlobUrl);\r\n\t\taudioBlobUrl = null;\r\n\t}\r\n\taudioBuffer = null;\r\n}\r\n\r\n/**\r\n * Get the audio URL (blob URL or fallback to direct URL)\r\n * @returns string - Audio URL\r\n */\r\nexport function getAudioUrl(): string {\r\n\treturn audioBlobUrl || incomingRingtoneUrl;\r\n}\r\n","import React from \"react\";\r\nimport { SDKPermissionGuard } from \"../components/SDKPermissionGuard\";\r\nimport { SDK_MENU_CODES } from \"../permissions\";\r\n\r\n// ─── helper ──────────────────────────────────────────────────────────────────\r\n\r\nfunction withGuard(\r\n\tmenuCodes: string | string[],\r\n\tloader: () => Promise<{ default: React.FC<any> }>,\r\n): React.LazyExoticComponent<React.FC<any>> {\r\n\treturn React.lazy(async () => {\r\n\t\tconst mod = await loader();\r\n\t\tconst Page = mod.default;\r\n\t\tconst Guarded: React.FC<any> = (props) => (\r\n\t\t\t<SDKPermissionGuard menuFeature={menuCodes}>\r\n\t\t\t\t<Page {...props} />\r\n\t\t\t</SDKPermissionGuard>\r\n\t\t);\r\n\t\treturn { default: Guarded };\r\n\t});\r\n}\r\n\r\n// ─── page list ────────────────────────────────────────────────────────────────\r\n// Add new SDK pages here — one entry per page, guard is applied automatically.\r\n\r\nexport const SDKPages = {\r\n\tCallHistory: withGuard(SDK_MENU_CODES.CALL_HISTORY, () => import(\"./callHistory\")),\r\n\tCampaigns: withGuard(SDK_MENU_CODES.CAMPAIGNS, () => import(\"./campaigns\")),\r\n\tLoginReport: withGuard(SDK_MENU_CODES.LOGIN_REPORT, () => import(\"./loginReport\")),\r\n\tCdrReports: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./cdrReport\")),\r\n\tAuditReportPage: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./auditReport\")),\r\n\tAgentPerformanceReport: withGuard(SDK_MENU_CODES.AGENT_PERFORMANCE_REPORT, () => import(\"./agentPerformanceReport\")),\r\n\tAgentDetailReport: withGuard(SDK_MENU_CODES.AGENT_DETAIL_REPORT, () => import(\"./agentDetailReport\")),\r\n\tLiveStatus: withGuard(SDK_MENU_CODES.LIVE_STATUS, () => import(\"./liveStatus\")),\r\n\tManagementDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./managementDashboard\")),\r\n\tCaroVoiceAI: withGuard(SDK_MENU_CODES.CARO_VOICE_AI, () => import(\"./caroVoiceAI\")),\r\n\tQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./qualityAuditDashboard\")),\r\n\tCaroQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./caroQualityAuditDashboard\"))\r\n} as const;\r\n","import { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport interface UseClickToConferenceReturn {\r\n handleStartConferenceCall: (payload: ConferenceCallPayload) => Promise<any>;\r\n isLoading: boolean;\r\n isSuccess: boolean;\r\n isError: boolean;\r\n error: any;\r\n data: any;\r\n}\r\n\r\nexport const useClickToConference = (): UseClickToConferenceReturn => {\r\n const [loading, setLoading] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState<any>(null);\r\n const [data, setData] = useState<any>(null);\r\n\r\n // Track the line we dialed so we can watch for its socket update\r\n const pendingLineRef = useRef<number | null>(null);\r\n // Track the last seen conference state to detect changes\r\n const prevConferenceRef = useRef<any[]>([]);\r\n\r\n useEffect(() => {\r\n if (pendingLineRef.current === null) return;\r\n\r\n const unsubscribe = sdkStateManager.subscribe(() => {\r\n const state = sdkStateManager.getState();\r\n const targetLine = pendingLineRef.current;\r\n\r\n if (targetLine === null) return;\r\n\r\n const line = (state.conferenceLine as any[])?.find(\r\n (l) => l.line === targetLine,\r\n );\r\n\r\n // Socket has updated the line away from IDLE — conference is live\r\n if (line && line.status !== \"IDLE\") {\r\n pendingLineRef.current = null;\r\n prevConferenceRef.current = [];\r\n sdkStateManager.setOpenConferenceDialog(true);\r\n }\r\n });\r\n\r\n return unsubscribe;\r\n }, [loading]);\r\n\r\n const handleStartConferenceCall = useCallback(\r\n async (payload: ConferenceCallPayload): Promise<any> => {\r\n const state = getSession(STORAGE_KEY) as any;\r\n\r\n if (state?.callData?.status !== \"ONCALL\") {\r\n const msg = \"Conference call requires an active call (ONCALL status)\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find(\r\n (l: any) => l.line === payload.lineNumber,\r\n )\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n const msg = \"No available conference line found\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const requestPayload = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n setLoading(true);\r\n setIsError(false);\r\n setError(null);\r\n setSuccess(false);\r\n\r\n // Record which line we are waiting on so the subscriber can watch it\r\n pendingLineRef.current = availableLine.line;\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, requestPayload)\r\n .then((res) => {\r\n setData(res?.data);\r\n setSuccess(true);\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n pendingLineRef.current = null;\r\n setIsError(true);\r\n setError(err);\r\n return err?.response?.data;\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n },\r\n [],\r\n );\r\n\r\n return {\r\n handleStartConferenceCall,\r\n isLoading: loading,\r\n isSuccess: success,\r\n isError,\r\n error,\r\n data,\r\n };\r\n};\r\n","import { removeSession } from \"@react-solutions/vault\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport type { EndCallPayload } from \"../hooks/useEndCall\";\r\n\r\n// ─── Types ────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StartCallPayload {\r\n mobileNumber: string;\r\n user?: string;\r\n auto_answer?: boolean;\r\n call_id?: string;\r\n reference_id?: string;\r\n call_source?: string;\r\n caseId?: string;\r\n isWrapup?: boolean;\r\n parentCallUuid?: string;\r\n}\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport type { EndCallPayload };\r\n\r\nexport type SupervisorMonitorMode = \"listen\" | \"whisper\" | \"barge\";\r\n\r\nexport interface StartMonitoringPayload {\r\n call_id: string;\r\n mode: SupervisorMonitorMode;\r\n supervisor_extension?: string;\r\n agent_extension?: string;\r\n}\r\n\r\nexport interface StopMonitoringPayload {\r\n call_uuid: string;\r\n session_id?: string;\r\n}\r\n\r\nexport interface ChangeModePayload {\r\n call_uuid: string;\r\n mode: SupervisorMonitorMode;\r\n session_id?: string;\r\n}\r\n\r\n// ─── Actions ──────────────────────────────────────────────────────────────────\r\n\r\nexport function clickToCall(payload: StartCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"IDLE\" && state?.callData?.status !== \"ONCALL\"){\r\n // return Promise.reject(new Error(\"Agent is not ready\"));\r\n // }\r\n\r\n const body = {\r\n phone_number: payload.mobileNumber,\r\n user: payload.user ?? state?.agentId ?? \"\",\r\n auto_answer: payload.auto_answer ?? false,\r\n call_id: payload.call_id ?? state?.callData?.call_id ?? \"\",\r\n reference_id: payload.reference_id ?? \"\",\r\n call_source: payload.call_source ?? \"\",\r\n caseId: payload.caseId ?? \"\",\r\n isWrapup: payload.isWrapup ?? false,\r\n parentCallUuid: payload.parentCallUuid ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CLICK_TO_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.resetConferenceLines(); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n \r\n}\r\n\r\nexport function clickToConference(payload: ConferenceCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"ONCALL\") {\r\n // return Promise.reject(new Error(\"Conference call requires an active call (ONCALL status)\"));\r\n // }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find((l: any) => l.line === payload.lineNumber)\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n return Promise.reject(new Error(\"No available conference line found\"));\r\n }\r\n\r\n const body = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.setOpenConferenceDialog(true); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n}\r\n\r\nexport async function endCall(options: EndCallPayload = {}): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n const body = {\r\n call_id: options.call_id ?? state?.callData?.call_id ?? \"\",\r\n agent_id: options.agent_id ?? state?.agentId ?? \"\",\r\n set_followUp: options.set_followUp ?? \"N\",\r\n callback_date: options.callback_date ?? \"\",\r\n callback_hrs: options.callback_hrs ?? 0,\r\n callback_mins: options.callback_mins ?? 0,\r\n mobile_number: options.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n list_comments: options.list_comments ?? \"\",\r\n call_reference_id: options.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n is_mark_as_break: options.is_mark_as_break ?? false,\r\n disposition: options.disposition ?? \"RES\",\r\n line_number: options.line_number ?? 0,\r\n reason: options.reason ?? \"normal\",\r\n };\r\n\r\n const res = await axiosInstance.post(END_POINT.END_CALL, body);\r\n sdkStateManager.resetConferenceLines();\r\n sdkStateManager.endCall();\r\n return res.data;\r\n}\r\n\r\nexport async function logout(): Promise<void> {\r\n let logoutError: Error | undefined;\r\n\r\n try {\r\n await axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n } catch (err: any) {\r\n logoutError = new Error(err?.response?.data?.message || \"Logout failed. Please try again.\");\r\n } finally {\r\n sdkStateManager.clearStorageAndReset();\r\n removeSession(STORAGE_KEY);\r\n }\r\n\r\n if (logoutError) throw logoutError;\r\n}\r\n\r\nexport async function startMonitoring(payload: StartMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LISTEN, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function stopMonitoring(payload: StopMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LEAVE, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function changeMonitorMode(payload: ChangeModePayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_CHANGE_MODE, payload);\r\n return res.data;\r\n}\r\n\r\n/**\r\n * Set lead data that will be attached as `lead_data` in the transfer API payload.\r\n * Call this whenever the lead details change in the host application.\r\n *\r\n * @example\r\n * setTransferLeadData({ lead_id: 123, customer_name: 'John' });\r\n */\r\nexport function setTransferLeadData(data: any): void {\r\n sdkStateManager.setTransferLeadData(data);\r\n}\r\n","import { eventTracker } from \"./lib/hooks/eventsTracker\";\r\nimport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\nimport { useLogout } from \"./lib/hooks/useLogout\";\r\nimport { useEndCall } from \"./lib/hooks/useEndCall\";\r\nimport { SDKConfig, URLConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\nimport { useSDKState } from \"./lib/hooks/useSDKState\";\r\nimport { useCallMonitoring } from \"./lib/hooks/useCallMonitoring\";\r\nimport {\r\n SDK_PERMISSIONS,\r\n SDK_MENU_CODES,\r\n SDK_WILDCARD,\r\n type SDKPermissionState,\r\n type ControlsFromPermissions,\r\n type SDKPermissionContextValue,\r\n} from \"./lib/permissions\";\r\n\r\nexport { CallControlPanel } from \"./lib/components/callControlPanel\";\r\nexport { SDKPages } from \"./lib/pages\";\r\nexport {\r\n setAuditReportUrlResolver,\r\n type AuditReportUrlResolver,\r\n} from \"./lib/pages/common/components/AuditReport\";\r\nexport { SDKPermissionGuard } from \"./lib/components/SDKPermissionGuard\";\r\nexport { SDKAccessDenied } from \"./lib/components/SDKAccessDenied\";\r\nexport { useSDKPermissions } from \"./lib/hooks/useSDKPermissions\";\r\nexport type { SDKPermissionsHook } from \"./lib/hooks/useSDKPermissions\";\r\n\r\nexport type { CallControlPanelProps, CallData, SDKConfig } from \"./types\";\r\nexport type {\r\n SDKPermissionState,\r\n ControlsFromPermissions,\r\n SDKPermissionContextValue,\r\n};\r\n\r\ninterface InitSDKParams {\r\n apiKey: string;\r\n tenantId: string;\r\n agentId: string;\r\n sessionId?: string;\r\n sdkConfig?: SDKConfig;\r\n urlConfig?: URLConfig;\r\n}\r\n\r\nexport interface SDKInitResult {\r\n accessToken: string;\r\n expiration: string;\r\n ticketId: string;\r\n callControls: any;\r\n userInfo: any;\r\n}\r\n\r\nexport async function initSDK({\r\n apiKey,\r\n tenantId,\r\n agentId,\r\n sdkConfig,\r\n urlConfig,\r\n}: InitSDKParams): Promise<SDKInitResult> {\r\n if (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: API key is required\");\r\n }\r\n\r\n if (\r\n !tenantId ||\r\n typeof tenantId !== \"string\" ||\r\n tenantId.trim().length === 0\r\n ) {\r\n throw new Error(\"SDK initialization failed: Tenant ID is required\");\r\n }\r\n\r\n if (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: Agent ID is required\");\r\n }\r\n\r\n try {\r\n const initResult = await eventTracker.init({\r\n apiKey: apiKey.trim(),\r\n tenantId: tenantId.trim(),\r\n agentId: agentId.trim(),\r\n password: urlConfig?.password,\r\n accessToken: urlConfig?.accessToken,\r\n baseUrl: urlConfig?.coreBaseURL,\r\n });\r\n\r\n if (!initResult) {\r\n sdkStateManager.setInitCheck();\r\n throw new Error(\"SDK initialization failed\");\r\n }\r\n\r\n // To store all permissions,sdk & menus from init api response to STATE\r\n if (initResult.userInfo) {\r\n sdkStateManager.setSDKPermissions(initResult.userInfo);\r\n }\r\n\r\n // using stored permissions from response determining which items enables ONLY IN callcontrolpanel (hold,transfer)\r\n const permissionControlsConfig = sdkStateManager.getControlsConfig();\r\n\r\n // Remaining enalblement controls spreaded here along with callcontrolpanel controls\r\n // Combined to single control config\r\n const callcontrolConfig = {\r\n ...(initResult.callControls || {}),\r\n ...permissionControlsConfig,\r\n ...(sdkConfig || {}),\r\n // sdkPosition: 'vertical'\r\n };\r\n\r\n const res = {\r\n accessToken: initResult.accessToken,\r\n expiration: initResult.expiration,\r\n ticketId: initResult.ticketId,\r\n callControls: callcontrolConfig,\r\n userInfo: initResult.userInfo,\r\n };\r\n\r\n console.info(\"SDK initialized successfully\");\r\n\r\n sdkStateManager.initialize(\r\n apiKey.trim(),\r\n tenantId.trim(),\r\n agentId.trim(),\r\n urlConfig,\r\n res,\r\n callcontrolConfig,\r\n initResult.callControls,\r\n );\r\n\r\n return res;\r\n } catch (error) {\r\n sdkStateManager.setInitCheck();\r\n\r\n if (error instanceof Error) {\r\n throw error;\r\n }\r\n\r\n throw new Error(`SDK initialization failed: ${String(error)}`);\r\n }\r\n}\r\n\r\nexport function getSDKVersion(): string {\r\n return \"6.x.x\";\r\n}\r\n\r\nexport function isSDKInitialized(): boolean {\r\n return sdkStateManager.getState().isInitialized;\r\n}\r\n\r\nexport {\r\n useLogout,\r\n useEndCall,\r\n useClickToCall,\r\n useGetCallerData,\r\n useGetAuthorizationToken,\r\n useSDKState,\r\n useCallMonitoring,\r\n};\r\nexport type { UseClickToCallReturn, CallInitiationFunction, StartCalltHookStateTypes } from \"./lib/hooks/useClickToCall\";\r\nexport type { UseEndCallReturn, HookStateTypes, CallTerminationFunction } from \"./lib/hooks/useEndCall\";\r\nexport type { UseLogoutReturn, LogoutFunction, LogoutHookStateTypes } from \"./lib/hooks/useLogout\";\r\nexport { useClickToConference } from \"./lib/hooks/useClickToConference\";\r\nexport type { UseClickToConferenceReturn, ConferenceCallPayload as ConferenceCallHookPayload } from \"./lib/hooks/useClickToConference\";\r\n\r\nexport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\n\r\nexport {\r\n clickToCall,\r\n clickToConference,\r\n endCall,\r\n logout,\r\n startMonitoring,\r\n stopMonitoring,\r\n changeMonitorMode,\r\n setTransferLeadData,\r\n} from \"./lib/angular-services\";\r\nexport type {\r\n StartCallPayload,\r\n ConferenceCallPayload,\r\n EndCallPayload,\r\n SupervisorMonitorMode,\r\n StartMonitoringPayload,\r\n StopMonitoringPayload,\r\n ChangeModePayload,\r\n} from \"./lib/angular-services\";\r\n\r\nexport type {\r\n UseCallMonitoringReturn,\r\n} from \"./lib/hooks/useCallMonitoring\";\r\n\r\n// Entitlement exports\r\nexport { SDK_PERMISSIONS, SDK_MENU_CODES, SDK_WILDCARD };\r\n"],"mappings":"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","names":["useCallback","useState","useState","useCallback","data","_a","useCallback","useState","useState","useCallback","data","_a","useState","useState","useState","useEffect","useState","useEffect","useCallback","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","useEffect","useRef","useState","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","_jsx","useEffect","useState","useCallback","useCallback","useState","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","useEffect","useCallback","useState","Fragment","jsx","jsxs","useRef","useState","clickToCall","endCall","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","useEffect","_o","_p","_q","_r","_s","_t","isOnHold","isMuted","jsx","useCallback","React","jsx","React","useCallback","useEffect","useRef","useState","useState","useRef","useEffect","useCallback","_a","_a"]}
|