ahs-cti 1.0.2-beta.1 → 1.0.2-beta.3

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 (28) hide show
  1. package/dist/{agentDetailReport-2Z5I7XNO.mjs → agentDetailReport-EXJZOAWB.mjs} +3 -3
  2. package/dist/{agentPerformanceReport-XVYNBFXB.mjs → agentPerformanceReport-WJEQKLIL.mjs} +5 -5
  3. package/dist/{callHistory-RFHCXVJA.mjs → callHistory-PJV7ZX3R.mjs} +2 -2
  4. package/dist/{campaigns-KUDBCYHP.mjs → campaigns-UMAMUUDZ.mjs} +4 -4
  5. package/dist/{cdrReport-ZSITXXEP.mjs → cdrReport-4DLCPYQ4.mjs} +4 -4
  6. package/dist/{chunk-DRD72WVS.mjs → chunk-3SHCNPBA.mjs} +2 -2
  7. package/dist/{chunk-MR7Z44GR.mjs → chunk-APYLQRX7.mjs} +2 -2
  8. package/dist/{chunk-XIRHJLJS.mjs → chunk-HADAFS7N.mjs} +2 -2
  9. package/dist/{chunk-JGYXK7TO.mjs → chunk-KNTFDU2K.mjs} +2 -2
  10. package/dist/{chunk-WROV2G6D.mjs → chunk-NDBIVYJT.mjs} +4 -1
  11. package/dist/chunk-NDBIVYJT.mjs.map +1 -0
  12. package/dist/index.js +74 -40
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +80 -49
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/{loginReport-FPRGQUEF.mjs → loginReport-JTW2KEUN.mjs} +4 -4
  17. package/package.json +7 -7
  18. package/dist/chunk-WROV2G6D.mjs.map +0 -1
  19. /package/dist/{agentDetailReport-2Z5I7XNO.mjs.map → agentDetailReport-EXJZOAWB.mjs.map} +0 -0
  20. /package/dist/{agentPerformanceReport-XVYNBFXB.mjs.map → agentPerformanceReport-WJEQKLIL.mjs.map} +0 -0
  21. /package/dist/{callHistory-RFHCXVJA.mjs.map → callHistory-PJV7ZX3R.mjs.map} +0 -0
  22. /package/dist/{campaigns-KUDBCYHP.mjs.map → campaigns-UMAMUUDZ.mjs.map} +0 -0
  23. /package/dist/{cdrReport-ZSITXXEP.mjs.map → cdrReport-4DLCPYQ4.mjs.map} +0 -0
  24. /package/dist/{chunk-DRD72WVS.mjs.map → chunk-3SHCNPBA.mjs.map} +0 -0
  25. /package/dist/{chunk-MR7Z44GR.mjs.map → chunk-APYLQRX7.mjs.map} +0 -0
  26. /package/dist/{chunk-XIRHJLJS.mjs.map → chunk-HADAFS7N.mjs.map} +0 -0
  27. /package/dist/{chunk-JGYXK7TO.mjs.map → chunk-KNTFDU2K.mjs.map} +0 -0
  28. /package/dist/{loginReport-FPRGQUEF.mjs.map → loginReport-JTW2KEUN.mjs.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  agentDetailReport_default
3
- } from "./chunk-DRD72WVS.mjs";
3
+ } from "./chunk-3SHCNPBA.mjs";
4
4
  import "./chunk-G5Q2CBVN.mjs";
5
- import "./chunk-WROV2G6D.mjs";
5
+ import "./chunk-NDBIVYJT.mjs";
6
6
  export {
7
7
  agentDetailReport_default as default
8
8
  };
9
- //# sourceMappingURL=agentDetailReport-2Z5I7XNO.mjs.map
9
+ //# sourceMappingURL=agentDetailReport-EXJZOAWB.mjs.map
@@ -4,13 +4,13 @@ import {
4
4
  headCellSx,
5
5
  reportBodyCellSx,
6
6
  sortLabelSx
7
- } from "./chunk-JGYXK7TO.mjs";
7
+ } from "./chunk-KNTFDU2K.mjs";
8
8
  import {
9
9
  SDKPermissionGuard
10
- } from "./chunk-XIRHJLJS.mjs";
10
+ } from "./chunk-HADAFS7N.mjs";
11
11
  import {
12
12
  agentDetailReport_default
13
- } from "./chunk-DRD72WVS.mjs";
13
+ } from "./chunk-3SHCNPBA.mjs";
14
14
  import {
15
15
  AppButton,
16
16
  PageHeader
@@ -22,7 +22,7 @@ import {
22
22
  __spreadProps,
23
23
  __spreadValues,
24
24
  axios_default
25
- } from "./chunk-WROV2G6D.mjs";
25
+ } from "./chunk-NDBIVYJT.mjs";
26
26
 
27
27
  // call-control-sdk/lib/pages/agentPerformanceReport/index.tsx
28
28
  import { useState as useState2, useEffect, useCallback as useCallback2, useMemo } from "react";
@@ -507,4 +507,4 @@ var agentPerformanceReport_default = AgentPerformanceReport;
507
507
  export {
508
508
  agentPerformanceReport_default as default
509
509
  };
510
- //# sourceMappingURL=agentPerformanceReport-XVYNBFXB.mjs.map
510
+ //# sourceMappingURL=agentPerformanceReport-WJEQKLIL.mjs.map
@@ -8,7 +8,7 @@ import {
8
8
  __spreadValues,
9
9
  axios_default,
10
10
  useToast
11
- } from "./chunk-WROV2G6D.mjs";
11
+ } from "./chunk-NDBIVYJT.mjs";
12
12
 
13
13
  // call-control-sdk/lib/pages/callHistory/index.tsx
14
14
  import { memo, useEffect, useState as useState2 } from "react";
@@ -361,4 +361,4 @@ var callHistory_default = CallHistory;
361
361
  export {
362
362
  callHistory_default as default
363
363
  };
364
- //# sourceMappingURL=callHistory-RFHCXVJA.mjs.map
364
+ //# sourceMappingURL=callHistory-PJV7ZX3R.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  useGetCallerData
3
- } from "./chunk-MR7Z44GR.mjs";
3
+ } from "./chunk-APYLQRX7.mjs";
4
4
  import {
5
5
  SDKPageHeader
6
6
  } from "./chunk-I5VT6XXH.mjs";
