call-control-sdk 6.4.5-dev.7 → 6.4.5-dev.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/incoming-4WP3FJI4.mp3 +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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/components/SDKProvider.tsx","../call-control-sdk/index.ts"],"sourcesContent":["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\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};\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 = this.getInitialState().conferenceLine;\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.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\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\n\r\nconst getCombineConfrenceData = (\r\n\tconferenceData: ConferenceLineTypes[],\r\n\tapiData: any,\r\n\tdata: any\r\n) => {\r\n\tconst updatedConferenceData = conferenceData.map((item) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\t// return {\r\n\t\t\t// \t...item,\r\n\t\t\t// \tstatus: apiData[statusKey] ?? \"IDLE\",\r\n\t\t\t// \tphone: apiData[phoneKey] !== \"0\" ? apiData[phoneKey] : \"\",\r\n\t\t\t// };\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: apiData[statusKey] ?? data?.status,\r\n\t\t\t\tphone: data?.phone_number ?? \"\",\r\n\t\t\t\t// isMute: false,\r\n\t\t\t\t// isHold: false,\r\n\t\t\t\t// isMergeCall: false,\r\n\t\t\t\t// isCallStart: true,\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: apiData[statusKey] ?? \"IDLE\",\r\n\t\t\t\tphone: apiData[phoneKey] !== \"0\" ? apiData[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 = 1000; // 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\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.isHolding ? \"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.isMuted ? \"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\taudioRef.current = new Audio(\"../ringtones/incoming.mp3\");\r\n\t\taudioRef.current.loop = true;\r\n\t\taudioRef.current.volume = 0.7;\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 = null;\r\n\t\t\t}\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\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\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(\r\n\t\t\t\t\t\tstate?.conferenceLine,\r\n\t\t\t\t\t\tdata?.conferencestatus,\r\n\t\t\t\t\t\tdata\r\n\t\t\t\t\t);\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}\r\n\r\n\t\t\t\t\tif (data.status === \"ONCALL\") {\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\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\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\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.isHolding ? \"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\tstate.isHolding && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\tstate.isHolding && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\" && !state.isHolding) ||\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.isHolding ?\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.isMuted ? \"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.isMuted && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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.isMuted && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\" && !state.isMuted) ||\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}\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.isMuted ?\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, isMergeCall }: 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\tconst [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\tconst 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\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}}\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}}\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}}\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}}\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}}\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}\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}}\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\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"space-around\",\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=\"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={isMergeCall ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\tisMergeCall ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...enabled, padding: \"0px 16px\" }\r\n\t\t\t\t\t\t\t\t\t:\t{ ...disabled, padding: \"0px 16px\" }\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\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={!isMergeCall || conferenceCallMerge}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each?.isMergeCall ? \"Merged\" : \"Merge\"}\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<Tooltip title={each.status !== \"HOLD\" ? \"Hold\" : \"Un Hold\"}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant={each.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\teach.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"CONFERENCE\"\r\n\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t{ ...disabled }\r\n\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// each.status === \"IDLE\"\r\n\t\t\t\t\t\t\t\t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tif (each.status === \"HOLD\") {\r\n\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\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{conferenceCallHoldOrUnHold ?\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\tsx={{\r\n\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}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t: each.status === \"HOLD\" ?\r\n\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t:\t<Pause />}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t<Tooltip title={each.status !== \"MUTE\" ? \"Mute\" : \"Un Mute\"}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant={each.status === \"MUTE\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\teach.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"CONFERENCE\"\r\n\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t{ ...disabled }\r\n\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{ ...outlined }\r\n\t\t\t\t\t\t\t\t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tif (each.status === \"MUTE\") {\r\n\t\t\t\t\t\t\t\t\tonMuteOrUnMuteConferenceCall(each, { isMute: false }, \"PLAYUSER\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tonMuteOrUnMuteConferenceCall(each, { isMute: true }, \"MUTEUSER\");\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"HOLD\" ||\r\n\t\t\t\t\t\t\t\tconferenceCallMuteOrUnMute\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{conferenceCallMuteOrUnMute ?\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\tsx={{\r\n\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}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t: each.status === \"MUTE\" ?\r\n\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t:\t<Mic />}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\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:\t<Button\r\n\t\t\t\t\t\t\tvariant={each?.isCallStart ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: \"none\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\tisHold: false,\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" || each?.status === \"DISCONNECTED\" || conferenceCallEnd\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{conferenceCallEnd ?\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/>\r\n\t\t\t\t\t\t\t:\t<CallEnd />}\r\n\t\t\t\t\t\t</Button>\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\tconst isMergeCall = useMemo(() => {\r\n\t\treturn state?.conferenceLine?.some((each: any) => {\r\n\t\t\tif (each.line !== 1) {\r\n\t\t\t\treturn each.status === \"ONCALL\";\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}, [state.conferenceLine]);\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\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: \"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\r\n\t\t\t\t\t\t\t\t\t\t\teach={each}\r\n\t\t\t\t\t\t\t\t\t\t\tisMergeCall={isMergeCall}\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</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","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","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"],"mappings":"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","names":["IP","BASE_URL","WS_BASE_URL","VERSION","END_POINT","WS_END_POINT","STORAGE_KEY","SDKStateManager","__publicField","STORAGE_KEY","stored","parsedState","__spreadProps","__spreadValues","error","persistentState","listener","apiKey","tenantId","agentId","sdkConfig","initResult","_a","index","isHolding","isMuted","status","process","position","open","data","line","conferenceLineData","each","sdkStateManager","EventTrackerSDK","__publicField","config","__spreadValues","ticket","response","sdkStateManager","data","error","eventType","eventData","event","url","options","_a","fullUrl","maxRetries","attempt","delay","resolve","autoTrackConfig","target","formData","formFields","value","key","inputTimer","sessionStartTime","sessionDuration","navigation","timing","eventTracker","useCallback","useState","axios","_a","DEFAULT_TOKEN","sdkStateManager","REQUEST_TIMEOUT","getAuthToken","createAxiosInstance","_b","_c","_d","instance","axios","BASE_URL","config","token","error","response","endTime","startTime","originalRequest","axiosInstance","axios_default","useLogout","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","state","STORAGE_KEY","payload","axios_default","END_POINT","res","sdkStateManager","err","useCallback","useState","useEndCall","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","state","STORAGE_KEY","payload","axios_default","END_POINT","res","sdkStateManager","err","useCallback","useState","useClickToCall","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","_b","_c","_d","_e","_f","_g","_h","_i","state","STORAGE_KEY","payload","axios_default","END_POINT","res","err","line_used","each","sdkStateManager","__spreadProps","__spreadValues","useState","useEffect","useGetCallerData","process_id","process_name","status","phone_number","agent_id","convox_id","sdkStateManager","initialCallData","callData","setCallData","useState","useEffect","useState","useEffect","useGetAuthorizationToken","token","setToken","useState","sdkStateManager","useEffect","memo","useCallback","CallEnd","Close","DragIndicator","Group","KeyboardArrowDown","Layers","Mic","MicOff","Pause","Pending","Phone","PlayArrow","SupportAgent","TransferWithinAStation","Upcoming","WifiCalling3","Box","Button","Chip","CircularProgress","Fade","IconButton","Menu","MenuItem","Paper","TextField","Tooltip","Typography","useTheme","useEffect","useRef","useState","useCallback","useRef","useState","useDraggable","initialPosition","onPositionChange","position","setPosition","isDragging","setIsDragging","dragRef","dragStart","elementStart","updatePosition","newPosition","element","rect","viewportWidth","viewportHeight","constrainedPosition","handleStart","clientX","clientY","handleMove","moveClientX","moveClientY","deltaX","deltaY","handleMouseMove","e","handleTouchMove","touch","handleEnd","handleMouseDown","handleTouchStart","useState","useEffect","useSDKState","state","setState","useState","sdkStateManager","useEffect","useCallback","useReducer","createContext","useContext","useState","Snackbar","Alert","jsx","jsxs","ToastContext","useToast","ctx","ToastProvider","children","open","setOpen","message","setMessage","severity","setSeverity","showToast","msg","sev","initialState","reducer","state","action","__spreadProps","__spreadValues","usePostRequest","props","onSuccess","onError","disabledSuccessToast","showToast","useToast","state","dispatch","useReducer","reducer","initialState","useCallback","url","payload","config","axios_default","res","_a","err","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","error","Call","CallEnd","CallSplit","Close","Mic","MicOff","Pause","PhoneDisabled","PlayArrow","SupportAgent","Box","Button","Dialog","IconButton","Paper","TextField","Typography","Autocomplete","Tooltip","useTheme","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","CircularProgress","useEffect","useMemo","useState","useTheme","useStyles","disabled","enabled","outlined","theme","useTheme","__spreadValues","styles_default","Fragment","jsx","jsxs","ConferenceTableRow","each","isMergeCall","_a","_b","_c","_d","_e","state","useSDKState","showToast","useToast","disabled","enabled","outlined","styles_default","theme","useTheme","conferenceCallStart","setConferenceCallStart","useState","conferenceCallMerge","setConferenceCallMerge","conferenceCallHoldOrUnHold","setConferenceCallHoldOrUnHold","conferenceCallMuteOrUnMute","setConferenceCallMuteOrUnMute","conferenceCallEnd","setConferenceCallEnd","onConferenceLineUpdate","line","data","sdkStateManager","__spreadValues","onConferenceCallStart","line_used","payload","axios_default","END_POINT","res","err","message","onMergeConferenceCall","onHoldOrUnHoldConferenceCall","type","onMuteOrUnMuteConferenceCall","onEndConferenceCall","TableRow","TableCell","Typography","Button","TextField","e","Box","Tooltip","__spreadProps","CircularProgress","Call","CallSplit","PlayArrow","Pause","MicOff","Mic","CallEnd","ConferenceDialog","conferenceCallEndAll","setConferenceCallEndAll","handleClose","onEndAllConferenceCalls","useMemo","Dialog","Paper","IconButton","Close","TableContainer","Table","TableHead","TableBody","PhoneDisabled","CallTransferDialog","open","_f","_g","_h","_i","_j","_k","_l","transferCall","usePostRequest","currentselecteTab","setCurrentselecteTab","getIdelAgentsList","idleAgentsList","isIdleAgentsListLoading","getProcessAndQueuesList","processAndQueuesList","isProcessAndQueuesListLoading","handleTransferCall","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","useEffect","process","index","SupportAgent","queue","agent","EndCallDispositionDialog","setOpen","onSubmitDisposition","formData","setFormData","dispositionOptions","followUpOptions","handleChange","field","value","prev","handleReset","Autocomplete","opt","_","val","params","ProcessorListDialog","processList","handleSelectedProcessor","CallHistoryDialog","Fragment","jsx","jsxs","getCombineConfrenceData","conferenceData","apiData","data","item","_a","_b","_c","statusKey","__spreadProps","__spreadValues","phoneKey","formatDuration","seconds","mins","secs","CallControls","onDataChange","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","theme","useTheme","state","useSDKState","showToast","useToast","disabled","enabled","outlined","styles_default","webSocketRef","useRef","audioRef","reconnectTimeoutRef","pingIntervalRef","reconnectAttemptsRef","maxReconnectAttempts","baseReconnectDelay","maxReconnectDelay","anchorEl","setAnchorEl","useState","showIframe","setShowIframe","statusAnchorEl","setStatusAnchorEl","dialerAnchorEl","setDialerAnchorEl","openCallDisposition","setOpenCallDisposition","openProcessorDialog","setOpenProcessorDialog","openCallHistoryDialog","setOpenCallHistoryDialog","processList","setProcessList","phoneNumber","setPhoneNumber","callDuration","setCallDuration","position","isDragging","dragRef","handleMouseDown","handleTouchStart","useDraggable","newPosition","sdkStateManager","iframePosition","iframeIsDragging","iframeDragRef","iframeHandleMouseDown","iframeHandleTouchStart","clickToCall","clickToCallLoading","usePostRequest","holdOrUnHold","holdOrUnHoldLoading","error","muteOrUnMute","muteOrUnMuteLoading","readyAgentStatus","agentReadyLoading","updateAgentStatus","isLoading","endCall","endCallLoading","handleCloseQueueCounts","handleOpenDialer","event","handleCloseDialer","handleOpenAgentStatus","handleCloseAgentStatus","handleAgentReady","payload","END_POINT","handleUpdateAgentStatus","status","handleStartCall","number","handleHoldToggle","handleMuteToggle","handleEndCall","useEffect","handleBeforeUnload","e","interval","elapsed","process_id","process_name","phone_number","agent_id","convox_id","axios_default","res","err","connectWebSocket","WS_END_POINT","confrence","delay","Box","ProcessorListDialog","Fade","Paper","IconButton","DragIndicator","Tooltip","WifiCalling3","Typography","Chip","CircularProgress","KeyboardArrowDown","Button","SupportAgent","PlayArrow","Pause","MicOff","Mic","TransferWithinAStation","Group","CallEnd","Close","IP","Menu","TextField","Phone","MenuItem","Layers","Pending","Upcoming","ConferenceDialog","CallTransferDialog","EndCallDispositionDialog","CallHistoryDialog","memo","jsx","SDKProvider","memo","children","ToastProvider","jsx","CallControlPanel","memo","onDataChange","handleDataChange","useCallback","data","error","SDKProvider","CallControls","initSDK","apiKey","tenantId","agentId","sdkConfig","initResult","eventTracker","BASE_URL","sdkStateManager","error","getSDKVersion","isSDKInitialized"]}
|
|
1
|
+
{"version":3,"sources":["../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/components/SDKProvider.tsx","../call-control-sdk/index.ts"],"sourcesContent":["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\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};\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 = this.getInitialState().conferenceLine;\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.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\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 incomingRingtone from \"../ringtones/incoming.mp3\";\r\nconst getCombineConfrenceData = (\r\n\tconferenceData: ConferenceLineTypes[],\r\n\tapiData: any,\r\n\tdata: any\r\n) => {\r\n\tconst updatedConferenceData = conferenceData.map((item) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\t// return {\r\n\t\t\t// \t...item,\r\n\t\t\t// \tstatus: apiData[statusKey] ?? \"IDLE\",\r\n\t\t\t// \tphone: apiData[phoneKey] !== \"0\" ? apiData[phoneKey] : \"\",\r\n\t\t\t// };\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: apiData[statusKey] ?? data?.status,\r\n\t\t\t\tphone: data?.phone_number ?? \"\",\r\n\t\t\t\t// isMute: false,\r\n\t\t\t\t// isHold: false,\r\n\t\t\t\t// isMergeCall: false,\r\n\t\t\t\t// isCallStart: true,\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: apiData[statusKey] ?? \"IDLE\",\r\n\t\t\t\tphone: apiData[phoneKey] !== \"0\" ? apiData[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 = 1000; // 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\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.isHolding ? \"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.isMuted ? \"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\taudioRef.current = new Audio(incomingRingtone);\r\n\t\taudioRef.current.loop = true;\r\n\t\taudioRef.current.volume = 0.7;\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 = null;\r\n\t\t\t}\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\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\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(\r\n\t\t\t\t\t\tstate?.conferenceLine,\r\n\t\t\t\t\t\tdata?.conferencestatus,\r\n\t\t\t\t\t\tdata\r\n\t\t\t\t\t);\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}\r\n\r\n\t\t\t\t\tif (data.status === \"ONCALL\") {\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\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\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\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.isHolding ? \"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\tstate.isHolding && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\tstate.isHolding && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\" && !state.isHolding) ||\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.isHolding ?\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.isMuted ? \"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.isMuted && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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.isMuted && state.callData?.status?.toUpperCase() === \"ONCALL\" ?\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\" && !state.isMuted) ||\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}\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.isMuted ?\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, isMergeCall }: 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\tconst [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\tconst 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\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}}\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}}\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}}\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}}\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}}\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}\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}}\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\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"space-around\",\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=\"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={isMergeCall ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\tisMergeCall ?\r\n\t\t\t\t\t\t\t\t\t\t{ ...enabled, padding: \"0px 16px\" }\r\n\t\t\t\t\t\t\t\t\t:\t{ ...disabled, padding: \"0px 16px\" }\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\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={!isMergeCall || conferenceCallMerge}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each?.isMergeCall ? \"Merged\" : \"Merge\"}\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<Tooltip title={each.status !== \"HOLD\" ? \"Hold\" : \"Un Hold\"}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant={each.status === \"HOLD\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\teach.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"CONFERENCE\"\r\n\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t{ ...disabled }\r\n\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// each.status === \"IDLE\"\r\n\t\t\t\t\t\t\t\t\t{ ...outlined }\r\n\t\t\t\t\t\t\t\t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tif (each.status === \"HOLD\") {\r\n\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\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{conferenceCallHoldOrUnHold ?\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\tsx={{\r\n\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}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t: each.status === \"HOLD\" ?\r\n\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t:\t<Pause />}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t<Tooltip title={each.status !== \"MUTE\" ? \"Mute\" : \"Un Mute\"}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant={each.status === \"MUTE\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\teach.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"ONCALL\" ||\r\n\t\t\t\t\t\t\t\t\teach?.status === \"CONFERENCE\"\r\n\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t{ ...disabled }\r\n\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{ ...outlined }\r\n\t\t\t\t\t\t\t\t:\t{ ...disabled }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tif (each.status === \"MUTE\") {\r\n\t\t\t\t\t\t\t\t\tonMuteOrUnMuteConferenceCall(each, { isMute: false }, \"PLAYUSER\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tonMuteOrUnMuteConferenceCall(each, { isMute: true }, \"MUTEUSER\");\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"DISCONNECTED\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" ||\r\n\t\t\t\t\t\t\t\teach?.status === \"HOLD\" ||\r\n\t\t\t\t\t\t\t\tconferenceCallMuteOrUnMute\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{conferenceCallMuteOrUnMute ?\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\tsx={{\r\n\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}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t: each.status === \"MUTE\" ?\r\n\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t:\t<Mic />}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\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:\t<Button\r\n\t\t\t\t\t\t\tvariant={each?.isCallStart ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: \"none\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\tisHold: false,\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\tdisabled={\r\n\t\t\t\t\t\t\t\teach?.status === \"IDLE\" || each?.status === \"DISCONNECTED\" || conferenceCallEnd\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{conferenceCallEnd ?\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/>\r\n\t\t\t\t\t\t\t:\t<CallEnd />}\r\n\t\t\t\t\t\t</Button>\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\tconst isMergeCall = useMemo(() => {\r\n\t\treturn state?.conferenceLine?.some((each: any) => {\r\n\t\t\tif (each.line !== 1) {\r\n\t\t\t\treturn each.status === \"ONCALL\";\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}, [state.conferenceLine]);\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\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: \"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\r\n\t\t\t\t\t\t\t\t\t\t\teach={each}\r\n\t\t\t\t\t\t\t\t\t\t\tisMergeCall={isMergeCall}\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</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","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","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"],"mappings":"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","names":["IP","BASE_URL","WS_BASE_URL","VERSION","END_POINT","WS_END_POINT","STORAGE_KEY","SDKStateManager","__publicField","STORAGE_KEY","stored","parsedState","__spreadProps","__spreadValues","error","persistentState","listener","apiKey","tenantId","agentId","sdkConfig","initResult","_a","index","isHolding","isMuted","status","process","position","open","data","line","conferenceLineData","each","sdkStateManager","EventTrackerSDK","__publicField","config","__spreadValues","ticket","response","sdkStateManager","data","error","eventType","eventData","event","url","options","_a","fullUrl","maxRetries","attempt","delay","resolve","autoTrackConfig","target","formData","formFields","value","key","inputTimer","sessionStartTime","sessionDuration","navigation","timing","eventTracker","useCallback","useState","axios","_a","DEFAULT_TOKEN","sdkStateManager","REQUEST_TIMEOUT","getAuthToken","createAxiosInstance","_b","_c","_d","instance","axios","BASE_URL","config","token","error","response","endTime","startTime","originalRequest","axiosInstance","axios_default","useLogout","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","state","STORAGE_KEY","payload","axios_default","END_POINT","res","sdkStateManager","err","useCallback","useState","useEndCall","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","state","STORAGE_KEY","payload","axios_default","END_POINT","res","sdkStateManager","err","useCallback","useState","useClickToCall","loading","setLoading","useState","success","setSuccess","isError","setIsError","error","setError","data","setData","useCallback","_a","_b","_c","_d","_e","_f","_g","_h","_i","state","STORAGE_KEY","payload","axios_default","END_POINT","res","err","line_used","each","sdkStateManager","__spreadProps","__spreadValues","useState","useEffect","useGetCallerData","process_id","process_name","status","phone_number","agent_id","convox_id","sdkStateManager","initialCallData","callData","setCallData","useState","useEffect","useState","useEffect","useGetAuthorizationToken","token","setToken","useState","sdkStateManager","useEffect","memo","useCallback","CallEnd","Close","DragIndicator","Group","KeyboardArrowDown","Layers","Mic","MicOff","Pause","Pending","Phone","PlayArrow","SupportAgent","TransferWithinAStation","Upcoming","WifiCalling3","Box","Button","Chip","CircularProgress","Fade","IconButton","Menu","MenuItem","Paper","TextField","Tooltip","Typography","useTheme","useEffect","useRef","useState","useCallback","useRef","useState","useDraggable","initialPosition","onPositionChange","position","setPosition","isDragging","setIsDragging","dragRef","dragStart","elementStart","updatePosition","newPosition","element","rect","viewportWidth","viewportHeight","constrainedPosition","handleStart","clientX","clientY","handleMove","moveClientX","moveClientY","deltaX","deltaY","handleMouseMove","e","handleTouchMove","touch","handleEnd","handleMouseDown","handleTouchStart","useState","useEffect","useSDKState","state","setState","useState","sdkStateManager","useEffect","useCallback","useReducer","createContext","useContext","useState","Snackbar","Alert","jsx","jsxs","ToastContext","useToast","ctx","ToastProvider","children","open","setOpen","message","setMessage","severity","setSeverity","showToast","msg","sev","initialState","reducer","state","action","__spreadProps","__spreadValues","usePostRequest","props","onSuccess","onError","disabledSuccessToast","showToast","useToast","state","dispatch","useReducer","reducer","initialState","useCallback","url","payload","config","axios_default","res","_a","err","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","error","Call","CallEnd","CallSplit","Close","Mic","MicOff","Pause","PhoneDisabled","PlayArrow","SupportAgent","Box","Button","Dialog","IconButton","Paper","TextField","Typography","Autocomplete","Tooltip","useTheme","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","CircularProgress","useEffect","useMemo","useState","useTheme","useStyles","disabled","enabled","outlined","theme","useTheme","__spreadValues","styles_default","Fragment","jsx","jsxs","ConferenceTableRow","each","isMergeCall","_a","_b","_c","_d","_e","state","useSDKState","showToast","useToast","disabled","enabled","outlined","styles_default","theme","useTheme","conferenceCallStart","setConferenceCallStart","useState","conferenceCallMerge","setConferenceCallMerge","conferenceCallHoldOrUnHold","setConferenceCallHoldOrUnHold","conferenceCallMuteOrUnMute","setConferenceCallMuteOrUnMute","conferenceCallEnd","setConferenceCallEnd","onConferenceLineUpdate","line","data","sdkStateManager","__spreadValues","onConferenceCallStart","line_used","payload","axios_default","END_POINT","res","err","message","onMergeConferenceCall","onHoldOrUnHoldConferenceCall","type","onMuteOrUnMuteConferenceCall","onEndConferenceCall","TableRow","TableCell","Typography","Button","TextField","e","Box","Tooltip","__spreadProps","CircularProgress","Call","CallSplit","PlayArrow","Pause","MicOff","Mic","CallEnd","ConferenceDialog","conferenceCallEndAll","setConferenceCallEndAll","handleClose","onEndAllConferenceCalls","useMemo","Dialog","Paper","IconButton","Close","TableContainer","Table","TableHead","TableBody","PhoneDisabled","CallTransferDialog","open","_f","_g","_h","_i","_j","_k","_l","transferCall","usePostRequest","currentselecteTab","setCurrentselecteTab","getIdelAgentsList","idleAgentsList","isIdleAgentsListLoading","getProcessAndQueuesList","processAndQueuesList","isProcessAndQueuesListLoading","handleTransferCall","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","useEffect","process","index","SupportAgent","queue","agent","EndCallDispositionDialog","setOpen","onSubmitDisposition","formData","setFormData","dispositionOptions","followUpOptions","handleChange","field","value","prev","handleReset","Autocomplete","opt","_","val","params","ProcessorListDialog","processList","handleSelectedProcessor","CallHistoryDialog","Fragment","jsx","jsxs","getCombineConfrenceData","conferenceData","apiData","data","item","_a","_b","_c","statusKey","__spreadProps","__spreadValues","phoneKey","formatDuration","seconds","mins","secs","CallControls","onDataChange","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","theme","useTheme","state","useSDKState","showToast","useToast","disabled","enabled","outlined","styles_default","webSocketRef","useRef","audioRef","reconnectTimeoutRef","pingIntervalRef","reconnectAttemptsRef","maxReconnectAttempts","baseReconnectDelay","maxReconnectDelay","anchorEl","setAnchorEl","useState","showIframe","setShowIframe","statusAnchorEl","setStatusAnchorEl","dialerAnchorEl","setDialerAnchorEl","openCallDisposition","setOpenCallDisposition","openProcessorDialog","setOpenProcessorDialog","openCallHistoryDialog","setOpenCallHistoryDialog","processList","setProcessList","phoneNumber","setPhoneNumber","callDuration","setCallDuration","position","isDragging","dragRef","handleMouseDown","handleTouchStart","useDraggable","newPosition","sdkStateManager","iframePosition","iframeIsDragging","iframeDragRef","iframeHandleMouseDown","iframeHandleTouchStart","clickToCall","clickToCallLoading","usePostRequest","holdOrUnHold","holdOrUnHoldLoading","error","muteOrUnMute","muteOrUnMuteLoading","readyAgentStatus","agentReadyLoading","updateAgentStatus","isLoading","endCall","endCallLoading","handleCloseQueueCounts","handleOpenDialer","event","handleCloseDialer","handleOpenAgentStatus","handleCloseAgentStatus","handleAgentReady","payload","END_POINT","handleUpdateAgentStatus","status","handleStartCall","number","handleHoldToggle","handleMuteToggle","handleEndCall","useEffect","handleBeforeUnload","e","interval","elapsed","incoming_default","process_id","process_name","phone_number","agent_id","convox_id","axios_default","res","err","connectWebSocket","WS_END_POINT","confrence","delay","Box","ProcessorListDialog","Fade","Paper","IconButton","DragIndicator","Tooltip","WifiCalling3","Typography","Chip","CircularProgress","KeyboardArrowDown","Button","SupportAgent","PlayArrow","Pause","MicOff","Mic","TransferWithinAStation","Group","CallEnd","Close","IP","Menu","TextField","Phone","MenuItem","Layers","Pending","Upcoming","ConferenceDialog","CallTransferDialog","EndCallDispositionDialog","CallHistoryDialog","memo","jsx","SDKProvider","memo","children","ToastProvider","jsx","CallControlPanel","memo","onDataChange","handleDataChange","useCallback","data","error","SDKProvider","CallControls","initSDK","apiKey","tenantId","agentId","sdkConfig","initResult","eventTracker","BASE_URL","sdkStateManager","error","getSDKVersion","isSDKInitialized"]}
|