ahs-cti 0.0.2-beta.8 → 0.0.2

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.
Files changed (58) hide show
  1. package/README.md +425 -294
  2. package/dist/agentDetailReport-XSBMOUMW.mjs +12 -0
  3. package/dist/agentDetailReport-XSBMOUMW.mjs.map +1 -0
  4. package/dist/agentPerformanceReport-UT6QZWYD.mjs +533 -0
  5. package/dist/agentPerformanceReport-UT6QZWYD.mjs.map +1 -0
  6. package/dist/auditReport-R67BYA4Z.mjs +15 -0
  7. package/dist/auditReport-R67BYA4Z.mjs.map +1 -0
  8. package/dist/callHistory-PHGY224F.mjs +805 -0
  9. package/dist/callHistory-PHGY224F.mjs.map +1 -0
  10. package/dist/campaigns-JSMYHHDF.mjs +3049 -0
  11. package/dist/campaigns-JSMYHHDF.mjs.map +1 -0
  12. package/dist/caroQualityAuditDashboard-7X44HRZL.mjs +66 -0
  13. package/dist/caroQualityAuditDashboard-7X44HRZL.mjs.map +1 -0
  14. package/dist/caroVoiceAI-OZAB7LK4.mjs +21 -0
  15. package/dist/caroVoiceAI-OZAB7LK4.mjs.map +1 -0
  16. package/dist/cdrReport-44LN5VUX.mjs +819 -0
  17. package/dist/cdrReport-44LN5VUX.mjs.map +1 -0
  18. package/dist/chunk-6ICPXSN6.mjs +61 -0
  19. package/dist/chunk-6ICPXSN6.mjs.map +1 -0
  20. package/dist/chunk-CXULBAK6.mjs +493 -0
  21. package/dist/chunk-CXULBAK6.mjs.map +1 -0
  22. package/dist/chunk-FVXHNBYV.mjs +82 -0
  23. package/dist/chunk-FVXHNBYV.mjs.map +1 -0
  24. package/dist/chunk-G6KDIN5W.mjs +749 -0
  25. package/dist/chunk-G6KDIN5W.mjs.map +1 -0
  26. package/dist/chunk-GGACEO3I.mjs +180 -0
  27. package/dist/chunk-GGACEO3I.mjs.map +1 -0
  28. package/dist/chunk-HBR2JS4C.mjs +95 -0
  29. package/dist/chunk-HBR2JS4C.mjs.map +1 -0
  30. package/dist/chunk-HRM6S6J2.mjs +61 -0
  31. package/dist/chunk-HRM6S6J2.mjs.map +1 -0
  32. package/dist/chunk-JOZ4YQMR.mjs +116 -0
  33. package/dist/chunk-JOZ4YQMR.mjs.map +1 -0
  34. package/dist/chunk-O2XGWZLT.mjs +1060 -0
  35. package/dist/chunk-O2XGWZLT.mjs.map +1 -0
  36. package/dist/chunk-RZZQ42MG.mjs +115 -0
  37. package/dist/chunk-RZZQ42MG.mjs.map +1 -0
  38. package/dist/chunk-UZF5Q3GR.mjs +678 -0
  39. package/dist/chunk-UZF5Q3GR.mjs.map +1 -0
  40. package/dist/chunk-VQCHBU2Q.mjs +27 -0
  41. package/dist/chunk-VQCHBU2Q.mjs.map +1 -0
  42. package/dist/chunk-WWWM33FY.mjs +57 -0
  43. package/dist/chunk-WWWM33FY.mjs.map +1 -0
  44. package/dist/index.d.mts +795 -112
  45. package/dist/index.d.ts +796 -112
  46. package/dist/index.js +13690 -2103
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +2335 -2250
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/liveStatus-AHKS4XLW.mjs +1077 -0
  51. package/dist/liveStatus-AHKS4XLW.mjs.map +1 -0
  52. package/dist/loginReport-7GBMZP55.mjs +828 -0
  53. package/dist/loginReport-7GBMZP55.mjs.map +1 -0
  54. package/dist/managementDashboard-TYON77NW.mjs +529 -0
  55. package/dist/managementDashboard-TYON77NW.mjs.map +1 -0
  56. package/dist/qualityAuditDashboard-AGJH5VVN.mjs +66 -0
  57. package/dist/qualityAuditDashboard-AGJH5VVN.mjs.map +1 -0
  58. package/package.json +16 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/sdk-state.ts","../call-control-sdk/lib/services/endPoint.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/services/usbLight.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/services/axios.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/components/dialog.tsx","../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/styles.ts","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/services/micController.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/components/SDKProvider.tsx","../call-control-sdk/index.ts"],"sourcesContent":["import { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface EventTrackerConfig {\r\n\tapiKey: string;\r\n\ttenantId: string;\r\n\tagentId: string;\r\n\tpassword?: string;\r\n\tbaseUrl?: string;\r\n\r\n\tretryAttempts?: number;\r\n\tqueueSize?: number;\r\n\tflushInterval?: number;\r\n}\r\n\r\nexport interface EventData {\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface EventTrackerInstance {\r\n\tinit(config: EventTrackerConfig): Promise<string | null>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n}\r\n\r\nclass EventTrackerSDK implements EventTrackerInstance {\r\n\tprivate config: EventTrackerConfig | null = null;\r\n\tprivate ticketId: string | null = null;\r\n\tprivate baseUrl: string = \"\";\r\n\tprivate flushTimer: ReturnType<typeof setInterval> | null = null;\r\n\r\n\tasync init(config: EventTrackerConfig): Promise<any | null> {\r\n\t\tthis.config = {\r\n\t\t\tretryAttempts: 3,\r\n\t\t\tqueueSize: 100,\r\n\t\t\tflushInterval: 5000,\r\n\t\t\t...config,\r\n\t\t};\r\n\r\n\t\tthis.baseUrl = config.baseUrl || (typeof window !== \"undefined\" ? window.location.origin : \"\");\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\treturn ticket;\r\n\t}\r\n\r\n\tisInitialized(): boolean {\r\n\t\treturn this.config !== null && this.ticketId !== null;\r\n\t}\r\n\r\n\tgetConfig(): EventTrackerConfig | null {\r\n\t\treturn this.config;\r\n\t}\r\n\r\n\tgetTicketId(): string | null {\r\n\t\treturn this.ticketId;\r\n\t}\r\n\r\n\tprivate async createTicket(): Promise<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\t\t\tconst response = await this.makeRequest(\"/api/v1/auth/login\", {\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tuserId: this.config.agentId,\r\n\t\t\t\t\t// sessionId: this.config.sessionId,\r\n\t\t\t\t\tpassword: this.config.password\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\t// if (!response.ok) {\r\n\t\t\t// \tsdkStateManager.setInitCheck();\r\n\t\t\t// \tthrow new Error(`Failed to initialize: ${response.status} ${response.statusText}`);\r\n\t\t\t// }\r\n\r\n\t\t\tconst data = await response.json();\r\n\t\t\tthis.ticketId = data.ticketId;\r\n\r\n\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async makeRequest(url: string, options: RequestInit): Promise<Response> {\r\n\t\tconst fullUrl = `${this.baseUrl}${url}`;\r\n\t\tconst maxRetries = this.config?.retryAttempts || 3;\r\n\r\n\t\tfor (let attempt = 1; attempt <= maxRetries; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await fetch(fullUrl, options);\r\n\t\t\t\treturn response;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tif (attempt === maxRetries) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\r\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Max retries exceeded\");\r\n\t}\r\n\r\n\tprivate startPeriodicFlush(): void {\r\n\t\tif (this.flushTimer) {\r\n\t\t\tclearInterval(this.flushTimer);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport const eventTracker = new EventTrackerSDK();\r\n\r\nif (typeof window !== \"undefined\") {\r\n\t(window as any).EventTracker = eventTracker;\r\n}\r\n","import { getItem, removeItem, setItem } from \"@react-solutions/vault\";\r\nimport type { SDKState, CallData, ConferenceLineTypes, SDKConfig, InitSDKRes, URLConfig } 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\tdisabledMoreOptionsButton: false,\r\n\t\t\t\tenableSmsServices: false,\r\n\t\t\t\tenableQueueName: 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\turlConfig: {\r\n\t\t\t\tbaseURL: \"\",\r\n\t\t\t\tiframeURL: \"\",\r\n\t\t\t\tiframeAPIURL: \"\",\r\n\t\t\t\twebSocketURL: \"\",\r\n\t\t\t\tid: \"\",\r\n\t\t\t\tpassword: \"\",\r\n\t\t\t},\r\n\t\t\tcallStartTime: null,\r\n\t\t\tcontrolPanelPosition: { x: 10, y: 10 },\r\n\t\t\tiframePosition: { x: window.screen?.availWidth - 460, y: window.screen?.height - 580 },\r\n\t\t\tcallData: {\r\n\t\t\t\tagent_id: \"\",\r\n\t\t\t\tqueue_name: \"\",\r\n\t\t\t\thold: 0,\r\n\t\t\t\tmute: 0,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tevent_time: \"\",\r\n\t\t\t\tphone_number: \"\",\r\n\t\t\t},\r\n\t\t\tconferenceLine: [\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 1,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 2,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 3,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 4,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tline: 5,\r\n\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\tisMute: false,\r\n\t\t\t\t\tisHold: false,\r\n\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\thold: 0,\r\n\t\t\tmute: 0,\r\n\t\t\tagentStatus: \"\",\r\n\t\t};\r\n\t}\r\n\r\n\tprivate loadFromStorage(): void {\r\n\t\ttry {\r\n\t\t\tconst stored = <SDKState>getItem(this.STORAGE_KEY);\r\n\t\t\tif (stored) {\r\n\t\t\t\tconst parsedState = stored;\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\tdisabledMoreOptionsButton: false,\r\n\t\t\t\t\t\tenableSmsServices: false,\r\n\t\t\t\t\t\tenableQueueName: 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\turlConfig: parsedState.urlConfig || {\r\n\t\t\t\t\t\tid: \"\",\r\n\t\t\t\t\t\tbaseURL: \"\",\r\n\t\t\t\t\t\tiframeURL: \"\",\r\n\t\t\t\t\t\tiframeAPIURL: \"\",\r\n\t\t\t\t\t\twebSocketURL: \"\",\r\n\t\t\t\t\t\tpassword: \"\",\r\n\t\t\t\t\t},\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 || {\r\n\t\t\t\t\t\tx: window.screen?.availWidth - 460,\r\n\t\t\t\t\t\ty: window.screen?.height - 580,\r\n\t\t\t\t\t},\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\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\tagentStatus: parsedState.agentStatus,\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:\", error);\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\turlConfig: this.state.urlConfig,\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\tagentStatus: this.state.agentStatus,\r\n\t\t\t};\r\n\t\t\tsetItem(this.STORAGE_KEY, persistentState);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn(\"Failed to save SDK state:\", 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\turlConfig?: URLConfig,\r\n\t\tinitResult?: InitSDKRes,\r\n\t\tsdkConfig?: SDKConfig,\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\tenableSmsServices: false,\r\n\t\t\t\tdisabledMoreOptionsButton: false,\r\n\t\t\t\tenableQueueName: 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.urlConfig = {\r\n\t\t\t\tbaseURL: urlConfig?.baseURL || \"\",\r\n\t\t\t\tiframeURL: urlConfig?.iframeURL || \"\",\r\n\t\t\t\tiframeAPIURL: urlConfig?.iframeAPIURL || \"\",\r\n\t\t\t\twebSocketURL: urlConfig?.webSocketURL || \"\",\r\n\t\t\t\tid: urlConfig?.id || \"\",\r\n\t\t\t\tpassword: urlConfig?.password || \"\",\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\t// public 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\t// public 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 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.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.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 setAgentStatus(status: string): void {\r\n\t\tthis.state.agentStatus = status;\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\tthis.state.conferenceLine = this.getInitialState().conferenceLine;\r\n\t\t}\r\n\r\n\t\tconst conferenceLineData = this.state.conferenceLine?.map((each: ConferenceLineTypes) => {\r\n\t\t\tif (each.line === line.line) {\r\n\t\t\t\treturn line;\r\n\t\t\t}\r\n\t\t\treturn each;\r\n\t\t});\r\n\t\tthis.state.conferenceLine = conferenceLineData;\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic resetConferenceLines(): void {\r\n\t\tthis.state.conferenceLine = [\r\n\t\t\t{\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 2,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 3,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 4,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tline: 5,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\ttype: \"\",\r\n\t\t\t\tphone: \"\",\r\n\t\t\t\tisMute: false,\r\n\t\t\t\tisHold: false,\r\n\t\t\t\tisCallStart: false,\r\n\t\t\t\tisMergeCall: false,\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tthis.saveToStorage();\r\n\t\tthis.notifyListeners();\r\n\t}\r\n\r\n\tpublic clearStorageAndReset(): void {\r\n\t\ttry {\r\n\t\t\tremoveItem(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:\", 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","\r\n\r\nexport const IP = \"192.168.100.254\";\r\n\r\nexport const IFRAME_IP = \"10.10.95.25\"\r\n// export const IFRAME_URL = `https://${IFRAME_IP}:8089`;\r\n// export const IFRAME_API_URL = `https://${IFRAME_IP}:8000`;\r\n\r\n\r\n// export const BASE_URL = `http://${IP}:8095`;\r\n// export const WS_BASE_URL = `ws://${IP}:8095`;\r\n\r\n// export const IFRAME_URL = sdkStateManager?.getState()?.urlConfig?.iframeURL\r\n// export const IFRAME_API_URL = sdkStateManager?.getState()?.urlConfig?.iframeAPIURL\r\nexport const BASE_URL = \"\";\r\n// export const WS_BASE_URL = sdkStateManager?.getState()?.urlConfig?.webSocketURL;\r\n\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\tCONFERENCE_CALL_TRANSFER: `${BASE_URL}${VERSION.v1}/cti/calls/conference/transfer?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\tBREAKS_LIST: `${BASE_URL}${VERSION.v1}/cti/breaks`,\r\n\tTRANSFER_TO_DETAILS: `${BASE_URL}${VERSION.v1}/cti/transfer-to-details?provider=convox`,\r\n\tSEND_NOTIFICATIONS: `${BASE_URL}${VERSION.v1}/cti/notifications/send`,\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\tDISPOSITIONS: `${BASE_URL}${VERSION.v1}/cti/calls/dispositions`,\r\n\tHOSPITALS_SERVICES: `${BASE_URL}${VERSION.v1}/cti/hospital/services`,\r\n\tBLIEND_TRANSFER: `${BASE_URL}${VERSION.v1}/cti/calls/blind_transfer?provider=convox`,\r\n};\r\n\r\n// export 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 { 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\nimport { getItem, removeItem } from \"@react-solutions/vault\";\r\nimport { USB_LIGHT_ALL_OFF, USB_LIGHT_REQUEST } from \"../services/usbLight\";\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\tUSB_LIGHT_REQUEST(USB_LIGHT_ALL_OFF());\r\n\t\tconst state = getItem(STORAGE_KEY) as any;\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\t// return 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\tremoveItem(STORAGE_KEY);\r\n\r\n\t\t\t\t// setData(res?.data);\r\n\r\n\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t// return 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// \t// clearing the stored agent data when trying to logout when user not logged in\r\n\t\t\t// \tif (err?.response?.data?.data?.clearAgentData) {\r\n\t\t\t// \t\tsdkStateManager.clearStorageAndReset();\r\n\t\t\t// \t\tremoveItem(STORAGE_KEY);\r\n\t\t\t// \t}\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","const USB_LIGHT_BASE_URL = `http://localhost:5000`;\r\n\r\nexport const USB_LIGHT_ON = (color: \"red\" | \"green\" | \"yellow\") => {\r\n\treturn `${USB_LIGHT_BASE_URL}/light/${color}/on`;\r\n};\r\n\r\nexport const USB_LIGHT_FLASH = (color: \"red\" | \"green\" | \"yellow\", number: 1 | 2 | 3) => {\r\n\treturn `${USB_LIGHT_BASE_URL}/light/${color}/flash${number}`;\r\n};\r\n\r\nexport const USB_LIGHT_OFF = () => {\r\n\treturn `${USB_LIGHT_BASE_URL}/light/off`;\r\n};\r\n\r\nexport const USB_BUZZER_ON = () => {\r\n\treturn `${USB_LIGHT_BASE_URL}/buzzer/on`;\r\n};\r\n\r\nexport const USB_BUZZER_OFF = () => {\r\n\treturn `${USB_LIGHT_BASE_URL}/buzzer/off`;\r\n};\r\n\r\nexport const USB_LIGHT_ALL_OFF = () => {\r\n\treturn `${USB_LIGHT_BASE_URL}/all/off`;\r\n};\r\n\r\nexport const USB_LIGHT_STATUS = () => {\r\n\treturn `${USB_LIGHT_BASE_URL}/status`;\r\n};\r\n\r\nexport const USB_LIGHT_REQUEST = (url: string, init?: RequestInit) => {\r\n\treturn fetch(url, init);\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\nimport { getItem } from \"@react-solutions/vault\";\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\tselected_break?: boolean;\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\tisBreak?: boolean;\r\n\t\t\tpatientLog?: any;\r\n\t\t}) => {\r\n\t\t\tconst state = getItem(STORAGE_KEY) as any;\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\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\r\n\t\t\t\tpatient_enquiry: data?.patientLog ?? null,\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\tparams: {\r\n\t\t\t\t\t\tisBreak: data?.isBreak ?? false,\r\n\t\t\t\t\t},\r\n\t\t\t\t})\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsdkStateManager.endCall();\r\n\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn {\r\n\t\thandleEndCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import 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: sdkStateManager.getState()?.urlConfig?.baseURL,\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}\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\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\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getItem } from \"@react-solutions/vault\";\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 = getItem(STORAGE_KEY) as any;\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (state?.callData?.status === \"IDLE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tuserId: state?.agentId,\r\n\t\t\t\tphone_number: data?.mobileNumber,\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CLICK_TO_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t} else if (state?.callData?.status === \"ONCALL\") {\r\n\t\t\tconst line_used = state?.conferenceLine\r\n\t\t\t\t?.filter((each: any) => each.line !== 1)\r\n\t\t\t\t?.find((each: any) => each.status === \"IDLE\" && !each?.isCallStart);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t\tline_used: String(line_used.line),\r\n\t\t\t\tthirdparty_no: data?.mobileNumber,\r\n\t\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\t// sdkStateManager.setConferenceLine({\r\n\t\t\t\t\t// \t...line_used,\r\n\t\t\t\t\t// \tisCallStart: true,\r\n\t\t\t\t\t// \tstatus: \"ONCALL\",\r\n\t\t\t\t\t// \tphone: data?.mobileNumber,\r\n\t\t\t\t\t// });\r\n\r\n\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\talert(\"Agent is not ready\");\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\thandleStartCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { CallData } from \"../../types\";\r\n\r\nexport const useGetCallerData = (): CallData => {\r\n\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\tsdkStateManager.getState().callData;\r\n\tconst initialCallData = {\r\n\t\tphone_number,\r\n\t\tstatus,\r\n\t\tcallReferenceId: convox_id,\r\n\t\tagent_id,\r\n\t\tprocess_id,\r\n\t\tprocess_name,\r\n\t};\r\n\tconst [callData, setCallData] = useState<CallData>(initialCallData);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, convox_id } =\r\n\t\t\t\tsdkStateManager.getState().callData;\r\n\t\t\tconst currentCallData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: convox_id,\r\n\t\t\t\tagent_id,\r\n\t\t\t\tprocess_id,\r\n\t\t\t\tprocess_name,\r\n\t\t\t};\r\n\t\t\tsetCallData(currentCallData);\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn callData;\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport const useGetAuthorizationToken = () => {\r\n\tconst [token, setToken] = useState<string | undefined>(sdkStateManager.getSdkAuthToken());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetToken(sdkStateManager.getSdkAuthToken());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn token;\r\n};\r\n","import { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\r\n\tconst handleDataChange = useCallback(\r\n\t\t(data: any) => {\r\n\t\t\ttry {\r\n\t\t\t\tif (onDataChange && typeof onDataChange === \"function\") {\r\n\t\t\t\t\tonDataChange(data);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(\"Error in CallControlPanel data change handler:\", error);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onDataChange]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<SDKProvider>\r\n\t\t\t<CallControls onDataChange={handleDataChange} />\r\n\t\t</SDKProvider>\r\n\t);\r\n});\r\n\r\nCallControlPanel.displayName = \"CallControlPanel\";\r\n","import {\r\n\tCallEnd,\r\n\tClose,\r\n\tDragIndicator,\r\n\tGroup,\r\n\tKeyboardArrowDown,\r\n\tLayers,\r\n\tMic,\r\n\tMicOff,\r\n\tPause,\r\n\tPending,\r\n\tPhone,\r\n\tPlayArrow,\r\n\tSupportAgent,\r\n\tTransferWithinAStation,\r\n\tUpcoming,\r\n\tWifiCalling3,\r\n\tSendRounded,\r\n\tSmsSharp,\r\n\tMoreVert,\r\n} from \"@mui/icons-material\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tChip,\r\n\tCircularProgress,\r\n\tFade,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTooltip,\r\n\tTypography,\r\n\tuseTheme,\r\n} from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport {\r\n\tCallHistoryDialog,\r\n\tCallTransferDialog,\r\n\tConferenceDialog,\r\n\tEndCallDispositionDialog,\r\n\tProcessorListDialog,\r\n} from \"./dialog\";\r\n\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { useDraggable } from \"../hooks/useDraggable\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\n\r\nimport { END_POINT, STORAGE_KEY } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createMicController, MicController } from \"../services/micController\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { CallControlPanelProps, CallStatus } from \"../../types\";\r\n\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\r\nimport { getItem } from \"@react-solutions/vault\";\r\nimport { USB_LIGHT_FLASH, USB_LIGHT_ON, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\n\r\nconst getCombineConfrenceData = (localState: any, apiData: any) => {\r\n\tconst localConfrenceData = localState?.conferenceLine;\r\n\tconst apiConferenceData = apiData?.conferencestatus;\r\n\tconst updatedConferenceData = localConfrenceData.map((item: any) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: apiConferenceData[statusKey] ?? localState?.callData?.status,\r\n\t\t\t\tphone: localState?.callData?.phone_number ?? \"\",\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\tconst phoneKey = `line_${item.line}_phonenumber`;\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: apiConferenceData[statusKey] ?? item.status,\r\n\t\t\t\tphone:\r\n\t\t\t\t\tapiConferenceData[phoneKey] === null || apiConferenceData[phoneKey] === \"0\" ?\r\n\t\t\t\t\t\titem.phone\r\n\t\t\t\t\t:\tapiConferenceData[phoneKey],\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\treturn updatedConferenceData;\r\n};\r\n\r\nconst formatDuration = (seconds: number): string => {\r\n\tconst mins = Math.floor(seconds / 60);\r\n\tconst secs = seconds % 60;\r\n\treturn `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}`;\r\n};\r\n\r\nexport function CallControls({ onDataChange }: CallControlPanelProps) {\r\n\tconst theme = useTheme();\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst { disabled, enabled, outlined } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst micRef = useRef<MicController | null>(null);\r\n\tconst webSocketRef = useRef<WebSocket | null>(null);\r\n\tconst audioRef = useRef<HTMLAudioElement | null>(null);\r\n\tconst reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\tconst pingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\tconst reconnectAttemptsRef = useRef<number>(0);\r\n\tconst hasFlashedRef = useRef(false);\r\n\tconst lastEventTimeRef = useRef<string | null>(null);\r\n\r\n\tconst maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000;\r\n\tconst maxReconnectDelay = 30000;\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [ambulanceAnchorEl, setAmbulanceAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [moreOptionsAnchorEl, setMoreOptionsAnchorEl] = useState<null | HTMLElement>(null);\r\n\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState<boolean>(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState<boolean>(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState<boolean>(false);\r\n\r\n\tconst [processList, setProcessList] = useState<\r\n\t\t| {\r\n\t\t\t\tprocess_id: number;\r\n\t\t\t\tprocess_name: string;\r\n\t\t }[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\tconst [breaksList, setBreaksList] = useState<\r\n\t\t| {\r\n\t\t\t\ttype: string;\r\n\t\t\t\tduration: string;\r\n\t\t\t\tdescription: string;\r\n\t\t\t\tactive: boolean;\r\n\t\t }[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState<number>(0);\r\n\tconst [callWrapuptime, setCallWrapuptime] = useState<number | null>(null);\r\n\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\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\r\n\tconst [readyAgentStatus, { isLoading: agentReadyLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\trefno?: string;\r\n\t\tuserId: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setAgentStatus(\"\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst [updateAgentStatus, { isLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tbreak_type: string;\r\n\t\tuserId: string;\r\n\t}>();\r\n\r\n\tconst [sendNotification] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\ttype: string;\r\n\t}>();\r\n\r\n\tconst [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdisposition: string;\r\n\t\tuserId: string;\r\n\t\tprocessid: string;\r\n\t\tmobile_number: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: string;\r\n\t\tcallback_mins: string;\r\n\t\trefno?: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.endCall();\r\n\t\t\tsetOpenCallDisposition(false);\r\n\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t},\r\n\t});\r\n\r\n\tconst handleCloseQueueCounts = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenDialer = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetShowIframe(true);\r\n\t\tsetDialerAnchorEl(event.currentTarget);\r\n\t};\r\n\tconst handleOpenAbulanceServices = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetAmbulanceAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleOpenMoreOptions = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetMoreOptionsAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tsetDialerAnchorEl(null);\r\n\t};\r\n\tconst handleCloseAmbulance = () => {\r\n\t\tsetAmbulanceAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleCloseMoreOptions = () => {\r\n\t\tsetMoreOptionsAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenAgentStatus = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetStatusAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseAgentStatus = () => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleAgentReady = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"READYAGENT\",\r\n\t\t\tuserId: 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).then(() => {\r\n\t\t\tsdkStateManager.setAgentStatus(status);\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleStartCall = (number: string) => {\r\n\t\tif (number.length !== 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else if (!/^\\d+$/.test(number)) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else {\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"CALL\",\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuserId: state.agentId,\r\n\t\t\t};\r\n\r\n\t\t\tclickToCall(END_POINT.CLICK_TO_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuserId: state.agentId,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.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\tselected_break?: boolean;\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\t\tparams: {\r\n\t\t\t\tisBreak: data?.selected_break ?? false,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n\t\t\te.preventDefault();\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"beforeunload\", handleBeforeUnload);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"beforeunload\", handleBeforeUnload);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst mic = createMicController();\r\n\t\tmicRef.current = mic;\r\n\r\n\t\tmic.start().catch((err) => {\r\n\t\t\tconsole.error(\"Failed to start mic:\", err);\r\n\t\t});\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tconst fullState = getItem(STORAGE_KEY) as any;\r\n\t\t\tconst key = event.key?.toLowerCase();\r\n\r\n\t\t\tif (!event.altKey || fullState?.callData?.status !== CallStatus.ONCALL) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"m\" && String(fullState?.callData?.mute) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tmicRef.current?.mute();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.MUTE,\r\n\t\t\t\t\tuserId: fullState.agentId,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"u\" && String(fullState?.callData?.mute) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNMUTE,\r\n\t\t\t\t\tuserId: fullState.agentId,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t\tmicRef.current?.unmute();\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"h\" && String(fullState?.callData?.hold) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.HOLD,\r\n\t\t\t\t\tuserId: fullState.agentId,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"r\" && String(fullState?.callData?.hold) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNHOLD,\r\n\t\t\t\t\tuserId: fullState.agentId,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet interval: ReturnType<typeof setInterval>;\r\n\t\tlet wrapUpinterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === CallStatus.ONCALL) {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = 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\tif (\r\n\t\t\tstate.callData.status &&\r\n\t\t\tstate.callData.status === CallStatus.WRAPUP &&\r\n\t\t\tcallWrapuptime !== null\r\n\t\t) {\r\n\t\t\twrapUpinterval = setInterval(() => {\r\n\t\t\t\tsetCallWrapuptime((prevTime) => {\r\n\t\t\t\t\tif (prevTime === null || prevTime <= 1) {\r\n\t\t\t\t\t\tclearInterval(wrapUpinterval);\r\n\t\t\t\t\t\thandleEndCall({\r\n\t\t\t\t\t\t\tdisposition: { label: \"Resolved\", value: \"AUTO_WRAPUP\" },\r\n\t\t\t\t\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\t\t\t\t\tcallbackDate: \"\",\r\n\t\t\t\t\t\t\tcallbackHrs: \"\",\r\n\t\t\t\t\t\t\tcallbackMins: \"\",\r\n\t\t\t\t\t\t\tselected_break: false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn prevTime - 1;\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t\tif (wrapUpinterval) clearInterval(wrapUpinterval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\tuseEffect(() => {\r\n\t\tcreateAudioElement()\r\n\t\t\t.then((audio) => {\r\n\t\t\t\taudioRef.current = audio;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"Failed to load audio element:\", error);\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tif (audioRef.current) {\r\n\t\t\t\taudioRef.current.pause();\r\n\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\taudioRef.current.src = \"\"; // Clear source\r\n\t\t\t\taudioRef.current = null;\r\n\t\t\t}\r\n\t\t\t// Cleanup blob URLs\r\n\t\t\tcleanupAudioResources();\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (onDataChange && state.callData) {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, 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\t// if (res && res.data?.data && res?.data?.data?.length > 1) {\r\n\t\t\t\t\t// \tsetProcessList(res.data.data);\r\n\t\t\t\t\t// \tsetOpenProcessorDialog(true);\r\n\t\t\t\t\t// } else {\r\n\t\t\t\t\t\tconst data = {\r\n\t\t\t\t\t\t\"process_id\": 101,\r\n\t\t\t\t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsetProcessList([data]);\r\n\t\t\t\t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t\t\t\t// setOpenProcessorDialog(false);\r\n\t\t\t\t\t// }\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(END_POINT.BREAKS_LIST)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res && res.data?.data && res?.data?.data?.length) {\r\n\t\t\t\t\t\tsetBreaksList(res.data.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t}\r\n\t}, [state.agentId]);\r\n\r\n\tconst connectWebSocket = () => {\r\n\t\tif (!state.agentId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\treconnectTimeoutRef.current = null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\twebSocketRef.current = new WebSocket(`${state.urlConfig?.webSocketURL}?agent_id=${state.urlConfig?.id}&token=${state.authorization?.accessToken}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t}\r\n\t\t\t\tpingIntervalRef.current = setInterval(() => {\r\n\t\t\t\t\tif (webSocketRef.current && webSocketRef.current.readyState === WebSocket.OPEN) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tconsole.error(\"Failed to send ping:\", error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 30000);\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onmessage = (event) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = JSON.parse(event.data);\r\n\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst sdkState = getItem(STORAGE_KEY) as any;\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(sdkState, data);\r\n\t\t\t\t\t// console.log( \"📊 Parsed JSON:\", data);\r\n\t\t\t\t\tconst callData = {\r\n\t\t\t\t\t\tagent_id: data?.agent_id,\r\n\t\t\t\t\t\tstatus: data?.status,\r\n\t\t\t\t\t\ttype: data?.type,\r\n\t\t\t\t\t\tevent_time: data?.event_time,\r\n\t\t\t\t\t\tphone_number: data?.phone_number,\r\n\t\t\t\t\t\tconvox_id: data?.convox_id,\r\n\t\t\t\t\t\tprocess_id: data?.process_id,\r\n\t\t\t\t\t\tprocess_name: data?.process_name,\r\n\t\t\t\t\t\thold: data?.hold,\r\n\t\t\t\t\t\tmute: data?.mute,\r\n\t\t\t\t\t\tmode: data?.mode,\r\n\t\t\t\t\t\tqueue_name: data?.queue_name,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tsdkStateManager.updateCallData(callData);\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\r\n\t\t\t\t\tif ([CallStatus.RINGING, CallStatus.DIALING].includes(data.status as CallStatus)) {\r\n\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\tsetCallWrapuptime(sdkState?.sdkConfig?.auto_wrapup_time ?? null);\r\n\t\t\t\t\t\tsdkStateManager.updateConferenceData([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 1,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 2,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 3,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 4,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 5,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\r\n\t\t\t\t\t\tif (data?.mode !== \"manual\" && audioRef.current && state?.sdkConfig?.enableRingtone) {\r\n\t\t\t\t\t\t\taudioRef.current.play().catch((error) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Failed to play ringtone:\", error);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (audioRef.current) {\r\n\t\t\t\t\t\t\taudioRef.current.pause();\r\n\t\t\t\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === CallStatus.IDLE) {\r\n\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_ON(\"green\"));\r\n\t\t\t\t\t} else if (data?.mute !== 1 && data?.hold !== 1 && data.status === CallStatus.ONCALL) {\r\n\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_ON(\"red\"));\r\n\t\t\t\t\t\tsdkStateManager.startCall();\r\n\r\n\t\t\t\t\t\tif (!showIframe) {\r\n\t\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if ((data?.mute === 1 || data?.hold === 1) && data.status === CallStatus.ONCALL) {\r\n\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t} else if (data.status === CallStatus.BREAK) {\r\n\t\t\t\t\t\tconst breakTime = sdkState?.sdkConfig?.break_time;\r\n\t\t\t\t\t\tconst eventTime = data?.event_time ?? null;\r\n\r\n\t\t\t\t\t\tif (eventTime !== lastEventTimeRef.current) {\r\n\t\t\t\t\t\t\thasFlashedRef.current = false;\r\n\t\t\t\t\t\t\tlastEventTimeRef.current = eventTime;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet isOverLimit = false;\r\n\t\t\t\t\t\tif (breakTime && eventTime) {\r\n\t\t\t\t\t\t\tconst differenceInMinutes =\r\n\t\t\t\t\t\t\t\t(new Date().getTime() - new Date(eventTime).getTime()) / 60000;\r\n\r\n\t\t\t\t\t\t\tif (Number(differenceInMinutes.toFixed(0)) >= Number(breakTime)) {\r\n\t\t\t\t\t\t\t\tisOverLimit = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isOverLimit) {\r\n\t\t\t\t\t\t\tif (!hasFlashedRef.current) {\r\n\t\t\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"yellow\", 1));\r\n\t\t\t\t\t\t\t\thasFlashedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_ON(\"yellow\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (data.status === CallStatus.WRAPUP) {\r\n\t\t\t\t\t\tUSB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"green\", 1));\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.error(\"📨 Raw message:\", event.data);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onclose = (event) => {\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconsole.warn(\r\n\t\t\t\t\t\t`🔄 Attempting to reconnect WebSocket (attempt ${reconnectAttemptsRef.current}/${maxReconnectAttempts}) in ${delay}ms`\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t\t}, delay);\r\n\t\t\t\t} else if (reconnectAttemptsRef.current >= maxReconnectAttempts) {\r\n\t\t\t\t\tshowToast(\"WebSocket connection failed. Please refresh the page.\", \"error\");\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onerror = (error) => {\r\n\t\t\t\tconsole.error(\"❌ WebSocket error:\", error);\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tif (reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t);\r\n\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\tconnectWebSocket();\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\t\treconnectTimeoutRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (webSocketRef.current) {\r\n\t\t\t\twebSocketRef.current.close(1000, \"Component unmounting\");\r\n\t\t\t\twebSocketRef.current = null;\r\n\t\t\t}\r\n\t\t\treconnectAttemptsRef.current = 0;\r\n\t\t};\r\n\t}, [state.agentId]);\r\n\r\n\tconst handleSendSMS = (data: any) => {\r\n\t\tsendNotification(END_POINT.SEND_NOTIFICATIONS, {\r\n\t\t\tphone_number: data?.phone_number ?? \"\",\r\n\t\t\ttype: \"ambulance\",\r\n\t\t});\r\n\t};\r\n\r\n\tif (!state.isInitialized || !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{state.sdkConfig?.enableQueueName &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.queue_name &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.mode !== \"manual\" && (\r\n\t\t\t\t\t\t\t\t\t\t<Chip label={state?.callData?.queue_name} />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledDialButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title=\"Dial\">\r\n\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\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}\r\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\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status.toUpperCase() as CallStatus)}\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<WifiCalling3\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:\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\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status.toUpperCase() as CallStatus)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\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\"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</IconButton>\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<Box onClick={() => setShowIframe(true)}>\r\n\t\t\t\t\t\t\t\t\t<Typography\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: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\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\tcursor: \"pointer\",\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{state.callData.status === CallStatus.WRAPUP && callWrapuptime !== null ?\r\n\t\t\t\t\t\t\t\t\t\t\tformatDuration(callWrapuptime)\r\n\t\t\t\t\t\t\t\t\t\t:\tformatDuration(callDuration)}\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\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\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\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\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleAgentReady();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tclasses={{\r\n\t\t\t\t\t\t\t\t\t\t\troot:\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\t\"enabled\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t...((\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\toutlined\r\n\t\t\t\t\t\t\t\t\t\t\t:\tenabled),\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={agentReadyLoading}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<SupportAgent />\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.callData?.hold === 1 ? \"Resume\" : \"Hold\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\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() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{holdOrUnHoldLoading ?\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t: state.callData?.hold === 1 ?\r\n\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t:\t<Pause />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.callData?.mute === 1 ? \"Unmute\" : \"Mute\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...enabled }\r\n\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\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() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ?\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t: state.callData?.mute === 1 ?\r\n\t\t\t\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t:\t<Mic />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disableCallTransferButton && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Transfer Call\"}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openCallTransferDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\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: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\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={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t}\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 (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\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: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\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={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t}\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?.enableSmsServices && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Send SMS\"}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(ambulanceAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenAbulanceServices(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean(ambulanceAnchorEl) ? { ...enabled }\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[CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\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={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<SmsSharp />\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{!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\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\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\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\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\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\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![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tendCallLoading\r\n\t\t\t\t\t\t\t\t\t\t\t}\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\t{!state.sdkConfig?.disabledMoreOptionsButton &&\r\n\t\t\t\t\t\t\t\t\tprocessList &&\r\n\t\t\t\t\t\t\t\t\tprocessList?.length > 1 && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={\"Switch Process\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(moreOptionsAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenMoreOptions(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={Boolean(moreOptionsAnchorEl) ? { ...enabled } : { ...outlined }}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<MoreVert />\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Paper>\r\n\t\t\t\t</Fade>\r\n\t\t\t</Box>\r\n\r\n\t\t\t<Fade\r\n\t\t\t\tin={true}\r\n\t\t\t\ttimeout={300}\r\n\t\t\t>\r\n\t\t\t\t<Paper\r\n\t\t\t\t\tref={iframeDragRef}\r\n\t\t\t\t\televation={iframeIsDragging ? 4 : 1}\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\tleft: iframePosition.x,\r\n\t\t\t\t\t\ttop: iframePosition.y,\r\n\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\tzIndex: Number.MAX_SAFE_INTEGER,\r\n\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tvisibility: showIframe && !state.sdkConfig?.disableSoftPhone ? \"visible\" : \"hidden\",\r\n\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonMouseDown={iframeHandleMouseDown}\r\n\t\t\t\t\t\tonTouchStart={iframeHandleTouchStart}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DragIndicator\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(90deg)\",\r\n\t\t\t\t\t\t\t\tcolor: \"#7b7b7b\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t<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={`${state.urlConfig?.iframeURL}/static/phone/cti_index.html?user_id=${state.agentId}&api_url=${state.urlConfig?.iframeAPIURL}`}\r\n\t\t\t\t\t\t\theight={380}\r\n\t\t\t\t\t\t\t\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\tconst value = e.target.value;\r\n\t\t\t\t\t\t\tsetPhoneNumber(value);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t\t}\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={ambulanceAnchorEl}\r\n\t\t\t\topen={Boolean(ambulanceAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAmbulance}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Tooltip title=\"Ambulance Service\">\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\thandleSendSMS(state.callData);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tAmbulance\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"green\",\r\n\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\tmarginLeft: \"14px\",\r\n\t\t\t\t\t\t\t\t\tpadding: \"2px 6px\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tSend\r\n\t\t\t\t\t\t\t\t<SendRounded\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\ttransform: \"rotate(-16deg)\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={moreOptionsAnchorEl}\r\n\t\t\t\topen={Boolean(moreOptionsAnchorEl)}\r\n\t\t\t\tonClose={handleCloseMoreOptions}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{processList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tkey={item?.process_id}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={item?.process_name ?? \"\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.process?.process_id === item?.process_id ? \"contained\" : \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setProcess(item);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{item?.process_name ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={statusAnchorEl}\r\n\t\t\t\topen={Boolean(statusAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAgentStatus}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{!breaksList || breaksList?.length === 0 ?\r\n\t\t\t\t\t<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t:\tbreaksList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\t\t\tkey={item?.type}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t// hilight background of selected\r\n\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t:\t\"transparent\",\r\n\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"white\"\r\n\t\t\t\t\t\t\t\t\t\t:\t\"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\":hover\": {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"primary.dark\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"selected.hover\",\r\n\t\t\t\t\t\t\t\t\t\t// color:\r\n\t\t\t\t\t\t\t\t\t\t// \tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t// \t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t// \t:\t\"primary.main\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => handleUpdateAgentStatus(item?.type)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t- {item?.type}\r\n\t\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\topen={Boolean(anchorEl)}\r\n\t\t\t\tonClose={handleCloseQueueCounts}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Layers color=\"secondary\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Waiting - 25\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Pending color=\"info\" />}\r\n\t\t\t\t\t\tlabel=\"Pending - 99+\"\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Upcoming color=\"success\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Upcoming - 66\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t{Boolean(state.openConferenceDialog) && <ConferenceDialog />}\r\n\r\n\t\t\t{Boolean(state.openCallTransferDialog) && (\r\n\t\t\t\t<CallTransferDialog open={state.openCallTransferDialog} />\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallDisposition) && (\r\n\t\t\t\t<EndCallDispositionDialog\r\n\t\t\t\t\topen={openCallDisposition}\r\n\t\t\t\t\tsetOpen={setOpenCallDisposition}\r\n\t\t\t\t\tonSubmitDisposition={handleEndCall}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallHistoryDialog) && (\r\n\t\t\t\t<CallHistoryDialog\r\n\t\t\t\t\topen={openCallHistoryDialog}\r\n\t\t\t\t\tsetOpen={setOpenCallHistoryDialog}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport {\r\n\tAirlines,\r\n\tCall,\r\n\tCallEnd,\r\n\tCallSplit,\r\n\tClose,\r\n\tMemoryOutlined,\r\n\tPause,\r\n\tPhoneDisabled,\r\n\tPlayArrow,\r\n\tRoofing,\r\n\tSupportAgent,\r\n\tTransferWithinAStation,\r\n\tUpcoming,\r\n} from \"@mui/icons-material\";\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\tCheckbox,\r\n} from \"@mui/material\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nimport { useGetRequest, usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { ConferenceLineTypes, CallStatus } from \"../../types\";\r\n\r\ntype TransferCallRequest = {\r\n\tmobile_number?: string;\r\n\tuserid?: string;\r\n\ttype?: string;\r\n\ttransfer_to?: string;\r\n\tcallreferenceid?: string;\r\n\tprocessid?: string;\r\n\tprocess_name?: string;\r\n};\r\n\r\ntype BlindTransferCallRequest = {\r\n\taction: string;\r\n\tuserid: string;\r\n\tcallreferenceid: string;\r\n\tblind_transfer_no: any;\r\n};\r\n\r\nconst ConferenceTableRow = ({ each, isLineDialing }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst theme = useTheme();\r\n\tconst { showToast } = useToast();\r\n\tconst { disabled, enabled, 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 [conferenceCallStart, setConferenceCallStart] = useState(false);\r\n\tconst [conferenceCallMerge, setConferenceCallMerge] = useState(false);\r\n\tconst [conferenceCallHoldOrUnHold, setConferenceCallHoldOrUnHold] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\r\n\r\n\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\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})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallStart(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onMergeConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallMerge(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CONFERENCE`,\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (state.callData?.hold === 1) {\r\n\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t}\r\n\t\t\t\tif (state.callData?.mute === 1) {\r\n\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t}\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallMerge(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onHoldOrUnHoldConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"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})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallHoldOrUnHold(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onEndConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\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})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEnd(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst [holdOrUnHold] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuserId: string;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuserId: state.agentId,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tuserId: state.agentId,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<TableRow\r\n\t\t\tkey={each.line}\r\n\t\t\tsx={{\r\n\t\t\t\tborder: \"2px solid #fff\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography>Line {each?.line ?? \"\"}. </Typography>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography\r\n\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tpx: 1,\r\n\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.status ?? \"\"}\r\n\t\t\t\t</Typography>\r\n\t\t\t</TableCell>\r\n\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<TextField\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\tplaceholder=\"Phone Number\"\r\n\t\t\t\t\tfullWidth\r\n\t\t\t\t\tvalue={each?.phone || \"\"}\r\n\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\tCallStatus.DISCONNECTED,\r\n\t\t\t\t\t\t\tCallStatus.CONFERENCE,\r\n\t\t\t\t\t\t\tCallStatus.HOLD,\r\n\t\t\t\t\t\t\tCallStatus.MUTE,\r\n\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t].includes(each?.status ?? \"\") ||\r\n\t\t\t\t\t\tisLineDialing\r\n\t\t\t\t\t}\r\n\t\t\t\t\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\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tgap: \"10px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.HOLD ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.CONFERENCE ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== CallStatus.CONFERENCE && each?.status !== CallStatus.HOLD) ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each.status === CallStatus.HOLD ?\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: each.status === CallStatus.HOLD ? \"#fff\" : \"initial\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tUnhold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ?\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<PlayArrow />}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t:\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: each.status === CallStatus.HOLD ? \"#fff\" : \"#000\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tHold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ?\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"16px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t:\t<Pause />}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* ------------- */}\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status !== CallStatus.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 !== CallStatus.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 !== CallStatus.IDLE || isLineDialing}\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 !== CallStatus.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\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Merge Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.ONCALL ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.ONCALL ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonMergeConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: true,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== CallStatus.ONCALL}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t:\t<CallSplit />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.HOLD ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.CONFERENCE ? { ...outlined } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t(each?.status !== CallStatus.CONFERENCE && each?.status !== CallStatus.HOLD) ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallHoldOrUnHold\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t: each.status === CallStatus.HOLD ?\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t:\t<Pause />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"End Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED ?\r\n\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t:\t\"outlined\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED ?\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t:\t{\r\n\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.IDLE ||\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.DISCONNECTED ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallEnd\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallEnd ?\r\n\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t:\t<CallEnd />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</TableCell>\r\n\t\t</TableRow>\r\n\t);\r\n};\r\n\r\nexport function ConferenceDialog() {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [conferenceCallEndAll, setConferenceCallEndAll] = useState(false);\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t};\r\n\r\n\tconst onEndAllConferenceCalls = () => {\r\n\t\tsetConferenceCallEndAll(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"ENDCONFERENCE\",\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END_ALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEndAll(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst handleTransferConferenceCall = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"TRANSFERAPI\",\r\n\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_TRANSFER, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst isLineDialing = state?.conferenceLine?.some((item) => item?.status === CallStatus.DIALING);\r\n\tconst conferenceLineCount =\r\n\t\tstate?.conferenceLine?.filter((item) => item?.status === CallStatus.CONFERENCE)?.length ?? 0;\r\n\r\n\tconst isHold = state?.conferenceLine?.some((item) => item?.status === CallStatus.HOLD);\r\n\tconst isOnCall = state?.conferenceLine?.some((item) => item?.status === CallStatus.ONCALL);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={state.openConferenceDialog}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"0px 16px\",\r\n\t\t\t\t\t\t\tpaddingBottom: \"6px\",\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tcolor=\"primary.main\"\r\n\t\t\t\t\t\t\tsx={{ textTransform: \"uppercase\", fontWeight: \"bold\", fontSize: \"14px\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{state?.agentId ?? \"\"} conference\r\n\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\tonClick={handleTransferConferenceCall}\r\n\t\t\t\t\t\t\t\tdisabled={conferenceLineCount <= 1 || isHold || isLineDialing || isOnCall}\r\n\t\t\t\t\t\t\t\tstartIcon={<TransferWithinAStation />}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tExit Conference\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Close sx={{ color: \"primary.main\" }} />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"0px 15px\",\r\n\t\t\t\t\t\t\tborderRadius: \"20px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TableContainer\r\n\t\t\t\t\t\t\tcomponent={Paper}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\toutline: \"0px solid gray !important\",\r\n\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 6px #e7e5e5ff\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Table\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\tisLineDialing={isLineDialing}\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 || conferenceLineCount <= 0}\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\tconst [mobileNumber, setMobileNumber] = useState(\"\");\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 [blindTransferCall] = usePostRequest<BlindTransferCallRequest>({\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\tgetHospitalsServicesList,\r\n\t\t{ data: hospitalsServicesList, isLoading: isHospitalsServicesListLoading },\r\n\t] = useGetRequest<any>({\r\n\t\tdisabledSuccessToast: true,\r\n\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} else if (type === \"OTHER\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\taction: \"BLIND_TRANSFER\",\r\n\t\t\t\tuserid: state.callData?.agent_id ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.convox_id ?? \"\",\r\n\t\t\t\tblind_transfer_no: data?.mobile_number ?? \"\",\r\n\t\t\t};\r\n\t\t\tblindTransferCall(END_POINT.BLIEND_TRANSFER, 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\tgetHospitalsServicesList(END_POINT.HOSPITALS_SERVICES);\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={\"sm\"}\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\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, margin: \"10px\" }}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"process\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"process\");\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}}\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\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"others\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"others\");\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\tOthers\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading ||\r\n\t\t\t\t\t\t\tisIdleAgentsListLoading ||\r\n\t\t\t\t\t\t\tisHospitalsServicesListLoading) && (\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\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{(\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<MemoryOutlined sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\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<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tp={2}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Process Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\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\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{(\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<Airlines sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{queue.queue_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{(\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<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tp={2}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Queues Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\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\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data && idleAgentsList?.data?.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t:\t\"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{idleAgentsList?.data && idleAgentsList?.data?.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data?.map((agent: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{agent.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<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<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tp={2}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Agents Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!isIdleAgentsListLoading &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"others\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(2, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{hospitalsServicesList?.data &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.map((service: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Roofing sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={`${service?.description ?? \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ color: \"text.secondary\" }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service.name}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"9px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service?.description ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={service?.phone_number ?? \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\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\t\thandleTransferCall(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmobile_number: service?.phone_number ?? \"\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"OTHER\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<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\tmx: 1,\r\n\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\tmaxWidth: \"250px\",\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}}\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<TextField\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\tname=\"others\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={mobileNumber}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMobileNumber(v);\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\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\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\tplaceholder=\"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\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<Tooltip\r\n\t\t\t\t\t\t\t\t\t\t\ttitle={mobileNumber ? `Call To - ${mobileNumber}` : \"Enter mobile number\"}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\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\": { 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\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTransferCall(\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\tmobile_number: mobileNumber ?? \"\",\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\"OTHER\"\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<Call />\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</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [getDispositions, data] = useGetRequest();\r\n\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"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\tselected_break: false,\r\n\t});\r\n\tconst followUpOptions = [\r\n\t\t{ label: \"Yes\", value: \"Y\" },\r\n\t\t{ label: \"No\", value: \"N\" },\r\n\t];\r\n\r\n\tconst handleChange = (\r\n\t\tfield: keyof typeof formData,\r\n\t\tvalue: { label: string } | null | string | boolean\r\n\t) => {\r\n\t\tsetFormData((prev) => ({ ...prev, [field]: value }));\r\n\t};\r\n\r\n\tconst handleReset = () => {\r\n\t\tsetFormData({\r\n\t\t\tdisposition: { label: \"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\tselected_break: false,\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\thandleReset();\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetDispositions(END_POINT.DISPOSITIONS);\r\n\t}, []);\r\n\r\n\tconst dispositionsOptions = useMemo(() => {\r\n\t\treturn (\r\n\t\t\tdata?.data?.data?.map((item: any) => ({\r\n\t\t\t\tlabel: item.name,\r\n\t\t\t\tvalue: item.code,\r\n\t\t\t})) || []\r\n\t\t);\r\n\t}, [data?.data?.data]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\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={dispositionsOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"disposition\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Disposition\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\toptions={followUpOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.followUp}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"followUp\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Follow Up\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tdisplay=\"flex\"\r\n\t\t\t\t\t\t\tgap={2}\r\n\t\t\t\t\t\t\tmt={2}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{/* <Autocomplete\r\n\t\t\t\t\t\t\t\toptions={breakOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.selected_break}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"selected_break\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Break\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tflex: \"1\",\r\n\t\t\t\t\t\t\t\t\tborder: \"1px solid #bdbdbd\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"5px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\t\tname=\"selected_break\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tchecked={formData.selected_break}\r\n\t\t\t\t\t\t\t\t\tonChange={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"selected_break\", event.target.checked);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinput: { \"aria-label\": \"controlled\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t\t\tMark as break\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" ?\r\n\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Callback Date\"\r\n\t\t\t\t\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinputLabel: { shrink: true },\r\n\t\t\t\t\t\t\t\t\t}}\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<Box sx={{ flex: 1 }}></Box>}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\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=\"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\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</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 { 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): [\r\n\t(_url: string, _payload: T, _config?: AxiosRequestConfig) => Promise<any>,\r\n\tRequestResult<T>,\r\n] => {\r\n\tconst { onSuccess = null, onError = null, disabledSuccessToast = false } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst postRequest = useCallback(\r\n\t\tasync (url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst res = await axiosInstance.post(url, payload, config);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\tif (!disabledSuccessToast) {\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (err: any) {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t}\r\n\t\t\t} finally {\r\n\t\t\t\tdispatch({\r\n\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\tpayload: false,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [postRequest, state];\r\n};\r\n\r\nexport const usePutRequest = <T = UsePutRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst putRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.put(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [putRequest, state];\r\n};\r\n\r\nexport const useDeleteRequest = <T = UseDeleteRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst deleteRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.delete(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [deleteRequest, state];\r\n};\r\n\r\nexport const usePatchRequest = <T = UsePatchRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst patchRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.patch(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [patchRequest, state];\r\n};\r\n","import { 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","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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type MouseEvent, type TouchEvent, useCallback, useRef, useState } from \"react\";\r\n\r\ninterface Position {\r\n\tx: number;\r\n\ty: number;\r\n}\r\n\r\ninterface UseDraggableReturn {\r\n\tposition: Position;\r\n\tisDragging: boolean;\r\n\tdragRef: any;\r\n\thandleMouseDown: (_e: MouseEvent<HTMLDivElement>) => void;\r\n\thandleTouchStart: (_e: TouchEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport function useDraggable(\r\n\tinitialPosition: Position,\r\n\tonPositionChange?: (_position: Position) => void\r\n): UseDraggableReturn {\r\n\tconst [position, setPosition] = useState<Position>(initialPosition);\r\n\r\n\tconst [isDragging, setIsDragging] = useState(false);\r\n\r\n\tconst dragRef = useRef<HTMLDivElement>();\r\n\r\n\tconst dragStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst elementStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst updatePosition = useCallback(\r\n\t\t(newPosition: Position) => {\r\n\t\t\tconst element = dragRef.current;\r\n\t\t\tif (!element) return;\r\n\r\n\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\tconst viewportWidth = window.innerWidth;\r\n\t\t\tconst viewportHeight = window.innerHeight;\r\n\r\n\t\t\tconst constrainedPosition = {\r\n\t\t\t\tx: Math.max(0, Math.min(newPosition.x, viewportWidth - rect.width)),\r\n\t\t\t\ty: Math.max(0, Math.min(newPosition.y, viewportHeight - rect.height)),\r\n\t\t\t};\r\n\r\n\t\t\tsetPosition(constrainedPosition);\r\n\t\t\tonPositionChange?.(constrainedPosition);\r\n\t\t},\r\n\t\t[onPositionChange]\r\n\t);\r\n\r\n\tconst handleStart = useCallback(\r\n\t\t(clientX: number, clientY: number) => {\r\n\t\t\tsetIsDragging(true);\r\n\t\t\tdragStart.current = { x: clientX, y: clientY };\r\n\t\t\telementStart.current = position;\r\n\r\n\t\t\tconst handleMove = (moveClientX: number, moveClientY: number) => {\r\n\t\t\t\tconst deltaX = moveClientX - dragStart.current.x;\r\n\t\t\t\tconst deltaY = moveClientY - dragStart.current.y;\r\n\r\n\t\t\t\tupdatePosition({\r\n\t\t\t\t\tx: elementStart.current.x + deltaX,\r\n\t\t\t\t\ty: elementStart.current.y + deltaY,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst handleMouseMove = (e: globalThis.MouseEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\thandleMove(e.clientX, e.clientY);\r\n\t\t\t};\r\n\r\n\t\t\tconst handleTouchMove = (e: globalThis.TouchEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst touch = e.touches[0];\r\n\t\t\t\tif (touch) {\r\n\t\t\t\t\thandleMove(touch.clientX, touch.clientY);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst handleEnd = () => {\r\n\t\t\t\tsetIsDragging(false);\r\n\t\t\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\t\tdocument.removeEventListener(\"mouseup\", handleEnd);\r\n\t\t\t\tdocument.removeEventListener(\"touchmove\", handleTouchMove);\r\n\t\t\t\tdocument.removeEventListener(\"touchend\", handleEnd);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.addEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\tdocument.addEventListener(\"mouseup\", handleEnd);\r\n\t\t\tdocument.addEventListener(\"touchmove\", handleTouchMove, {\r\n\t\t\t\tpassive: false,\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener(\"touchend\", handleEnd);\r\n\t\t},\r\n\t\t[position, updatePosition]\r\n\t);\r\n\r\n\tconst handleMouseDown = useCallback(\r\n\t\t(e: MouseEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\thandleStart(e.clientX, e.clientY);\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\tconst handleTouchStart = useCallback(\r\n\t\t(e: TouchEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst touch = e.touches[0];\r\n\t\t\tif (touch) {\r\n\t\t\t\thandleStart(touch.clientX, touch.clientY);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\treturn {\r\n\t\tposition,\r\n\t\tisDragging,\r\n\t\tdragRef,\r\n\t\thandleMouseDown,\r\n\t\thandleTouchStart,\r\n\t};\r\n}\r\n","// micController.ts\r\n\r\nexport type MicController = {\r\n\tstart: () => Promise<void>;\r\n\tstop: () => void;\r\n\tmute: () => void;\r\n\tunmute: () => void;\r\n\ttoggleMute: () => void;\r\n\tisMuted: () => boolean;\r\n\tgetStream: () => MediaStream | null;\r\n};\r\n\r\nexport function createMicController(\r\n\tconstraints: MediaStreamConstraints = { audio: true }\r\n): MicController {\r\n\tlet stream: MediaStream | null = null;\r\n\tlet muted = false;\r\n\r\n\tasync function start() {\r\n\t\tif (stream) return; // already started\r\n\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\r\n\t\t// default: unmuted\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = true));\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction setEnabled(enabled: boolean) {\r\n\t\tif (!stream) return;\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = enabled));\r\n\t\tmuted = !enabled;\r\n\t}\r\n\r\n\tfunction mute() {\r\n\t\tsetEnabled(false);\r\n\t}\r\n\r\n\tfunction unmute() {\r\n\t\tsetEnabled(true);\r\n\t}\r\n\r\n\tfunction toggleMute() {\r\n\t\tif (muted) {\r\n\t\t\tunmute();\r\n\t\t} else {\r\n\t\t\tmute();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction stop() {\r\n\t\tif (!stream) return;\r\n\t\tstream.getTracks().forEach((t) => t.stop());\r\n\t\tstream = null;\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction isMuted() {\r\n\t\treturn muted;\r\n\t}\r\n\r\n\tfunction getStream() {\r\n\t\treturn stream;\r\n\t}\r\n\r\n\treturn {\r\n\t\tstart,\r\n\t\tstop,\r\n\t\tmute,\r\n\t\tunmute,\r\n\t\ttoggleMute,\r\n\t\tisMuted,\r\n\t\tgetStream,\r\n\t};\r\n}\r\n","/**\r\n * Audio loader utility for handling MP3 files as buffers/blobs\r\n * This ensures the audio works correctly in bundled npm packages\r\n */\r\n\r\n// Import the MP3 file - bundler will handle this\r\n// @ts-ignore - MP3 module declaration\r\nimport incomingRingtoneUrl from \"../ringtones/incoming.mp3\";\r\n\r\nlet audioBlobUrl: string | null = null;\r\nlet audioBuffer: ArrayBuffer | null = null;\r\n\r\n/**\r\n * Loads the audio file as a blob URL for reliable playback\r\n * @returns Promise<string> - Blob URL or direct URL for the audio file\r\n */\r\nexport async function loadAudioAsBlob(): Promise<string> {\r\n\tif (audioBlobUrl) {\r\n\t\treturn audioBlobUrl;\r\n\t}\r\n\r\n\t// If the URL is already a data URL or absolute URL, use it directly\r\n\tif (\r\n\t\tincomingRingtoneUrl.startsWith(\"data:\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"http://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"https://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"blob:\")\r\n\t) {\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Try to fetch and convert to blob URL\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`HTTP ${response.status}: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\tconst blob = await response.blob();\r\n\r\n\t\t// Verify it's a valid blob\r\n\t\tif (blob.size === 0) {\r\n\t\t\tthrow new Error(\"Empty blob\");\r\n\t\t}\r\n\r\n\t\taudioBlobUrl = URL.createObjectURL(blob);\r\n\t\treturn audioBlobUrl;\r\n\t} catch (error) {\r\n\t\t// If fetch fails, the bundler may have already processed the URL\r\n\t\t// Return the original URL - it should work if tsup processed it correctly\r\n\t\tconsole.error(\"Could not create blob URL, using direct URL:\", error);\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n}\r\n\r\n/**\r\n * Loads the audio file as an ArrayBuffer\r\n * @returns Promise<ArrayBuffer> - Audio file as buffer\r\n */\r\nexport async function loadAudioAsBuffer(): Promise<ArrayBuffer> {\r\n\tif (audioBuffer) {\r\n\t\treturn audioBuffer;\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Failed to load audio: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\taudioBuffer = await response.arrayBuffer();\r\n\t\treturn audioBuffer;\r\n\t} catch (error) {\r\n\t\tconsole.error(\"Error loading audio as buffer:\", error);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\n/**\r\n * Creates an Audio element from the blob URL\r\n * @returns Promise<HTMLAudioElement> - Audio element ready to play\r\n */\r\nexport async function createAudioElement(): Promise<HTMLAudioElement> {\r\n\tconst audio = new Audio();\r\n\r\n\t// Set up audio properties before setting source\r\n\taudio.loop = true;\r\n\taudio.volume = 0.7;\r\n\taudio.preload = \"auto\";\r\n\r\n\t// Try multiple approaches to load the audio\r\n\tlet audioUrl: string = \"\";\r\n\r\n\t// First, try to get blob URL\r\n\ttry {\r\n\t\taudioUrl = await loadAudioAsBlob();\r\n\t} catch (error) {\r\n\t\tconsole.warn(\"Failed to load audio as blob, trying direct URL:\", error);\r\n\t\taudioUrl = incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Set up error handling with retry logic\r\n\tconst tryLoadAudio = async (url: string): Promise<boolean> => {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst checkCanPlay = () => {\r\n\t\t\t\t// Check if audio can play\r\n\t\t\t\tconst canPlay = audio.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\r\n\t\t\t\tif (canPlay) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check for errors\r\n\t\t\t\tif (audio.error) {\r\n\t\t\t\t\tresolve(false);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Wait a bit and check again\r\n\t\t\t\tsetTimeout(checkCanPlay, 100);\r\n\t\t\t};\r\n\r\n\t\t\taudio.addEventListener(\"canplay\", () => resolve(true), { once: true });\r\n\t\t\taudio.addEventListener(\"error\", () => resolve(false), { once: true });\r\n\t\t\taudio.src = url;\r\n\t\t\taudio.load();\r\n\r\n\t\t\t// Timeout after 2 seconds\r\n\t\t\tsetTimeout(() => resolve(false), 2000);\r\n\t\t});\r\n\t};\r\n\r\n\t// Try loading with the primary URL\r\n\tlet loaded = await tryLoadAudio(audioUrl);\r\n\r\n\t// If that fails, try the original import URL directly\r\n\tif (!loaded && audioUrl !== incomingRingtoneUrl) {\r\n\t\tloaded = await tryLoadAudio(incomingRingtoneUrl);\r\n\t\tif (loaded) {\r\n\t\t\taudioUrl = incomingRingtoneUrl;\r\n\t\t}\r\n\t}\r\n\r\n\treturn audio;\r\n}\r\n\r\n/**\r\n * Cleanup function to revoke blob URLs and free memory\r\n */\r\nexport function cleanupAudioResources(): void {\r\n\tif (audioBlobUrl) {\r\n\t\tURL.revokeObjectURL(audioBlobUrl);\r\n\t\taudioBlobUrl = null;\r\n\t}\r\n\taudioBuffer = null;\r\n}\r\n\r\n/**\r\n * Get the audio URL (blob URL or fallback to direct URL)\r\n * @returns string - Audio URL\r\n */\r\nexport function getAudioUrl(): string {\r\n\treturn audioBlobUrl || incomingRingtoneUrl;\r\n}\r\n","import { 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, URLConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\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\ttenantId: string;\r\n\tagentId: string;\r\n\tsessionId?: string;\r\n\tsdkConfig?: SDKConfig;\r\n\turlConfig?: URLConfig;\r\n}\r\n\r\nexport async function initSDK({\r\n\tapiKey,\r\n\ttenantId,\r\n\tagentId,\r\n\tsdkConfig,\r\n\turlConfig,\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\tpassword: urlConfig?.password,\r\n\t\t\tbaseUrl: urlConfig?.baseURL,\r\n\t\t});\r\n\r\n\t\tconst res = {\r\n\t\t\taccessToken: initResult?.accessToken,\r\n\t\t\texpiration: initResult?.expiration,\r\n\t\t\tticketId: initResult?.ticketId,\r\n\t\t}\r\n\t\tif (initResult) {\r\n\t\t\tconsole.info(\"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\turlConfig,\r\n\t\t\t\tres,\r\n\t\t\t\t{ ...initResult?.call_controls, ...sdkConfig },\r\n\t\t\t);\r\n\t\t} else {\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\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":";;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,kBAAN,MAAsD;AAAA,EAAtD;AACC,wBAAQ,UAAoC;AAC5C,wBAAQ,YAA0B;AAClC,wBAAQ,WAAkB;AAC1B,wBAAQ,cAAoD;AAAA;AAAA,EAE5D,MAAM,KAAK,QAAiD;AAC3D,SAAK,SAAS;AAAA,MACb,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,OACZ;AAGJ,SAAK,UAAU,OAAO,YAAY,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AAE3F,UAAM,SAAS,MAAM,KAAK,aAAa;AAEvC,SAAK,mBAAmB;AAExB,WAAO;AAAA,EACR;AAAA,EAEA,gBAAyB;AACxB,WAAO,KAAK,WAAW,QAAQ,KAAK,aAAa;AAAA,EAClD;AAAA,EAEA,YAAuC;AACtC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,cAA6B;AAC5B,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAc,eAAuC;AACpD,QAAI,CAAC,KAAK,QAAQ;AACjB,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAC/C;AAEA,QAAI;AACD,YAAM,WAAW,MAAM,KAAK,YAAY,sBAAsB;AAAA,QAC/D,QAAQ;AAAA,QACR,SAAS;AAAA,UACT,gBAAgB;AAAA,QAChB;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACpB,QAAQ,KAAK,OAAO;AAAA;AAAA,UAEpB,UAAU,KAAK,OAAO;AAAA,QACvB,CAAC;AAAA,MACF,CAAC;AAOD,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAK,WAAW,KAAK;AAGrB,aAAO;AAAA,IACR,SAAS,OAAO;AAEf,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,MAAc,YAAY,KAAa,SAAyC;AA7FjF,QAAAA;AA8FE,UAAM,UAAU,GAAG,KAAK,OAAO,GAAG,GAAG;AACrC,UAAM,eAAaA,MAAA,KAAK,WAAL,gBAAAA,IAAa,kBAAiB;AAEjD,aAAS,UAAU,GAAG,WAAW,YAAY,WAAW;AACvD,UAAI;AACH,cAAM,WAAW,MAAM,MAAM,SAAS,OAAO;AAC7C,eAAO;AAAA,MACR,SAAS,OAAO;AACf,YAAI,YAAY,YAAY;AAC3B,gBAAM;AAAA,QACP;AAEA,cAAM,QAAQ,KAAK,IAAI,MAAO,KAAK,IAAI,GAAG,UAAU,CAAC,GAAG,GAAK;AAC7D,cAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,KAAK,CAAC;AAAA,MAC1D;AAAA,IACD;AAEA,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACvC;AAAA,EAEQ,qBAA2B;AAClC,QAAI,KAAK,YAAY;AACpB,oBAAc,KAAK,UAAU;AAAA,IAC9B;AAAA,EAGD;AAED;AAEO,IAAM,eAAe,IAAI,gBAAgB;AAEhD,IAAI,OAAO,WAAW,aAAa;AAClC,EAAC,OAAe,eAAe;AAChC;;;AChIA,SAAS,SAAS,YAAY,eAAe;;;ACctC,IAAM,WAAW;AAGjB,IAAM,UAAU;AAAA,EACtB,IAAI;AACL;AAEO,IAAM,YAAY;AAAA,EACxB,OAAO,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC/B,aAAa,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACrC,oBAAoB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC5C,eAAe,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACvC,WAAW,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACnC,WAAW,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACnC,aAAa,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACrC,UAAU,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAClC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAEhC,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACzC,iCAAiC,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACzD,iCAAiC,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACzD,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC7C,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACjD,0BAA0B,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAClD,eAAe,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAEvC,aAAa,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACrC,cAAc,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACtC,aAAa,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACrC,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC7C,oBAAoB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAE5C,cAAc,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACtC,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC9C,cAAc,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EACtC,oBAAoB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAAA,EAC5C,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAC1C;AAMO,IAAM,cAAc;;;ADrD3B,IAAM,kBAAN,MAAsB;AAAA,EAQrB,cAAc;AAPd,wBAAQ;AACR,wBAAQ,aAA+B,CAAC;AACxC,wBAAiB,eAAc;AAE/B,wBAAQ;AACR,wBAAQ;AAGP,SAAK,QAAQ,KAAK,gBAAgB;AAClC,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEQ,kBAA4B;AAjBrC,QAAAC,KAAA;AAkBE,WAAO;AAAA,MACN,eAAe;AAAA,MACf,SAAS;AAAA,MACT,SAAS;AAAA,MACT,sBAAsB;AAAA,MACtB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,WAAW;AAAA,QACV,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,mBAAmB;AAAA,QACnB,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,yBAAyB;AAAA,QACzB,UAAU,CAAC;AAAA,QACX,SAAS,CAAC;AAAA,QACV,UAAU,CAAC;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,cAAc;AAAA,QACd,cAAc;AAAA,QACd,IAAI;AAAA,QACJ,UAAU;AAAA,MACX;AAAA,MACA,eAAe;AAAA,MACf,sBAAsB,EAAE,GAAG,IAAI,GAAG,GAAG;AAAA,MACrC,gBAAgB,EAAE,KAAGA,MAAA,OAAO,WAAP,gBAAAA,IAAe,cAAa,KAAK,KAAG,YAAO,WAAP,mBAAe,UAAS,IAAI;AAAA,MACrF,UAAU;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,cAAc;AAAA,MACf;AAAA,MACA,gBAAgB;AAAA,QACf;AAAA,UACC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AAAA,MACD;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEQ,kBAAwB;AAtHjC,QAAAA,KAAA;AAuHE,QAAI;AACH,YAAM,SAAmB,QAAQ,KAAK,WAAW;AACjD,UAAI,QAAQ;AACX,cAAM,cAAc;AACpB,aAAK,QAAQ,iCACT,KAAK,QADI;AAAA,UAEZ,SAAS,YAAY,WAAW;AAAA,UAChC,eAAe,YAAY,iBAAiB;AAAA,UAC5C,SAAS,YAAY,WAAW;AAAA,UAChC,uBAAsB,2CAAa,yBAAwB;AAAA,UAC3D,yBAAwB,2CAAa,2BAA0B;AAAA,UAC/D,eAAe,YAAY,iBAAiB;AAAA,UAC5C,WAAW,YAAY,aAAa;AAAA,YACnC,sBAAsB;AAAA,YACtB,2BAA2B;AAAA,YAC3B,mBAAmB;AAAA,YACnB,iBAAiB;AAAA,YACjB,oBAAoB;AAAA,YACpB,2BAA2B;AAAA,YAC3B,aAAa;AAAA,YACb,kBAAkB;AAAA,YAClB,yBAAyB;AAAA,YACzB,UAAU,CAAC;AAAA,YACX,SAAS,CAAC;AAAA,YACV,UAAU,CAAC;AAAA,UACZ;AAAA,UACA,WAAW,YAAY,aAAa;AAAA,YACnC,IAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW;AAAA,YACX,cAAc;AAAA,YACd,cAAc;AAAA,YACd,UAAU;AAAA,UACX;AAAA,UACA,eAAe,YAAY,iBAAiB;AAAA,UAC5C,sBAAsB,YAAY,wBAAwB;AAAA,YACzD,GAAG;AAAA,YACH,GAAG;AAAA,UACJ;AAAA,UACA,gBAAgB,YAAY,kBAAkB;AAAA,YAC7C,KAAGA,MAAA,OAAO,WAAP,gBAAAA,IAAe,cAAa;AAAA,YAC/B,KAAG,YAAO,WAAP,mBAAe,UAAS;AAAA,UAC5B;AAAA,UACA,UAAU,YAAY,YAAY;AAAA,YACjC,cAAc;AAAA,YACd,iBAAiB;AAAA,YACjB,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,YAAY;AAAA,YACZ,cAAc;AAAA,UACf;AAAA,UACA,gBAEE,YAAY,kBACZ,MAAM,QAAQ,YAAY,cAAc,KACxC,YAAY,eAAe,SAAS,IAEpC,YAAY,iBACX,KAAK,MAAM;AAAA,UACd,aAAa,YAAY;AAAA,QAC1B;AAAA,MACD;AAAA,IACD,SAAS,OAAO;AACf,cAAQ,KAAK,6BAA6B,KAAK;AAAA,IAChD;AAAA,EACD;AAAA,EAEQ,gBAAsB;AAC7B,QAAI;AACH,YAAM,kBAAkB;AAAA,QACvB,SAAS,KAAK,MAAM;AAAA,QACpB,eAAe,KAAK,MAAM;AAAA,QAC1B,SAAS,KAAK,MAAM;AAAA,QACpB,eAAe,KAAK,MAAM;AAAA,QAC1B,sBAAsB,KAAK,MAAM;AAAA,QACjC,wBAAwB,KAAK,MAAM;AAAA,QACnC,WAAW,KAAK,MAAM;AAAA,QACtB,WAAW,KAAK,MAAM;AAAA,QACtB,eAAe,KAAK,MAAM;AAAA,QAC1B,sBAAsB,KAAK,MAAM;AAAA,QACjC,gBAAgB,KAAK,MAAM;AAAA,QAC3B,UAAU,KAAK,MAAM;AAAA,QACrB,gBAAgB,KAAK,MAAM;AAAA,QAC3B,aAAa,KAAK,MAAM;AAAA,MACzB;AACA,cAAQ,KAAK,aAAa,eAAe;AAAA,IAC1C,SAAS,OAAO;AACf,cAAQ,KAAK,6BAA6B,KAAK;AAAA,IAChD;AAAA,EACD;AAAA,EAEQ,kBAAwB;AAC/B,SAAK,UAAU,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,EAChD;AAAA,EAEQ,oBAAoB,QAAgB,UAAwB;AACnE,QAAI,CAAC,UAAU,OAAO,WAAW,YAAY,OAAO,KAAK,EAAE,WAAW,GAAG;AACxE,YAAM,IAAI,MAAM,uBAAuB;AAAA,IACxC;AACA,QAAI,CAAC,YAAY,OAAO,aAAa,YAAY,SAAS,KAAK,EAAE,WAAW,GAAG;AAC9E,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC1C;AACA,SAAK,SAAS,OAAO,KAAK;AAC1B,SAAK,WAAW,SAAS,KAAK;AAAA,EAC/B;AAAA,EAEO,WACN,QACA,UACA,SACA,WACA,YACA,WACO;AACP,SAAK,oBAAoB,QAAQ,QAAQ;AACzC,QAAI,CAAC,WAAW,OAAO,YAAY,YAAY,QAAQ,KAAK,EAAE,WAAW,GAAG;AAC3E,YAAM,IAAI,MAAM,wBAAwB;AAAA,IACzC,OAAO;AACN,WAAK,MAAM,UAAU;AACrB,WAAK,MAAM,uBAAuB;AAClC,WAAK,MAAM,yBAAyB;AACpC,WAAK,MAAM,gBAAgB;AAC3B,WAAK,MAAM,YAAY;AAAA,QACtB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,2BAA2B;AAAA,QAC3B,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,yBAAyB;AAAA,QACzB,UAAU,CAAC;AAAA,QACX,SAAS,CAAC;AAAA,QACV,UAAU,CAAC;AAAA,SACR;AAEJ,WAAK,MAAM,YAAY;AAAA,QACtB,UAAS,uCAAW,YAAW;AAAA,QAC/B,YAAW,uCAAW,cAAa;AAAA,QACnC,eAAc,uCAAW,iBAAgB;AAAA,QACzC,eAAc,uCAAW,iBAAgB;AAAA,QACzC,KAAI,uCAAW,OAAM;AAAA,QACrB,WAAU,uCAAW,aAAY;AAAA,MAClC;AACA,WAAK,MAAM,gBAAgB;AAC3B,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AAAA,EACD;AAAA,EAEO,WAAqB;AAC3B,WAAO,mBAAK,KAAK;AAAA,EAClB;AAAA,EAEO,iBAA+E;AACrF,WAAO,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,SAAS;AAAA,EACvD;AAAA,EACO,kBAAsC;AAtR9C,QAAAA;AAuRE,YAAOA,MAAA,KAAK,MAAM,kBAAX,gBAAAA,IAA0B;AAAA,EAClC;AAAA,EAEO,UAAU,UAAkC;AAClD,SAAK,UAAU,KAAK,QAAQ;AAC5B,WAAO,MAAM;AACZ,YAAM,QAAQ,KAAK,UAAU,QAAQ,QAAQ;AAC7C,UAAI,QAAQ,IAAI;AACf,aAAK,UAAU,OAAO,OAAO,CAAC;AAAA,MAC/B;AAAA,IACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcO,WAAW,SAA6D;AAC9E,SAAK,MAAM,UAAU;AACrB,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,wBAAwB,UAA0C;AACxE,SAAK,MAAM,uBAAuB;AAClC,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,kBAAkB,UAA0C;AAClE,SAAK,MAAM,iBAAiB;AAC5B,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,YAAkB;AACxB,SAAK,MAAM,gBAAgB,KAAK,IAAI;AACpC,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,UAAgB;AACtB,SAAK,MAAM,gBAAgB;AAC3B,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,eAAqB;AAC3B,SAAK,MAAM,gBAAgB;AAC3B,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,wBAAwB,MAAqB;AACnD,SAAK,MAAM,uBAAuB;AAClC,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,0BAA0B,MAAqB;AACrD,SAAK,MAAM,yBAAyB;AACpC,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,eAAe,QAAsB;AAC3C,SAAK,MAAM,cAAc;AACzB,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,eAAe,MAA+B;AACpD,SAAK,MAAM,WAAW,kCAAK,KAAK,MAAM,WAAa;AACnD,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,qBAAqB,MAAmC;AAC9D,SAAK,MAAM,iBAAiB,CAAC,GAAG,IAAI;AACpC,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,kBAAkB,MAAiC;AAlX3D,QAAAA;AAmXE,QAAI,CAAC,KAAK,MAAM,kBAAkB,CAAC,MAAM,QAAQ,KAAK,MAAM,cAAc,GAAG;AAC5E,WAAK,MAAM,iBAAiB,KAAK,gBAAgB,EAAE;AAAA,IACpD;AAEA,UAAM,sBAAqBA,MAAA,KAAK,MAAM,mBAAX,gBAAAA,IAA2B,IAAI,CAAC,SAA8B;AACxF,UAAI,KAAK,SAAS,KAAK,MAAM;AAC5B,eAAO;AAAA,MACR;AACA,aAAO;AAAA,IACR;AACA,SAAK,MAAM,iBAAiB;AAC5B,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,uBAA6B;AACnC,SAAK,MAAM,iBAAiB;AAAA,MAC3B;AAAA,QACC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,IACD;AAEA,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEO,uBAA6B;AACnC,QAAI;AACH,iBAAW,KAAK,WAAW;AAC3B,WAAK,QAAQ,KAAK,gBAAgB;AAClC,WAAK,gBAAgB;AAAA,IACtB,SAAS,OAAO;AACf,cAAQ,KAAK,oBAAoB,KAAK;AAAA,IACvC;AAAA,EACD;AAAA,EAEO,qBAA4C;AAClD,WAAO,KAAK,MAAM,kBAAkB,CAAC;AAAA,EACtC;AACD;AAEO,IAAM,kBAAkB,IAAI,gBAAgB;;;AE3cnD,SAAS,aAAa,gBAAgB;AAOtC,SAAS,WAAAC,UAAS,cAAAC,mBAAkB;;;ACPpC,IAAM,qBAAqB;AAEpB,IAAM,eAAe,CAAC,UAAsC;AAClE,SAAO,GAAG,kBAAkB,UAAU,KAAK;AAC5C;AAEO,IAAM,kBAAkB,CAAC,OAAmC,WAAsB;AACxF,SAAO,GAAG,kBAAkB,UAAU,KAAK,SAAS,MAAM;AAC3D;AAcO,IAAM,oBAAoB,MAAM;AACtC,SAAO,GAAG,kBAAkB;AAC7B;AAMO,IAAM,oBAAoB,CAAC,KAAa,SAAuB;AACrE,SAAO,MAAM,KAAK,IAAI;AACvB;;;ADjBO,IAAM,YAAY,MAAM;AAC9B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AAEvC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,IAAI;AAErC,QAAM,eAAe,YAAY,YAAY;AAC5C,sBAAkB,kBAAkB,CAAC;AACrC,UAAM,QAAQC,SAAQ,WAAW;AAEjC,eAAW,IAAI;AAEf,UAAM,UAAyB;AAAA,MAC9B,QAAQ;AAAA,MACR,QAAQ,MAAM,WAAW;AAAA,IAC1B;AAKE,oBAAgB,qBAAqB;AAErC,IAAAC,YAAW,WAAW;AAItB,eAAW,IAAI;AAAA,EAoBlB,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AE5EA,SAAS,eAAAC,cAAa,YAAAC,iBAAgB;;;ACAtC,OAAO,WAAqF;AAA5F;AAIA,IAAM,iBAAgB,qBAAgB,gBAAgB,MAAhC,YAAqC;AAE3D,IAAM,kBAAkB;AAExB,SAAS,eAAuB;AARhC,MAAAC;AASC,UAAOA,MAAA,gBAAgB,gBAAgB,MAAhC,OAAAA,MAAqC;AAC7C;AAEA,SAAS,sBAAqC;AAZ9C,MAAAA,KAAA;AAaC,QAAM,WAAW,MAAM,OAAO;AAAA,IAC7B,UAAS,MAAAA,MAAA,gBAAgB,SAAS,MAAzB,gBAAAA,IAA4B,cAA5B,mBAAuC;AAAA,IAChD,SAAS;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,gBAAe,2BAAgB,eAAe,MAA/B,mBAAkC,aAAlC,YAA8C;AAAA,MAC7D,cAAa,2BAAgB,eAAe,MAA/B,mBAAkC,WAAlC,YAA4C;AAAA,MACzD,eAAe,GAAG,aAAa;AAAA,IAChC;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB;AAAA,EAClB,CAAC;AAED,WAAS,aAAa,QAAQ;AAAA,IAC7B,CAAC,WAAuC;AACvC,YAAM,QAAQ,aAAa;AAE3B,UAAI,SAAS,OAAO,SAAS;AAC5B,eAAO,QAAQ,gBAAgB,GAAG,KAAK;AAAA,MACxC;AAEA,MAAC,OAAe,WAAW,EAAE,YAAW,oBAAI,KAAK,GAAE,QAAQ,EAAE;AAE7D,aAAO;AAAA,IACR;AAAA,IACA,CAAC,UAAsB;AACtB,cAAQ,MAAM,8BAA8B,KAAK;AACjD,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC5B;AAAA,EACD;AAEA,WAAS,aAAa,SAAS;AAAA,IAC9B,CAAC,aAA4B;AAC5B,aAAO;AAAA,IACR;AAAA,IACA,OAAO,UAAsB;AAhD/B,UAAAA;AAiDG,YAAM,kBAAkB,MAAM;AAE9B,YAAIA,MAAA,MAAM,aAAN,gBAAAA,IAAgB,YAAW,OAAO,CAAC,gBAAgB,QAAQ;AAC9D,wBAAgB,aAAa;AAC7B,gBAAQ,KAAK,2CAA2C;AAAA,MACzD;AAEA,UAAI,CAAC,MAAM,UAAU;AACpB,gBAAQ,MAAM,kBAAkB,MAAM,OAAO;AAC7C,cAAM,UAAU;AAAA,MACjB;AAEA,UAAI,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK;AACnD,gBAAQ,MAAM,iBAAiB,MAAM,SAAS,QAAQ,MAAM,SAAS,IAAI;AACzE,cAAM,UAAU;AAAA,MACjB;AAEA,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC5B;AAAA,EACD;AAEA,SAAO;AACR;AAEA,IAAM,gBAA+B,oBAAoB;AAEzD,IAAO,gBAAQ;;;ADpEf,SAAS,WAAAC,gBAAe;AAgBjB,IAAM,aAAa,MAAM;AAC/B,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,IAAI;AAEvC,QAAM,CAAC,MAAM,OAAO,IAAIA,UAAS,IAAI;AAErC,QAAM,gBAAgBC;AAAA,IACrB,OAAOC,UAQD;AA3CR,UAAAC,KAAA;AA4CG,YAAM,QAAQJ,SAAQ,WAAW;AAEjC,iBAAW,IAAI;AAEf,YAAM,UAAU;AAAA,QACf,QAAQ;AAAA,QACR,QAAQ,+BAAO;AAAA,QACf,YAAW,YAAAI,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,eAAhB,mBAA4B,eAA5B,YAA0C;AAAA,QACrD,eAAc,0CAAO,YAAP,mBAAgB,iBAAhB,YAAgC;AAAA,QAC9C,kBAAiB,0CAAO,aAAP,mBAAiB,cAAjB,YAA8B;AAAA,QAC/C,gBAAe,0CAAO,aAAP,mBAAiB,iBAAjB,YAAiC;AAAA,QAEhD,cAAa,KAAAD,SAAA,gBAAAA,MAAM,gBAAN,YAAqB;AAAA,QAClC,eAAc,KAAAA,SAAA,gBAAAA,MAAM,aAAN,YAAkB;AAAA,QAChC,gBAAe,KAAAA,SAAA,gBAAAA,MAAM,iBAAN,YAAsB;AAAA,QACrC,eAAc,KAAAA,SAAA,gBAAAA,MAAM,gBAAN,YAAqB;AAAA,QACnC,gBAAe,KAAAA,SAAA,gBAAAA,MAAM,iBAAN,YAAsB;AAAA,QACrC,cAAc;AAAA,QAEd,kBAAiB,KAAAA,SAAA,gBAAAA,MAAM,eAAN,YAAoB;AAAA,MACtC;AAEA,aAAO,cACL,KAAK,UAAU,UAAU,SAAS;AAAA,QAClC,QAAQ;AAAA,UACP,UAAS,KAAAA,SAAA,gBAAAA,MAAM,YAAN,YAAiB;AAAA,QAC3B;AAAA,MACD,CAAC,EACA,KAAK,CAAC,QAAQ;AACd,wBAAgB,qBAAqB;AACrC,wBAAgB,QAAQ;AAExB,gBAAQ,2BAAK,IAAI;AAEjB,mBAAW,IAAI;AAEf,eAAO,2BAAK;AAAA,MACb,CAAC,EACA,MAAM,CAAC,QAAQ;AAlFpB,YAAAC;AAmFK,mBAAW,IAAI;AAEf,iBAAS,GAAG;AAEZ,gBAAOA,MAAA,2BAAK,aAAL,gBAAAA,IAAe;AAAA,MACvB,CAAC,EACA,QAAQ,MAAM;AACd,mBAAW,KAAK;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,CAAC;AAAA,EACF;AAEA,SAAO;AAAA,IACN;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AExGA,SAAS,eAAAC,cAAa,YAAAC,iBAAgB;AAMtC,SAAS,WAAAC,gBAAe;AAMjB,IAAM,iBAAiB,MAAM;AACnC,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,IAAI;AAEvC,QAAM,CAAC,MAAM,OAAO,IAAIA,UAAS,IAAI;AAErC,QAAM,kBAAkBC,aAAY,OAAOC,UAA2B;AAvBvE,QAAAC,KAAA;AAwBE,UAAM,QAAQJ,SAAQ,WAAW;AAEjC,eAAW,IAAI;AAEf,UAAII,MAAA,+BAAO,aAAP,gBAAAA,IAAiB,YAAW,QAAQ;AACvC,YAAM,UAAU;AAAA,QACf,QAAQ;AAAA,QACR,QAAQ,+BAAO;AAAA,QACf,cAAcD,SAAA,gBAAAA,MAAM;AAAA,MACrB;AAEA,aAAO,cACL,KAAK,UAAU,eAAe,OAAO,EACrC,KAAK,CAAC,QAAQ;AACd,wBAAgB,qBAAqB;AACrC,gBAAQ,2BAAK,IAAI;AAEjB,mBAAW,IAAI;AAEf,eAAO,2BAAK;AAAA,MACb,CAAC,EACA,MAAM,CAAC,QAAQ;AA7CpB,YAAAC;AA8CK,mBAAW,IAAI;AAEf,iBAAS,GAAG;AAEZ,gBAAOA,MAAA,2BAAK,aAAL,gBAAAA,IAAe;AAAA,MACvB,CAAC,EACA,QAAQ,MAAM;AACd,mBAAW,KAAK;AAAA,MACjB,CAAC;AAAA,IACH,aAAW,oCAAO,aAAP,mBAAiB,YAAW,UAAU;AAChD,YAAM,aAAY,0CAAO,mBAAP,mBACf,OAAO,CAAC,SAAc,KAAK,SAAS,OADrB,mBAEf,KAAK,CAAC,SAAc,KAAK,WAAW,UAAU,EAAC,6BAAM;AAExD,YAAM,UAAU;AAAA,QACf,QAAQ;AAAA,QACR,WAAW,OAAO,UAAU,IAAI;AAAA,QAChC,WAAW,OAAO,UAAU,IAAI;AAAA,QAChC,eAAeD,SAAA,gBAAAA,MAAM;AAAA,QACrB,SAAQ,iBAAM,aAAN,mBAAgB,aAAhB,YAA4B;AAAA,QACpC,UAAS,iBAAM,aAAN,mBAAgB,iBAAhB,YAAgC;AAAA,MAC1C;AAEA,aAAO,cACL,KAAK,UAAU,iBAAiB,OAAO,EACvC,KAAK,CAAC,QAAQ;AACd,gBAAQ,2BAAK,IAAI;AAEjB,mBAAW,IAAI;AASf,wBAAgB,wBAAwB,IAAI;AAE5C,eAAO,2BAAK;AAAA,MACb,CAAC,EACA,MAAM,CAAC,QAAQ;AAvFpB,YAAAC;AAwFK,mBAAW,IAAI;AAEf,iBAAS,GAAG;AAEZ,gBAAOA,MAAA,2BAAK,aAAL,gBAAAA,IAAe;AAAA,MACvB,CAAC,EACA,QAAQ,MAAM;AACd,mBAAW,KAAK;AAAA,MACjB,CAAC;AAAA,IACH,OAAO;AACN,YAAM,oBAAoB;AAAA,IAC3B;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACN;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AC9GA,SAAS,YAAAC,WAAU,iBAAiB;AAI7B,IAAM,mBAAmB,MAAgB;AAC/C,QAAM,EAAE,YAAY,cAAc,QAAQ,cAAc,UAAU,UAAU,IAC3E,gBAAgB,SAAS,EAAE;AAC5B,QAAM,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAmB,eAAe;AAElE,YAAU,MAAM;AACf,UAAM,cAAc,gBAAgB,UAAU,MAAM;AACnD,YAAM,EAAE,YAAAC,aAAY,cAAAC,eAAc,QAAAC,SAAQ,cAAAC,eAAc,UAAAC,WAAU,WAAAC,WAAU,IAC3E,gBAAgB,SAAS,EAAE;AAC5B,YAAM,kBAAkB;AAAA,QACvB,cAAAF;AAAA,QACA,QAAAD;AAAA,QACA,iBAAiBG;AAAA,QACjB,UAAAD;AAAA,QACA,YAAAJ;AAAA,QACA,cAAAC;AAAA,MACD;AACA,kBAAY,eAAe;AAAA,IAC5B,CAAC;AAED,WAAO;AAAA,EACR,GAAG,CAAC,CAAC;AAEL,SAAO;AACR;;;ACpCA,SAAS,YAAAK,WAAU,aAAAC,kBAAiB;AAG7B,IAAM,2BAA2B,MAAM;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAIC,UAA6B,gBAAgB,gBAAgB,CAAC;AAExF,EAAAC,WAAU,MAAM;AACf,UAAM,cAAc,gBAAgB,UAAU,MAAM;AACnD,eAAS,gBAAgB,gBAAgB,CAAC;AAAA,IAC3C,CAAC;AAED,WAAO;AAAA,EACR,GAAG,CAAC,CAAC;AAEL,SAAO;AACR;;;ACfA,SAAS,QAAAC,OAAM,eAAAC,oBAAmB;;;ACAlC;AAAA,EACC,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,EACA,oBAAAC;AAAA,EACA;AAAA,EACA,cAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,OACM;AACP,SAAgB,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,kBAAgB;;;AClCnD;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,SAAgB,aAAAC,YAAW,SAAS,YAAAC,iBAAgB;;;ACtCpD,SAAS,YAAAC,WAAU,aAAAC,kBAAiB;AAI7B,SAAS,cAAwB;AACvC,QAAM,CAAC,OAAO,QAAQ,IAAIC,UAAmB,gBAAgB,SAAS,CAAC;AAEvE,EAAAC,WAAU,MAAM;AACf,UAAM,cAAc,gBAAgB,UAAU,MAAM;AACnD,eAAS,gBAAgB,SAAS,CAAC;AAAA,IACpC,CAAC;AAED,WAAO;AAAA,EACR,GAAG,CAAC,CAAC;AAEL,SAAO;AACR;;;ACdA,SAAS,eAAAC,cAAa,kBAAkB;;;ACFxC,SAAS,eAAe,YAAY,YAAAC,iBAA2B;AAC/D,SAAS,UAAU,aAAyB;AA0B1C,SASE,KATF;AApBF,IAAM,eAAe,cAA4C,MAAS;AAEnE,IAAM,WAAW,MAAM;AAC7B,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,4CAA4C;AACtE,SAAO;AACR;AAEO,IAAM,gBAAgB,CAAC,EAAE,SAAS,MAA+B;AACvE,QAAM,CAAC,MAAM,OAAO,IAAIA,UAAS,KAAK;AACtC,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,EAAE;AACzC,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAqB,MAAM;AAE3D,QAAM,YAAY,CAAC,KAAa,MAAkB,WAAW;AAC5D,eAAW,GAAG;AACd,gBAAY,GAAG;AACf,YAAQ,IAAI;AAAA,EACb;AAEA,SACC,qBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,UAAU,GACxC;AAAA;AAAA,IACD;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,SAAS,MAAM,QAAQ,KAAK;AAAA,QAC5B,cAAc,EAAE,UAAU,OAAO,YAAY,QAAQ;AAAA,QAErD;AAAA,UAAC;AAAA;AAAA,YACA,SAAQ;AAAA,YACR;AAAA,YACA,SAAS,MAAM,QAAQ,KAAK;AAAA,YAC5B,IAAI,EAAE,OAAO,OAAO;AAAA,YAEnB;AAAA;AAAA,QACF;AAAA;AAAA,IACD;AAAA,KACD;AAEF;;;AD/BA,IAAM,eAAe;AAAA,EACpB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACP;AAEA,IAAM,UAAU,CAAC,OAA4B,WAA2C;AACvF,MAAI,OAAO,SAAS,aAAa;AAChC,WAAO,iCACH,QADG;AAAA,MAEN,WAAW,OAAO;AAAA,IACnB;AAAA,EACD,WAAW,OAAO,SAAS,aAAa;AACvC,WAAO,iCACH,QADG;AAAA,MAEN,WAAW;AAAA,MACX,MAAM,OAAO;AAAA,IACd;AAAA,EACD,WAAW,OAAO,SAAS,WAAW;AACrC,WAAO,iCACH,QADG;AAAA,MAEN,SAAS;AAAA,MACT,OAAO,OAAO;AAAA,IACf;AAAA,EACD,WAAW,OAAO,SAAS,SAAS;AACnC,WAAO;AAAA,MACN,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,EACD;AACA,QAAM,MAAM,iBAAiB;AAC9B;AAEO,IAAM,gBAAgB,CAC5B,QAAwB,CAAC,MACqD;AAC9E,QAAM,EAAE,YAAY,MAAM,UAAU,KAAK,IAAI;AAE7C,QAAM,EAAE,UAAU,IAAI,SAAS;AAE/B,QAAM,CAAC,OAAO,QAAQ,IAAI,WAAW,SAAS,YAAY;AAE1D,QAAM,aAAaC;AAAA,IAClB,CAAC,KAAa,SAAS,CAAC,MAAM;AAC7B,eAAS;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACV,CAAC;AAED,oBACE,IAAI,KAAK,MAAM,EACf,KAAK,CAAC,QAAQ;AAxEnB,YAAAC,KAAA;AAyEK,aAAIA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS;AACtB,mBAAS;AAAA,YACR,MAAM;AAAA,YACN,SAAS,IAAI;AAAA,UACd,CAAC;AAED,iDAAY,IAAI,MAAM;AAAA,QACvB,OAAO;AACN,mBAAS;AAAA,YACR,MAAM;AAAA,YACN,SAAS,IAAI;AAAA,UACd,CAAC;AAED,qBAAU,SAAI,SAAJ,mBAAU,SAAS,OAAO;AAEpC,6CAAU,IAAI,MAAM;AAAA,QACrB;AAAA,MACD,CAAC,EACA,MAAM,CAAC,QAAQ;AA3FpB,YAAAA,KAAA;AA4FK,cAAM,QAAQ;AAAA,UACb,SAAQ,MAAAA,MAAA,IAAI,aAAJ,gBAAAA,IAAc,WAAd,YAAwB;AAAA,UAChC,WACC,eAAI,aAAJ,mBAAc,SAAd,mBAAoB,aACpB,eAAI,aAAJ,mBAAc,SAAd,mBAAoB,YACpB,IAAI,WACJ;AAAA,UACD,OAAM,eAAI,aAAJ,mBAAc,SAAd,YAAsB;AAAA,UAC5B,aAAY,eAAI,aAAJ,mBAAc,eAAd,YAA4B;AAAA,UACxC,OAAM,gCAAK,SAAL,YAAa;AAAA,UACnB,OAAM,gCAAK,SAAL,YAAa;AAAA,QACpB;AAEA,kBAAU,MAAM,SAAS,OAAO;AAEhC,iBAAS;AAAA,UACR,MAAM;AAAA,UACN,SAAS;AAAA,QACV,CAAC;AAED,2CAAU,OAAO;AAAA,MAClB,CAAC,EACA,QAAQ,MAAM;AACd,iBAAS;AAAA,UACR,MAAM;AAAA,UACN,SAAS;AAAA,QACV,CAAC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,CAAC,WAAW,SAAS,SAAS;AAAA,EAC/B;AAEA,SAAO,CAAC,YAAY,KAAK;AAC1B;AAEO,IAAM,iBAAiB,CAC7B,QAAwB,CAAC,MAIrB;AACJ,QAAM,EAAE,YAAY,MAAM,UAAU,MAAM,uBAAuB,MAAM,IAAI;AAE3E,QAAM,EAAE,UAAU,IAAI,SAAS;AAE/B,QAAM,CAAC,OAAO,QAAQ,IAAI,WAAW,SAAS,YAAY;AAE1D,QAAM,cAAcD;AAAA,IACnB,OAAO,KAAa,SAAY,SAAS,CAAC,MAAM;AA5IlD,UAAAC,KAAA;AA6IG,eAAS;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACV,CAAC;AAED,UAAI;AACH,YAAI;AACH,gBAAM,MAAM,MAAM,cAAc,KAAK,KAAK,SAAS,MAAM;AACzD,mBAAS;AAAA,YACR,MAAM;AAAA,YACN,SAAS,IAAI;AAAA,UACd,CAAC;AAED,iDAAY,IAAI,MAAM;AACtB,cAAI,CAAC,sBAAsB;AAC1B,uBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AAAA,UACvC;AAAA,QACD,SAAS,KAAU;AAClB,gBAAM,QAAQ;AAAA,YACb,SAAQ,eAAI,aAAJ,mBAAc,WAAd,YAAwB;AAAA,YAChC,WACC,eAAI,aAAJ,mBAAc,SAAd,mBAAoB,aACpB,eAAI,aAAJ,mBAAc,SAAd,mBAAoB,YACpB,IAAI,WACJ;AAAA,YACD,OAAM,eAAI,aAAJ,mBAAc,SAAd,YAAsB;AAAA,YAC5B,aAAY,eAAI,aAAJ,mBAAc,eAAd,YAA4B;AAAA,YACxC,OAAM,gCAAK,SAAL,YAAa;AAAA,YACnB,OAAM,gCAAK,SAAL,YAAa;AAAA,UACpB;AAEA,oBAAU,MAAM,SAAS,OAAO;AAEhC,mBAAS;AAAA,YACR,MAAM;AAAA,YACN,SAAS;AAAA,UACV,CAAC;AAED,6CAAU,OAAO;AAAA,QAClB;AAAA,MACD,UAAE;AACD,iBAAS;AAAA,UACR,MAAM;AAAA,UACN,SAAS;AAAA,QACV,CAAC;AAAA,MACF;AAAA,IACD;AAAA,IACA,CAAC,WAAW,SAAS,SAAS;AAAA,EAC/B;AAEA,SAAO,CAAC,aAAa,KAAK;AAC3B;;;AEhMA,SAAkB,gBAAgB;AAElC,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,MAQK;AACH,QAAM,QAAQ,SAAS;AACvB,SAAO;AAAA,IACL,UAAU;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW;AAAA,QACT,WAAW;AAAA,QACX,QAAQ,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MACjD;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,MAC9D;AAAA,OACG;AAAA,IAEL,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,MACX,QAAQ,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAC/C,QAAQ;AAAA,MACR,WAAW;AAAA,QACT,WAAW;AAAA,QACX,QAAQ,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MACjD;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,MAC9D;AAAA,OACG;AAAA,IAEL,UAAU;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,MACd,iBAAiB,MAAM,QAAQ,KAAK,GAAG;AAAA,MACvC,WAAW,eAAe,MAAM,QAAQ,QAAQ,KAAK;AAAA,MACrD,QAAQ,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAC/C,QAAQ;AAAA,MACR,WAAW;AAAA,QACT,WAAW,eAAe,MAAM,QAAQ,QAAQ,IAAI;AAAA,QACpD,QAAQ,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MACjD;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,MAC9D;AAAA,OACG;AAAA,EAEP;AACF;AAEA,IAAO,iBAAQ;;;AJmLZ,SAiXD,UAjXC,OAAAC,MAOC,QAAAC,aAPD;AAzLH,IAAM,qBAAqB,CAAC,EAAE,MAAM,cAAc,MAAW;AApE7D,MAAAC,KAAA;AAqEC,QAAM,QAAQ,YAAY;AAC1B,QAAM,QAAQC,UAAS;AACvB,QAAM,EAAE,UAAU,IAAI,SAAS;AAC/B,QAAM,EAAE,UAAU,SAAS,SAAS,IAAI,eAAU;AAAA,IACjD,YAAUD,MAAA,MAAM,cAAN,gBAAAA,IAAiB,aAAY,CAAC;AAAA,IACxC,WAAS,WAAM,cAAN,mBAAiB,YAAW,CAAC;AAAA,IACtC,YAAU,WAAM,cAAN,mBAAiB,aAAY,CAAC;AAAA,EACzC,CAAC;AAED,QAAM,CAAC,qBAAqB,sBAAsB,IAAIE,UAAS,KAAK;AACpE,QAAM,CAAC,qBAAqB,sBAAsB,IAAIA,UAAS,KAAK;AACpE,QAAM,CAAC,4BAA4B,6BAA6B,IAAIA,UAAS,KAAK;AAClF,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,KAAK;AAEhE,QAAM,yBAAyB,CAAC,MAA2B,SAAc;AACxE,oBAAgB,kBAAkB,kCAAK,OAAS,KAAM;AAAA,EACvD;AAEA,QAAM,wBAAwB,CAAC,MAA2B,SAAc;AAvFzE,QAAAF,KAAAG,KAAAC,KAAAC;AAwFE,UAAM,YAAY,kCAAK,OAAS;AAChC,2BAAuB,IAAI;AAE3B,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,WAAW,OAAO,UAAU,IAAI;AAAA,MAChC,WAAW,OAAO,UAAU,IAAI;AAAA,MAChC,eAAe,UAAU;AAAA,MACzB,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,UAASE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC1C;AAEA,kBACE,KAAK,UAAU,iBAAiB,OAAO,EACvC,KAAK,CAAC,QAAQ;AAtGlB,UAAAL;AAuGI,iBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AAAA,IACvC,CAAC,EACA,MAAM,CAAC,QAAQ;AAzGnB,UAAAA,KAAAG,KAAAC,KAAAC;AA0GI,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACd,6BAAuB,KAAK;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,QAAM,wBAAwB,CAAC,MAA2B,SAAc;AAtHzE,QAAAL,KAAAG,KAAAC,KAAAC;AAuHE,UAAM,YAAY,kCAAK,OAAS;AAChC,2BAAuB,IAAI;AAE3B,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,WAAW,OAAO,UAAU,IAAI;AAAA,MAChC,eAAe,UAAU;AAAA,MACzB,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,UAASE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC1C;AAEA,kBACE,KAAK,UAAU,iBAAiB,OAAO,EACvC,KAAK,CAAC,QAAQ;AArIlB,UAAAL,KAAAG,KAAAC;AAsII,YAAIJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS,GAAG;AAC/B,yBAAiB;AAAA,MAClB;AACA,YAAIG,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS,GAAG;AAC/B,yBAAiB;AAAA,MAClB;AACA,iBAAUC,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AAAA,IACvC,CAAC,EACA,MAAM,CAAC,QAAQ;AA9InB,UAAAJ,KAAAG,KAAAC,KAAAC;AA+II,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACd,6BAAuB,KAAK;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,QAAM,+BAA+B,CAAC,MAA2B,MAAW,SAAiB;AA3J9F,QAAAL,KAAAG,KAAAC,KAAAC;AA4JE,UAAM,YAAY,kCAAK,OAAS;AAChC,kCAA8B,IAAI;AAElC,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,iBAAiB,SAAS,aAAa,OAAO,UAAU,IAAI,KAAK,SAAS,UAAU,IAAI;AAAA,MACxF,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,UAASE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC1C;AAEA,kBACE,KAAK,UAAU,iCAAiC,OAAO,EACvD,KAAK,CAAC,QAAQ;AAzKlB,UAAAL;AA0KI,iBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AAAA,IACvC,CAAC,EACA,MAAM,CAAC,QAAQ;AA5KnB,UAAAA,KAAAG,KAAAC,KAAAC;AA6KI,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACd,oCAA8B,KAAK;AAAA,IACpC,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,CAAC,MAA2B,SAAc;AAzLvE,QAAAL,KAAAG,KAAAC,KAAAC;AA0LE,UAAM,YAAY,kCAAK,OAAS;AAChC,yBAAqB,IAAI;AAEzB,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,WAAW,OAAO,UAAU,IAAI;AAAA,MAChC,WAAW,aAAa,UAAU,OAAO,CAAC;AAAA,MAC1C,eAAe,UAAU;AAAA,MACzB,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,UAASE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC1C;AAEA,kBACE,KAAK,UAAU,qBAAqB,OAAO,EAC3C,KAAK,CAAC,QAAQ;AAzMlB,UAAAL;AA0MI,iBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AAAA,IACvC,CAAC,EACA,MAAM,CAAC,QAAQ;AA5MnB,UAAAA,KAAAG,KAAAC,KAAAC;AA6MI,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACd,2BAAqB,KAAK;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,QAAM,CAAC,YAAY,IAAI,eAIpB;AAEH,QAAM,CAAC,YAAY,IAAI,eAIpB;AAEH,QAAM,mBAAmB,MAAM;AArOhC,QAAAL;AAsOE,UAAM,UAAU;AAAA,MACf,UAAQA,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS;AAAA,MACjC,QAAQ,MAAM;AAAA,IACf;AACA,iBAAa,UAAU,WAAW,OAAO;AAAA,EAC1C;AAEA,QAAM,mBAAmB,MAAM;AA7OhC,QAAAA;AA8OE,UAAM,UAAU;AAAA,MACf,UAAQA,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS;AAAA,MACjC,QAAQ,MAAM;AAAA,IACf;AAEA,iBAAa,UAAU,WAAW,OAAO;AAAA,EAC1C;AAEA,SACC,gBAAAD;AAAA,IAAC;AAAA;AAAA,MAEA,IAAI;AAAA,QACH,QAAQ;AAAA,MACT;AAAA,MAEA;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,YAEA,0BAAAC,MAAC,cAAW;AAAA;AAAA,eAAM,kCAAM,SAAN,YAAc;AAAA,cAAG;AAAA,eAAE;AAAA;AAAA,QACtC;AAAA,QACA,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,OAAO;AAAA,YACR;AAAA,YAEA,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACA,SAAQ;AAAA,gBACR,IAAI;AAAA,kBACH,IAAI;AAAA,kBACJ,cAAc;AAAA,kBACd,OAAO;AAAA,gBACR;AAAA,gBAEC,6CAAM,WAAN,YAAgB;AAAA;AAAA,YAClB;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,MAAM;AAAA,YACP;AAAA,YAEA,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACA,MAAK;AAAA,gBACL,aAAY;AAAA,gBACZ,WAAS;AAAA,gBACT,QAAO,6BAAM,UAAS;AAAA,gBACtB,WACC,6BAAM,UAAS,KACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQA,EAAE,UAAS,kCAAM,WAAN,YAAgB,EAAE,KAC7B;AAAA,gBAED,UAAU,CAAC,MAAM;AAChB,yCAAuB,MAAM,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC;AAAA,gBACvD;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,MAAM;AAAA,YACP;AAAA,YAEA,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACA,IAAI;AAAA,kBACH,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,gBAAgB;AAAA,kBAChB,KAAK;AAAA,gBACN;AAAA,gBAEC;AAAA,gDAAM,UAAS,KACf,gBAAAD,KAAC,WAAQ,QAAO,6BAAM,gCAA6B,SAAS,UAC3D,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACA,UAAS,6BAAM,gCAA6B,cAAc;AAAA,sBAC1D,KAAI,6BAAM,4CAAmC,mBAAK,YAAa,mBAAK;AAAA,sBACpE,SAAS,MAAM;AACd,4BAAI,KAAK,8BAA4B;AACpC,uDAA6B,MAAM,EAAE,QAAQ,MAAM,GAAG,YAAY;AAAA,wBACnE,OAAO;AACN,uDAA6B,MAAM,EAAE,QAAQ,KAAK,GAAG,UAAU;AAAA,wBAChE;AAAA,sBACD;AAAA,sBACA,WACE,6BAAM,8CAAoC,6BAAM,iCACjD;AAAA,sBAGA,eAAK,+BACL,gBAAAC;AAAA,wBAAC;AAAA;AAAA,0BACA,IAAI;AAAA,4BACH,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,gBAAgB;AAAA,4BAChB,KAAK;AAAA,4BACL,OAAO;AAAA,0BACR;AAAA,0BAEA;AAAA,4CAAAD;AAAA,8BAAC;AAAA;AAAA,gCACA,SAAQ;AAAA,gCACR,IAAI;AAAA,kCACH,UAAU;AAAA,kCACV,OAAO,KAAK,+BAA6B,SAAS;AAAA,gCACnD;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA,4BACC,6BACA,gBAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,MAAK;AAAA,gCACL,IAAI;AAAA,kCACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,gCAC9B;AAAA;AAAA,4BACD,IACC,gBAAAA,KAAC,aAAU;AAAA;AAAA;AAAA,sBACd,IACC,gBAAAC;AAAA,wBAAC;AAAA;AAAA,0BACD,IAAI;AAAA,4BACH,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,gBAAgB;AAAA,4BAChB,KAAK;AAAA,4BACL,OAAO;AAAA,0BACR;AAAA,0BAEA;AAAA,4CAAAD;AAAA,8BAAC;AAAA;AAAA,gCACA,SAAQ;AAAA,gCACR,IAAI;AAAA,kCACH,OAAO,KAAK,+BAA6B,SAAS;AAAA,kCAClD,UAAU;AAAA,gCACX;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA,4BACC,6BACA,gBAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,MAAK;AAAA,gCACL,IAAI;AAAA,kCACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,gCAC9B;AAAA;AAAA,4BACD,IACC,gBAAAA,KAAC,SAAM;AAAA;AAAA;AAAA,sBACV;AAAA;AAAA,kBAEF,GACD;AAAA,mBAIA,6BAAM,UAAS,KACf,gBAAAA,KAAC,WAAQ,OAAM,QACd,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACA,UAAS,6BAAM,gCAA6B,aAAa;AAAA,sBACzD,OAAM;AAAA,sBACN,KACC,6BAAM,gCACL,mBAAK,YACJ,iCACG,UADH;AAAA,wBAEA,QAAQ,aAAa,MAAM,QAAQ,QAAQ,KAAK;AAAA,wBAChD,WAAW;AAAA,0BACV,SAAS;AAAA,0BACT,WAAW,eAAe,MAAM,QAAQ,QAAQ,KAAK;AAAA,0BACrD,QAAQ,aAAa,MAAM,QAAQ,QAAQ,KAAK;AAAA,wBACjD;AAAA,wBACA,YAAY;AAAA,0BACX,SAAS;AAAA,0BACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,wBAC7D;AAAA,sBACD;AAAA,sBAEF,SAAS,MAAM;AACd,8CAAsB,MAAM,CAAC,CAAC;AAAA,sBAC/B;AAAA,sBACA,WAAU,6BAAM,iCAA8B;AAAA,sBAE7C,gCACA,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACA,MAAK;AAAA,0BACL,OAAM;AAAA;AAAA,sBACP,IACC,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACD,IAAI;AAAA,4BACH,QAAO,6BAAM,gCAA6B,YAAY;AAAA,0BACvD;AAAA;AAAA,sBACD;AAAA;AAAA,kBAEF,GACD;AAAA,mBAGA,6BAAM,UAAS,KACf,gBAAAA,KAAC,WAAQ,OAAM,cACd,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACA,UAAS,6BAAM,oCAA+B,cAAc;AAAA,sBAC5D,KAAI,6BAAM,oCAA+B,mBAAK,WAAY,mBAAK;AAAA,sBAC/D,SAAS,MAAM;AACd,8CAAsB,MAAM;AAAA,0BAC3B,aAAa;AAAA,wBACd,CAAC;AAAA,sBACF;AAAA,sBACA,WAAU,6BAAM;AAAA,sBAEf,gCACA,gBAAAA,KAAC,oBAAiB,MAAK,QAAO,IAC7B,gBAAAA,KAAC,aAAU;AAAA;AAAA,kBACd,GACD;AAAA,mBAGA,6BAAM,UAAS,KACf,gBAAAA,KAAC,WAAQ,QAAO,6BAAM,gCAA6B,SAAS,UAC3D,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACA,UAAS,6BAAM,gCAA6B,cAAc;AAAA,sBAC1D,KAAI,6BAAM,4CAAmC,mBAAK,YAAa,mBAAK;AAAA,sBACpE,SAAS,MAAM;AACd,4BAAI,KAAK,8BAA4B;AACpC,uDAA6B,MAAM,EAAE,QAAQ,MAAM,GAAG,YAAY;AAAA,wBACnE,OAAO;AACN,uDAA6B,MAAM,EAAE,QAAQ,KAAK,GAAG,UAAU;AAAA,wBAChE;AAAA,sBACD;AAAA,sBACA,WACE,6BAAM,8CAAoC,6BAAM,iCACjD;AAAA,sBAGA,uCACA,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACA,MAAK;AAAA,0BACL,IAAI;AAAA,4BACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,0BAC9B;AAAA;AAAA,sBACD,IACC,KAAK,+BACN,gBAAAA,KAAC,aAAU,IACV,gBAAAA,KAAC,SAAM;AAAA;AAAA,kBACV,GACD;AAAA,mBAGA,6BAAM,UAAS,KACf,gBAAAA,KAAC,WAAQ,OAAM,YACd,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACA,UACC,6BAAM,kCAA8B,6BAAM,gDACzC,cACC;AAAA,sBAEH,OAAM;AAAA,sBACN,KACC,6BAAM,kCAA8B,6BAAM,gDACzC,iCACI,UADJ;AAAA,wBAEC,QAAQ,aAAa,MAAM,QAAQ,MAAM,KAAK;AAAA,wBAC9C,WAAW;AAAA,0BACV,SAAS;AAAA,0BACT,WAAW,eAAe,MAAM,QAAQ,MAAM,KAAK;AAAA,0BACnD,QAAQ,aAAa,MAAM,QAAQ,MAAM,KAAK;AAAA,wBAC/C;AAAA,wBACA,YAAY;AAAA,0BACX,SAAS;AAAA,0BACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,wBAC7D;AAAA,sBACD,KACC,mBACG;AAAA,sBAGN,SAAS,MAAM;AACd,4CAAoB,MAAM;AAAA,0BACzB,aAAa;AAAA,0BACb,aAAa;AAAA,0BACb,QAAQ;AAAA,0BACR,QAAQ;AAAA,wBACT,CAAC;AAAA,sBACF;AAAA,sBACA,WACC,6BAAM,kCACN,6BAAM,iDACN;AAAA,sBAGA,8BACA,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACA,MAAK;AAAA,0BACL,OAAM;AAAA;AAAA,sBACP,IACC,gBAAAA,KAAC,WAAQ;AAAA;AAAA,kBACZ,GACD;AAAA;AAAA;AAAA,YAEF;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,IA1SK,KAAK;AAAA,EA2SX;AAEF;AAEO,SAAS,mBAAmB;AAviBnC,MAAAE,KAAA;AAwiBC,QAAM,QAAQ,YAAY;AAC1B,QAAM,EAAE,UAAU,IAAI,SAAS;AAE/B,QAAM,CAAC,sBAAsB,uBAAuB,IAAIE,UAAS,KAAK;AAEtE,QAAM,cAAc,MAAM;AACzB,oBAAgB,wBAAwB,KAAK;AAAA,EAC9C;AAEA,QAAM,0BAA0B,MAAM;AAjjBvC,QAAAF,KAAAG,KAAAC,KAAAC;AAkjBE,4BAAwB,IAAI;AAE5B,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,UAASE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC1C;AAEA,kBACE,KAAK,UAAU,yBAAyB,OAAO,EAC/C,KAAK,CAAC,QAAQ;AA7jBlB,UAAAL;AA8jBI,iBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AACtC,sBAAgB,qBAAqB;AACrC,kBAAY;AAAA,IACb,CAAC,EACA,MAAM,CAAC,QAAQ;AAlkBnB,UAAAA,KAAAG,KAAAC,KAAAC;AAmkBI,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACd,8BAAwB,KAAK;AAAA,IAC9B,CAAC;AAAA,EACH;AAEA,QAAM,+BAA+B,MAAM;AA/kB5C,QAAAL,KAAAG,KAAAC,KAAAC;AAglBE,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,SAAQF,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAG,MAA4B;AAAA,MACpC,eAAcE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,IAC/C;AAEA,kBACE,KAAK,UAAU,0BAA0B,OAAO,EAChD,KAAK,CAAC,QAAQ;AAxlBlB,UAAAL;AAylBI,iBAAUA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,SAAS,SAAS;AACtC,sBAAgB,qBAAqB;AACrC,kBAAY;AAAA,IACb,CAAC,EACA,MAAM,CAAC,QAAQ;AA7lBnB,UAAAA,KAAAG,KAAAC,KAAAC;AA8lBI,YAAM,YACLF,OAAAH,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAG,IAAoB,aACpBE,OAAAD,MAAA,IAAI,aAAJ,gBAAAA,IAAc,SAAd,gBAAAC,IAAoB,YACpB,IAAI,WACJ;AACD,gBAAU,SAAS,OAAO;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,QAAM,iBAAgBL,MAAA,+BAAO,mBAAP,gBAAAA,IAAuB,KAAK,CAAC,UAAS,6BAAM;AAClE,QAAM,uBACL,gDAAO,mBAAP,mBAAuB,OAAO,CAAC,UAAS,6BAAM,+CAA9C,mBAAiF,WAAjF,YAA2F;AAE5F,QAAM,UAAS,oCAAO,mBAAP,mBAAuB,KAAK,CAAC,UAAS,6BAAM;AAC3D,QAAM,YAAW,oCAAO,mBAAP,mBAAuB,KAAK,CAAC,UAAS,6BAAM;AAC7D,SACC,gBAAAF,KAAA,YACC,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACA,MAAM,MAAM;AAAA,MACZ,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MACjB,UAAU;AAAA,MAEV,0BAAAC,MAAC,SAAM,IAAI,EAAE,cAAc,EAAE,GAC5B;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,eAAe;AAAA,cACf,WAAW;AAAA,cACX,QAAQ;AAAA,YACT;AAAA,YAEA;AAAA,8BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,IAAI,EAAE,eAAe,aAAa,YAAY,QAAQ,UAAU,OAAO;AAAA,kBAEtE;AAAA,yDAAO,YAAP,YAAkB;AAAA,oBAAG;AAAA;AAAA;AAAA,cACvB;AAAA,cAEA,gBAAAA,MAAC,OACA;AAAA,gCAAAD;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAM;AAAA,oBACN,SAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,UAAU,uBAAuB,KAAK,UAAU,iBAAiB;AAAA,oBACjE,WAAW,gBAAAA,KAAC,0BAAuB;AAAA,oBACnC;AAAA;AAAA,gBAED;AAAA,gBACA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAS;AAAA,oBACT,OAAM;AAAA,oBAEN,0BAAAA,KAAC,SAAM,IAAI,EAAE,OAAO,eAAe,GAAG;AAAA;AAAA,gBACvC;AAAA,iBACD;AAAA;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,WAAW;AAAA,cACX,QAAQ;AAAA,cACR,cAAc;AAAA,YACf;AAAA,YAEA,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACA,WAAW;AAAA,gBACX,IAAI;AAAA,kBACH,SAAS;AAAA,kBACT,WAAW;AAAA,gBACZ;AAAA,gBAEA,0BAAAC;AAAA,kBAAC;AAAA;AAAA,oBACA,IAAI;AAAA,sBACH,QAAQ;AAAA,oBACT;AAAA,oBAEA;AAAA,sCAAAD,KAAC,aACA,0BAAAC;AAAA,wBAAC;AAAA;AAAA,0BACA,IAAI;AAAA,4BACH,QAAQ;AAAA,0BACT;AAAA,0BAEA;AAAA,4CAAAD;AAAA,8BAAC;AAAA;AAAA,gCACA,IAAI;AAAA,kCACH,SAAS;AAAA,gCACV;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA,4BACA,gBAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,IAAI;AAAA,kCACH,SAAS;AAAA,gCACV;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA,4BAQA,gBAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,IAAI;AAAA,kCACH,SAAS;AAAA,gCACV;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA,4BACA,gBAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,IAAI;AAAA,kCACH,SAAS;AAAA,gCACV;AAAA,gCACA;AAAA;AAAA,4BAED;AAAA;AAAA;AAAA,sBACD,GACD;AAAA,sBACA,gBAAAA,KAAC,aACC,yCAAO,eAAe,IAAI,CAAC,SAC3B,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACA;AAAA,0BACA;AAAA;AAAA,sBACD,IAEF;AAAA;AAAA;AAAA,gBACD;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,GAAG;AAAA,YAEH,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACA,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,UAAU,wBAAwB,uBAAuB;AAAA,gBACzD,IAAI,EAAE,IAAI,GAAG,cAAc,QAAQ,eAAe,aAAa;AAAA,gBAE9D;AAAA,yCACA,gBAAAD;AAAA,oBAAC;AAAA;AAAA,sBACA,MAAK;AAAA,sBACL,OAAM;AAAA,sBACN,IAAI;AAAA,wBACH,aAAa;AAAA,sBACd;AAAA;AAAA,kBACD,IACC,gBAAAA;AAAA,oBAAC;AAAA;AAAA,sBACD,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,WAAW,EAAE,SAAS,aAAa;AAAA,wBACnC,aAAa;AAAA,wBACb,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,UAAU;AAAA,wBACV,YAAY;AAAA,wBACZ,YAAY;AAAA,wBACZ,eAAe;AAAA,wBACf,eAAe;AAAA,wBACf,OAAO;AAAA,wBACP,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,gBAAgB;AAAA,wBAChB,cAAc;AAAA,sBACf;AAAA,sBAEA,0BAAAA;AAAA,wBAAC;AAAA;AAAA,0BACA,IAAI;AAAA,4BACH,OAAO;AAAA,4BACP,UAAU;AAAA,4BACV,YAAY;AAAA,0BACb;AAAA;AAAA,sBACD;AAAA;AAAA,kBACD;AAAA,kBACA;AAAA;AAAA;AAAA,YAEF;AAAA;AAAA,QACD;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;AAEO,SAAS,mBAAmB,EAAE,KAAK,GAAQ;AA9xBlD,MAAAE,KAAA;AA+xBC,QAAM,QAAQ,YAAY;AAC1B,QAAM,CAAC,cAAc,eAAe,IAAIE,UAAS,EAAE;AACnD,QAAM,CAAC,YAAY,IAAI,eAAoC;AAAA,IAC1D,WAAW,MAAM;AAChB,sBAAgB,0BAA0B,KAAK;AAAA,IAChD;AAAA,EACD,CAAC;AAED,QAAM,CAAC,iBAAiB,IAAI,eAAyC;AAAA,IACpE,WAAW,MAAM;AAChB,sBAAgB,0BAA0B,KAAK;AAAA,IAChD;AAAA,EACD,CAAC;AAED,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,SAAS;AAEpE,QAAM,CAAC,mBAAmB,EAAE,MAAM,gBAAgB,WAAW,wBAAwB,CAAC,IACrF,eAAoB;AAAA,IACnB,sBAAsB;AAAA,EACvB,CAAC;AAEF,QAAM;AAAA,IACL;AAAA,IACA,EAAE,MAAM,uBAAuB,WAAW,+BAA+B;AAAA,EAC1E,IAAI,cAAmB;AAAA,IACtB,sBAAsB;AAAA,EACvB,CAAC;AAED,QAAM;AAAA,IACL;AAAA,IACA,EAAE,MAAM,sBAAsB,WAAW,8BAA8B;AAAA,EACxE,IAAI,eAKD;AAAA,IACF,sBAAsB;AAAA,EACvB,CAAC;AAED,QAAM,cAAc,MAAM;AACzB,oBAAgB,0BAA0B,KAAK;AAAA,EAChD;AAEA,QAAM,qBAAqB,CAAC,MAAW,SAAiB;AA30BzD,QAAAF,KAAAG,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAA;AA40BE,QAAI,SAAS,WAAW;AACvB,YAAM,UAAU;AAAA,QACf,gBAAenB,OAAAH,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAG,MAAgC;AAAA,QAC/C,SAAQE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAC,MAA4B;AAAA,QACpC,MAAM;AAAA,QACN,cAAaC,MAAA,6BAAM,iBAAN,OAAAA,MAAsB;AAAA,QACnC,kBAAiBE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,cAAhB,OAAAC,MAA6B;AAAA,QAC9C,WAAW,QAAOE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,eAAhB,OAAAC,MAA8B,EAAE;AAAA,QAClD,eAAcE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,MAC/C;AACA,mBAAa,UAAU,eAAe,OAAO;AAAA,IAC9C,WAAW,SAAS,SAAS;AAC5B,YAAM,UAAU;AAAA,QACf,gBAAeE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,QAC/C,SAAQE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,aAAhB,OAAAC,MAA4B;AAAA,QACpC,MAAM;AAAA,QACN,cAAaC,MAAA,6BAAM,eAAN,OAAAA,MAAoB;AAAA,QACjC,kBAAiBE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,cAAhB,OAAAC,MAA6B;AAAA,QAC9C,WAAW,QAAOE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,eAAhB,OAAAC,MAA8B,EAAE;AAAA,QAClD,eAAc,MAAAC,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,YAAgC;AAAA,MAC/C;AACA,mBAAa,UAAU,eAAe,OAAO;AAAA,IAC9C,WAAW,SAAS,SAAS;AAC5B,YAAM,UAAU;AAAA,QACf,gBAAe,iBAAM,aAAN,mBAAgB,iBAAhB,YAAgC;AAAA,QAC/C,SAAQ,iBAAM,aAAN,mBAAgB,aAAhB,YAA4B;AAAA,QACpC,MAAM;AAAA,QACN,cAAa,kCAAM,YAAN,YAAiB;AAAA,QAC9B,kBAAiB,iBAAM,aAAN,mBAAgB,cAAhB,YAA6B;AAAA,QAC9C,WAAW,QAAO,iBAAM,aAAN,mBAAgB,eAAhB,YAA8B,EAAE;AAAA,QAClD,eAAc,iBAAM,aAAN,mBAAgB,iBAAhB,YAAgC;AAAA,MAC/C;AACA,mBAAa,UAAU,eAAe,OAAO;AAAA,IAC9C,WAAW,SAAS,SAAS;AAC5B,YAAM,UAAU;AAAA,QACf,QAAQ;AAAA,QACR,SAAQ,iBAAM,aAAN,mBAAgB,aAAhB,YAA4B;AAAA,QACpC,kBAAiB,iBAAM,aAAN,mBAAgB,cAAhB,YAA6B;AAAA,QAC9C,oBAAmB,kCAAM,kBAAN,YAAuB;AAAA,MAC3C;AACA,wBAAkB,UAAU,iBAAiB,OAAO;AAAA,IACrD;AAAA,EACD;AAEA,EAAAC,WAAU,MAAM;AACf,sBAAkB,UAAU,aAAa;AAAA,MACxC,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT,CAAC;AAED,4BAAwB,UAAU,qBAAqB;AAAA,MACtD,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT,CAAC;AACD,6BAAyB,UAAU,kBAAkB;AAAA,EACtD,GAAG,CAAC,CAAC;AAEL,SACC,gBAAAzB,KAAA,YACC,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MACjB,WAAS;AAAA,MACT,UAAU;AAAA,MAEV,0BAAAC,MAAC,SAAM,IAAI,EAAE,cAAc,EAAE,GAC5B;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,WAAW;AAAA,YACZ;AAAA,YAEA;AAAA,8BAAAD,KAAC,cAAW,SAAQ,SAAQ,4BAAc;AAAA,cAC1C,gBAAAA,KAAC,cAAW,SAAS,aACpB,0BAAAA,KAAC,SAAM,GACR;AAAA;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAC;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,QAAQ;AAAA,cACR,cAAc;AAAA,YACf;AAAA,YAEA;AAAA,8BAAAA,MAAC,OAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,GAAG,QAAQ,OAAO,GAClD;AAAA,gCAAAD;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAS,sBAAsB,YAAY,cAAc;AAAA,oBACzD,SAAS,MAAM;AACd,2CAAqB,SAAS;AAAA,oBAC/B;AAAA,oBACA;AAAA;AAAA,gBAED;AAAA,gBACA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAS,sBAAsB,WAAW,cAAc;AAAA,oBACxD,SAAS,MAAM;AACd,2CAAqB,QAAQ;AAAA,oBAC9B;AAAA,oBACA;AAAA;AAAA,gBAED;AAAA,gBACA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAS,sBAAsB,WAAW,cAAc;AAAA,oBACxD,SAAS,MAAM;AACd,2CAAqB,QAAQ;AAC7B,wCAAkB,UAAU,aAAa;AAAA,wBACxC,QAAQ;AAAA,wBACR,QAAQ;AAAA,sBACT,CAAC;AAAA,oBACF;AAAA,oBACA;AAAA;AAAA,gBAED;AAAA,gBAEA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAS,sBAAsB,WAAW,cAAc;AAAA,oBACxD,SAAS,MAAM;AACd,2CAAqB,QAAQ;AAAA,oBAC9B;AAAA,oBACA;AAAA;AAAA,gBAED;AAAA,iBACD;AAAA,eAEE,iCACD,2BACA,mCACA,gBAAAC;AAAA,gBAAC;AAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,gBAAgB;AAAA,oBAChB,YAAY;AAAA,oBACZ,QAAQ;AAAA,kBACT;AAAA,kBAEA;AAAA,oCAAAD,KAAC,oBAAiB;AAAA,oBAAG;AAAA;AAAA;AAAA,cACtB;AAAA,cAEA,CAAC,iCACD,CAAC,2BACD,CAAC,kCACD,sBAAsB,aACrB,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,uBAEEE,MAAA,6DAAsB,SAAtB,gBAAAA,IAA4B,cAC5B,wEAAsB,SAAtB,mBAA4B,YAA5B,mBAAqC,UAAS,IAE9C,mBACC;AAAA,oBACH,KAAK;AAAA,oBACL,SAAS;AAAA,oBACT,UAAU;AAAA,oBACV,WAAW;AAAA,oBACX,cAAc;AAAA,kBACf;AAAA,kBAGC,8EAAsB,SAAtB,mBAA4B,cAC5B,wEAAsB,SAAtB,mBAA4B,YAA5B,mBAAqC,UAAS,KAE9C,wEAAsB,SAAtB,mBAA4B,YAA5B,mBAAqC,IAAI,CAAC,SAAc,UACvD,gBAAAD;AAAA,oBAAC;AAAA;AAAA,sBAEA,IAAI;AAAA,wBACH,GAAG;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,WAAW;AAAA,wBACX,SAAS;AAAA,wBACT,cAAc;AAAA,wBACd,WAAW,EAAE,SAAS,kBAAkB;AAAA,sBACzC;AAAA,sBAEA;AAAA,wCAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACH,IAAI;AAAA,8BACJ,OAAO;AAAA,8BACP,UAAU;AAAA,8BACV,SAAS;AAAA,8BACT,YAAY;AAAA,4BACb;AAAA,4BAEA;AAAA,8CAAAD,KAAC,kBAAe,IAAI,EAAE,aAAa,MAAM,GAAG;AAAA,8BAC3C,QAAQ;AAAA;AAAA;AAAA,wBACV;AAAA,wBAEA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,OAAM;AAAA,4BACN,IAAI;AAAA,8BACH,SAAS;AAAA,8BACT,WAAW,EAAE,SAAS,kBAAkB;AAAA,4BACzC;AAAA,4BACA,SAAS,MAAM;AACd,iDAAmB,SAAS,SAAS;AAAA,4BACtC;AAAA,4BAEA,0BAAAA,KAAC,QAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,oBApCK;AAAA,kBAqCN,KAEA,gBAAAC;AAAA,oBAAC;AAAA;AAAA,sBACD,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,gBAAgB;AAAA,wBAChB,eAAe;AAAA,sBAChB;AAAA,sBACA,GAAG;AAAA,sBAEH;AAAA,wCAAAD,KAAC,YAAS,OAAM,WAAU;AAAA,wBAE1B,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACH,UAAU;AAAA,8BACV,eAAe;AAAA,8BACf,eAAe;AAAA,8BACf,SAAS;AAAA,8BACT,YAAY;AAAA,8BACZ,gBAAgB;AAAA,8BAChB,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,OAAO;AAAA,8BACP,QAAQ;AAAA,4BACT;AAAA,4BACA;AAAA;AAAA,wBAED;AAAA;AAAA;AAAA,kBACD;AAAA;AAAA,cAEF;AAAA,cAED,CAAC,iCACD,CAAC,2BACD,CAAC,kCACD,sBAAsB,YACrB,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,uBAEE,kEAAsB,SAAtB,mBAA4B,YAC5B,wEAAsB,SAAtB,mBAA4B,UAA5B,mBAAmC,UAAS,IAE5C,mBACC;AAAA,oBACH,KAAK;AAAA,oBACL,SAAS;AAAA,oBACT,UAAU;AAAA,oBACV,WAAW;AAAA,oBACX,cAAc;AAAA,kBACf;AAAA,kBAGC,8EAAsB,SAAtB,mBAA4B,YAC5B,wEAAsB,SAAtB,mBAA4B,UAA5B,mBAAmC,UAAS,KAE5C,wEAAsB,SAAtB,mBAA4B,UAA5B,mBAAmC,IAAI,CAAC,OAAY,UAAY;AArlC1E,wBAAAE,KAAAG,KAAAC,KAAAC,KAAAC,KAAAC;AAslCW,2CAAAR;AAAA,sBAAC;AAAA;AAAA,wBAEA,IAAI;AAAA,0BACH,GAAG;AAAA,0BACH,SAAS;AAAA,0BACT,YAAY;AAAA,0BACZ,WAAW;AAAA,0BACX,SAAS;AAAA,0BACT,cAAc;AAAA,0BACd,WAAW,EAAE,SAAS,kBAAkB;AAAA,wBACzC;AAAA,wBAEA;AAAA,0CAAAA;AAAA,4BAAC;AAAA;AAAA,8BACA,SAAQ;AAAA,8BACR,IAAI;AAAA,gCACH,IAAI;AAAA,gCACJ,OAAO;AAAA,gCACP,UAAU;AAAA,gCACV,SAAS;AAAA,gCACT,YAAY;AAAA,8BACb;AAAA,8BAEA;AAAA,gDAAAD,KAAC,YAAS,IAAI,EAAE,aAAa,MAAM,GAAG;AAAA,gCACrC,MAAM;AAAA,kCAENM,OAAAD,OAAAH,MAAA,6DAAsB,SAAtB,gBAAAA,IAA4B,YAA5B,gBAAAG,IAAqC;AAAA,kCACpC,CAAC,YAAiB,QAAQ,eAAe,MAAM;AAAA,sCADhD,gBAAAC,IAEG,gBAEH,gBAAAN;AAAA,kCAAC;AAAA;AAAA,oCACA,SAAQ;AAAA,oCACR,IAAI;AAAA,sCACH,UAAU;AAAA,sCACV,YAAY;AAAA,sCACZ,eAAe;AAAA,sCACf,eAAe;AAAA,sCACf,OAAO;AAAA,oCACR;AAAA,oCAEC,kBACAS,OAAAD,OAAAD,MAAA,6DAAsB,SAAtB,gBAAAA,IAA4B,YAA5B,gBAAAC,IAAqC;AAAA,sCACpC,CAAC,YAAiB,QAAQ,eAAe,MAAM;AAAA,0CADhD,gBAAAC,IAEG,gBACH;AAAA;AAAA,gCACF,IACC;AAAA;AAAA;AAAA,0BACH;AAAA,0BAEA,gBAAAT;AAAA,4BAAC;AAAA;AAAA,8BACA,OAAM;AAAA,8BACN,IAAI;AAAA,gCACH,SAAS;AAAA,gCACT,WAAW,EAAE,SAAS,kBAAkB;AAAA,8BACzC;AAAA,8BACA,SAAS,MAAM;AACd,mDAAmB,OAAO,OAAO;AAAA,8BAClC;AAAA,8BAEA,0BAAAA,KAAC,QAAK;AAAA;AAAA,0BACP;AAAA;AAAA;AAAA,sBA1DK;AAAA,oBA2DN;AAAA,uBAEA,gBAAAC;AAAA,oBAAC;AAAA;AAAA,sBACD,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,gBAAgB;AAAA,wBAChB,eAAe;AAAA,sBAChB;AAAA,sBACA,GAAG;AAAA,sBAEH;AAAA,wCAAAD,KAAC,YAAS,OAAM,WAAU;AAAA,wBAE1B,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACH,UAAU;AAAA,8BACV,eAAe;AAAA,8BACf,eAAe;AAAA,8BACf,SAAS;AAAA,8BACT,YAAY;AAAA,8BACZ,gBAAgB;AAAA,8BAChB,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,OAAO;AAAA,8BACP,QAAQ;AAAA,4BACT;AAAA,4BACA;AAAA;AAAA,wBAED;AAAA;AAAA;AAAA,kBACD;AAAA;AAAA,cAEF;AAAA,cAED,CAAC,iCACD,CAAC,2BACD,CAAC,kCACD,sBAAsB,YACrB,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,sBACC,iDAAgB,WAAQ,sDAAgB,SAAhB,mBAAsB,UAAS,IACtD,mBACC;AAAA,oBACH,KAAK;AAAA,oBACL,SAAS;AAAA,oBACT,UAAU;AAAA,oBACV,WAAW;AAAA,oBACX,cAAc;AAAA,kBACf;AAAA,kBAEC,4DAAgB,WAAQ,sDAAgB,SAAhB,mBAAsB,UAAS,KACvD,sDAAgB,SAAhB,mBAAsB,IAAI,CAAC,OAAY,UACtC,gBAAAC;AAAA,oBAAC;AAAA;AAAA,sBAEA,IAAI;AAAA,wBACH,GAAG;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,WAAW;AAAA,wBACX,SAAS;AAAA,wBACT,cAAc;AAAA,wBACd,WAAW,EAAE,SAAS,kBAAkB;AAAA,sBACzC;AAAA,sBAEA;AAAA,wCAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACH,IAAI;AAAA,8BACJ,OAAO;AAAA,8BACP,UAAU;AAAA,8BACV,SAAS;AAAA,8BACT,YAAY;AAAA,4BACb;AAAA,4BAEA;AAAA,8CAAAD,KAAC,gBAAa,IAAI,EAAE,aAAa,MAAM,GAAG;AAAA,8BACzC,MAAM;AAAA;AAAA;AAAA,wBACR;AAAA,wBAEA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,OAAM;AAAA,4BACN,IAAI;AAAA,8BACH,SAAS;AAAA,8BACT,WAAW,EAAE,SAAS,kBAAkB;AAAA,4BACzC;AAAA,4BACA,SAAS,MAAM;AACd,iDAAmB,OAAO,OAAO;AAAA,4BAClC;AAAA,4BAEA,0BAAAA,KAAC,QAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,oBApCK;AAAA,kBAqCN,KAEA,gBAAAC;AAAA,oBAAC;AAAA;AAAA,sBACD,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,gBAAgB;AAAA,wBAChB,eAAe;AAAA,sBAChB;AAAA,sBACA,GAAG;AAAA,sBAEH;AAAA,wCAAAD,KAAC,YAAS,OAAM,WAAU;AAAA,wBAE1B,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACA,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACH,UAAU;AAAA,8BACV,eAAe;AAAA,8BACf,eAAe;AAAA,8BACf,SAAS;AAAA,8BACT,YAAY;AAAA,8BACZ,gBAAgB;AAAA,8BAChB,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,OAAO;AAAA,8BACP,QAAQ;AAAA,4BACT;AAAA,4BACA;AAAA;AAAA,wBAED;AAAA;AAAA;AAAA,kBACD;AAAA;AAAA,cAEF;AAAA,cAGD,CAAC,iCACD,CAAC,2BACD,CAAC,kCACD,sBAAsB,YACrB,gBAAAC;AAAA,gBAAC;AAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,qBAAqB;AAAA,oBACrB,KAAK;AAAA,oBACL,SAAS;AAAA,oBACT,UAAU;AAAA,oBACV,WAAW;AAAA,oBACX,cAAc;AAAA,kBACf;AAAA,kBAEC;AAAA,oFAAuB,WACvB,oEAAuB,SAAvB,mBAA6B,UAAS,OACtC,oEAAuB,SAAvB,mBAA6B,IAAI,CAAC,SAAc,UAAY;AAlyCtE,0BAAAC,KAAAG,KAAAC;AAmyCW,6CAAAL;AAAA,wBAAC;AAAA;AAAA,0BAEA,IAAI;AAAA,4BACH,GAAG;AAAA,4BACH,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,WAAW;AAAA,4BACX,SAAS;AAAA,4BACT,cAAc;AAAA,4BACd,WAAW,EAAE,SAAS,kBAAkB;AAAA,0BACzC;AAAA,0BAEA;AAAA,4CAAAA;AAAA,8BAAC;AAAA;AAAA,gCACA,SAAQ;AAAA,gCACR,IAAI;AAAA,kCACH,IAAI;AAAA,kCACJ,OAAO;AAAA,kCACP,UAAU;AAAA,kCACV,SAAS;AAAA,kCACT,YAAY;AAAA,gCACb;AAAA,gCAEA;AAAA,kDAAAD,KAAC,WAAQ,IAAI,EAAE,aAAa,MAAM,GAAG;AAAA,kCACrC,gBAAAA,KAAC,WAAQ,OAAO,IAAGE,MAAA,mCAAS,gBAAT,OAAAA,MAAwB,EAAE,IAC5C,0BAAAD,MAAC,OAAI,IAAI,EAAE,OAAO,iBAAiB,GACjC;AAAA,4CAAQ;AAAA,oCAET,gBAAAD;AAAA,sCAAC;AAAA;AAAA,wCACA,IAAI;AAAA,0CACH,UAAU;AAAA,0CACV,YAAY;AAAA,0CACZ,eAAe;AAAA,0CACf,eAAe;AAAA,0CACf,OAAO;AAAA,0CACP,cAAc;AAAA,0CACd,YAAY;AAAA,0CACZ,UAAU;AAAA,0CACV,UAAU;AAAA,wCACX;AAAA,wCAEC,WAAAK,MAAA,mCAAS,gBAAT,OAAAA,MAAwB;AAAA;AAAA,oCAC1B;AAAA,qCACD,GACD;AAAA;AAAA;AAAA,4BACD;AAAA,4BACA,gBAAAL,KAAC,WAAQ,QAAOM,MAAA,mCAAS,iBAAT,OAAAA,MAAyB,IACxC,0BAAAN;AAAA,8BAAC;AAAA;AAAA,gCACA,OAAM;AAAA,gCACN,IAAI;AAAA,kCACH,SAAS;AAAA,kCACT,WAAW,EAAE,SAAS,kBAAkB;AAAA,gCACzC;AAAA,gCACA,SAAS,MAAM;AAv1C7B,sCAAAE;AAw1Ce;AAAA,oCACC;AAAA,sCACC,gBAAeA,MAAA,mCAAS,iBAAT,OAAAA,MAAyB;AAAA,oCACzC;AAAA,oCACA;AAAA,kCACD;AAAA,gCACD;AAAA,gCAEA,0BAAAF,KAAC,QAAK;AAAA;AAAA,4BACP,GACD;AAAA;AAAA;AAAA,wBA9DK;AAAA,sBA+DN;AAAA;AAAA,oBAEF,gBAAAC;AAAA,sBAAC;AAAA;AAAA,wBACA,IAAI;AAAA,0BACH,GAAG;AAAA,0BACH,SAAS;AAAA,0BACT,YAAY;AAAA,0BACZ,WAAW;AAAA,0BACX,SAAS;AAAA,0BACT,cAAc;AAAA,wBACf;AAAA,wBAEA;AAAA,0CAAAD;AAAA,4BAAC;AAAA;AAAA,8BACA,SAAQ;AAAA,8BACR,IAAI;AAAA,gCACH,IAAI;AAAA,gCACJ,OAAO;AAAA,gCACP,UAAU;AAAA,gCACV,SAAS;AAAA,gCACT,YAAY;AAAA,8BACb;AAAA,8BAEA,0BAAAA;AAAA,gCAAC;AAAA;AAAA,kCACA,MAAK;AAAA,kCACL,MAAK;AAAA,kCACL,OAAM;AAAA,kCACN,SAAQ;AAAA,kCACR,MAAK;AAAA,kCACL,OAAO;AAAA,kCACP,UAAU,CAAC,MAAM;AAChB,0CAAM,IAAI,EAAE,OAAO;AACnB,wCAAI,QAAQ,KAAK,CAAC,GAAG;AACpB,sDAAgB,CAAC;AAAA,oCAClB;AAAA,kCACD;AAAA,kCACA,WAAW;AAAA,oCACV,WAAW;AAAA,sCACV,WAAW;AAAA,sCACX,WAAW;AAAA,oCACZ;AAAA,kCACD;AAAA,kCACA,aAAY;AAAA,kCACZ,cAAa;AAAA;AAAA,8BACd;AAAA;AAAA,0BACD;AAAA,0BACA,gBAAAA;AAAA,4BAAC;AAAA;AAAA,8BACA,OAAO,eAAe,aAAa,YAAY,KAAK;AAAA,8BAEpD,0BAAAA;AAAA,gCAAC;AAAA;AAAA,kCACA,OAAM;AAAA,kCACN,IAAI;AAAA,oCACH,SAAS;AAAA,oCACT,WAAW,EAAE,SAAS,kBAAkB;AAAA,kCACzC;AAAA,kCACA,SAAS,MAAM;AACd;AAAA,sCACC;AAAA,wCACC,eAAe,sCAAgB;AAAA,sCAChC;AAAA,sCACA;AAAA,oCACD;AAAA,kCACD;AAAA,kCAEA,0BAAAA,KAAC,QAAK;AAAA;AAAA,8BACP;AAAA;AAAA,0BACD;AAAA;AAAA;AAAA,oBACD;AAAA;AAAA;AAAA,cACD;AAAA;AAAA;AAAA,QAEH;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;AAEO,SAAS,yBAAyB,EAAE,MAAM,SAAS,oBAAoB,GAAQ;AA/6CtF,MAAAE,KAAA;AAg7CC,QAAM,CAAC,iBAAiB,IAAI,IAAI,cAAc;AAE9C,QAAM,CAAC,UAAU,WAAW,IAAIE,UAAS;AAAA,IACxC,aAAa,EAAE,OAAO,YAAY,OAAO,MAAM;AAAA,IAC/C,UAAU,EAAE,OAAO,MAAM,OAAO,IAAI;AAAA,IACpC,cAAc;AAAA,IACd,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,EACjB,CAAC;AACD,QAAM,kBAAkB;AAAA,IACvB,EAAE,OAAO,OAAO,OAAO,IAAI;AAAA,IAC3B,EAAE,OAAO,MAAM,OAAO,IAAI;AAAA,EAC3B;AAEA,QAAM,eAAe,CACpB,OACA,UACI;AACJ,gBAAY,CAAC,SAAU,iCAAK,OAAL,EAAW,CAAC,KAAK,GAAG,MAAM,EAAE;AAAA,EACpD;AAEA,QAAM,cAAc,MAAM;AACzB,gBAAY;AAAA,MACX,aAAa,EAAE,OAAO,YAAY,OAAO,MAAM;AAAA,MAC/C,UAAU,EAAE,OAAO,MAAM,OAAO,IAAI;AAAA,MACpC,cAAc;AAAA,MACd,aAAa;AAAA,MACb,cAAc;AAAA,MACd,gBAAgB;AAAA,IACjB,CAAC;AAAA,EACF;AAEA,QAAM,cAAc,MAAM;AACzB,gBAAY;AACZ,YAAQ,KAAK;AAAA,EACd;AAEA,EAAAqB,WAAU,MAAM;AACf,oBAAgB,UAAU,YAAY;AAAA,EACvC,GAAG,CAAC,CAAC;AAEL,QAAM,sBAAsB,QAAQ,MAAM;AA19C3C,QAAAvB,KAAAG;AA29CE,aACCA,OAAAH,MAAA,6BAAM,SAAN,gBAAAA,IAAY,SAAZ,gBAAAG,IAAkB,IAAI,CAAC,UAAe;AAAA,MACrC,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,IACb,QAAO,CAAC;AAAA,EAEV,GAAG,EAACH,MAAA,6BAAM,SAAN,gBAAAA,IAAY,IAAI,CAAC;AAErB,SACC,gBAAAF,KAAA,YACC,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MACjB,WAAS;AAAA,MACT,UAAU;AAAA,MAEV,0BAAAC,MAAC,SAAM,IAAI,EAAE,cAAc,EAAE,GAC5B;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,WAAW;AAAA,YACZ;AAAA,YAEA,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACA,SAAQ;AAAA,gBACR,GAAG;AAAA,gBAEF;AAAA;AAAA,kBAAI;AAAA;AAAA;AAAA,YAEN;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,WAAW;AAAA,cACX,SAAS;AAAA,cACT,QAAQ;AAAA,cACR,cAAc;AAAA,YACf;AAAA,YAEA;AAAA,8BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,KAAK;AAAA,kBAEL;AAAA,oCAAAD;AAAA,sBAAC;AAAA;AAAA,wBACA,OAAO,SAAS;AAAA,wBAChB,SAAS;AAAA,wBACT,gBAAgB,CAAC,QAAQ,IAAI;AAAA,wBAC7B,UAAU,CAAC,GAAG,QAAQ,aAAa,eAAe,GAAG;AAAA,wBACrD,MAAK;AAAA,wBACL,aAAa,CAAC,WACb,gBAAAA;AAAA,0BAAC;AAAA,2DACI,SADJ;AAAA,4BAEA,OAAM;AAAA,4BACN,WAAS;AAAA;AAAA,wBACV;AAAA,wBAED,IAAI,EAAE,MAAM,EAAE;AAAA;AAAA,oBACf;AAAA,oBACA,gBAAAA;AAAA,sBAAC;AAAA;AAAA,wBACA,SAAS;AAAA,wBACT,gBAAgB,CAAC,QAAQ,IAAI;AAAA,wBAC7B,OAAO,SAAS;AAAA,wBAChB,UAAU,CAAC,GAAG,QAAQ,aAAa,YAAY,GAAG;AAAA,wBAClD,MAAK;AAAA,wBACL,aAAa,CAAC,WACb,gBAAAA;AAAA,0BAAC;AAAA,2DACI,SADJ;AAAA,4BAEA,OAAM;AAAA,4BACN,WAAS;AAAA;AAAA,wBACV;AAAA,wBAED,IAAI,EAAE,MAAM,EAAE;AAAA;AAAA,oBACf;AAAA;AAAA;AAAA,cACD;AAAA,cAEA,gBAAAC;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,KAAK;AAAA,kBACL,IAAI;AAAA,kBAkBJ;AAAA,oCAAAA;AAAA,sBAAC;AAAA;AAAA,wBACA,IAAI;AAAA,0BACH,MAAM;AAAA,0BACN,QAAQ;AAAA,0BACR,cAAc;AAAA,wBACf;AAAA,wBAEA;AAAA,0CAAAD;AAAA,4BAAC;AAAA;AAAA,8BACA,MAAK;AAAA,8BACL,IAAI;AAAA,gCACH,SAAS;AAAA,8BACV;AAAA,8BACA,SAAS,SAAS;AAAA,8BAClB,UAAU,CAAC,UAAU;AACpB,6CAAa,kBAAkB,MAAM,OAAO,OAAO;AAAA,8BACpD;AAAA,8BACA,WAAW;AAAA,gCACV,OAAO,EAAE,cAAc,aAAa;AAAA,8BACrC;AAAA;AAAA,0BACD;AAAA,0BAAG;AAAA,0BAAI;AAAA;AAAA;AAAA,oBAER;AAAA,sBAEC,gDAAU,aAAV,mBAAoB,UAApB,mBAA2B,mBAAkB,QAC7C,gBAAAA;AAAA,sBAAC;AAAA;AAAA,wBACA,MAAK;AAAA,wBACL,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,WAAW;AAAA,0BACV,YAAY,EAAE,QAAQ,KAAK;AAAA,wBAC5B;AAAA,wBACA,OAAO,SAAS;AAAA,wBAChB,UAAU,CAAC,MAAM,aAAa,gBAAgB,EAAE,OAAO,KAAK;AAAA,wBAC5D,WAAS;AAAA,wBACT,IAAI,EAAE,MAAM,EAAE;AAAA;AAAA,oBACf,IACC,gBAAAA,KAAC,OAAI,IAAI,EAAE,MAAM,EAAE,GAAG;AAAA;AAAA;AAAA,cACzB;AAAA,gBACC,gDAAU,aAAV,mBAAoB,UAApB,mBAA2B,mBAAkB,SAC7C,gBAAAC;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,KAAK;AAAA,kBACL,IAAI;AAAA,kBAEJ;AAAA,oCAAAD;AAAA,sBAAC;AAAA;AAAA,wBACA,MAAK;AAAA,wBACL,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,OAAO,SAAS;AAAA,wBAChB,UAAU,CAAC,MAAM,aAAa,eAAe,EAAE,OAAO,KAAK;AAAA,wBAC3D,WAAS;AAAA,wBACT,IAAI,EAAE,MAAM,EAAE;AAAA;AAAA,oBACf;AAAA,oBACA,gBAAAA;AAAA,sBAAC;AAAA;AAAA,wBACA,MAAK;AAAA,wBACL,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,OAAO,SAAS;AAAA,wBAChB,UAAU,CAAC,MAAM,aAAa,gBAAgB,EAAE,OAAO,KAAK;AAAA,wBAC5D,WAAS;AAAA,wBACT,IAAI,EAAE,MAAM,EAAE;AAAA;AAAA,oBACf;AAAA;AAAA;AAAA,cACD;AAAA;AAAA;AAAA,QAEF;AAAA,QAEA,gBAAAC;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,GAAG;AAAA,YAEH;AAAA,8BAAAD;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,SAAS;AAAA,kBACT,IAAI;AAAA,oBACH,IAAI;AAAA,oBACJ,IAAI;AAAA,oBACJ,cAAc;AAAA,oBACd,eAAe;AAAA,kBAChB;AAAA,kBACA;AAAA;AAAA,cAED;AAAA,cACA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,SAAS,MAAM,oBAAoB,QAAQ;AAAA,kBAC3C,IAAI,EAAE,IAAI,GAAG,cAAc,QAAQ,eAAe,aAAa;AAAA,kBAC/D;AAAA;AAAA,cAED;AAAA;AAAA;AAAA,QACD;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;AAEO,SAAS,oBAAoB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACD,GAAQ;AACP,QAAM,cAAc,MAAM;AACzB,YAAQ,KAAK;AAAA,EACd;AAEA,SACC,gBAAAA,KAAA,YACC,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MACjB,UAAU;AAAA,MAEV,0BAAAC,MAAC,SAAM,IAAI,EAAE,cAAc,EAAE,GAC5B;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,WAAW;AAAA,YACZ;AAAA,YAEA;AAAA,8BAAAD,KAAC,cAAW,SAAQ,SAAQ,2BAAa;AAAA,cACzC,gBAAAA,KAAC,cAAW,SAAS,aACpB,0BAAAA,KAAC,SAAM,GACR;AAAA;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,WAAW;AAAA,cACX,SAAS;AAAA,cACT,QAAQ;AAAA,cACR,cAAc;AAAA,YACf;AAAA,YAEC,sBAAY,SAAS,IACrB,2CAAa,IAAI,CAAC,SAAc,UAC/B,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBAEA,IAAI;AAAA,kBACH,GAAG;AAAA,kBACH,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,WAAW;AAAA,kBACX,SAAS;AAAA,kBACT,QAAQ;AAAA,kBACR,cAAc;AAAA,kBACd,QAAQ;AAAA,kBACR,WAAW,EAAE,SAAS,kBAAkB;AAAA,gBACzC;AAAA,gBACA,SAAS,MAAM;AACd,0CAAwB,OAAO;AAAA,gBAChC;AAAA,gBAEA,0BAAAC;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAQ;AAAA,oBACR,IAAI;AAAA,sBACH,IAAI;AAAA,sBACJ,OAAO;AAAA,sBACP,UAAU;AAAA,sBACV,SAAS;AAAA,sBACT,YAAY;AAAA,oBACb;AAAA,oBAEA;AAAA,sCAAAD,KAAC,gBAAa,IAAI,EAAE,aAAa,MAAM,GAAG;AAAA,sBACzC,QAAQ;AAAA;AAAA;AAAA,gBACV;AAAA;AAAA,cA5BK;AAAA,YA6BN,KAEA;AAAA;AAAA,QACH;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;AAEO,SAAS,kBAAkB,EAAE,MAAM,QAAQ,GAAQ;AACzD,QAAM,cAAc,MAAM;AACzB,YAAQ,KAAK;AAAA,EACd;AAEA,SACC,gBAAAA,KAAA,YACC,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,mBAAgB;AAAA,MAChB,oBAAiB;AAAA,MACjB,WAAS;AAAA,MACT,UAAU;AAAA,MAEV,0BAAAC,MAAC,SAAM,IAAI,EAAE,cAAc,EAAE,GAC5B;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,WAAW;AAAA,YACZ;AAAA,YAEA;AAAA,8BAAAD,KAAC,cAAW,SAAQ,SAAQ,2BAAa;AAAA,cACzC,gBAAAA,KAAC,cAAW,SAAS,aACpB,0BAAAA,KAAC,SAAM,GACR;AAAA;AAAA;AAAA,QACD;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI;AAAA,cACH,WAAW;AAAA,cACX,QAAQ;AAAA,cACR,cAAc;AAAA,cACd,WAAW;AAAA,cACX,UAAU;AAAA,cACV,YAAY;AAAA,YACb;AAAA,YACA,GAAG;AAAA,YACH;AAAA;AAAA,QAED;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;;;AKtyDA,SAA2C,eAAA0B,cAAa,QAAQ,YAAAC,iBAAgB;AAezE,SAAS,aACf,iBACA,kBACqB;AACrB,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAmB,eAAe;AAElE,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAS,KAAK;AAElD,QAAM,UAAU,OAAuB;AAEvC,QAAM,YAAY,OAAiB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AAEjD,QAAM,eAAe,OAAiB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AAEpD,QAAM,iBAAiBD;AAAA,IACtB,CAAC,gBAA0B;AAC1B,YAAM,UAAU,QAAQ;AACxB,UAAI,CAAC,QAAS;AAEd,YAAM,OAAO,QAAQ,sBAAsB;AAC3C,YAAM,gBAAgB,OAAO;AAC7B,YAAM,iBAAiB,OAAO;AAE9B,YAAM,sBAAsB;AAAA,QAC3B,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,GAAG,gBAAgB,KAAK,KAAK,CAAC;AAAA,QAClE,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,GAAG,iBAAiB,KAAK,MAAM,CAAC;AAAA,MACrE;AAEA,kBAAY,mBAAmB;AAC/B,2DAAmB;AAAA,IACpB;AAAA,IACA,CAAC,gBAAgB;AAAA,EAClB;AAEA,QAAM,cAAcA;AAAA,IACnB,CAAC,SAAiB,YAAoB;AACrC,oBAAc,IAAI;AAClB,gBAAU,UAAU,EAAE,GAAG,SAAS,GAAG,QAAQ;AAC7C,mBAAa,UAAU;AAEvB,YAAM,aAAa,CAAC,aAAqB,gBAAwB;AAChE,cAAM,SAAS,cAAc,UAAU,QAAQ;AAC/C,cAAM,SAAS,cAAc,UAAU,QAAQ;AAE/C,uBAAe;AAAA,UACd,GAAG,aAAa,QAAQ,IAAI;AAAA,UAC5B,GAAG,aAAa,QAAQ,IAAI;AAAA,QAC7B,CAAC;AAAA,MACF;AAEA,YAAM,kBAAkB,CAAC,MAA6B;AACrD,UAAE,eAAe;AACjB,mBAAW,EAAE,SAAS,EAAE,OAAO;AAAA,MAChC;AAEA,YAAM,kBAAkB,CAAC,MAA6B;AACrD,UAAE,eAAe;AACjB,cAAM,QAAQ,EAAE,QAAQ,CAAC;AACzB,YAAI,OAAO;AACV,qBAAW,MAAM,SAAS,MAAM,OAAO;AAAA,QACxC;AAAA,MACD;AAEA,YAAM,YAAY,MAAM;AACvB,sBAAc,KAAK;AACnB,iBAAS,oBAAoB,aAAa,eAAe;AACzD,iBAAS,oBAAoB,WAAW,SAAS;AACjD,iBAAS,oBAAoB,aAAa,eAAe;AACzD,iBAAS,oBAAoB,YAAY,SAAS;AAAA,MACnD;AAEA,eAAS,iBAAiB,aAAa,eAAe;AACtD,eAAS,iBAAiB,WAAW,SAAS;AAC9C,eAAS,iBAAiB,aAAa,iBAAiB;AAAA,QACvD,SAAS;AAAA,MACV,CAAC;AACD,eAAS,iBAAiB,YAAY,SAAS;AAAA,IAChD;AAAA,IACA,CAAC,UAAU,cAAc;AAAA,EAC1B;AAEA,QAAM,kBAAkBA;AAAA,IACvB,CAAC,MAAkC;AAClC,QAAE,eAAe;AACjB,kBAAY,EAAE,SAAS,EAAE,OAAO;AAAA,IACjC;AAAA,IACA,CAAC,WAAW;AAAA,EACb;AAEA,QAAM,mBAAmBA;AAAA,IACxB,CAAC,MAAkC;AAClC,QAAE,eAAe;AACjB,YAAM,QAAQ,EAAE,QAAQ,CAAC;AACzB,UAAI,OAAO;AACV,oBAAY,MAAM,SAAS,MAAM,OAAO;AAAA,MACzC;AAAA,IACD;AAAA,IACA,CAAC,WAAW;AAAA,EACb;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AC/GO,SAAS,oBACf,cAAsC,EAAE,OAAO,KAAK,GACpC;AAChB,MAAI,SAA6B;AACjC,MAAI,QAAQ;AAEZ,iBAAe,QAAQ;AACtB,QAAI,OAAQ;AACZ,aAAS,MAAM,UAAU,aAAa,aAAa,WAAW;AAE9D,WAAO,eAAe,EAAE,QAAQ,CAAC,UAAW,MAAM,UAAU,IAAK;AACjE,YAAQ;AAAA,EACT;AAEA,WAAS,WAAW,SAAkB;AACrC,QAAI,CAAC,OAAQ;AACb,WAAO,eAAe,EAAE,QAAQ,CAAC,UAAW,MAAM,UAAU,OAAQ;AACpE,YAAQ,CAAC;AAAA,EACV;AAEA,WAAS,OAAO;AACf,eAAW,KAAK;AAAA,EACjB;AAEA,WAAS,SAAS;AACjB,eAAW,IAAI;AAAA,EAChB;AAEA,WAAS,aAAa;AACrB,QAAI,OAAO;AACV,aAAO;AAAA,IACR,OAAO;AACN,WAAK;AAAA,IACN;AAAA,EACD;AAEA,WAAS,OAAO;AACf,QAAI,CAAC,OAAQ;AACb,WAAO,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1C,aAAS;AACT,YAAQ;AAAA,EACT;AAEA,WAAS,UAAU;AAClB,WAAO;AAAA,EACR;AAEA,WAAS,YAAY;AACpB,WAAO;AAAA,EACR;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;ACjEA,OAAO,yBAAyB;AAEhC,IAAI,eAA8B;AAClC,IAAI,cAAkC;AAMtC,eAAsB,kBAAmC;AACxD,MAAI,cAAc;AACjB,WAAO;AAAA,EACR;AAGA,MACC,oBAAoB,WAAW,OAAO,KACtC,oBAAoB,WAAW,SAAS,KACxC,oBAAoB,WAAW,UAAU,KACzC,oBAAoB,WAAW,OAAO,GACrC;AACD,WAAO;AAAA,EACR;AAGA,MAAI;AACH,UAAM,WAAW,MAAM,MAAM,mBAAmB;AAChD,QAAI,CAAC,SAAS,IAAI;AACjB,YAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAAA,IAClE;AAEA,UAAM,OAAO,MAAM,SAAS,KAAK;AAGjC,QAAI,KAAK,SAAS,GAAG;AACpB,YAAM,IAAI,MAAM,YAAY;AAAA,IAC7B;AAEA,mBAAe,IAAI,gBAAgB,IAAI;AACvC,WAAO;AAAA,EACR,SAAS,OAAO;AAGf,YAAQ,MAAM,gDAAgD,KAAK;AACnE,WAAO;AAAA,EACR;AACD;AA6BA,eAAsB,qBAAgD;AACrE,QAAM,QAAQ,IAAI,MAAM;AAGxB,QAAM,OAAO;AACb,QAAM,SAAS;AACf,QAAM,UAAU;AAGhB,MAAI,WAAmB;AAGvB,MAAI;AACH,eAAW,MAAM,gBAAgB;AAAA,EAClC,SAAS,OAAO;AACf,YAAQ,KAAK,oDAAoD,KAAK;AACtE,eAAW;AAAA,EACZ;AAGA,QAAM,eAAe,OAAO,QAAkC;AAC7D,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC/B,YAAM,eAAe,MAAM;AAE1B,cAAM,UAAU,MAAM,cAAc,iBAAiB;AACrD,YAAI,SAAS;AACZ,kBAAQ,IAAI;AACZ;AAAA,QACD;AAGA,YAAI,MAAM,OAAO;AAChB,kBAAQ,KAAK;AACb;AAAA,QACD;AAGA,mBAAW,cAAc,GAAG;AAAA,MAC7B;AAEA,YAAM,iBAAiB,WAAW,MAAM,QAAQ,IAAI,GAAG,EAAE,MAAM,KAAK,CAAC;AACrE,YAAM,iBAAiB,SAAS,MAAM,QAAQ,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpE,YAAM,MAAM;AACZ,YAAM,KAAK;AAGX,iBAAW,MAAM,QAAQ,KAAK,GAAG,GAAI;AAAA,IACtC,CAAC;AAAA,EACF;AAGA,MAAI,SAAS,MAAM,aAAa,QAAQ;AAGxC,MAAI,CAAC,UAAU,aAAa,qBAAqB;AAChD,aAAS,MAAM,aAAa,mBAAmB;AAC/C,QAAI,QAAQ;AACX,iBAAW;AAAA,IACZ;AAAA,EACD;AAEA,SAAO;AACR;AAKO,SAAS,wBAA8B;AAC7C,MAAI,cAAc;AACjB,QAAI,gBAAgB,YAAY;AAChC,mBAAe;AAAA,EAChB;AACA,gBAAc;AACf;;;AR/FA,SAAS,WAAAE,gBAAe;AAkuBnB,SAcH,YAAAC,WAdG,OAAAC,MA6DI,QAAAC,aA7DJ;AA/tBL,IAAM,0BAA0B,CAAC,YAAiB,YAAiB;AAClE,QAAM,qBAAqB,yCAAY;AACvC,QAAM,oBAAoB,mCAAS;AACnC,QAAM,wBAAwB,mBAAmB,IAAI,CAAC,SAAc;AAlErE,QAAAC,KAAA;AAmEE,SAAI,6BAAM,UAAS,GAAG;AACrB,YAAM,YAAY,QAAQ,KAAK,IAAI;AACnC,aAAO,iCACH,OADG;AAAA,QAEN,MAAM;AAAA,QACN,SAAQ,uBAAkB,SAAS,MAA3B,aAAgCA,MAAA,yCAAY,aAAZ,gBAAAA,IAAsB;AAAA,QAC9D,QAAO,oDAAY,aAAZ,mBAAsB,iBAAtB,YAAsC;AAAA,MAC9C;AAAA,IACD,OAAO;AACN,YAAM,YAAY,QAAQ,KAAK,IAAI;AACnC,YAAM,WAAW,QAAQ,KAAK,IAAI;AAClC,aAAO,iCACH,OADG;AAAA,QAEN,SAAQ,uBAAkB,SAAS,MAA3B,YAAgC,KAAK;AAAA,QAC7C,OACC,kBAAkB,QAAQ,MAAM,QAAQ,kBAAkB,QAAQ,MAAM,MACvE,KAAK,QACJ,kBAAkB,QAAQ;AAAA,MAC9B;AAAA,IACD;AAAA,EACD,CAAC;AAED,SAAO;AACR;AAEA,IAAM,iBAAiB,CAAC,YAA4B;AACnD,QAAM,OAAO,KAAK,MAAM,UAAU,EAAE;AACpC,QAAM,OAAO,UAAU;AACvB,SAAO,GAAG,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAC/E;AAEO,SAAS,aAAa,EAAE,aAAa,GAA0B;AAlGtE,MAAAA,KAAA;AAmGC,QAAM,QAAQC,UAAS;AACvB,QAAM,QAAQ,YAAY;AAC1B,QAAM,EAAE,UAAU,IAAI,SAAS;AAE/B,QAAM,EAAE,UAAU,SAAS,SAAS,IAAI,eAAU;AAAA,IACjD,YAAUD,MAAA,MAAM,cAAN,gBAAAA,IAAiB,aAAY,CAAC;AAAA,IACxC,WAAS,WAAM,cAAN,mBAAiB,YAAW,CAAC;AAAA,IACtC,YAAU,WAAM,cAAN,mBAAiB,aAAY,CAAC;AAAA,EACzC,CAAC;AAED,QAAM,SAASE,QAA6B,IAAI;AAChD,QAAM,eAAeA,QAAyB,IAAI;AAClD,QAAM,WAAWA,QAAgC,IAAI;AACrD,QAAM,sBAAsBA,QAA6C,IAAI;AAC7E,QAAM,kBAAkBA,QAA8C,IAAI;AAC1E,QAAM,uBAAuBA,QAAe,CAAC;AAC7C,QAAM,gBAAgBA,QAAO,KAAK;AAClC,QAAM,mBAAmBA,QAAsB,IAAI;AAEnD,QAAM,uBAAuB;AAC7B,QAAM,qBAAqB;AAC3B,QAAM,oBAAoB;AAE1B,QAAM,CAAC,UAAU,WAAW,IAAIC,WAA6B,IAAI;AACjE,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,WAA6B,IAAI;AAC7E,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,WAA6B,IAAI;AAC7E,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,WAA6B,IAAI;AACnF,QAAM,CAAC,qBAAqB,sBAAsB,IAAIA,WAA6B,IAAI;AAEvF,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAkB,IAAI;AAC1D,QAAM,CAAC,qBAAqB,sBAAsB,IAAIA,WAAkB,KAAK;AAC7E,QAAM,CAAC,qBAAqB,sBAAsB,IAAIA,WAAkB,KAAK;AAC7E,QAAM,CAAC,uBAAuB,wBAAwB,IAAIA,WAAkB,KAAK;AAEjF,QAAM,CAAC,aAAa,cAAc,IAAIA,WAMpC,IAAI;AAEN,QAAM,CAAC,YAAY,aAAa,IAAIA,WAQlC,IAAI;AAEN,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAiB,EAAE;AACzD,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAiB,CAAC;AAC1D,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,WAAwB,IAAI;AAExE,QAAM,EAAE,UAAU,YAAY,SAAS,iBAAiB,iBAAiB,IAAI;AAAA,IAC5E,MAAM;AAAA,IACN,CAAC,gBAAgB,gBAAgB,wBAAwB,WAAW;AAAA,EACrE;AAEA,QAAM;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACnB,IAAI;AAAA,IAAa,MAAM;AAAA,IAAgB,CAAC,gBACvC,gBAAgB,kBAAkB,WAAW;AAAA,EAC9C;AAEA,QAAM,CAAC,aAAa,EAAE,WAAW,mBAAmB,CAAC,IAAI,eAItD;AAAA,IACF,WAAW,MAAM;AAChB,qBAAe,EAAE;AACjB,wBAAkB,IAAI;AAAA,IACvB;AAAA,EACD,CAAC;AAED,QAAM,CAAC,cAAc,EAAE,WAAW,oBAAoB,CAAC,IAAI,eAIxD;AAEH,QAAM,CAAC,cAAc,EAAE,WAAW,oBAAoB,CAAC,IAAI,eAIxD;AAEH,QAAM,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,CAAC,IAAI,eAI1D;AAAA,IACF,WAAW,MAAM;AAChB,sBAAgB,eAAe,EAAE;AAAA,IAClC;AAAA,EACD,CAAC;AAED,QAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,eAIxC;AAEH,QAAM,CAAC,gBAAgB,IAAI,eAGxB;AAEH,QAAM,CAAC,SAAS,EAAE,WAAW,eAAe,CAAC,IAAI,eAW9C;AAAA,IACF,WAAW,MAAM;AAChB,sBAAgB,QAAQ;AACxB,6BAAuB,KAAK;AAC5B,sBAAgB,qBAAqB;AAAA,IACtC;AAAA,EACD,CAAC;AAED,QAAM,yBAAyB,MAAM;AACpC,gBAAY,IAAI;AAAA,EACjB;AAEA,QAAM,mBAAmB,CAAC,UAAyC;AAClE,kBAAc,IAAI;AAClB,sBAAkB,MAAM,aAAa;AAAA,EACtC;AACA,QAAM,6BAA6B,CAAC,UAAyC;AAC5E,yBAAqB,MAAM,aAAa;AAAA,EACzC;AAEA,QAAM,wBAAwB,CAAC,UAAyC;AACvE,2BAAuB,MAAM,aAAa;AAAA,EAC3C;AAEA,QAAM,oBAAoB,MAAM;AAC/B,sBAAkB,IAAI;AAAA,EACvB;AACA,QAAM,uBAAuB,MAAM;AAClC,yBAAqB,IAAI;AAAA,EAC1B;AAEA,QAAM,yBAAyB,MAAM;AACpC,2BAAuB,IAAI;AAAA,EAC5B;AAEA,QAAM,wBAAwB,CAAC,UAAyC;AACvE,sBAAkB,MAAM,aAAa;AAAA,EACtC;AAEA,QAAM,yBAAyB,MAAM;AACpC,sBAAkB,IAAI;AAAA,EACvB;AAEA,QAAM,mBAAmB,MAAM;AAC9B,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,QAAQ,MAAM;AAAA,IACf;AAEA,qBAAiB,UAAU,aAAa,OAAO;AAAA,EAChD;AAEA,QAAM,0BAA0B,CAAC,WAAmB;AACnD,sBAAkB,IAAI;AACtB,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,QAAQ,MAAM;AAAA,IACf;AACA,sBAAkB,UAAU,oBAAoB,OAAO,EAAE,KAAK,MAAM;AACnE,sBAAgB,eAAe,MAAM;AAAA,IACtC,CAAC;AAAA,EACF;AAEA,QAAM,kBAAkB,CAAC,WAAmB;AAC3C,QAAI,OAAO,WAAW,IAAI;AACzB,gBAAU,wBAAwB,OAAO;AAAA,IAC1C,WAAW,CAAC,QAAQ,KAAK,MAAM,GAAG;AACjC,gBAAU,wBAAwB,OAAO;AAAA,IAC1C,OAAO;AACN,YAAM,UAAU;AAAA,QACf,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,QAAQ,MAAM;AAAA,MACf;AAEA,kBAAY,UAAU,eAAe,OAAO;AAAA,IAC7C;AAAA,EACD;AAEA,QAAM,mBAAmB,MAAM;AAjThC,QAAAH;AAkTE,UAAM,UAAU;AAAA,MACf,UAAQA,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS;AAAA,MACjC,QAAQ,MAAM;AAAA,IACf;AACA,iBAAa,UAAU,WAAW,OAAO;AAAA,EAC1C;AAEA,QAAM,mBAAmB,MAAM;AAzThC,QAAAA;AA0TE,UAAM,UAAU;AAAA,MACf,UAAQA,MAAA,MAAM,aAAN,gBAAAA,IAAgB,UAAS;AAAA,MACjC,QAAQ,MAAM;AAAA,IACf;AAEA,iBAAa,UAAU,WAAW,OAAO;AAAA,EAC1C;AAEA,QAAM,gBAAgB,CAAC,SAOjB;AAzUP,QAAAA,KAAAI,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC;AA0UE,UAAM,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,QAAQ,MAAM;AAAA,MACd,YAAWd,OAAAD,OAAAJ,MAAA,MAAM,YAAN,gBAAAA,IAAe,eAAf,gBAAAI,IAA2B,eAA3B,OAAAC,MAAyC;AAAA,MACpD,eAAcE,OAAAD,MAAA,MAAM,YAAN,gBAAAA,IAAe,iBAAf,OAAAC,MAA+B;AAAA,MAC7C,kBAAiBE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,cAAhB,OAAAC,MAA6B;AAAA,MAC9C,gBAAeE,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAgB,iBAAhB,OAAAC,MAAgC;AAAA,MAE/C,cAAaE,OAAAD,MAAA,6BAAM,gBAAN,gBAAAA,IAAmB,UAAnB,OAAAC,MAA4B;AAAA,MACzC,eAAcE,OAAAD,MAAA,6BAAM,aAAN,gBAAAA,IAAgB,UAAhB,OAAAC,MAAyB;AAAA,MACvC,gBAAeC,MAAA,6BAAM,iBAAN,OAAAA,MAAsB;AAAA,MACrC,eAAcC,MAAA,6BAAM,gBAAN,OAAAA,MAAqB;AAAA,MACnC,gBAAeC,MAAA,6BAAM,iBAAN,OAAAA,MAAsB;AAAA,MACrC,cAAc;AAAA,IACf;AACA,mBAAe,EAAE;AACjB,YAAQ,UAAU,UAAU,SAAS;AAAA,MACpC,QAAQ;AAAA,QACP,UAASC,MAAA,6BAAM,mBAAN,OAAAA,MAAwB;AAAA,MAClC;AAAA,IACD,CAAC;AAAA,EACF;AAEA,EAAAC,WAAU,MAAM;AACf,UAAM,qBAAqB,CAAC,MAAyB;AACpD,QAAE,eAAe;AAAA,IAClB;AAEA,WAAO,iBAAiB,gBAAgB,kBAAkB;AAE1D,WAAO,MAAM;AACZ,aAAO,oBAAoB,gBAAgB,kBAAkB;AAAA,IAC9D;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,EAAAA,WAAU,MAAM;AACf,UAAM,MAAM,oBAAoB;AAChC,WAAO,UAAU;AAEjB,QAAI,MAAM,EAAE,MAAM,CAAC,QAAQ;AAC1B,cAAQ,MAAM,wBAAwB,GAAG;AAAA,IAC1C,CAAC;AACD,UAAM,gBAAgB,CAAC,UAAyB;AApXlD,UAAApB,KAAAI,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC;AAqXG,YAAM,YAAYW,SAAQ,WAAW;AACrC,YAAM,OAAMrB,MAAA,MAAM,QAAN,gBAAAA,IAAW;AAEvB,UAAI,CAAC,MAAM,YAAUI,MAAA,uCAAW,aAAX,gBAAAA,IAAqB,mCAA8B;AACvE;AAAA,MACD;AAEA,UAAI,QAAQ,OAAO,QAAOC,MAAA,uCAAW,aAAX,gBAAAA,IAAqB,IAAI,MAAM,KAAK;AAC7D,cAAM,eAAe;AACrB,SAAAC,MAAA,OAAO,YAAP,gBAAAA,IAAgB;AAChB,cAAM,UAAU;AAAA,UACf;AAAA,UACA,QAAQ,UAAU;AAAA,QACnB;AAEA,qBAAa,UAAU,WAAW,OAAO;AAAA,MAC1C;AAEA,UAAI,QAAQ,OAAO,QAAOC,MAAA,uCAAW,aAAX,gBAAAA,IAAqB,IAAI,MAAM,KAAK;AAC7D,cAAM,eAAe;AACrB,cAAM,UAAU;AAAA,UACf;AAAA,UACA,QAAQ,UAAU;AAAA,QACnB;AAEA,qBAAa,UAAU,WAAW,OAAO;AACzC,SAAAC,MAAA,OAAO,YAAP,gBAAAA,IAAgB;AAAA,MACjB;AAEA,UAAI,QAAQ,OAAO,QAAOC,MAAA,uCAAW,aAAX,gBAAAA,IAAqB,IAAI,MAAM,KAAK;AAC7D,cAAM,eAAe;AACrB,cAAM,UAAU;AAAA,UACf;AAAA,UACA,QAAQ,UAAU;AAAA,QACnB;AAEA,qBAAa,UAAU,WAAW,OAAO;AAAA,MAC1C;AAEA,UAAI,QAAQ,OAAO,QAAOC,MAAA,uCAAW,aAAX,gBAAAA,IAAqB,IAAI,MAAM,KAAK;AAC7D,cAAM,eAAe;AACrB,cAAM,UAAU;AAAA,UACf;AAAA,UACA,QAAQ,UAAU;AAAA,QACnB;AAEA,qBAAa,UAAU,WAAW,OAAO;AAAA,MAC1C;AAAA,IACD;AAEA,WAAO,iBAAiB,WAAW,aAAa;AAEhD,WAAO,MAAM;AACZ,aAAO,oBAAoB,WAAW,aAAa;AAAA,IACpD;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,EAAAU,WAAU,MAAM;AACf,QAAI;AACJ,QAAI;AAEJ,QAAI,MAAM,SAAS,UAAU,MAAM,SAAS,kCAA8B;AACzE,iBAAW,YAAY,MAAM;AAC5B,cAAM,UAAU,KAAK,OAAO,KAAK,IAAI,IAAI,MAAM,iBAAkB,GAAI;AACrE,wBAAgB,OAAO;AAAA,MACxB,GAAG,GAAI;AAAA,IACR,OAAO;AACN,sBAAgB,CAAC;AAAA,IAClB;AAEA,QACC,MAAM,SAAS,UACf,MAAM,SAAS,oCACf,mBAAmB,MAClB;AACD,uBAAiB,YAAY,MAAM;AAClC,0BAAkB,CAAC,aAAa;AAC/B,cAAI,aAAa,QAAQ,YAAY,GAAG;AACvC,0BAAc,cAAc;AAC5B,0BAAc;AAAA,cACb,aAAa,EAAE,OAAO,YAAY,OAAO,cAAc;AAAA,cACvD,UAAU,EAAE,OAAO,MAAM,OAAO,IAAI;AAAA,cACpC,cAAc;AAAA,cACd,aAAa;AAAA,cACb,cAAc;AAAA,cACd,gBAAgB;AAAA,YACjB,CAAC;AACD,mBAAO;AAAA,UACR;AACA,iBAAO,WAAW;AAAA,QACnB,CAAC;AAAA,MACF,GAAG,GAAI;AAAA,IACR;AAEA,WAAO,MAAM;AACZ,UAAI,SAAU,eAAc,QAAQ;AACpC,UAAI,eAAgB,eAAc,cAAc;AAAA,IACjD;AAAA,EACD,GAAG,CAAC,MAAM,SAAS,MAAM,CAAC;AAE1B,EAAAA,WAAU,MAAM;AACf,uBAAmB,EACjB,KAAK,CAAC,UAAU;AAChB,eAAS,UAAU;AAAA,IACpB,CAAC,EACA,MAAM,CAAC,UAAU;AACjB,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACrD,CAAC;AAEF,WAAO,MAAM;AACZ,UAAI,SAAS,SAAS;AACrB,iBAAS,QAAQ,MAAM;AACvB,iBAAS,QAAQ,cAAc;AAC/B,iBAAS,QAAQ,MAAM;AACvB,iBAAS,UAAU;AAAA,MACpB;AAEA,4BAAsB;AAAA,IACvB;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,EAAAA,WAAU,MAAM;AACf,QAAI,gBAAgB,MAAM,UAAU;AACnC,YAAM,EAAE,YAAY,cAAc,QAAQ,cAAc,UAAU,UAAU,IAC3E,MAAM;AACP,YAAM,WAAW;AAAA,QAChB;AAAA,QACA;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,mBAAa,QAAQ;AAAA,IACtB;AAAA,EACD,GAAG,CAAC,MAAM,UAAU,YAAY,CAAC;AAEjC,EAAAA,WAAU,MAAM;AACf,QAAI,MAAM,SAAS;AAClB,oBACE,KAAK,UAAU,cAAc;AAAA,QAC7B,QAAQ,MAAM;AAAA,QACd,QAAQ;AAAA,QACR,OAAO;AAAA,MACR,CAAC,EACA,KAAK,CAAC,QAAQ;AAKb,cAAM,OAAO;AAAA,UACb,cAAc;AAAA,UACd,gBAAgB;AAAA,QAChB;AACA,uBAAe,CAAC,IAAI,CAAC;AACrB,wBAAgB,WAAW,IAAI;AAAA,MAGjC,CAAC,EACA,MAAM,CAAC,QAAQ;AACf,kBAAU,IAAI,SAAS,KAAK,SAAS,OAAO;AAAA,MAC7C,CAAC;AAEF,oBACE,IAAI,UAAU,WAAW,EACzB,KAAK,CAAC,QAAQ;AA1hBnB,YAAApB,KAAAI,KAAAC;AA2hBK,YAAI,SAAOL,MAAA,IAAI,SAAJ,gBAAAA,IAAU,WAAQK,OAAAD,MAAA,2BAAK,SAAL,gBAAAA,IAAW,SAAX,gBAAAC,IAAiB,SAAQ;AACrD,wBAAc,IAAI,KAAK,IAAI;AAAA,QAC5B;AAAA,MACD,CAAC,EACA,MAAM,CAAC,QAAQ;AACf,kBAAU,IAAI,SAAS,KAAK,SAAS,OAAO;AAAA,MAC7C,CAAC;AAAA,IACH;AAAA,EACD,GAAG,CAAC,MAAM,OAAO,CAAC;AAElB,QAAM,mBAAmB,MAAM;AAriBhC,QAAAL,KAAAI,KAAAC;AAsiBE,QAAI,CAAC,MAAM,SAAS;AACnB;AAAA,IACD;AAEA,QAAI,oBAAoB,SAAS;AAChC,mBAAa,oBAAoB,OAAO;AACxC,0BAAoB,UAAU;AAAA,IAC/B;AAEA,QAAI;AACH,mBAAa,UAAU,IAAI,UAAU,IAAGL,MAAA,MAAM,cAAN,gBAAAA,IAAiB,YAAY,cAAaI,MAAA,MAAM,cAAN,gBAAAA,IAAiB,EAAE,WAAUC,MAAA,MAAM,kBAAN,gBAAAA,IAAqB,WAAW,EAAE;AAEjJ,mBAAa,QAAQ,SAAS,MAAM;AACnC,gBAAQ,IAAI,4CAAqC;AACjD,6BAAqB,UAAU;AAE/B,YAAI,gBAAgB,SAAS;AAC5B,wBAAc,gBAAgB,OAAO;AAAA,QACtC;AACA,wBAAgB,UAAU,YAAY,MAAM;AAC3C,cAAI,aAAa,WAAW,aAAa,QAAQ,eAAe,UAAU,MAAM;AAC/E,gBAAI;AACH,2BAAa,QAAQ,KAAK,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC;AAAA,YAC3D,SAAS,OAAO;AACf,sBAAQ,MAAM,wBAAwB,KAAK;AAAA,YAC5C;AAAA,UACD;AAAA,QACD,GAAG,GAAK;AAAA,MACT;AAEA,mBAAa,QAAQ,YAAY,CAAC,UAAU;AApkB/C,YAAAL,KAAAI,KAAAC,KAAAC,KAAAC;AAqkBI,YAAI;AACH,gBAAM,OAAO,KAAK,MAAM,MAAM,IAAI;AAElC,cAAI,KAAK,SAAS,QAAQ;AACzB;AAAA,UACD;AAEA,gBAAM,WAAWc,SAAQ,WAAW;AACpC,gBAAM,YAAY,wBAAwB,UAAU,IAAI;AAExD,gBAAM,WAAW;AAAA,YAChB,UAAU,6BAAM;AAAA,YAChB,QAAQ,6BAAM;AAAA,YACd,MAAM,6BAAM;AAAA,YACZ,YAAY,6BAAM;AAAA,YAClB,cAAc,6BAAM;AAAA,YACpB,WAAW,6BAAM;AAAA,YACjB,YAAY,6BAAM;AAAA,YAClB,cAAc,6BAAM;AAAA,YACpB,MAAM,6BAAM;AAAA,YACZ,MAAM,6BAAM;AAAA,YACZ,MAAM,6BAAM;AAAA,YACZ,YAAY,6BAAM;AAAA,UACnB;AACA,0BAAgB,eAAe,QAAQ;AACvC,0BAAgB,qBAAqB,CAAC,GAAG,SAAS,CAAC;AAEnD,cAAI,iDAAuC,EAAE,SAAS,KAAK,MAAoB,GAAG;AACjF,0BAAc,IAAI;AAClB,+BAAkBjB,OAAAJ,MAAA,qCAAU,cAAV,gBAAAA,IAAqB,qBAArB,OAAAI,MAAyC,IAAI;AAC/D,4BAAgB,qBAAqB;AAAA,cACpC;AAAA,gBACC,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,aAAa;AAAA,cACd;AAAA,cACA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,aAAa;AAAA,cACd;AAAA,cACA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,aAAa;AAAA,cACd;AAAA,cACA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,aAAa;AAAA,cACd;AAAA,cACA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,aAAa;AAAA,cACd;AAAA,YACD,CAAC;AAED,iBAAI,6BAAM,UAAS,YAAY,SAAS,aAAWC,MAAA,+BAAO,cAAP,gBAAAA,IAAkB,iBAAgB;AACpF,uBAAS,QAAQ,KAAK,EAAE,MAAM,CAAC,UAAU;AACxC,wBAAQ,MAAM,4BAA4B,KAAK;AAAA,cAChD,CAAC;AAAA,YACF;AAAA,UACD,OAAO;AACN,gBAAI,SAAS,SAAS;AACrB,uBAAS,QAAQ,MAAM;AACvB,uBAAS,QAAQ,cAAc;AAAA,YAChC;AAAA,UACD;AAEA,cAAI,KAAK,8BAA4B;AACpC,8BAAkB,aAAa,OAAO,CAAC;AAAA,UACxC,YAAW,6BAAM,UAAS,MAAK,6BAAM,UAAS,KAAK,KAAK,kCAA8B;AACrF,8BAAkB,aAAa,KAAK,CAAC;AACrC,4BAAgB,UAAU;AAE1B,gBAAI,CAAC,YAAY;AAChB,4BAAc,IAAI;AAAA,YACnB;AAAA,UACD,aAAY,6BAAM,UAAS,MAAK,6BAAM,UAAS,MAAM,KAAK,kCAA8B;AACvF,8BAAkB,gBAAgB,OAAO,CAAC,CAAC;AAAA,UAC5C,WAAW,KAAK,gCAA6B;AAC5C,kBAAM,aAAYC,MAAA,qCAAU,cAAV,gBAAAA,IAAqB;AACvC,kBAAM,aAAYC,MAAA,6BAAM,eAAN,OAAAA,MAAoB;AAEtC,gBAAI,cAAc,iBAAiB,SAAS;AAC3C,4BAAc,UAAU;AACxB,+BAAiB,UAAU;AAAA,YAC5B;AAEA,gBAAI,cAAc;AAClB,gBAAI,aAAa,WAAW;AAC3B,oBAAM,wBACJ,oBAAI,KAAK,GAAE,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,QAAQ,KAAK;AAE1D,kBAAI,OAAO,oBAAoB,QAAQ,CAAC,CAAC,KAAK,OAAO,SAAS,GAAG;AAChE,8BAAc;AAAA,cACf;AAAA,YACD;AAEA,gBAAI,aAAa;AAChB,kBAAI,CAAC,cAAc,SAAS;AAC3B,kCAAkB,gBAAgB,UAAU,CAAC,CAAC;AAC9C,8BAAc,UAAU;AAAA,cACzB;AAAA,YACD,OAAO;AACN,gCAAkB,aAAa,QAAQ,CAAC;AAAA,YACzC;AAAA,UACD,WAAW,KAAK,kCAA8B;AAC7C,8BAAkB,gBAAgB,SAAS,CAAC,CAAC;AAC7C,4BAAgB,QAAQ;AAAA,UACzB;AAAA,QACD,SAAQ;AACP,kBAAQ,MAAM,0BAAmB,MAAM,IAAI;AAAA,QAC5C;AAAA,MACD;AAEA,mBAAa,QAAQ,UAAU,CAAC,UAAU;AACzC,YAAI,gBAAgB,SAAS;AAC5B,wBAAc,gBAAgB,OAAO;AACrC,0BAAgB,UAAU;AAAA,QAC3B;AAEA,YAAI,MAAM,SAAS,OAAQ,qBAAqB,UAAU,sBAAsB;AAC/E,+BAAqB,WAAW;AAChC,gBAAM,QAAQ,KAAK;AAAA,YAClB,qBAAqB,KAAK,IAAI,GAAG,qBAAqB,UAAU,CAAC;AAAA,YACjE;AAAA,UACD;AAEA,kBAAQ;AAAA,YACP,wDAAiD,qBAAqB,OAAO,IAAI,oBAAoB,QAAQ,KAAK;AAAA,UACnH;AAEA,8BAAoB,UAAU,WAAW,MAAM;AAC9C,6BAAiB;AAAA,UAClB,GAAG,KAAK;AAAA,QACT,WAAW,qBAAqB,WAAW,sBAAsB;AAChE,oBAAU,yDAAyD,OAAO;AAAA,QAC3E;AAAA,MACD;AAEA,mBAAa,QAAQ,UAAU,CAAC,UAAU;AACzC,gBAAQ,MAAM,2BAAsB,KAAK;AAAA,MAC1C;AAAA,IACD,SAAS,OAAO;AACf,UAAI,qBAAqB,UAAU,sBAAsB;AACxD,6BAAqB,WAAW;AAChC,cAAM,QAAQ,KAAK;AAAA,UAClB,qBAAqB,KAAK,IAAI,GAAG,qBAAqB,UAAU,CAAC;AAAA,UACjE;AAAA,QACD;AACA,4BAAoB,UAAU,WAAW,MAAM;AAC9C,2BAAiB;AAAA,QAClB,GAAG,KAAK;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,EAAAa,WAAU,MAAM;AACf,QAAI,MAAM,SAAS;AAClB,uBAAiB;AAAA,IAClB;AAEA,WAAO,MAAM;AACZ,UAAI,oBAAoB,SAAS;AAChC,qBAAa,oBAAoB,OAAO;AACxC,4BAAoB,UAAU;AAAA,MAC/B;AACA,UAAI,gBAAgB,SAAS;AAC5B,sBAAc,gBAAgB,OAAO;AACrC,wBAAgB,UAAU;AAAA,MAC3B;AACA,UAAI,aAAa,SAAS;AACzB,qBAAa,QAAQ,MAAM,KAAM,sBAAsB;AACvD,qBAAa,UAAU;AAAA,MACxB;AACA,2BAAqB,UAAU;AAAA,IAChC;AAAA,EACD,GAAG,CAAC,MAAM,OAAO,CAAC;AAElB,QAAM,gBAAgB,CAAC,SAAc;AAnxBtC,QAAApB;AAoxBE,qBAAiB,UAAU,oBAAoB;AAAA,MAC9C,eAAcA,MAAA,6BAAM,iBAAN,OAAAA,MAAsB;AAAA,MACpC,MAAM;AAAA,IACP,CAAC;AAAA,EACF;AAEA,MAAI,CAAC,MAAM,iBAAiB,CAAC,MAAM,SAAS;AAC3C,WACC,gBAAAF,KAACwB,MAAA,EACC,kBAAQ,mBAAmB,KAC3B,gBAAAxB;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA,QACT,yBAAyB,CAAC,SAAuD;AAChF,0BAAgB,WAAW,IAAI;AAAA,QAChC;AAAA;AAAA,IACD,GAEF;AAAA,EAEF;AAEA,SACC,gBAAAC,MAAAF,WAAA,EACC;AAAA,oBAAAC,KAACwB,MAAA,EACA,0BAAAxB;AAAA,MAAC;AAAA;AAAA,QACA,IAAI;AAAA,QACJ,SAAS;AAAA,QAET,0BAAAA;AAAA,UAACyB;AAAA,UAAA;AAAA,YACA,OAAK,WAAM,cAAN,mBAAiB,eAAc,UAAU;AAAA,YAC9C,WACC,aAAa,MACX,WAAM,cAAN,mBAAiB,eAClB,IACC;AAAA,YAEH,IAAI;AAAA,cACH,YAAU,WAAM,cAAN,mBAAiB,eAAc,UAAU;AAAA,cACnD,QAAM,WAAM,cAAN,mBAAiB,eAAc,SAAS,IAAI;AAAA,cAClD,OAAK,WAAM,cAAN,mBAAiB,eAAc,SAAS,IAAI;AAAA,cACjD,SAAS;AAAA,cACT,OAAO;AAAA,cACP,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,GAAG;AAAA,cACH,cAAc;AAAA,cACd,SAAS;AAAA,cACT,UAAQ,WAAM,cAAN,mBAAiB,eAAc,OAAO,mBAAmB;AAAA,cACjE,YAAY,MAAM,YAAY,OAAO,CAAC,cAAc,WAAW,GAAG;AAAA,gBACjE,UAAU,MAAM,YAAY,SAAS;AAAA,cACtC,CAAC;AAAA,cACD,YAAY;AAAA,YACb;AAAA,YAEA,0BAAAxB;AAAA,cAACuB;AAAA,cAAA;AAAA,gBACA,IAAI;AAAA,kBACH,SAAS;AAAA,kBACT,YAAY;AAAA,gBACb;AAAA,gBAEA;AAAA,kCAAAvB;AAAA,oBAACuB;AAAA,oBAAA;AAAA,sBACA,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,KAAK;AAAA,wBACL,QAAQ;AAAA,sBACT;AAAA,sBAEC;AAAA,qCAAM,cAAN,mBAAiB,gBACjB,gBAAAvB;AAAA,0BAACyB;AAAA,0BAAA;AAAA,4BACA,WAAU;AAAA,4BACV,MAAK;AAAA,4BACL,IAAI;AAAA,8BACH,QAAQ;AAAA,4BACT;AAAA,4BACA,aAAa;AAAA,4BACb,cAAc;AAAA,4BAEd;AAAA,8CAAA1B,KAAC,iBAAc;AAAA,8BAAG;AAAA;AAAA;AAAA,wBACnB;AAAA,0BAGA,WAAM,cAAN,mBAAiB,sBACjB,oCAAO,aAAP,mBAAiB,iBACjB,oCAAO,aAAP,mBAAiB,UAAS,YACzB,gBAAAA,KAAC,QAAK,QAAO,oCAAO,aAAP,mBAAiB,YAAY;AAAA,wBAG3C,GAAC,WAAM,cAAN,mBAAiB,uBAClB,gBAAAA,KAAC2B,UAAA,EAAQ,OAAM,QACd,0BAAA3B;AAAA,0BAAC0B;AAAA,0BAAA;AAAA,4BACA,MAAK;AAAA,4BACL,SAAS,CAAC,MAAM;AAl3B3B,kCAAAxB,KAAAI;AAm3BY,kCACC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,8BAKD,EAAE,UAASA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB,aAA2B,GAC7D;AACD,iDAAiB,CAAC;AAAA,8BACnB;AAAA,4BACD;AAAA,4BACA,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKV,EAAE,SAAS,MAAM,SAAS,OAAO,YAAY,CAAe;AAAA,4BAE5D,0BAAAN;AAAA,8BAAC;AAAA;AAAA,gCACA,IAAI;AAAA,kCACH,OAEE;AAAA;AAAA;AAAA;AAAA;AAAA,kCAKA,EAAE,SAAS,MAAM,SAAS,OAAO,YAAY,CAAe,IAE5D,oBACC;AAAA,gCACJ;AAAA;AAAA,4BACD;AAAA;AAAA,wBACD,GACD;AAAA,wBAGD,gBAAAA,KAACwB,MAAA,EAAI,SAAS,MAAM,cAAc,IAAI,GACrC,0BAAAxB;AAAA,0BAAC4B;AAAA,0BAAA;AAAA,4BACA,IAAI;AAAA,8BACH,OAAO;AAAA,8BACP,OAAO;AAAA,8BACP,aAAa;AAAA,8BACb,UAAU;AAAA,8BACV,YAAY;AAAA,8BACZ,QAAQ;AAAA,4BACT;AAAA,4BAEC,gBAAM,SAAS,oCAAgC,mBAAmB,OAClE,eAAe,cAAc,IAC5B,eAAe,YAAY;AAAA;AAAA,wBAC9B,GACD;AAAA,wBAEA,gBAAA5B;AAAA,0BAAC;AAAA;AAAA,4BACA,IAAI;AAAA,8BACH,SAAS;AAAA,4BACV;AAAA,4BACA,OACC,aAAa,oBACZ,gBAAAA;AAAA,8BAACwB;AAAA,8BAAA;AAAA,gCACA,IAAI;AAAA,kCACH,YAAY;AAAA,kCACZ,OAAO;AAAA,kCACP,SAAS;AAAA,kCACT,YAAY;AAAA,kCACZ,gBAAgB;AAAA,gCACjB;AAAA,gCAEA,0BAAAxB,KAAC6B,mBAAA,EAAiB,MAAK,QAAO;AAAA;AAAA,4BAC/B,IACC,gBAAA7B;AAAA,8BAAC4B;AAAA,8BAAA;AAAA,gCACD,SAAQ;AAAA,gCACR,IAAI;AAAA,kCACH,YAAY;AAAA,kCACZ,OAAO;AAAA,kCACP,WAAW;AAAA,gCACZ;AAAA,gCAEC,kCAAM,aAAN,mBAAgB,WAAhB,mBAAwB,kBAAxB,YAAyC;AAAA;AAAA,4BAC3C;AAAA,4BAEF,SAAS;AAAA,4BACT,YAAY,gBAAA5B,KAAC,qBAAkB,OAAM,WAAU;AAAA,4BAC/C,UAAU;AAAA;AAAA,wBACX;AAAA;AAAA;AAAA,kBACD;AAAA,kBAEA,gBAAAC;AAAA,oBAACuB;AAAA,oBAAA;AAAA,sBACA,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,KAAK;AAAA,wBACL,gBAAgB;AAAA,wBAChB,YAAY;AAAA,sBACb;AAAA,sBAEA;AAAA,wCAAAxB,KAAC2B,UAAA,EAAQ,OAAO,eACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAEE,2CAAoC,EAAE;AAAA,+BACrC,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,4BACzB,IAEA,aACC;AAAA,4BAEH,SAAS,CAAC,MAAM;AA99B1B,kCAAA5B,KAAAI;AA+9BW,kCACC,2CAAoC,EAAE;AAAA,iCACrCA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB;AAAA,8BACzB,GACC;AACD,kCAAE,gBAAgB;AAClB,iDAAiB;AAAA,8BAClB;AAAA,4BACD;AAAA,4BACA,SAAS;AAAA,8BACR,MAEE,2CAAoC,EAAE;AAAA,iCACrC,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,8BACzB,IAEA,aACC;AAAA,4BACJ;AAAA,4BACA,IAAI,mBAEF,2CAAoC,EAAE;AAAA,+BACrC,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB;AAAA,4BACzB,IAEA,WACC;AAAA,4BAEH,UAAU;AAAA,4BAEV,0BAAAN,KAAC+B,eAAA,EAAa;AAAA;AAAA,wBACf,GACD;AAAA,wBAEA,gBAAA/B,KAAC2B,UAAA,EAAQ,SAAO,WAAM,aAAN,mBAAgB,UAAS,IAAI,WAAW,QACvD,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,WAEE,WAAM,aAAN,mBAAgB,UAAS,OACxB,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,cACC;AAAA,4BAEH,SAAS,CAAC,MAAM;AACf,gCAAE,gBAAgB;AAClB,+CAAiB;AAAA,4BAClB;AAAA,4BACA,MAEE,WAAM,aAAN,mBAAgB,UAAS,OACxB,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,mBAAK,aAEJ,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,mBAAK,YACJ,mBAAK;AAAA,4BAER,YACG,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,8CAEzB,WAAM,aAAN,mBAAgB,UAAS,KAC1B;AAAA,4BAGA,gCACA,gBAAA9B;AAAA,8BAAC6B;AAAA,8BAAA;AAAA,gCACA,MAAK;AAAA,gCACL,IAAI;AAAA,kCACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,gCAC9B;AAAA;AAAA,4BACD,MACC,WAAM,aAAN,mBAAgB,UAAS,IAC1B,gBAAA7B,KAACgC,YAAA,EAAU,IACV,gBAAAhC,KAACiC,QAAA,EAAM;AAAA;AAAA,wBACV,GACD;AAAA,wBAEA,gBAAAjC,KAAC2B,UAAA,EAAQ,SAAO,WAAM,aAAN,mBAAgB,UAAS,IAAI,WAAW,QACvD,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,WAEE,WAAM,aAAN,mBAAgB,UAAS,OACxB,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,cACC;AAAA,4BAEH,SAAS,CAAC,MAAM;AACf,gCAAE,gBAAgB;AAClB,+CAAiB;AAAA,4BAClB;AAAA,4BACA,MACC,WAAM,aAAN,mBAAgB,UAAS,IAAI,mBAAK,cAEjC,WAAM,aAAN,mBAAgB,UAAS,OACxB,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,mBAAK,aAEJ,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,2CAEzB,mBAAK,YACJ,mBAAK;AAAA,4BAER,YACG,iBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,8CAEzB,WAAM,aAAN,mBAAgB,UAAS,KAC1B,yBACA,WAAM,aAAN,mBAAgB,UAAS;AAAA,4BAGzB,gCACA,gBAAA9B;AAAA,8BAAC6B;AAAA,8BAAA;AAAA,gCACA,MAAK;AAAA,gCACL,IAAI;AAAA,kCACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,gCAC9B;AAAA;AAAA,4BACD,MACC,WAAM,aAAN,mBAAgB,UAAS,IAC1B,gBAAA7B,KAAC,UAAO,IACP,gBAAAA,KAAC,OAAI;AAAA;AAAA,wBACR,GACD;AAAA,wBAEC,GAAC,WAAM,cAAN,mBAAiB,8BAClB,gBAAAA,KAAC2B,UAAA,EAAQ,OAAO,iBACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAAS,MAAM,yBAAyB,cAAc;AAAA,4BACtD,SAAS,CAAC,MAAM;AAnmC3B,kCAAA5B,KAAAI;AAomCY,oCACEA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB,0CAExB;AACD,kCAAE,gBAAgB;AAClB,gDAAgB,0BAA0B,IAAI;AAAA,8BAC/C;AAAA,4BACD;AAAA,4BACA,IACC,MAAM,yBAAyB,mBAAK,aAElC,kBAAM,aAAN,mBAAgB,WAAhB,oBAAwB,2CAGzB,mBAAK,YACJ,mBAAK;AAAA,4BAER,YACE,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB;AAAA,4BAG1B,0BAAAN,KAACkC,yBAAA,EAAuB;AAAA;AAAA,wBACzB,GACD;AAAA,wBAGA,GAAC,YAAM,cAAN,oBAAiB,4BAClB,gBAAAlC,KAAC2B,UAAA,EAAQ,OAAO,mBACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAAS,MAAM,uBAAuB,cAAc;AAAA,4BACpD,SAAS,CAAC,MAAM;AAloC3B,kCAAA5B,KAAAI;AAmoCY,oCACEA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB,0CAExB;AACD,kCAAE,gBAAgB;AAClB,gDAAgB,wBAAwB,IAAI;AAAA,8BAC7C;AAAA,4BACD;AAAA,4BACA,IACC,MAAM,uBAAuB,mBAAK,aAEhC,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB,2CAGzB,mBAAK,YACJ,mBAAK;AAAA,4BAER,YACE,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB;AAAA,4BAG1B,0BAAAN,KAAC,SAAM;AAAA;AAAA,wBACR,GACD;AAAA,0BAGA,YAAM,cAAN,oBAAiB,sBACjB,gBAAAA,KAAC2B,UAAA,EAAQ,OAAO,YACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAAS,QAAQ,iBAAiB,IAAI,cAAc;AAAA,4BACpD,SAAS,CAAC,MAAM;AAjqC3B,kCAAA5B,KAAAI;AAkqCY,kCACC,6CAAqC,EAAE;AAAA,iCACtCA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB;AAAA,8BACzB,GACC;AACD,kCAAE,gBAAgB;AAClB,2DAA2B,CAAC;AAAA,8BAC7B;AAAA,4BACD;AAAA,4BACA,IACC,QAAQ,iBAAiB,IAAI,mBAAK,WAEjC,6CAAqC,EAAE;AAAA,+BACtC,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB;AAAA,4BACzB,IAEA,mBAAK,YACJ,mBAAK;AAAA,4BAER,UACC,CAAC,6CAAqC,EAAE;AAAA,+BACvC,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB;AAAA,4BACzB;AAAA,4BAGD,0BAAAN,KAAC,YAAS;AAAA;AAAA,wBACX,GACD;AAAA,wBAGA,GAAC,YAAM,cAAN,oBAAiB,yBAClB,gBAAAA,KAAC2B,UAAA,EAAQ,OAAO,YACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAEE;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKA,EAAE,UAAS,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB,aAA2B,IAE9D,cACC;AAAA,4BAEH,SAAS,CAAC,MAAM;AA/sC3B,kCAAA5B,KAAAI;AAgtCY,kCACC;AAAA;AAAA;AAAA;AAAA;AAAA,8BAKA,EAAE,UAASA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB,aAA2B,GAC7D;AACD,kCAAE,gBAAgB;AAClB,uDAAuB,IAAI;AAAA,8BAC5B;AAAA,4BACD;AAAA,4BACA,IAEE;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKA,EAAE,UAAS,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB,aAA2B,IAE9D,iCACI,UADJ;AAAA,8BAEC,aAAa;AAAA,8BACb,iBAAiB;AAAA,8BACjB,UAAU;AAAA,8BACV,WAAW;AAAA,8BACX,QAAQ,aAAa,MAAM,QAAQ,MAAM,KAAK;AAAA,8BAC9C,QAAQ;AAAA,8BACR,WAAW;AAAA,gCACV,SAAS;AAAA,gCACT,WAAW;AAAA,gCACX,QAAQ,aAAa,MAAM,QAAQ,MAAM,KAAK;AAAA,8BAC/C;AAAA,8BACA,YAAY;AAAA,gCACX,SAAS;AAAA,gCACT,WAAW,sBAAsB,MAAM,QAAQ,QAAQ,KAAK;AAAA,8BAC7D;AAAA,4BACD,KACC,iCACG,WADH;AAAA,8BAEA,UAAU;AAAA,4BACX;AAAA,4BAEF,UACC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKD,EAAE,UAAS,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB,aAA2B,KAC9D;AAAA,4BAGA,2BACA,gBAAAN;AAAA,8BAAC6B;AAAA,8BAAA;AAAA,gCACA,MAAK;AAAA,gCACL,OAAM;AAAA;AAAA,4BACP,IACC,gBAAA7B,KAACmC,UAAA,EAAQ;AAAA;AAAA,wBACZ,GACD;AAAA,wBAEA,GAAC,YAAM,cAAN,oBAAiB,8BAClB,gBACA,2CAAa,UAAS,KACrB,gBAAAnC,KAAC2B,UAAA,EAAQ,OAAO,kBACf,0BAAA3B;AAAA,0BAAC8B;AAAA,0BAAA;AAAA,4BACA,SAAS,QAAQ,mBAAmB,IAAI,cAAc;AAAA,4BACtD,SAAS,CAAC,MAAM;AArxC5B,kCAAA5B,KAAAI;AAsxCa,kCACC,uCAAkC,EAAE;AAAA,iCACnCA,OAAAJ,MAAA,MAAM,aAAN,gBAAAA,IAAgB,WAAhB,gBAAAI,IAAwB;AAAA,8BACzB,GACC;AACD,kCAAE,gBAAgB;AAClB,sDAAsB,CAAC;AAAA,8BACxB;AAAA,4BACD;AAAA,4BACA,IAAI,QAAQ,mBAAmB,IAAI,mBAAK,WAAY,mBAAK;AAAA,4BACzD,UACC,CAAC,uCAAkC,EAAE;AAAA,+BACpC,mBAAM,aAAN,oBAAgB,WAAhB,oBAAwB;AAAA,4BACzB;AAAA,4BAGD,0BAAAN,KAAC,YAAS;AAAA;AAAA,wBACX,GACD;AAAA;AAAA;AAAA,kBAEH;AAAA;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA;AAAA,IACD,GACD;AAAA,IAEA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,IAAI;AAAA,QACJ,SAAS;AAAA,QAET,0BAAAC;AAAA,UAACwB;AAAA,UAAA;AAAA,YACA,KAAK;AAAA,YACL,WAAW,mBAAmB,IAAI;AAAA,YAClC,IAAI;AAAA,cACH,UAAU;AAAA,cACV,MAAM,eAAe;AAAA,cACrB,KAAK,eAAe;AAAA,cACpB,cAAc;AAAA,cACd,SAAS;AAAA,cACT,QAAQ,OAAO;AAAA,cACf,YAAY,MAAM,YAAY,OAAO,CAAC,cAAc,WAAW,GAAG;AAAA,gBACjE,UAAU,MAAM,YAAY,SAAS;AAAA,cACtC,CAAC;AAAA,cACD,YAAY,cAAc,GAAC,YAAM,cAAN,oBAAiB,oBAAmB,YAAY;AAAA,cAC3E,YAAY;AAAA,YACb;AAAA,YAEA;AAAA,8BAAAxB;AAAA,gBAACuB;AAAA,gBAAA;AAAA,kBACA,IAAI;AAAA,oBACH,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,gBAAgB;AAAA,oBAChB,QAAQ;AAAA,oBACR,SAAS;AAAA,kBACV;AAAA,kBACA,aAAa;AAAA,kBACb,cAAc;AAAA,kBAEd;AAAA,oCAAAxB;AAAA,sBAAC;AAAA;AAAA,wBACA,IAAI;AAAA,0BACH,WAAW;AAAA,0BACX,OAAO;AAAA,wBACR;AAAA;AAAA,oBACD;AAAA,oBAAG;AAAA,oBACH,gBAAAA,KAAC0B,aAAA,EAAW,SAAS,MAAM,cAAc,KAAK,GAC7C,0BAAA1B,KAACoC,QAAA,EAAM,GACR;AAAA;AAAA;AAAA,cACD;AAAA,cACA,gBAAApC,KAACwB,MAAA,EACA,0BAAAxB;AAAA,gBAAC;AAAA;AAAA,kBACA,KAAK,IAAG,YAAM,cAAN,oBAAiB,SAAS,wCAAwC,MAAM,OAAO,aAAY,YAAM,cAAN,oBAAiB,YAAY;AAAA,kBAChI,QAAQ;AAAA,kBAER,OAAO;AAAA,kBACP,OAAM;AAAA,kBACN,OAAO;AAAA,oBACN,QAAQ;AAAA,kBACT;AAAA;AAAA,cACA,GACF;AAAA;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IAEA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,UAAU;AAAA,QACV,MAAM,QAAQ,cAAc;AAAA,QAC5B,SAAS;AAAA,QACT,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,QAClC,IAAI;AAAA,UACH,QAAQ;AAAA,QACT;AAAA,QAEA,0BAAAC;AAAA,UAACuB;AAAA,UAAA;AAAA,YACA,IAAI;AAAA,cACH,KAAK;AAAA,cACL,SAAS;AAAA,cACT,UAAU;AAAA,gBACT,iBAAiB;AAAA,cAClB;AAAA,YACD;AAAA,YAEA;AAAA,8BAAAxB;AAAA,gBAACqC;AAAA,gBAAA;AAAA,kBACA,MAAK;AAAA,kBACL,OAAO;AAAA,kBACP,aAAY;AAAA,kBACZ,UAAU,CAAC,MAAM;AAChB,0BAAM,QAAQ,EAAE,OAAO;AACvB,mCAAe,KAAK;AAAA,kBACrB;AAAA,kBACA,WAAW,CAAC,MAAM;AACjB,wBAAI,EAAE,QAAQ,SAAS;AACtB,sCAAgB,WAAW;AAAA,oBAC5B;AAAA,kBACD;AAAA;AAAA,cACD;AAAA,cACA,gBAAArC;AAAA,gBAAC0B;AAAA,gBAAA;AAAA,kBACA,OAAM;AAAA,kBACN,SAAS,MAAM;AACd,oCAAgB,WAAW;AAAA,kBAC5B;AAAA,kBAEC,+BACA,gBAAA1B;AAAA,oBAAC6B;AAAA,oBAAA;AAAA,sBACA,MAAK;AAAA,sBACL,IAAI;AAAA,wBACH,OAAO,MAAM,QAAQ,QAAQ;AAAA,sBAC9B;AAAA;AAAA,kBACD,IACC,gBAAA7B,KAAC,SAAM,OAAM,WAAU;AAAA;AAAA,cAC1B;AAAA;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IAEA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,UAAU;AAAA,QACV,MAAM,QAAQ,iBAAiB;AAAA,QAC/B,SAAS;AAAA,QACT,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,QAClC,IAAI;AAAA,UACH,QAAQ;AAAA,QACT;AAAA,QAEA,0BAAAA;AAAA,UAACwB;AAAA,UAAA;AAAA,YACA,IAAI;AAAA,cACH,KAAK;AAAA,cACL,SAAS;AAAA,cACT,UAAU;AAAA,gBACT,iBAAiB;AAAA,cAClB;AAAA,cACA,SAAS;AAAA,cACT,YAAY;AAAA,YACb;AAAA,YAEA,0BAAAxB,KAAC2B,UAAA,EAAQ,OAAM,qBACd,0BAAA1B;AAAA,cAAC6B;AAAA,cAAA;AAAA,gBACA,OAAM;AAAA,gBACN,SAAQ;AAAA,gBACR,SAAS,MAAM;AACd,gCAAc,MAAM,QAAQ;AAAA,gBAC7B;AAAA,gBACA;AAAA;AAAA,kBAEA,gBAAA7B;AAAA,oBAACuB;AAAA,oBAAA;AAAA,sBACA,IAAI;AAAA,wBACH,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,iBAAiB;AAAA,wBACjB,OAAO;AAAA,wBACP,YAAY;AAAA,wBACZ,SAAS;AAAA,wBACT,cAAc;AAAA,sBACf;AAAA,sBACA;AAAA;AAAA,wBAEA,gBAAAxB;AAAA,0BAAC;AAAA;AAAA,4BACA,IAAI;AAAA,8BACH,YAAY;AAAA,8BACZ,OAAO;AAAA,8BACP,WAAW;AAAA,4BACZ;AAAA;AAAA,wBACD;AAAA;AAAA;AAAA,kBACD;AAAA;AAAA;AAAA,YACD,GACD;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IAEA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,UAAU;AAAA,QACV,MAAM,QAAQ,mBAAmB;AAAA,QACjC,SAAS;AAAA,QACT,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,QAClC,IAAI;AAAA,UACH,QAAQ;AAAA,QACT;AAAA,QAEA,0BAAAA;AAAA,UAACwB;AAAA,UAAA;AAAA,YACA,IAAI;AAAA,cACH,KAAK;AAAA,cACL,SAAS;AAAA,cACT,UAAU;AAAA,gBACT,iBAAiB;AAAA,cAClB;AAAA,cACA,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,eAAe;AAAA,cACf,KAAK;AAAA,YACN;AAAA,YAEC,qDAAa,IAAI,CAAC,SAAS;AAv+CjC,kBAAAtB,KAAAI,KAAAC;AAw+CM,qBACC,gBAAAP;AAAA,gBAACwB;AAAA,gBAAA;AAAA,kBAEA,IAAI;AAAA,oBACH,OAAO;AAAA,kBACR;AAAA,kBAEA,0BAAAxB,KAAC2B,UAAA,EAAQ,QAAOzB,MAAA,6BAAM,iBAAN,OAAAA,MAAsB,IACrC,0BAAAF;AAAA,oBAAC8B;AAAA,oBAAA;AAAA,sBACA,OAAM;AAAA,sBACN,WACCxB,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,iBAAe,6BAAM,cAAa,cAAc;AAAA,sBAEjE,SAAS,MAAM;AACd,wCAAgB,WAAW,IAAI;AAAA,sBAChC;AAAA,sBACA,IAAI;AAAA,wBACH,OAAO;AAAA,sBACR;AAAA,sBAEC,WAAAC,MAAA,6BAAM,iBAAN,OAAAA,MAAsB;AAAA;AAAA,kBACxB,GACD;AAAA;AAAA,gBApBK,6BAAM;AAAA,cAqBZ;AAAA,YAEF;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IAEA,gBAAAP;AAAA,MAAC;AAAA;AAAA,QACA,UAAU;AAAA,QACV,MAAM,QAAQ,cAAc;AAAA,QAC5B,SAAS;AAAA,QACT,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,QAClC,IAAI;AAAA,UACH,QAAQ;AAAA,QACT;AAAA,QAEC,WAAC,eAAc,yCAAY,YAAW,IACtC,gBAAAA,KAAC,YAAS,SAAS,MAAM,wBAAwB,OAAO,GAAG,qBAAO,IACjE,yCAAY,IAAI,CAAC,SAAS;AAhhDhC,cAAAE,KAAAI,KAAAC;AAihDM,iBACC,gBAAAN;AAAA,YAAC;AAAA;AAAA,cAEA,IAAI;AAAA;AAAA,gBAEH,mBACCC,MAAA,+BAAO,aAAP,gBAAAA,IAAiB,YAAW,YAAW,+BAAO,kBAAgB,6BAAM,QACnE,iBACC;AAAA,gBACH,SACCI,MAAA,+BAAO,aAAP,gBAAAA,IAAiB,YAAW,YAAW,+BAAO,kBAAgB,6BAAM,QACnE,UACC;AAAA,gBACH,UAAU;AAAA,kBACT,mBACCC,MAAA,+BAAO,aAAP,gBAAAA,IAAiB,YAAW,YAAW,+BAAO,kBAAgB,6BAAM,QACnE,iBACC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKJ;AAAA,cACD;AAAA,cACA,SAAS,MAAM,wBAAwB,6BAAM,IAAI;AAAA,cACjD;AAAA;AAAA,gBACG,6BAAM;AAAA;AAAA;AAAA,YAxBJ,6BAAM;AAAA,UAyBZ;AAAA,QAEF;AAAA;AAAA,IAEF;AAAA,IAEA,gBAAAP;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,MAAM,QAAQ,QAAQ;AAAA,QACtB,SAAS;AAAA,QACT,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,QAClC,IAAI;AAAA,UACH,QAAQ;AAAA,QACT;AAAA,QAEA,0BAAAC;AAAA,UAACuB;AAAA,UAAA;AAAA,YACA,IAAI;AAAA,cACH,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,eAAe;AAAA,cACf,SAAS;AAAA,cACT,UAAU;AAAA,gBACT,iBAAiB;AAAA,cAClB;AAAA,YACD;AAAA,YAEA;AAAA,8BAAAxB;AAAA,gBAAC;AAAA;AAAA,kBACA,MAAM,gBAAAA,KAAC,UAAO,OAAM,aAAY;AAAA,kBAChC,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,IAAI;AAAA,oBACH,QAAQ;AAAA,kBACT;AAAA;AAAA,cACD;AAAA,cAEA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,MAAM,gBAAAA,KAAC,WAAQ,OAAM,QAAO;AAAA,kBAC5B,OAAM;AAAA,kBACN,SAAQ;AAAA,kBACR,IAAI;AAAA,oBACH,QAAQ;AAAA,kBACT;AAAA;AAAA,cACD;AAAA,cAEA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,MAAM,gBAAAA,KAACsC,WAAA,EAAS,OAAM,WAAU;AAAA,kBAChC,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,IAAI;AAAA,oBACH,QAAQ;AAAA,kBACT;AAAA;AAAA,cACD;AAAA;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IAEC,QAAQ,MAAM,oBAAoB,KAAK,gBAAAtC,KAAC,oBAAiB;AAAA,IAEzD,QAAQ,MAAM,sBAAsB,KACpC,gBAAAA,KAAC,sBAAmB,MAAM,MAAM,wBAAwB;AAAA,IAGxD,QAAQ,mBAAmB,KAC3B,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA,QACT,qBAAqB;AAAA;AAAA,IACtB;AAAA,IAGA,QAAQ,qBAAqB,KAC7B,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA;AAAA,IACV;AAAA,KAEF;AAEF;;;ASznDA,SAAS,YAAY;AAMb,gBAAAuC,YAAA;AADD,IAAM,cAAc,KAAuB,CAAC,EAAE,SAAS,MAAM;AACnE,SAAO,gBAAAA,KAAC,iBAAe,UAAS;AACjC,CAAC;AAED,YAAY,cAAc;;;AVYvB,gBAAAC,YAAA;AAhBI,IAAM,mBAAmBC,MAA4B,CAAC,EAAE,aAAa,MAAM;AACjF,QAAM,mBAAmBC;AAAA,IACxB,CAAC,SAAc;AACd,UAAI;AACH,YAAI,gBAAgB,OAAO,iBAAiB,YAAY;AACvD,uBAAa,IAAI;AAAA,QAClB;AAAA,MACD,SAAS,OAAO;AACf,gBAAQ,MAAM,kDAAkD,KAAK;AAAA,MACtE;AAAA,IACD;AAAA,IACA,CAAC,YAAY;AAAA,EACd;AAEA,SACC,gBAAAF,KAAC,eACA,0BAAAA,KAAC,gBAAa,cAAc,kBAAkB,GAC/C;AAEF,CAAC;AAED,iBAAiB,cAAc;;;AWH/B,eAAsB,QAAQ;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAiC;AAChC,MAAI,CAAC,UAAU,OAAO,WAAW,YAAY,OAAO,KAAK,EAAE,WAAW,GAAG;AACxE,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,MAAI,CAAC,YAAY,OAAO,aAAa,YAAY,SAAS,KAAK,EAAE,WAAW,GAAG;AAC9E,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,QAAQ,KAAK,EAAE,WAAW,GAAG;AAC3E,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,MAAI;AACH,UAAM,aAAa,MAAM,aAAa,KAAK;AAAA,MAC1C,QAAQ,OAAO,KAAK;AAAA,MACpB,UAAU,SAAS,KAAK;AAAA,MACxB,SAAS,QAAQ,KAAK;AAAA,MACtB,UAAU,uCAAW;AAAA,MACrB,SAAS,uCAAW;AAAA,IACrB,CAAC;AAED,UAAM,MAAM;AAAA,MACX,aAAa,yCAAY;AAAA,MACzB,YAAY,yCAAY;AAAA,MACxB,UAAU,yCAAY;AAAA,IACvB;AACA,QAAI,YAAY;AACf,cAAQ,KAAK,8BAA8B;AAC3C,sBAAgB;AAAA,QACf,OAAO,KAAK;AAAA,QACZ,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,QACA,kCAAK,yCAAY,gBAAkB;AAAA,MACpC;AAAA,IACD,OAAO;AACN,sBAAgB,aAAa;AAC7B,YAAM,IAAI;AAAA,QACT;AAAA,MACD;AAAA,IACD;AAAA,EACD,SAAS,OAAO;AACf,oBAAgB,aAAa;AAE7B,QAAI,iBAAiB,OAAO;AAC3B,YAAM;AAAA,IACP,OAAO;AACN,YAAM,IAAI,MAAM,8BAA8B,OAAO,KAAK,CAAC,EAAE;AAAA,IAC9D;AAAA,EACD;AACD;AAEO,SAAS,gBAAwB;AACvC,SAAO;AACR;AAEO,SAAS,mBAA4B;AAC3C,SAAO,gBAAgB,SAAS,EAAE;AACnC;","names":["_a","_a","getItem","removeItem","getItem","removeItem","useCallback","useState","_a","getItem","useState","useCallback","data","_a","useCallback","useState","getItem","useState","useCallback","data","_a","useState","useState","process_id","process_name","status","phone_number","agent_id","convox_id","useState","useEffect","useState","useEffect","memo","useCallback","CallEnd","Close","Pause","PlayArrow","SupportAgent","TransferWithinAStation","Upcoming","Box","Button","CircularProgress","IconButton","Paper","TextField","Tooltip","Typography","useTheme","useEffect","useRef","useState","useTheme","useEffect","useState","useState","useEffect","useState","useEffect","useCallback","useState","useCallback","_a","jsx","jsxs","_a","useTheme","useState","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","useEffect","useCallback","useState","getItem","Fragment","jsx","jsxs","_a","useTheme","useRef","useState","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","useEffect","getItem","Box","Paper","IconButton","Tooltip","Typography","CircularProgress","Button","SupportAgent","PlayArrow","Pause","TransferWithinAStation","CallEnd","Close","TextField","Upcoming","jsx","jsx","memo","useCallback"]}
1
+ {"version":3,"sources":["../call-control-sdk/lib/hooks/eventsTracker.ts","../call-control-sdk/lib/hooks/useLogout.ts","../call-control-sdk/lib/hooks/useEndCall.ts","../call-control-sdk/lib/hooks/useClickToCall.ts","../call-control-sdk/lib/hooks/useGetAuthorizationToken.ts","../call-control-sdk/lib/hooks/useSDKState.ts","../call-control-sdk/lib/components/callControlPanel.tsx","../call-control-sdk/lib/components/callControls.tsx","../call-control-sdk/lib/components/dialog.tsx","../call-control-sdk/lib/services/request.ts","../call-control-sdk/lib/components/styles.ts","../call-control-sdk/lib/hooks/useDraggable.ts","../call-control-sdk/lib/services/micController.ts","../call-control-sdk/lib/utils/audioLoader.ts","../call-control-sdk/lib/pages/sdkPages.tsx","../call-control-sdk/lib/hooks/useClickToConference.ts","../call-control-sdk/lib/angular-services/index.ts","../call-control-sdk/index.ts"],"sourcesContent":["import { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport interface EventTrackerConfig {\r\n\tapiKey: string;\r\n\ttenantId: string;\r\n\tagentId: string;\r\n\tpassword?: string;\r\n\taccessToken?: string;\r\n\tbaseUrl?: string;\r\n\r\n\tretryAttempts?: number;\r\n\tqueueSize?: number;\r\n\tflushInterval?: number;\r\n}\r\n\r\nexport interface EventData {\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface EventTrackerInstance {\r\n\tinit(config: EventTrackerConfig): Promise<string | null>;\r\n\tisInitialized(): boolean;\r\n\tgetConfig(): EventTrackerConfig | null;\r\n}\r\n\r\nclass EventTrackerSDK implements EventTrackerInstance {\r\n\tprivate config: EventTrackerConfig | null = null;\r\n\tprivate ticketId: string | null = null;\r\n\tprivate baseUrl: string = \"\";\r\n\tprivate flushTimer: ReturnType<typeof setInterval> | null = null;\r\n\r\n\tasync init(config: EventTrackerConfig): Promise<any | null> {\r\n\t\tthis.config = {\r\n\t\t\tretryAttempts: 3,\r\n\t\t\tqueueSize: 100,\r\n\t\t\tflushInterval: 5000,\r\n\t\t\t...config,\r\n\t\t};\r\n\r\n\t\tthis.baseUrl = config.baseUrl || (typeof window !== \"undefined\" ? window.location.origin : \"\");\r\n\r\n\t\tconst ticket = await this.createTicket();\r\n\r\n\t\tthis.startPeriodicFlush();\r\n\r\n\t\treturn ticket;\r\n\t}\r\n\r\n\tisInitialized(): boolean {\r\n\t\treturn this.config !== null && this.ticketId !== null;\r\n\t}\r\n\r\n\tgetConfig(): EventTrackerConfig | null {\r\n\t\treturn this.config;\r\n\t}\r\n\r\n\tgetTicketId(): string | null {\r\n\t\treturn this.ticketId;\r\n\t}\r\n\r\n\tprivate async createTicket(): Promise<any | null> {\r\n\t\tif (!this.config) {\r\n\t\t\tthrow new Error(\"EventTracker not initialized\");\r\n\t\t}\r\n\r\n\t\t// If an accessToken is already provided, skip the login API call\r\n\t\t// if (this.config.accessToken) {\r\n\t\t// \treturn { accessToken: this.config.accessToken };\r\n\t\t// }\r\n\r\n\t\ttry {\r\n\t\t\t\tconst response = await this.makeRequest(\"/api/v1/auth/login\", { // login with base url - same as main application\r\n\t\t\t\tmethod: \"POST\",\r\n\t\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t},\r\n\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\tuserId: String(this.config.agentId ?? \"\"),\r\n\t\t\t\t\t// sessionId: this.config.sessionId,\r\n\t\t\t\t\tpassword: this.config.password\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\t// if (!response.ok) {\r\n\t\t\t// \tsdkStateManager.setInitCheck();\r\n\t\t\t// \tthrow new Error(`Failed to initialize: ${response.status} ${response.statusText}`);\r\n\t\t\t// }\r\n\r\n\t\t\tconst data = await response.json();\r\n\t\t\tthis.ticketId = data.ticketId;\r\n\r\n\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async makeRequest(url: string, options: RequestInit): Promise<Response> {\r\n\t\tconst fullUrl = `${this.baseUrl}${url}`;\r\n\t\tconst maxRetries = this.config?.retryAttempts || 3;\r\n\r\n\t\tfor (let attempt = 1; attempt <= maxRetries; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await fetch(fullUrl, options);\r\n\t\t\t\treturn response;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tif (attempt === maxRetries) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\r\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Max retries exceeded\");\r\n\t}\r\n\r\n\tprivate startPeriodicFlush(): void {\r\n\t\tif (this.flushTimer) {\r\n\t\t\tclearInterval(this.flushTimer);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport const eventTracker = new EventTrackerSDK();\r\n\r\nif (typeof window !== \"undefined\") {\r\n\t(window as any).EventTracker = eventTracker;\r\n}\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { removeSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_ALL_OFF, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { useToast } from \"../services/toastMessage\";\r\n\r\nexport type LogoutFunction = () => Promise<any>;\r\n\r\nexport type LogoutHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseLogoutReturn extends LogoutHookStateTypes {\r\n\tlogout: LogoutFunction;\r\n}\r\n\r\nexport interface LogoutPayload {\r\n\taction: string;\r\n\tuserId: string;\r\n}\r\n\r\nexport const useLogout = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst handleLogout = useCallback(async () => {\r\n\t\tsetLoading(true);\r\n\r\n\t\ttry {\r\n\t\t\tawait axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n\t\t} catch (err: any) {\r\n\t\t\tconst message = err?.response?.data?.message || \"Logout failed. Please try again.\";\r\n\t\t\tshowToast(message, \"error\");\r\n\t\t} finally {\r\n\t\t\tsdkStateManager.clearStorageAndReset();\r\n\t\t\tremoveSession(STORAGE_KEY);\r\n\t\t\tsetSuccess(true);\r\n\t\t\tsetLoading(false);\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\tlogout: handleLogout,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport type HookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface EndCallPayload {\r\n\tcall_id?: string;\r\n\tagent_id?: string;\r\n\tset_followUp?: string;\r\n\tcallback_date?: string;\r\n\tcallback_hrs?: number;\r\n\tcallback_mins?: number;\r\n\tmobile_number?: string;\r\n\tlist_comments?: string;\r\n\tcall_reference_id?: string;\r\n\tis_mark_as_break?: boolean;\r\n\tdisposition?: string;\r\n\tline_number?: number;\r\n\treason?: string;\r\n\tpatientLog?: any;\r\n}\r\n\r\nexport type CallTerminationFunction = (data: EndCallPayload) => Promise<any>;\r\n\r\nexport interface UseEndCallReturn extends HookStateTypes {\r\n\thandleEndCall: CallTerminationFunction;\r\n}\r\n\r\nexport const useEndCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleEndCall = useCallback(\r\n\t\tasync (data: EndCallPayload = {}) => {\r\n\t\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\r\n\t\t\tsetLoading(true);\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tcall_id: data?.call_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tagent_id: data?.agent_id ?? state?.agentId ?? \"\",\r\n\t\t\t\tset_followUp: data?.set_followUp ?? \"N\",\r\n\t\t\t\tcallback_date: data?.callback_date ?? \"\",\r\n\t\t\t\tcallback_hrs: data?.callback_hrs ?? 0,\r\n\t\t\t\tcallback_mins: data?.callback_mins ?? 0,\r\n\t\t\t\tmobile_number: data?.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n\t\t\t\tlist_comments: data?.list_comments ?? \"\",\r\n\t\t\t\tcall_reference_id: data?.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n\t\t\t\tis_mark_as_break: data?.is_mark_as_break ?? false,\r\n\t\t\t\tdisposition: data?.disposition ?? \"RES\",\r\n\t\t\t\tline_number: data?.line_number ?? 0,\r\n\t\t\t\treason: data?.reason ?? \"normal\",\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.END_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsdkStateManager.endCall();\r\n\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn {\r\n\t\thandleEndCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n","import { useCallback, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport { da } from \"date-fns/locale\";\r\n\r\nexport interface StartCallPayload {\r\n\tmobileNumber: string;\r\n\tuser?: string;\r\n\tauto_answer?: boolean;\r\n\tcall_id?: string;\r\n\treference_id?: string;\r\n\tcall_source?: string;\r\n\tcaseId?: string;\r\n\tisWrapup?: boolean;\r\n\tparentCallUuid?: string;\r\n}\r\n\r\nexport type CallInitiationFunction = (data: StartCallPayload) => Promise<any>;\r\n\r\nexport type StartCalltHookStateTypes = {\r\n\tisLoading: boolean;\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n\terror: any;\r\n\tdata: any;\r\n};\r\n\r\nexport interface UseClickToCallReturn extends StartCalltHookStateTypes {\r\n\thandleStartCall: CallInitiationFunction;\r\n}\r\n\r\nexport const useClickToCall = () => {\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst [success, setSuccess] = useState(false);\r\n\r\n\tconst [isError, setIsError] = useState(false);\r\n\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst handleStartCall = useCallback(async (data: StartCallPayload) => {\r\n\t\tconst state = getSession(STORAGE_KEY) as any;\r\n\t\tconst status = state?.callData?.status;\r\n\r\n\t\tsetLoading(true);\r\n\r\n\t\tif (status === \"IDLE\" || status === \"ONCALL\" || status === \"WRAPUP\") {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true;\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\t// Caller-supplied parentCallUuid still wins as an explicit override.\r\n\t\t\tconst liveState = sdkStateManager.getState();\r\n\t\t\tconst isWrapupCall = status === \"WRAPUP\";\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (data?.parentCallUuid) {\r\n\t\t\t\tparentCallUuid = data.parentCallUuid;\r\n\t\t\t} else if (liveState.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (liveState.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = liveState.rootCallUuid;\r\n\t\t\t\t\t} else if (state?.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (liveState.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: data?.mobileNumber,\r\n\t\t\t\tuser: data?.user ?? state?.agentId ?? \"\",\r\n\t\t\t\tauto_answer: data?.auto_answer ?? false,\r\n\t\t\t\tcall_id: state?.callData?.call_id ?? data?.call_id ?? \"\",\r\n\t\t\t\treference_id: data?.reference_id ?? \"\",\r\n\t\t\t\tcall_source: data?.call_source ?? \"\",\r\n\t\t\t\tcaseId: data?.caseId ?? \"\",\r\n\t\t\t\tisWrapup: data?.isWrapup ?? false,\r\n\t\t\t\tparentCallUuid:data?.parentCallUuid ?? data.parentCallUuid ?? parentCallUuid ?? \"\" ,\r\n\t\t\t};\r\n\r\n\t\t\treturn axiosInstance\r\n\t\t\t\t.post(END_POINT.CLICK_TO_CALL, payload)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\t\tsetData(res?.data);\r\n\r\n\t\t\t\t\tsetSuccess(true);\r\n\r\n\t\t\t\t\treturn res?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tsetIsError(true);\r\n\r\n\t\t\t\t\tsetError(err);\r\n\r\n\t\t\t\t\treturn err?.response?.data;\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tsetLoading(false);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetLoading(false);\r\n\t\t\talert(\"Agent is not ready\");\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\thandleStartCall,\r\n\t\tisLoading: loading,\r\n\t\tisSuccess: success,\r\n\t\tisError: isError,\r\n\t\terror: error,\r\n\t\tdata: data,\r\n\t};\r\n};\r\n\r\n\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\n\r\nexport const useGetAuthorizationToken = () => {\r\n\tconst [token, setToken] = useState<string | undefined>(sdkStateManager.getSdkAuthToken());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetToken(sdkStateManager.getSdkAuthToken());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn token;\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport type { SDKState } from \"../../types\";\r\n\r\nexport function useSDKState(): SDKState {\r\n\tconst [state, setState] = useState<SDKState>(sdkStateManager.getState());\r\n\r\n\tuseEffect(() => {\r\n\t\tconst unsubscribe = sdkStateManager.subscribe(() => {\r\n\t\t\tsetState(sdkStateManager.getState());\r\n\t\t});\r\n\r\n\t\treturn unsubscribe;\r\n\t}, []);\r\n\r\n\treturn state;\r\n}\r\n","import { memo, useCallback } from \"react\";\r\nimport type { CallControlPanelProps } from \"../../types\";\r\nimport { CallControls } from \"./callControls\";\r\nimport { SDKProvider } from \"./SDKProvider\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { SDK_PERMISSIONS } from \"../permissions\";\r\n\r\nexport const CallControlPanel = memo<CallControlPanelProps>(({ onDataChange }) => {\r\n\tconst { sdk } = useSDKState();\r\n\r\n\tconst handleDataChange = useCallback(\r\n\t\t(data: any) => {\r\n\t\t\ttry {\r\n\t\t\t\tif (onDataChange && typeof onDataChange === \"function\") {\r\n\t\t\t\t\tonDataChange(data);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(\"Error in CallControlPanel data change handler:\", error);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onDataChange]\r\n\t);\r\n\r\n\tconst sdkObject = sdk?.calls;\r\n\tconst hasDialerAccess =\r\n\t\tsdkObject?.enabled &&\r\n\t\tsdkObject?.items?.some(\r\n\t\t\t(item: any) =>\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_OUTBOUND ||\r\n\t\t\t\titem.code === SDK_PERMISSIONS.CALL_INBOUND,\r\n\t\t);\r\n\r\n\tif (!hasDialerAccess) return null;\r\n\r\n\treturn (\r\n\t\t<SDKProvider>\r\n\t\t\t<CallControls onDataChange={handleDataChange} />\r\n\t\t</SDKProvider>\r\n\t);\r\n});\r\n\r\nCallControlPanel.displayName = \"CallControlPanel\";\r\n","import CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport DragIndicator from \"@mui/icons-material/DragIndicator\";\r\nimport Group from \"@mui/icons-material/Group\";\r\nimport KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Layers from \"@mui/icons-material/Layers\";\r\nimport Mic from \"@mui/icons-material/Mic\";\r\nimport MicOff from \"@mui/icons-material/MicOff\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport Pending from \"@mui/icons-material/Pending\";\r\nimport Phone from \"@mui/icons-material/Phone\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport WifiCalling3 from \"@mui/icons-material/WifiCalling3\";\r\nimport SendRounded from \"@mui/icons-material/SendRounded\";\r\nimport SmsSharp from \"@mui/icons-material/SmsSharp\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tChip,\r\n\tCircularProgress,\r\n\tFade,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTooltip,\r\n\tTypography,\r\n\tuseTheme,\r\n} from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport {\r\n\tCallHistoryDialog,\r\n\tCallTransferDialog,\r\n\tConferenceDialog,\r\n\tEndCallDispositionDialog,\r\n\tProcessorListDialog,\r\n} from \"./dialog\";\r\n\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { useDraggable } from \"../hooks/useDraggable\";\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { usePostRequest } from \"../services/request\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport { createMicController, MicController } from \"../services/micController\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { CallControlPanelProps, CallStatus } from \"../../types\";\r\n\r\nimport { createAudioElement, cleanupAudioResources } from \"../utils/audioLoader\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\n// import { USB_LIGHT_FLASH, USB_LIGHT_ON, USB_LIGHT_REQUEST } from \"../services/usbLight\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nconst getCombineConfrenceData = (localState: any, apiData: any) => {\r\n\tconst localConfrenceData = localState?.conferenceLine;\r\n\tconst apiConferenceData = apiData?.conferencestatus;\r\n\tconst updatedConferenceData = localConfrenceData.map((item: any) => {\r\n\t\tif (item?.line === 1) {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tline: 1,\r\n\t\t\t\tstatus: apiConferenceData?.[statusKey] ?? localState?.callData?.status,\r\n\t\t\t\tphone: localState?.callData?.phone_number ?? \"\",\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconst statusKey = `line_${item.line}_status`;\r\n\t\t\tconst phoneKey = `line_${item.line}_phonenumber`;\r\n\r\n\t\t\tconst newStatus = apiConferenceData ? (apiConferenceData[statusKey] ?? \"IDLE\") : item.status;\r\n\t\t\tlet newPhone = apiConferenceData?.[phoneKey];\r\n\r\n\t\t\tif (newPhone === null || newPhone === \"0\" || newPhone === undefined) {\r\n\t\t\t\tnewPhone = newStatus === \"IDLE\" ? \"\" : item.phone;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...item,\r\n\t\t\t\tstatus: newStatus,\r\n\t\t\t\tphone: newPhone,\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\treturn updatedConferenceData;\r\n};\r\n\r\nconst formatDuration = (seconds: number): string => {\r\n\tconst mins = Math.floor(seconds / 60);\r\n\tconst secs = seconds % 60;\r\n\treturn `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}`;\r\n};\r\n\r\nexport function CallControls({ onDataChange }: CallControlPanelProps) {\r\n\tconst theme = useTheme();\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst { disabled, enabled, outlined } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst micRef = useRef<MicController | null>(null);\r\n\tconst webSocketRef = useRef<WebSocket | null>(null);\r\n\tconst audioRef = useRef<HTMLAudioElement | null>(null);\r\n\tconst reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\tconst pingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\tconst reconnectAttemptsRef = useRef<number>(0);\r\n\tconst hasFlashedRef = useRef(false);\r\n\tconst lastEventTimeRef = useRef<string | null>(null);\r\n\tconst conferenceAutoOpenedRef = useRef<boolean>(false);\r\n\t// ── NEW: ref to record when hold started ──────────────────────────────────\r\n\tconst holdStartTimeRef = useRef<number | null>(null);\r\n\t// ── NEW: ref to record when mute started ──────────────────────────────────\r\n\tconst muteStartTimeRef = useRef<number | null>(null);\r\n\r\n\tconst maxReconnectAttempts = 60;\r\n\tconst baseReconnectDelay = 2000;\r\n\tconst maxReconnectDelay = 30000;\r\n\r\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [statusAnchorEl, setStatusAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [dialerAnchorEl, setDialerAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [ambulanceAnchorEl, setAmbulanceAnchorEl] = useState<null | HTMLElement>(null);\r\n\tconst [moreOptionsAnchorEl, setMoreOptionsAnchorEl] = useState<null | HTMLElement>(null);\r\n\r\n\tconst [showIframe, setShowIframe] = useState<boolean>(true);\r\n\tconst [openCallDisposition, setOpenCallDisposition] = useState<boolean>(false);\r\n\tconst [openProcessorDialog, setOpenProcessorDialog] = useState<boolean>(false);\r\n\tconst [openCallHistoryDialog, setOpenCallHistoryDialog] = useState<boolean>(false);\r\n\r\n\tconst [processList, setProcessList] = useState<\r\n\t\t| {\r\n\t\t\tprocess_id: number;\r\n\t\t\tprocess_name: string;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\tconst [breaksList, setBreaksList] = useState<\r\n\t\t| {\r\n\t\t\ttype: string;\r\n\t\t\tduration: string;\r\n\t\t\tdescription: string;\r\n\t\t\tactive: boolean;\r\n\t\t}[]\r\n\t\t| null\r\n\t>(null);\r\n\r\n\r\n\tconst [phoneNumber, setPhoneNumber] = useState<string>(\"\");\r\n\tconst [callDuration, setCallDuration] = useState<number>(0);\r\n\tconst [callWrapuptime, setCallWrapuptime] = useState<number | null>(null);\r\n\t// Hold duration state\r\n\tconst [holdDuration, setHoldDuration] = useState<number>(0);\r\n\t// ── NEW: mute duration state ──────────────────────────────────────────────\r\n\tconst [muteDuration, setMuteDuration] = useState<number>(0);\r\n\r\n\tconst { position, isDragging, dragRef, handleMouseDown, handleTouchStart } = useDraggable(\r\n\t\tstate.controlPanelPosition,\r\n\t\t(newPosition) => sdkStateManager.setControlPanelPosition(newPosition)\r\n\t);\r\n\r\n\tconst {\r\n\t\tposition: iframePosition,\r\n\t\tisDragging: iframeIsDragging,\r\n\t\tdragRef: iframeDragRef,\r\n\t\thandleMouseDown: iframeHandleMouseDown,\r\n\t\thandleTouchStart: iframeHandleTouchStart,\r\n\t} = useDraggable(state.iframePosition, (newPosition) =>\r\n\t\tsdkStateManager.setIframePosition(newPosition)\r\n\t);\r\n\r\n\tconst [clickToCall, { isLoading: clickToCallLoading }] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\tuser: string;\r\n\t\tauto_answer: boolean;\r\n\t\tcall_id: string;\r\n\t\treference_id: string;\r\n\t\tcall_source: string;\r\n\t\tcaseId: string;\r\n\t\tisWrapup: boolean;\r\n\t\tparentCallUuid: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsetPhoneNumber(\"\");\r\n\t\t\tsetDialerAnchorEl(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [holdOrUnHold, { isLoading: holdOrUnHoldLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute, { isLoading: muteOrUnMuteLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [readyAgentStatus, { isLoading: agentReadyLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\trefno?: string;\r\n\t\tuserId: string;\r\n\t}>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setAgentStatus(\"\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst [updateAgentStatus, { isLoading }] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tbreak_type: string;\r\n\t\tuserId: string;\r\n\t}>();\r\n\r\n\tconst [sendNotification] = usePostRequest<{\r\n\t\tphone_number: string;\r\n\t\ttype: string;\r\n\t}>();\r\n\r\n\tconst [endCall, { isLoading: endCallLoading }] = usePostRequest<{\r\n\t\tcall_id: string;\r\n\t\tagent_id: string;\r\n\t\tset_followUp: string;\r\n\t\tcallback_date: string;\r\n\t\tcallback_hrs: number;\r\n\t\tcallback_mins: number;\r\n\t\tmobile_number: string;\r\n\t\tlist_comments: string;\r\n\t\tcall_reference_id: string;\r\n\t\tis_mark_as_break: boolean;\r\n\t\tdisposition: string;\r\n\t\tline_number: number;\r\n\t\treason: string;\r\n\t}>({\r\n\t\tdisabledSuccessToast: true,\r\n\t\tonSuccess: (res: any) => {\r\n\t\t\tsdkStateManager.endCall();\r\n\t\t\tsetOpenCallDisposition(false);\r\n\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\tshowToast(res?.message || \"Call ended successfully\", \"success\");\r\n\t\t},\r\n\t});\r\n\r\n\tconst handleCloseQueueCounts = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenDialer = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetShowIframe(true);\r\n\t\tsetDialerAnchorEl(event.currentTarget);\r\n\t};\r\n\tconst handleOpenAbulanceServices = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetAmbulanceAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleOpenMoreOptions = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetMoreOptionsAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseDialer = () => {\r\n\t\tsetDialerAnchorEl(null);\r\n\t};\r\n\tconst handleCloseAmbulance = () => {\r\n\t\tsetAmbulanceAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleCloseMoreOptions = () => {\r\n\t\tsetMoreOptionsAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleOpenAgentStatus = (event: React.MouseEvent<HTMLElement>) => {\r\n\t\tsetStatusAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleCloseAgentStatus = () => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t};\r\n\r\n\tconst handleAgentReady = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"READYAGENT\",\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\r\n\t\treadyAgentStatus(END_POINT.READY_AGENT, payload);\r\n\t};\r\n\r\n\tconst handleUpdateAgentStatus = (status: string) => {\r\n\t\tsetStatusAnchorEl(null);\r\n\t\tconst currentStatus = state.callData?.status?.toUpperCase() as CallStatus;\r\n\t\tif ([CallStatus.ONCALL, CallStatus.RINGING, CallStatus.DIALING, CallStatus.WRAPUP].includes(currentStatus)) {\r\n\t\t\tshowToast(\"Cannot put agent on break while on a call\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst payload = {\r\n\t\t\taction: \"AGENTBREAK\",\r\n\t\t\tbreak_type: status,\r\n\t\t\tuserId: String(state.agentId ?? \"\"),\r\n\t\t};\r\n\t\tupdateAgentStatus(END_POINT.UPDATE_AGENT_BREAK, payload).then(() => {\r\n\t\t\tsdkStateManager.setAgentStatus(status);\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleStartCall = (number: string) => {\r\n\t\tif (number.length !== 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else if (!/^\\d+$/.test(number)) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t} else {\r\n\t\t\t// rootCallUuid chaining only runs when disableAlternateDialing is true\r\n\t\t\t// (host opts out of the alternate dialog and relies on the built-in flow);\r\n\t\t\t// otherwise parentCallUuid stays \"\" and the chain is cleared.\r\n\t\t\tconst currentStatus = (state.callData?.status ?? \"\").toUpperCase();\r\n\t\t\tconst isWrapupCall = currentStatus === CallStatus.WRAPUP;\r\n\r\n\t\t\tlet parentCallUuid = \"\";\r\n\t\t\tif (!state.sdkConfig?.disableAlternateDialing) {\r\n\t\t\t\tif (isWrapupCall) {\r\n\t\t\t\t\tif (state.rootCallUuid) {\r\n\t\t\t\t\t\tparentCallUuid = state.rootCallUuid;\r\n\t\t\t\t\t} else if (state.callData?.call_id) {\r\n\t\t\t\t\t\tparentCallUuid = state.callData.call_id;\r\n\t\t\t\t\t\tsdkStateManager.setRootCallUuid(parentCallUuid);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t\t}\r\n\t\t\t} else if (state.rootCallUuid) {\r\n\t\t\t\tsdkStateManager.setRootCallUuid(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst payload = {\r\n\t\t\t\tphone_number: number,\r\n\t\t\t\tuser: state.agentId,\r\n\t\t\t\tauto_answer: false,\r\n\t\t\t\tcall_id: \"\",\r\n\t\t\t\treference_id: \"\",\r\n\t\t\t\tcall_source: \"\",\r\n\t\t\t\tcaseId: \"\",\r\n\t\t\t\tisWrapup: isWrapupCall,\r\n\t\t\t\tparentCallUuid,\r\n\t\t\t};\r\n\r\n\t\t\tclickToCall(END_POINT.CLICK_TO_CALL, payload);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\tconst handleEndCall = (data: {\r\n\t\tdisposition: { label: string; value: string; id?: number };\r\n\t\tfollowUp: { label: string; value: string };\r\n\t\tcallbackDate: string;\r\n\t\tcallbackHrs: string;\r\n\t\tcallbackMins: string;\r\n\t\tselected_break?: boolean;\r\n\t\tnotes?: string;\r\n\t}) => {\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tset_followUp: data?.followUp?.value ?? \"\",\r\n\t\t\tcallback_date: data?.callbackDate ?? \"\",\r\n\t\t\tcallback_hrs: Number(data?.callbackHrs) || 0,\r\n\t\t\tcallback_mins: Number(data?.callbackMins) || 0,\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\tlist_comments: data?.notes ?? \"\",\r\n\t\t\tcall_reference_id: state.callData?.call_id ?? \"\",\r\n\t\t\tis_mark_as_break: data?.selected_break ?? false,\r\n\t\t\tdisposition: data?.disposition?.value ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\tsetPhoneNumber(\"\");\r\n\t\tendCall(END_POINT.END_CALL, payload);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n\t\t\te.preventDefault();\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"beforeunload\", handleBeforeUnload);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"beforeunload\", handleBeforeUnload);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst mic = createMicController();\r\n\t\tmicRef.current = mic;\r\n\r\n\t\tmic.start().catch((err) => {\r\n\t\t\tconsole.error(\"Failed to start mic:\", err);\r\n\t\t});\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tconst fullState = getSession(STORAGE_KEY) as any;\r\n\t\t\tconst key = event.key?.toLowerCase();\r\n\r\n\t\t\tif (!event.altKey || fullState?.callData?.status !== CallStatus.ONCALL) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"m\" && String(fullState?.callData?.mute) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tmicRef.current?.mute();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.MUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"u\" && String(fullState?.callData?.mute) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNMUTE,\r\n\t\t\t\t\tdirection: \"both\",\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t\t\t\tmicRef.current?.unmute();\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"h\" && String(fullState?.callData?.hold) === \"0\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.HOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\r\n\t\t\tif (key === \"r\" && String(fullState?.callData?.hold) === \"1\") {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tconst payload = {\r\n\t\t\t\t\taction: CallStatus.UNHOLD,\r\n\t\t\t\t\tuser_id: String(fullState.agentId ?? \"\"),\r\n\t\t\t\t\tcall_uuid: fullState?.callData?.call_id ?? \"\",\r\n\t\t\t\t\tline_number: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet interval: ReturnType<typeof setInterval>;\r\n\t\tlet wrapUpinterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tif (state.callData.status && state.callData.status === CallStatus.ONCALL) {\r\n\t\t\tinterval = setInterval(() => {\r\n\t\t\t\tconst elapsed = state.callStartTime\r\n\t\t\t\t\t? Math.floor((Date.now() - Number(state.callStartTime)) / 1000)\r\n\t\t\t\t\t: 0;\r\n\r\n\t\t\t\tsetCallDuration(elapsed);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tsetCallDuration(0);\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tstate.callData.status &&\r\n\t\t\tstate.callData.status === CallStatus.WRAPUP &&\r\n\t\t\tcallWrapuptime !== null\r\n\t\t) {\r\n\t\t\twrapUpinterval = setInterval(() => {\r\n\t\t\t\tsetCallWrapuptime((prevTime) => {\r\n\t\t\t\t\tif (prevTime === null || prevTime <= 1) {\r\n\t\t\t\t\t\tclearInterval(wrapUpinterval);\r\n\t\t\t\t\t\thandleEndCall({\r\n\t\t\t\t\t\t\tdisposition: { label: \"Auto Wrapup\", value: \"AUTO_WRAPUP\" },\r\n\t\t\t\t\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\t\t\t\t\tcallbackDate: \"\",\r\n\t\t\t\t\t\t\tcallbackHrs: \"\",\r\n\t\t\t\t\t\t\tcallbackMins: \"\",\r\n\t\t\t\t\t\t\tselected_break: false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn prevTime - 1;\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (interval) clearInterval(interval);\r\n\t\t\tif (wrapUpinterval) clearInterval(wrapUpinterval);\r\n\t\t};\r\n\t}, [state.callData.status]);\r\n\r\n\t// Hold duration timer\r\n\tuseEffect(() => {\r\n\t\tlet holdInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isOnHold = state.callData?.hold === 1;\r\n\r\n\t\tif (isOnHold && isOnCall) {\r\n\t\t\tif (!holdStartTimeRef.current) {\r\n\t\t\t\tholdStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tholdInterval = setInterval(() => {\r\n\t\t\t\tsetHoldDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - holdStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\tholdStartTimeRef.current = null;\r\n\t\t\tsetHoldDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (holdInterval) clearInterval(holdInterval);\r\n\t\t};\r\n\t}, [state.callData?.hold, state.callData?.status]);\r\n\r\n\t// ── NEW: mute duration timer ──────────────────────────────────────────────\r\n\tuseEffect(() => {\r\n\t\tlet muteInterval: ReturnType<typeof setInterval>;\r\n\r\n\t\tconst isOnCall =\r\n\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t\tconst isMuted = state.callData?.mute === 1;\r\n\t\tconst isHeld = state.callData?.hold === 1;\r\n\r\n\t\tif (isMuted && isOnCall && !isHeld) {\r\n\t\t\t// Record start time only once when mute begins\r\n\t\t\tif (!muteStartTimeRef.current) {\r\n\t\t\t\tmuteStartTimeRef.current = Date.now();\r\n\t\t\t}\r\n\t\t\tmuteInterval = setInterval(() => {\r\n\t\t\t\tsetMuteDuration(\r\n\t\t\t\t\tMath.floor((Date.now() - muteStartTimeRef.current!) / 1000)\r\n\t\t\t\t);\r\n\t\t\t}, 1000);\r\n\t\t} else {\r\n\t\t\t// Reset when mute is released or call ends\r\n\t\t\tmuteStartTimeRef.current = null;\r\n\t\t\tsetMuteDuration(0);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (muteInterval) clearInterval(muteInterval);\r\n\t\t};\r\n\t}, [state.callData?.mute, state.callData?.status]);\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tuseEffect(() => {\r\n\t\tcreateAudioElement()\r\n\t\t\t.then((audio) => {\r\n\t\t\t\taudioRef.current = audio;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"Failed to load audio element:\", error);\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tif (audioRef.current) {\r\n\t\t\t\taudioRef.current.pause();\r\n\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\taudioRef.current.src = \"\"; // Clear source\r\n\t\t\t\taudioRef.current = null;\r\n\t\t\t}\r\n\t\t\t// Cleanup blob URLs\r\n\t\t\tcleanupAudioResources();\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (onDataChange && state.callData) {\r\n\t\t\tconst { process_id, process_name, status, phone_number, agent_id, call_id, call_details } =\r\n\t\t\t\tstate.callData;\r\n\t\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\t\tconst callData = {\r\n\t\t\t\tphone_number,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcallReferenceId: call_id,\r\n\t\t\t\tagent_id,\r\n\t\t\t\tprocess_id,\r\n\t\t\t\tprocess_name,\r\n\t\t\t\tcall_details,\r\n\t\t\t\tauto_wrapup_time: state.backendCallControls?.auto_wrapup_time ?? null,\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t\tsocket_info: state.callData\r\n\t\t\t};\r\n\t\t\tonDataChange(callData);\r\n\t\t}\r\n\t}, [state.callData, onDataChange]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\t// axiosInstance\r\n\t\t\t// \t.post(END_POINT.PROCESS_LIST, {\r\n\t\t\t// \t\tuserId: state.agentId,\r\n\t\t\t// \t\taction: \"GETAGENTPROCESSLIST\",\r\n\t\t\t// \t\trefno: \"1234221233\",\r\n\t\t\t// \t})\r\n\t\t\t// \t.then((res) => {\r\n\t\t\t// \t\t// if (res && res.data?.data && res?.data?.data?.length > 1) {\r\n\t\t\t// \t\t// \tsetProcessList(res.data.data);\r\n\t\t\t// \t\t// \tsetOpenProcessorDialog(true);\r\n\t\t\t// \t\t// } else {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\t\t// setOpenProcessorDialog(false);\r\n\t\t\t// \t\t// }\r\n\t\t\t// \t})\r\n\t\t\t// \t.catch((err) => {\r\n\t\t\t// \t\t\tconst data = {\r\n\t\t\t// \t\t\t\"process_id\": 101,\r\n\t\t\t// \t\t\t\"process_name\": \"ConVoxProcess\"\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t\tsetProcessList([data]);\r\n\r\n\t\t\t// \t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t// \t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t// \t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(END_POINT.BREAKS_LIST)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res && res.data?.data && res?.data?.data?.length) {\r\n\t\t\t\t\t\tsetBreaksList(res.data.data);\r\n\t\t\t\t\t\tconst liveStatus = sdkStateManager.getState().callData?.status;\r\n\t\t\t\t\t\tif (!liveStatus) {\r\n\t\t\t\t\t\t\thandleUpdateAgentStatus(res.data.data[0].type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tshowToast(err.response.data.message, \"error\");\r\n\t\t\t\t});\r\n\t\t}\r\n\t}, [state.agentId]);\r\n\r\n\tconst connectWebSocket = () => {\r\n\t\tif (!state.agentId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\treconnectTimeoutRef.current = null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\twebSocketRef.current = new WebSocket(`${state.urlConfig?.webSocketURL}/api/v1/ws/agent/events?token=${state.authorization?.accessToken}`);\r\n\r\n\t\t\twebSocketRef.current.onopen = () => {\r\n\t\t\t\tconsole.log(\"🌐 WebSocket connection established\");\r\n\t\t\t\treconnectAttemptsRef.current = 0;\r\n\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t}\r\n\t\t\t\tpingIntervalRef.current = setInterval(() => {\r\n\t\t\t\t\tif (webSocketRef.current && webSocketRef.current.readyState === WebSocket.OPEN) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\twebSocketRef.current.send(JSON.stringify({ type: \"ping\" }));\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tconsole.error(\"Failed to send ping:\", error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 30000);\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onmessage = (event) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = JSON.parse(event.data);\r\n\r\n\t\t\t\t\tif (data.type === \"pong\") {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst sdkState = getSession(STORAGE_KEY) as any;\r\n\t\t\t\t\tconst confrence = getCombineConfrenceData(sdkState, data);\r\n\t\t\t\t\t// console.log( \"📊 Parsed JSON:\", data);\r\n\t\t\t\t\tconst callData = {\r\n\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\tagent_id: data?.agent_id,\r\n\t\t\t\t\t\tstatus: data?.status,\r\n\t\t\t\t\t\ttype: data?.type,\r\n\t\t\t\t\t\tevent_time: data?.event_time,\r\n\t\t\t\t\t\tphone_number: data?.phone_number,\r\n\t\t\t\t\t\tcall_id: data?.call_id,\r\n\t\t\t\t\t\tprocess_id: data?.process_id,\r\n\t\t\t\t\t\tprocess_name: data?.process_name,\r\n\t\t\t\t\t\thold: data?.hold,\r\n\t\t\t\t\t\tmute: data?.mute,\r\n\t\t\t\t\t\tmode: data?.mode,\r\n\t\t\t\t\t\tqueue_name: data?.queue_name,\r\n\t\t\t\t\t\tauto_wrapup_time: data?.auto_wrapup_time ?? null,\r\n\t\t\t\t\t\t...(data?.call_details !== undefined && { call_details: data.call_details }),\r\n\t\t\t\t\t\t...(data?.break_details !== undefined && { break_details: data.break_details }),\r\n\t\t\t\t\t\t...(data?.call_sage !== undefined && { call_sage: data.call_sage }),\r\n\t\t\t\t\t};\r\n\t\t\t\t\tsdkStateManager.updateCallData(callData);\r\n\t\t\t\t\tsdkStateManager.updateConferenceData([...confrence]);\r\n\t\t\t\t\tsdkStateManager.setConsultInfo(data.consult_info ?? null);\r\n\r\n\t\t\t\t\tconst conferenceStatus = data?.conferencestatus;\r\n\t\t\t\t\tif (conferenceStatus) {\r\n\t\t\t\t\t\tconst hasAnsweredSecondaryLine = Object.keys(conferenceStatus).some((key) => {\r\n\t\t\t\t\t\t\tconst match = key.match(/^line_(\\d+)_status$/);\r\n\t\t\t\t\t\t\tif (!match) return false;\r\n\t\t\t\t\t\t\tconst lineNum = Number(match[1]);\r\n\t\t\t\t\t\t\tif (lineNum <= 1) return false;\r\n\t\t\t\t\t\t\tconst status = String(conferenceStatus[key] ?? \"\").toUpperCase();\r\n\t\t\t\t\t\t\treturn status === CallStatus.ONCALL;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (hasAnsweredSecondaryLine) {\r\n\t\t\t\t\t\t\tif (!conferenceAutoOpenedRef.current) {\r\n\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconferenceAutoOpenedRef.current = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data?.call_consult_controls) {\r\n\t\t\t\t\t\tsdkStateManager.updateSDKConfigFromPermissions(data.call_consult_controls);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsdkStateManager.resetConsultControls();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ([CallStatus.RINGING, CallStatus.DIALING].includes(data.status as CallStatus)) {\r\n\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\tsetCallWrapuptime(sdkState?.sdkConfig?.auto_wrapup_time ?? null);\r\n\t\t\t\t\t\tsdkStateManager.updateConferenceData([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 1,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 2,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 3,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 4,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tline: 5,\r\n\t\t\t\t\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\t\t\t\t\ttype: \"\",\r\n\t\t\t\t\t\t\t\tphone: \"\",\r\n\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\r\n\t\t\t\t\t\tif (data?.mode !== \"manual\" && audioRef.current && state?.sdkConfig?.enableRingtone) {\r\n\t\t\t\t\t\t\taudioRef.current.play().catch((error) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Failed to play ringtone:\", error);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (audioRef.current) {\r\n\t\t\t\t\t\t\taudioRef.current.pause();\r\n\t\t\t\t\t\t\taudioRef.current.currentTime = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.status === CallStatus.IDLE) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"green\"));\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.clearTransferLeadData();\r\n\t\t\t\t\t} else if (data.status === CallStatus.ONCALL) {\r\n\r\n\t\t\t\t\t\t// Start timer for new call OR transfer\r\n\t\t\t\t\t\tif (data.status === CallStatus.ONCALL) {\r\n\t\t\t\t\t\t\tsdkStateManager.startCall();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!showIframe) {\r\n\t\t\t\t\t\t\tsetShowIframe(true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data?.mute !== 1 && data?.hold !== 1) {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"red\"));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t(data?.mute === 1 || data?.hold === 1) &&\r\n\t\t\t\t\t\tdata.status === CallStatus.ONCALL\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"red\", 1));\r\n\t\t\t\t\t} else if (data.status === CallStatus.BREAK) {\r\n\t\t\t\t\t\tconst breakTime = sdkState?.sdkConfig?.break_time;\r\n\t\t\t\t\t\tconst eventTime = data?.event_time ?? null;\r\n\r\n\t\t\t\t\t\tif (eventTime !== lastEventTimeRef.current) {\r\n\t\t\t\t\t\t\thasFlashedRef.current = false;\r\n\t\t\t\t\t\t\tlastEventTimeRef.current = eventTime;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet isOverLimit = false;\r\n\t\t\t\t\t\tif (breakTime && eventTime) {\r\n\t\t\t\t\t\t\tconst differenceInMinutes =\r\n\t\t\t\t\t\t\t\t(new Date().getTime() - new Date(eventTime).getTime()) / 60000;\r\n\r\n\t\t\t\t\t\t\tif (Number(differenceInMinutes.toFixed(0)) >= Number(breakTime)) {\r\n\t\t\t\t\t\t\t\tisOverLimit = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isOverLimit) {\r\n\t\t\t\t\t\t\tif (!hasFlashedRef.current) {\r\n\t\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"yellow\", 1));\r\n\t\t\t\t\t\t\t\thasFlashedRef.current = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_ON(\"yellow\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (data.status === CallStatus.WRAPUP) {\r\n\t\t\t\t\t\t// USB_LIGHT_REQUEST(USB_LIGHT_FLASH(\"green\", 1));\r\n\t\t\t\t\t\tsdkStateManager.endCall();\r\n\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch {\r\n\t\t\t\t\tconsole.error(\"📨 Raw message:\", event.data);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onclose = (event) => {\r\n\t\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (event.code !== 1000 && reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconsole.warn(\r\n\t\t\t\t\t\t`🔄 Attempting to reconnect WebSocket (attempt ${reconnectAttemptsRef.current}/${maxReconnectAttempts}) in ${delay}ms`\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t\t}, delay);\r\n\t\t\t\t} else if (reconnectAttemptsRef.current >= maxReconnectAttempts) {\r\n\t\t\t\t\tshowToast(\"WebSocket connection failed. Please refresh the page.\", \"error\");\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\twebSocketRef.current.onerror = (error) => {\r\n\t\t\t\tconsole.error(\"❌ WebSocket error:\", error);\r\n\t\t\t};\r\n\t\t} catch (error) {\r\n\t\t\tif (reconnectAttemptsRef.current < maxReconnectAttempts) {\r\n\t\t\t\treconnectAttemptsRef.current += 1;\r\n\t\t\t\tconst delay = Math.min(\r\n\t\t\t\t\tbaseReconnectDelay * Math.pow(2, reconnectAttemptsRef.current - 1),\r\n\t\t\t\t\tmaxReconnectDelay\r\n\t\t\t\t);\r\n\t\t\t\treconnectTimeoutRef.current = setTimeout(() => {\r\n\t\t\t\t\tconnectWebSocket();\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (state.agentId) {\r\n\t\t\tconnectWebSocket();\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (reconnectTimeoutRef.current) {\r\n\t\t\t\tclearTimeout(reconnectTimeoutRef.current);\r\n\t\t\t\treconnectTimeoutRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (pingIntervalRef.current) {\r\n\t\t\t\tclearInterval(pingIntervalRef.current);\r\n\t\t\t\tpingIntervalRef.current = null;\r\n\t\t\t}\r\n\t\t\tif (webSocketRef.current) {\r\n\t\t\t\twebSocketRef.current.close(1000, \"Component unmounting\");\r\n\t\t\t\twebSocketRef.current = null;\r\n\t\t\t}\r\n\t\t\treconnectAttemptsRef.current = 0;\r\n\t\t};\r\n\t}, [state.agentId]);\r\n\r\n\tconst handleSendSMS = (data: any) => {\r\n\t\tsendNotification(END_POINT.SEND_NOTIFICATIONS, {\r\n\t\t\tphone_number: data?.phone_number ?? \"\",\r\n\t\t\ttype: \"ambulance\",\r\n\t\t});\r\n\t};\r\n\r\n\tif (!state.isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box>\r\n\t\t\t\t{Boolean(openProcessorDialog) && (\r\n\t\t\t\t\t<ProcessorListDialog\r\n\t\t\t\t\t\tprocessList={processList}\r\n\t\t\t\t\t\topen={openProcessorDialog}\r\n\t\t\t\t\t\tsetOpen={setOpenProcessorDialog}\r\n\t\t\t\t\t\thandleSelectedProcessor={(data: { process_id: number; process_name: string }) => {\r\n\t\t\t\t\t\t\tsdkStateManager.setProcess(data);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\t// Derived flags used in JSX\r\n\tconst isOnHold =\r\n\t\tstate.callData?.hold === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\r\n\t// ── NEW: derived mute flag ────────────────────────────────────────────────\r\n\tconst isMuted =\r\n\t\tstate.callData?.mute === 1 &&\r\n\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL;\r\n\t// ─────────────────────────────────────────────────────────────────────────\r\n\r\n\tconst isVertical = state.sdkConfig?.sdkPosition === \"vertical\";\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Box>\r\n\t\t\t\t<Fade in={true} timeout={300}>\r\n\t\t\t\t\t<Paper\r\n\t\t\t\t\t\tref={state.sdkConfig?.isDraggable ? dragRef : null}\r\n\t\t\t\t\t\televation={\r\n\t\t\t\t\t\t\tisDragging ? 4\r\n\t\t\t\t\t\t\t\t: state.sdkConfig?.isDraggable ? 1\r\n\t\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tposition: state.sdkConfig?.isDraggable ? \"fixed\" : \"relative\",\r\n\t\t\t\t\t\t\tleft: state.sdkConfig?.isDraggable ? position.x : \"auto\",\r\n\t\t\t\t\t\t\ttop: state.sdkConfig?.isDraggable ? position.y : \"auto\",\r\n\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\twidth: isVertical ? \"180px\" : \"auto\",\r\n\t\t\t\t\t\t\tflexShrink: 0,\r\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\tp: 0.5,\r\n\t\t\t\t\t\t\tborderRadius: 3,\r\n\t\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\t\tzIndex: state.sdkConfig?.isDraggable ? Number.MAX_SAFE_INTEGER : 0,\r\n\t\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"10px 8px 4px 8px\" : \"0px 10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.isDraggable && (\r\n\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\tcomponent=\"div\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\r\n\t\t\t\t\t\t\t\t\t\tonTouchStart={handleTouchStart}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<DragIndicator />\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableQueueName &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.queue_name &&\r\n\t\t\t\t\t\t\t\t\tstate?.callData?.mode !== \"manual\" && (\r\n\t\t\t\t\t\t\t\t\t\t<Chip label={state?.callData?.queue_name} />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disabledDialButton ? \"Outbound call feature is disabled\" : \"Dial\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={<WifiCalling3 />}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ? \"action.selected\" : \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tDial\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disabledDialButton &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!((state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenDialer(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<WifiCalling3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t([\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.BREAK,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disabledDialButton ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((state.callData.status?.toUpperCase() as CallStatus) === CallStatus.WRAPUP &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!state.sdkConfig?.disableAlternateDialing))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"action.selected\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{/* ── UPDATED: call duration + hold duration + mute duration display ── */}\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tonClick={() => setShowIframe(true)}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\tminWidth: \"52px\",\r\n\t\t\t\t\t\t\t\t\t\tmarginRight: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() === CallStatus.BREAK && state.callData?.break_details?.value ? (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.callData.break_details.value}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1.5px solid\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderColor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpx: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpy: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: '80px',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: 'center'\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"uppercase\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{state.callData.break_details.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: isOnHold\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"warning.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isMuted\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"error.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"success.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{state.callData.status === CallStatus.WRAPUP && callWrapuptime !== null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? formatDuration(callWrapuptime)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: formatDuration(callDuration)}\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* Hold badge — only visible while call is on hold */}\r\n\t\t\t\t\t\t\t\t\t{isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"warning.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(holdDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{/* ── NEW: Mute badge — only visible while call is muted ── */}\r\n\t\t\t\t\t\t\t\t\t{isMuted && !isOnHold && (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpx: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tpy: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tmt: \"2px\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<MicOff sx={{ fontSize: \"11px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"11px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{formatDuration(muteDuration)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────────── */}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t{/* ─────────────────────────────────────────────────── */}\r\n\r\n\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\tsx={{ padding: \"18px 0px\" }}\r\n\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\tisLoading || agentReadyLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" />\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{state.callData?.status?.toUpperCase() ?? \"N/A\"}\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonClick={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t\tdeleteIcon={<KeyboardArrowDown color=\"primary\" />}\r\n\t\t\t\t\t\t\t\t\tonDelete={handleOpenAgentStatus}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\tflexDirection: isVertical ? \"column\" : \"row\",\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\talignItems: isVertical ? \"stretch\" : \"center\",\r\n\t\t\t\t\t\t\t\t\tmargin: isVertical ? \"0px 8px 8px 8px\" : \"0px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={\"Agent Ready\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SupportAgent /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleAgentReady();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tclasses={{\r\n\t\t\t\t\t\t\t\t\t\t\troot:\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"enabled\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t...(\r\n\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.MISSED].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? outlined\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: enabled\r\n\t\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={agentReadyLoading}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Agent Ready\" : <SupportAgent />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton ? \"Hold feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.hold === 1 ? \"Resume\" : \"Hold\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? <PlayArrow /> : <Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableHoldButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tholdOrUnHoldLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableHoldButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{holdOrUnHoldLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ? \"Resume\" : \"Hold\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.hold === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={\r\n\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton ? \"Mute feature is disabled\" :\r\n\t\t\t\t\t\t\t\t\t\t(state.callData?.mute === 1 ? \"Unmute\" : \"Mute\")\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ? undefined :\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? <MicOff /> : <Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!state.sdkConfig?.disableMuteButton) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton || state.callData?.hold === 1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t((state.callData?.status?.toUpperCase() as CallStatus) !==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute !== 1) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tmuteOrUnMuteLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.hold === 1 ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableMuteButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{muteOrUnMuteLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{ color: theme.palette.primary.main }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.mute === 1 ? \"Unmute\" : \"Mute\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : state.callData?.mute === 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<MicOff />\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Mic />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableCallTransferButton ? \"Transfer Call feature is disabled\" : \"Transfer Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openCallTransferDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <TransferWithinAStation /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenCallTransferDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openCallTransferDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableCallTransferButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Transfer\" : <TransferWithinAStation />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableConferenceButton ? \"Conference Call feature is disabled\" : \"Conference Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={state.openConferenceDialog ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <Group /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setOpenConferenceDialog(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.openConferenceDialog\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: (state.callData?.status?.toUpperCase() as CallStatus) ===\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL && !state.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t(state.callData?.status?.toUpperCase() as CallStatus) !== CallStatus.ONCALL ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableConferenceButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Conference\" : <Group />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{state.sdkConfig?.enableSmsServices && (\r\n\t\t\t\t\t\t\t\t\t<Tooltip title={\"Send SMS\"}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(ambulanceAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <SmsSharp /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenAbulanceServices(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean(ambulanceAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: [CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...disabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.ONCALL, CallStatus.WRAPUP].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Send SMS\" : <SmsSharp />}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndCallButton ? \"End Call feature is disabled\" : \"End Call\"}>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={isVertical ? { display: \"block\" } : {}}>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical && !endCallLoading ? <CallEnd /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenCallDisposition(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!state.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRight: \"1px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" 0px 2px 1px #5f3f3f\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"60px !important\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t![\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCallStatus.WRAPUP,\r\n\t\t\t\t\t\t\t\t\t\t\t\t].includes(state.callData?.status?.toUpperCase() as CallStatus) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tendCallLoading ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tstate.sdkConfig?.disableEndCallButton\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{endCallLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"error\" />\r\n\t\t\t\t\t\t\t\t\t\t\t) : isVertical ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"End Call\"\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CallEnd />\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\r\n\t\t\t\t\t\t\t\t{!state.sdkConfig?.disabledMoreOptionsButton &&\r\n\t\t\t\t\t\t\t\t\tprocessList &&\r\n\t\t\t\t\t\t\t\t\tprocessList?.length > 1 && (\r\n\t\t\t\t\t\t\t\t\t\t<Tooltip title={\"Switch Process\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={Boolean(moreOptionsAnchorEl) ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={isVertical ? <MoreVert /> : undefined}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleOpenMoreOptions(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={Boolean(moreOptionsAnchorEl)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { ...enabled, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { ...outlined, ...(isVertical && { justifyContent: \"flex-start\", width: \"100%\", px: 2 }) }\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t![CallStatus.BREAK, CallStatus.IDLE].includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.callData?.status?.toUpperCase() as CallStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{isVertical ? \"Switch Process\" : <MoreVert />}\r\n\t\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Paper>\r\n\t\t\t\t</Fade>\r\n\t\t\t</Box>\r\n\r\n\t\t\t<Fade\r\n\t\t\t\tin={true}\r\n\t\t\t\ttimeout={300}\r\n\t\t\t>\r\n\t\t\t\t<Paper\r\n\t\t\t\t\tref={iframeDragRef}\r\n\t\t\t\t\televation={iframeIsDragging ? 4 : 1}\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\tleft: iframePosition.x,\r\n\t\t\t\t\t\ttop: iframePosition.y,\r\n\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\tbgcolor: \"background.paper\",\r\n\t\t\t\t\t\tzIndex: Number.MAX_SAFE_INTEGER,\r\n\t\t\t\t\t\ttransition: theme.transitions.create([\"box-shadow\", \"transform\"], {\r\n\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tvisibility: showIframe && !state.sdkConfig?.disableSoftPhone ? \"visible\" : \"hidden\",\r\n\t\t\t\t\t\tuserSelect: \"none\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\tcursor: \"all-scroll\",\r\n\t\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonMouseDown={iframeHandleMouseDown}\r\n\t\t\t\t\t\tonTouchStart={iframeHandleTouchStart}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DragIndicator\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(90deg)\",\r\n\t\t\t\t\t\t\t\tcolor: \"#7b7b7b\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t<Typography variant=\"subtitle1\" fontWeight={600} sx={{ textAlign: \"center\" }}>\r\n\t\t\t\t\t\t\tahs-cti\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={() => setShowIframe(false)}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t<iframe\r\n\t\t\t\t\t\t\t// src={`https://localhost:8443/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\tsrc={`${state.urlConfig?.iframeURL}/static/phone/index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}&token=${state.authorization?.accessToken}`}\r\n\t\t\t\t\t\t\t// src={`${state.urlConfig?.iframeURL}/static/phone/cti_index.html?user_id=${state.urlConfig?.id}&api_url=${state.urlConfig?.iframeAPIURL}`}\r\n\t\t\t\t\t\t\theight={380}\r\n\r\n\t\t\t\t\t\t\twidth={420}\r\n\t\t\t\t\t\t\tallow=\"camera; microphone; autoplay\"\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tborder: \"none\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></iframe>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Fade>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={dialerAnchorEl}\r\n\t\t\t\topen={Boolean(dialerAnchorEl)}\r\n\t\t\t\tonClose={handleCloseDialer}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<TextField\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\tvalue={phoneNumber}\r\n\t\t\t\t\t\tplaceholder=\"Enter Mobile No.\"\r\n\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\tconst value = e.target.value;\r\n\t\t\t\t\t\t\tif (/^\\d*$/.test(value)) {\r\n\t\t\t\t\t\t\t\tsetPhoneNumber(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\tcolor=\"info\"\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\thandleStartCall(phoneNumber);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{clickToCallLoading ? (\r\n\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.success.main,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<Phone color=\"success\" />\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</IconButton>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={ambulanceAnchorEl}\r\n\t\t\t\topen={Boolean(ambulanceAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAmbulance}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Tooltip title=\"Ambulance Service\">\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\thandleSendSMS(state.callData);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tAmbulance\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"green\",\r\n\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\tmarginLeft: \"14px\",\r\n\t\t\t\t\t\t\t\t\tpadding: \"2px 6px\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tSend\r\n\t\t\t\t\t\t\t\t<SendRounded\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\r\n\t\t\t\t\t\t\t\t\t\ttransform: \"rotate(-16deg)\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={moreOptionsAnchorEl}\r\n\t\t\t\topen={Boolean(moreOptionsAnchorEl)}\r\n\t\t\t\tonClose={handleCloseMoreOptions}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tall: \"unset\",\r\n\t\t\t\t\t\tpadding: \" 0px 20px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{processList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tkey={item?.process_id}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Tooltip title={item?.process_name ?? \"\"}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.process?.process_id === item?.process_id ? \"contained\" : \"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkStateManager.setProcess(item);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{item?.process_name ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={statusAnchorEl}\r\n\t\t\t\topen={Boolean(statusAnchorEl)}\r\n\t\t\t\tonClose={handleCloseAgentStatus}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{!breaksList || breaksList?.length === 0 ? (\r\n\t\t\t\t\t<MenuItem onClick={() => handleUpdateAgentStatus(\"Lunch\")}>- Break</MenuItem>\r\n\t\t\t\t) : (\r\n\t\t\t\t\tbreaksList?.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\t\t\tkey={item?.type}\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t// hilight background of selected\r\n\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"transparent\",\r\n\t\t\t\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\"white\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\":hover\": {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\t\t\t\t\t\tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"primary.dark\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"selected.hover\",\r\n\t\t\t\t\t\t\t\t\t\t// color:\r\n\t\t\t\t\t\t\t\t\t\t// \tstate?.callData?.status === \"BREAK\" && state?.agentStatus === item?.type ?\r\n\t\t\t\t\t\t\t\t\t\t// \t\t\"primary.main\"\r\n\t\t\t\t\t\t\t\t\t\t// \t:\t\"primary.main\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => handleUpdateAgentStatus(item?.type)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t- {item?.type}\r\n\t\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\topen={Boolean(anchorEl)}\r\n\t\t\t\tonClose={handleCloseQueueCounts}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tzIndex: 99999,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\tpadding: \"0px 10px\",\r\n\t\t\t\t\t\t\"&hover\": {\r\n\t\t\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Layers color=\"secondary\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Waiting - 25\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Pending color=\"info\" />}\r\n\t\t\t\t\t\tlabel=\"Pending - 99+\"\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<Chip\r\n\t\t\t\t\t\ticon={<Upcoming color=\"success\" />}\r\n\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\tlabel=\"Upcoming - 66\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tmargin: \"4px 2px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Box>\r\n\t\t\t</Menu>\r\n\r\n\t\t\t{Boolean(state.openConferenceDialog) && <ConferenceDialog />}\r\n\r\n\t\t\t{Boolean(state.openCallTransferDialog) && (\r\n\t\t\t\t<CallTransferDialog open={state.openCallTransferDialog} />\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallDisposition) && (\r\n\t\t\t\t<EndCallDispositionDialog\r\n\t\t\t\t\topen={openCallDisposition}\r\n\t\t\t\t\tsetOpen={setOpenCallDisposition}\r\n\t\t\t\t\tonSubmitDisposition={handleEndCall}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t{Boolean(openCallHistoryDialog) && (\r\n\t\t\t\t<CallHistoryDialog\r\n\t\t\t\t\topen={openCallHistoryDialog}\r\n\t\t\t\t\tsetOpen={setOpenCallHistoryDialog}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport Airlines from \"@mui/icons-material/Airlines\";\r\nimport Call from \"@mui/icons-material/Call\";\r\nimport CallEnd from \"@mui/icons-material/CallEnd\";\r\nimport CallSplit from \"@mui/icons-material/CallSplit\";\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport MemoryOutlined from \"@mui/icons-material/MemoryOutlined\";\r\nimport Pause from \"@mui/icons-material/Pause\";\r\nimport PhoneDisabled from \"@mui/icons-material/PhoneDisabled\";\r\nimport PlayArrow from \"@mui/icons-material/PlayArrow\";\r\nimport RecordVoiceOver from \"@mui/icons-material/RecordVoiceOver\";\r\nimport Roofing from \"@mui/icons-material/Roofing\";\r\nimport SupportAgent from \"@mui/icons-material/SupportAgent\";\r\nimport TransferWithinAStation from \"@mui/icons-material/TransferWithinAStation\";\r\nimport Upcoming from \"@mui/icons-material/Upcoming\";\r\nimport {\r\n\tBox,\r\n\tButton,\r\n\tDialog,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n\tPaper,\r\n\tTextField,\r\n\tTypography,\r\n\tAutocomplete,\r\n\tTooltip,\r\n\tuseTheme,\r\n\tTableContainer,\r\n\tTable,\r\n\tTableHead,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTableBody,\r\n\tCircularProgress,\r\n\tCheckbox,\r\n} from \"@mui/material\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { useSDKState } from \"../hooks/useSDKState\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\nimport { useGetRequest, usePostRequest } from \"../services/request\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\nimport { useToast } from \"../services/toastMessage\";\r\nimport useStyles from \"./styles\";\r\n\r\nimport { ConferenceLineTypes, CallStatus } from \"../../types\";\r\n\r\ntype TransferCallRequest = {\r\n\tmobile_number?: string;\r\n\tuserid?: string;\r\n\ttype?: string;\r\n\ttransfer_to?: string;\r\n\tcallreferenceid?: string;\r\n\tprocessid?: string;\r\n\tprocess_name?: string;\r\n};\r\n\r\ntype BlindTransferCallRequest = {\r\n\taction: string;\r\n\tuserid: string;\r\n\tcallreferenceid: string;\r\n\tblind_transfer_no: any;\r\n};\r\n\r\nconst ConferenceTableRow = ({ each, isLineDialing }: any) => {\r\n\tconst state = useSDKState();\r\n\tconst theme = useTheme();\r\n\tconst { showToast } = useToast();\r\n\tconst { disabled, enabled } = useStyles({\r\n\t\tdisabled: state.sdkConfig?.disabled || {},\r\n\t\tenabled: state.sdkConfig?.enabled || {},\r\n\t\toutlined: state.sdkConfig?.outlined || {},\r\n\t});\r\n\r\n\tconst [conferenceCallStart, setConferenceCallStart] = useState(false);\r\n\tconst [conferenceCallMerge, setConferenceCallMerge] = useState(false);\r\n\tconst [conferenceCallHoldOrUnHold, setConferenceCallHoldOrUnHold] = useState(false);\r\n\tconst [conferenceCallEnd, setConferenceCallEnd] = useState(false);\r\n\r\n\t// While any line is still dialing or on call (i.e. being set up before it joins\r\n\t// the conference), holding/resuming any line must be blocked.\r\n\tconst anyLineDialingOrOnCall = state?.conferenceLine?.some(\r\n\t\t(line: any) => line?.status === CallStatus.DIALING || line?.status === CallStatus.ONCALL,\r\n\t);\r\n\r\n\t// Hold/Resume is only actionable on lines already in the conference or on hold.\r\n\t// A dialing/on-call line is therefore disabled (its status isn't CONFERENCE/HOLD),\r\n\t// and while any line is still dialing or on call every line's Hold is disabled.\r\n\t// Also disabled while a hold/unhold request is in flight.\r\n\tconst holdEnabled =\r\n\t\t(each?.status === CallStatus.CONFERENCE || each?.status === CallStatus.HOLD) &&\r\n\t\t!anyLineDialingOrOnCall &&\r\n\t\t!conferenceCallHoldOrUnHold;\r\n\r\n\t// Check if the entered phone number is same as the active call number (used only as a call guard, not for UI error)\r\n\tconst isSameAsActiveCall = each?.phone === state.callData?.phone_number && !!each?.phone;\r\n\r\n\t// Show error on the DUPLICATE occurrence: any lower-numbered conference line already has the same phone\r\n\tconst isDuplicateInConference =\r\n\t\t!!each?.phone &&\r\n\t\teach?.line !== 1 &&\r\n\t\t(state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(line) => line.line < each.line && line.phone === each?.phone && !!line.phone,\r\n\t\t);\r\n\r\n\t// Only flag duplicates — no error on line 1 (active call) and no error on the first use of a number\r\n\tconst hasPhoneConflict = isDuplicateInConference;\r\n\r\n\tconst phoneConflictHelperText = isDuplicateInConference ? \"Number already used in another conference line\" : \"\";\r\n\r\n\tconst onConferenceLineUpdate = (line: ConferenceLineTypes, data: any) => {\r\n\t\tsdkStateManager.setConferenceLine({ ...line, ...data });\r\n\t};\r\n\r\n\tconst onConferenceCallStart = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// Block dialing the same number as the active call\r\n\t\tif (line_used.phone === state.callData?.phone_number) {\r\n\t\t\tshowToast(\"Cannot conference with the active call number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Block dialing a number already used in another conference line\r\n\t\tconst isDuplicateNumber = (state.conferenceLine as ConferenceLineTypes[])?.some(\r\n\t\t\t(l) => l.line !== line_used.line && l.phone === line_used.phone && !!l.phone,\r\n\t\t);\r\n\t\tif (isDuplicateNumber) {\r\n\t\t\tshowToast(\"Number already used in another conference line\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!line_used.phone || line_used.phone.length < 10) {\r\n\t\t\tshowToast(\"Invalid phone number\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallStart(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CALL${line_used.line}`,\r\n\t\t\t// line_used: Number(line_used.line),\r\n\t\t\t// thirdparty_no: line_used.phone,\r\n\t\t\ttarget: line_used.phone,\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallStart(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onMergeConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallMerge(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: `CONFERENCE`,\r\n\t\t\tline_used: String(line_used.line),\r\n\t\t\tthirdparty_no: line_used.phone,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_MERGE_CALL, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (state.callData?.hold === 1) {\r\n\t\t\t\t\thandleHoldToggle();\r\n\t\t\t\t}\r\n\t\t\t\tif (state.callData?.mute === 1) {\r\n\t\t\t\t\thandleMuteToggle();\r\n\t\t\t\t}\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallMerge(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onHoldOrUnHoldConferenceCall = (line: ConferenceLineTypes, data: any, type: string) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\t\tsetConferenceCallHoldOrUnHold(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: type === \"HOLDUSER\" ? \"HOLD\" : \"UNHOLD\",\r\n\t\t\toperation: type,\r\n\t\t\thold_channel_no: type === \"HOLDUSER\" ? `hold${line_used.line}` : `unhold${line_used.line}`,\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_HOLD_OR_UN_HOLD, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallHoldOrUnHold(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst onEndConferenceCall = (line: ConferenceLineTypes, data: any) => {\r\n\t\tconst line_used = { ...line, ...data };\r\n\r\n\t\t// ✅ FIX: Prevent accidental hangup of the primary call channel via conference controls\r\n\t\tif (line_used.line === 1) {\r\n\t\t\tshowToast(\"Cannot end the primary call from conference controls\", \"error\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetConferenceCallEnd(true);\r\n\r\n\t\t// Backend HangupRequest schema: call_id (required), agent_id, mobile_number,\r\n\t\t// line_number, reason. Pass line_number = the conference line being dropped\r\n\t\t// (line_number = 0 means full-call hangup, so it must be > 0 here).\r\n\t\tconst payload = {\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tagent_id: state.agentId ?? \"\",\r\n\t\t\tmobile_number: line_used.phone ?? \"\",\r\n\t\t\tline_number: Number(line_used.line),\r\n\t\t\treason: \"normal\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEnd(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst [holdOrUnHold] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst [muteOrUnMute] = usePostRequest<{\r\n\t\taction: string;\r\n\t\tdirection: string;\r\n\t\tuser_id: string;\r\n\t\tcall_uuid: string;\r\n\t\tline_number: number;\r\n\t\trefno?: string;\r\n\t}>();\r\n\r\n\tconst handleHoldToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.hold === 1 ? CallStatus.UNHOLD : CallStatus.HOLD,\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\t\tholdOrUnHold(END_POINT.HOLD_CALL, payload);\r\n\t};\r\n\r\n\tconst handleMuteToggle = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: state.callData?.mute === 1 ? CallStatus.UNMUTE : CallStatus.MUTE,\r\n\t\t\tdirection: \"both\",\r\n\t\t\tuser_id: String(state.agentId ?? \"\"),\r\n\t\t\tcall_uuid: state.callData?.call_id ?? \"\",\r\n\t\t\tline_number: 0,\r\n\t\t};\r\n\r\n\t\tmuteOrUnMute(END_POINT.MUTE_CALL, payload);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<TableRow\r\n\t\t\tkey={each.line}\r\n\t\t\tsx={{\r\n\t\t\t\tborder: \"2px solid #fff\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography>Line {each?.line ?? \"\"}. </Typography>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Typography\r\n\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tpx: 1,\r\n\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\twidth: \"150px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.status ?? \"\"}\r\n\t\t\t\t</Typography>\r\n\t\t\t</TableCell>\r\n\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<TextField\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\tplaceholder=\"Phone Number\"\r\n\t\t\t\t\tfullWidth\r\n\t\t\t\t\tvalue={each?.phone || \"\"}\r\n\t\t\t\t\terror={hasPhoneConflict}\r\n\t\t\t\t\thelperText={phoneConflictHelperText}\r\n\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\teach?.line === 1 ||\r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\tCallStatus.ONCALL,\r\n\t\t\t\t\t\t\tCallStatus.DISCONNECTED,\r\n\t\t\t\t\t\t\tCallStatus.CONFERENCE,\r\n\t\t\t\t\t\t\tCallStatus.HOLD,\r\n\t\t\t\t\t\t\tCallStatus.MUTE,\r\n\t\t\t\t\t\t\tCallStatus.DIALING,\r\n\t\t\t\t\t\t\tCallStatus.RINGING,\r\n\t\t\t\t\t\t].includes(each?.status ?? \"\") ||\r\n\t\t\t\t\t\tisLineDialing\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\tonConferenceLineUpdate(each, { phone: v });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t</TableCell>\r\n\t\t\t<TableCell\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\r\n\t\t\t\t\t\tgap: \"10px\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{each?.line === 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: holdEnabled ? \"#fff\" : \"inherit\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tUnhold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tgap: \"5px\",\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"98px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"body2\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ color: holdEnabled ? \"#fff\" : \"inherit\", fontSize: \"12px\" }}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tHold\r\n\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"16px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (() => {\r\n\t\t\t\t\t\tconst hasMinDigits = (each?.phone?.length ?? 0) >= 3;\r\n\t\t\t\t\t\tconst callDisabled =\r\n\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE ||\r\n\t\t\t\t\t\t\tisLineDialing ||\r\n\t\t\t\t\t\t\thasPhoneConflict ||\r\n\t\t\t\t\t\t\t!hasMinDigits;\r\n\t\t\t\t\t\tconst tooltipTitle = hasPhoneConflict\r\n\t\t\t\t\t\t\t? phoneConflictHelperText || \"Cannot dial this number\"\r\n\t\t\t\t\t\t\t: !each?.phone\r\n\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t: \"Call\";\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant={callDisabled ? \"outlined\" : \"contained\"}\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\t\t\tcallDisabled\r\n\t\t\t\t\t\t\t\t\t\t\t\t? { ...disabled }\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.success.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"success.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tonConferenceCallStart(each, {});\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={callDisabled}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{conferenceCallStart ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" color=\"success\" />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Call\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: callDisabled ? \"default\" : \"#f3f2f2\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})()}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"Merge Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={each?.status === CallStatus.ONCALL ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={each?.status === CallStatus.ONCALL ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonMergeConferenceCall(each, { isMergeCall: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={each?.status !== CallStatus.ONCALL}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallMerge ? <CircularProgress size=\"20px\" /> : <CallSplit />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title={each?.status !== CallStatus.HOLD ? \"Hold\" : \"Resume\"}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={holdEnabled ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tsx={holdEnabled ? { ...enabled } : { ...disabled }}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tif (each.status === CallStatus.HOLD) {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: false }, \"UNHOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tonHoldOrUnHoldConferenceCall(each, { isHold: true }, \"HOLDUSER\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={!holdEnabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallHoldOrUnHold ? (\r\n\t\t\t\t\t\t\t\t\t<CircularProgress size=\"20px\" sx={{ color: theme.palette.primary.main }} />\r\n\t\t\t\t\t\t\t\t) : each.status === CallStatus.HOLD ? (\r\n\t\t\t\t\t\t\t\t\t<PlayArrow />\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<Pause />\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{each?.line !== 1 && (\r\n\t\t\t\t\t\t<Tooltip title=\"End Call\">\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED\r\n\t\t\t\t\t\t\t\t\t\t? \"contained\"\r\n\t\t\t\t\t\t\t\t\t\t: \"outlined\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\tsx={\r\n\t\t\t\t\t\t\t\t\teach?.status !== CallStatus.IDLE && each?.status !== CallStatus.DISCONNECTED ?\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t...enabled,\r\n\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `0px 2px 1px ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `0px solid ${theme.palette.error.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\"&:active\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"error.light\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t...disabled,\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tonEndConferenceCall(each, {\r\n\t\t\t\t\t\t\t\t\t\tisCallStart: false,\r\n\t\t\t\t\t\t\t\t\t\tisMergeCall: false,\r\n\t\t\t\t\t\t\t\t\t\tisMute: false,\r\n\t\t\t\t\t\t\t\t\t\tisHold: false,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.IDLE ||\r\n\t\t\t\t\t\t\t\t\teach?.status === CallStatus.DISCONNECTED ||\r\n\t\t\t\t\t\t\t\t\tconferenceCallEnd\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{conferenceCallEnd ? <CircularProgress size=\"20px\" color=\"error\" /> : <CallEnd />}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</TableCell>\r\n\t\t</TableRow>\r\n\t);\r\n};\r\n\r\nexport function ConferenceDialog() {\r\n\tconst state = useSDKState();\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [conferenceCallEndAll, setConferenceCallEndAll] = useState(false);\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenConferenceDialog(false);\r\n\t};\r\n\r\n\tconst onEndAllConferenceCalls = () => {\r\n\t\tsetConferenceCallEndAll(true);\r\n\r\n\t\tconst payload = {\r\n\t\t\taction: \"EXTERNAL_CONFERENCE\",\r\n\t\t\toperation: \"ENDCONFERENCE\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_END_ALL, payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tshowToast(\"Call disconnected successfully\", \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsetConferenceCallEndAll(false);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst handleTransferConferenceCall = () => {\r\n\t\tconst payload = {\r\n\t\t\taction: \"TRANSFERAPI\",\r\n\t\t\tuserid: state.agentId ?? \"\",\r\n\t\t\tprocess: state.callData?.process_name ?? \"\",\r\n\t\t\tprocessid: state.process?.process_id?.toString() ?? \"\",\r\n\t\t\tprocess_name: state.process?.process_name ?? \"\",\r\n\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\tcall_id: state.callData?.call_id ?? \"\",\r\n\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t};\r\n\r\n\t\taxiosInstance\r\n\t\t\t.post(END_POINT.CONFERENCE_CALL_TRANSFER, payload)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\tsdkStateManager.resetConferenceLines();\r\n\t\t\t\thandleClose();\r\n\t\t\t\t// ✅ FIX: Do NOT call sdkStateManager.endCall() here.\r\n\t\t\t\t// The WebSocket will push the correct WRAPUP event — let it drive state.\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconst message =\r\n\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\"An unknown error occurred\";\r\n\t\t\t\tshowToast(message, \"error\");\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst isLineDialing = state?.conferenceLine?.some((item) => item?.status === CallStatus.DIALING);\r\n\tconst conferenceLineCount =\r\n\t\tstate?.conferenceLine?.filter((item) => item?.status === CallStatus.CONFERENCE)?.length ?? 0;\r\n\r\n\tconst isHold = state?.conferenceLine?.some((item) => item?.status === CallStatus.HOLD);\r\n\tconst isOnCall = state?.conferenceLine?.some((item) => item?.status === CallStatus.ONCALL);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={state.openConferenceDialog}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 800 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"0px 16px\",\r\n\t\t\t\t\t\t\tpaddingBottom: \"6px\",\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tcolor=\"primary.main\"\r\n\t\t\t\t\t\t\tsx={{ textTransform: \"uppercase\", fontWeight: \"bold\", fontSize: \"14px\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{state?.agentId ?? \"\"} conference\r\n\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\tonClick={handleTransferConferenceCall}\r\n\t\t\t\t\t\t\t\tdisabled={conferenceLineCount <= 1 || isHold || isLineDialing || isOnCall}\r\n\t\t\t\t\t\t\t\tstartIcon={<TransferWithinAStation />}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tExit Conference\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Close sx={{ color: \"primary.main\" }} />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 2px #e7e5e5ff\",\r\n\t\t\t\t\t\t\tmargin: \"0px 15px\",\r\n\t\t\t\t\t\t\tborderRadius: \"20px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TableContainer\r\n\t\t\t\t\t\t\tcomponent={Paper}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\toutline: \"0px solid gray !important\",\r\n\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 6px #e7e5e5ff\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Table sx={{ border: \"4px solid #ffffff !important\" }}>\r\n\t\t\t\t\t\t\t\t<TableHead>\r\n\t\t\t\t\t\t\t\t\t<TableRow sx={{ border: \"2px solid #f3f3f3ff !important\" }}>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Line</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Status</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Mobile Number</TableCell>\r\n\t\t\t\t\t\t\t\t\t\t<TableCell sx={{ padding: \"6px\" }}>Call Actions</TableCell>\r\n\t\t\t\t\t\t\t\t\t</TableRow>\r\n\t\t\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t\t\t\t<TableBody>\r\n\t\t\t\t\t\t\t\t\t{state?.conferenceLine.map((each: any) => (\r\n\t\t\t\t\t\t\t\t\t\t<ConferenceTableRow key={each.line} each={each} isLineDialing={isLineDialing} />\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</TableBody>\r\n\t\t\t\t\t\t\t</Table>\r\n\t\t\t\t\t\t</TableContainer>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t\t<Box sx={{ textAlign: \"center\", m: 2 }}>\r\n\t\t\t\t\t\t<Tooltip title={state.sdkConfig?.disableEndConference ? \"End Conference feature is disabled\" : \"\"}>\r\n\t\t\t\t\t\t\t<Box component=\"span\">\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\tonClick={onEndAllConferenceCalls}\r\n\t\t\t\t\t\t\t\t\tdisabled={conferenceCallEndAll || conferenceLineCount <= 0 || state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"20px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{conferenceCallEndAll ? (\r\n\t\t\t\t\t\t\t\t\t\t<CircularProgress\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"20px\"\r\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ marginRight: \"8px\" }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.sdkConfig?.disableEndConference}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: state.sdkConfig?.disableEndConference ? \"action.disabledBackground\" : \"error.dark\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"28px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<PhoneDisabled sx={{ color: state.sdkConfig?.disableEndConference ? \"action.disabled\" : \"white\", fontSize: \"16px\", fontWeight: \"600\" }} />\r\n\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tEnd Conference\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallTransferDialog({ open }: any) {\r\n\tconst state = useSDKState();\r\n\tconst [mobileNumber, setMobileNumber] = useState(\"\");\r\n\r\n\t// ✅ FIX: Removed sdkStateManager.endCall() and sdkStateManager.resetConferenceLines()\r\n\t// from onSuccess. These were forcing the initial agent to IDLE immediately on the\r\n\t// client side, before the WebSocket pushed the correct WRAPUP event.\r\n\t// For a blind transfer the server will push:\r\n\t// - Initial agent → WRAPUP (via WebSocket)\r\n\t// - Transferred-to agent → RINGING → ONCALL (via WebSocket)\r\n\t// We must NOT touch local call state here — only close the dialog.\r\n\tconst [transferCall, { isLoading: isTransferLoading }] = usePostRequest<TransferCallRequest>({\r\n\t\tonSuccess: () => {\r\n\t\t\t// Close dialog only. Let WebSocket events drive all state transitions.\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [initiateConsultCall] = usePostRequest<any>({});\r\n\r\n\tconst [completeConsultTransfer, { isLoading: isCompleteConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [cancelConsultTransfer, { isLoading: isCancelConsultLoading }] = usePostRequest<any>({\r\n\t\tonSuccess: () => {\r\n\t\t\tsdkStateManager.setConsultInfo(null);\r\n\t\t},\r\n\t});\r\n\r\n\tconst [currentselecteTab, setCurrentselecteTab] = useState(\"queues\");\r\n\tconst [transferMenuAnchor, setTransferMenuAnchor] = useState<null | HTMLElement>(null);\r\n\tconst [pendingTransferData, setPendingTransferData] = useState<{ data: any; type: string } | null>(null);\r\n\r\n\tconst blindEnabled = !state.sdkConfig?.disableBlindTransfer;\r\n\tconst attendedEnabled = !state.sdkConfig?.disableAttendedTransfer;\r\n\tconst enabledTransferModeCount = (blindEnabled ? 1 : 0) + (attendedEnabled ? 1 : 0);\r\n\tconst singleTransferMode: \"DEFAULT\" | \"CONSULT\" | null =\r\n\t\tenabledTransferModeCount === 1 ? (blindEnabled ? \"DEFAULT\" : \"CONSULT\") : null;\r\n\r\n\tconst [getIdelAgentsList, { data: idleAgentsList, isLoading: isIdleAgentsListLoading }] =\r\n\t\tusePostRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetHospitalsServicesList,\r\n\t\t{ data: hospitalsServicesList, isLoading: isHospitalsServicesListLoading },\r\n\t] = useGetRequest<any>({ disabledSuccessToast: true });\r\n\r\n\tconst [\r\n\t\tgetProcessAndQueuesList,\r\n\t\t{ data: processAndQueuesList, isLoading: isProcessAndQueuesListLoading },\r\n\t] = usePostRequest<{\r\n\t\tstatus: string;\r\n\t\tactive: boolean;\r\n\t\tprocess?: any[];\r\n\t\tqueue?: any[];\r\n\t}>({ disabledSuccessToast: true });\r\n\r\n\tconst handleClose = () => {\r\n\t\tsdkStateManager.setOpenCallTransferDialog(false);\r\n\t};\r\n\r\n\tconst handleTransferCall = (data: any, type: string, mode: \"CONSULT\" | \"DEFAULT\" = \"DEFAULT\") => {\r\n\t\tconst lead_data = sdkStateManager.getTransferLeadData();\r\n\t\tif (type === \"PROCESS\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"PROCESS\",\r\n\t\t\t\ttransfer_to: data?.process_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"QUEUE\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"QUEUE\",\r\n\t\t\t\ttransfer_to: data?.queue_name ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t} else if (type === \"AGENT\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\tmobile_number: state.callData?.phone_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\ttype: \"AGENT\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttransfer_to: data?.user_id?.toString() ?? \"\",\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\tprocessid: String(state.callData?.process_id ?? \"\"),\r\n\t\t\t\tprocess_name: state.callData?.process_name ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t} else if (type === \"OTHER\") {\r\n\t\t\tconst payload = {\r\n\t\t\t\t// action: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND_TRANSFER\",\r\n\t\t\t\ttransfer_type: mode === \"CONSULT\" ? \"ATTENDED\" : \"BLIND\",\r\n\t\t\t\ttype: \"OTHER\",\r\n\t\t\t\ttransfer_to: data?.mobile_number ?? \"\",\r\n\t\t\t\tuserid: state.agentId,\r\n\t\t\t\tcallreferenceid: state.callData?.call_id ?? \"\",\r\n\t\t\t\t// blind_transfer_no: data?.mobile_number ?? \"\",\r\n\t\t\t\t...(lead_data !== undefined && { lead_data }),\r\n\t\t\t};\r\n\t\t\tif (mode === \"CONSULT\") {\r\n\t\t\t\tinitiateConsultCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t} else {\r\n\t\t\t\ttransferCall(END_POINT.TRANSFER_CALL, payload);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleTransferClick = (e: React.MouseEvent<HTMLElement>, data: any, type: string) => {\r\n\t\tif (singleTransferMode) {\r\n\t\t\thandleTransferCall(data, type, singleTransferMode);\r\n\t\t} else {\r\n\t\t\tsetPendingTransferData({ data, type });\r\n\t\t\tsetTransferMenuAnchor(e.currentTarget);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\tgetProcessAndQueuesList(END_POINT.TRANSFER_TO_DETAILS, { status: \"ACTIVE\", active: true });\r\n\t\tgetHospitalsServicesList(END_POINT.HOSPITALS_SERVICES);\r\n\t}, []);\r\n\r\n\t// Auto-refresh the idle agents list every 3s, but only while the dialog is\r\n\t// open and the Agents tab is selected. The list is volatile (agents go\r\n\t// idle/busy constantly), so we keep it fresh; the interval is torn down as\r\n\t// soon as the user leaves the tab or closes the dialog.\r\n\tuseEffect(() => {\r\n\t\tif (!open || currentselecteTab !== \"agents\") return;\r\n\t\tconst intervalId = setInterval(() => {\r\n\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t}, 2000);\r\n\t\treturn () => clearInterval(intervalId);\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [open, currentselecteTab]);\r\n\r\n\t// Only block the dialog with the loader on the *initial* agents fetch. Once\r\n\t// we have data, background refreshes update the list silently (no flicker).\r\n\tconst idleAgentsLoaderActive = isIdleAgentsListLoading && !idleAgentsList?.data;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 600 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t\tposition: \"relative\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ flex: 1 }}> Call Transfer</Typography>\r\n\t\t\t\t\t\t<Box sx={{ position: \"absolute\", left: \"50%\", transform: \"translateX(-50%)\" }}>\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.RINGING && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n\t\t\t\t\t\t\t\t\t<Typography variant=\"body1\" sx={{ whiteSpace: \"nowrap\" }}>\r\n\t\t\t\t\t\t\t\t\t\tTrying to consult\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t<Box component=\"span\" sx={{ display: \"inline-flex\", gap: \"3px\", alignItems: \"flex-end\", height: \"14px\" }}>\r\n\t\t\t\t\t\t\t\t\t\t{[0, 1, 2].map((i) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box key={i} component=\"span\" sx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"@keyframes jumpDot\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"0%, 60%, 100%\": { transform: \"translateY(0)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"30%\": { transform: \"translateY(-5px)\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"jumpDot 1s ease-in-out infinite\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tanimationDelay: `${i * 0.15}s`,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}>.</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{state.consultInfo && (state.consultInfo.status?.toUpperCase() as CallStatus) === CallStatus.ONCALL && (\r\n\t\t\t\t\t\t\t\t<Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCompleteConsultLoading ? <CircularProgress size={14} /> : <TransferWithinAStation sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCompleteConsultLoading || isCancelConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcompleteConsultTransfer(END_POINT.TRANSFER_COMPLETE, {}, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparams: { call_uuid: state.consultInfo.call_uuid },\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\t\t\t\tstartIcon={isCancelConsultLoading ? <CircularProgress size={14} /> : <PhoneDisabled sx={{ fontSize: 16 }} />}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={isCancelConsultLoading || isCompleteConsultLoading}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (state.consultInfo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcancelConsultTransfer(END_POINT.TRANSFER_CANCEL, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: state.consultInfo.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparticipant_identifier: state.consultInfo.participant_identifier,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tchannel_id: state.consultInfo.channel_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcall_uuid: state.consultInfo.call_uuid,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbridge_id: state.consultInfo.bridge_id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tCancel\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t<Box sx={{ flex: 1, display: \"flex\", justifyContent: \"flex-end\" }}>\r\n\t\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box sx={{ margin: \"10px\", borderRadius: \"10px\" }}>\r\n\t\t\t\t\t\t<Box sx={{ display: \"flex\", gap: 1, margin: \"10px\" }}>\r\n\t\t\t\t\t\t\t{/* <Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"process\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"process\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tProcess\r\n\t\t\t\t\t\t\t</Button> */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"queues\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"queues\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tQueues\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"agents\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetCurrentselecteTab(\"agents\");\r\n\t\t\t\t\t\t\t\t\tgetIdelAgentsList(END_POINT.AGENTS_LIST, { status: \"IDLE\", active: true });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tAgents\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* {!state.sdkConfig?.disableBlindTransfer && ( */}\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tvariant={currentselecteTab === \"others\" ? \"contained\" : \"outlined\"}\r\n\t\t\t\t\t\t\t\tonClick={() => setCurrentselecteTab(\"others\")}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tOthers\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{/* )} */}\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t{(isProcessAndQueuesListLoading ||\r\n\t\t\t\t\t\t\tidleAgentsLoaderActive ||\r\n\t\t\t\t\t\t\tisHospitalsServicesListLoading ||\r\n\t\t\t\t\t\t\tisTransferLoading) && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\theight: \"80px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<CircularProgress />\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"process\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MemoryOutlined sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(process, \"PROCESS\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Process Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"queues\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.queue &&\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.queue?.map((queue: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Airlines sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{queue.queue_name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{processAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocessAndQueuesList?.data?.process?.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(process: any) => process.process_id === queue.process_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)?.process_name +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleTransferCall(queue, \"QUEUE\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Queues Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"agents\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\r\n\t\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data && idleAgentsList?.data?.length > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"repeat(2, 1fr)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"repeat(1, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{idleAgentsList?.data && idleAgentsList?.data?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\tidleAgentsList?.data?.map((agent: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{agent.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : \"\"}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, agent, \"AGENT\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tp: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Upcoming color=\"primary\" />\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"primary.main\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\tNo Agents Found\r\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isProcessAndQueuesListLoading &&\r\n\t\t\t\t\t\t\t!idleAgentsLoaderActive &&\r\n\t\t\t\t\t\t\t!isHospitalsServicesListLoading &&\r\n\t\t\t\t\t\t\t!isTransferLoading &&\r\n\t\t\t\t\t\t\tcurrentselecteTab === \"others\" && (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\r\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(2, 1fr)\",\r\n\t\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{hospitalsServicesList?.data &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\thospitalsServicesList?.data?.map((service: any, index: any) => (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Roofing sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={`${service?.description ?? \"\"}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ color: \"text.secondary\" }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service.name}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"9px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tletterSpacing: \"0.02em\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"gray\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{service?.description ?? \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={state.consultInfo ? \"Please complete or cancel the ongoing consult transfer before proceeding.\" : (service?.phone_number ?? \"\")}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!state.consultInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: service?.phone_number ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{(() => {\r\n\t\t\t\t\t\t\t\t\t\t\tconst isSameAsActiveCall =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!mobileNumber && mobileNumber === (state.callData?.phone_number ?? \"\");\r\n\t\t\t\t\t\t\t\t\t\t\tconst hasMinDigits = mobileNumber.length >= 3;\r\n\t\t\t\t\t\t\t\t\t\t\tconst transferDisabled =\r\n\t\t\t\t\t\t\t\t\t\t\t\t!!state.consultInfo || !hasMinDigits || isSameAsActiveCall;\r\n\t\t\t\t\t\t\t\t\t\t\tconst tooltipTitle = state.consultInfo\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Please complete or cancel the ongoing consult transfer before proceeding.\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: isSameAsActiveCall\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Cannot transfer to the same number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: !mobileNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: !hasMinDigits\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Enter at least 3 digits\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `Call To - ${mobileNumber}`;\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"others\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={mobileNumber}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror={isSameAsActiveCall}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={isSameAsActiveCall ? \"Cannot transfer to the same number\" : \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowUp\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowDown\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Home\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"End\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/^\\d$/.test(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(e.key) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!(e.ctrlKey || e.metaKey)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPaste={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst pasted = e.clipboardData.getData(\"text\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!/^\\d*$/.test(pasted)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst v = e.target.value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (/^\\d*$/.test(v)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMobileNumber(v);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputMode: \"numeric\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength: 11,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformHelperText: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"normal\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twordBreak: \"break-word\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmx: 0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter mobile number\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={tooltipTitle}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"success\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={transferDisabled}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"action.hover\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => handleTransferClick(e, { mobile_number: mobileNumber ?? \"\" }, \"OTHER\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Call />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t})()}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\r\n\t\t\t{/* Transfer Mode Menu */}\r\n\t\t\t<Menu\r\n\t\t\t\tanchorEl={transferMenuAnchor}\r\n\t\t\t\topen={Boolean(transferMenuAnchor)}\r\n\t\t\t\tonClose={() => setTransferMenuAnchor(null)}\r\n\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"left\" }}\r\n\t\t\t\ttransformOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\r\n\t\t\t>\r\n\t\t\t\t{blindEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"DEFAULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TransferWithinAStation fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t\t{attendedEnabled && (\r\n\t\t\t\t\t<MenuItem\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tif (pendingTransferData) handleTransferCall(pendingTransferData.data, pendingTransferData.type, \"CONSULT\");\r\n\t\t\t\t\t\t\tsetTransferMenuAnchor(null);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tsx={{ gap: 1 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<RecordVoiceOver fontSize=\"small\" color=\"primary\" />\r\n\t\t\t\t\t\tConsult then Transfer\r\n\t\t\t\t\t</MenuItem>\r\n\t\t\t\t)}\r\n\t\t\t</Menu>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function EndCallDispositionDialog({ open, setOpen, onSubmitDisposition }: any) {\r\n\tconst [getDispositions, data] = useGetRequest();\r\n\r\n\tconst [formData, setFormData] = useState({\r\n\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\tcallbackDate: \"\",\r\n\t\tcallbackHrs: \"\",\r\n\t\tcallbackMins: \"\",\r\n\t\tselected_break: false,\r\n\t\tnotes: \"\",\r\n\t});\r\n\tconst followUpOptions = [\r\n\t\t{ label: \"Yes\", value: \"Y\" },\r\n\t\t{ label: \"No\", value: \"N\" },\r\n\t];\r\n\r\n\tconst handleChange = (\r\n\t\tfield: keyof typeof formData,\r\n\t\tvalue: { label: string } | null | string | boolean\r\n\t) => {\r\n\t\tsetFormData((prev) => ({ ...prev, [field]: value }));\r\n\t};\r\n\r\n\tconst handleReset = () => {\r\n\t\tsetFormData({\r\n\t\t\tdisposition: { label: \"\", value: \"\", id: 0 },\r\n\t\t\tfollowUp: { label: \"No\", value: \"N\" },\r\n\t\t\tcallbackDate: \"\",\r\n\t\t\tcallbackHrs: \"\",\r\n\t\t\tcallbackMins: \"\",\r\n\t\t\tselected_break: false,\r\n\t\t\tnotes: \"\",\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\thandleReset();\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tgetDispositions(END_POINT.DISPOSITIONS);\r\n\t}, []);\r\n\r\n\tconst dispositionsOptions = useMemo(() => {\r\n\t\treturn (\r\n\t\t\tdata?.data?.data\r\n\t\t\t\t?.filter((item: any) => item.name !== \"Resolved\")\r\n\t\t\t\t?.map((item: any) => ({\r\n\t\t\t\t\tlabel: item.name,\r\n\t\t\t\t\tvalue: item.code,\r\n\t\t\t\t\tid: item.disposition_id,\r\n\t\t\t\t}))\r\n\t\t\t\t?.sort((a: any, b: any) => a.label.localeCompare(b.label)) || []\r\n\t\t);\r\n\t}, [data?.data?.data]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"sm\"}\r\n\t\t\t\tfullWidth\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 600 } } }}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tminWidth: '650px'\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\tsx={{ m: 1 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\t\tCall Disposition\r\n\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\tvalue={formData.disposition}\r\n\t\t\t\t\t\t\t\toptions={dispositionsOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"disposition\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Disposition\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\toptions={followUpOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.followUp}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"followUp\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Follow Up\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{/* <Autocomplete\r\n\t\t\t\t\t\t\t\toptions={breakOptions}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(opt) => opt.label}\r\n\t\t\t\t\t\t\t\tvalue={formData.selected_break}\r\n\t\t\t\t\t\t\t\tonChange={(_, val) => handleChange(\"selected_break\", val)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\t\t{...params}\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Break\"\r\n\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t/> */}\r\n\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tflex: \"1\",\r\n\t\t\t\t\t\t\t\t\tborder: \"1px solid #bdbdbd\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"5px\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\t\tname=\"selected_break\"\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tchecked={formData.selected_break}\r\n\t\t\t\t\t\t\t\t\tonChange={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"selected_break\", event.target.checked);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinput: { \"aria-label\": \"controlled\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>{\" \"}\r\n\t\t\t\t\t\t\t\tMark as break\r\n\t\t\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" ? (\r\n\t\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\tlabel=\"Callback Date\"\r\n\t\t\t\t\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\t\t\t\t\tslotProps={{\r\n\t\t\t\t\t\t\t\t\t\tinputLabel: { shrink: true },\r\n\t\t\t\t\t\t\t\t\t\thtmlInput: {\r\n\t\t\t\t\t\t\t\t\t\t\tmin: new Date().toISOString().split(\"T\")[0],\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackDate}\r\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackDate\", e.target.value);\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = e.target.value === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tif (isToday) {\r\n\t\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\t\tconst currentHr = now.getHours();\r\n\t\t\t\t\t\t\t\t\t\t\tif (formData.callbackHrs && Number(formData.callbackHrs) < currentHr) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackHrs\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (formData.callbackHrs && Number(formData.callbackHrs) === currentHr && formData.callbackMins && Number(formData.callbackMins) < now.getMinutes()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandleChange(\"callbackMins\", \"\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<Box sx={{ flex: 1 }}></Box>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t{formData?.followUp?.label?.toLowerCase() === \"yes\" && (\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{ display: \"flex\", gap: 2, mt: 2 }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 24 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\treturn isToday && Number(option) < new Date().getHours();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackHrs || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackHrs\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Hours (0-23)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<Autocomplete\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\toptions={Array.from({ length: 60 }, (_, i) => String(i).padStart(2, \"0\"))}\r\n\t\t\t\t\t\t\t\t\tgetOptionDisabled={(option) => {\r\n\t\t\t\t\t\t\t\t\t\tconst isToday = formData.callbackDate === new Date().toISOString().split(\"T\")[0];\r\n\t\t\t\t\t\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\t\t\t\t\t\tconst isCurrentHr = isToday && formData.callbackHrs === String(now.getHours()).padStart(2, \"0\");\r\n\t\t\t\t\t\t\t\t\t\treturn isCurrentHr && Number(option) < now.getMinutes();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tvalue={formData.callbackMins || null}\r\n\t\t\t\t\t\t\t\t\tonChange={(_, value) => handleChange(\"callbackMins\", value || \"\")}\r\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Minutes (0-59)\" />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\tsx={{ flex: 1 }}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t<Box sx={{ mt: 2 }}>\r\n\t\t\t\t\t\t\t<TextField\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\tlabel=\"Notes\"\r\n\t\t\t\t\t\t\t\tmultiline\r\n\t\t\t\t\t\t\t\tminRows={2}\r\n\t\t\t\t\t\t\t\tmaxRows={4}\r\n\t\t\t\t\t\t\t\tvalue={formData.notes}\r\n\t\t\t\t\t\t\t\tonChange={(e) => handleChange(\"notes\", e.target.value)}\r\n\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{ textAlign: \"right\", m: 2 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\tcolor=\"error\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={handleClose}\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\ttextTransform: \"capitalize\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tcancel\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tvariant=\"contained\"\r\n\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\tonClick={() => onSubmitDisposition(formData)}\r\n\t\t\t\t\t\t\tsx={{ px: 2, borderRadius: \"10px\", textTransform: \"capitalize\" }}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tSubmit\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function ProcessorListDialog({\r\n\topen,\r\n\tsetOpen,\r\n\tprocessList = null,\r\n\thandleSelectedProcessor,\r\n}: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={false}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Process List</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tpadding: \"6px 10px\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{processList.length > 0 ?\r\n\t\t\t\t\t\t\tprocessList?.map((process: any, index: any) => (\r\n\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tp: 1,\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"6px\",\r\n\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px\",\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\r\n\t\t\t\t\t\t\t\t\t\t\"&:hover\": { bgcolor: \"action.selected\" },\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\thandleSelectedProcessor(process);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"body1\"\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tmx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth: \"250px\",\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<SupportAgent sx={{ marginRight: \"4px\" }} />\r\n\t\t\t\t\t\t\t\t\t\t{process.process_name}\r\n\t\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n\r\nexport function CallHistoryDialog({ open, setOpen }: any) {\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Dialog\r\n\t\t\t\topen={open}\r\n\t\t\t\taria-labelledby=\"alert-dialog-title\"\r\n\t\t\t\taria-describedby=\"alert-dialog-description\"\r\n\t\t\t\tmaxWidth={\"md\"}\r\n\t\t\t\tslotProps={{ paper: { sx: { minWidth: 500 } } }}\r\n\t\t\t>\r\n\t\t\t\t<Paper sx={{ borderRadius: 2 }}>\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\r\n\t\t\t\t\t\t\talignItems: \"center\",\r\n\t\t\t\t\t\t\tpadding: \"4px 16px\",\r\n\t\t\t\t\t\t\tboxShadow: \"0px 1px 2px #f5f5f5ff\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Typography variant=\"body1\"> Call History</Typography>\r\n\t\t\t\t\t\t<IconButton onClick={handleClose}>\r\n\t\t\t\t\t\t\t<Close />\r\n\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tboxShadow: \"1px 1px 4px #d3d3d3ff\",\r\n\t\t\t\t\t\t\tmargin: \"10px\",\r\n\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\tfontSize: \"16px\",\r\n\t\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\t\tp: 6,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tComing Soon...\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Paper>\r\n\r\n\t\t\t</Dialog>\r\n\t\t</>\r\n\t);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type AxiosRequestConfig } from \"axios\";\r\nimport { useCallback, useReducer } from \"react\";\r\n\r\nimport axiosInstance from \"./axios\";\r\nimport { useToast } from \"./toastMessage\";\r\nimport {\r\n\tRequestResult,\r\n\tUseGetRequest,\r\n\tRequestOptions,\r\n\tUsePostRequest,\r\n\tUsePutRequest,\r\n\tUseDeleteRequest,\r\n\tUsePatchRequest,\r\n} from \"../../types\";\r\n\r\nconst initialState = {\r\n\tisLoading: false,\r\n\tisSuccess: false,\r\n\tisError: false,\r\n\terror: null,\r\n\tdata: null,\r\n};\r\n\r\nconst reducer = (state: typeof initialState, action: { type: string; payload: any }) => {\r\n\tif (action.type === \"isLoading\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisLoading: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isSuccess\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisSuccess: true,\r\n\t\t\tdata: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"isError\") {\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tisError: true,\r\n\t\t\terror: action.payload,\r\n\t\t};\r\n\t} else if (action.type === \"reset\") {\r\n\t\treturn {\r\n\t\t\tisLoading: false,\r\n\t\t\tisSuccess: false,\r\n\t\t\tisError: false,\r\n\t\t\terror: null,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\tthrow Error(\"Unknown action.\");\r\n};\r\n\r\nexport const useGetRequest = <T = UseGetRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst getRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.get(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [getRequest, state];\r\n};\r\n\r\nexport const usePostRequest = <T = UsePostRequest>(\r\n\tprops: RequestOptions = {}\r\n): [\r\n\t(_url: string, _payload: T, _config?: AxiosRequestConfig) => Promise<any>,\r\n\tRequestResult<T>,\r\n] => {\r\n\tconst { onSuccess = null, onError = null, disabledSuccessToast = false } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst postRequest = useCallback(\r\n\t\tasync (url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst res = await axiosInstance.post(url, payload, config);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\tif (!disabledSuccessToast) {\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (err: any) {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t}\r\n\t\t\t} finally {\r\n\t\t\t\tdispatch({\r\n\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\tpayload: false,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [postRequest, state];\r\n};\r\n\r\nexport const usePutRequest = <T = UsePutRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst putRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.put(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [putRequest, state];\r\n};\r\n\r\nexport const useDeleteRequest = <T = UseDeleteRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst deleteRequest = useCallback(\r\n\t\t(url: string, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.delete(url, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, config);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, config);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, config);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [deleteRequest, state];\r\n};\r\n\r\nexport const usePatchRequest = <T = UsePatchRequest>(\r\n\tprops: RequestOptions = {}\r\n): [(_url: string, _payload: T, _config?: AxiosRequestConfig) => void, RequestResult<T>] => {\r\n\tconst { onSuccess = null, onError = null } = props;\r\n\r\n\tconst { showToast } = useToast();\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n\tconst patchRequest = useCallback(\r\n\t\t(url: string, payload: T, config = {}) => {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\tpayload: true,\r\n\t\t\t});\r\n\r\n\t\t\taxiosInstance\r\n\t\t\t\t.patch(url, payload, config)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (res.data?.success) {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isSuccess\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tonSuccess?.(res.data, payload);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\t\tpayload: res.data,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tshowToast(res.data?.message, \"error\");\r\n\r\n\t\t\t\t\t\tonError?.(res.data, payload);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconst error = {\r\n\t\t\t\t\t\tstatus: err.response?.status ?? 500,\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\terr.response?.data?.detail ||\r\n\t\t\t\t\t\t\terr.response?.data?.message ||\r\n\t\t\t\t\t\t\terr.message ||\r\n\t\t\t\t\t\t\t\"An unknown error occurred\",\r\n\t\t\t\t\t\tdata: err.response?.data ?? null,\r\n\t\t\t\t\t\tstatusText: err.response?.statusText ?? \"\",\r\n\t\t\t\t\t\tcode: err?.code ?? \"\",\r\n\t\t\t\t\t\tname: err?.name ?? \"\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tshowToast(error.message, \"error\");\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isError\",\r\n\t\t\t\t\t\tpayload: error,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tonError?.(error, payload);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"isLoading\",\r\n\t\t\t\t\t\tpayload: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[onSuccess, onError, showToast]\r\n\t);\r\n\r\n\treturn [patchRequest, state];\r\n};\r\n","import { SxProps, useTheme } from \"@mui/material\";\r\n\r\nconst useStyles = ({\r\n disabled,\r\n enabled,\r\n outlined,\r\n}: {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n}): {\r\n disabled: SxProps;\r\n enabled: SxProps;\r\n outlined: SxProps;\r\n} => {\r\n const theme = useTheme();\r\n return {\r\n disabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n opacity: 0.6,\r\n boxShadow: \"none\",\r\n cursor: \"not-allowed\",\r\n height: \"40px\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n },\r\n \"&:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n boxShadow: \"none\",\r\n },\r\n // MUI sets `pointer-events: none` on disabled buttons, which hides the\r\n // cursor. Re-enable pointer events so `not-allowed` shows; the native\r\n // `disabled` attribute still blocks the click. Re-enabling pointer events\r\n // also revives MUI's hover/active visuals, so pin the muted look across\r\n // every interactive state — the button must never appear to \"light up\".\r\n \"&.Mui-disabled\": {\r\n pointerEvents: \"auto\",\r\n cursor: \"not-allowed\",\r\n backgroundColor: theme.palette.grey[100],\r\n color: theme.palette.action.disabled,\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n \"&:hover, &:focus, &:focus-visible, &:active\": {\r\n backgroundColor: theme.palette.grey[100],\r\n borderColor: theme.palette.grey[300],\r\n boxShadow: \"none\",\r\n },\r\n },\r\n ...disabled,\r\n },\r\n enabled: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: \" 0px 2px 1px rgba(0, 0, 0, 0.507)\",\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...enabled,\r\n },\r\n outlined: {\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n minWidth: \"40px !important\",\r\n borderRadius: \"16px\",\r\n backgroundColor: theme.palette.grey[200],\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.light}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n height: \"40px\",\r\n \"&:hover\": {\r\n boxShadow: `0px 2px 1px ${theme.palette.primary.main}`,\r\n border: `0px solid ${theme.palette.primary.main}`,\r\n },\r\n \"&:active\": {\r\n bgcolor: \"primary.main\",\r\n boxShadow: `inset 1px -2px 4px ${theme.palette.primary.light}`,\r\n },\r\n ...outlined,\r\n },\r\n };\r\n};\r\n\r\nexport default useStyles;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { type MouseEvent, type TouchEvent, useCallback, useRef, useState } from \"react\";\r\n\r\ninterface Position {\r\n\tx: number;\r\n\ty: number;\r\n}\r\n\r\ninterface UseDraggableReturn {\r\n\tposition: Position;\r\n\tisDragging: boolean;\r\n\tdragRef: any;\r\n\thandleMouseDown: (_e: MouseEvent<HTMLDivElement>) => void;\r\n\thandleTouchStart: (_e: TouchEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport function useDraggable(\r\n\tinitialPosition: Position,\r\n\tonPositionChange?: (_position: Position) => void\r\n): UseDraggableReturn {\r\n\tconst [position, setPosition] = useState<Position>(initialPosition);\r\n\r\n\tconst [isDragging, setIsDragging] = useState(false);\r\n\r\n\tconst dragRef = useRef<HTMLDivElement>();\r\n\r\n\tconst dragStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst elementStart = useRef<Position>({ x: 0, y: 0 });\r\n\r\n\tconst updatePosition = useCallback(\r\n\t\t(newPosition: Position) => {\r\n\t\t\tconst element = dragRef.current;\r\n\t\t\tif (!element) return;\r\n\r\n\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\tconst viewportWidth = window.innerWidth;\r\n\t\t\tconst viewportHeight = window.innerHeight;\r\n\r\n\t\t\tconst constrainedPosition = {\r\n\t\t\t\tx: Math.max(0, Math.min(newPosition.x, viewportWidth - rect.width)),\r\n\t\t\t\ty: Math.max(0, Math.min(newPosition.y, viewportHeight - rect.height)),\r\n\t\t\t};\r\n\r\n\t\t\tsetPosition(constrainedPosition);\r\n\t\t\tonPositionChange?.(constrainedPosition);\r\n\t\t},\r\n\t\t[onPositionChange]\r\n\t);\r\n\r\n\tconst handleStart = useCallback(\r\n\t\t(clientX: number, clientY: number) => {\r\n\t\t\tsetIsDragging(true);\r\n\t\t\tdragStart.current = { x: clientX, y: clientY };\r\n\t\t\telementStart.current = position;\r\n\r\n\t\t\tconst handleMove = (moveClientX: number, moveClientY: number) => {\r\n\t\t\t\tconst deltaX = moveClientX - dragStart.current.x;\r\n\t\t\t\tconst deltaY = moveClientY - dragStart.current.y;\r\n\r\n\t\t\t\tupdatePosition({\r\n\t\t\t\t\tx: elementStart.current.x + deltaX,\r\n\t\t\t\t\ty: elementStart.current.y + deltaY,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst handleMouseMove = (e: globalThis.MouseEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\thandleMove(e.clientX, e.clientY);\r\n\t\t\t};\r\n\r\n\t\t\tconst handleTouchMove = (e: globalThis.TouchEvent) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst touch = e.touches[0];\r\n\t\t\t\tif (touch) {\r\n\t\t\t\t\thandleMove(touch.clientX, touch.clientY);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst handleEnd = () => {\r\n\t\t\t\tsetIsDragging(false);\r\n\t\t\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\t\tdocument.removeEventListener(\"mouseup\", handleEnd);\r\n\t\t\t\tdocument.removeEventListener(\"touchmove\", handleTouchMove);\r\n\t\t\t\tdocument.removeEventListener(\"touchend\", handleEnd);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.addEventListener(\"mousemove\", handleMouseMove);\r\n\t\t\tdocument.addEventListener(\"mouseup\", handleEnd);\r\n\t\t\tdocument.addEventListener(\"touchmove\", handleTouchMove, {\r\n\t\t\t\tpassive: false,\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener(\"touchend\", handleEnd);\r\n\t\t},\r\n\t\t[position, updatePosition]\r\n\t);\r\n\r\n\tconst handleMouseDown = useCallback(\r\n\t\t(e: MouseEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\thandleStart(e.clientX, e.clientY);\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\tconst handleTouchStart = useCallback(\r\n\t\t(e: TouchEvent<HTMLDivElement>) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst touch = e.touches[0];\r\n\t\t\tif (touch) {\r\n\t\t\t\thandleStart(touch.clientX, touch.clientY);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[handleStart]\r\n\t);\r\n\r\n\treturn {\r\n\t\tposition,\r\n\t\tisDragging,\r\n\t\tdragRef,\r\n\t\thandleMouseDown,\r\n\t\thandleTouchStart,\r\n\t};\r\n}\r\n","// micController.ts\r\n\r\nexport type MicController = {\r\n\tstart: () => Promise<void>;\r\n\tstop: () => void;\r\n\tmute: () => void;\r\n\tunmute: () => void;\r\n\ttoggleMute: () => void;\r\n\tisMuted: () => boolean;\r\n\tgetStream: () => MediaStream | null;\r\n};\r\n\r\nexport function createMicController(\r\n\tconstraints: MediaStreamConstraints = { audio: true }\r\n): MicController {\r\n\tlet stream: MediaStream | null = null;\r\n\tlet muted = false;\r\n\r\n\tasync function start() {\r\n\t\tif (stream) return; // already started\r\n\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\r\n\t\t// default: unmuted\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = true));\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction setEnabled(enabled: boolean) {\r\n\t\tif (!stream) return;\r\n\t\tstream.getAudioTracks().forEach((track) => (track.enabled = enabled));\r\n\t\tmuted = !enabled;\r\n\t}\r\n\r\n\tfunction mute() {\r\n\t\tsetEnabled(false);\r\n\t}\r\n\r\n\tfunction unmute() {\r\n\t\tsetEnabled(true);\r\n\t}\r\n\r\n\tfunction toggleMute() {\r\n\t\tif (muted) {\r\n\t\t\tunmute();\r\n\t\t} else {\r\n\t\t\tmute();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction stop() {\r\n\t\tif (!stream) return;\r\n\t\tstream.getTracks().forEach((t) => t.stop());\r\n\t\tstream = null;\r\n\t\tmuted = false;\r\n\t}\r\n\r\n\tfunction isMuted() {\r\n\t\treturn muted;\r\n\t}\r\n\r\n\tfunction getStream() {\r\n\t\treturn stream;\r\n\t}\r\n\r\n\treturn {\r\n\t\tstart,\r\n\t\tstop,\r\n\t\tmute,\r\n\t\tunmute,\r\n\t\ttoggleMute,\r\n\t\tisMuted,\r\n\t\tgetStream,\r\n\t};\r\n}\r\n","/**\r\n * Audio loader utility for handling MP3 files as buffers/blobs\r\n * This ensures the audio works correctly in bundled npm packages\r\n */\r\n\r\n// Import the MP3 file - bundler will handle this\r\n// @ts-ignore - MP3 module declaration\r\nimport incomingRingtoneUrl from \"../ringtones/incoming.mp3\";\r\n\r\nlet audioBlobUrl: string | null = null;\r\nlet audioBuffer: ArrayBuffer | null = null;\r\n\r\n/**\r\n * Loads the audio file as a blob URL for reliable playback\r\n * @returns Promise<string> - Blob URL or direct URL for the audio file\r\n */\r\nexport async function loadAudioAsBlob(): Promise<string> {\r\n\tif (audioBlobUrl) {\r\n\t\treturn audioBlobUrl;\r\n\t}\r\n\r\n\t// If the URL is already a data URL or absolute URL, use it directly\r\n\tif (\r\n\t\tincomingRingtoneUrl.startsWith(\"data:\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"http://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"https://\") ||\r\n\t\tincomingRingtoneUrl.startsWith(\"blob:\")\r\n\t) {\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Try to fetch and convert to blob URL\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`HTTP ${response.status}: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\tconst blob = await response.blob();\r\n\r\n\t\t// Verify it's a valid blob\r\n\t\tif (blob.size === 0) {\r\n\t\t\tthrow new Error(\"Empty blob\");\r\n\t\t}\r\n\r\n\t\taudioBlobUrl = URL.createObjectURL(blob);\r\n\t\treturn audioBlobUrl;\r\n\t} catch (error) {\r\n\t\t// If fetch fails, the bundler may have already processed the URL\r\n\t\t// Return the original URL - it should work if tsup processed it correctly\r\n\t\tconsole.error(\"Could not create blob URL, using direct URL:\", error);\r\n\t\treturn incomingRingtoneUrl;\r\n\t}\r\n}\r\n\r\n/**\r\n * Loads the audio file as an ArrayBuffer\r\n * @returns Promise<ArrayBuffer> - Audio file as buffer\r\n */\r\nexport async function loadAudioAsBuffer(): Promise<ArrayBuffer> {\r\n\tif (audioBuffer) {\r\n\t\treturn audioBuffer;\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(incomingRingtoneUrl);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Failed to load audio: ${response.statusText}`);\r\n\t\t}\r\n\r\n\t\taudioBuffer = await response.arrayBuffer();\r\n\t\treturn audioBuffer;\r\n\t} catch (error) {\r\n\t\tconsole.error(\"Error loading audio as buffer:\", error);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\n/**\r\n * Creates an Audio element from the blob URL\r\n * @returns Promise<HTMLAudioElement> - Audio element ready to play\r\n */\r\nexport async function createAudioElement(): Promise<HTMLAudioElement> {\r\n\tconst audio = new Audio();\r\n\r\n\t// Set up audio properties before setting source\r\n\taudio.loop = true;\r\n\taudio.volume = 0.7;\r\n\taudio.preload = \"auto\";\r\n\r\n\t// Try multiple approaches to load the audio\r\n\tlet audioUrl: string = \"\";\r\n\r\n\t// First, try to get blob URL\r\n\ttry {\r\n\t\taudioUrl = await loadAudioAsBlob();\r\n\t} catch (error) {\r\n\t\tconsole.warn(\"Failed to load audio as blob, trying direct URL:\", error);\r\n\t\taudioUrl = incomingRingtoneUrl;\r\n\t}\r\n\r\n\t// Set up error handling with retry logic\r\n\tconst tryLoadAudio = async (url: string): Promise<boolean> => {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst checkCanPlay = () => {\r\n\t\t\t\t// Check if audio can play\r\n\t\t\t\tconst canPlay = audio.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\r\n\t\t\t\tif (canPlay) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check for errors\r\n\t\t\t\tif (audio.error) {\r\n\t\t\t\t\tresolve(false);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Wait a bit and check again\r\n\t\t\t\tsetTimeout(checkCanPlay, 100);\r\n\t\t\t};\r\n\r\n\t\t\taudio.addEventListener(\"canplay\", () => resolve(true), { once: true });\r\n\t\t\taudio.addEventListener(\"error\", () => resolve(false), { once: true });\r\n\t\t\taudio.src = url;\r\n\t\t\taudio.load();\r\n\r\n\t\t\t// Timeout after 2 seconds\r\n\t\t\tsetTimeout(() => resolve(false), 2000);\r\n\t\t});\r\n\t};\r\n\r\n\t// Try loading with the primary URL\r\n\tlet loaded = await tryLoadAudio(audioUrl);\r\n\r\n\t// If that fails, try the original import URL directly\r\n\tif (!loaded && audioUrl !== incomingRingtoneUrl) {\r\n\t\tloaded = await tryLoadAudio(incomingRingtoneUrl);\r\n\t\tif (loaded) {\r\n\t\t\taudioUrl = incomingRingtoneUrl;\r\n\t\t}\r\n\t}\r\n\r\n\treturn audio;\r\n}\r\n\r\n/**\r\n * Cleanup function to revoke blob URLs and free memory\r\n */\r\nexport function cleanupAudioResources(): void {\r\n\tif (audioBlobUrl) {\r\n\t\tURL.revokeObjectURL(audioBlobUrl);\r\n\t\taudioBlobUrl = null;\r\n\t}\r\n\taudioBuffer = null;\r\n}\r\n\r\n/**\r\n * Get the audio URL (blob URL or fallback to direct URL)\r\n * @returns string - Audio URL\r\n */\r\nexport function getAudioUrl(): string {\r\n\treturn audioBlobUrl || incomingRingtoneUrl;\r\n}\r\n","import React from \"react\";\r\nimport { SDKPermissionGuard } from \"../components/SDKPermissionGuard\";\r\nimport { SDK_MENU_CODES } from \"../permissions\";\r\n\r\n// ─── helper ──────────────────────────────────────────────────────────────────\r\n\r\nfunction withGuard(\r\n\tmenuCodes: string | string[],\r\n\tloader: () => Promise<{ default: React.FC<any> }>,\r\n): React.LazyExoticComponent<React.FC<any>> {\r\n\treturn React.lazy(async () => {\r\n\t\tconst mod = await loader();\r\n\t\tconst Page = mod.default;\r\n\t\tconst Guarded: React.FC<any> = (props) => (\r\n\t\t\t<SDKPermissionGuard menuFeature={menuCodes}>\r\n\t\t\t\t<Page {...props} />\r\n\t\t\t</SDKPermissionGuard>\r\n\t\t);\r\n\t\treturn { default: Guarded };\r\n\t});\r\n}\r\n\r\n// ─── page list ────────────────────────────────────────────────────────────────\r\n// Add new SDK pages here — one entry per page, guard is applied automatically.\r\n\r\nexport const SDKPages = {\r\n\tCallHistory: withGuard(SDK_MENU_CODES.CALL_HISTORY, () => import(\"./callHistory\")),\r\n\tCampaigns: withGuard(SDK_MENU_CODES.CAMPAIGNS, () => import(\"./campaigns\")),\r\n\tLoginReport: withGuard(SDK_MENU_CODES.LOGIN_REPORT, () => import(\"./loginReport\")),\r\n\tCdrReports: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./cdrReport\")),\r\n\tAuditReportPage: withGuard(SDK_MENU_CODES.CDR_REPORT, () => import(\"./auditReport\")),\r\n\tAgentPerformanceReport: withGuard(SDK_MENU_CODES.AGENT_PERFORMANCE_REPORT, () => import(\"./agentPerformanceReport\")),\r\n\tAgentDetailReport: withGuard(SDK_MENU_CODES.AGENT_DETAIL_REPORT, () => import(\"./agentDetailReport\")),\r\n\tLiveStatus: withGuard(SDK_MENU_CODES.LIVE_STATUS, () => import(\"./liveStatus\")),\r\n\tManagementDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./managementDashboard\")),\r\n\tCaroVoiceAI: withGuard(SDK_MENU_CODES.CARO_VOICE_AI, () => import(\"./caroVoiceAI\")),\r\n\tQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./qualityAuditDashboard\")),\r\n\tCaroQualityAuditDashboard: withGuard(SDK_MENU_CODES.MANAGEMENT_DASHBOARD, () => import(\"./caroQualityAuditDashboard\"))\r\n} as const;\r\n","import { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport axiosInstance from \"../services/axios\";\r\n\r\nimport { sdkStateManager } from \"./sdk-state\";\r\nimport { getSession } from \"@react-solutions/vault\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport interface UseClickToConferenceReturn {\r\n handleStartConferenceCall: (payload: ConferenceCallPayload) => Promise<any>;\r\n isLoading: boolean;\r\n isSuccess: boolean;\r\n isError: boolean;\r\n error: any;\r\n data: any;\r\n}\r\n\r\nexport const useClickToConference = (): UseClickToConferenceReturn => {\r\n const [loading, setLoading] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState<any>(null);\r\n const [data, setData] = useState<any>(null);\r\n\r\n // Track the line we dialed so we can watch for its socket update\r\n const pendingLineRef = useRef<number | null>(null);\r\n // Track the last seen conference state to detect changes\r\n const prevConferenceRef = useRef<any[]>([]);\r\n\r\n useEffect(() => {\r\n if (pendingLineRef.current === null) return;\r\n\r\n const unsubscribe = sdkStateManager.subscribe(() => {\r\n const state = sdkStateManager.getState();\r\n const targetLine = pendingLineRef.current;\r\n\r\n if (targetLine === null) return;\r\n\r\n const line = (state.conferenceLine as any[])?.find(\r\n (l) => l.line === targetLine,\r\n );\r\n\r\n // Socket has updated the line away from IDLE — conference is live\r\n if (line && line.status !== \"IDLE\") {\r\n pendingLineRef.current = null;\r\n prevConferenceRef.current = [];\r\n sdkStateManager.setOpenConferenceDialog(true);\r\n }\r\n });\r\n\r\n return unsubscribe;\r\n }, [loading]);\r\n\r\n const handleStartConferenceCall = useCallback(\r\n async (payload: ConferenceCallPayload): Promise<any> => {\r\n const state = getSession(STORAGE_KEY) as any;\r\n\r\n if (state?.callData?.status !== \"ONCALL\") {\r\n const msg = \"Conference call requires an active call (ONCALL status)\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find(\r\n (l: any) => l.line === payload.lineNumber,\r\n )\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n const msg = \"No available conference line found\";\r\n setIsError(true);\r\n setError(new Error(msg));\r\n throw new Error(msg);\r\n }\r\n\r\n const requestPayload = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n setLoading(true);\r\n setIsError(false);\r\n setError(null);\r\n setSuccess(false);\r\n\r\n // Record which line we are waiting on so the subscriber can watch it\r\n pendingLineRef.current = availableLine.line;\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, requestPayload)\r\n .then((res) => {\r\n setData(res?.data);\r\n setSuccess(true);\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n pendingLineRef.current = null;\r\n setIsError(true);\r\n setError(err);\r\n return err?.response?.data;\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n },\r\n [],\r\n );\r\n\r\n return {\r\n handleStartConferenceCall,\r\n isLoading: loading,\r\n isSuccess: success,\r\n isError,\r\n error,\r\n data,\r\n };\r\n};\r\n","import { removeSession } from \"@react-solutions/vault\";\r\n\r\nimport axiosInstance from \"../services/axios\";\r\nimport { END_POINT } from \"../services/endPoint\";\r\nimport { sdkStateManager } from \"../hooks/sdk-state\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport type { EndCallPayload } from \"../hooks/useEndCall\";\r\n\r\n// ─── Types ────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StartCallPayload {\r\n mobileNumber: string;\r\n user?: string;\r\n auto_answer?: boolean;\r\n call_id?: string;\r\n reference_id?: string;\r\n call_source?: string;\r\n caseId?: string;\r\n isWrapup?: boolean;\r\n parentCallUuid?: string;\r\n}\r\n\r\nexport interface ConferenceCallPayload {\r\n mobileNumber: string;\r\n lineNumber?: number;\r\n}\r\n\r\nexport type { EndCallPayload };\r\n\r\nexport type SupervisorMonitorMode = \"listen\" | \"whisper\" | \"barge\";\r\n\r\nexport interface StartMonitoringPayload {\r\n call_id: string;\r\n mode: SupervisorMonitorMode;\r\n supervisor_extension?: string;\r\n agent_extension?: string;\r\n}\r\n\r\nexport interface StopMonitoringPayload {\r\n call_uuid: string;\r\n session_id?: string;\r\n}\r\n\r\nexport interface ChangeModePayload {\r\n call_uuid: string;\r\n mode: SupervisorMonitorMode;\r\n session_id?: string;\r\n}\r\n\r\n// ─── Actions ──────────────────────────────────────────────────────────────────\r\n\r\nexport function clickToCall(payload: StartCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"IDLE\" && state?.callData?.status !== \"ONCALL\"){\r\n // return Promise.reject(new Error(\"Agent is not ready\"));\r\n // }\r\n\r\n const body = {\r\n phone_number: payload.mobileNumber,\r\n user: payload.user ?? state?.agentId ?? \"\",\r\n auto_answer: payload.auto_answer ?? false,\r\n call_id: payload.call_id ?? state?.callData?.call_id ?? \"\",\r\n reference_id: payload.reference_id ?? \"\",\r\n call_source: payload.call_source ?? \"\",\r\n caseId: payload.caseId ?? \"\",\r\n isWrapup: payload.isWrapup ?? false,\r\n parentCallUuid: payload.parentCallUuid ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CLICK_TO_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.resetConferenceLines(); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n \r\n}\r\n\r\nexport function clickToConference(payload: ConferenceCallPayload): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n // if (state?.callData?.status !== \"ONCALL\") {\r\n // return Promise.reject(new Error(\"Conference call requires an active call (ONCALL status)\"));\r\n // }\r\n\r\n const availableLine =\r\n payload.lineNumber != null\r\n ? state?.conferenceLine?.find((l: any) => l.line === payload.lineNumber)\r\n : state?.conferenceLine\r\n ?.filter((l: any) => l.line !== 1)\r\n ?.find((l: any) => l.status === \"IDLE\" && !l?.isCallStart);\r\n\r\n if (!availableLine) {\r\n return Promise.reject(new Error(\"No available conference line found\"));\r\n }\r\n\r\n const body = {\r\n action: \"EXTERNAL_CONFERENCE\",\r\n operation: `CALL${availableLine.line}`,\r\n target: payload.mobileNumber,\r\n line_number: Number(availableLine.line),\r\n userid: state.agentId,\r\n process: state.callData?.process_name ?? \"\",\r\n };\r\n\r\n return axiosInstance\r\n .post(END_POINT.CONFERENCE_CALL, body)\r\n .then((res) => {\r\n try { sdkStateManager.setOpenConferenceDialog(true); } catch (_) {}\r\n return res.data;\r\n })\r\n .catch((err) => {\r\n return err?.response?.data;\r\n });\r\n}\r\n\r\nexport async function endCall(options: EndCallPayload = {}): Promise<any> {\r\n const state = sdkStateManager.getState() as any;\r\n\r\n const body = {\r\n call_id: options.call_id ?? state?.callData?.call_id ?? \"\",\r\n agent_id: options.agent_id ?? state?.agentId ?? \"\",\r\n set_followUp: options.set_followUp ?? \"N\",\r\n callback_date: options.callback_date ?? \"\",\r\n callback_hrs: options.callback_hrs ?? 0,\r\n callback_mins: options.callback_mins ?? 0,\r\n mobile_number: options.mobile_number ?? state?.callData?.phone_number ?? \"\",\r\n list_comments: options.list_comments ?? \"\",\r\n call_reference_id: options.call_reference_id ?? state?.callData?.call_id ?? \"\",\r\n is_mark_as_break: options.is_mark_as_break ?? false,\r\n disposition: options.disposition ?? \"RES\",\r\n line_number: options.line_number ?? 0,\r\n reason: options.reason ?? \"normal\",\r\n };\r\n\r\n const res = await axiosInstance.post(END_POINT.END_CALL, body);\r\n sdkStateManager.resetConferenceLines();\r\n sdkStateManager.endCall();\r\n return res.data;\r\n}\r\n\r\nexport async function logout(): Promise<void> {\r\n let logoutError: Error | undefined;\r\n\r\n try {\r\n await axiosInstance.post(END_POINT.AUTH_LOGOUT);\r\n } catch (err: any) {\r\n logoutError = new Error(err?.response?.data?.message || \"Logout failed. Please try again.\");\r\n } finally {\r\n sdkStateManager.clearStorageAndReset();\r\n removeSession(STORAGE_KEY);\r\n }\r\n\r\n if (logoutError) throw logoutError;\r\n}\r\n\r\nexport async function startMonitoring(payload: StartMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LISTEN, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function stopMonitoring(payload: StopMonitoringPayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_LEAVE, payload);\r\n return res.data;\r\n}\r\n\r\nexport async function changeMonitorMode(payload: ChangeModePayload): Promise<any> {\r\n const res = await axiosInstance.post(END_POINT.SUPERVISOR_CALL_CHANGE_MODE, payload);\r\n return res.data;\r\n}\r\n\r\n/**\r\n * Set lead data that will be attached as `lead_data` in the transfer API payload.\r\n * Call this whenever the lead details change in the host application.\r\n *\r\n * @example\r\n * setTransferLeadData({ lead_id: 123, customer_name: 'John' });\r\n */\r\nexport function setTransferLeadData(data: any): void {\r\n sdkStateManager.setTransferLeadData(data);\r\n}\r\n","import { eventTracker } from \"./lib/hooks/eventsTracker\";\r\nimport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\nimport { useLogout } from \"./lib/hooks/useLogout\";\r\nimport { useEndCall } from \"./lib/hooks/useEndCall\";\r\nimport { SDKConfig, URLConfig } from \"./types\";\r\nimport { useClickToCall } from \"./lib/hooks/useClickToCall\";\r\nimport { useGetCallerData } from \"./lib/hooks/useGetCallerData\";\r\nimport { useGetAuthorizationToken } from \"./lib/hooks/useGetAuthorizationToken\";\r\nimport { useSDKState } from \"./lib/hooks/useSDKState\";\r\nimport { useCallMonitoring } from \"./lib/hooks/useCallMonitoring\";\r\nimport {\r\n SDK_PERMISSIONS,\r\n SDK_MENU_CODES,\r\n SDK_WILDCARD,\r\n type SDKPermissionState,\r\n type ControlsFromPermissions,\r\n type SDKPermissionContextValue,\r\n} from \"./lib/permissions\";\r\n\r\nexport { CallControlPanel } from \"./lib/components/callControlPanel\";\r\nexport { SDKPages } from \"./lib/pages\";\r\nexport {\r\n setAuditReportUrlResolver,\r\n type AuditReportUrlResolver,\r\n} from \"./lib/pages/common/components/AuditReport\";\r\nexport { SDKPermissionGuard } from \"./lib/components/SDKPermissionGuard\";\r\nexport { SDKAccessDenied } from \"./lib/components/SDKAccessDenied\";\r\nexport { useSDKPermissions } from \"./lib/hooks/useSDKPermissions\";\r\nexport type { SDKPermissionsHook } from \"./lib/hooks/useSDKPermissions\";\r\n\r\nexport type { CallControlPanelProps, CallData, SDKConfig } from \"./types\";\r\nexport type {\r\n SDKPermissionState,\r\n ControlsFromPermissions,\r\n SDKPermissionContextValue,\r\n};\r\n\r\ninterface InitSDKParams {\r\n apiKey: string;\r\n tenantId: string;\r\n agentId: string;\r\n sessionId?: string;\r\n sdkConfig?: SDKConfig;\r\n urlConfig?: URLConfig;\r\n}\r\n\r\nexport interface SDKInitResult {\r\n accessToken: string;\r\n expiration: string;\r\n ticketId: string;\r\n callControls: any;\r\n userInfo: any;\r\n}\r\n\r\nexport async function initSDK({\r\n apiKey,\r\n tenantId,\r\n agentId,\r\n sdkConfig,\r\n urlConfig,\r\n}: InitSDKParams): Promise<SDKInitResult> {\r\n if (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: API key is required\");\r\n }\r\n\r\n if (\r\n !tenantId ||\r\n typeof tenantId !== \"string\" ||\r\n tenantId.trim().length === 0\r\n ) {\r\n throw new Error(\"SDK initialization failed: Tenant ID is required\");\r\n }\r\n\r\n if (!agentId || typeof agentId !== \"string\" || agentId.trim().length === 0) {\r\n throw new Error(\"SDK initialization failed: Agent ID is required\");\r\n }\r\n\r\n try {\r\n const initResult = await eventTracker.init({\r\n apiKey: apiKey.trim(),\r\n tenantId: tenantId.trim(),\r\n agentId: agentId.trim(),\r\n password: urlConfig?.password,\r\n accessToken: urlConfig?.accessToken,\r\n baseUrl: urlConfig?.coreBaseURL,\r\n });\r\n\r\n if (!initResult) {\r\n sdkStateManager.setInitCheck();\r\n throw new Error(\"SDK initialization failed\");\r\n }\r\n\r\n // To store all permissions,sdk & menus from init api response to STATE\r\n if (initResult.userInfo) {\r\n sdkStateManager.setSDKPermissions(initResult.userInfo);\r\n }\r\n\r\n // using stored permissions from response determining which items enables ONLY IN callcontrolpanel (hold,transfer)\r\n const permissionControlsConfig = sdkStateManager.getControlsConfig();\r\n\r\n // Remaining enalblement controls spreaded here along with callcontrolpanel controls\r\n // Combined to single control config\r\n const callcontrolConfig = {\r\n ...(initResult.callControls || {}),\r\n ...permissionControlsConfig,\r\n ...(sdkConfig || {}),\r\n // sdkPosition: 'vertical'\r\n };\r\n\r\n const res = {\r\n accessToken: initResult.accessToken,\r\n expiration: initResult.expiration,\r\n ticketId: initResult.ticketId,\r\n callControls: callcontrolConfig,\r\n userInfo: initResult.userInfo,\r\n };\r\n\r\n console.info(\"SDK initialized successfully\");\r\n\r\n sdkStateManager.initialize(\r\n apiKey.trim(),\r\n tenantId.trim(),\r\n agentId.trim(),\r\n urlConfig,\r\n res,\r\n callcontrolConfig,\r\n initResult.callControls,\r\n );\r\n\r\n return res;\r\n } catch (error) {\r\n sdkStateManager.setInitCheck();\r\n\r\n if (error instanceof Error) {\r\n throw error;\r\n }\r\n\r\n throw new Error(`SDK initialization failed: ${String(error)}`);\r\n }\r\n}\r\n\r\nexport function getSDKVersion(): string {\r\n return \"6.x.x\";\r\n}\r\n\r\nexport function isSDKInitialized(): boolean {\r\n return sdkStateManager.getState().isInitialized;\r\n}\r\n\r\nexport {\r\n useLogout,\r\n useEndCall,\r\n useClickToCall,\r\n useGetCallerData,\r\n useGetAuthorizationToken,\r\n useSDKState,\r\n useCallMonitoring,\r\n};\r\nexport type { UseClickToCallReturn, CallInitiationFunction, StartCalltHookStateTypes } from \"./lib/hooks/useClickToCall\";\r\nexport type { UseEndCallReturn, HookStateTypes, CallTerminationFunction } from \"./lib/hooks/useEndCall\";\r\nexport type { UseLogoutReturn, LogoutFunction, LogoutHookStateTypes } from \"./lib/hooks/useLogout\";\r\nexport { useClickToConference } from \"./lib/hooks/useClickToConference\";\r\nexport type { UseClickToConferenceReturn, ConferenceCallPayload as ConferenceCallHookPayload } from \"./lib/hooks/useClickToConference\";\r\n\r\nexport { sdkStateManager } from \"./lib/hooks/sdk-state\";\r\n\r\nexport {\r\n clickToCall,\r\n clickToConference,\r\n endCall,\r\n logout,\r\n startMonitoring,\r\n stopMonitoring,\r\n changeMonitorMode,\r\n setTransferLeadData,\r\n} from \"./lib/angular-services\";\r\nexport type {\r\n StartCallPayload,\r\n ConferenceCallPayload,\r\n EndCallPayload,\r\n SupervisorMonitorMode,\r\n StartMonitoringPayload,\r\n StopMonitoringPayload,\r\n ChangeModePayload,\r\n} from \"./lib/angular-services\";\r\n\r\nexport type {\r\n UseCallMonitoringReturn,\r\n} from \"./lib/hooks/useCallMonitoring\";\r\n\r\n// Entitlement exports\r\nexport { SDK_PERMISSIONS, SDK_MENU_CODES, SDK_WILDCARD };\r\n"],"mappings":"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","names":["useCallback","useState","useState","useCallback","data","_a","useCallback","useState","getSession","useState","useCallback","data","getSession","_a","useState","useState","useState","useEffect","useState","useEffect","useCallback","CallEnd","Close","Pause","PlayArrow","SupportAgent","TransferWithinAStation","Upcoming","Box","Button","CircularProgress","IconButton","Menu","MenuItem","Paper","TextField","Tooltip","Typography","useTheme","useEffect","useRef","useState","useTheme","useEffect","useState","useCallback","useCallback","useTheme","useState","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","useEffect","useCallback","useState","getSession","Fragment","jsx","jsxs","useTheme","useRef","useState","clickToCall","endCall","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","useEffect","_o","_p","_q","_r","_s","_t","getSession","isOnHold","isMuted","Box","Paper","IconButton","Tooltip","Button","Typography","Pause","CircularProgress","SupportAgent","PlayArrow","TransferWithinAStation","CallEnd","Close","Menu","TextField","MenuItem","Upcoming","jsx","useCallback","React","jsx","React","useCallback","useEffect","useRef","useState","getSession","useState","useRef","useEffect","useCallback","getSession","_a","removeSession","_a","removeSession"]}