call-control-sdk 6.4.10-dev.2 → 6.4.10-dev.4

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../call-control-sdk/index.ts","../call-control-sdk/lib/services/endPoint.ts","../call-control-sdk/lib/hooks/sdk-state.ts","../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/services/axios.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/hooks/useClickToCall.ts","../call-control-sdk/lib/hooks/useGetCallerData.ts","../call-control-sdk/lib/hooks/useGetAuthorizationToken.ts","../call-control-sdk/lib/components/callControlPanel.tsx","../call-control-sdk/lib/components/callControls.tsx","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/hooks/useSDKState.ts","../call-control-sdk/lib/services/request.ts","../call-control-sdk/lib/services/toastMessage.tsx","../call-control-sdk/lib/components/dialog.tsx","../call-control-sdk/lib/components/styles.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/components/SDKProvider.tsx"],"sourcesContent":["import { eventTracker } from \"./lib/hooks/eventsTracker\";\r\nimport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\nimport { useLogout } from \"./lib/hooks/useLogout\";\r\nimport { BASE_URL } from \"./lib/services/endPoint\";\r\nimport { useEndCall } from \"./lib/hooks/useEndCall\";\r\nimport { SDKConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\n\r\nexport { CallControlPanel } from \"./lib/components/callControlPanel\";\r\n\r\nexport type { CallControlPanelProps, CallData, SDKConfig } from \"./types\";\r\n\r\ninterface InitSDKParams {\r\n\tapiKey: string;\r\n\r\n\ttenantId: string;\r\n\r\n\tagentId: string;\r\n\r\n\tsdkConfig?: SDKConfig;\r\n}\r\n\r\nexport async function initSDK({\r\n\tapiKey,\r\n\ttenantId,\r\n\tagentId,\r\n\tsdkConfig,\r\n}: InitSDKParams): Promise<void> {\r\n\tif (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: API key is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\tif (!tenantId || typeof tenantId !== \"string\" || tenantId.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: Tenant ID is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\tif (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: Agent ID is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst initResult = await eventTracker.init({\r\n\t\t\tapiKey: apiKey.trim(),\r\n\t\t\ttenantId: tenantId.trim(),\r\n\t\t\tagentId: agentId.trim(),\r\n\t\t\tbaseUrl: BASE_URL,\r\n\t\t});\r\n\r\n\t\tif (initResult) {\r\n\t\t\tconsole.log(\"SDK initialized successfully\");\r\n\t\t\tsdkStateManager.initialize(\r\n\t\t\t\tapiKey.trim(),\r\n\t\t\t\ttenantId.trim(),\r\n\t\t\t\tagentId.trim(),\r\n\t\t\t\tsdkConfig,\r\n\t\t\t\tinitResult\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tconsole.error(\"SDK initialization failed: Event tracker initialization returned false\");\r\n\t\t\tsdkStateManager.setInitCheck();\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"SDK initialization failed: Unable to establish connection with the CTI system\"\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error(\"SDK initialization error:\", error);\r\n\t\tsdkStateManager.setInitCheck();\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\tthrow error;\r\n\t\t} else {\r\n\t\t\tthrow new Error(`SDK initialization failed: ${String(error)}`);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function getSDKVersion(): string {\r\n\treturn \"6.x.x\";\r\n}\r\n\r\nexport function isSDKInitialized(): boolean {\r\n\treturn sdkStateManager.getState().isInitialized;\r\n}\r\n\r\nexport { useLogout, useEndCall, useClickToCall, useGetCallerData, useGetAuthorizationToken };\r\n","export const IP = \"uat-cti.aighospitals.com\";\r\nexport const BASE_URL = `https://${IP}:8095`;\r\nexport const WS_BASE_URL = `wss://${IP}:8095`;\r\nexport const VERSION = {\r\n\tv1: \"/api/v1\",\r\n};\r\n\r\nexport const END_POINT = {\r\n\tLOGIN: `${BASE_URL}${VERSION.v1}/cti/login?provider=convox`,\r\n\tREADY_AGENT: `${BASE_URL}${VERSION.v1}/cti/ready-agent?provider=convox`,\r\n\tUPDATE_AGENT_BREAK: `${BASE_URL}${VERSION.v1}/cti/update-agent-status?provider=convox`,\r\n\tCLICK_TO_CALL: `${BASE_URL}${VERSION.v1}/cti/calls?provider=convox`,\r\n\tHOLD_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/hold?provider=convox`,\r\n\tMUTE_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/mute?provider=convox`,\r\n\tUNMUTE_CALL: `${BASE_URL}${VERSION.v1}/cti/unmute-call?provider=convox`,\r\n\tEND_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/end?provider=convox`,\r\n\tLOGOUT: `${BASE_URL}${VERSION.v1}/cti/logout?provider=convox`,\r\n\r\n\tCONFERENCE_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/conference?provider=convox`,\r\n\tCONFERENCE_CALL_HOLD_OR_UN_HOLD: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hold?provider=convox`,\r\n\tCONFERENCE_CALL_MUTE_OT_UN_MUTE: `${BASE_URL}${VERSION.v1}/cti/calls/conference/mute?provider=convox`,\r\n\tCONFERENCE_CALL_END: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hangup?provider=convox`,\r\n\tCONFERENCE_CALL_END_ALL: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hangup/all?provider=convox`,\r\n\tTRANSFER_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/transfer?provider=convox`,\r\n\r\n\tAGENTS_LIST: `${BASE_URL}${VERSION.v1}/cti/users`,\r\n\tPROCESS_LIST: `${BASE_URL}${VERSION.v1}/cti/processes-list`,\r\n\tTRANSFER_TO_DETAILS: `${BASE_URL}${VERSION.v1}/cti/transfer-to-details?provider=convox`,\r\n\r\n\tCALL_HISTORY: `${BASE_URL}${VERSION.v1}/dashboard/call-history`,\r\n\tSENTIMENTAL_ANALYSIS: `${BASE_URL}${VERSION.v1}/users/get_sentiment_analysis`,\r\n};\r\n\r\nexport const WS_END_POINT = {\r\n\tWS: `${WS_BASE_URL}${VERSION.v1}/cti/ws`,\r\n};\r\n\r\nexport const STORAGE_KEY = \"call-control-sdk-state\";\r\n","import type {\r\n\tSDKState,\r\n\tCallData,\r\n\tCallStatus,\r\n\tConferenceLineTypes,\r\n\tSDKConfig,\r\n\tInitSDKRes,\r\n} from \"../../types\";\r\nimport { STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nclass SDKStateManager {\r\n\tprivate state: SDKState;\r\n\tprivate listeners: Array<() => void> = [];\r\n\tprivate readonly STORAGE_KEY = STORAGE_KEY;\r\n\r\n\tprivate apiKey: string | undefined;\r\n\tprivate tenantId: string | undefined;\r\n\r\n\tconstructor() {\r\n\t\tthis.state = this.getInitialState();\r\n\t\tthis.loadFromStorage();\r\n\t}\r\n\r\n\tprivate getInitialState(): SDKState {\r\n\t\treturn {\r\n\t\t\tauthorization: undefined,\r\n\t\t\tprocess: null,\r\n\t\t\tagentId: \"\",\r\n\t\t\topenConferenceDialog: false,\r\n\t\t\topenCallTransferDialog: false,\r\n\t\t\tisInitialized: false,\r\n\t\t\tsdkConfig: {\r\n\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\tisDraggable: true,\r\n\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\tdisabled: {},\r\n\t\t\t\tenabled: {},\r\n\t\t\t\toutlined: {},\r\n\t\t\t},\r\n\t\t\tisHolding: false,\r\n\t\t\tisMuted: false,\r\n\t\t\tstatus: \"idle\",\r\n\t\t\tcallStartTime: null,\r\n\t\t\tcontrolPanelPosition: { x: 10, y: 10 },\r\n\t\t\tiframePosition: { x: 10, y: 80 },\r\n\t\t\tcallData: {\r\n\t\t\t\tagent_id: \"\",\r\n\t\t\t\thold: 0,\r\n\t\t\t\tmute: 0,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tevent_time: \"\",\r\n\t\t\t\tphone_number: \"\",\r\n\t\t\t},\r\n\t\t\tconferenceLine: [\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 1,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 2,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 3,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 4,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 5,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\thold: 0,\r\n\t\t\tmute: 0,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate loadFromStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst stored = localStorage.getItem(this.STORAGE_KEY);\r\n\t\t\tif (stored) {\r\n\t\t\t\tconst parsedState = JSON.parse(stored);\r\n\r\n\t\t\t\tthis.state = {\r\n\t\t\t\t\t...this.state,\r\n\t\t\t\t\tagentId: parsedState.agentId || \"\",\r\n\t\t\t\t\tauthorization: parsedState.authorization || undefined,\r\n\t\t\t\t\tprocess: parsedState.process || null,\r\n\t\t\t\t\topenConferenceDialog: parsedState?.openConferenceDialog || false,\r\n\t\t\t\t\topenCallTransferDialog: parsedState?.openCallTransferDialog || false,\r\n\t\t\t\t\tisInitialized: parsedState.isInitialized || false,\r\n\t\t\t\t\tsdkConfig: parsedState.sdkConfig || {\r\n\t\t\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\t\t\tisDraggable: true,\r\n\t\t\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\t\t\tdisabled: {},\r\n\t\t\t\t\t\tenabled: {},\r\n\t\t\t\t\t\toutlined: {},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisHolding: parsedState.isHolding || false,\r\n\t\t\t\t\tisMuted: parsedState.isMuted || false,\r\n\t\t\t\t\tstatus: parsedState.status || \"idle\",\r\n\t\t\t\t\tcallStartTime: parsedState.callStartTime || null,\r\n\t\t\t\t\tcontrolPanelPosition: parsedState.controlPanelPosition || {\r\n\t\t\t\t\t\tx: 10,\r\n\t\t\t\t\t\ty: 10,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tiframePosition: parsedState.iframePosition || { x: 10, y: 80 },\r\n\t\t\t\t\tcallData: parsedState.callData || {\r\n\t\t\t\t\t\tmobileNumber: \"\",\r\n\t\t\t\t\t\tcallReferenceId: \"\",\r\n\t\t\t\t\t\tagent_id: \"\",\r\n\t\t\t\t\t\tstatus: \"\",\r\n\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\tevent_time: \"\",\r\n\t\t\t\t\t\tphone_number: \"\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// Fix: Properly handle conferenceLine with fallback to initial state\r\n\t\t\t\t\tconferenceLine:\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tparsedState.conferenceLine &&\r\n\t\t\t\t\t\t\tArray.isArray(parsedState.conferenceLine) &&\r\n\t\t\t\t\t\t\tparsedState.conferenceLine.length > 0\r\n\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\tparsedState.conferenceLine\r\n\t\t\t\t\t\t:\tthis.state.conferenceLine,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to load SDK state from localStorage:\", error);\r\n\t\t\t// If loading fails, keep the initial state\r\n\t\t}\r\n\t}\r\n\r\n\tprivate saveToStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst persistentState = {\r\n\t\t\t\tagentId: this.state.agentId,\r\n\t\t\t\tauthorization: this.state.authorization,\r\n\t\t\t\tprocess: this.state.process,\r\n\t\t\t\tisInitialized: this.state.isInitialized,\r\n\t\t\t\topenConferenceDialog: this.state.openConferenceDialog,\r\n\t\t\t\topenCallTransferDialog: this.state.openCallTransferDialog,\r\n\t\t\t\tsdkConfig: this.state.sdkConfig,\r\n\t\t\t\tisHolding: this.state.isHolding,\r\n\t\t\t\tisMuted: this.state.isMuted,\r\n\t\t\t\tstatus: this.state.status,\r\n\t\t\t\tcallStartTime: this.state.callStartTime,\r\n\t\t\t\tcontrolPanelPosition: this.state.controlPanelPosition,\r\n\t\t\t\tiframePosition: this.state.iframePosition,\r\n\t\t\t\tcallData: this.state.callData,\r\n\t\t\t\tconferenceLine: this.state.conferenceLine,\r\n\t\t\t};\r\n\t\t\tlocalStorage.setItem(this.STORAGE_KEY, JSON.stringify(persistentState));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to save SDK state to localStorage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate notifyListeners(): void {\r\n\t\tthis.listeners.forEach((listener) => listener());\r\n\t}\r\n\r\n\tprivate validateCredentials(apiKey: string, tenantId: string): void {\r\n\t\tif (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n\t\t\tthrow new Error(\"API key not available\");\r\n\t\t}\r\n\t\tif (!tenantId || typeof tenantId !== \"string\" || tenantId.trim().length === 0) {\r\n\t\t\tthrow new Error(\"Tenant ID not available\");\r\n\t\t}\r\n\t\tthis.apiKey = apiKey.trim();\r\n\t\tthis.tenantId = tenantId.trim();\r\n\t}\r\n\r\n\tpublic initialize(\r\n\t\tapiKey: string,\r\n\t\ttenantId: string,\r\n\t\tagentId: string,\r\n\t\tsdkConfig?: SDKConfig,\r\n\t\tinitResult?: InitSDKRes\r\n\t): void {\r\n\t\tthis.validateCredentials(apiKey, tenantId);\r\n\t\tif (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n\t\t\tthrow new Error(\"Agent ID not available\");\r\n\t\t} else {\r\n\t\t\tthis.state.agentId = agentId;\r\n\t\t\tthis.state.openConferenceDialog = false;\r\n\t\t\tthis.state.openCallTransferDialog = false;\r\n\t\t\tthis.state.authorization = initResult;\r\n\t\t\tthis.state.sdkConfig = {\r\n\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\tisDraggable: true,\r\n\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\tdisabled: {},\r\n\t\t\t\tenabled: {},\r\n\t\t\t\toutlined: {},\r\n\t\t\t\t...sdkConfig,\r\n\t\t\t};\r\n\t\t\tthis.state.isInitialized = true;\r\n\t\t\tthis.saveToStorage();\r\n\t\t\tthis.notifyListeners();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getState(): SDKState {\r\n\t\treturn { ...this.state };\r\n\t}\r\n\r\n\tpublic getCredentials(): { apiKey: string | undefined; tenantId: string | undefined } {\r\n\t\treturn { apiKey: this.apiKey, tenantId: this.tenantId };\r\n\t}\r\n\tpublic getSdkAuthToken(): string | undefined {\r\n\t\treturn this.state.authorization?.accessToken;\r\n\t}\r\n\r\n\tpublic subscribe(listener: () => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic setHolding(isHolding: boolean): void {\r\n\t\tthis.state.isHolding = isHolding;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setMuted(isMuted: boolean): void {\r\n\t\tthis.state.isMuted = isMuted;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setStatus(status: CallStatus): void {\r\n\t\tthis.state.status = status;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setProcess(process: { process_id: number; process_name: string }): void {\r\n\t\tthis.state.process = process;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setControlPanelPosition(position: { x: number; y: number }): void {\r\n\t\tthis.state.controlPanelPosition = position;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setIframePosition(position: { x: number; y: number }): void {\r\n\t\tthis.state.iframePosition = position;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic startCall(): void {\r\n\t\tthis.state.callStartTime = Date.now();\r\n\t\tthis.state.status = \"on call\";\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic endCall(): void {\r\n\t\tthis.state.callStartTime = null;\r\n\t\tthis.state.status = \"idle\";\r\n\t\tthis.state.isHolding = false;\r\n\t\tthis.state.isMuted = false;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setInitCheck(): void {\r\n\t\tthis.state.isInitialized = false;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setOpenConferenceDialog(open: boolean): void {\r\n\t\tthis.state.openConferenceDialog = open;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setOpenCallTransferDialog(open: boolean): void {\r\n\t\tthis.state.openCallTransferDialog = open;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic updateCallData(data: Partial<CallData>): void {\r\n\t\tthis.state.callData = { ...this.state.callData, ...data };\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic updateConferenceData(data: ConferenceLineTypes[]): void {\r\n\t\tthis.state.conferenceLine = [...data];\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setConferenceLine(line: ConferenceLineTypes): void {\r\n\t\tif (!this.state.conferenceLine || !Array.isArray(this.state.conferenceLine)) {\r\n\t\t\tconsole.warn(\"Conference line data corrupted, resetting to initial state\");\r\n\t\t\tthis.state.conferenceLine = this.getInitialState().conferenceLine;\r\n\t\t}\r\n\r\n\t\tconst conferenceLineData = this.state.conferenceLine?.map((each: ConferenceLineTypes) => {\r\n\t\t\tif (each.line === line.line) {\r\n\t\t\t\treturn line;\r\n\t\t\t}\r\n\t\t\treturn each;\r\n\t\t});\r\n\t\tthis.state.conferenceLine = conferenceLineData;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic resetConferenceLines(): void {\r\n\t\tthis.state.conferenceLine = [\r\n\t\t\t{\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 2,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 3,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 4,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 5,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t];\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic clearStorageAndReset(): void {\r\n\t\ttry {\r\n\t\t\tlocalStorage.removeItem(this.STORAGE_KEY);\r\n\t\t\tthis.state = this.getInitialState();\r\n\t\t\tthis.notifyListeners();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to clear localStorage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic debugStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst stored = localStorage.getItem(this.STORAGE_KEY);\r\n\t\t\tconsole.log(\"Current localStorage data:\", stored);\r\n\t\t\tif (stored) {\r\n\t\t\t\tconsole.log(\"Parsed localStorage data:\", JSON.parse(stored));\r\n\t\t\t}\r\n\t\t\tconsole.log(\"Current state:\", this.state);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"Error debugging storage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getConferenceLines(): ConferenceLineTypes[] {\r\n\t\treturn this.state.conferenceLine || [];\r\n\t}\r\n}\r\n\r\nexport const sdkStateManager = new SDKStateManager();\r\n","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\tsessionId?: string;\r\n\tbaseUrl?: string;\r\n\tautoTrack?:\r\n\t\t| boolean\r\n\t\t| {\r\n\t\t\t\tpageVisits?: boolean;\r\n\t\t\t\tclicks?: boolean;\r\n\t\t\t\tforms?: boolean;\r\n\t\t\t\tinputs?: boolean;\r\n\t\t\t\tscrolling?: boolean;\r\n\t\t\t\tperformance?: boolean;\r\n\t\t\t\terrors?: boolean;\r\n\t\t\t\tvisibility?: boolean;\r\n\t\t };\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\t// logEvent(eventType: string, eventData?: EventData): Promise<void>;\r\n\t// closeTicket(): Promise<void>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n\t// getTicketId(): string | null;\r\n\t// flush()?: Promise<void>;\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 eventQueue: Array<{\r\n\t\teventType: string;\r\n\t\teventData?: EventData;\r\n\t\ttimestamp: number;\r\n\t}> = [];\r\n\t// private isOnline: boolean = true;\r\n\t// private retryQueue: Array<() => Promise<void>> = [];\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\tautoTrack: true,\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\tthis.setupNetworkDetection();\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\tconsole.log(\"EventTracker SDK initialized successfully\");\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<string | 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\ttry {\r\n\t\t\tconst response = await this.makeRequest(\"/api/v1/et/init\", {\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tagentId: this.config.agentId,\r\n\t\t\t\t\tsessionId: this.config.sessionId,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!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\t\t\tif (this.config.autoTrack) {\r\n\t\t\t\tthis.setupAutoTracking();\r\n\t\t\t}\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"EventTracker initialization failed:\", error);\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync logEvent(eventType: string, eventData?: EventData): Promise<void> {\r\n\t\tif (!this.config || !this.ticketId) {\r\n\t\t\tconsole.warn(\"EventTracker not initialized, skipping event:\", eventType);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst event = {\r\n\t\t\teventType,\r\n\t\t\teventData,\r\n\t\t\ttimestamp: Date.now(),\r\n\t\t};\r\n\r\n\t\tthis.eventQueue.push(event);\r\n\r\n\t\tif (this.eventQueue.length > (this.config.queueSize || 100)) {\r\n\t\t\tthis.eventQueue.shift();\r\n\t\t}\r\n\r\n\t\t// if (this.isOnline) {\r\n\t\t// \ttry {\r\n\t\t// \t\tawait this.sendEvent(event);\r\n\t\t// \t} catch (error) {\r\n\t\t// \t\tconsole.warn(\"Failed to send event, will retry later:\", error);\r\n\t\t// \t}\r\n\t\t// }\r\n\t}\r\n\r\n\t// private async sendEvent(event: {\r\n\t// \teventType: string;\r\n\t// \teventData?: EventData;\r\n\t// \ttimestamp: number;\r\n\t// }): Promise<void> {\r\n\t// \tif (!this.config || !this.ticketId) return;\r\n\r\n\t// \ttry {\r\n\t// \t\tconst response = await this.makeRequest(\"/api/v1/et/event\", {\r\n\t// \t\t\tmethod: \"POST\",\r\n\t// \t\t\theaders: {\r\n\t// \t\t\t\t\"Content-Type\": \"application/json\",\r\n\t// \t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t// \t\t\t},\r\n\t// \t\t\tbody: JSON.stringify({\r\n\t// \t\t\t\tticketId: this.ticketId,\r\n\t// \t\t\t\teventType: event.eventType,\r\n\t// \t\t\t\teventData: event.eventData,\r\n\t// \t\t\t}),\r\n\t// \t\t});\r\n\r\n\t// \t\tif (!response.ok) {\r\n\t// \t\t\tthrow new Error(`Failed to log event: ${response.status} ${response.statusText}`);\r\n\t// \t\t}\r\n\r\n\t// \t\tconst index = this.eventQueue.findIndex((e) => e.timestamp === event.timestamp);\r\n\t// \t\tif (index > -1) {\r\n\t// \t\t\tthis.eventQueue.splice(index, 1);\r\n\t// \t\t}\r\n\t// \t} catch (error) {\r\n\t// \t\tconsole.error(\"Event logging failed:\", error);\r\n\r\n\t// \t\t// this.retryQueue.push(() => this.sendEvent(event));\r\n\t// \t}\r\n\t// }\r\n\r\n\t// async closeTicket(): Promise<void> {\r\n\t// \tif (!this.config || !this.ticketId) {\r\n\t// \t\tthrow new Error(\"EventTracker not initialized\");\r\n\t// \t}\r\n\r\n\t// \tawait this.flush();\r\n\r\n\t// \ttry {\r\n\t// \t\tconst response = await this.makeRequest(\"/api/v1/et/close\", {\r\n\t// \t\t\tmethod: \"POST\",\r\n\t// \t\t\theaders: {\r\n\t// \t\t\t\t\"Content-Type\": \"application/json\",\r\n\t// \t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t// \t\t\t},\r\n\t// \t\t\tbody: JSON.stringify({\r\n\t// \t\t\t\tticketId: this.ticketId,\r\n\t// \t\t\t}),\r\n\t// \t\t});\r\n\r\n\t// \t\tif (!response.ok) {\r\n\t// \t\t\tthrow new Error(`Failed to close ticket: ${response.status} ${response.statusText}`);\r\n\t// \t\t}\r\n\r\n\t// \t\tthis.ticketId = null;\r\n\t// \t\tthis.stopPeriodicFlush();\r\n\r\n\t// \t\tconsole.log(\"Ticket closed successfully\");\r\n\t// \t} catch (error) {\r\n\t// \t\tconsole.error(\"Ticket close failed:\", error);\r\n\t// \t\tthrow error;\r\n\t// \t}\r\n\t// }\r\n\r\n\t// async flush(): Promise<void> {\r\n\t// \tif (!this.isOnline || this.eventQueue.length === 0) return;\r\n\r\n\t// \t// const eventsToFlush = [...this.eventQueue];\r\n\r\n\t// \t// for (const event of eventsToFlush) {\r\n\t// \t// \tawait this.sendEvent(event);\r\n\t// \t// }\r\n\r\n\t// \tconst retryItems = [...this.retryQueue];\r\n\t// \tthis.retryQueue = [];\r\n\r\n\t// \tfor (const retryFn of retryItems) {\r\n\t// \t\ttry {\r\n\t// \t\t\tawait retryFn();\r\n\t// \t\t} catch (error) {\r\n\t// \t\t\tconsole.error(\"Retry failed:\", error);\r\n\t// \t\t}\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 setupAutoTracking(): void {\r\n\t\tif (typeof window === \"undefined\" || !this.config?.autoTrack) return;\r\n\r\n\t\tconst autoTrackConfig = this.config.autoTrack === true ? {} : this.config.autoTrack;\r\n\r\n\t\tif (autoTrackConfig.pageVisits !== false) {\r\n\t\t\tthis.logEvent(\"pageVisit\", {\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\ttitle: document.title,\r\n\t\t\t\treferrer: document.referrer,\r\n\t\t\t\tuserAgent: navigator.userAgent,\r\n\t\t\t\tviewport: {\r\n\t\t\t\t\twidth: window.innerWidth,\r\n\t\t\t\t\theight: window.innerHeight,\r\n\t\t\t\t},\r\n\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t}).catch((error) => console.warn(\"Failed to track page visit:\", error));\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.clicks !== false) {\r\n\t\t\tdocument.addEventListener(\"click\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLElement | HTMLButtonElement;\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.tagName === \"BUTTON\" ||\r\n\t\t\t\t\ttarget.tagName === \"A\" ||\r\n\t\t\t\t\ttarget.onclick ||\r\n\t\t\t\t\ttarget.getAttribute(\"role\") === \"button\" ||\r\n\t\t\t\t\t(target instanceof HTMLButtonElement && target.type === \"button\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.logEvent(\"click\", {\r\n\t\t\t\t\t\telement: target.tagName,\r\n\t\t\t\t\t\ttext: target.textContent?.trim().substring(0, 100),\r\n\t\t\t\t\t\thref: target.getAttribute(\"href\"),\r\n\t\t\t\t\t\tid: target.id,\r\n\t\t\t\t\t\tclassName: target.className,\r\n\t\t\t\t\t\trole: target.getAttribute(\"role\"),\r\n\t\t\t\t\t\tposition: {\r\n\t\t\t\t\t\t\tx: event.clientX,\r\n\t\t\t\t\t\t\ty: event.clientY,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t}).catch((error) => console.warn(\"Failed to track click:\", error));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.forms !== false) {\r\n\t\t\tdocument.addEventListener(\"submit\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLFormElement;\r\n\t\t\t\tconst formData = new FormData(target);\r\n\t\t\t\tconst formFields: Record<string, string> = {};\r\n\r\n\t\t\t\tformData.forEach((value, key) => {\r\n\t\t\t\t\tformFields[key] = value.toString();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.logEvent(\"formSubmission\", {\r\n\t\t\t\t\tformId: target.id,\r\n\t\t\t\t\taction: target.action,\r\n\t\t\t\t\tmethod: target.method,\r\n\t\t\t\t\tfields: Object.keys(formFields),\r\n\t\t\t\t\tfieldCount: Object.keys(formFields).length,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t}).catch((error) => console.warn(\"Failed to track form submission:\", error));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.inputs !== false) {\r\n\t\t\tlet inputTimer: ReturnType<typeof setInterval>;\r\n\t\t\tdocument.addEventListener(\"input\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLInputElement;\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.tagName === \"INPUT\" ||\r\n\t\t\t\t\ttarget.tagName === \"TEXTAREA\" ||\r\n\t\t\t\t\ttarget.tagName === \"SELECT\"\r\n\t\t\t\t) {\r\n\t\t\t\t\tclearTimeout(inputTimer);\r\n\t\t\t\t\tinputTimer = setTimeout(() => {\r\n\t\t\t\t\t\tthis.logEvent(\"fieldChange\", {\r\n\t\t\t\t\t\t\telement: target.tagName,\r\n\t\t\t\t\t\t\ttype: target.getAttribute(\"type\"),\r\n\t\t\t\t\t\t\tname: target.getAttribute(\"name\"),\r\n\t\t\t\t\t\t\tid: target.id,\r\n\t\t\t\t\t\t\tvalueLength: target.value?.length || 0,\r\n\t\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t\t}).catch((error) => console.warn(\"Failed to track field change:\", error));\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst sessionStartTime = Date.now();\r\n\t\twindow.addEventListener(\"beforeunload\", () => {\r\n\t\t\tconst sessionDuration = Date.now() - sessionStartTime;\r\n\r\n\t\t\tthis.logEvent(\"pageUnload\", {\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\tsessionDuration: sessionDuration,\r\n\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t});\r\n\r\n\t\t\t// if (this.ticketId) {\r\n\t\t\t// \tnavigator.sendBeacon(\r\n\t\t\t// \t\t`${this.baseUrl}/api/v1/et/close`,\r\n\t\t\t// \t\tJSON.stringify({\r\n\t\t\t// \t\t\tticketId: this.ticketId,\r\n\t\t\t// \t\t})\r\n\t\t\t// \t);\r\n\t\t\t// }\r\n\t\t});\r\n\r\n\t\tif (autoTrackConfig.visibility !== false) {\r\n\t\t\tdocument.addEventListener(\"visibilitychange\", () => {\r\n\t\t\t\tthis.logEvent(\"visibilityChange\", {\r\n\t\t\t\t\thidden: document.hidden,\r\n\t\t\t\t\tvisibilityState: document.visibilityState,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.errors !== false) {\r\n\t\t\twindow.addEventListener(\"error\", (event) => {\r\n\t\t\t\tthis.logEvent(\"jsError\", {\r\n\t\t\t\t\tmessage: event.message,\r\n\t\t\t\t\tfilename: event.filename,\r\n\t\t\t\t\tlineno: event.lineno,\r\n\t\t\t\t\tcolno: event.colno,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\twindow.addEventListener(\"unhandledrejection\", (event) => {\r\n\t\t\t\tthis.logEvent(\"unhandledRejection\", {\r\n\t\t\t\t\treason: event.reason?.toString(),\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tautoTrackConfig.performance !== false &&\r\n\t\t\ttypeof window.performance !== \"undefined\" &&\r\n\t\t\twindow.performance.navigation\r\n\t\t) {\r\n\t\t\twindow.addEventListener(\"load\", () => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tconst navigation = window.performance.navigation;\r\n\t\t\t\t\tconst timing = window.performance.timing;\r\n\r\n\t\t\t\t\tthis.logEvent(\"performanceMetrics\", {\r\n\t\t\t\t\t\tnavigationTime: timing.navigationStart,\r\n\t\t\t\t\t\tloadTime: timing.loadEventEnd - timing.navigationStart,\r\n\t\t\t\t\t\tdomReady: timing.domContentLoadedEventEnd - timing.navigationStart,\r\n\t\t\t\t\t\trenderTime: timing.loadEventEnd - timing.domContentLoadedEventEnd,\r\n\t\t\t\t\t\tnavigationType: navigation.type,\r\n\t\t\t\t\t\tredirectCount: navigation.redirectCount,\r\n\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 1000);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupNetworkDetection(): void {\r\n\t\tif (typeof window === \"undefined\") return;\r\n\r\n\t\t// this.isOnline = navigator.onLine;\r\n\r\n\t\twindow.addEventListener(\"online\", () => {\r\n\t\t\t// this.isOnline = true;\r\n\t\t\tconsole.log(\"EventTracker: Back online, flushing queued events\");\r\n\t\t\t// this.flush();\r\n\t\t});\r\n\r\n\t\twindow.addEventListener(\"offline\", () => {\r\n\t\t\t// this.isOnline = false;\r\n\t\t\tconsole.log(\"EventTracker: Offline, queueing events\");\r\n\t\t});\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\t\t// const interval = this.config?.flushInterval || 5000;\r\n\t\t// this.flushTimer = setInterval(() => {\r\n\t\t// \tthis.flush();\r\n\t\t// }, interval);\r\n\t}\r\n\r\n\t// private stopPeriodicFlush(): void {\r\n\t// \tif (this.flushTimer) {\r\n\t// \t\tclearInterval(this.flushTimer);\r\n\t// \t\tthis.flushTimer = null;\r\n\t// \t}\r\n\t// }\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, STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\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 handleLogout = useCallback(async () => {\r\n\t\tconst state = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tconst payload: LogoutPayload = {\r\n\t\t\taction: \"LOGOUTUSER\",\r\n\t\t\tuserId: state.agentId || \"\",\r\n\t\t};\r\n\r\n\t\treturn axiosInstance\r\n\t\t\t.post(END_POINT.LOGOUT, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tsdkStateManager.clearStorageAndReset();\r\n\r\n\t\t\t\tlocalStorage.clear();\r\n\r\n\t\t\t\tsessionStorage.clear();\r\n\r\n\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\treturn res?.data;\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\tsetError(err);\r\n\r\n\t\t\t\treturn err?.response?.data;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetLoading(false);\r\n\t\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 axios, { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig } from \"axios\";\r\nimport { BASE_URL } from \"./endPoint\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nconst DEFAULT_TOKEN = sdkStateManager.getSdkAuthToken() ?? \"\";\r\n\r\nconst REQUEST_TIMEOUT = 60000;\r\n\r\nfunction getAuthToken(): string {\r\n\treturn sdkStateManager.getSdkAuthToken() ?? \"\";\r\n}\r\n\r\nfunction createAxiosInstance(): AxiosInstance {\r\n\tconst instance = axios.create({\r\n\t\tbaseURL: BASE_URL,\r\n\t\theaders: {\r\n\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\tAccept: \"application/json\",\r\n\t\t\t\"x-tenant-id\": sdkStateManager.getCredentials()?.tenantId ?? \"\",\r\n\t\t\t\"x-api-key\": sdkStateManager.getCredentials()?.apiKey ?? \"\",\r\n\t\t\tAuthorization: `${DEFAULT_TOKEN}`,\r\n\t\t},\r\n\t\ttimeout: REQUEST_TIMEOUT,\r\n\t\twithCredentials: false,\r\n\t});\r\n\r\n\tinstance.interceptors.request.use(\r\n\t\t(config: InternalAxiosRequestConfig) => {\r\n\t\t\tconst token = getAuthToken();\r\n\r\n\t\t\tif (token && config.headers) {\r\n\t\t\t\tconfig.headers.Authorization = `${token}`;\r\n\t\t\t\t// config.headers[\"x-tenant-id\"] = sdkStateManager.getCredentials()?.tenantId ?? \"\";\r\n\t\t\t\t// config.headers[\"x-api-key\"] = sdkStateManager.getCredentials()?.apiKey ?? \"\";\r\n\t\t\t}\r\n\r\n\t\t\t(config as any).metadata = { startTime: new Date().getTime() };\r\n\r\n\t\t\treturn config;\r\n\t\t},\r\n\t\t(error: AxiosError) => {\r\n\t\t\tconsole.error(\"Request interceptor error:\", error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\t}\r\n\t);\r\n\r\n\tinstance.interceptors.response.use(\r\n\t\t(response: AxiosResponse) => {\r\n\t\t\tconst endTime = new Date().getTime();\r\n\t\t\tconst startTime = (response.config as any).metadata?.startTime;\r\n\t\t\tif (startTime) {\r\n\t\t\t\tconsole.log(`Request to ${response.config.url} took ${endTime - startTime}ms`);\r\n\t\t\t}\r\n\r\n\t\t\treturn response;\r\n\t\t},\r\n\t\tasync (error: AxiosError) => {\r\n\t\t\tconst originalRequest = error.config as InternalAxiosRequestConfig & { _retry?: boolean };\r\n\r\n\t\t\tif (error.response?.status === 401 && !originalRequest._retry) {\r\n\t\t\t\tsdkStateManager.setInitCheck();\r\n\t\t\t\tconsole.warn(\"Unauthorized request, attempting retry...\");\r\n\t\t\t}\r\n\r\n\t\t\tif (!error.response) {\r\n\t\t\t\tconsole.error(\"Network error:\", error.message);\r\n\t\t\t\terror.message = \"Network error: Please check your internet connection\";\r\n\t\t\t}\r\n\r\n\t\t\tif (error.response && error.response.status >= 500) {\r\n\t\t\t\tconsole.error(\"Server error:\", error.response.status, error.response.data);\r\n\t\t\t\terror.message = \"Server error: Please try again later\";\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.reject(error);\r\n\t\t}\r\n\t);\r\n\r\n\treturn instance;\r\n}\r\n\r\nconst axiosInstance: AxiosInstance = createAxiosInstance();\r\n\r\nexport default axiosInstance;\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT, STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nexport interface EndCallPayload {\r\n\taction: string;\r\n\tdisposition: string;\r\n\tuserId: string;\r\n\tprocessid: string;\r\n\tmobile_number: string;\r\n\tset_followUp: string;\r\n\tcallback_date: string;\r\n\tcallback_hrs: string;\r\n\tcallback_mins: string;\r\n\trefno?: string;\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: {\r\n\t\t\tdisposition?: string;\r\n\t\t\tfollowUp?: string;\r\n\t\t\tcallbackDate?: string;\r\n\t\t\tcallbackHrs?: string;\r\n\t\t\tcallbackMins?: string;\r\n\t\t}) => {\r\n\t\t\tconst state = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"ENDCALL\",\r\n\t\t\t\tuserId: state?.agentId,\r\n\t\t\t\tprocessid: state?.process?.process_id?.toString() ?? \"\",\r\n\t\t\t\tprocess_name: state?.process?.process_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state?.callData?.convox_id ?? \"\",\r\n\t\t\t\tmobile_number: state?.callData?.phone_number ?? \"\",\r\n\r\n\t\t\t\tdisposition: data?.disposition ?? \"RES\",\r\n\t\t\t\tset_followUp: data?.followUp ?? \"N\",\r\n\t\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\t\tcallback_hrs: data?.callbackHrs ?? \"\",\r\n\t\t\t\tcallback_mins: data?.callbackMins ?? \"\",\r\n\t\t\t\tendcall_type: \"CLOSE\",\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, STORAGE_KEY } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface StartCallPayload {\r\n\tmobileNumber: string; // 📱 Phone number to call\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 = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (state?.callData?.status === \"IDLE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tuserId: state?.agentId,\r\n\t\t\t\tphone_number: data?.mobileNumber,\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 if (state?.callData?.status === \"ONCALL\") {\r\n\t\t\tconst line_used = state?.conferenceLine\r\n\t\t\t\t?.filter((each: any) => each.line !== 1)\r\n\t\t\t\t?.find((each: any) => each.status === \"IDLE\" && !each?.isCallStart);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t\tline_used: String(line_used.line),\r\n\t\t\t\tthirdparty_no: data?.mobileNumber,\r\n\t\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t\t.then((res) => {\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\tsdkStateManager.setConferenceLine({\r\n\t\t\t\t\t\t...line_used,\r\n\t\t\t\t\t\tisCallStart: true,\r\n\t\t\t\t\t\tstatus: \"ONCALL\",\r\n\t\t\t\t\t\tphone: data?.mobileNumber,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(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\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","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { CallData } from \"../../types\";\r\n\r\nexport const useGetCallerData = (): CallData => {\r\n\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\tsdkStateManager.getState().callData;\r\n\tconst initialCallData = {\r\n\t\tphone_number,\r\n\t\tstatus,\r\n\t\tcallReferenceId: convox_id,\r\n\t\tagent_id,\r\n\t\tprocess_id,\r\n\t\tprocess_name,\r\n\t};\r\n\tconst [callData, setCallData] = useState<CallData>(initialCallData);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\t\t\tsdkStateManager.getState().callData;\r\n\t\t\tconst currentCallData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: convox_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};\r\n\t\t\tsetCallData(currentCallData);\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn callData;\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 { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\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\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","import {\r\n\tCallEnd,\r\n\tClose,\r\n\tDragIndicator,\r\n\tGroup,\r\n\tKeyboardArrowDown,\r\n\tLayers,\r\n\tMic,\r\n\tMicOff,\r\n\tPause,\r\n\tPending,\r\n\tPhone,\r\n\tPlayArrow,\r\n\tSupportAgent,\r\n\tTransferWithinAStation,\r\n\tUpcoming,\r\n\tWifiCalling3,\r\n} from \"@mui/icons-material\";\r\n\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\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport type { CallControlPanelProps, ConferenceLineTypes } from \"../../types\";\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, IP, WS_END_POINT } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\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 useStyles from \"./styles\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\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\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: apiConferenceData[statusKey] ?? item.status,\r\n\t\t\t\tphone:\r\n\t\t\t\t\tapiConferenceData[phoneKey] === null || apiConferenceData[phoneKey] === \"0\" ?\r\n\t\t\t\t\t\titem.phone\r\n\t\t\t\t\t:\tapiConferenceData[phoneKey],\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\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 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 maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000; // 1 second\r\n\tconst maxReconnectDelay = 30000; // 30 seconds\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState(false);\r\n\tconst [processList, setProcessList] = useState(null);\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState(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\taction: string;\r\n\t\tphone_number: string;\r\n\t\tuserId: 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\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setHolding(!state.isHolding);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Hold operation error:\", error);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setMuted(!state.isMuted);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Mute operation error:\", error);\r\n\t\t},\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\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 [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdisposition: string;\r\n\t\tuserId: string;\r\n\t\tprocessid: string;\r\n\t\tmobile_number: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: string;\r\n\t\tcallback_mins: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.resetConferenceLines();\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\tsdkStateManager.setStatus(\"dial\");\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tif (state.status !== \"on call\") {\r\n\t\t\tsdkStateManager.setStatus(\"idle\");\r\n\t\t}\r\n\r\n\t\tsetDialerAnchorEl(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: 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 payload = {\r\n\t\t\taction: \"AGENTBREAK\",\r\n\t\t\tbreak_type: status,\r\n\t\t\tuserId: state.agentId,\r\n\t\t};\r\n\t\tupdateAgentStatus(END_POINT.UPDATE_AGENT_BREAK, payload);\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\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuserId: state.agentId,\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 ? \"UNHOLD\" : \"HOLD\",\r\n\t\t\tuserId: state.agentId,\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 ? \"UNMUTE\" : \"MUTE\",\r\n\t\t\tuserId: state.agentId,\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 };\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}) => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"ENDCALL\",\r\n\t\t\tuserId: state.agentId,\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?.convox_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\r\n\t\t\tdisposition: data?.disposition?.value ?? \"\",\r\n\t\t\tset_followUp: data?.followUp?.value ?? \"\",\r\n\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\tcallback_hrs: data?.callbackHrs ?? \"\",\r\n\t\t\tcallback_mins: data?.callbackMins ?? \"\",\r\n\t\t\tendcall_type: \"CLOSE\",\r\n\t\t};\r\n\t\tsetPhoneNumber(\"\");\r\n\t\tendCall(END_POINT.END_CALL, payload);\r\n\t\tsdkStateManager.endCall();\r\n\t\tsetOpenCallDisposition(false);\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\tlet interval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === \"ONCALL\") {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = Math.floor((Date.now() - state.callStartTime!) / 1000);\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\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Load audio as blob for better compatibility in npm packages\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, convox_id } =\r\n\t\t\t\tstate.callData;\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: convox_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};\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\taxiosInstance\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\tif (res && res.data && res?.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\tsdkStateManager.setProcess(res?.data?.data[0]);\r\n\t\t\t\t\t\tsetOpenProcessorDialog(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\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tconsole.log(\"No agentId available, skipping API call\");\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\tconsole.log(\"No agentId available, cannot connect WebSocket\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clear any existing reconnection timeout\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(`${WS_END_POINT.WS}?agent_id=${state.agentId}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\t// Reset reconnect attempts on successful connection\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\t// Start ping interval to keep connection alive (every 30 seconds)\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\t// Send ping message\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t\tconsole.log(\"📡 WebSocket ping sent\");\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); // Ping every 30 seconds\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\t\t\t\t\t// Handle pong response\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\tconsole.log(\"📡 WebSocket pong received\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst rls = localStorage.getItem(\"call-control-sdk-state\");\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(JSON.parse(rls || \"{}\"), data);\r\n\t\t\t\t\t/* use it for debugging */\r\n\t\t\t\t\t// console.log(confrence, \"📊 Parsed JSON:\", data);\r\n\r\n\t\t\t\t\tsdkStateManager.updateCallData(data);\r\n\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\r\n\t\t\t\t\tif (data.status === \"RINGING\" || data.status === \"DIALING\") {\r\n\t\t\t\t\t\tif (audioRef.current) {\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 === \"ONCALL\") {\r\n\t\t\t\t\t\tsdkStateManager.startCall();\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\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === \"WRAPUP\") {\r\n\t\t\t\t\t\tsdkStateManager.endCall();\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch {\r\n\t\t\t\t\tconsole.log(\"📨 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\tconsole.log(\"🔌 WebSocket connection closed\", event.code, event.reason);\r\n\r\n\t\t\t\t// Clear ping interval\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\t// Only reconnect if it wasn't a manual close (code 1000) and we haven't exceeded max attempts\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\r\n\t\t\t\t\t// Calculate exponential backoff delay\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.log(\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\tconsole.error(\"❌ Maximum reconnection attempts reached. Please refresh the page.\");\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\t// The onclose handler will handle reconnection\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"❌ Failed to create WebSocket:\", error);\r\n\t\t\t// Attempt reconnection\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\t// Cleanup: close WebSocket and clear intervals/timeouts\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\t// Close with code 1000 (normal closure) to prevent reconnection\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\tif (!state.isInitialized || !state.process) {\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\treturn (\r\n\t\t<>\r\n\t\t\t<Box>\r\n\t\t\t\t<Fade\r\n\t\t\t\t\tin={true}\r\n\t\t\t\t\ttimeout={300}\r\n\t\t\t\t>\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: state.sdkConfig?.isDraggable ?\r\n\t\t\t\t\t\t\t\t1\r\n\t\t\t\t\t\t\t:\t0\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: \"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\talignItems: \"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\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tmargin: \"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<Box>\r\n\t\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledDialButton && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title=\"Dial\">\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\tstate.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"BREAK\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"RINGING\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"WRAPUP\"\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\tsx={{\r\n\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\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"warning\",\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<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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\"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</Tooltip>\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<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\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{formatDuration(callDuration)}\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"18px 0px\",\r\n\t\t\t\t\t\t\t\t\t}}\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:\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}\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\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: \"center\",\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(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\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\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\toutlined\r\n\t\t\t\t\t\t\t\t\t\t\t:\tenabled),\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<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={state.callData?.hold === 1 ? \"Resume\" : \"Hold\"}>\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(\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.callData?.status?.toUpperCase() === \"ONCALL\"\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\"contained\"\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}\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\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\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\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\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\tholdOrUnHoldLoading\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{holdOrUnHoldLoading ?\r\n\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\tsize=\"20px\"\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: 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/>\r\n\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<PlayArrow />\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</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={state.callData?.mute === 1 ? \"Unmute\" : \"Mute\"}>\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\tstate.isHolding ? \"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\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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\"contained\"\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}\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\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\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\tstate.callData?.hold === 1 ? { ...disabled }\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\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\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\tmuteOrUnMuteLoading ||\r\n\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}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ?\r\n\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\tsize=\"20px\"\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: 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/>\r\n\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<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t:\t<Mic />}\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{!state.sdkConfig?.disableCallTransferButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Transfer Call\"}>\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (state.callData?.status?.toUpperCase() === \"ONCALL\") {\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 ? { ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\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={state.callData?.status?.toUpperCase() !== \"ONCALL\"}\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<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</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disableConferenceButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Conference Call\"}>\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (state.callData?.status?.toUpperCase() === \"ONCALL\") {\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 ? { ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\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={state.callData?.status?.toUpperCase() !== \"ONCALL\"}\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<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</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disableEndCallButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"End Call\"}>\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?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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{\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}\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}\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() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"RINGING\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"WRAPUP\") ||\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}\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\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\tcolor=\"error\"\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<CallEnd />}\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\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\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<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\tsrc={`https://${IP}/ConVoxCCS/iframe?agent_id=${state.agentId}&process_id=${state.process?.process_id}`}\r\n\t\t\t\t\t\t\theight={380}\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\tvalue={phoneNumber}\r\n\t\t\t\t\t\tplaceholder=\"Enter Mobile No.\"\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tsetPhoneNumber(e.target.value);\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:\t<Phone color=\"success\" />}\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={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<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t{/* <MenuItem onClick={() => handleUpdateAgentStatus(\"Tea\")}>- Tea</MenuItem> */}\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","/* 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","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","/* 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): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\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\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.post(url, payload, config)\r\n\t\t\t\t.then((res) => {\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})\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 [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 { createContext, useContext, useState, ReactNode } from \"react\";\r\nimport { Snackbar, Alert, AlertColor } from \"@mui/material\";\r\n\r\ntype ToastContextType = {\r\n\tshowToast: (message: string, severity?: AlertColor) => void;\r\n};\r\n\r\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\r\n\r\nexport const useToast = () => {\r\n\tconst ctx = useContext(ToastContext);\r\n\tif (!ctx) throw new Error(\"useToast must be used inside ToastProvider\");\r\n\treturn ctx;\r\n};\r\n\r\nexport const ToastProvider = ({ children }: { children: ReactNode }) => {\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [message, setMessage] = useState(\"\");\r\n\tconst [severity, setSeverity] = useState<AlertColor>(\"info\");\r\n\r\n\tconst showToast = (msg: string, sev: AlertColor = \"info\") => {\r\n\t\tsetMessage(msg);\r\n\t\tsetSeverity(sev);\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ToastContext.Provider value={{ showToast }}>\r\n\t\t\t{children}\r\n\t\t\t<Snackbar\r\n\t\t\t\topen={open}\r\n\t\t\t\tcolor={severity}\r\n\t\t\t\tautoHideDuration={3000}\r\n\t\t\t\tonClose={() => setOpen(false)}\r\n\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t<Alert\r\n\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\tseverity={severity}\r\n\t\t\t\t\tonClose={() => setOpen(false)}\r\n\t\t\t\t\tsx={{ width: \"100%\" }}\r\n\t\t\t\t>\r\n\t\t\t\t\t{message}\r\n\t\t\t\t</Alert>\r\n\t\t\t</Snackbar>\r\n\t\t</ToastContext.Provider>\r\n\t);\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport {\r\n\tCall,\r\n\tCallEnd,\r\n\tCallSplit,\r\n\tClose,\r\n\tMic,\r\n\tMicOff,\r\n\tPause,\r\n\tPhoneDisabled,\r\n\tPlayArrow,\r\n\tSupportAgent,\r\n} from \"@mui/icons-material\";\r\n\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tDialog,\r\n\tIconButton,\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} 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 { usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport type { ConferenceLineTypes } from \"../../types\";\r\n\r\nimport { useToast } from \"../services/toastMessage\";\r\n\r\nimport useStyles from \"./styles\";\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\nconst ConferenceTableRow = ({ each }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\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\tconst theme = useTheme();\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\t// const [conferenceCallMuteOrUnMute, setConferenceCallMuteOrUnMute] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\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\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\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\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\tsdkStateManager.setConferenceLine({ ...line, ...data });\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\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.callData?.agent_id ?? \"\",\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\tsdkStateManager.setConferenceLine({ ...line, ...data });\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\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\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.callData?.agent_id ?? \"\",\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_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\tsdkStateManager.setConferenceLine({ ...line, ...data });\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\t// const onMuteOrUnMuteConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t// \tconst line_used = { ...line, ...data };\r\n\r\n\t// \tsetConferenceCallMuteOrUnMute(true);\r\n\r\n\t// \tconst payload = {\r\n\t// \t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t// \t\toperation: type,\r\n\t// \t\tchannel_no: type === \"MUTEUSER\" ? `mute${line_used.line}` : `play${line_used.line}`,\r\n\t// \t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t// \t\tthirdparty_no: line_used.phone,\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_MUTE_OT_UN_MUTE, payload)\r\n\t// \t\t.then((res) => {\r\n\t// \t\t\tshowToast(res.data?.message, \"success\");\r\n\t// \t\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\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\tsetConferenceCallMuteOrUnMute(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\tsetConferenceCallEnd(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"HANGUP_CHANNEL\",\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tuser_type: `THIRDPARTY${line_used.line - 1}`,\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\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_END, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\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, { isLoading: holdOrUnHoldLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setHolding(!state.isHolding);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Hold operation error:\", error);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setMuted(!state.isMuted);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Mute operation error:\", error);\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 ? \"UNHOLD\" : \"HOLD\",\r\n\t\t\tuserId: state.agentId,\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 ? \"UNMUTE\" : \"MUTE\",\r\n\t\t\tuserId: state.agentId,\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\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<Button\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<Typography variant=\"body2\">{each?.line === 1 ? \"Internal\" : \"External\"}</Typography>\r\n\t\t\t\t</Button>\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<TextField\r\n\t\t\t\t\tsize=\"small\"\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\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\teach?.status === \"CONFERENCE\" ||\r\n\t\t\t\t\t\teach?.status === \"HOLD\" ||\r\n\t\t\t\t\t\teach?.status === \"MUTE\" ||\r\n\t\t\t\t\t\teach?.status === \"DIALING\" ||\r\n\t\t\t\t\t\teach?.status === \"RINGING\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\tonConferenceLineUpdate(each, { phone: e.target.value });\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\t// width: \"200px\",\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 !== \"HOLD\" ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t// variant={\r\n\t\t\t\t\t\t\t\t// \tstate.callData?.hold === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\tvariant={each?.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"CONFERENCE\" ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === \"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={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== \"CONFERENCE\" && each?.status !== \"HOLD\") ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// onClick={(e) => {\r\n\t\t\t\t\t\t\t\t// \te.stopPropagation();\r\n\t\t\t\t\t\t\t\t// \thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t// }}\r\n\t\t\t\t\t\t\t\t// sx={\r\n\t\t\t\t\t\t\t\t// \tstate.callData?.hold === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t// \t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t// \t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t// disabled={\r\n\t\t\t\t\t\t\t\t// \t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t// \t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t// \tholdOrUnHoldLoading\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{each.status === \"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: each.status === \"HOLD\" ? \"#fff\" : \"initial\",\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\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\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: 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/>\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</Box>\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\tcolor: each.status === \"HOLD\" ? \"#fff\" : \"#000\",\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}}\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\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\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: 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/>\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</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\t\t\t\t\t{/* {each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={state.callData?.mute === 1 ? \"Unmute\" : \"Mute\"}>\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\tstate.isHolding ? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\"\r\n\t\t\t\t\t\t\t\t\t) ?\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\"\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t\t:\t{ ...disabled }\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\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\tstate.callData?.hold === 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{state.callData?.mute === 1 ?\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: state.callData?.mute === 1 ? \"#fff\" : \"initial\",\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\tUnmute\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{muteOrUnMuteLoading ?\r\n\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\tsize=\"16px\"\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: 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/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<MicOff />}\r\n\t\t\t\t\t\t\t\t\t</Box>\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\tcolor: state.callData?.mute === 1 ? \"#fff\" : \"#000\",\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}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tMute\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{muteOrUnMuteLoading ?\r\n\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\tsize=\"16px\"\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: 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/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<Mic />}\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\t\t\t\t\t{/* ------------- */}\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status !== \"IDLE\" ? \"outlined\" : \"contained\"}\r\n\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== \"IDLE\" ?\r\n\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\t\t\t...enabled,\r\n\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\"&:hover\": {\r\n\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\tboxShadow: `0px 2px 1px ${theme.palette.success.light}`,\r\n\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},\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: \"success.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}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonConferenceCallStart(each, {});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== \"IDLE\"}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallStart ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t:\t<Call\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: each?.status !== \"IDLE\" ? \"default\" : \"#f3f2f2\",\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}\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\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 === \"ONCALL\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"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, {\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: true,\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={each?.status !== \"ONCALL\"}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t:\t<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\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== \"HOLD\" ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t// sx={\r\n\t\t\t\t\t\t\t\t// \t(\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"CONFERENCE\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"DIALING\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"RINGING\"\r\n\t\t\t\t\t\t\t\t// \t) ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// \t: each?.status === \"ONCALL\" || each?.status === \"CONFERENCE\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t// \t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"CONFERENCE\" ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === \"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={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== \"CONFERENCE\" && each?.status !== \"HOLD\") ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"DIALING\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\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{conferenceCallHoldOrUnHold ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: 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/>\r\n\t\t\t\t\t\t\t\t: each.status === \"HOLD\" ?\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t:\t<Pause />}\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\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 !== \"IDLE\" && each?.status !== \"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 !== \"IDLE\" && each?.status !== \"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 === \"IDLE\" || each?.status === \"DISCONNECTED\" || conferenceCallEnd\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 ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t:\t<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.callData?.agent_id ?? \"\",\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_END_ALL, 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})\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\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\t// fullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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: \"10px 16px\",\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\">{state?.agentId ?? \"\"} conference</Typography>\r\n\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 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\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tborder: \"4px solid #ffffff !important\",\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<TableHead>\r\n\t\t\t\t\t\t\t\t\t<TableRow\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tborder: \"2px solid #f3f3f3ff !important\",\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<TableCell\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\tpadding: \"6px\",\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\tLine\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tStatus\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t{/* <TableCell\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\tpadding: \"6px\",\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\tCall Type\r\n\t\t\t\t\t\t\t\t\t\t</TableCell> */}\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tMobile Number\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tCall Actions\r\n\t\t\t\t\t\t\t\t\t\t</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 each={each} />\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\r\n\t\t\t\t\t\ttextAlign=\"center\"\r\n\t\t\t\t\t\tm={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={onEndAllConferenceCalls}\r\n\t\t\t\t\t\t\tdisabled={conferenceCallEndAll}\r\n\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"20px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{conferenceCallEndAll ?\r\n\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\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<IconButton\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"error.dark\" },\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\theight: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\tlineHeight: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\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\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\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<PhoneDisabled\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\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</IconButton>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tEnd Conference\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 CallTransferDialog({ open }: any) {\r\n\tconst state = useSDKState();\r\n\r\n\tconst [transferCall] = usePostRequest<TransferCallRequest>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [currentselecteTab, setCurrentselecteTab] = useState(\"process\");\r\n\r\n\tconst [getIdelAgentsList, { data: idleAgentsList, isLoading: isIdleAgentsListLoading }] =\r\n\t\tusePostRequest<any>({\r\n\t\t\tdisabledSuccessToast: true,\r\n\t\t});\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}>({\r\n\t\tdisabledSuccessToast: true,\r\n\t});\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) => {\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.callData?.agent_id ?? \"\",\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?.convox_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};\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.callData?.agent_id ?? \"\",\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?.convox_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};\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.callData?.agent_id ?? \"\",\r\n\t\t\t\ttype: \"AGENT\",\r\n\t\t\t\ttransfer_to: data?.user_id ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.convox_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};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, {\r\n\t\t\tstatus: \"IDLE\",\r\n\t\t\tactive: true,\r\n\t\t});\r\n\r\n\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\tstatus: \"ACTIVE\",\r\n\t\t\tactive: true,\r\n\t\t});\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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 Transfer</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<Box sx={{ display: \"flex\", gap: 1 }}>\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={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"process\");\r\n\t\t\t\t\t\t\t\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"ACTIVE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"queues\");\r\n\t\t\t\t\t\t\t\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"ACTIVE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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</Box>\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading || isIdleAgentsListLoading) && (\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\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\theight: \"80px\",\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<CircularProgress />{\" \"}\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\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\r\n\t\t\t\t\t\t\t\t\t{(\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.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) ?\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<SupportAgent 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\r\n\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\tcolor=\"success\"\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\tbgcolor: \"action.hover\",\r\n\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}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(process, \"PROCESS\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Process Found\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\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{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\r\n\t\t\t\t\t\t\t\t\t{(\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.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) ?\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<SupportAgent 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{(\r\n\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(process: any) => process.process_id === queue.process_id\r\n\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) ?\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:\t\"\"}\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<IconButton\r\n\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\tsx={{\r\n\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\"&:hover\": { bgcolor: \"action.selected\" },\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\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(queue, \"QUEUE\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Queues Found\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\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{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\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<IconButton\r\n\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\tsx={{\r\n\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\"&:hover\": { bgcolor: \"action.selected\" },\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\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(agent, \"AGENT\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Agents Found\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\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\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"Resolved\", value: \"RES\" },\r\n\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\tcallbackDate: \"\",\r\n\t\tcallbackHrs: \"\",\r\n\t\tcallbackMins: \"\",\r\n\t});\r\n\tconst dispositionOptions = [\r\n\t\t{ label: \"Not Interested\", value: \"NI\" },\r\n\t\t{ label: \"Resolved\", value: \"RES\" },\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 = (field: keyof typeof formData, value: { label: string } | null | string) => {\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: \"Resolved\", value: \"RES\" },\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});\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\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"xs\"}\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\tm={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\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\tgap={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={dispositionOptions}\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{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\t\tgap={2}\r\n\t\t\t\t\t\t\t\tmt={2}\r\n\t\t\t\t\t\t\t>\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}}\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) => handleChange(\"callbackDate\", e.target.value)}\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<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Hours (0-23)\"\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackHrs}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"callbackHrs\", e.target.value)}\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\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\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\t\tgap={2}\r\n\t\t\t\t\t\t\t\tmt={2}\r\n\t\t\t\t\t\t\t>\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=\"Minutes (0-59)\"\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackMins}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"callbackMins\", e.target.value)}\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<Box sx={{ flex: 1 }}></Box>\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</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\ttextAlign=\"right\"\r\n\t\t\t\t\t\tm={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={\"xs\"}\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:\tnull}\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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}}\r\n\t\t\t\t\t\tp={6}\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\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\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 rgb(206, 204, 204)`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: \" 0px 2px 2px rgba(0, 0, 0, 0.79)\",\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 ...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","/**\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.warn(\"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\tconsole.log(\"Primary URL failed, trying original import URL:\", 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\tif (!loaded) {\r\n\t\tconsole.error(\"Failed to load audio with all methods. URL:\", audioUrl);\r\n\t\t// Still return the audio element - it might work when play() is called\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 { ReactNode, memo } from \"react\";\r\nimport { ToastProvider } from \"../services/toastMessage\";\r\nimport React from \"react\";\r\nimport { SDKProviderProps } from \"../../types\";\r\n\r\nexport const SDKProvider = memo<SDKProviderProps>(({ children }) => {\r\n\treturn <ToastProvider>{children}</ToastProvider>;\r\n});\r\n\r\nSDKProvider.displayName = \"SDKProvider\";\r\n"],"mappings":"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","names":["_a","_a","_a","axios","_a","import_react","data","_a","import_react","data","_a","import_react","process_id","process_name","status","phone_number","agent_id","convox_id","import_react","import_react","import_icons_material","import_material","import_react","import_react","import_react","import_react","import_react","_a","import_material","import_react","import_material","import_jsx_runtime","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","incomingRingtoneUrl","incomingRingtoneUrl","import_jsx_runtime","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","import_react","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../call-control-sdk/index.ts","../call-control-sdk/lib/services/endPoint.ts","../call-control-sdk/lib/hooks/sdk-state.ts","../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/services/axios.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/hooks/useClickToCall.ts","../call-control-sdk/lib/hooks/useGetCallerData.ts","../call-control-sdk/lib/hooks/useGetAuthorizationToken.ts","../call-control-sdk/lib/components/callControlPanel.tsx","../call-control-sdk/lib/components/callControls.tsx","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/hooks/useSDKState.ts","../call-control-sdk/lib/services/request.ts","../call-control-sdk/lib/services/toastMessage.tsx","../call-control-sdk/lib/components/dialog.tsx","../call-control-sdk/lib/components/styles.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/components/SDKProvider.tsx"],"sourcesContent":["import { eventTracker } from \"./lib/hooks/eventsTracker\";\r\nimport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\nimport { useLogout } from \"./lib/hooks/useLogout\";\r\nimport { BASE_URL } from \"./lib/services/endPoint\";\r\nimport { useEndCall } from \"./lib/hooks/useEndCall\";\r\nimport { SDKConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\n\r\nexport { CallControlPanel } from \"./lib/components/callControlPanel\";\r\n\r\nexport type { CallControlPanelProps, CallData, SDKConfig } from \"./types\";\r\n\r\ninterface InitSDKParams {\r\n\tapiKey: string;\r\n\r\n\ttenantId: string;\r\n\r\n\tagentId: string;\r\n\r\n\tsdkConfig?: SDKConfig;\r\n}\r\n\r\nexport async function initSDK({\r\n\tapiKey,\r\n\ttenantId,\r\n\tagentId,\r\n\tsdkConfig,\r\n}: InitSDKParams): Promise<void> {\r\n\tif (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: API key is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\tif (!tenantId || typeof tenantId !== \"string\" || tenantId.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: Tenant ID is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\tif (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n\t\tthrow new Error(\r\n\t\t\t\"SDK initialization failed: Agent ID is required and must be a non-empty string\"\r\n\t\t);\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst initResult = await eventTracker.init({\r\n\t\t\tapiKey: apiKey.trim(),\r\n\t\t\ttenantId: tenantId.trim(),\r\n\t\t\tagentId: agentId.trim(),\r\n\t\t\tbaseUrl: BASE_URL,\r\n\t\t});\r\n\r\n\t\tif (initResult) {\r\n\t\t\tconsole.log(\"SDK initialized successfully\");\r\n\t\t\tsdkStateManager.initialize(\r\n\t\t\t\tapiKey.trim(),\r\n\t\t\t\ttenantId.trim(),\r\n\t\t\t\tagentId.trim(),\r\n\t\t\t\tsdkConfig,\r\n\t\t\t\tinitResult\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tconsole.error(\"SDK initialization failed: Event tracker initialization returned false\");\r\n\t\t\tsdkStateManager.setInitCheck();\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"SDK initialization failed: Unable to establish connection with the CTI system\"\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error(\"SDK initialization error:\", error);\r\n\t\tsdkStateManager.setInitCheck();\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\tthrow error;\r\n\t\t} else {\r\n\t\t\tthrow new Error(`SDK initialization failed: ${String(error)}`);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function getSDKVersion(): string {\r\n\treturn \"6.x.x\";\r\n}\r\n\r\nexport function isSDKInitialized(): boolean {\r\n\treturn sdkStateManager.getState().isInitialized;\r\n}\r\n\r\nexport { useLogout, useEndCall, useClickToCall, useGetCallerData, useGetAuthorizationToken };\r\n","export const IP = \"uat-cti.aighospitals.com\";\r\nexport const BASE_URL = `https://${IP}:8095`;\r\nexport const WS_BASE_URL = `wss://${IP}:8095`;\r\nexport const VERSION = {\r\n\tv1: \"/api/v1\",\r\n};\r\n\r\nexport const END_POINT = {\r\n\tLOGIN: `${BASE_URL}${VERSION.v1}/cti/login?provider=convox`,\r\n\tREADY_AGENT: `${BASE_URL}${VERSION.v1}/cti/ready-agent?provider=convox`,\r\n\tUPDATE_AGENT_BREAK: `${BASE_URL}${VERSION.v1}/cti/update-agent-status?provider=convox`,\r\n\tCLICK_TO_CALL: `${BASE_URL}${VERSION.v1}/cti/calls?provider=convox`,\r\n\tHOLD_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/hold?provider=convox`,\r\n\tMUTE_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/mute?provider=convox`,\r\n\tUNMUTE_CALL: `${BASE_URL}${VERSION.v1}/cti/unmute-call?provider=convox`,\r\n\tEND_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/end?provider=convox`,\r\n\tLOGOUT: `${BASE_URL}${VERSION.v1}/cti/logout?provider=convox`,\r\n\r\n\tCONFERENCE_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/conference?provider=convox`,\r\n\tCONFERENCE_CALL_HOLD_OR_UN_HOLD: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hold?provider=convox`,\r\n\tCONFERENCE_CALL_MUTE_OT_UN_MUTE: `${BASE_URL}${VERSION.v1}/cti/calls/conference/mute?provider=convox`,\r\n\tCONFERENCE_CALL_END: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hangup?provider=convox`,\r\n\tCONFERENCE_CALL_END_ALL: `${BASE_URL}${VERSION.v1}/cti/calls/conference/hangup/all?provider=convox`,\r\n\tTRANSFER_CALL: `${BASE_URL}${VERSION.v1}/cti/calls/transfer?provider=convox`,\r\n\r\n\tAGENTS_LIST: `${BASE_URL}${VERSION.v1}/cti/users`,\r\n\tPROCESS_LIST: `${BASE_URL}${VERSION.v1}/cti/processes-list`,\r\n\tTRANSFER_TO_DETAILS: `${BASE_URL}${VERSION.v1}/cti/transfer-to-details?provider=convox`,\r\n\r\n\tCALL_HISTORY: `${BASE_URL}${VERSION.v1}/dashboard/call-history`,\r\n\tSENTIMENTAL_ANALYSIS: `${BASE_URL}${VERSION.v1}/users/get_sentiment_analysis`,\r\n};\r\n\r\nexport const WS_END_POINT = {\r\n\tWS: `${WS_BASE_URL}${VERSION.v1}/cti/ws`,\r\n};\r\n\r\nexport const STORAGE_KEY = \"call-control-sdk-state\";\r\n","import type {\r\n\tSDKState,\r\n\tCallData,\r\n\tCallStatus,\r\n\tConferenceLineTypes,\r\n\tSDKConfig,\r\n\tInitSDKRes,\r\n} from \"../../types\";\r\nimport { STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nclass SDKStateManager {\r\n\tprivate state: SDKState;\r\n\tprivate listeners: Array<() => void> = [];\r\n\tprivate readonly STORAGE_KEY = STORAGE_KEY;\r\n\r\n\tprivate apiKey: string | undefined;\r\n\tprivate tenantId: string | undefined;\r\n\r\n\tconstructor() {\r\n\t\tthis.state = this.getInitialState();\r\n\t\tthis.loadFromStorage();\r\n\t}\r\n\r\n\tprivate getInitialState(): SDKState {\r\n\t\treturn {\r\n\t\t\tauthorization: undefined,\r\n\t\t\tprocess: null,\r\n\t\t\tagentId: \"\",\r\n\t\t\topenConferenceDialog: false,\r\n\t\t\topenCallTransferDialog: false,\r\n\t\t\tisInitialized: false,\r\n\t\t\tsdkConfig: {\r\n\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\tisDraggable: true,\r\n\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\tdisabled: {},\r\n\t\t\t\tenabled: {},\r\n\t\t\t\toutlined: {},\r\n\t\t\t},\r\n\t\t\tisHolding: false,\r\n\t\t\tisMuted: false,\r\n\t\t\tstatus: \"idle\",\r\n\t\t\tcallStartTime: null,\r\n\t\t\tcontrolPanelPosition: { x: 10, y: 10 },\r\n\t\t\tiframePosition: { x: 10, y: 80 },\r\n\t\t\tcallData: {\r\n\t\t\t\tagent_id: \"\",\r\n\t\t\t\thold: 0,\r\n\t\t\t\tmute: 0,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tevent_time: \"\",\r\n\t\t\t\tphone_number: \"\",\r\n\t\t\t},\r\n\t\t\tconferenceLine: [\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 1,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 2,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 3,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 4,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 5,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\thold: 0,\r\n\t\t\tmute: 0,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate loadFromStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst stored = localStorage.getItem(this.STORAGE_KEY);\r\n\t\t\tif (stored) {\r\n\t\t\t\tconst parsedState = JSON.parse(stored);\r\n\r\n\t\t\t\tthis.state = {\r\n\t\t\t\t\t...this.state,\r\n\t\t\t\t\tagentId: parsedState.agentId || \"\",\r\n\t\t\t\t\tauthorization: parsedState.authorization || undefined,\r\n\t\t\t\t\tprocess: parsedState.process || null,\r\n\t\t\t\t\topenConferenceDialog: parsedState?.openConferenceDialog || false,\r\n\t\t\t\t\topenCallTransferDialog: parsedState?.openCallTransferDialog || false,\r\n\t\t\t\t\tisInitialized: parsedState.isInitialized || false,\r\n\t\t\t\t\tsdkConfig: parsedState.sdkConfig || {\r\n\t\t\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\t\t\tisDraggable: true,\r\n\t\t\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\t\t\tdisabled: {},\r\n\t\t\t\t\t\tenabled: {},\r\n\t\t\t\t\t\toutlined: {},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisHolding: parsedState.isHolding || false,\r\n\t\t\t\t\tisMuted: parsedState.isMuted || false,\r\n\t\t\t\t\tstatus: parsedState.status || \"idle\",\r\n\t\t\t\t\tcallStartTime: parsedState.callStartTime || null,\r\n\t\t\t\t\tcontrolPanelPosition: parsedState.controlPanelPosition || {\r\n\t\t\t\t\t\tx: 10,\r\n\t\t\t\t\t\ty: 10,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tiframePosition: parsedState.iframePosition || { x: 10, y: 80 },\r\n\t\t\t\t\tcallData: parsedState.callData || {\r\n\t\t\t\t\t\tmobileNumber: \"\",\r\n\t\t\t\t\t\tcallReferenceId: \"\",\r\n\t\t\t\t\t\tagent_id: \"\",\r\n\t\t\t\t\t\tstatus: \"\",\r\n\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\tevent_time: \"\",\r\n\t\t\t\t\t\tphone_number: \"\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// Fix: Properly handle conferenceLine with fallback to initial state\r\n\t\t\t\t\tconferenceLine:\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tparsedState.conferenceLine &&\r\n\t\t\t\t\t\t\tArray.isArray(parsedState.conferenceLine) &&\r\n\t\t\t\t\t\t\tparsedState.conferenceLine.length > 0\r\n\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\tparsedState.conferenceLine\r\n\t\t\t\t\t\t:\tthis.state.conferenceLine,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to load SDK state from localStorage:\", error);\r\n\t\t\t// If loading fails, keep the initial state\r\n\t\t}\r\n\t}\r\n\r\n\tprivate saveToStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst persistentState = {\r\n\t\t\t\tagentId: this.state.agentId,\r\n\t\t\t\tauthorization: this.state.authorization,\r\n\t\t\t\tprocess: this.state.process,\r\n\t\t\t\tisInitialized: this.state.isInitialized,\r\n\t\t\t\topenConferenceDialog: this.state.openConferenceDialog,\r\n\t\t\t\topenCallTransferDialog: this.state.openCallTransferDialog,\r\n\t\t\t\tsdkConfig: this.state.sdkConfig,\r\n\t\t\t\tisHolding: this.state.isHolding,\r\n\t\t\t\tisMuted: this.state.isMuted,\r\n\t\t\t\tstatus: this.state.status,\r\n\t\t\t\tcallStartTime: this.state.callStartTime,\r\n\t\t\t\tcontrolPanelPosition: this.state.controlPanelPosition,\r\n\t\t\t\tiframePosition: this.state.iframePosition,\r\n\t\t\t\tcallData: this.state.callData,\r\n\t\t\t\tconferenceLine: this.state.conferenceLine,\r\n\t\t\t};\r\n\t\t\tlocalStorage.setItem(this.STORAGE_KEY, JSON.stringify(persistentState));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to save SDK state to localStorage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate notifyListeners(): void {\r\n\t\tthis.listeners.forEach((listener) => listener());\r\n\t}\r\n\r\n\tprivate validateCredentials(apiKey: string, tenantId: string): void {\r\n\t\tif (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n\t\t\tthrow new Error(\"API key not available\");\r\n\t\t}\r\n\t\tif (!tenantId || typeof tenantId !== \"string\" || tenantId.trim().length === 0) {\r\n\t\t\tthrow new Error(\"Tenant ID not available\");\r\n\t\t}\r\n\t\tthis.apiKey = apiKey.trim();\r\n\t\tthis.tenantId = tenantId.trim();\r\n\t}\r\n\r\n\tpublic initialize(\r\n\t\tapiKey: string,\r\n\t\ttenantId: string,\r\n\t\tagentId: string,\r\n\t\tsdkConfig?: SDKConfig,\r\n\t\tinitResult?: InitSDKRes\r\n\t): void {\r\n\t\tthis.validateCredentials(apiKey, tenantId);\r\n\t\tif (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n\t\t\tthrow new Error(\"Agent ID not available\");\r\n\t\t} else {\r\n\t\t\tthis.state.agentId = agentId;\r\n\t\t\tthis.state.openConferenceDialog = false;\r\n\t\t\tthis.state.openCallTransferDialog = false;\r\n\t\t\tthis.state.authorization = initResult;\r\n\t\t\tthis.state.sdkConfig = {\r\n\t\t\t\tdisableEndCallButton: false,\r\n\t\t\t\tdisabledDialButton: false,\r\n\t\t\t\tdisableCallTransferButton: false,\r\n\t\t\t\tisDraggable: true,\r\n\t\t\t\tdisableSoftPhone: false,\r\n\t\t\t\tdisableConferenceButton: false,\r\n\t\t\t\tdisabled: {},\r\n\t\t\t\tenabled: {},\r\n\t\t\t\toutlined: {},\r\n\t\t\t\t...sdkConfig,\r\n\t\t\t};\r\n\t\t\tthis.state.isInitialized = true;\r\n\t\t\tthis.saveToStorage();\r\n\t\t\tthis.notifyListeners();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getState(): SDKState {\r\n\t\treturn { ...this.state };\r\n\t}\r\n\r\n\tpublic getCredentials(): { apiKey: string | undefined; tenantId: string | undefined } {\r\n\t\treturn { apiKey: this.apiKey, tenantId: this.tenantId };\r\n\t}\r\n\tpublic getSdkAuthToken(): string | undefined {\r\n\t\treturn this.state.authorization?.accessToken;\r\n\t}\r\n\r\n\tpublic subscribe(listener: () => void): () => void {\r\n\t\tthis.listeners.push(listener);\r\n\t\treturn () => {\r\n\t\t\tconst index = this.listeners.indexOf(listener);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.listeners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic setHolding(isHolding: boolean): void {\r\n\t\tthis.state.isHolding = isHolding;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setMuted(isMuted: boolean): void {\r\n\t\tthis.state.isMuted = isMuted;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setStatus(status: CallStatus): void {\r\n\t\tthis.state.status = status;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setProcess(process: { process_id: number; process_name: string }): void {\r\n\t\tthis.state.process = process;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setControlPanelPosition(position: { x: number; y: number }): void {\r\n\t\tthis.state.controlPanelPosition = position;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setIframePosition(position: { x: number; y: number }): void {\r\n\t\tthis.state.iframePosition = position;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic startCall(): void {\r\n\t\tthis.state.callStartTime = Date.now();\r\n\t\tthis.state.status = \"on call\";\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic endCall(): void {\r\n\t\tthis.state.callStartTime = null;\r\n\t\tthis.state.status = \"idle\";\r\n\t\tthis.state.isHolding = false;\r\n\t\tthis.state.isMuted = false;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setInitCheck(): void {\r\n\t\tthis.state.isInitialized = false;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setOpenConferenceDialog(open: boolean): void {\r\n\t\tthis.state.openConferenceDialog = open;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setOpenCallTransferDialog(open: boolean): void {\r\n\t\tthis.state.openCallTransferDialog = open;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic updateCallData(data: Partial<CallData>): void {\r\n\t\tthis.state.callData = { ...this.state.callData, ...data };\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic updateConferenceData(data: ConferenceLineTypes[]): void {\r\n\t\tthis.state.conferenceLine = [...data];\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic setConferenceLine(line: ConferenceLineTypes): void {\r\n\t\tif (!this.state.conferenceLine || !Array.isArray(this.state.conferenceLine)) {\r\n\t\t\tconsole.warn(\"Conference line data corrupted, resetting to initial state\");\r\n\t\t\tthis.state.conferenceLine = this.getInitialState().conferenceLine;\r\n\t\t}\r\n\r\n\t\tconst conferenceLineData = this.state.conferenceLine?.map((each: ConferenceLineTypes) => {\r\n\t\t\tif (each.line === line.line) {\r\n\t\t\t\treturn line;\r\n\t\t\t}\r\n\t\t\treturn each;\r\n\t\t});\r\n\t\tthis.state.conferenceLine = conferenceLineData;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic resetConferenceLines(): void {\r\n\t\tthis.state.conferenceLine = [\r\n\t\t\t{\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 2,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 3,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 4,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 5,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic clearStorageAndReset(): void {\r\n\t\ttry {\r\n\t\t\tlocalStorage.removeItem(this.STORAGE_KEY);\r\n\t\t\tthis.state = this.getInitialState();\r\n\t\t\tthis.notifyListeners();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to clear localStorage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic debugStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst stored = localStorage.getItem(this.STORAGE_KEY);\r\n\t\t\tconsole.log(\"Current localStorage data:\", stored);\r\n\t\t\tif (stored) {\r\n\t\t\t\tconsole.log(\"Parsed localStorage data:\", JSON.parse(stored));\r\n\t\t\t}\r\n\t\t\tconsole.log(\"Current state:\", this.state);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"Error debugging storage:\", error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getConferenceLines(): ConferenceLineTypes[] {\r\n\t\treturn this.state.conferenceLine || [];\r\n\t}\r\n}\r\n\r\nexport const sdkStateManager = new SDKStateManager();\r\n","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\tsessionId?: string;\r\n\tbaseUrl?: string;\r\n\tautoTrack?:\r\n\t\t| boolean\r\n\t\t| {\r\n\t\t\t\tpageVisits?: boolean;\r\n\t\t\t\tclicks?: boolean;\r\n\t\t\t\tforms?: boolean;\r\n\t\t\t\tinputs?: boolean;\r\n\t\t\t\tscrolling?: boolean;\r\n\t\t\t\tperformance?: boolean;\r\n\t\t\t\terrors?: boolean;\r\n\t\t\t\tvisibility?: boolean;\r\n\t\t };\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\t// logEvent(eventType: string, eventData?: EventData): Promise<void>;\r\n\t// closeTicket(): Promise<void>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n\t// getTicketId(): string | null;\r\n\t// flush()?: Promise<void>;\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 eventQueue: Array<{\r\n\t\teventType: string;\r\n\t\teventData?: EventData;\r\n\t\ttimestamp: number;\r\n\t}> = [];\r\n\t// private isOnline: boolean = true;\r\n\t// private retryQueue: Array<() => Promise<void>> = [];\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\tautoTrack: true,\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\tthis.setupNetworkDetection();\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\tconsole.log(\"EventTracker SDK initialized successfully\");\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<string | 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\ttry {\r\n\t\t\tconst response = await this.makeRequest(\"/api/v1/et/init\", {\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tagentId: this.config.agentId,\r\n\t\t\t\t\tsessionId: this.config.sessionId,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!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\t\t\tif (this.config.autoTrack) {\r\n\t\t\t\tthis.setupAutoTracking();\r\n\t\t\t}\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"EventTracker initialization failed:\", error);\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync logEvent(eventType: string, eventData?: EventData): Promise<void> {\r\n\t\tif (!this.config || !this.ticketId) {\r\n\t\t\tconsole.warn(\"EventTracker not initialized, skipping event:\", eventType);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst event = {\r\n\t\t\teventType,\r\n\t\t\teventData,\r\n\t\t\ttimestamp: Date.now(),\r\n\t\t};\r\n\r\n\t\tthis.eventQueue.push(event);\r\n\r\n\t\tif (this.eventQueue.length > (this.config.queueSize || 100)) {\r\n\t\t\tthis.eventQueue.shift();\r\n\t\t}\r\n\r\n\t\t// if (this.isOnline) {\r\n\t\t// \ttry {\r\n\t\t// \t\tawait this.sendEvent(event);\r\n\t\t// \t} catch (error) {\r\n\t\t// \t\tconsole.warn(\"Failed to send event, will retry later:\", error);\r\n\t\t// \t}\r\n\t\t// }\r\n\t}\r\n\r\n\t// private async sendEvent(event: {\r\n\t// \teventType: string;\r\n\t// \teventData?: EventData;\r\n\t// \ttimestamp: number;\r\n\t// }): Promise<void> {\r\n\t// \tif (!this.config || !this.ticketId) return;\r\n\r\n\t// \ttry {\r\n\t// \t\tconst response = await this.makeRequest(\"/api/v1/et/event\", {\r\n\t// \t\t\tmethod: \"POST\",\r\n\t// \t\t\theaders: {\r\n\t// \t\t\t\t\"Content-Type\": \"application/json\",\r\n\t// \t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t// \t\t\t},\r\n\t// \t\t\tbody: JSON.stringify({\r\n\t// \t\t\t\tticketId: this.ticketId,\r\n\t// \t\t\t\teventType: event.eventType,\r\n\t// \t\t\t\teventData: event.eventData,\r\n\t// \t\t\t}),\r\n\t// \t\t});\r\n\r\n\t// \t\tif (!response.ok) {\r\n\t// \t\t\tthrow new Error(`Failed to log event: ${response.status} ${response.statusText}`);\r\n\t// \t\t}\r\n\r\n\t// \t\tconst index = this.eventQueue.findIndex((e) => e.timestamp === event.timestamp);\r\n\t// \t\tif (index > -1) {\r\n\t// \t\t\tthis.eventQueue.splice(index, 1);\r\n\t// \t\t}\r\n\t// \t} catch (error) {\r\n\t// \t\tconsole.error(\"Event logging failed:\", error);\r\n\r\n\t// \t\t// this.retryQueue.push(() => this.sendEvent(event));\r\n\t// \t}\r\n\t// }\r\n\r\n\t// async closeTicket(): Promise<void> {\r\n\t// \tif (!this.config || !this.ticketId) {\r\n\t// \t\tthrow new Error(\"EventTracker not initialized\");\r\n\t// \t}\r\n\r\n\t// \tawait this.flush();\r\n\r\n\t// \ttry {\r\n\t// \t\tconst response = await this.makeRequest(\"/api/v1/et/close\", {\r\n\t// \t\t\tmethod: \"POST\",\r\n\t// \t\t\theaders: {\r\n\t// \t\t\t\t\"Content-Type\": \"application/json\",\r\n\t// \t\t\t\t\"X-API-Key\": this.config.apiKey,\r\n\t// \t\t\t},\r\n\t// \t\t\tbody: JSON.stringify({\r\n\t// \t\t\t\tticketId: this.ticketId,\r\n\t// \t\t\t}),\r\n\t// \t\t});\r\n\r\n\t// \t\tif (!response.ok) {\r\n\t// \t\t\tthrow new Error(`Failed to close ticket: ${response.status} ${response.statusText}`);\r\n\t// \t\t}\r\n\r\n\t// \t\tthis.ticketId = null;\r\n\t// \t\tthis.stopPeriodicFlush();\r\n\r\n\t// \t\tconsole.log(\"Ticket closed successfully\");\r\n\t// \t} catch (error) {\r\n\t// \t\tconsole.error(\"Ticket close failed:\", error);\r\n\t// \t\tthrow error;\r\n\t// \t}\r\n\t// }\r\n\r\n\t// async flush(): Promise<void> {\r\n\t// \tif (!this.isOnline || this.eventQueue.length === 0) return;\r\n\r\n\t// \t// const eventsToFlush = [...this.eventQueue];\r\n\r\n\t// \t// for (const event of eventsToFlush) {\r\n\t// \t// \tawait this.sendEvent(event);\r\n\t// \t// }\r\n\r\n\t// \tconst retryItems = [...this.retryQueue];\r\n\t// \tthis.retryQueue = [];\r\n\r\n\t// \tfor (const retryFn of retryItems) {\r\n\t// \t\ttry {\r\n\t// \t\t\tawait retryFn();\r\n\t// \t\t} catch (error) {\r\n\t// \t\t\tconsole.error(\"Retry failed:\", error);\r\n\t// \t\t}\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 setupAutoTracking(): void {\r\n\t\tif (typeof window === \"undefined\" || !this.config?.autoTrack) return;\r\n\r\n\t\tconst autoTrackConfig = this.config.autoTrack === true ? {} : this.config.autoTrack;\r\n\r\n\t\tif (autoTrackConfig.pageVisits !== false) {\r\n\t\t\tthis.logEvent(\"pageVisit\", {\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\ttitle: document.title,\r\n\t\t\t\treferrer: document.referrer,\r\n\t\t\t\tuserAgent: navigator.userAgent,\r\n\t\t\t\tviewport: {\r\n\t\t\t\t\twidth: window.innerWidth,\r\n\t\t\t\t\theight: window.innerHeight,\r\n\t\t\t\t},\r\n\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t}).catch((error) => console.warn(\"Failed to track page visit:\", error));\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.clicks !== false) {\r\n\t\t\tdocument.addEventListener(\"click\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLElement | HTMLButtonElement;\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.tagName === \"BUTTON\" ||\r\n\t\t\t\t\ttarget.tagName === \"A\" ||\r\n\t\t\t\t\ttarget.onclick ||\r\n\t\t\t\t\ttarget.getAttribute(\"role\") === \"button\" ||\r\n\t\t\t\t\t(target instanceof HTMLButtonElement && target.type === \"button\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.logEvent(\"click\", {\r\n\t\t\t\t\t\telement: target.tagName,\r\n\t\t\t\t\t\ttext: target.textContent?.trim().substring(0, 100),\r\n\t\t\t\t\t\thref: target.getAttribute(\"href\"),\r\n\t\t\t\t\t\tid: target.id,\r\n\t\t\t\t\t\tclassName: target.className,\r\n\t\t\t\t\t\trole: target.getAttribute(\"role\"),\r\n\t\t\t\t\t\tposition: {\r\n\t\t\t\t\t\t\tx: event.clientX,\r\n\t\t\t\t\t\t\ty: event.clientY,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t}).catch((error) => console.warn(\"Failed to track click:\", error));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.forms !== false) {\r\n\t\t\tdocument.addEventListener(\"submit\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLFormElement;\r\n\t\t\t\tconst formData = new FormData(target);\r\n\t\t\t\tconst formFields: Record<string, string> = {};\r\n\r\n\t\t\t\tformData.forEach((value, key) => {\r\n\t\t\t\t\tformFields[key] = value.toString();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.logEvent(\"formSubmission\", {\r\n\t\t\t\t\tformId: target.id,\r\n\t\t\t\t\taction: target.action,\r\n\t\t\t\t\tmethod: target.method,\r\n\t\t\t\t\tfields: Object.keys(formFields),\r\n\t\t\t\t\tfieldCount: Object.keys(formFields).length,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t}).catch((error) => console.warn(\"Failed to track form submission:\", error));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.inputs !== false) {\r\n\t\t\tlet inputTimer: ReturnType<typeof setInterval>;\r\n\t\t\tdocument.addEventListener(\"input\", (event) => {\r\n\t\t\t\tconst target = event.target as HTMLInputElement;\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.tagName === \"INPUT\" ||\r\n\t\t\t\t\ttarget.tagName === \"TEXTAREA\" ||\r\n\t\t\t\t\ttarget.tagName === \"SELECT\"\r\n\t\t\t\t) {\r\n\t\t\t\t\tclearTimeout(inputTimer);\r\n\t\t\t\t\tinputTimer = setTimeout(() => {\r\n\t\t\t\t\t\tthis.logEvent(\"fieldChange\", {\r\n\t\t\t\t\t\t\telement: target.tagName,\r\n\t\t\t\t\t\t\ttype: target.getAttribute(\"type\"),\r\n\t\t\t\t\t\t\tname: target.getAttribute(\"name\"),\r\n\t\t\t\t\t\t\tid: target.id,\r\n\t\t\t\t\t\t\tvalueLength: target.value?.length || 0,\r\n\t\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t\t}).catch((error) => console.warn(\"Failed to track field change:\", error));\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst sessionStartTime = Date.now();\r\n\t\twindow.addEventListener(\"beforeunload\", () => {\r\n\t\t\tconst sessionDuration = Date.now() - sessionStartTime;\r\n\r\n\t\t\tthis.logEvent(\"pageUnload\", {\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\tsessionDuration: sessionDuration,\r\n\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t});\r\n\r\n\t\t\t// if (this.ticketId) {\r\n\t\t\t// \tnavigator.sendBeacon(\r\n\t\t\t// \t\t`${this.baseUrl}/api/v1/et/close`,\r\n\t\t\t// \t\tJSON.stringify({\r\n\t\t\t// \t\t\tticketId: this.ticketId,\r\n\t\t\t// \t\t})\r\n\t\t\t// \t);\r\n\t\t\t// }\r\n\t\t});\r\n\r\n\t\tif (autoTrackConfig.visibility !== false) {\r\n\t\t\tdocument.addEventListener(\"visibilitychange\", () => {\r\n\t\t\t\tthis.logEvent(\"visibilityChange\", {\r\n\t\t\t\t\thidden: document.hidden,\r\n\t\t\t\t\tvisibilityState: document.visibilityState,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (autoTrackConfig.errors !== false) {\r\n\t\t\twindow.addEventListener(\"error\", (event) => {\r\n\t\t\t\tthis.logEvent(\"jsError\", {\r\n\t\t\t\t\tmessage: event.message,\r\n\t\t\t\t\tfilename: event.filename,\r\n\t\t\t\t\tlineno: event.lineno,\r\n\t\t\t\t\tcolno: event.colno,\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\twindow.addEventListener(\"unhandledrejection\", (event) => {\r\n\t\t\t\tthis.logEvent(\"unhandledRejection\", {\r\n\t\t\t\t\treason: event.reason?.toString(),\r\n\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tautoTrackConfig.performance !== false &&\r\n\t\t\ttypeof window.performance !== \"undefined\" &&\r\n\t\t\twindow.performance.navigation\r\n\t\t) {\r\n\t\t\twindow.addEventListener(\"load\", () => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tconst navigation = window.performance.navigation;\r\n\t\t\t\t\tconst timing = window.performance.timing;\r\n\r\n\t\t\t\t\tthis.logEvent(\"performanceMetrics\", {\r\n\t\t\t\t\t\tnavigationTime: timing.navigationStart,\r\n\t\t\t\t\t\tloadTime: timing.loadEventEnd - timing.navigationStart,\r\n\t\t\t\t\t\tdomReady: timing.domContentLoadedEventEnd - timing.navigationStart,\r\n\t\t\t\t\t\trenderTime: timing.loadEventEnd - timing.domContentLoadedEventEnd,\r\n\t\t\t\t\t\tnavigationType: navigation.type,\r\n\t\t\t\t\t\tredirectCount: navigation.redirectCount,\r\n\t\t\t\t\t\ttimestamp: new Date().toISOString(),\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 1000);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupNetworkDetection(): void {\r\n\t\tif (typeof window === \"undefined\") return;\r\n\r\n\t\t// this.isOnline = navigator.onLine;\r\n\r\n\t\twindow.addEventListener(\"online\", () => {\r\n\t\t\t// this.isOnline = true;\r\n\t\t\tconsole.log(\"EventTracker: Back online, flushing queued events\");\r\n\t\t\t// this.flush();\r\n\t\t});\r\n\r\n\t\twindow.addEventListener(\"offline\", () => {\r\n\t\t\t// this.isOnline = false;\r\n\t\t\tconsole.log(\"EventTracker: Offline, queueing events\");\r\n\t\t});\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\t\t// const interval = this.config?.flushInterval || 5000;\r\n\t\t// this.flushTimer = setInterval(() => {\r\n\t\t// \tthis.flush();\r\n\t\t// }, interval);\r\n\t}\r\n\r\n\t// private stopPeriodicFlush(): void {\r\n\t// \tif (this.flushTimer) {\r\n\t// \t\tclearInterval(this.flushTimer);\r\n\t// \t\tthis.flushTimer = null;\r\n\t// \t}\r\n\t// }\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, STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\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 handleLogout = useCallback(async () => {\r\n\t\tconst state = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tconst payload: LogoutPayload = {\r\n\t\t\taction: \"LOGOUTUSER\",\r\n\t\t\tuserId: state.agentId || \"\",\r\n\t\t};\r\n\r\n\t\treturn axiosInstance\r\n\t\t\t.post(END_POINT.LOGOUT, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tsdkStateManager.clearStorageAndReset();\r\n\r\n\t\t\t\tlocalStorage.clear();\r\n\r\n\t\t\t\tsessionStorage.clear();\r\n\r\n\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\treturn res?.data;\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\tsetError(err);\r\n\r\n\t\t\t\treturn err?.response?.data;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetLoading(false);\r\n\t\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 axios, { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig } from \"axios\";\r\nimport { BASE_URL } from \"./endPoint\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nconst DEFAULT_TOKEN = sdkStateManager.getSdkAuthToken() ?? \"\";\r\n\r\nconst REQUEST_TIMEOUT = 60000;\r\n\r\nfunction getAuthToken(): string {\r\n\treturn sdkStateManager.getSdkAuthToken() ?? \"\";\r\n}\r\n\r\nfunction createAxiosInstance(): AxiosInstance {\r\n\tconst instance = axios.create({\r\n\t\tbaseURL: BASE_URL,\r\n\t\theaders: {\r\n\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\tAccept: \"application/json\",\r\n\t\t\t\"x-tenant-id\": sdkStateManager.getCredentials()?.tenantId ?? \"\",\r\n\t\t\t\"x-api-key\": sdkStateManager.getCredentials()?.apiKey ?? \"\",\r\n\t\t\tAuthorization: `${DEFAULT_TOKEN}`,\r\n\t\t},\r\n\t\ttimeout: REQUEST_TIMEOUT,\r\n\t\twithCredentials: false,\r\n\t});\r\n\r\n\tinstance.interceptors.request.use(\r\n\t\t(config: InternalAxiosRequestConfig) => {\r\n\t\t\tconst token = getAuthToken();\r\n\r\n\t\t\tif (token && config.headers) {\r\n\t\t\t\tconfig.headers.Authorization = `${token}`;\r\n\t\t\t\t// config.headers[\"x-tenant-id\"] = sdkStateManager.getCredentials()?.tenantId ?? \"\";\r\n\t\t\t\t// config.headers[\"x-api-key\"] = sdkStateManager.getCredentials()?.apiKey ?? \"\";\r\n\t\t\t}\r\n\r\n\t\t\t(config as any).metadata = { startTime: new Date().getTime() };\r\n\r\n\t\t\treturn config;\r\n\t\t},\r\n\t\t(error: AxiosError) => {\r\n\t\t\tconsole.error(\"Request interceptor error:\", error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\t}\r\n\t);\r\n\r\n\tinstance.interceptors.response.use(\r\n\t\t(response: AxiosResponse) => {\r\n\t\t\tconst endTime = new Date().getTime();\r\n\t\t\tconst startTime = (response.config as any).metadata?.startTime;\r\n\t\t\tif (startTime) {\r\n\t\t\t\tconsole.log(`Request to ${response.config.url} took ${endTime - startTime}ms`);\r\n\t\t\t}\r\n\r\n\t\t\treturn response;\r\n\t\t},\r\n\t\tasync (error: AxiosError) => {\r\n\t\t\tconst originalRequest = error.config as InternalAxiosRequestConfig & { _retry?: boolean };\r\n\r\n\t\t\tif (error.response?.status === 401 && !originalRequest._retry) {\r\n\t\t\t\tsdkStateManager.setInitCheck();\r\n\t\t\t\tconsole.warn(\"Unauthorized request, attempting retry...\");\r\n\t\t\t}\r\n\r\n\t\t\tif (!error.response) {\r\n\t\t\t\tconsole.error(\"Network error:\", error.message);\r\n\t\t\t\terror.message = \"Network error: Please check your internet connection\";\r\n\t\t\t}\r\n\r\n\t\t\tif (error.response && error.response.status >= 500) {\r\n\t\t\t\tconsole.error(\"Server error:\", error.response.status, error.response.data);\r\n\t\t\t\terror.message = \"Server error: Please try again later\";\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.reject(error);\r\n\t\t}\r\n\t);\r\n\r\n\treturn instance;\r\n}\r\n\r\nconst axiosInstance: AxiosInstance = createAxiosInstance();\r\n\r\nexport default axiosInstance;\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT, STORAGE_KEY } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nexport interface EndCallPayload {\r\n\taction: string;\r\n\tdisposition: string;\r\n\tuserId: string;\r\n\tprocessid: string;\r\n\tmobile_number: string;\r\n\tset_followUp: string;\r\n\tcallback_date: string;\r\n\tcallback_hrs: string;\r\n\tcallback_mins: string;\r\n\trefno?: string;\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: {\r\n\t\t\tdisposition?: string;\r\n\t\t\tfollowUp?: string;\r\n\t\t\tcallbackDate?: string;\r\n\t\t\tcallbackHrs?: string;\r\n\t\t\tcallbackMins?: string;\r\n\t\t}) => {\r\n\t\t\tconst state = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"ENDCALL\",\r\n\t\t\t\tuserId: state?.agentId,\r\n\t\t\t\tprocessid: state?.process?.process_id?.toString() ?? \"\",\r\n\t\t\t\tprocess_name: state?.process?.process_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state?.callData?.convox_id ?? \"\",\r\n\t\t\t\tmobile_number: state?.callData?.phone_number ?? \"\",\r\n\r\n\t\t\t\tdisposition: data?.disposition ?? \"RES\",\r\n\t\t\t\tset_followUp: data?.followUp ?? \"N\",\r\n\t\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\t\tcallback_hrs: data?.callbackHrs ?? \"\",\r\n\t\t\t\tcallback_mins: data?.callbackMins ?? \"\",\r\n\t\t\t\tendcall_type: \"CLOSE\",\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, STORAGE_KEY } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface StartCallPayload {\r\n\tmobileNumber: string; // 📱 Phone number to call\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 = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"\");\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (state?.callData?.status === \"IDLE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tuserId: state?.agentId,\r\n\t\t\t\tphone_number: data?.mobileNumber,\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 if (state?.callData?.status === \"ONCALL\") {\r\n\t\t\tconst line_used = state?.conferenceLine\r\n\t\t\t\t?.filter((each: any) => each.line !== 1)\r\n\t\t\t\t?.find((each: any) => each.status === \"IDLE\" && !each?.isCallStart);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t\tline_used: String(line_used.line),\r\n\t\t\t\tthirdparty_no: data?.mobileNumber,\r\n\t\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t\t.then((res) => {\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\t// sdkStateManager.setConferenceLine({\r\n\t\t\t\t\t// \t...line_used,\r\n\t\t\t\t\t// \tisCallStart: true,\r\n\t\t\t\t\t// \tstatus: \"ONCALL\",\r\n\t\t\t\t\t// \tphone: data?.mobileNumber,\r\n\t\t\t\t\t// });\r\n\r\n\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(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\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","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { CallData } from \"../../types\";\r\n\r\nexport const useGetCallerData = (): CallData => {\r\n\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\tsdkStateManager.getState().callData;\r\n\tconst initialCallData = {\r\n\t\tphone_number,\r\n\t\tstatus,\r\n\t\tcallReferenceId: convox_id,\r\n\t\tagent_id,\r\n\t\tprocess_id,\r\n\t\tprocess_name,\r\n\t};\r\n\tconst [callData, setCallData] = useState<CallData>(initialCallData);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\t\t\tsdkStateManager.getState().callData;\r\n\t\t\tconst currentCallData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: convox_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};\r\n\t\t\tsetCallData(currentCallData);\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn callData;\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 { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\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\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","import {\r\n\tCallEnd,\r\n\tClose,\r\n\tDragIndicator,\r\n\tGroup,\r\n\tKeyboardArrowDown,\r\n\tLayers,\r\n\tMic,\r\n\tMicOff,\r\n\tPause,\r\n\tPending,\r\n\tPhone,\r\n\tPlayArrow,\r\n\tSupportAgent,\r\n\tTransferWithinAStation,\r\n\tUpcoming,\r\n\tWifiCalling3,\r\n} from \"@mui/icons-material\";\r\n\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\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport type { CallControlPanelProps, ConferenceLineTypes } from \"../../types\";\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, IP, WS_END_POINT } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\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 useStyles from \"./styles\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\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\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: apiConferenceData[statusKey] ?? item.status,\r\n\t\t\t\tphone:\r\n\t\t\t\t\tapiConferenceData[phoneKey] === null || apiConferenceData[phoneKey] === \"0\" ?\r\n\t\t\t\t\t\titem.phone\r\n\t\t\t\t\t:\tapiConferenceData[phoneKey],\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\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 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 maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000; // 1 second\r\n\tconst maxReconnectDelay = 30000; // 30 seconds\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState(false);\r\n\tconst [processList, setProcessList] = useState(null);\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState(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\taction: string;\r\n\t\tphone_number: string;\r\n\t\tuserId: 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\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setHolding(!state.isHolding);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Hold operation error:\", error);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setMuted(!state.isMuted);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Mute operation error:\", error);\r\n\t\t},\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\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 [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdisposition: string;\r\n\t\tuserId: string;\r\n\t\tprocessid: string;\r\n\t\tmobile_number: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: string;\r\n\t\tcallback_mins: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.resetConferenceLines();\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\tsdkStateManager.setStatus(\"dial\");\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tif (state.status !== \"on call\") {\r\n\t\t\tsdkStateManager.setStatus(\"idle\");\r\n\t\t}\r\n\r\n\t\tsetDialerAnchorEl(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: 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 payload = {\r\n\t\t\taction: \"AGENTBREAK\",\r\n\t\t\tbreak_type: status,\r\n\t\t\tuserId: state.agentId,\r\n\t\t};\r\n\t\tupdateAgentStatus(END_POINT.UPDATE_AGENT_BREAK, payload);\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\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuserId: state.agentId,\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 ? \"UNHOLD\" : \"HOLD\",\r\n\t\t\tuserId: state.agentId,\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 ? \"UNMUTE\" : \"MUTE\",\r\n\t\t\tuserId: state.agentId,\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 };\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}) => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"ENDCALL\",\r\n\t\t\tuserId: state.agentId,\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?.convox_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\r\n\t\t\tdisposition: data?.disposition?.value ?? \"\",\r\n\t\t\tset_followUp: data?.followUp?.value ?? \"\",\r\n\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\tcallback_hrs: data?.callbackHrs ?? \"\",\r\n\t\t\tcallback_mins: data?.callbackMins ?? \"\",\r\n\t\t\tendcall_type: \"CLOSE\",\r\n\t\t};\r\n\t\tsetPhoneNumber(\"\");\r\n\t\tendCall(END_POINT.END_CALL, payload);\r\n\t\tsdkStateManager.endCall();\r\n\t\tsetOpenCallDisposition(false);\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\tlet interval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === \"ONCALL\") {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = Math.floor((Date.now() - state.callStartTime!) / 1000);\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\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Load audio as blob for better compatibility in npm packages\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, convox_id } =\r\n\t\t\t\tstate.callData;\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: convox_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};\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\taxiosInstance\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\tif (res && res.data && res?.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\tsdkStateManager.setProcess(res?.data?.data[0]);\r\n\t\t\t\t\t\tsetOpenProcessorDialog(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\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tconsole.log(\"No agentId available, skipping API call\");\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\tconsole.log(\"No agentId available, cannot connect WebSocket\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clear any existing reconnection timeout\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(`${WS_END_POINT.WS}?agent_id=${state.agentId}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\t// Reset reconnect attempts on successful connection\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\t// Start ping interval to keep connection alive (every 30 seconds)\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\t// Send ping message\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t\tconsole.log(\"📡 WebSocket ping sent\");\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); // Ping every 30 seconds\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\t\t\t\t\t// Handle pong response\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\tconsole.log(\"📡 WebSocket pong received\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst rls = localStorage.getItem(\"call-control-sdk-state\");\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(JSON.parse(rls || \"{}\"), data);\r\n\t\t\t\t\t/* use it for debugging */\r\n\t\t\t\t\t// console.log(confrence, \"📊 Parsed JSON:\", data);\r\n\r\n\t\t\t\t\tsdkStateManager.updateCallData(data);\r\n\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\r\n\t\t\t\t\tif (data.status === \"RINGING\" || data.status === \"DIALING\") {\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\t\t\t\t\t\tif (audioRef.current) {\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 === \"ONCALL\") {\r\n\t\t\t\t\t\tsdkStateManager.startCall();\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\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === \"WRAPUP\") {\r\n\t\t\t\t\t\tsdkStateManager.endCall();\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch {\r\n\t\t\t\t\tconsole.log(\"📨 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\tconsole.log(\"🔌 WebSocket connection closed\", event.code, event.reason);\r\n\r\n\t\t\t\t// Clear ping interval\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\t// Only reconnect if it wasn't a manual close (code 1000) and we haven't exceeded max attempts\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\r\n\t\t\t\t\t// Calculate exponential backoff delay\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.log(\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\tconsole.error(\"❌ Maximum reconnection attempts reached. Please refresh the page.\");\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\t// The onclose handler will handle reconnection\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"❌ Failed to create WebSocket:\", error);\r\n\t\t\t// Attempt reconnection\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\t// Cleanup: close WebSocket and clear intervals/timeouts\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\t// Close with code 1000 (normal closure) to prevent reconnection\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\tif (!state.isInitialized || !state.process) {\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\treturn (\r\n\t\t<>\r\n\t\t\t<Box>\r\n\t\t\t\t<Fade\r\n\t\t\t\t\tin={true}\r\n\t\t\t\t\ttimeout={300}\r\n\t\t\t\t>\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: state.sdkConfig?.isDraggable ?\r\n\t\t\t\t\t\t\t\t1\r\n\t\t\t\t\t\t\t:\t0\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: \"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\talignItems: \"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\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tmargin: \"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<Box>\r\n\t\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledDialButton && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title=\"Dial\">\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\tstate.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"BREAK\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"RINGING\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"WRAPUP\"\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\tsx={{\r\n\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\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"warning\",\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<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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\"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</Tooltip>\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<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\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{formatDuration(callDuration)}\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"18px 0px\",\r\n\t\t\t\t\t\t\t\t\t}}\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:\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}\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\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: \"center\",\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(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\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\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\tstate.callData?.status?.toUpperCase() === \"BREAK\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"MISSED\"\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\toutlined\r\n\t\t\t\t\t\t\t\t\t\t\t:\tenabled),\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<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={state.callData?.hold === 1 ? \"Resume\" : \"Hold\"}>\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(\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.callData?.status?.toUpperCase() === \"ONCALL\"\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\"contained\"\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}\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\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\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\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\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\tholdOrUnHoldLoading\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{holdOrUnHoldLoading ?\r\n\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\tsize=\"20px\"\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: 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/>\r\n\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<PlayArrow />\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</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={state.callData?.mute === 1 ? \"Unmute\" : \"Mute\"}>\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\tstate.isHolding ? \"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\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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\"contained\"\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}\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\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\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\tstate.callData?.hold === 1 ? { ...disabled }\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\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"ONCALL\"\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{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\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\tmuteOrUnMuteLoading ||\r\n\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}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ?\r\n\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\tsize=\"20px\"\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: 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/>\r\n\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<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t:\t<Mic />}\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{!state.sdkConfig?.disableCallTransferButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Transfer Call\"}>\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (state.callData?.status?.toUpperCase() === \"ONCALL\") {\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 ? { ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\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={state.callData?.status?.toUpperCase() !== \"ONCALL\"}\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<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</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disableConferenceButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Conference Call\"}>\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (state.callData?.status?.toUpperCase() === \"ONCALL\") {\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 ? { ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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{ ...disabled }\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={state.callData?.status?.toUpperCase() !== \"ONCALL\"}\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<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</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disableEndCallButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"End Call\"}>\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?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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\tstate.callData?.status?.toUpperCase() === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() === \"WRAPUP\"\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{\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}\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}\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() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"RINGING\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() !== \"WRAPUP\") ||\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}\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\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\tcolor=\"error\"\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<CallEnd />}\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\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\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<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\tsrc={`https://${IP}/ConVoxCCS/iframe?agent_id=${state.agentId}&process_id=${state.process?.process_id}`}\r\n\t\t\t\t\t\t\theight={380}\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\tvalue={phoneNumber}\r\n\t\t\t\t\t\tplaceholder=\"Enter Mobile No.\"\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tsetPhoneNumber(e.target.value);\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:\t<Phone color=\"success\" />}\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={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<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t{/* <MenuItem onClick={() => handleUpdateAgentStatus(\"Tea\")}>- Tea</MenuItem> */}\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","/* 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","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","/* 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): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\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\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.post(url, payload, config)\r\n\t\t\t\t.then((res) => {\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})\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 [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 { createContext, useContext, useState, ReactNode } from \"react\";\r\nimport { Snackbar, Alert, AlertColor } from \"@mui/material\";\r\n\r\ntype ToastContextType = {\r\n\tshowToast: (message: string, severity?: AlertColor) => void;\r\n};\r\n\r\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\r\n\r\nexport const useToast = () => {\r\n\tconst ctx = useContext(ToastContext);\r\n\tif (!ctx) throw new Error(\"useToast must be used inside ToastProvider\");\r\n\treturn ctx;\r\n};\r\n\r\nexport const ToastProvider = ({ children }: { children: ReactNode }) => {\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [message, setMessage] = useState(\"\");\r\n\tconst [severity, setSeverity] = useState<AlertColor>(\"info\");\r\n\r\n\tconst showToast = (msg: string, sev: AlertColor = \"info\") => {\r\n\t\tsetMessage(msg);\r\n\t\tsetSeverity(sev);\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ToastContext.Provider value={{ showToast }}>\r\n\t\t\t{children}\r\n\t\t\t<Snackbar\r\n\t\t\t\topen={open}\r\n\t\t\t\tcolor={severity}\r\n\t\t\t\tautoHideDuration={3000}\r\n\t\t\t\tonClose={() => setOpen(false)}\r\n\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t<Alert\r\n\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\tseverity={severity}\r\n\t\t\t\t\tonClose={() => setOpen(false)}\r\n\t\t\t\t\tsx={{ width: \"100%\" }}\r\n\t\t\t\t>\r\n\t\t\t\t\t{message}\r\n\t\t\t\t</Alert>\r\n\t\t\t</Snackbar>\r\n\t\t</ToastContext.Provider>\r\n\t);\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport {\r\n\tCall,\r\n\tCallEnd,\r\n\tCallSplit,\r\n\tClose,\r\n\tMic,\r\n\tMicOff,\r\n\tPause,\r\n\tPhoneDisabled,\r\n\tPlayArrow,\r\n\tSupportAgent,\r\n} from \"@mui/icons-material\";\r\n\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tDialog,\r\n\tIconButton,\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} 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 { usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport type { ConferenceLineTypes } from \"../../types\";\r\n\r\nimport { useToast } from \"../services/toastMessage\";\r\n\r\nimport useStyles from \"./styles\";\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\nconst ConferenceTableRow = ({ each }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\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\tconst theme = useTheme();\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\t// const [conferenceCallMuteOrUnMute, setConferenceCallMuteOrUnMute] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\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\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\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\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\t// sdkStateManager.setConferenceLine({ ...line, ...data });\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\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.callData?.agent_id ?? \"\",\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\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\t// sdkStateManager.setConferenceLine({ ...line, ...data });\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\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\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.callData?.agent_id ?? \"\",\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_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\t// sdkStateManager.setConferenceLine({ ...line, ...data });\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\t// const onMuteOrUnMuteConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t// \tconst line_used = { ...line, ...data };\r\n\r\n\t// \tsetConferenceCallMuteOrUnMute(true);\r\n\r\n\t// \tconst payload = {\r\n\t// \t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t// \t\toperation: type,\r\n\t// \t\tchannel_no: type === \"MUTEUSER\" ? `mute${line_used.line}` : `play${line_used.line}`,\r\n\t// \t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t// \t\tthirdparty_no: line_used.phone,\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_MUTE_OT_UN_MUTE, payload)\r\n\t// \t\t.then((res) => {\r\n\t// \t\t\tshowToast(res.data?.message, \"success\");\r\n\t// \t\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\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\tsetConferenceCallMuteOrUnMute(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\tsetConferenceCallEnd(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"HANGUP_CHANNEL\",\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tuser_type: `THIRDPARTY${line_used.line - 1}`,\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\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_END, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\t// sdkStateManager.setConferenceLine({ ...line, ...data });\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\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setHolding(!state.isHolding);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Hold operation error:\", error);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [muteOrUnMute] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setMuted(!state.isMuted);\r\n\t\t},\r\n\t\tonError: (error) => {\r\n\t\t\tconsole.log(\"❌ Mute operation error:\", error);\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 ? \"UNHOLD\" : \"HOLD\",\r\n\t\t\tuserId: state.agentId,\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 ? \"UNMUTE\" : \"MUTE\",\r\n\t\t\tuserId: state.agentId,\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\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<Button\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<Typography variant=\"body2\">{each?.line === 1 ? \"Internal\" : \"External\"}</Typography>\r\n\t\t\t\t</Button>\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<TextField\r\n\t\t\t\t\tsize=\"small\"\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\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\teach?.status === \"CONFERENCE\" ||\r\n\t\t\t\t\t\teach?.status === \"HOLD\" ||\r\n\t\t\t\t\t\teach?.status === \"MUTE\" ||\r\n\t\t\t\t\t\teach?.status === \"DIALING\" ||\r\n\t\t\t\t\t\teach?.status === \"RINGING\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\tonConferenceLineUpdate(each, { phone: e.target.value });\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\t// width: \"200px\",\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 !== \"HOLD\" ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t// variant={\r\n\t\t\t\t\t\t\t\t// \tstate.callData?.hold === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\tvariant={each?.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"CONFERENCE\" ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === \"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={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== \"CONFERENCE\" && each?.status !== \"HOLD\") ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// onClick={(e) => {\r\n\t\t\t\t\t\t\t\t// \te.stopPropagation();\r\n\t\t\t\t\t\t\t\t// \thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t// }}\r\n\t\t\t\t\t\t\t\t// sx={\r\n\t\t\t\t\t\t\t\t// \tstate.callData?.hold === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t// \t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t// \t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t// disabled={\r\n\t\t\t\t\t\t\t\t// \t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t// \t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t// \tholdOrUnHoldLoading\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{each.status === \"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: each.status === \"HOLD\" ? \"#fff\" : \"initial\",\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\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\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: 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/>\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</Box>\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\tcolor: each.status === \"HOLD\" ? \"#fff\" : \"#000\",\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}}\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\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\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: 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/>\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</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\t\t\t\t\t{/* {each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={state.callData?.mute === 1 ? \"Unmute\" : \"Mute\"}>\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\tstate.isHolding ? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\"\r\n\t\t\t\t\t\t\t\t\t) ?\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\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 && state.callData?.status?.toUpperCase() === \"ONCALL\"\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t: state.callData?.status?.toUpperCase() === \"ONCALL\" ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t\t:\t{ ...disabled }\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\t(state.callData?.status?.toUpperCase() !== \"ONCALL\" &&\r\n\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\tstate.callData?.hold === 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{state.callData?.mute === 1 ?\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: state.callData?.mute === 1 ? \"#fff\" : \"initial\",\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\tUnmute\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{muteOrUnMuteLoading ?\r\n\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\tsize=\"16px\"\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: 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/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<MicOff />}\r\n\t\t\t\t\t\t\t\t\t</Box>\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\tcolor: state.callData?.mute === 1 ? \"#fff\" : \"#000\",\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}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tMute\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{muteOrUnMuteLoading ?\r\n\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\tsize=\"16px\"\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: 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/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<Mic />}\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\t\t\t\t\t{/* ------------- */}\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status !== \"IDLE\" ? \"outlined\" : \"contained\"}\r\n\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== \"IDLE\" ?\r\n\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\t\t\t...enabled,\r\n\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\"&:hover\": {\r\n\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\tboxShadow: `0px 2px 1px ${theme.palette.success.light}`,\r\n\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},\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: \"success.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}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonConferenceCallStart(each, {});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== \"IDLE\"}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallStart ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t:\t<Call\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: each?.status !== \"IDLE\" ? \"default\" : \"#f3f2f2\",\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}\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\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 === \"ONCALL\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"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, {\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: true,\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={each?.status !== \"ONCALL\"}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t:\t<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\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== \"HOLD\" ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t// sx={\r\n\t\t\t\t\t\t\t\t// \t(\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"CONFERENCE\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"DIALING\" ||\r\n\t\t\t\t\t\t\t\t// \t\teach?.status === \"RINGING\"\r\n\t\t\t\t\t\t\t\t// \t) ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// \t: each?.status === \"ONCALL\" || each?.status === \"CONFERENCE\" ?\r\n\t\t\t\t\t\t\t\t// \t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t// \t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\tsx={each?.status === \"CONFERENCE\" ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === \"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={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== \"CONFERENCE\" && each?.status !== \"HOLD\") ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"DIALING\" ||\r\n\t\t\t\t\t\t\t\t\t// each?.status === \"RINGING\" ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\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{conferenceCallHoldOrUnHold ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: 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/>\r\n\t\t\t\t\t\t\t\t: each.status === \"HOLD\" ?\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t:\t<Pause />}\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\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 !== \"IDLE\" && each?.status !== \"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 !== \"IDLE\" && each?.status !== \"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 === \"IDLE\" || each?.status === \"DISCONNECTED\" || conferenceCallEnd\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 ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t:\t<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.callData?.agent_id ?? \"\",\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_END_ALL, 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})\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\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\t// fullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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: \"10px 16px\",\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\">{state?.agentId ?? \"\"} conference</Typography>\r\n\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 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\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tborder: \"4px solid #ffffff !important\",\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<TableHead>\r\n\t\t\t\t\t\t\t\t\t<TableRow\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tborder: \"2px solid #f3f3f3ff !important\",\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<TableCell\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\tpadding: \"6px\",\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\tLine\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tStatus\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t{/* <TableCell\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\tpadding: \"6px\",\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\tCall Type\r\n\t\t\t\t\t\t\t\t\t\t</TableCell> */}\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tMobile Number\r\n\t\t\t\t\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell\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\tpadding: \"6px\",\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\tCall Actions\r\n\t\t\t\t\t\t\t\t\t\t</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 each={each} />\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\r\n\t\t\t\t\t\ttextAlign=\"center\"\r\n\t\t\t\t\t\tm={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={onEndAllConferenceCalls}\r\n\t\t\t\t\t\t\tdisabled={conferenceCallEndAll}\r\n\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"20px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{conferenceCallEndAll ?\r\n\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\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<IconButton\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"error.dark\" },\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\theight: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\tlineHeight: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\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\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\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<PhoneDisabled\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\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</IconButton>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tEnd Conference\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 CallTransferDialog({ open }: any) {\r\n\tconst state = useSDKState();\r\n\r\n\tconst [transferCall] = usePostRequest<TransferCallRequest>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [currentselecteTab, setCurrentselecteTab] = useState(\"process\");\r\n\r\n\tconst [getIdelAgentsList, { data: idleAgentsList, isLoading: isIdleAgentsListLoading }] =\r\n\t\tusePostRequest<any>({\r\n\t\t\tdisabledSuccessToast: true,\r\n\t\t});\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}>({\r\n\t\tdisabledSuccessToast: true,\r\n\t});\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) => {\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.callData?.agent_id ?? \"\",\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?.convox_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};\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.callData?.agent_id ?? \"\",\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?.convox_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};\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.callData?.agent_id ?? \"\",\r\n\t\t\t\ttype: \"AGENT\",\r\n\t\t\t\ttransfer_to: data?.user_id ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.convox_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};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, {\r\n\t\t\tstatus: \"IDLE\",\r\n\t\t\tactive: true,\r\n\t\t});\r\n\r\n\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\tstatus: \"ACTIVE\",\r\n\t\t\tactive: true,\r\n\t\t});\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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 Transfer</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<Box sx={{ display: \"flex\", gap: 1 }}>\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={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"process\");\r\n\t\t\t\t\t\t\t\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"ACTIVE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"queues\");\r\n\t\t\t\t\t\t\t\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"ACTIVE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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, {\r\n\t\t\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\t\t\tactive: true,\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>\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</Box>\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading || isIdleAgentsListLoading) && (\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\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\theight: \"80px\",\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<CircularProgress />{\" \"}\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\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\r\n\t\t\t\t\t\t\t\t\t{(\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.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) ?\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<SupportAgent 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\r\n\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\tcolor=\"success\"\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\tbgcolor: \"action.hover\",\r\n\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}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(process, \"PROCESS\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Process Found\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\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{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\r\n\t\t\t\t\t\t\t\t\t{(\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.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) ?\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<SupportAgent 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{(\r\n\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(process: any) => process.process_id === queue.process_id\r\n\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) ?\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:\t\"\"}\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<IconButton\r\n\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\tsx={{\r\n\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\"&:hover\": { bgcolor: \"action.selected\" },\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\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(queue, \"QUEUE\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Queues Found\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\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{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, flexWrap: \"wrap\" }}>\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<IconButton\r\n\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\tsx={{\r\n\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\"&:hover\": { bgcolor: \"action.selected\" },\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\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(agent, \"AGENT\");\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<Call />\r\n\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</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<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\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: \"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\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\twidth: \"100%\",\r\n\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\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"60px\",\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\tNo Agents Found\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\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\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"Resolved\", value: \"RES\" },\r\n\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\tcallbackDate: \"\",\r\n\t\tcallbackHrs: \"\",\r\n\t\tcallbackMins: \"\",\r\n\t});\r\n\tconst dispositionOptions = [\r\n\t\t{ label: \"Not Interested\", value: \"NI\" },\r\n\t\t{ label: \"Resolved\", value: \"RES\" },\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 = (field: keyof typeof formData, value: { label: string } | null | string) => {\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: \"Resolved\", value: \"RES\" },\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});\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\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"xs\"}\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\tm={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\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\tgap={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={dispositionOptions}\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{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\t\tgap={2}\r\n\t\t\t\t\t\t\t\tmt={2}\r\n\t\t\t\t\t\t\t>\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}}\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) => handleChange(\"callbackDate\", e.target.value)}\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<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Hours (0-23)\"\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackHrs}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"callbackHrs\", e.target.value)}\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\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\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\t\tgap={2}\r\n\t\t\t\t\t\t\t\tmt={2}\r\n\t\t\t\t\t\t\t>\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=\"Minutes (0-59)\"\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackMins}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"callbackMins\", e.target.value)}\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<Box sx={{ flex: 1 }}></Box>\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</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\ttextAlign=\"right\"\r\n\t\t\t\t\t\tm={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={\"xs\"}\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:\tnull}\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\tfullWidth\r\n\t\t\t\tmaxWidth={\"md\"}\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}}\r\n\t\t\t\t\t\tp={6}\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\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\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 rgb(206, 204, 204)`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: \" 0px 2px 2px rgba(0, 0, 0, 0.79)\",\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 ...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","/**\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.warn(\"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\tconsole.log(\"Primary URL failed, trying original import URL:\", 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\tif (!loaded) {\r\n\t\tconsole.error(\"Failed to load audio with all methods. URL:\", audioUrl);\r\n\t\t// Still return the audio element - it might work when play() is called\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 { ReactNode, memo } from \"react\";\r\nimport { ToastProvider } from \"../services/toastMessage\";\r\nimport React from \"react\";\r\nimport { SDKProviderProps } from \"../../types\";\r\n\r\nexport const SDKProvider = memo<SDKProviderProps>(({ children }) => {\r\n\treturn <ToastProvider>{children}</ToastProvider>;\r\n});\r\n\r\nSDKProvider.displayName = \"SDKProvider\";\r\n"],"mappings":"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","names":["_a","_a","_a","axios","_a","import_react","data","_a","import_react","data","_a","import_react","process_id","process_name","status","phone_number","agent_id","convox_id","import_react","import_react","import_icons_material","import_material","import_react","import_react","import_react","import_react","import_react","_a","import_material","import_react","import_material","import_jsx_runtime","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","incomingRingtoneUrl","incomingRingtoneUrl","import_jsx_runtime","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","import_react","import_jsx_runtime","import_jsx_runtime"]}