7
7
  import {
8
8
  SDKPermissionGuard,
9
9
  useSDKPermissions
10
- } from "./chunk-XIRHJLJS.mjs";
10
+ } from "./chunk-HADAFS7N.mjs";
11
11
  import {
12
12
  END_POINT,
13
13
  SDKProvider,
@@ -16,7 +16,7 @@ import {
16
16
  __spreadValues,
17
17
  axios_default,
18
18
  useToast
19
- } from "./chunk-WROV2G6D.mjs";
19
+ } from "./chunk-NDBIVYJT.mjs";
20
20
 
21
21
  // call-control-sdk/lib/pages/campaigns/index.tsx
22
22
  import { memo, useCallback as useCallback2, useEffect, useRef, useState as useState2 } from "react";
@@ -2749,4 +2749,4 @@ var campaigns_default = Campaigns;
2749
2749
  export {
2750
2750
  campaigns_default as default
2751
2751
  };
2752
- //# sourceMappingURL=campaigns-KUDBCYHP.mjs.map
2752
+ //# sourceMappingURL=campaigns-UMAMUUDZ.mjs.map
@@ -2,10 +2,10 @@ import {
2
2
  ReportFilterBar,
3
3
  SearchBar,
4
4
  headCellSx
5
- } from "./chunk-JGYXK7TO.mjs";
5
+ } from "./chunk-KNTFDU2K.mjs";
6
6
  import {
7
7
  SDKPermissionGuard
8
- } from "./chunk-XIRHJLJS.mjs";
8
+ } from "./chunk-HADAFS7N.mjs";
9
9
  import {
10
10
  AppButton,
11
11
  PageHeader
@@ -17,7 +17,7 @@ import {
17
17
  __spreadProps,
18
18
  __spreadValues,
19
19
  axios_default
20
- } from "./chunk-WROV2G6D.mjs";
20
+ } from "./chunk-NDBIVYJT.mjs";
21
21
 
22
22
  // call-control-sdk/lib/pages/cdrReport/index.tsx
23
23
  import { useCallback as useCallback2, useEffect, useMemo, useRef, useState as useState2 } from "react";
@@ -544,4 +544,4 @@ var cdrReport_default = CdrReport;
544
544
  export {
545
545
  cdrReport_default as default
546
546
  };
547
- //# sourceMappingURL=cdrReport-ZSITXXEP.mjs.map
547
+ //# sourceMappingURL=cdrReport-4DLCPYQ4.mjs.map
@@ -9,7 +9,7 @@ import {
9
9
  __spreadValues,
10
10
  axios_default,
11
11
  sdkStateManager
12
- } from "./chunk-WROV2G6D.mjs";
12
+ } from "./chunk-NDBIVYJT.mjs";
13
13
 
14
14
  // call-control-sdk/lib/pages/agentDetailReport/index.tsx
15
15
  import { useState as useState2, useEffect, useMemo, useCallback as useCallback2 } from "react";
@@ -739,4 +739,4 @@ var agentDetailReport_default = AgentDetailReport;
739
739
  export {
740
740
  agentDetailReport_default
741
741
  };
742
- //# sourceMappingURL=chunk-DRD72WVS.mjs.map
742
+ //# sourceMappingURL=chunk-3SHCNPBA.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sdkStateManager
3
- } from "./chunk-WROV2G6D.mjs";
3
+ } from "./chunk-NDBIVYJT.mjs";
4
4
 
5
5
  // call-control-sdk/lib/hooks/useGetCallerData.ts
6
6
  import { useState, useEffect } from "react";
@@ -46,4 +46,4 @@ var useGetCallerData = () => {
46
46
  export {
47
47
  useGetCallerData
48
48
  };
49
- //# sourceMappingURL=chunk-MR7Z44GR.mjs.map
49
+ //# sourceMappingURL=chunk-APYLQRX7.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sdkStateManager
3
- } from "./chunk-WROV2G6D.mjs";
3
+ } from "./chunk-NDBIVYJT.mjs";
4
4
 
5
5
  // call-control-sdk/lib/hooks/useSDKPermissions.ts
6
6
  import { useState, useEffect, useCallback } from "react";
@@ -141,4 +141,4 @@ export {
141
141
  SDKAccessDenied,
142
142
  SDKPermissionGuard
143
143
  };
144
- //# sourceMappingURL=chunk-XIRHJLJS.mjs.map
144
+ //# sourceMappingURL=chunk-HADAFS7N.mjs.map
@@ -6,7 +6,7 @@ import {
6
6
  __spreadProps,
7
7
  __spreadValues,
8
8
  axios_default
9
- } from "./chunk-WROV2G6D.mjs";
9
+ } from "./chunk-NDBIVYJT.mjs";
10
10
 
11
11
  // call-control-sdk/lib/pages/common/components/SearchBar.tsx
12
12
  import { TextField, InputAdornment, IconButton } from "@mui/material";
@@ -483,4 +483,4 @@ export {
483
483
  sortLabelSx,
484
484
  reportBodyCellSx
485
485
  };
486
- //# sourceMappingURL=chunk-JGYXK7TO.mjs.map
486
+ //# sourceMappingURL=chunk-KNTFDU2K.mjs.map
@@ -387,6 +387,9 @@ var SDKStateManager = class {
387
387
  var _a2;
388
388
  return (_a2 = this.transferLeadDataProvider) == null ? void 0 : _a2.call(this);
389
389
  }
390
+ clearTransferLeadData() {
391
+ this.transferLeadDataProvider = () => void 0;
392
+ }
390
393
  // public setHolding(isHolding: boolean): void {
391
394
  // this.state.isHolding = isHolding;
392
395
  // this.saveToStorage();
@@ -1047,4 +1050,4 @@ export {
1047
1050
  useToast,
1048
1051
  SDKProvider
1049
1052
  };
