@pega/cosmos-react-cs 5.0.0-dev.4.7 → 5.0.0-dev.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/package.json +3 -3
  2. package/lib/components/CTIPanel/CTIPanel.d.ts +0 -13
  3. package/lib/components/CTIPanel/CTIPanel.d.ts.map +0 -1
  4. package/lib/components/CTIPanel/CTIPanel.js +0 -12
  5. package/lib/components/CTIPanel/CTIPanel.js.map +0 -1
  6. package/lib/components/CTIPanel/index.d.ts +0 -2
  7. package/lib/components/CTIPanel/index.d.ts.map +0 -1
  8. package/lib/components/CTIPanel/index.js +0 -2
  9. package/lib/components/CTIPanel/index.js.map +0 -1
  10. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts +0 -47
  11. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts.map +0 -1
  12. package/lib/components/CallControlPanel/AttachInteractionDialog.js +0 -54
  13. package/lib/components/CallControlPanel/AttachInteractionDialog.js.map +0 -1
  14. package/lib/components/CallControlPanel/Call.d.ts +0 -6
  15. package/lib/components/CallControlPanel/Call.d.ts.map +0 -1
  16. package/lib/components/CallControlPanel/Call.js +0 -145
  17. package/lib/components/CallControlPanel/Call.js.map +0 -1
  18. package/lib/components/CallControlPanel/CallControlPanel.d.ts +0 -6
  19. package/lib/components/CallControlPanel/CallControlPanel.d.ts.map +0 -1
  20. package/lib/components/CallControlPanel/CallControlPanel.js +0 -61
  21. package/lib/components/CallControlPanel/CallControlPanel.js.map +0 -1
  22. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts +0 -16
  23. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts.map +0 -1
  24. package/lib/components/CallControlPanel/CallControlPanel.styles.js +0 -105
  25. package/lib/components/CallControlPanel/CallControlPanel.styles.js.map +0 -1
  26. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts +0 -120
  27. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts.map +0 -1
  28. package/lib/components/CallControlPanel/CallControlPanel.types.js +0 -2
  29. package/lib/components/CallControlPanel/CallControlPanel.types.js.map +0 -1
  30. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts +0 -15
  31. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts.map +0 -1
  32. package/lib/components/CallControlPanel/CallControlPanelIcon.js +0 -81
  33. package/lib/components/CallControlPanel/CallControlPanelIcon.js.map +0 -1
  34. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts +0 -17
  35. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts.map +0 -1
  36. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js +0 -2
  37. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js.map +0 -1
  38. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts +0 -16
  39. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts.map +0 -1
  40. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js +0 -56
  41. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js.map +0 -1
  42. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts +0 -31
  43. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts.map +0 -1
  44. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js +0 -60
  45. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js.map +0 -1
  46. package/lib/components/CallControlPanel/CallHandover/index.d.ts +0 -4
  47. package/lib/components/CallControlPanel/CallHandover/index.d.ts.map +0 -1
  48. package/lib/components/CallControlPanel/CallHandover/index.js +0 -4
  49. package/lib/components/CallControlPanel/CallHandover/index.js.map +0 -1
  50. package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts +0 -18
  51. package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts.map +0 -1
  52. package/lib/components/CallControlPanel/ContactList/CalleePicker.js +0 -54
  53. package/lib/components/CallControlPanel/ContactList/CalleePicker.js.map +0 -1
  54. package/lib/components/CallControlPanel/ContactList/ContactList.d.ts +0 -10
  55. package/lib/components/CallControlPanel/ContactList/ContactList.d.ts.map +0 -1
  56. package/lib/components/CallControlPanel/ContactList/ContactList.js +0 -129
  57. package/lib/components/CallControlPanel/ContactList/ContactList.js.map +0 -1
  58. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts +0 -30
  59. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts.map +0 -1
  60. package/lib/components/CallControlPanel/ContactList/ContactList.types.js +0 -2
  61. package/lib/components/CallControlPanel/ContactList/ContactList.types.js.map +0 -1
  62. package/lib/components/CallControlPanel/ContactList/index.d.ts +0 -3
  63. package/lib/components/CallControlPanel/ContactList/index.d.ts.map +0 -1
  64. package/lib/components/CallControlPanel/ContactList/index.js +0 -2
  65. package/lib/components/CallControlPanel/ContactList/index.js.map +0 -1
  66. package/lib/components/CallControlPanel/ExternalCTI.d.ts +0 -24
  67. package/lib/components/CallControlPanel/ExternalCTI.d.ts.map +0 -1
  68. package/lib/components/CallControlPanel/ExternalCTI.js +0 -48
  69. package/lib/components/CallControlPanel/ExternalCTI.js.map +0 -1
  70. package/lib/components/CallControlPanel/FloatingPanel.d.ts +0 -36
  71. package/lib/components/CallControlPanel/FloatingPanel.d.ts.map +0 -1
  72. package/lib/components/CallControlPanel/FloatingPanel.js +0 -72
  73. package/lib/components/CallControlPanel/FloatingPanel.js.map +0 -1
  74. package/lib/components/CallControlPanel/IncomingCall.d.ts +0 -6
  75. package/lib/components/CallControlPanel/IncomingCall.d.ts.map +0 -1
  76. package/lib/components/CallControlPanel/IncomingCall.js +0 -18
  77. package/lib/components/CallControlPanel/IncomingCall.js.map +0 -1
  78. package/lib/components/CallControlPanel/StopWatch.d.ts +0 -11
  79. package/lib/components/CallControlPanel/StopWatch.d.ts.map +0 -1
  80. package/lib/components/CallControlPanel/StopWatch.js +0 -28
  81. package/lib/components/CallControlPanel/StopWatch.js.map +0 -1
  82. package/lib/components/CallControlPanel/index.d.ts +0 -5
  83. package/lib/components/CallControlPanel/index.d.ts.map +0 -1
  84. package/lib/components/CallControlPanel/index.js +0 -3
  85. package/lib/components/CallControlPanel/index.js.map +0 -1
  86. package/lib/components/CallControlPanel/utils.d.ts +0 -7
  87. package/lib/components/CallControlPanel/utils.d.ts.map +0 -1
  88. package/lib/components/CallControlPanel/utils.js +0 -34
  89. package/lib/components/CallControlPanel/utils.js.map +0 -1
  90. package/lib/components/DialPad/DialPad.d.ts +0 -18
  91. package/lib/components/DialPad/DialPad.d.ts.map +0 -1
  92. package/lib/components/DialPad/DialPad.js +0 -30
  93. package/lib/components/DialPad/DialPad.js.map +0 -1
  94. package/lib/components/DialPad/DialPad.types.d.ts +0 -33
  95. package/lib/components/DialPad/DialPad.types.d.ts.map +0 -1
  96. package/lib/components/DialPad/DialPad.types.js +0 -2
  97. package/lib/components/DialPad/DialPad.types.js.map +0 -1
  98. package/lib/components/DialPad/DialPadDialog.d.ts +0 -9
  99. package/lib/components/DialPad/DialPadDialog.d.ts.map +0 -1
  100. package/lib/components/DialPad/DialPadDialog.js +0 -35
  101. package/lib/components/DialPad/DialPadDialog.js.map +0 -1
  102. package/lib/components/DialPad/DialPadKeyboard.d.ts +0 -12
  103. package/lib/components/DialPad/DialPadKeyboard.d.ts.map +0 -1
  104. package/lib/components/DialPad/DialPadKeyboard.js +0 -89
  105. package/lib/components/DialPad/DialPadKeyboard.js.map +0 -1
  106. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts +0 -5
  107. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts.map +0 -1
  108. package/lib/components/DialPad/DialPadKeyboard.styles.js +0 -76
  109. package/lib/components/DialPad/DialPadKeyboard.styles.js.map +0 -1
  110. package/lib/components/DialPad/KeyboardNavigation.d.ts +0 -6
  111. package/lib/components/DialPad/KeyboardNavigation.d.ts.map +0 -1
  112. package/lib/components/DialPad/KeyboardNavigation.js +0 -156
  113. package/lib/components/DialPad/KeyboardNavigation.js.map +0 -1
  114. package/lib/components/DialPad/index.d.ts +0 -4
  115. package/lib/components/DialPad/index.d.ts.map +0 -1
  116. package/lib/components/DialPad/index.js +0 -3
  117. package/lib/components/DialPad/index.js.map +0 -1
  118. package/lib/components/DialPad/utils.d.ts +0 -4
  119. package/lib/components/DialPad/utils.d.ts.map +0 -1
  120. package/lib/components/DialPad/utils.js +0 -7
  121. package/lib/components/DialPad/utils.js.map +0 -1
  122. package/lib/components/InteractionNotification/CountdownButton.d.ts +0 -15
  123. package/lib/components/InteractionNotification/CountdownButton.d.ts.map +0 -1
  124. package/lib/components/InteractionNotification/CountdownButton.js +0 -42
  125. package/lib/components/InteractionNotification/CountdownButton.js.map +0 -1
  126. package/lib/components/InteractionNotification/InteractionNotification.d.ts +0 -35
  127. package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +0 -1
  128. package/lib/components/InteractionNotification/InteractionNotification.js +0 -110
  129. package/lib/components/InteractionNotification/InteractionNotification.js.map +0 -1
  130. package/lib/components/InteractionNotification/index.d.ts +0 -2
  131. package/lib/components/InteractionNotification/index.d.ts.map +0 -1
  132. package/lib/components/InteractionNotification/index.js +0 -2
  133. package/lib/components/InteractionNotification/index.js.map +0 -1
  134. package/lib/components/InteractionTimer/InteractionTimer.d.ts +0 -29
  135. package/lib/components/InteractionTimer/InteractionTimer.d.ts.map +0 -1
  136. package/lib/components/InteractionTimer/InteractionTimer.js +0 -90
  137. package/lib/components/InteractionTimer/InteractionTimer.js.map +0 -1
  138. package/lib/components/InteractionTimer/index.d.ts +0 -3
  139. package/lib/components/InteractionTimer/index.d.ts.map +0 -1
  140. package/lib/components/InteractionTimer/index.js +0 -2
  141. package/lib/components/InteractionTimer/index.js.map +0 -1
  142. package/lib/components/Picker/Picker.d.ts +0 -6
  143. package/lib/components/Picker/Picker.d.ts.map +0 -1
  144. package/lib/components/Picker/Picker.js +0 -109
  145. package/lib/components/Picker/Picker.js.map +0 -1
  146. package/lib/components/Picker/Picker.styles.d.ts +0 -12
  147. package/lib/components/Picker/Picker.styles.d.ts.map +0 -1
  148. package/lib/components/Picker/Picker.styles.js +0 -59
  149. package/lib/components/Picker/Picker.styles.js.map +0 -1
  150. package/lib/components/Picker/Picker.types.d.ts +0 -35
  151. package/lib/components/Picker/Picker.types.d.ts.map +0 -1
  152. package/lib/components/Picker/Picker.types.js +0 -2
  153. package/lib/components/Picker/Picker.types.js.map +0 -1
  154. package/lib/components/Picker/index.d.ts +0 -2
  155. package/lib/components/Picker/index.d.ts.map +0 -1
  156. package/lib/components/Picker/index.js +0 -2
  157. package/lib/components/Picker/index.js.map +0 -1
  158. package/lib/components/TaskManager/ConversationAI.d.ts +0 -6
  159. package/lib/components/TaskManager/ConversationAI.d.ts.map +0 -1
  160. package/lib/components/TaskManager/ConversationAI.js +0 -29
  161. package/lib/components/TaskManager/ConversationAI.js.map +0 -1
  162. package/lib/components/TaskManager/Dialogue.d.ts +0 -6
  163. package/lib/components/TaskManager/Dialogue.d.ts.map +0 -1
  164. package/lib/components/TaskManager/Dialogue.js +0 -30
  165. package/lib/components/TaskManager/Dialogue.js.map +0 -1
  166. package/lib/components/TaskManager/TaskManager.context.d.ts +0 -5
  167. package/lib/components/TaskManager/TaskManager.context.d.ts.map +0 -1
  168. package/lib/components/TaskManager/TaskManager.context.js +0 -3
  169. package/lib/components/TaskManager/TaskManager.context.js.map +0 -1
  170. package/lib/components/TaskManager/TaskManager.d.ts +0 -6
  171. package/lib/components/TaskManager/TaskManager.d.ts.map +0 -1
  172. package/lib/components/TaskManager/TaskManager.js +0 -68
  173. package/lib/components/TaskManager/TaskManager.js.map +0 -1
  174. package/lib/components/TaskManager/TaskManager.styles.d.ts +0 -37
  175. package/lib/components/TaskManager/TaskManager.styles.d.ts.map +0 -1
  176. package/lib/components/TaskManager/TaskManager.styles.js +0 -325
  177. package/lib/components/TaskManager/TaskManager.styles.js.map +0 -1
  178. package/lib/components/TaskManager/TaskManager.types.d.ts +0 -98
  179. package/lib/components/TaskManager/TaskManager.types.d.ts.map +0 -1
  180. package/lib/components/TaskManager/TaskManager.types.js +0 -2
  181. package/lib/components/TaskManager/TaskManager.types.js.map +0 -1
  182. package/lib/components/TaskManager/TaskManagerTabs.d.ts +0 -6
  183. package/lib/components/TaskManager/TaskManagerTabs.d.ts.map +0 -1
  184. package/lib/components/TaskManager/TaskManagerTabs.js +0 -186
  185. package/lib/components/TaskManager/TaskManagerTabs.js.map +0 -1
  186. package/lib/components/TaskManager/TaskPicker.d.ts +0 -19
  187. package/lib/components/TaskManager/TaskPicker.d.ts.map +0 -1
  188. package/lib/components/TaskManager/TaskPicker.js +0 -89
  189. package/lib/components/TaskManager/TaskPicker.js.map +0 -1
  190. package/lib/components/TaskManager/TaskView.d.ts +0 -6
  191. package/lib/components/TaskManager/TaskView.d.ts.map +0 -1
  192. package/lib/components/TaskManager/TaskView.js +0 -10
  193. package/lib/components/TaskManager/TaskView.js.map +0 -1
  194. package/lib/components/TaskManager/index.d.ts +0 -5
  195. package/lib/components/TaskManager/index.d.ts.map +0 -1
  196. package/lib/components/TaskManager/index.js +0 -4
  197. package/lib/components/TaskManager/index.js.map +0 -1
  198. package/lib/index.d.ts +0 -13
  199. package/lib/index.d.ts.map +0 -1
  200. package/lib/index.js +0 -14
  201. package/lib/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-cs",