1050
- //# sourceMappingURL=chunk-WROV2G6D.mjs.map
1053
+ //# sourceMappingURL=chunk-NDBIVYJT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../call-control-sdk/lib/permissions/sdk-constants.ts","../call-control-sdk/lib/hooks/sdk-state.ts","../call-control-sdk/lib/utils/storage.ts","../call-control-sdk/lib/services/toastMessage.tsx","../call-control-sdk/lib/components/SDKProvider.tsx","../call-control-sdk/lib/services/endPoint.ts","../call-control-sdk/lib/services/axios.ts"],"sourcesContent":["/**\r\n * SDK Permission Constants\r\n *\r\n * Defines permission codes for call control features.\r\n * These codes match the 'items' in the backend entitlements response.\r\n */\r\n\r\nexport const SDK_WILDCARD = \"*\" as const;\r\n\r\n/** Menu entitlement codes from userInfo.entitlements.menus */\r\nexport const SDK_MENU_CODES = {\r\n WILDCARD: SDK_WILDCARD,\r\n CALL_HISTORY: \"call_history\",\r\n CAMPAIGNS: \"dialer_auto\",\r\n LOGIN_REPORT: \"login_report\",\r\n CDR_REPORT: \"cdr_report\",\r\n AGENT_PERFORMANCE_REPORT: \"agent_performance\",\r\n AGENT_DETAIL_REPORT: \"agent_detail\",\r\n} as const;\r\n\r\nexport const SDK_PERMISSIONS = {\r\n WILDCARD: SDK_WILDCARD,\r\n // main object key constants\r\n\r\n CALLS: \"calls\",\r\n CALL_TRANSFER: \"call_transfer\",\r\n CALL_CONFERENCE: \"call_conference\",\r\n\r\n // in each object has items list of objects\r\n\r\n CALL_INBOUND: \"call_inbound\",\r\n CALL_OUTBOUND: \"call_outbound\",\r\n\r\n CONFERENCE: \"call_conference\",\r\n\r\n TRANSFER_BLIND: \"call_transfer_blind\",\r\n TRANSFER_ATTENDED: \"call_transfer_attended\",\r\n TRANSFER_WARM: \"call_transfer_warm\",\r\n\r\n // Campaigns\r\n CAMPAIGNS_CREATE: \"campaigns:create\",\r\n CAMPAIGNS_READ: \"campaigns:read\",\r\n CAMPAIGNS_UPDATE: \"campaigns:update\",\r\n CAMPAIGNS_DELETE: \"campaigns:delete\",\r\n CAMPAIGNS_MANAGE: \"campaigns:manage\",\r\n CAMPAIGNS_CONTROL: \"campaigns:control\",\r\n\r\n // Reports — Agent Login\r\n REPORTS_AGENT_LOGIN_READ: \"reports:agent_login:read\",\r\n REPORTS_AGENT_LOGIN_EXPORT: \"reports:agent_login:export\",\r\n REPORTS_AGENT_LOGIN_MANAGE: \"reports:agent_login:manage\",\r\n\r\n // CDR Report\r\n REPORTS_CDR_READ: \"reports:cdr:read\",\r\n REPORTS_CDR_EXPORT: \"reports:cdr:export\",\r\n REPORTS_CDR_MANAGE: \"reports:cdr:manage\",\r\n\r\n // Reports — Agent Performance / Detail\r\n REPORTS_AGENT_PERFORMANCE_READ: \"reports:agent_performance:read\",\r\n REPORTS_AGENT_PERFORMANCE_EXPORT: \"reports:agent_performance:export\",\r\n REPORTS_AGENT_PERFORMANCE_MANAGE: \"reports:agent_performance:manage\",\r\n} as const;\r\n","import { getSession, removeSession, setSession } from \"@react-solutions/vault\";\r\nimport type {\r\n SDKState,\r\n CallData,\r\n ConferenceLineTypes,\r\n SDKConfig,\r\n InitSDKRes,\r\n URLConfig,\r\n ConsultInfo,\r\n} from \"../../types\";\r\nimport { STORAGE_KEY } from \"../utils/storage\";\r\nimport {\r\n SDK_PERMISSIONS,\r\n type SDKEntitlements,\r\n type ControlsFromPermissions,\r\n SDK_MENU_CODES,\r\n} from \"../permissions\";\r\n\r\nclass SDKStateManager {\r\n private state: SDKState;\r\n private listeners: Array<() => void> = [];\r\n private readonly STORAGE_KEY = STORAGE_KEY;\r\n\r\n private apiKey: string | undefined;\r\n private tenantId: string | undefined;\r\n private transferLeadDataProvider: (() => any) | undefined;\r\n\r\n constructor() {\r\n this.state = this.getInitialState();\r\n this.loadFromStorage();\r\n }\r\n\r\n private getInitialState(): SDKState {\r\n return {\r\n authorization: undefined,\r\n process: null,\r\n agentId: \"\",\r\n openConferenceDialog: false,\r\n openCallTransferDialog: false,\r\n isInitialized: false,\r\n sdkConfig: {\r\n disableEndCallButton: false,\r\n disableEndConference: false,\r\n disabledDialButton: false,\r\n disabledMoreOptionsButton: false,\r\n enableSmsServices: false,\r\n enableQueueName: false,\r\n disableCallTransferButton: false,\r\n disableBlindTransfer: false,\r\n disableAttendedTransfer: false,\r\n disableWarmTransfer: false,\r\n isDraggable: true,\r\n disableSoftPhone: false,\r\n disableConferenceButton: false,\r\n disableHoldButton: false,\r\n disableMuteButton: false,\r\n disableAlternateDialing: true,\r\n disabled: {},\r\n enabled: {},\r\n outlined: {},\r\n },\r\n urlConfig: {\r\n baseURL: \"\",\r\n iframeURL: \"\",\r\n iframeAPIURL: \"\",\r\n webSocketURL: \"\",\r\n coreBaseURL: \"\",\r\n id: \"\",\r\n password: \"\",\r\n },\r\n callStartTime: null,\r\n controlPanelPosition: { x: 10, y: 10 },\r\n iframePosition: {\r\n x: window.screen?.availWidth - 460,\r\n y: window.screen?.height - 580,\r\n },\r\n callData: {\r\n agent_id: -1,\r\n queue_name: \"\",\r\n hold: 0,\r\n mute: 0,\r\n status: \"\",\r\n type: \"\",\r\n event_time: \"\",\r\n phone_number: \"\",\r\n },\r\n conferenceLine: [\r\n {\r\n line: 1,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 2,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 3,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 4,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 5,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n ],\r\n hold: 0,\r\n mute: 0,\r\n agentStatus: \"\",\r\n sdk: null,\r\n isPermissionsLoaded: false,\r\n userPermissions: null,\r\n menuEntitlements: null,\r\n consultInfo: null,\r\n rootCallUuid: null,\r\n backendCallControls: null,\r\n };\r\n }\r\n\r\n private loadFromStorage(): void {\r\n try {\r\n const stored = <SDKState>getSession(this.STORAGE_KEY);\r\n if (stored) {\r\n const parsedState = stored;\r\n this.state = {\r\n ...this.state,\r\n agentId: parsedState.agentId || \"\",\r\n authorization: parsedState.authorization || undefined,\r\n process: parsedState.process || null,\r\n openConferenceDialog: parsedState?.openConferenceDialog || false,\r\n openCallTransferDialog: parsedState?.openCallTransferDialog || false,\r\n isInitialized: parsedState.isInitialized || false,\r\n sdkConfig: parsedState.sdkConfig || {\r\n disableEndCallButton: false,\r\n disableEndConference: false,\r\n disabledMoreOptionsButton: false,\r\n enableSmsServices: false,\r\n enableQueueName: false,\r\n disabledDialButton: false,\r\n disableCallTransferButton: false,\r\n disableBlindTransfer: false,\r\n disableAttendedTransfer: false,\r\n disableWarmTransfer: false,\r\n isDraggable: true,\r\n disableSoftPhone: false,\r\n disableConferenceButton: false,\r\n disableHoldButton: false,\r\n disableMuteButton: false,\r\n disableAlternateDialing: true,\r\n disabled: {},\r\n enabled: {},\r\n outlined: {},\r\n },\r\n urlConfig: parsedState.urlConfig || {\r\n id: \"\",\r\n baseURL: \"\",\r\n iframeURL: \"\",\r\n iframeAPIURL: \"\",\r\n webSocketURL: \"\",\r\n coreBaseURL: \"\",\r\n password: \"\",\r\n },\r\n callStartTime: parsedState.callStartTime || null,\r\n controlPanelPosition: parsedState.controlPanelPosition || {\r\n x: 10,\r\n y: 10,\r\n },\r\n iframePosition: parsedState.iframePosition || {\r\n x: window.screen?.availWidth - 460,\r\n y: window.screen?.height - 580,\r\n },\r\n callData: parsedState.callData || {\r\n mobileNumber: \"\",\r\n callReferenceId: \"\",\r\n agent_id: \"\",\r\n status: \"\",\r\n type: \"\",\r\n event_time: \"\",\r\n phone_number: \"\",\r\n },\r\n conferenceLine:\r\n parsedState.conferenceLine &&\r\n Array.isArray(parsedState.conferenceLine) &&\r\n parsedState.conferenceLine.length > 0\r\n ? parsedState.conferenceLine\r\n : this.state.conferenceLine,\r\n agentStatus: parsedState.agentStatus,\r\n sdk: parsedState.sdk || null,\r\n isPermissionsLoaded: parsedState.isPermissionsLoaded || false,\r\n userPermissions: parsedState.userPermissions || null,\r\n menuEntitlements: parsedState.menuEntitlements || null,\r\n rootCallUuid: parsedState.rootCallUuid ?? null,\r\n };\r\n }\r\n } catch (error) {\r\n console.warn(\"Failed to load SDK state:\", error);\r\n }\r\n }\r\n\r\n private saveToStorage(): void {\r\n try {\r\n const persistentState = {\r\n agentId: this.state.agentId,\r\n authorization: this.state.authorization,\r\n process: this.state.process,\r\n isInitialized: this.state.isInitialized,\r\n openConferenceDialog: this.state.openConferenceDialog,\r\n openCallTransferDialog: this.state.openCallTransferDialog,\r\n sdkConfig: this.state.sdkConfig,\r\n urlConfig: this.state.urlConfig,\r\n callStartTime: this.state.callStartTime,\r\n controlPanelPosition: this.state.controlPanelPosition,\r\n iframePosition: this.state.iframePosition,\r\n callData: this.state.callData,\r\n conferenceLine: this.state.conferenceLine,\r\n agentStatus: this.state.agentStatus,\r\n sdk: this.state.sdk,\r\n isPermissionsLoaded: this.state.isPermissionsLoaded,\r\n userPermissions: this.state.userPermissions,\r\n menuEntitlements: this.state.menuEntitlements,\r\n rootCallUuid: this.state.rootCallUuid,\r\n };\r\n setSession(this.STORAGE_KEY, persistentState);\r\n } catch (error) {\r\n console.warn(\"Failed to save SDK state:\", error);\r\n }\r\n }\r\n\r\n private notifyListeners(): void {\r\n this.listeners.forEach((listener) => listener());\r\n }\r\n\r\n private validateCredentials(apiKey: string, tenantId: string): void {\r\n if (!apiKey || typeof apiKey !== \"string\" || apiKey.trim().length === 0) {\r\n throw new Error(\"API key not available\");\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(\"Tenant ID not available\");\r\n }\r\n this.apiKey = apiKey.trim();\r\n this.tenantId = tenantId.trim();\r\n }\r\n\r\n public initialize(\r\n apiKey: string,\r\n tenantId: string,\r\n agentId: string,\r\n urlConfig?: URLConfig,\r\n initResult?: InitSDKRes,\r\n sdkConfig?: SDKConfig,\r\n rawBackendCallControls?: SDKConfig,\r\n ): void {\r\n this.validateCredentials(apiKey, tenantId);\r\n if (\r\n !agentId ||\r\n typeof agentId !== \"string\" ||\r\n agentId.trim().length === 0\r\n ) {\r\n throw new Error(\"Agent ID not available\");\r\n } else {\r\n this.state.agentId = agentId;\r\n this.state.openConferenceDialog = false;\r\n this.state.openCallTransferDialog = false;\r\n this.state.authorization = initResult;\r\n this.state.backendCallControls = rawBackendCallControls ?? null;\r\n this.state.sdkConfig = {\r\n disableEndCallButton: false,\r\n disableEndConference: false,\r\n disabledDialButton: false,\r\n disabledMoreOptionsButton: false,\r\n enableQueueName: false,\r\n disableCallTransferButton: false,\r\n disableBlindTransfer: false,\r\n disableAttendedTransfer: false,\r\n disableWarmTransfer: false,\r\n isDraggable: true,\r\n disableSoftPhone: false,\r\n disableConferenceButton: false,\r\n disableHoldButton: false,\r\n disableMuteButton: false,\r\n disableAlternateDialing: true,\r\n disabled: {},\r\n enabled: {},\r\n outlined: {},\r\n ...sdkConfig,\r\n ...initResult?.callControls,\r\n };\r\n this.state.urlConfig = {\r\n baseURL: urlConfig?.baseURL || \"\",\r\n iframeURL: urlConfig?.iframeURL || \"\",\r\n iframeAPIURL: urlConfig?.iframeAPIURL || \"\",\r\n webSocketURL: urlConfig?.webSocketURL || \"\",\r\n coreBaseURL: urlConfig?.coreBaseURL || \"\",\r\n id: initResult?.userInfo?.id ? String(initResult.userInfo.id) : \"\",\r\n password: urlConfig?.password || \"\",\r\n };\r\n this.state.isInitialized = true;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n }\r\n\r\n public getState(): SDKState {\r\n return { ...this.state };\r\n }\r\n\r\n public getCredentials(): {\r\n apiKey: string | undefined;\r\n tenantId: string | undefined;\r\n } {\r\n return { apiKey: this.apiKey, tenantId: this.tenantId };\r\n }\r\n public getSdkAuthToken(): string | undefined {\r\n return this.state.authorization?.accessToken;\r\n }\r\n\r\n public subscribe(listener: () => void): () => void {\r\n this.listeners.push(listener);\r\n return () => {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n };\r\n }\r\n\r\n public registerTransferLeadDataProvider(fn: () => any): void {\r\n this.transferLeadDataProvider = fn;\r\n }\r\n\r\n public getTransferLeadData(): any {\r\n return this.transferLeadDataProvider?.();\r\n }\r\n\r\n public clearTransferLeadData(): void {\r\n // Reset provider to return empty so lead_data is omitted on next transfer\r\n this.transferLeadDataProvider = () => undefined;\r\n }\r\n\r\n // public setHolding(isHolding: boolean): void {\r\n // \tthis.state.isHolding = isHolding;\r\n // \tthis.saveToStorage();\r\n // \tthis.notifyListeners();\r\n // }\r\n\r\n // public setMuted(isMuted: boolean): void {\r\n // \tthis.state.isMuted = isMuted;\r\n // \tthis.saveToStorage();\r\n // \tthis.notifyListeners();\r\n // }\r\n\r\n public setProcess(process: {\r\n process_id: number;\r\n process_name: string;\r\n }): void {\r\n this.state.process = process;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setControlPanelPosition(position: { x: number; y: number }): void {\r\n this.state.controlPanelPosition = position;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setIframePosition(position: { x: number; y: number }): void {\r\n this.state.iframePosition = position;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public startCall(): void {\r\n this.state.callStartTime = Date.now();\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public endCall(): void {\r\n this.state.callStartTime = null;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setInitCheck(): void {\r\n this.state.isInitialized = false;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setOpenConferenceDialog(open: boolean): void {\r\n this.state.openConferenceDialog = open;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setOpenCallTransferDialog(open: boolean): void {\r\n this.state.openCallTransferDialog = open;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setConsultInfo(info: ConsultInfo | null): void {\r\n this.state.consultInfo = info;\r\n this.notifyListeners();\r\n }\r\n\r\n public setRootCallUuid(uuid: string | null): void {\r\n this.state.rootCallUuid = uuid;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setAgentStatus(status: string): void {\r\n this.state.agentStatus = status;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public updateCallData(data: Partial<CallData>): void {\r\n this.state.callData = { ...this.state.callData, ...data };\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public updateConferenceData(data: ConferenceLineTypes[]): void {\r\n this.state.conferenceLine = [...data];\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public setConferenceLine(line: ConferenceLineTypes): void {\r\n if (\r\n !this.state.conferenceLine ||\r\n !Array.isArray(this.state.conferenceLine)\r\n ) {\r\n this.state.conferenceLine = this.getInitialState().conferenceLine;\r\n }\r\n\r\n const conferenceLineData = this.state.conferenceLine?.map(\r\n (each: ConferenceLineTypes) => {\r\n if (each.line === line.line) {\r\n return line;\r\n }\r\n return each;\r\n },\r\n );\r\n this.state.conferenceLine = conferenceLineData;\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public resetConferenceLines(): void {\r\n this.state.conferenceLine = [\r\n {\r\n line: 1,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 2,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 3,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 4,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n {\r\n line: 5,\r\n status: \"IDLE\",\r\n type: \"\",\r\n phone: \"\",\r\n isMute: false,\r\n isHold: false,\r\n isCallStart: false,\r\n isMergeCall: false,\r\n },\r\n ];\r\n\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n public clearStorageAndReset(): void {\r\n try {\r\n removeSession(this.STORAGE_KEY);\r\n this.state = this.getInitialState();\r\n this.notifyListeners();\r\n } catch (error) {\r\n console.warn(\"Failed to clear:\", error);\r\n }\r\n }\r\n\r\n public getConferenceLines(): ConferenceLineTypes[] {\r\n return this.state.conferenceLine || [];\r\n }\r\n\r\n /**\r\n * Update SDK config with permission-based controls.\r\n * Merges the provided controls with existing config.\r\n */\r\n public updateSDKConfigFromPermissions(\r\n permissionControls: Partial<SDKConfig>,\r\n ): void {\r\n this.state.sdkConfig = {\r\n ...this.state.sdkConfig,\r\n ...permissionControls,\r\n };\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n /**\r\n * Revert call consult controls back to the base permission-derived values.\r\n * Called when a CALL_STATE event arrives without call_consult_controls.\r\n */\r\n public resetConsultControls(): void {\r\n const base = this.getControlsConfig();\r\n this.state.sdkConfig = {\r\n ...this.state.sdkConfig,\r\n disableEndCallButton: base.disableEndCallButton,\r\n disableCallTransferButton: base.disableCallTransferButton,\r\n disableConferenceButton: base.disableConferenceButton,\r\n disableHoldButton: base.disableHoldButton,\r\n disableMuteButton: base.disableMuteButton,\r\n };\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n // ============ Entitlement Logic (Ported from SDKPermissionManager) ============\r\n\r\n /**\r\n * Set user information (entitlements) from login response\r\n */\r\n public setSDKPermissions(userInfo: any): void {\r\n if (!userInfo) return;\r\n\r\n // In a real scenario, this would come from userInfo.entitlements?.sdk\r\n // For now, we use the structured format expected by the SDK\r\n\r\n const sdk: SDKEntitlements = userInfo.entitlements?.sdk;\r\n const sdkPermissions = Array.isArray(userInfo.permissions) ? userInfo.permissions : null;\r\n // const sdkMenus = Array.isArray(userInfo.entitlements?.menus)\r\n // ? userInfo.entitlements.menus\r\n // : null;\r\n\r\n const sdkMenus:any[] = [\r\n {\r\n \"code\": SDK_MENU_CODES.WILDCARD,\r\n \"name\": \"Role Management\",\r\n \"enabled\": true\r\n },\r\n // {\r\n // \"code\": SDK_MENU_CODES.CALL_HISTORY,\r\n // \"name\": \"Role Management\",\r\n // \"enabled\": true\r\n // }\r\n ]\r\n\r\n // const sdkPermissions: any = [\r\n // \"campaigns:create\"\r\n // ]\r\n\r\n // const sdk: SDKEntitlements = {\r\n // calls: {\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // code: SDK_PERMISSIONS.CALL_OUTBOUND,\r\n // enabled: true,\r\n // },\r\n // {\r\n // code: SDK_PERMISSIONS.CALL_INBOUND,\r\n // enabled: true,\r\n // },\r\n // ],\r\n // },\r\n // call_transfer: {\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // code: SDK_PERMISSIONS.TRANSFER_BLIND,\r\n // enabled: true,\r\n // },\r\n // {\r\n // code: SDK_PERMISSIONS.TRANSFER_ATTENDED,\r\n // enabled: true,\r\n // },\r\n // {\r\n // code: SDK_PERMISSIONS.TRANSFER_WARM,\r\n // enabled: true,\r\n // },\r\n // ],\r\n // },\r\n // call_conference: {\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // code: SDK_PERMISSIONS.CONFERENCE,\r\n // enabled: true,\r\n // },\r\n // ],\r\n // },\r\n // };\r\n\r\n this.state.sdk = sdk;\r\n this.state.userPermissions = sdkPermissions\r\n this.state.menuEntitlements = sdkMenus\r\n this.state.isPermissionsLoaded = true;\r\n\r\n // Automatically update SDK config based on these new entitlements\r\n const permissionControls = this.getControlsConfig();\r\n this.updateSDKConfigFromPermissions(permissionControls);\r\n\r\n this.saveToStorage();\r\n this.notifyListeners();\r\n }\r\n\r\n /**\r\n * Check if a bit is enabled in entitlements\r\n */\r\n public isBitEnabled(\r\n category: keyof SDKEntitlements,\r\n bitCode: string,\r\n ): boolean {\r\n const sdk = this.state.sdk;\r\n if (!sdk) return false;\r\n\r\n const categoryEntitlement = sdk[category];\r\n if (!categoryEntitlement) return false;\r\n if (!categoryEntitlement.enabled) return false;\r\n\r\n if (!bitCode) return true; // Just checking category enabledness\r\n\r\n const bit = categoryEntitlement.items?.find(\r\n (item: any) => item.code === bitCode,\r\n );\r\n return bit ? bit.enabled : false;\r\n }\r\n\r\n /** Check if the user has a specific flat permission (e.g. \"calls:inbound\") */\r\n public hasPermission(permission: string): boolean {\r\n const perms = this.state.userPermissions;\r\n if (!perms) return false;\r\n return perms.includes(\"*\") || perms.includes(permission);\r\n }\r\n\r\n /** Check if any of the provided permissions is granted */\r\n public hasAnyPermission(permissions: string[]): boolean {\r\n return permissions.some((p) => this.hasPermission(p));\r\n }\r\n\r\n /** Check if all of the provided permissions are granted */\r\n public hasAllPermissions(permissions: string[]): boolean {\r\n return permissions.every((p) => this.hasPermission(p));\r\n }\r\n\r\n /** Check if a menu entitlement is enabled (e.g. \"campaign\"). Supports \"*\" wildcard. */\r\n public hasMenuFeature(code: string): boolean {\r\n const menus = this.state.menuEntitlements;\r\n if (!menus) return false;\r\n if (menus.some((m) => m.code === \"*\" && m.enabled)) return true;\r\n const entry = menus.find((m) => m.code === code);\r\n return entry ? entry.enabled : false;\r\n }\r\n\r\n /**\r\n * Get SDK controls configuration derived exclusively from structured entitlements.\r\n */\r\n public getControlsConfig(): ControlsFromPermissions {\r\n const { sdk, isPermissionsLoaded } = this.state;\r\n\r\n // If entitlements not loaded yet or missing, disable everything (Fail Closed)\r\n if (!isPermissionsLoaded || !sdk) {\r\n return {\r\n disabledDialButton: true,\r\n disableEndCallButton: true,\r\n disableCallTransferButton: true,\r\n disableBlindTransfer: true,\r\n disableAttendedTransfer: true,\r\n disableWarmTransfer: true,\r\n disableConferenceButton: true,\r\n disableHoldButton: true,\r\n disableMuteButton: true,\r\n disabledMoreOptionsButton: true,\r\n };\r\n }\r\n\r\n // --- Dial/Inbound Checks ---\r\n const isDialAllowed = this.isBitEnabled(\r\n \"calls\",\r\n SDK_PERMISSIONS.CALL_OUTBOUND,\r\n );\r\n const isInboundAllowed = this.isBitEnabled(\r\n \"calls\",\r\n SDK_PERMISSIONS.CALL_INBOUND,\r\n );\r\n const isAnyCallAllowed = isDialAllowed || isInboundAllowed;\r\n // AND with backend callControls: if backend disabled it, permissions alone can't re-enable it\r\n const backendDisabledEndCall = !!this.state.backendCallControls?.disableEndCallButton;\r\n\r\n // --- Call Controls ---\r\n const isHoldAllowed = isAnyCallAllowed;\r\n const isMuteAllowed = isAnyCallAllowed;\r\n const isEndCallAllowed = isAnyCallAllowed && !backendDisabledEndCall;\r\n const isConferenceAllowed = this.isBitEnabled(\"call_conference\", \"\");\r\n const isTransferEnabled = this.isBitEnabled(\"call_transfer\", \"\");\r\n\r\n // --- Transfer Controls ---\r\n const isBlindAllowed = this.isBitEnabled(\r\n \"call_transfer\",\r\n SDK_PERMISSIONS.TRANSFER_BLIND,\r\n );\r\n const isAttendedAllowed = this.isBitEnabled(\r\n \"call_transfer\",\r\n SDK_PERMISSIONS.TRANSFER_ATTENDED,\r\n );\r\n const isWarmAllowed = this.isBitEnabled(\r\n \"call_transfer\",\r\n SDK_PERMISSIONS.TRANSFER_WARM,\r\n );\r\n\r\n return {\r\n disabledDialButton: !isDialAllowed,\r\n disableEndCallButton: !isEndCallAllowed,\r\n disableCallTransferButton: !isTransferEnabled,\r\n disableBlindTransfer: !isBlindAllowed,\r\n disableAttendedTransfer: !isAttendedAllowed,\r\n disableWarmTransfer: !isWarmAllowed,\r\n disableConferenceButton: !isConferenceAllowed,\r\n disableHoldButton: !isHoldAllowed,\r\n disableMuteButton: !isMuteAllowed,\r\n disabledMoreOptionsButton: false,\r\n };\r\n }\r\n}\r\n\r\nexport const sdkStateManager = new SDKStateManager();\r\n\r\nexport type { SDKStateManager };\r\n","export const STORAGE_KEY = \"call-control-sdk-state\";\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\nconst noopToast: ToastContextType = {\r\n\tshowToast: (message, severity) => {\r\n\t\tconsole.warn(`[Toast outside provider] ${severity ?? \"info\"}: ${message}`);\r\n\t},\r\n};\r\n\r\nexport const useToast = () => {\r\n\tconst ctx = useContext(ToastContext);\r\n\treturn ctx ?? noopToast;\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 { 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 { sdkStateManager } from \"../hooks/sdk-state\";\r\n\r\n\r\n// export const IP = \"192.168.100.254\";\r\n\r\n// export 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\n\r\n// Dynamically get URLs from SDK state\r\nconst getBaseURL = () => sdkStateManager?.getState()?.urlConfig?.baseURL || \"\";\r\nconst getCoreURL = () => sdkStateManager?.getState()?.urlConfig?.coreBaseURL || \"\";\r\n\r\nexport const BASE_URL = getBaseURL();\r\nexport const CORE_URL = getCoreURL();\r\n\r\nexport const VERSION = {\r\n\tv1: \"/api/v1\",\r\n};\r\n\r\n// Dynamic endpoint getters that fetch URLs from SDK state at runtime\r\nexport const END_POINT = {\r\n\tget LOGIN() { return `${getBaseURL()}${VERSION.v1}/cti/login?provider=convox`; },\r\n\tget READY_AGENT() { return `${getCoreURL()}${VERSION.v1}/agents/ready`; },\r\n\tget UPDATE_AGENT_BREAK() { return `${getCoreURL()}${VERSION.v1}/agents/status`; },\r\n\tget CLICK_TO_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/dial`; },\r\n\tget HOLD_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/hold`; },\r\n\tget MUTE_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/mute`; },\r\n\tget UNMUTE_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/mute`; },\r\n\tget END_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`; },\r\n\tget LOGOUT() { return `${getBaseURL()}${VERSION.v1}/cti/logout?provider=convox`; },\r\n\r\n\tget CONFERENCE_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/add`; },\r\n\tget CONFERENCE_MERGE_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/merge`; },\r\n\tget CONFERENCE_CALL_HOLD_OR_UN_HOLD() { return `${getCoreURL()}${VERSION.v1}/cti/calls/hold`; },\r\n\tget CONFERENCE_CALL_MUTE_OT_UN_MUTE() { return `${getCoreURL()}${VERSION.v1}/cti/calls/mute`; },\r\n\tget CONFERENCE_CALL_END() { return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`; },\r\n\tget CONFERENCE_CALL_END_ALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`; },\r\n\tget CONFERENCE_CALL_TRANSFER() { return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/transfer`; },\r\n\tget TRANSFER_CALL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer-call`; },\r\n\tget TRANSFER_COMPLETE() { return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer/complete`; },\r\n\tget TRANSFER_CANCEL() { return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer/cancel`; },\r\n\r\n\tget AGENTS_LIST() { return `${getBaseURL()}${VERSION.v1}/cti/users`; },\r\n\tget PROCESS_LIST() { return `${getBaseURL()}${VERSION.v1}/cti/processes-list`; },\r\n\tget BREAKS_LIST() { return `${getBaseURL()}${VERSION.v1}/cti/breaks`; },\r\n\tget TRANSFER_TO_DETAILS() { return `${getBaseURL()}${VERSION.v1}/cti/transfer-to-details?provider=convox`; },\r\n\tget SEND_NOTIFICATIONS() { return `${getBaseURL()}${VERSION.v1}/cti/notifications/send`; },\r\n\r\n\tget CALL_HISTORY() { return `${getBaseURL()}${VERSION.v1}/dashboard/call-history`; },\r\n\tget SENTIMENTAL_ANALYSIS() { return `${getBaseURL()}${VERSION.v1}/users/get_sentiment_analysis`; },\r\n\tget DISPOSITIONS() { return `${getBaseURL()}${VERSION.v1}/cti/calls/dispositions`; },\r\n\tget HOSPITALS_SERVICES() { return `${getBaseURL()}${VERSION.v1}/cti/hospital/services`; },\r\n\tget BLIEND_TRANSFER() { return `${getBaseURL()}${VERSION.v1}/cti/calls/blind_transfer?provider=convox`; },\r\n\r\n\tget AUTH_LOGOUT() { return `${getBaseURL()}${VERSION.v1}/auth/logout`; },\r\n\r\n\t// Permissions\r\n\tget USER_PERMISSIONS() { return `${getBaseURL()}${VERSION.v1}/rbac/users/me/permissions`; },\r\n\r\n\t// Supervisor Call Monitoring (Listen / Whisper / Barge via ChanSpy)\r\n\tget SUPERVISOR_CALL_LISTEN() { return `${getBaseURL()}${VERSION.v1}/cti/supervisor/listen`; },\r\n\tget SUPERVISOR_CALL_LEAVE() { return `${getBaseURL()}${VERSION.v1}/cti/supervisor/leave`; },\r\n\tget SUPERVISOR_CALL_CHANGE_MODE() { return `${getBaseURL()}${VERSION.v1}/cti/supervisor/mode`; },\r\n\r\n\t// Call History pages\r\n\tget CALLS_HISTORY() { return `${getBaseURL()}${VERSION.v1}/calls/history`; },\r\n\tget MISSED_CALLS() { return `${getBaseURL()}${VERSION.v1}/supervisor/missed-calls`; },\r\n\tRECORDING_BY_CALL: (call_uuid: string) => `${getBaseURL()}${VERSION.v1}/recordings/call/${call_uuid}`,\r\n\r\n\t// Campaigns\r\n\tget CAMPAIGNS_GET_ALL() { return `${getBaseURL()}${VERSION.v1}/dialer/campaigns`; },\r\n\tget CAMPAIGNS_CREATE() { return `${getBaseURL()}${VERSION.v1}/dialer/campaigns`; },\r\n\tCAMPAIGNS_GET_BY_ID: (id: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${id}`,\r\n\tCAMPAIGNS_UPDATE: (id: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${id}`,\r\n\tCAMPAIGNS_ACTIVATE: (id: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${id}/activate`,\r\n\tCAMPAIGNS_PAUSE: (id: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${id}/pause`,\r\n\tCAMPAIGNS_ARCHIVE: (id: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${id}/archive`,\r\n\tCAMPAIGNS_LEADS: (campaignId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads`,\r\n\tCAMPAIGNS_DELETE_LEAD: (campaignId: number | string, leadId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads/${leadId}`,\r\n\tCAMPAIGNS_DIAL_PREVIEW: (campaignId: number | string, leadId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads/${leadId}/dial-preview`,\r\n\tCAMPAIGNS_LEADS_UPLOAD_EXCEL: (campaignId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads/upload/excel`,\r\n\tCAMPAIGNS_LEADS_TEMPLATE_EXCEL: (campaignId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads/template/excel`,\r\n\tCAMPAIGNS_LEADS_EXPORT_EXCEL: (campaignId: number | string) => `${getBaseURL()}${VERSION.v1}/dialer/campaigns/${campaignId}/leads/export/excel`,\r\n\r\n\t// Login Report\r\n\tget LOGIN_REPORT() { return `${getBaseURL()}${VERSION.v1}/reports/login-report`; },\r\n\tget LOGIN_REPORT_AGENTS() { return `${getBaseURL()}${VERSION.v1}/reports/login-report/agents`; },\r\n\tLOGIN_REPORT_AGENT_SESSIONS: (agentId: string) => `${getBaseURL()}${VERSION.v1}/reports/login-report/agents/${agentId}/sessions`,\r\n\tLOGIN_REPORT_AGENT_SESSIONS_EXPORT_EXCEL: (agentId: string) => `${getBaseURL()}${VERSION.v1}/reports/login-report/agents/${agentId}/sessions/export/excel`,\r\n\tget LOGIN_REPORT_EXPORT_EXCEL() { return `${getBaseURL()}${VERSION.v1}/reports/login-report/export/excel`; },\r\n\r\n\t// CDR Report\r\n\tget CDR_REPORT() { return `${getBaseURL()}${VERSION.v1}/reports/cdr-report`; },\r\n\tget CDR_REPORT_RECORDS() { return `${getBaseURL()}${VERSION.v1}/reports/cdr-report/records`; },\r\n\tget CDR_REPORT_EXPORT_EXCEL() { return `${getBaseURL()}${VERSION.v1}/reports/cdr-report/export/excel`; },\r\n\r\n\t// CDR Report filter sources (match what main app's CdrReport calls)\r\n\tget USERS_LIST() { return `${getBaseURL()}${VERSION.v1}/users/`; },\r\n\tget MASTER_QUEUES() { return `${getBaseURL()}${VERSION.v1}/master/queue`; },\r\n\r\n\t// Reports\r\n\tget AGENT_PERFORMANCE_REPORT() { return `${getBaseURL()}${VERSION.v1}/reports/agent-performance-report`; },\r\n\tget AGENT_PERFORMANCE_REPORT_AGENTS() { return `${getBaseURL()}${VERSION.v1}/reports/agent-performance-report/agents`; },\r\n\tget AGENT_PERFORMANCE_REPORT_EXPORT_EXCEL() { return `${getBaseURL()}${VERSION.v1}/reports/agent-performance-report/export/excel`; },\r\n\tAGENT_DETAIL_REPORT: (agentId: string) => `${getBaseURL()}${VERSION.v1}/reports/agent-detail-report/${agentId}`,\r\n\t// get CDR_REPORT() { return `${getBaseURL()}${VERSION.v1}/reports/cdr-report`; },\r\n\r\n\t// Queues (used by Campaigns → Queue Linking)\r\n\tget QUEUES_GET_ALL() { return `${getBaseURL()}${VERSION.v1}/master/queue`; },\r\n\tget QUEUES_CREATE() { return `${getBaseURL()}${VERSION.v1}/master/queue`; },\r\n\r\n\t// Processes\r\n\tget MASTER_PROCESS() { return `${getBaseURL()}${VERSION.v1}/master/process`; },\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\n// export const STORAGE_KEY = \"call-control-sdk-state\";\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\t// baseURL: 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\t\t? (DEFAULT_TOKEN.startsWith(\"Bearer \") ? DEFAULT_TOKEN : `Bearer ${DEFAULT_TOKEN}`)\r\n\t\t\t\t: \"\",\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\t// Only add \"Bearer \" prefix if the token doesn't already have it\r\n\t\t\t\tconst authToken = token.startsWith(\"Bearer \") ? token : `Bearer ${token}`;\r\n\t\t\t\tconfig.headers.Authorization = authToken;\r\n\t\t\t}\r\n\r\n\t\t\t// Debug log for API calls\r\n\t\t\tconsole.log(\"API Request:\", {\r\n\t\t\t\turl: config.url,\r\n\t\t\t\tmethod: config.method,\r\n\t\t\t\thasToken: !!token,\r\n\t\t\t\ttokenStartsWithBearer: token?.startsWith(\"Bearer \"),\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: config.headers.Authorization,\r\n\t\t\t\t\t\"x-tenant-id\": config.headers[\"x-tenant-id\"],\r\n\t\t\t\t\t\"x-api-key\": config.headers[\"x-api-key\"],\r\n\t\t\t\t}\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"],"mappings":"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","names":["_a","jsx","_a","_a"]}