3
- "version": "5.0.0-dev.4.7",
3
+ "version": "5.0.0-dev.4.9",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/pegasystems/cosmos-react.git",
@@ -20,8 +20,8 @@
20
20
  "build": "tsc -b"
21
21
  },
22
22
  "dependencies": {
23
- "@pega/cosmos-react-core": "5.0.0-dev.4.7",
24
- "@pega/cosmos-react-dnd": "5.0.0-dev.4.7",
23
+ "@pega/cosmos-react-core": "5.0.0-dev.4.9",
24
+ "@pega/cosmos-react-dnd": "5.0.0-dev.4.9",
25
25
  "@types/react": "^17.0.62",
26
26
  "@types/react-dom": "^17.0.20",
27
27
  "@types/styled-components": "^5.1.26",
@@ -1,13 +0,0 @@
1
- import { FunctionComponent, ReactElement } from 'react';
2
- import { NavListItemProps } from '@pega/cosmos-react-core/lib/components/AppShell/AppShell.types';
3
- import { CallControlPanelProps, UserAvailabilityStatusOption } from '../CallControlPanel/CallControlPanel.types';
4
- import { ExternalCTIProps } from '../CallControlPanel/ExternalCTI';
5
- export interface CTIPanelProps {
6
- status: UserAvailabilityStatusOption;
7
- visible: boolean;
8
- children: ReactElement<CallControlPanelProps | ExternalCTIProps>;
9
- onClick?: NavListItemProps['onClick'];
10
- }
11
- declare const CTIPanel: FunctionComponent<CTIPanelProps>;
12
- export default CTIPanel;
13
- //# sourceMappingURL=CTIPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CTIPanel.d.ts","sourceRoot":"","sources":["../../../src/components/CTIPanel/CTIPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;AAIlG,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,4BAA4B,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC,qBAAqB,GAAG,gBAAgB,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;CACvC;AAED,QAAA,MAAM,QAAQ,EAAE,iBAAiB,CAAC,aAAa,CAsB9C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createPortal } from 'react-dom';
3
- import { NavigationListItem } from '@pega/cosmos-react-core/lib/components/AppShell/NavigationList';
4
- import { useConfiguration, useI18n } from '@pega/cosmos-react-core';
5
- import CallControlPanelIcon from '../CallControlPanel/CallControlPanelIcon';
6
- const CTIPanel = ({ onClick, visible, status, children }) => {
7
- const t = useI18n();
8
- const { portalTarget } = useConfiguration();
9
- return (_jsxs(_Fragment, { children: [_jsx(NavigationListItem, { primary: t('call_panel_nav_label'), visual: _jsx(CallControlPanelIcon, { status: status.status, label: status.label, variant: 'icon', panelVisible: visible }), onClick: onClick }), portalTarget && createPortal(children, portalTarget)] }));
10
- };
11
- export default CTIPanel;
12
- //# sourceMappingURL=CTIPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CTIPanel.js","sourceRoot":"","sources":["../../../src/components/CTIPanel/CTIPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAC;AAEpG,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAc5E,MAAM,QAAQ,GAAqC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5F,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE5C,OAAO,CACL,8BACE,KAAC,kBAAkB,IACjB,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAClC,MAAM,EACJ,KAAC,oBAAoB,IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAC,MAAM,EACd,YAAY,EAAE,OAAO,GACrB,EAEJ,OAAO,EAAE,OAAO,GAChB,EACD,YAAY,IAAI,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,IACpD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { FunctionComponent, ReactElement } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { NavigationListItem } from '@pega/cosmos-react-core/lib/components/AppShell/NavigationList';\nimport { NavListItemProps } from '@pega/cosmos-react-core/lib/components/AppShell/AppShell.types';\nimport { useConfiguration, useI18n } from '@pega/cosmos-react-core';\n\nimport CallControlPanelIcon from '../CallControlPanel/CallControlPanelIcon';\nimport {\n CallControlPanelProps,\n UserAvailabilityStatusOption\n} from '../CallControlPanel/CallControlPanel.types';\nimport { ExternalCTIProps } from '../CallControlPanel/ExternalCTI';\n\nexport interface CTIPanelProps {\n status: UserAvailabilityStatusOption;\n visible: boolean;\n children: ReactElement<CallControlPanelProps | ExternalCTIProps>;\n onClick?: NavListItemProps['onClick'];\n}\n\nconst CTIPanel: FunctionComponent<CTIPanelProps> = ({ onClick, visible, status, children }) => {\n const t = useI18n();\n\n const { portalTarget } = useConfiguration();\n\n return (\n <>\n <NavigationListItem\n primary={t('call_panel_nav_label')}\n visual={\n <CallControlPanelIcon\n status={status.status}\n label={status.label}\n variant='icon'\n panelVisible={visible}\n />\n }\n onClick={onClick}\n />\n {portalTarget && createPortal(children, portalTarget)}\n </>\n );\n};\n\nexport default CTIPanel;\n"]}
@@ -1,2 +0,0 @@
1
- export { default, type CTIPanelProps } from './CTIPanel';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CTIPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { default } from './CTIPanel';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/CTIPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAC","sourcesContent":["export { default, type CTIPanelProps } from './CTIPanel';\n"]}
@@ -1,47 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BannerProps, FormDialogProps } from '@pega/cosmos-react-core';
3
- export interface MenuOption {
4
- id: string;
5
- label: string;
6
- }
7
- export interface AttachInteractionData {
8
- /** Selected reason option identifier. */
9
- reasonId?: MenuOption['id'];
10
- /** Interaction comments. */
11
- comments?: string;
12
- /** Selected interaction option identifier. */
13
- interactionOptionId?: MenuOption['id'];
14
- }
15
- export interface AttachInteractionProps {
16
- /** The heading of the dialog. */
17
- heading: string;
18
- /**
19
- * Callback invoked when 'Submit' action has been clicked.
20
- * Must call given 'close' function on success.
21
- */
22
- onAddInteraction: (data: AttachInteractionData, arg: {
23
- close: () => void;
24
- }) => void;
25
- /** Callback invoked when closing the dialog. */
26
- onClose?: () => void;
27
- /** Current selected reason */
28
- defaultReason?: MenuOption['id'];
29
- /** Reason options. The field will be hidden if not passed. */
30
- reasonOptions: Readonly<MenuOption[]>;
31
- /** Current selected interaction */
32
- defaultInteraction?: MenuOption['id'];
33
- /** Interaction options. The fill will be hidden if not passed. */
34
- interactionOptions?: Readonly<MenuOption[]>;
35
- /** Region for messages: errors, notifications, etc. */
36
- message?: Pick<BannerProps, 'variant' | 'messages' | 'onDismiss'>;
37
- }
38
- export interface AttachInteractionDialogProps extends AttachInteractionProps, Pick<FormDialogProps, 'target'> {
39
- /** When invoked, sets the dialog target to null to close. Maintains interface support where onSubmit receives close arg. */
40
- close: () => void;
41
- }
42
- export declare const StyledInteractionForm: import("styled-components").StyledComponent<import("react").FC<import("@pega/cosmos-react-core").FormProps & import("@pega/cosmos-react-core").ForwardProps> & {
43
- getTestIds: (testIdProp?: string | undefined) => import("@pega/cosmos-react-core").TestIdsRecord<readonly []>;
44
- }, import("styled-components").DefaultTheme, {}, never>;
45
- declare const AttachInteractionDialog: FunctionComponent<AttachInteractionDialogProps>;
46
- export default AttachInteractionDialog;
47
- //# sourceMappingURL=AttachInteractionDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachInteractionDialog.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/AttachInteractionDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,OAAO,CAAC;AAGjE,OAAO,EAQL,WAAW,EAEX,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,gBAAgB,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,8DAA8D;IAC9D,aAAa,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,uDAAuD;IACvD,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,4BACf,SAAQ,sBAAsB,EAC5B,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IACjC,4HAA4H;IAC5H,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB;;uDAAiB,CAAC;AAIpD,QAAA,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,4BAA4B,CA0G5E,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -1,54 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import styled from 'styled-components';
4
- import { defaultThemeProp, Flex, useI18n, Form, Banner, ComboBox, TextArea, FormDialog } from '@pega/cosmos-react-core';
5
- export const StyledInteractionForm = styled(Form) ``;
6
- StyledInteractionForm.defaultProps = defaultThemeProp;
7
- const AttachInteractionDialog = ({ heading, defaultReason, reasonOptions, defaultInteraction, interactionOptions, message, onAddInteraction, onClose, target, close }) => {
8
- const t = useI18n();
9
- const initialReason = reasonOptions.find(reason => reason.id === defaultReason);
10
- const initialInteraction = interactionOptions?.find(interaction => interaction.id === defaultInteraction);
11
- const [selectedReason, setSelectedReason] = useState(initialReason);
12
- const [selectedInteraction, setSelectedInteraction] = useState(initialInteraction);
13
- const [comments, setComments] = useState('');
14
- const resetForm = () => {
15
- setComments('');
16
- setSelectedInteraction(initialInteraction);
17
- setSelectedReason(initialReason);
18
- };
19
- return (_jsx(FormDialog, { target: target, heading: heading, onCancel: () => {
20
- close();
21
- onClose?.();
22
- resetForm();
23
- }, onSubmit: () => {
24
- onAddInteraction({
25
- reasonId: selectedReason?.id,
26
- comments,
27
- interactionOptionId: selectedInteraction?.id
28
- }, { close });
29
- }, children: _jsx(StyledInteractionForm, { children: _jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [message && _jsx(Banner, { ...message }), interactionOptions && (_jsx(ComboBox, { label: t('call_panel_handover_interaction_label'), selected: {
30
- items: selectedInteraction
31
- ? { id: selectedInteraction.id, text: selectedInteraction.label }
32
- : undefined
33
- }, menu: {
34
- items: interactionOptions.map(({ id, label }) => ({
35
- id,
36
- primary: label,
37
- selected: id === selectedInteraction?.id
38
- })),
39
- onItemClick: id => setSelectedInteraction(interactionOptions?.find(option => option.id === id))
40
- } })), reasonOptions && (_jsx(ComboBox, { label: t('call_panel_handover_reason_label'), selected: {
41
- items: selectedReason
42
- ? { id: selectedReason.id, text: selectedReason.label }
43
- : undefined
44
- }, menu: {
45
- items: reasonOptions?.map(({ id, label }) => ({
46
- id,
47
- primary: label,
48
- selected: id === selectedReason?.id
49
- })),
50
- onItemClick: id => setSelectedReason(reasonOptions?.find(option => option.id === id))
51
- } })), _jsx(TextArea, { label: t('call_panel_handover_comments_label'), displayCharCount: true, maxLength: 300, value: comments, onChange: (e) => setComments(e.target.value) })] }) }) }));
52
- };
53
- export default AttachInteractionDialog;
54
- //# sourceMappingURL=AttachInteractionDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachInteractionDialog.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/AttachInteractionDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,QAAQ,EAAe,MAAM,OAAO,CAAC;AACjE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EAER,UAAU,EAEX,MAAM,yBAAyB,CAAC;AA6CjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE,CAAC;AAEpD,qBAAqB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEtD,MAAM,uBAAuB,GAAoD,CAAC,EAChF,OAAO,EACP,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,KAAK,EACwB,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAChF,MAAM,kBAAkB,GAAG,kBAAkB,EAAE,IAAI,CACjD,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,kBAAkB,CACrD,CAAC;IAEF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAyB,aAAa,CAAC,CAAC;IAC5F,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAC5D,kBAAkB,CACnB,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC3C,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,GAAG,EAAE;YACb,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;QACd,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;YACb,gBAAgB,CACd;gBACE,QAAQ,EAAE,cAAc,EAAE,EAAE;gBAC5B,QAAQ;gBACR,mBAAmB,EAAE,mBAAmB,EAAE,EAAE;aAC7C,EACD,EAAE,KAAK,EAAE,CACV,CAAC;QACJ,CAAC,YAED,KAAC,qBAAqB,cACpB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7C,OAAO,IAAI,KAAC,MAAM,OAAK,OAAO,GAAI,EAElC,kBAAkB,IAAI,CACrB,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,CAAC,uCAAuC,CAAC,EACjD,QAAQ,EAAE;4BACR,KAAK,EAAE,mBAAmB;gCACxB,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE;gCACjE,CAAC,CAAC,SAAS;yBACd,EACD,IAAI,EAAE;4BACJ,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gCAChD,EAAE;gCACF,OAAO,EAAE,KAAK;gCACd,QAAQ,EAAE,EAAE,KAAK,mBAAmB,EAAE,EAAE;6BACzC,CAAC,CAAC;4BACH,WAAW,EAAE,EAAE,CAAC,EAAE,CAChB,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;yBAC/E,GACD,CACH,EAEA,aAAa,IAAI,CAChB,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,CAAC,kCAAkC,CAAC,EAC5C,QAAQ,EAAE;4BACR,KAAK,EAAE,cAAc;gCACnB,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE;gCACvD,CAAC,CAAC,SAAS;yBACd,EACD,IAAI,EAAE;4BACJ,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gCAC5C,EAAE;gCACF,OAAO,EAAE,KAAK;gCACd,QAAQ,EAAE,EAAE,KAAK,cAAc,EAAE,EAAE;6BACpC,CAAC,CAAC;4BACH,WAAW,EAAE,EAAE,CAAC,EAAE,CAChB,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;yBACrE,GACD,CACH,EAED,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,CAAC,oCAAoC,CAAC,EAC9C,gBAAgB,QAChB,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAmC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC9E,IACG,GACe,GACb,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import { FunctionComponent, useState, ChangeEvent } from 'react';\nimport styled from 'styled-components';\n\nimport {\n defaultThemeProp,\n Flex,\n useI18n,\n Form,\n Banner,\n ComboBox,\n TextArea,\n BannerProps,\n FormDialog,\n FormDialogProps\n} from '@pega/cosmos-react-core';\n\nexport interface MenuOption {\n id: string;\n label: string;\n}\n\nexport interface AttachInteractionData {\n /** Selected reason option identifier. */\n reasonId?: MenuOption['id'];\n /** Interaction comments. */\n comments?: string;\n /** Selected interaction option identifier. */\n interactionOptionId?: MenuOption['id'];\n}\n\nexport interface AttachInteractionProps {\n /** The heading of the dialog. */\n heading: string;\n /**\n * Callback invoked when 'Submit' action has been clicked.\n * Must call given 'close' function on success.\n */\n onAddInteraction: (data: AttachInteractionData, arg: { close: () => void }) => void;\n /** Callback invoked when closing the dialog. */\n onClose?: () => void;\n /** Current selected reason */\n defaultReason?: MenuOption['id'];\n /** Reason options. The field will be hidden if not passed. */\n reasonOptions: Readonly<MenuOption[]>;\n /** Current selected interaction */\n defaultInteraction?: MenuOption['id'];\n /** Interaction options. The fill will be hidden if not passed. */\n interactionOptions?: Readonly<MenuOption[]>;\n /** Region for messages: errors, notifications, etc. */\n message?: Pick<BannerProps, 'variant' | 'messages' | 'onDismiss'>;\n}\n\nexport interface AttachInteractionDialogProps\n extends AttachInteractionProps,\n Pick<FormDialogProps, 'target'> {\n /** When invoked, sets the dialog target to null to close. Maintains interface support where onSubmit receives close arg. */\n close: () => void;\n}\n\nexport const StyledInteractionForm = styled(Form)``;\n\nStyledInteractionForm.defaultProps = defaultThemeProp;\n\nconst AttachInteractionDialog: FunctionComponent<AttachInteractionDialogProps> = ({\n heading,\n defaultReason,\n reasonOptions,\n defaultInteraction,\n interactionOptions,\n message,\n onAddInteraction,\n onClose,\n target,\n close\n}: AttachInteractionDialogProps) => {\n const t = useI18n();\n\n const initialReason = reasonOptions.find(reason => reason.id === defaultReason);\n const initialInteraction = interactionOptions?.find(\n interaction => interaction.id === defaultInteraction\n );\n\n const [selectedReason, setSelectedReason] = useState<MenuOption | undefined>(initialReason);\n const [selectedInteraction, setSelectedInteraction] = useState<MenuOption | undefined>(\n initialInteraction\n );\n const [comments, setComments] = useState('');\n\n const resetForm = () => {\n setComments('');\n setSelectedInteraction(initialInteraction);\n setSelectedReason(initialReason);\n };\n\n return (\n <FormDialog\n target={target}\n heading={heading}\n onCancel={() => {\n close();\n onClose?.();\n resetForm();\n }}\n onSubmit={() => {\n onAddInteraction(\n {\n reasonId: selectedReason?.id,\n comments,\n interactionOptionId: selectedInteraction?.id\n },\n { close }\n );\n }}\n >\n <StyledInteractionForm>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {message && <Banner {...message} />}\n\n {interactionOptions && (\n <ComboBox\n label={t('call_panel_handover_interaction_label')}\n selected={{\n items: selectedInteraction\n ? { id: selectedInteraction.id, text: selectedInteraction.label }\n : undefined\n }}\n menu={{\n items: interactionOptions.map(({ id, label }) => ({\n id,\n primary: label,\n selected: id === selectedInteraction?.id\n })),\n onItemClick: id =>\n setSelectedInteraction(interactionOptions?.find(option => option.id === id))\n }}\n />\n )}\n\n {reasonOptions && (\n <ComboBox\n label={t('call_panel_handover_reason_label')}\n selected={{\n items: selectedReason\n ? { id: selectedReason.id, text: selectedReason.label }\n : undefined\n }}\n menu={{\n items: reasonOptions?.map(({ id, label }) => ({\n id,\n primary: label,\n selected: id === selectedReason?.id\n })),\n onItemClick: id =>\n setSelectedReason(reasonOptions?.find(option => option.id === id))\n }}\n />\n )}\n\n <TextArea\n label={t('call_panel_handover_comments_label')}\n displayCharCount\n maxLength={300}\n value={comments}\n onChange={(e: ChangeEvent<HTMLTextAreaElement>) => setComments(e.target.value)}\n />\n </Flex>\n </StyledInteractionForm>\n </FormDialog>\n );\n};\n\nexport default AttachInteractionDialog;\n"]}
@@ -1,6 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { ForwardProps } from '@pega/cosmos-react-core';
3
- import type { CallProps } from './CallControlPanel.types';
4
- declare const Call: FunctionComponent<CallProps & ForwardProps>;
5
- export default Call;
6
- //# sourceMappingURL=Call.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Call.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/Call.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAE7E,OAAO,EAGL,YAAY,EAOb,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAgB1D,QAAA,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,GAAG,YAAY,CAmSrD,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,145 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useLayoutEffect, useRef, useState } from 'react';
3
- import { Button, Flex, Icon, registerIcon, SummaryItem, Text, useI18n, MenuButton } from '@pega/cosmos-react-core';
4
- import * as arrowUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-up.icon';
5
- import * as micSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-solid.icon';
6
- import * as micOffSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-off-solid.icon';
7
- import * as playSoldIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/play-solid.icon';
8
- import * as pauseSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pause-solid.icon';
9
- import * as phoneOutSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-out-solid.icon';
10
- import * as phoneHangupSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-hangup-solid.icon';
11
- import * as phoneMergeSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-merge-solid.icon';
12
- import { DialPadDialog } from '../DialPad';
13
- import { StyledHoldInfo, StyledCallContainer, StyledSLAProgress } from './CallControlPanel.styles';
14
- import StopWatch from './StopWatch';
15
- import { calculateSla } from './utils';
16
- import CallHandoverDialog from './CallHandover';
17
- registerIcon(arrowUpIcon, micSolidIcon, micOffSolidIcon, playSoldIcon, pauseSolidIcon, phoneOutSolidIcon, phoneHangupSolidIcon, phoneMergeSolidIcon);
18
- const Call = ({ id: callId, startedAt, onHoldSince, slaConfig, participants, onPauseToggle, muted, onMuteToggle, onDTMFPress, onConsultAction, onConferenceAction, onTransferAction, onMergeCall, onHandOffCall, onEndCall, defaultTransfer, transferOptions, defaultInteraction, interactionOptions }) => {
19
- const t = useI18n();
20
- const moreActionsButtonRef = useRef(null);
21
- const inCallSince = startedAt instanceof Date ? startedAt.getUTCMilliseconds() : startedAt;
22
- const [slaLevel, setSlaLevel] = useState(undefined);
23
- const [dialogType, setDialogType] = useState();
24
- const [showDTMF, setShowDTMF] = useState(false);
25
- const { slaTimeout, slaDuration } = calculateSla(Date.now() - inCallSince, slaConfig);
26
- const calculateCurrentSlaLevel = () => {
27
- const { currentSlaLevel } = calculateSla(Date.now() - inCallSince, slaConfig);
28
- setSlaLevel(currentSlaLevel);
29
- };
30
- useLayoutEffect(() => {
31
- calculateCurrentSlaLevel();
32
- const slaDurationInMillis = slaDuration && slaDuration * 1000;
33
- const timer = setTimeout(() => {
34
- calculateCurrentSlaLevel();
35
- }, slaDurationInMillis);
36
- return () => clearTimeout(timer);
37
- }, [inCallSince, slaLevel]);
38
- return (_jsxs(StyledCallContainer, { children: [_jsx(StyledSLAProgress, { determinate: true, placement: 'local', slaDuration: slaDuration, slaLevel: slaLevel }), participants.map((item, index) => {
39
- return (_jsx(SummaryItem, { overflowStrategy: 'ellipsis', visual: index !== 0 && _jsx(Icon, { name: 'arrow-up' }), primary: item.name, secondary: item.info && _jsx(Text, { variant: 'secondary', children: item.info }), actions: index === 0 ? (_jsxs(Flex, { container: { wrap: 'nowrap' }, children: [_jsx(Flex, { container: { alignItems: 'center' }, children: _jsx(StopWatch, { startTime: startedAt, timeout: slaConfig ? slaTimeout : undefined }) }), _jsx(Button, { icon: true, variant: 'simple', disabled: onHoldSince !== undefined, onClick: () => onMuteToggle(callId), label: t(muted ? 'call_panel_unmute_mic_menu_item' : 'call_panel_mute_mic_menu_item'), children: _jsx(Icon, { name: muted ? 'mic-solid' : 'mic-off-solid' }) }), _jsx(Button, { icon: true, variant: 'simple', disabled: !onPauseToggle, onClick: () => onPauseToggle?.(callId), label: t(onHoldSince !== undefined
40
- ? 'call_panel_resume_call_menu_item'
41
- : 'call_panel_pause_call_menu_item'), children: _jsx(Icon, { name: onHoldSince !== undefined ? 'play-solid' : 'pause-solid' }) }), onHoldSince ? (_jsxs(_Fragment, { children: [onMergeCall && (_jsx(Button, { icon: true, variant: 'simple', onClick: () => onMergeCall(callId), label: t('call_panel_merge_call_menu_item'), children: _jsx(Icon, { name: 'phone-merge-solid' }) })), onHandOffCall && (_jsx(Button, { icon: true, variant: 'simple', onClick: () => onHandOffCall(callId), label: t('call_panel_handoff_call_menu_item'), children: _jsx(Icon, { name: 'phone-out-solid' }) })), _jsx(Button, { icon: true, variant: 'simple', disabled: !onEndCall, onClick: () => onEndCall?.(callId), label: t('call_panel_hangup_call_menu_item'), children: _jsx(Icon, { name: 'phone-hangup-solid' }) }, 'hang_up')] })) : (_jsx(MenuButton, { ref: moreActionsButtonRef, text: t('actions'), iconOnly: true, icon: 'more', variant: 'simple', popover: {
42
- modifiers: [
43
- {
44
- name: 'flip',
45
- enabled: true,
46
- options: {
47
- fallbackPlacements: ['bottom-end', 'left', 'right']
48
- }
49
- }
50
- ]
51
- }, menu: {
52
- variant: 'flyout',
53
- items: [
54
- {
55
- id: 'conference',
56
- primary: t('call_panel_conference_call_menu_item'),
57
- disabled: !onConferenceAction,
58
- items: [
59
- {
60
- id: 'conferenceCallWithInteraction',
61
- primary: t('call_panel_menu_item_call_with_interaction'),
62
- onClick: () => setDialogType('conferenceWithInteractions')
63
- },
64
- {
65
- id: 'conferenceCallOnly',
66
- primary: t('call_panel_menu_item_call_only'),
67
- onClick: () => setDialogType('conferenceCallOnly')
68
- }
69
- ]
70
- },
71
- {
72
- id: 'consult',
73
- primary: t('call_panel_consult_call_menu_item'),
74
- disabled: !onConsultAction,
75
- items: [
76
- {
77
- id: 'consultCallWithInteraction',
78
- primary: t('call_panel_menu_item_call_with_interaction'),
79
- onClick: () => setDialogType('consultWithInteractions')
80
- },
81
- {
82
- id: 'consultCallOnly',
83
- primary: t('call_panel_menu_item_call_only'),
84
- onClick: () => setDialogType('consultCallOnly')
85
- }
86
- ]
87
- },
88
- {
89
- id: 'transfer',
90
- primary: t('call_panel_transfer_call_menu_item'),
91
- disabled: !onTransferAction,
92
- items: [
93
- {
94
- id: 'transferCallWithInteraction',
95
- primary: t('call_panel_menu_item_call_with_interaction'),
96
- onClick: () => setDialogType('transferWithInteractions')
97
- },
98
- {
99
- id: 'transferCallOnly',
100
- primary: t('call_panel_menu_item_call_only'),
101
- onClick: () => setDialogType('transferCallOnly')
102
- }
103
- ]
104
- },
105
- {
106
- id: 'dtmf',
107
- primary: t('call_panel_send_dtmf_menu_item'),
108
- disabled: !onDTMFPress,
109
- onClick: () => setShowDTMF(true)
110
- },
111
- {
112
- id: 'hang_up',
113
- primary: t('call_panel_hangup_call_menu_item'),
114
- disabled: !onEndCall,
115
- onClick: () => onEndCall?.(callId)
116
- }
117
- ]
118
- } }))] })) : (_jsx(Button, { icon: true, variant: 'simple', disabled: !item.onHangUp, onClick: () => item.onHangUp?.(callId, item.id), label: t('call_panel_hangup_call_menu_item'), children: _jsx(Icon, { name: 'phone-hangup-solid' }) }, 'hang_up')) }, item.id));
119
- }), onHoldSince !== undefined && (_jsx(StyledHoldInfo, { variant: 'pending', children: t('call_panel_call_on_hold', [
120
- _jsx(StopWatch, { startTime: onHoldSince })
121
- ]) })), dialogType && (_jsx(CallHandoverDialog, { target: moreActionsButtonRef.current, type: dialogType, defaultTransfer: defaultTransfer, transferOptions: transferOptions, defaultInteraction: defaultInteraction, interactionOptions: interactionOptions, onCancel: () => {
122
- setDialogType(undefined);
123
- moreActionsButtonRef.current?.focus();
124
- }, onSubmit: transferData => {
125
- switch (dialogType) {
126
- case 'conferenceCallOnly':
127
- case 'conferenceWithInteractions':
128
- onConferenceAction?.(callId, transferData);
129
- break;
130
- case 'consultCallOnly':
131
- case 'consultWithInteractions':
132
- onConsultAction?.(callId, transferData);
133
- break;
134
- case 'transferCallOnly':
135
- case 'transferWithInteractions':
136
- onTransferAction?.(callId, transferData);
137
- break;
138
- default:
139
- }
140
- setDialogType(undefined);
141
- moreActionsButtonRef.current?.focus();
142
- } })), showDTMF && (_jsx(DialPadDialog, { target: moreActionsButtonRef.current, onClose: () => setShowDTMF(false), onDialButtonClick: (key) => onDTMFPress?.(callId, String.fromCharCode(key)) }))] }));
143
- };
144
- export default Call;
145
- //# sourceMappingURL=Call.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Call.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/Call.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, useLayoutEffect, useRef, useState } from 'react';\n\nimport {\n Button,\n Flex,\n ForwardProps,\n Icon,\n registerIcon,\n SummaryItem,\n Text,\n useI18n,\n MenuButton\n} from '@pega/cosmos-react-core';\nimport * as arrowUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-up.icon';\nimport * as micSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-solid.icon';\nimport * as micOffSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/mic-off-solid.icon';\nimport * as playSoldIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/play-solid.icon';\nimport * as pauseSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pause-solid.icon';\nimport * as phoneOutSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-out-solid.icon';\nimport * as phoneHangupSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-hangup-solid.icon';\nimport * as phoneMergeSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/phone-merge-solid.icon';\n\nimport { DialPadDialog } from '../DialPad';\n\nimport { StyledHoldInfo, StyledCallContainer, StyledSLAProgress } from './CallControlPanel.styles';\nimport type { CallProps } from './CallControlPanel.types';\nimport StopWatch from './StopWatch';\nimport { calculateSla } from './utils';\nimport CallHandoverDialog from './CallHandover';\n\nregisterIcon(\n arrowUpIcon,\n micSolidIcon,\n micOffSolidIcon,\n playSoldIcon,\n pauseSolidIcon,\n phoneOutSolidIcon,\n phoneHangupSolidIcon,\n phoneMergeSolidIcon\n);\n\nconst Call: FunctionComponent<CallProps & ForwardProps> = ({\n id: callId,\n startedAt,\n onHoldSince,\n slaConfig,\n participants,\n onPauseToggle,\n muted,\n onMuteToggle,\n onDTMFPress,\n onConsultAction,\n onConferenceAction,\n onTransferAction,\n onMergeCall,\n onHandOffCall,\n onEndCall,\n defaultTransfer,\n transferOptions,\n defaultInteraction,\n interactionOptions\n}: CallProps & ForwardProps) => {\n const t = useI18n();\n const moreActionsButtonRef = useRef<HTMLButtonElement>(null);\n const inCallSince = startedAt instanceof Date ? startedAt.getUTCMilliseconds() : startedAt;\n const [slaLevel, setSlaLevel] = useState<number | undefined>(undefined);\n const [dialogType, setDialogType] = useState<\n | 'conferenceWithInteractions'\n | 'conferenceCallOnly'\n | 'transferWithInteractions'\n | 'transferCallOnly'\n | 'consultWithInteractions'\n | 'consultCallOnly'\n | undefined\n >();\n const [showDTMF, setShowDTMF] = useState(false);\n\n const { slaTimeout, slaDuration } = calculateSla(Date.now() - inCallSince, slaConfig);\n\n const calculateCurrentSlaLevel = (): void => {\n const { currentSlaLevel } = calculateSla(Date.now() - inCallSince, slaConfig);\n setSlaLevel(currentSlaLevel);\n };\n\n useLayoutEffect(() => {\n calculateCurrentSlaLevel();\n const slaDurationInMillis = slaDuration && slaDuration * 1000;\n\n const timer = setTimeout(() => {\n calculateCurrentSlaLevel();\n }, slaDurationInMillis);\n\n return () => clearTimeout(timer);\n }, [inCallSince, slaLevel]);\n\n return (\n <StyledCallContainer>\n <StyledSLAProgress\n determinate\n placement='local'\n slaDuration={slaDuration}\n slaLevel={slaLevel}\n />\n {participants.map((item, index) => {\n return (\n <SummaryItem\n overflowStrategy='ellipsis'\n visual={index !== 0 && <Icon name='arrow-up' />}\n primary={item.name}\n secondary={item.info && <Text variant='secondary'>{item.info}</Text>}\n key={item.id}\n actions={\n index === 0 ? (\n <Flex container={{ wrap: 'nowrap' }}>\n <Flex container={{ alignItems: 'center' }}>\n <StopWatch startTime={startedAt} timeout={slaConfig ? slaTimeout : undefined} />\n </Flex>\n\n <Button\n icon\n variant='simple'\n disabled={onHoldSince !== undefined}\n onClick={() => onMuteToggle(callId)}\n label={t(\n muted ? 'call_panel_unmute_mic_menu_item' : 'call_panel_mute_mic_menu_item'\n )}\n >\n <Icon name={muted ? 'mic-solid' : 'mic-off-solid'} />\n </Button>\n\n <Button\n icon\n variant='simple'\n disabled={!onPauseToggle}\n onClick={() => onPauseToggle?.(callId)}\n label={t(\n onHoldSince !== undefined\n ? 'call_panel_resume_call_menu_item'\n : 'call_panel_pause_call_menu_item'\n )}\n >\n <Icon name={onHoldSince !== undefined ? 'play-solid' : 'pause-solid'} />\n </Button>\n {onHoldSince ? (\n <>\n {onMergeCall && (\n <Button\n icon\n variant='simple'\n onClick={() => onMergeCall(callId)}\n label={t('call_panel_merge_call_menu_item')}\n >\n <Icon name='phone-merge-solid' />\n </Button>\n )}\n {onHandOffCall && (\n <Button\n icon\n variant='simple'\n onClick={() => onHandOffCall(callId)}\n label={t('call_panel_handoff_call_menu_item')}\n >\n <Icon name='phone-out-solid' />\n </Button>\n )}\n <Button\n icon\n variant='simple'\n key='hang_up'\n disabled={!onEndCall}\n onClick={() => onEndCall?.(callId)}\n label={t('call_panel_hangup_call_menu_item')}\n >\n <Icon name='phone-hangup-solid' />\n </Button>\n </>\n ) : (\n <MenuButton\n ref={moreActionsButtonRef}\n text={t('actions')}\n iconOnly\n icon='more'\n variant='simple'\n popover={{\n modifiers: [\n {\n name: 'flip',\n enabled: true,\n options: {\n fallbackPlacements: ['bottom-end', 'left', 'right']\n }\n }\n ]\n }}\n menu={{\n variant: 'flyout',\n items: [\n {\n id: 'conference',\n primary: t('call_panel_conference_call_menu_item'),\n disabled: !onConferenceAction,\n items: [\n {\n id: 'conferenceCallWithInteraction',\n primary: t('call_panel_menu_item_call_with_interaction'),\n onClick: () => setDialogType('conferenceWithInteractions')\n },\n {\n id: 'conferenceCallOnly',\n primary: t('call_panel_menu_item_call_only'),\n onClick: () => setDialogType('conferenceCallOnly')\n }\n ]\n },\n {\n id: 'consult',\n primary: t('call_panel_consult_call_menu_item'),\n disabled: !onConsultAction,\n items: [\n {\n id: 'consultCallWithInteraction',\n primary: t('call_panel_menu_item_call_with_interaction'),\n onClick: () => setDialogType('consultWithInteractions')\n },\n {\n id: 'consultCallOnly',\n primary: t('call_panel_menu_item_call_only'),\n onClick: () => setDialogType('consultCallOnly')\n }\n ]\n },\n {\n id: 'transfer',\n primary: t('call_panel_transfer_call_menu_item'),\n disabled: !onTransferAction,\n items: [\n {\n id: 'transferCallWithInteraction',\n primary: t('call_panel_menu_item_call_with_interaction'),\n onClick: () => setDialogType('transferWithInteractions')\n },\n {\n id: 'transferCallOnly',\n primary: t('call_panel_menu_item_call_only'),\n onClick: () => setDialogType('transferCallOnly')\n }\n ]\n },\n {\n id: 'dtmf',\n primary: t('call_panel_send_dtmf_menu_item'),\n disabled: !onDTMFPress,\n onClick: () => setShowDTMF(true)\n },\n {\n id: 'hang_up',\n primary: t('call_panel_hangup_call_menu_item'),\n disabled: !onEndCall,\n onClick: () => onEndCall?.(callId)\n }\n ]\n }}\n />\n )}\n </Flex>\n ) : (\n <Button\n icon\n variant='simple'\n key='hang_up'\n disabled={!item.onHangUp}\n onClick={() => item.onHangUp?.(callId, item.id)}\n label={t('call_panel_hangup_call_menu_item')}\n >\n <Icon name='phone-hangup-solid' />\n </Button>\n )\n }\n />\n );\n })}\n {onHoldSince !== undefined && (\n <StyledHoldInfo variant='pending'>\n {\n t('call_panel_call_on_hold', [\n <StopWatch startTime={onHoldSince} />\n ]) as unknown as string\n }\n </StyledHoldInfo>\n )}\n {dialogType && (\n <CallHandoverDialog\n target={moreActionsButtonRef.current}\n type={dialogType}\n defaultTransfer={defaultTransfer}\n transferOptions={transferOptions}\n defaultInteraction={defaultInteraction}\n interactionOptions={interactionOptions}\n onCancel={() => {\n setDialogType(undefined);\n moreActionsButtonRef.current?.focus();\n }}\n onSubmit={transferData => {\n switch (dialogType) {\n case 'conferenceCallOnly':\n case 'conferenceWithInteractions':\n onConferenceAction?.(callId, transferData);\n break;\n case 'consultCallOnly':\n case 'consultWithInteractions':\n onConsultAction?.(callId, transferData);\n break;\n case 'transferCallOnly':\n case 'transferWithInteractions':\n onTransferAction?.(callId, transferData);\n break;\n default:\n }\n setDialogType(undefined);\n moreActionsButtonRef.current?.focus();\n }}\n />\n )}\n {showDTMF && (\n <DialPadDialog\n target={moreActionsButtonRef.current}\n onClose={() => setShowDTMF(false)}\n onDialButtonClick={(key: number) => onDTMFPress?.(callId, String.fromCharCode(key))}\n />\n )}\n </StyledCallContainer>\n );\n};\n\nexport default Call;\n"]}
@@ -1,6 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { ForwardProps } from '@pega/cosmos-react-core';
3
- import type { CallControlPanelProps } from './CallControlPanel.types';
4
- declare const CallControlPanel: FunctionComponent<CallControlPanelProps & ForwardProps>;
5
- export default CallControlPanel;
6
- //# sourceMappingURL=CallControlPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallControlPanel.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/CallControlPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAMlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAOL,YAAY,EAWb,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAYtE,QAAA,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,qBAAqB,GAAG,YAAY,CAuJ7E,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,61 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useEffect, useMemo, useRef, useState } from 'react';
3
- import { CardContent, useI18n, registerIcon, Flex, ComboBox, useOuterEvent, useConsolidatedRef, useEscape, Button, CardHeader, Icon, Text, Banner, hasProp, getFocusables, useFocusTrap } from '@pega/cosmos-react-core';
4
- import * as plusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/plus.icon';
5
- import Dialog from '@pega/cosmos-react-core/lib/components/Dialog/Dialog';
6
- import Call from './Call';
7
- import StopWatch from './StopWatch';
8
- import { StyledCalleePicker, StyledStatusRow } from './CallControlPanel.styles';
9
- import { UserStatusIcon } from './CallControlPanelIcon';
10
- import FloatingPanel from './FloatingPanel';
11
- import { ContactsContext } from './ContactList';
12
- import CalleePicker from './ContactList/CalleePicker';
13
- import IncomingCall from './IncomingCall';
14
- registerIcon(plusIcon);
15
- const CallControlPanel = forwardRef(function CallControlPanel({ heading, userStatus, message, draggable = false, calls, onAddCall, contactsList, onFavoriteToggle, visible, interactionTransfer, ...restProps }, ref) {
16
- const t = useI18n();
17
- const newCallButtonRef = useRef(null);
18
- const [showDialog, setShowDialog] = useState(false);
19
- const containerRef = useConsolidatedRef(ref);
20
- const dialogRef = useRef(null);
21
- useOuterEvent('mousedown', [dialogRef], () => {
22
- setShowDialog(false);
23
- });
24
- useEscape(() => setShowDialog(false), dialogRef);
25
- const selectedStatusOption = userStatus?.statusOptions.find(s => s.id === userStatus.status);
26
- const newCallButton = {
27
- id: 'new-call',
28
- text: t('call_panel_make_new_call'),
29
- onClick: () => setShowDialog(true),
30
- icon: 'plus',
31
- ref: newCallButtonRef
32
- };
33
- const ctx = useMemo(() => ({
34
- contacts: contactsList,
35
- onFavoriteToggle
36
- }), [contactsList, onFavoriteToggle]);
37
- useFocusTrap(dialogRef);
38
- useEffect(() => {
39
- if (showDialog) {
40
- const focusables = getFocusables(dialogRef);
41
- if (focusables[0])
42
- focusables[0]?.focus();
43
- }
44
- }, [showDialog]);
45
- return (_jsx(ContactsContext.Provider, { value: ctx, children: _jsxs(FloatingPanel, { ...restProps, ref: containerRef, draggable: draggable, visible: visible, heading: heading, actions: onAddCall ? [newCallButton] : undefined, children: [_jsxs(CardContent, { container: { itemGap: 2 }, children: [message && _jsx(Banner, { ...message }), interactionTransfer && (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(Text, { variant: 'h4', as: 'span', children: t('call_panel_interaction_transfer_heading') }), _jsxs("div", { children: [_jsx(Button, { variant: 'secondary', onClick: interactionTransfer.onCancel, children: t('cancel') }), _jsx(Button, { variant: 'primary', onClick: interactionTransfer.onComplete, children: t('call_panel_interaction_transfer_complete_button_label') })] })] })), userStatus ? (_jsxs(Flex, { as: StyledStatusRow, container: { alignItems: 'start', itemGap: 1 }, children: [_jsx(UserStatusIcon, { variant: 'dot', status: selectedStatusOption?.status }), _jsx(Flex, { item: { grow: 1 }, children: _jsx(ComboBox, { label: t('call_panel_agent_status'), labelHidden: true, selected: {
46
- items: {
47
- id: userStatus.status,
48
- text: selectedStatusOption?.label || userStatus.status
49
- }
50
- }, menu: {
51
- items: userStatus.statusOptions.map(({ id, label, disabled }) => {
52
- return { id, primary: label, selected: id === userStatus.status, disabled };
53
- }),
54
- onItemClick: userStatus.onChange
55
- } }) }), _jsx(StopWatch, { startTime: userStatus.inStatusSince })] })) : undefined, calls.map(callProps => hasProp(callProps, 'onAcceptCall') ? (_jsx(IncomingCall, { ...callProps }, callProps.id)) : (_jsx(Call, { ...callProps }, callProps.id)))] }), showDialog && newCallButtonRef.current && (_jsx(Dialog, { target: newCallButtonRef.current, ref: dialogRef, placement: 'bottom-end', children: _jsxs(StyledCalleePicker, { children: [_jsx(CardHeader, { actions: _jsx(Button, { icon: true, variant: 'simple', "aria-label": t('close'), onClick: () => setShowDialog(false), children: _jsx(Icon, { name: 'times' }) }), children: _jsx(Flex, { container: { alignItems: 'center', itemGap: 1 }, children: _jsx(Text, { variant: 'h3', children: t('call_panel_new_call_heading') }) }) }), _jsx(CardContent, { container: { itemGap: 2 }, children: _jsx(CalleePicker, { variant: 'action', onSelection: phoneNumber => {
56
- onAddCall?.(phoneNumber);
57
- setShowDialog(false);
58
- } }) })] }) }))] }) }));
59
- });
60
- export default CallControlPanel;
61
- //# sourceMappingURL=CallControlPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallControlPanel.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/CallControlPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n FunctionComponent,\n PropsWithoutRef,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport {\n CardContent,\n useI18n,\n registerIcon,\n Flex,\n ComboBox,\n useOuterEvent,\n ForwardProps,\n useConsolidatedRef,\n useEscape,\n Button,\n CardHeader,\n Icon,\n Text,\n Banner,\n hasProp,\n getFocusables,\n useFocusTrap\n} from '@pega/cosmos-react-core';\nimport * as plusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/plus.icon';\nimport Dialog from '@pega/cosmos-react-core/lib/components/Dialog/Dialog';\n\nimport type { CallControlPanelProps } from './CallControlPanel.types';\nimport Call from './Call';\nimport StopWatch from './StopWatch';\nimport { StyledCalleePicker, StyledStatusRow } from './CallControlPanel.styles';\nimport { UserStatusIcon } from './CallControlPanelIcon';\nimport FloatingPanel, { FloatingPanelActionProps } from './FloatingPanel';\nimport { ContactsContext } from './ContactList';\nimport CalleePicker from './ContactList/CalleePicker';\nimport IncomingCall from './IncomingCall';\n\nregisterIcon(plusIcon);\n\nconst CallControlPanel: FunctionComponent<CallControlPanelProps & ForwardProps> = forwardRef(\n function CallControlPanel(\n {\n heading,\n userStatus,\n message,\n draggable = false,\n calls,\n onAddCall,\n contactsList,\n onFavoriteToggle,\n visible,\n interactionTransfer,\n ...restProps\n }: PropsWithoutRef<CallControlPanelProps>,\n ref: CallControlPanelProps['ref']\n ) {\n const t = useI18n();\n const newCallButtonRef = useRef<HTMLButtonElement>(null);\n const [showDialog, setShowDialog] = useState(false);\n const containerRef = useConsolidatedRef(ref);\n const dialogRef = useRef<HTMLDivElement>(null);\n\n useOuterEvent('mousedown', [dialogRef], () => {\n setShowDialog(false);\n });\n\n useEscape(() => setShowDialog(false), dialogRef);\n\n const selectedStatusOption = userStatus?.statusOptions.find(s => s.id === userStatus.status);\n\n const newCallButton: FloatingPanelActionProps = {\n id: 'new-call',\n text: t('call_panel_make_new_call'),\n onClick: () => setShowDialog(true),\n icon: 'plus',\n ref: newCallButtonRef\n };\n\n const ctx = useMemo(\n () => ({\n contacts: contactsList,\n onFavoriteToggle\n }),\n [contactsList, onFavoriteToggle]\n );\n\n useFocusTrap(dialogRef);\n\n useEffect(() => {\n if (showDialog) {\n const focusables = getFocusables(dialogRef);\n if (focusables[0]) focusables[0]?.focus();\n }\n }, [showDialog]);\n\n return (\n <ContactsContext.Provider value={ctx}>\n <FloatingPanel\n {...restProps}\n ref={containerRef}\n draggable={draggable}\n visible={visible}\n heading={heading}\n actions={onAddCall ? [newCallButton] : undefined}\n >\n <CardContent container={{ itemGap: 2 }}>\n {message && <Banner {...message} />}\n {interactionTransfer && (\n <Flex container={{ direction: 'column', gap: 1 }}>\n <Text variant='h4' as='span'>\n {t('call_panel_interaction_transfer_heading')}\n </Text>\n <div>\n <Button variant='secondary' onClick={interactionTransfer.onCancel}>\n {t('cancel')}\n </Button>\n <Button variant='primary' onClick={interactionTransfer.onComplete}>\n {t('call_panel_interaction_transfer_complete_button_label')}\n </Button>\n </div>\n </Flex>\n )}\n {userStatus ? (\n <Flex as={StyledStatusRow} container={{ alignItems: 'start', itemGap: 1 }}>\n <UserStatusIcon variant='dot' status={selectedStatusOption?.status} />\n <Flex item={{ grow: 1 }}>\n <ComboBox\n label={t('call_panel_agent_status')}\n labelHidden\n selected={{\n items: {\n id: userStatus.status,\n text: selectedStatusOption?.label || userStatus.status\n }\n }}\n menu={{\n items: userStatus.statusOptions.map(({ id, label, disabled }) => {\n return { id, primary: label, selected: id === userStatus.status, disabled };\n }),\n onItemClick: userStatus.onChange\n }}\n />\n </Flex>\n <StopWatch startTime={userStatus.inStatusSince} />\n </Flex>\n ) : undefined}\n\n {calls.map(callProps =>\n hasProp(callProps, 'onAcceptCall') ? (\n <IncomingCall key={callProps.id} {...callProps} />\n ) : (\n <Call key={callProps.id} {...callProps} />\n )\n )}\n </CardContent>\n {showDialog && newCallButtonRef.current && (\n <Dialog target={newCallButtonRef.current} ref={dialogRef} placement='bottom-end'>\n <StyledCalleePicker>\n <CardHeader\n actions={\n <Button\n icon\n variant='simple'\n aria-label={t('close')}\n onClick={() => setShowDialog(false)}\n >\n <Icon name='times' />\n </Button>\n }\n >\n <Flex container={{ alignItems: 'center', itemGap: 1 }}>\n <Text variant='h3'>{t('call_panel_new_call_heading')}</Text>\n </Flex>\n </CardHeader>\n <CardContent container={{ itemGap: 2 }}>\n <CalleePicker\n variant='action'\n onSelection={phoneNumber => {\n onAddCall?.(phoneNumber);\n setShowDialog(false);\n }}\n />\n </CardContent>\n </StyledCalleePicker>\n </Dialog>\n )}\n </FloatingPanel>\n </ContactsContext.Provider>\n );\n }\n);\n\nexport default CallControlPanel;\n"]}
@@ -1,16 +0,0 @@
1
- /// <reference types="react" />
2
- import { ProgressProps } from '@pega/cosmos-react-core';
3
- export declare const StyledCallContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
4
- export declare const StyledIncomingContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
5
- export declare const StyledHoldInfo: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<import("@pega/cosmos-react-core").StatusProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>> & {
6
- getTestIds: (testIdProp?: string | undefined) => import("@pega/cosmos-react-core").TestIdsRecord<readonly []>;
7
- }, import("styled-components").DefaultTheme, {}, never>;
8
- export declare const StyledStatusRow: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
9
- export declare const StyledSLAProgress: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ProgressProps & {
10
- determinate: boolean;
11
- } & {
12
- slaDuration?: number | undefined;
13
- slaLevel?: number | undefined;
14
- }, never>;
15
- export declare const StyledCalleePicker: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").CardProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
16
- //# sourceMappingURL=CallControlPanel.styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallControlPanel.styles.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/CallControlPanel.styles.ts"],"names":[],"mappings":";AAEA,OAAO,EAQL,aAAa,EAMd,MAAM,yBAAyB,CAAC;AAKjC,eAAO,MAAM,mBAAmB,yGAoC/B,CAAC;AAIF,eAAO,MAAM,uBAAuB,yGASlC,CAAC;AAIH,eAAO,MAAM,cAAc;;uDAI1B,CAAC;AAIF,eAAO,MAAM,eAAe,yGAiB3B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;SAwC5B,CAAC;AAIH,eAAO,MAAM,kBAAkB,mOAI9B,CAAC"}