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

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/lib/components/CTIPanel/CTIPanel.d.ts +13 -0
  2. package/lib/components/CTIPanel/CTIPanel.d.ts.map +1 -0
  3. package/lib/components/CTIPanel/CTIPanel.js +12 -0
  4. package/lib/components/CTIPanel/CTIPanel.js.map +1 -0
  5. package/lib/components/CTIPanel/index.d.ts +2 -0
  6. package/lib/components/CTIPanel/index.d.ts.map +1 -0
  7. package/lib/components/CTIPanel/index.js +2 -0
  8. package/lib/components/CTIPanel/index.js.map +1 -0
  9. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts +47 -0
  10. package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts.map +1 -0
  11. package/lib/components/CallControlPanel/AttachInteractionDialog.js +54 -0
  12. package/lib/components/CallControlPanel/AttachInteractionDialog.js.map +1 -0
  13. package/lib/components/CallControlPanel/Call.d.ts +6 -0
  14. package/lib/components/CallControlPanel/Call.d.ts.map +1 -0
  15. package/lib/components/CallControlPanel/Call.js +145 -0
  16. package/lib/components/CallControlPanel/Call.js.map +1 -0
  17. package/lib/components/CallControlPanel/CallControlPanel.d.ts +6 -0
  18. package/lib/components/CallControlPanel/CallControlPanel.d.ts.map +1 -0
  19. package/lib/components/CallControlPanel/CallControlPanel.js +61 -0
  20. package/lib/components/CallControlPanel/CallControlPanel.js.map +1 -0
  21. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts +16 -0
  22. package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts.map +1 -0
  23. package/lib/components/CallControlPanel/CallControlPanel.styles.js +105 -0
  24. package/lib/components/CallControlPanel/CallControlPanel.styles.js.map +1 -0
  25. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts +120 -0
  26. package/lib/components/CallControlPanel/CallControlPanel.types.d.ts.map +1 -0
  27. package/lib/components/CallControlPanel/CallControlPanel.types.js +2 -0
  28. package/lib/components/CallControlPanel/CallControlPanel.types.js.map +1 -0
  29. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts +15 -0
  30. package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts.map +1 -0
  31. package/lib/components/CallControlPanel/CallControlPanelIcon.js +81 -0
  32. package/lib/components/CallControlPanel/CallControlPanelIcon.js.map +1 -0
  33. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts +17 -0
  34. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts.map +1 -0
  35. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js +2 -0
  36. package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js.map +1 -0
  37. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts +16 -0
  38. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts.map +1 -0
  39. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js +56 -0
  40. package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js.map +1 -0
  41. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts +31 -0
  42. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts.map +1 -0
  43. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js +60 -0
  44. package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js.map +1 -0
  45. package/lib/components/CallControlPanel/CallHandover/index.d.ts +4 -0
  46. package/lib/components/CallControlPanel/CallHandover/index.d.ts.map +1 -0
  47. package/lib/components/CallControlPanel/CallHandover/index.js +4 -0
  48. package/lib/components/CallControlPanel/CallHandover/index.js.map +1 -0
  49. package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts +18 -0
  50. package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts.map +1 -0
  51. package/lib/components/CallControlPanel/ContactList/CalleePicker.js +54 -0
  52. package/lib/components/CallControlPanel/ContactList/CalleePicker.js.map +1 -0
  53. package/lib/components/CallControlPanel/ContactList/ContactList.d.ts +10 -0
  54. package/lib/components/CallControlPanel/ContactList/ContactList.d.ts.map +1 -0
  55. package/lib/components/CallControlPanel/ContactList/ContactList.js +129 -0
  56. package/lib/components/CallControlPanel/ContactList/ContactList.js.map +1 -0
  57. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts +30 -0
  58. package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts.map +1 -0
  59. package/lib/components/CallControlPanel/ContactList/ContactList.types.js +2 -0
  60. package/lib/components/CallControlPanel/ContactList/ContactList.types.js.map +1 -0
  61. package/lib/components/CallControlPanel/ContactList/index.d.ts +3 -0
  62. package/lib/components/CallControlPanel/ContactList/index.d.ts.map +1 -0
  63. package/lib/components/CallControlPanel/ContactList/index.js +2 -0
  64. package/lib/components/CallControlPanel/ContactList/index.js.map +1 -0
  65. package/lib/components/CallControlPanel/ExternalCTI.d.ts +24 -0
  66. package/lib/components/CallControlPanel/ExternalCTI.d.ts.map +1 -0
  67. package/lib/components/CallControlPanel/ExternalCTI.js +48 -0
  68. package/lib/components/CallControlPanel/ExternalCTI.js.map +1 -0
  69. package/lib/components/CallControlPanel/FloatingPanel.d.ts +36 -0
  70. package/lib/components/CallControlPanel/FloatingPanel.d.ts.map +1 -0
  71. package/lib/components/CallControlPanel/FloatingPanel.js +72 -0
  72. package/lib/components/CallControlPanel/FloatingPanel.js.map +1 -0
  73. package/lib/components/CallControlPanel/IncomingCall.d.ts +6 -0
  74. package/lib/components/CallControlPanel/IncomingCall.d.ts.map +1 -0
  75. package/lib/components/CallControlPanel/IncomingCall.js +18 -0
  76. package/lib/components/CallControlPanel/IncomingCall.js.map +1 -0
  77. package/lib/components/CallControlPanel/StopWatch.d.ts +11 -0
  78. package/lib/components/CallControlPanel/StopWatch.d.ts.map +1 -0
  79. package/lib/components/CallControlPanel/StopWatch.js +28 -0
  80. package/lib/components/CallControlPanel/StopWatch.js.map +1 -0
  81. package/lib/components/CallControlPanel/index.d.ts +5 -0
  82. package/lib/components/CallControlPanel/index.d.ts.map +1 -0
  83. package/lib/components/CallControlPanel/index.js +3 -0
  84. package/lib/components/CallControlPanel/index.js.map +1 -0
  85. package/lib/components/CallControlPanel/utils.d.ts +7 -0
  86. package/lib/components/CallControlPanel/utils.d.ts.map +1 -0
  87. package/lib/components/CallControlPanel/utils.js +34 -0
  88. package/lib/components/CallControlPanel/utils.js.map +1 -0
  89. package/lib/components/DialPad/DialPad.d.ts +18 -0
  90. package/lib/components/DialPad/DialPad.d.ts.map +1 -0
  91. package/lib/components/DialPad/DialPad.js +30 -0
  92. package/lib/components/DialPad/DialPad.js.map +1 -0
  93. package/lib/components/DialPad/DialPad.types.d.ts +33 -0
  94. package/lib/components/DialPad/DialPad.types.d.ts.map +1 -0
  95. package/lib/components/DialPad/DialPad.types.js +2 -0
  96. package/lib/components/DialPad/DialPad.types.js.map +1 -0
  97. package/lib/components/DialPad/DialPadDialog.d.ts +9 -0
  98. package/lib/components/DialPad/DialPadDialog.d.ts.map +1 -0
  99. package/lib/components/DialPad/DialPadDialog.js +35 -0
  100. package/lib/components/DialPad/DialPadDialog.js.map +1 -0
  101. package/lib/components/DialPad/DialPadKeyboard.d.ts +12 -0
  102. package/lib/components/DialPad/DialPadKeyboard.d.ts.map +1 -0
  103. package/lib/components/DialPad/DialPadKeyboard.js +89 -0
  104. package/lib/components/DialPad/DialPadKeyboard.js.map +1 -0
  105. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts +5 -0
  106. package/lib/components/DialPad/DialPadKeyboard.styles.d.ts.map +1 -0
  107. package/lib/components/DialPad/DialPadKeyboard.styles.js +76 -0
  108. package/lib/components/DialPad/DialPadKeyboard.styles.js.map +1 -0
  109. package/lib/components/DialPad/KeyboardNavigation.d.ts +6 -0
  110. package/lib/components/DialPad/KeyboardNavigation.d.ts.map +1 -0
  111. package/lib/components/DialPad/KeyboardNavigation.js +156 -0
  112. package/lib/components/DialPad/KeyboardNavigation.js.map +1 -0
  113. package/lib/components/DialPad/index.d.ts +4 -0
  114. package/lib/components/DialPad/index.d.ts.map +1 -0
  115. package/lib/components/DialPad/index.js +3 -0
  116. package/lib/components/DialPad/index.js.map +1 -0
  117. package/lib/components/DialPad/utils.d.ts +4 -0
  118. package/lib/components/DialPad/utils.d.ts.map +1 -0
  119. package/lib/components/DialPad/utils.js +7 -0
  120. package/lib/components/DialPad/utils.js.map +1 -0
  121. package/lib/components/InteractionNotification/CountdownButton.d.ts +15 -0
  122. package/lib/components/InteractionNotification/CountdownButton.d.ts.map +1 -0
  123. package/lib/components/InteractionNotification/CountdownButton.js +42 -0
  124. package/lib/components/InteractionNotification/CountdownButton.js.map +1 -0
  125. package/lib/components/InteractionNotification/InteractionNotification.d.ts +35 -0
  126. package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +1 -0
  127. package/lib/components/InteractionNotification/InteractionNotification.js +110 -0
  128. package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -0
  129. package/lib/components/InteractionNotification/index.d.ts +2 -0
  130. package/lib/components/InteractionNotification/index.d.ts.map +1 -0
  131. package/lib/components/InteractionNotification/index.js +2 -0
  132. package/lib/components/InteractionNotification/index.js.map +1 -0
  133. package/lib/components/InteractionTimer/InteractionTimer.d.ts +29 -0
  134. package/lib/components/InteractionTimer/InteractionTimer.d.ts.map +1 -0
  135. package/lib/components/InteractionTimer/InteractionTimer.js +90 -0
  136. package/lib/components/InteractionTimer/InteractionTimer.js.map +1 -0
  137. package/lib/components/InteractionTimer/index.d.ts +3 -0
  138. package/lib/components/InteractionTimer/index.d.ts.map +1 -0
  139. package/lib/components/InteractionTimer/index.js +2 -0
  140. package/lib/components/InteractionTimer/index.js.map +1 -0
  141. package/lib/components/Picker/Picker.d.ts +6 -0
  142. package/lib/components/Picker/Picker.d.ts.map +1 -0
  143. package/lib/components/Picker/Picker.js +109 -0
  144. package/lib/components/Picker/Picker.js.map +1 -0
  145. package/lib/components/Picker/Picker.styles.d.ts +12 -0
  146. package/lib/components/Picker/Picker.styles.d.ts.map +1 -0
  147. package/lib/components/Picker/Picker.styles.js +59 -0
  148. package/lib/components/Picker/Picker.styles.js.map +1 -0
  149. package/lib/components/Picker/Picker.types.d.ts +35 -0
  150. package/lib/components/Picker/Picker.types.d.ts.map +1 -0
  151. package/lib/components/Picker/Picker.types.js +2 -0
  152. package/lib/components/Picker/Picker.types.js.map +1 -0
  153. package/lib/components/Picker/index.d.ts +2 -0
  154. package/lib/components/Picker/index.d.ts.map +1 -0
  155. package/lib/components/Picker/index.js +2 -0
  156. package/lib/components/Picker/index.js.map +1 -0
  157. package/lib/components/TaskManager/ConversationAI.d.ts +6 -0
  158. package/lib/components/TaskManager/ConversationAI.d.ts.map +1 -0
  159. package/lib/components/TaskManager/ConversationAI.js +29 -0
  160. package/lib/components/TaskManager/ConversationAI.js.map +1 -0
  161. package/lib/components/TaskManager/Dialogue.d.ts +6 -0
  162. package/lib/components/TaskManager/Dialogue.d.ts.map +1 -0
  163. package/lib/components/TaskManager/Dialogue.js +30 -0
  164. package/lib/components/TaskManager/Dialogue.js.map +1 -0
  165. package/lib/components/TaskManager/TaskManager.context.d.ts +5 -0
  166. package/lib/components/TaskManager/TaskManager.context.d.ts.map +1 -0
  167. package/lib/components/TaskManager/TaskManager.context.js +3 -0
  168. package/lib/components/TaskManager/TaskManager.context.js.map +1 -0
  169. package/lib/components/TaskManager/TaskManager.d.ts +6 -0
  170. package/lib/components/TaskManager/TaskManager.d.ts.map +1 -0
  171. package/lib/components/TaskManager/TaskManager.js +68 -0
  172. package/lib/components/TaskManager/TaskManager.js.map +1 -0
  173. package/lib/components/TaskManager/TaskManager.styles.d.ts +37 -0
  174. package/lib/components/TaskManager/TaskManager.styles.d.ts.map +1 -0
  175. package/lib/components/TaskManager/TaskManager.styles.js +325 -0
  176. package/lib/components/TaskManager/TaskManager.styles.js.map +1 -0
  177. package/lib/components/TaskManager/TaskManager.types.d.ts +98 -0
  178. package/lib/components/TaskManager/TaskManager.types.d.ts.map +1 -0
  179. package/lib/components/TaskManager/TaskManager.types.js +2 -0
  180. package/lib/components/TaskManager/TaskManager.types.js.map +1 -0
  181. package/lib/components/TaskManager/TaskManagerTabs.d.ts +6 -0
  182. package/lib/components/TaskManager/TaskManagerTabs.d.ts.map +1 -0
  183. package/lib/components/TaskManager/TaskManagerTabs.js +186 -0
  184. package/lib/components/TaskManager/TaskManagerTabs.js.map +1 -0
  185. package/lib/components/TaskManager/TaskPicker.d.ts +19 -0
  186. package/lib/components/TaskManager/TaskPicker.d.ts.map +1 -0
  187. package/lib/components/TaskManager/TaskPicker.js +89 -0
  188. package/lib/components/TaskManager/TaskPicker.js.map +1 -0
  189. package/lib/components/TaskManager/TaskView.d.ts +6 -0
  190. package/lib/components/TaskManager/TaskView.d.ts.map +1 -0
  191. package/lib/components/TaskManager/TaskView.js +10 -0
  192. package/lib/components/TaskManager/TaskView.js.map +1 -0
  193. package/lib/components/TaskManager/index.d.ts +5 -0
  194. package/lib/components/TaskManager/index.d.ts.map +1 -0
  195. package/lib/components/TaskManager/index.js +4 -0
  196. package/lib/components/TaskManager/index.js.map +1 -0
  197. package/lib/index.d.ts +13 -0
  198. package/lib/index.d.ts.map +1 -0
  199. package/lib/index.js +14 -0
  200. package/lib/index.js.map +1 -0
  201. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallHandoverForm.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/CallHandover/CallHandoverForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, Ref, useState, ChangeEvent, forwardRef, PropsWithoutRef } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Button,\n registerIcon,\n defaultThemeProp,\n useI18n,\n TextArea,\n ComboBox,\n Form,\n Flex\n} from '@pega/cosmos-react-core';\nimport { StyledTabPanel } from '@pega/cosmos-react-core/lib/components/Tabs/TabPanel';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\n\nimport type { Contact } from '../ContactList';\nimport CalleePicker from '../ContactList/CalleePicker';\n\nimport type { TransferReasonOption, TransferData } from './CallHandover.types';\n\nregisterIcon(timesIcon);\n\nexport interface CallHandoverFormProps {\n /**\n * Callback fired on handover submission.\n * @param data the transfer parameters.\n */\n onSubmit: (data: TransferData) => void;\n /** Callback fired on clicking Cancel button. */\n onCancel: () => void;\n /** Current selected transfer reason */\n defaultTransfer?: TransferReasonOption['id'];\n /** Current selected interaction */\n defaultInteraction?: TransferReasonOption['id'];\n /** Transfer reason options. */\n transferOptions: Readonly<TransferReasonOption[]>;\n /** Interaction options. */\n interactionOptions?: Readonly<TransferReasonOption[]>;\n /** Reference to the root component. */\n ref?: Ref<HTMLFormElement>;\n /** Variant of component. */\n variant?: 'call' | 'call+interaction';\n /** Label of the submit button. */\n submitButtonText: string;\n}\n\nexport const StyledCallHandoverForm = styled(Form)`\n min-width: 50ch;\n\n ${StyledTabPanel} {\n height: 24rem;\n }\n`;\n\nStyledCallHandoverForm.defaultProps = defaultThemeProp;\n\nconst CallHandoverForm: FunctionComponent<CallHandoverFormProps> = forwardRef(\n function CallHandoverForm(\n {\n onCancel,\n onSubmit,\n transferOptions,\n variant,\n submitButtonText,\n interactionOptions,\n defaultTransfer,\n defaultInteraction\n }: PropsWithoutRef<CallHandoverFormProps>,\n ref: CallHandoverFormProps['ref']\n ) {\n const t = useI18n();\n\n const [selectedContact, setSelectedContact] = useState<Contact['phoneNumber']>();\n const initialReason = transferOptions.find(reason => reason.id === defaultTransfer);\n const initialInteraction = interactionOptions?.find(\n interaction => interaction.id === defaultInteraction\n );\n const [selectedReason, setSelectedReason] = useState<TransferReasonOption | undefined>(\n initialReason\n );\n const [selectedInteraction, setSelectedInteraction] = useState<\n TransferReasonOption | undefined\n >(initialInteraction);\n const [comments, setComments] = useState('');\n\n return (\n <StyledCallHandoverForm\n actions={\n <>\n <Button variant='secondary' onClick={onCancel}>\n {t('cancel')}\n </Button>\n <Button\n variant='primary'\n disabled={!(selectedContact && (variant === 'call+interaction' ? comments : true))}\n onClick={() => {\n if (!selectedContact) return;\n onSubmit({\n reason: selectedReason?.id,\n comments,\n interaction: variant === 'call+interaction',\n phoneNumber: selectedContact,\n transferredInteractionId: selectedInteraction?.id\n });\n }}\n >\n {submitButtonText}\n </Button>\n </>\n }\n ref={ref}\n >\n {variant === 'call+interaction' && (\n <Flex container={{ direction: 'column', gap: 1 }}>\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 <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: transferOptions.map(({ id, label }) => ({\n id,\n primary: label,\n selected: id === selectedReason?.id\n })),\n onItemClick: id =>\n setSelectedReason(transferOptions.find(option => option.id === id))\n }}\n />\n\n <TextArea\n name='comments'\n required\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 )}\n <CalleePicker\n selectedContact={selectedContact}\n onSelection={setSelectedContact}\n variant='select'\n />\n </StyledCallHandoverForm>\n );\n }\n);\n\nexport default CallHandoverForm;\n"]}
@@ -0,0 +1,4 @@
1
+ export { default } from './CallHandoverDialog';
2
+ export { default as CallHandoverForm } from './CallHandoverForm';
3
+ export * from './CallHandover.types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/CallHandover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default } from './CallHandoverDialog';
2
+ export { default as CallHandoverForm } from './CallHandoverForm';
3
+ export * from './CallHandover.types';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/CallHandover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,sBAAsB,CAAC","sourcesContent":["export { default } from './CallHandoverDialog';\nexport { default as CallHandoverForm } from './CallHandoverForm';\nexport * from './CallHandover.types';\n"]}
@@ -0,0 +1,18 @@
1
+ import { FunctionComponent, Ref } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ export interface CalleePickerProps {
4
+ /** Currently selected number. */
5
+ selectedContact?: string;
6
+ /**
7
+ * Callback fired on new call made by the user.
8
+ * @param phoneNumber the number chosen.
9
+ */
10
+ onSelection: (phoneNumber: string) => void;
11
+ /** Variant of the list. */
12
+ variant: 'action' | 'select';
13
+ /** Reference to the root component. */
14
+ ref?: Ref<HTMLDivElement>;
15
+ }
16
+ declare const CalleePicker: FunctionComponent<CalleePickerProps & ForwardProps>;
17
+ export default CalleePicker;
18
+ //# sourceMappingURL=CalleePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalleePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/CalleePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,GAAG,EAGJ,MAAM,OAAO,CAAC;AAGf,OAAO,EAIL,YAAY,EAGb,MAAM,yBAAyB,CAAC;AAUjC,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,uCAAuC;IACvC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAYD,QAAA,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,YAAY,CAkErE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext, forwardRef, useRef, useState } from 'react';
3
+ import styled, { css } from 'styled-components';
4
+ import { registerIcon, TabPanel, Tabs, defaultThemeProp, useI18n } from '@pega/cosmos-react-core';
5
+ import { StyledTabPanel } from '@pega/cosmos-react-core/lib/components/Tabs/TabPanel';
6
+ import * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';
7
+ import DialPad from '../../DialPad/DialPad';
8
+ import ContactList, { ContactsContext } from './ContactList';
9
+ registerIcon(timesIcon);
10
+ const StyledCalleePicker = styled.div(() => {
11
+ return css `
12
+ ${StyledTabPanel} {
13
+ height: 24rem;
14
+ }
15
+ `;
16
+ });
17
+ StyledCalleePicker.defaultProps = defaultThemeProp;
18
+ const CalleePicker = forwardRef(function CalleePicker({ selectedContact, onSelection, variant }, ref) {
19
+ const t = useI18n();
20
+ const [currentTab, setCurrentTab] = useState('all');
21
+ const tabsRef = useRef(null);
22
+ const { contacts, onFavoriteToggle } = useContext(ContactsContext);
23
+ const favorites = contacts.filter(item => item.favorite);
24
+ const tabs = [
25
+ { id: 'all', name: t('call_panel_contacts_list_heading'), count: contacts.length },
26
+ {
27
+ id: 'favorites',
28
+ name: t('call_panel_contacts_favorites_heading'),
29
+ count: contacts.filter(item => item.favorite).length
30
+ },
31
+ { id: 'dial-pad', name: t('call_panel_contacts_dial_pad_heading') }
32
+ ];
33
+ const [phoneNumber, setPhoneNumber] = useState('');
34
+ const tabContent = (tabId) => {
35
+ if (tabId === 'dial-pad')
36
+ return (_jsx(DialPad, { mode: 'default', ...(variant === 'action'
37
+ ? {
38
+ value: phoneNumber,
39
+ onChange: setPhoneNumber,
40
+ onCallClick: () => onSelection(phoneNumber)
41
+ }
42
+ : {
43
+ value: selectedContact ?? '',
44
+ onChange: onSelection
45
+ }) }));
46
+ return (_jsx(ContactList, { contacts: (tabId === 'favorites' ? favorites : contacts).map(contact => ({
47
+ ...contact,
48
+ selected: contact.phoneNumber === selectedContact
49
+ })), onFavoriteToggle: onFavoriteToggle, onItemClick: onSelection, variant: variant }));
50
+ };
51
+ return (_jsxs(StyledCalleePicker, { ref: ref, children: [_jsx(Tabs, { ref: tabsRef, tabs: tabs, type: 'horizontal', onTabClick: setCurrentTab, currentTabId: currentTab }), _jsx(TabPanel, { tabId: currentTab, children: tabContent(currentTab) })] }));
52
+ });
53
+ export default CalleePicker;
54
+ //# sourceMappingURL=CalleePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalleePicker.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/CalleePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useContext,\n forwardRef,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n useRef,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n registerIcon,\n TabPanel,\n Tabs,\n ForwardProps,\n defaultThemeProp,\n useI18n\n} from '@pega/cosmos-react-core';\nimport { StyledTabPanel } from '@pega/cosmos-react-core/lib/components/Tabs/TabPanel';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\n\nimport DialPad from '../../DialPad/DialPad';\n\nimport ContactList, { ContactsContext } from './ContactList';\n\nregisterIcon(timesIcon);\n\nexport interface CalleePickerProps {\n /** Currently selected number. */\n selectedContact?: string;\n /**\n * Callback fired on new call made by the user.\n * @param phoneNumber the number chosen.\n */\n onSelection: (phoneNumber: string) => void;\n /** Variant of the list. */\n variant: 'action' | 'select';\n /** Reference to the root component. */\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledCalleePicker = styled.div(() => {\n return css`\n ${StyledTabPanel} {\n height: 24rem;\n }\n `;\n});\n\nStyledCalleePicker.defaultProps = defaultThemeProp;\n\nconst CalleePicker: FunctionComponent<CalleePickerProps & ForwardProps> = forwardRef(\n function CalleePicker(\n { selectedContact, onSelection, variant }: PropsWithoutRef<CalleePickerProps>,\n ref: CalleePickerProps['ref']\n ) {\n const t = useI18n();\n const [currentTab, setCurrentTab] = useState('all');\n const tabsRef = useRef<HTMLElement>(null);\n const { contacts, onFavoriteToggle } = useContext(ContactsContext);\n const favorites = contacts.filter(item => item.favorite);\n\n const tabs = [\n { id: 'all', name: t('call_panel_contacts_list_heading'), count: contacts.length },\n {\n id: 'favorites',\n name: t('call_panel_contacts_favorites_heading'),\n count: contacts.filter(item => item.favorite).length\n },\n { id: 'dial-pad', name: t('call_panel_contacts_dial_pad_heading') }\n ];\n\n const [phoneNumber, setPhoneNumber] = useState('');\n\n const tabContent = (tabId: string) => {\n if (tabId === 'dial-pad')\n return (\n <DialPad\n mode='default'\n {...(variant === 'action'\n ? {\n value: phoneNumber,\n onChange: setPhoneNumber,\n onCallClick: () => onSelection(phoneNumber)\n }\n : {\n value: selectedContact ?? '',\n onChange: onSelection\n })}\n />\n );\n return (\n <ContactList\n contacts={(tabId === 'favorites' ? favorites : contacts).map(contact => ({\n ...contact,\n selected: contact.phoneNumber === selectedContact\n }))}\n onFavoriteToggle={onFavoriteToggle}\n onItemClick={onSelection}\n variant={variant}\n />\n );\n };\n\n return (\n <StyledCalleePicker ref={ref}>\n <Tabs\n ref={tabsRef}\n tabs={tabs}\n type='horizontal'\n onTabClick={setCurrentTab}\n currentTabId={currentTab}\n />\n <TabPanel tabId={currentTab}>{tabContent(currentTab)}</TabPanel>\n </StyledCalleePicker>\n );\n }\n);\n\nexport default CalleePicker;\n"]}
@@ -0,0 +1,10 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ import type { Contact, ContactListProps } from './ContactList.types';
4
+ export declare const ContactsContext: import("react").Context<{
5
+ contacts: Contact[];
6
+ onFavoriteToggle: ContactListProps['onFavoriteToggle'];
7
+ }>;
8
+ declare const ContactList: FunctionComponent<ContactListProps & ForwardProps>;
9
+ export default ContactList;
10
+ //# sourceMappingURL=ContactList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactList.d.ts","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/ContactList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAGf,OAAO,EAGL,YAAY,EAkBb,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAiExF,eAAO,MAAM,eAAe;cAChB,OAAO,EAAE;sBACD,gBAAgB,CAAC,kBAAkB,CAAC;EAItD,CAAC;AAgDH,QAAA,MAAM,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,YAAY,CAoFnE,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,129 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, forwardRef, useCallback, useState } from 'react';
3
+ import styled, { css } from 'styled-components';
4
+ import { Button, defaultThemeProp, Icon, registerIcon, Text, useI18n, ViewAll, StyledSummaryItemActions, StyledPrimary, StyledSecondary, useArrows, useConsolidatedRef, StyledCard, RadioButton, SummaryItem, StyledSummaryItem, StyledLabel } from '@pega/cosmos-react-core';
5
+ import { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';
6
+ import * as starIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/star.icon';
7
+ import * as starSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/star-solid.icon';
8
+ import { StyledRadioCheckCard } from '@pega/cosmos-react-core/lib/components/RadioCheck/RadioCheck';
9
+ import BareRoleButton from '@pega/cosmos-react-core/lib/components/Button/BareRoleButton';
10
+ registerIcon(starIcon, starSolidIcon);
11
+ const StyledContactList = styled.div(({ theme: { base, components } }) => {
12
+ return css `
13
+ height: 100%;
14
+ overflow-y: auto;
15
+ overflow-x: hidden;
16
+ padding: 0 calc(0.5 * ${base.spacing}) calc(0.5 * ${base.spacing});
17
+
18
+ > ${StyledCard} > ${StyledCardContent} {
19
+ padding: 0;
20
+ gap: 0;
21
+ }
22
+
23
+ ul {
24
+ list-style: none;
25
+ }
26
+
27
+ ${StyledRadioCheckCard} {
28
+ background-color: transparent;
29
+ border: 0;
30
+ padding: 0 calc(0.5 * ${base.spacing});
31
+ height: ${components.button.height};
32
+ align-items: center;
33
+ border-radius: 0;
34
+
35
+ > ${StyledLabel} {
36
+ max-width: 100%;
37
+ width: 100%;
38
+ margin: 0;
39
+ }
40
+ }
41
+
42
+ li {
43
+ padding: 0;
44
+ height: calc(${components.button.height} + 0.125rem);
45
+
46
+ :not(:last-child) {
47
+ border-bottom: 0.0625rem solid ${base.palette['border-line']};
48
+ }
49
+ }
50
+
51
+ ${StyledSummaryItem} {
52
+ > ${StyledPrimary}, > ${StyledSecondary} {
53
+ align-self: center;
54
+ font-weight: ${base['font-weight'].normal};
55
+ }
56
+ }
57
+
58
+ ${StyledSummaryItemActions} {
59
+ color: ${base.palette.interactive};
60
+ }
61
+
62
+ @media (pointer: 'coarse') {
63
+ li {
64
+ height: ${components.button.touch.height};
65
+ }
66
+ }
67
+ `;
68
+ });
69
+ StyledContactList.defaultProps = defaultThemeProp;
70
+ export const ContactsContext = createContext({
71
+ contacts: [],
72
+ onFavoriteToggle: () => { }
73
+ });
74
+ const SelectableContactItem = ({ id, primary, secondary, checked, container, onChange }) => {
75
+ return (_jsx("li", { children: _jsx(RadioButton, { card: true, variant: 'card', label: _jsx(SummaryItem, { id: id, primary: primary, secondary: secondary, container: container }), checked: checked, onChange: onChange, name: `${id}-contact` }) }, id));
76
+ };
77
+ const CallableContactItem = ({ visual, primary, secondary, onClick, container }) => {
78
+ return (_jsx("li", { children: _jsx(BareRoleButton, { onClick: onClick, children: _jsx(SummaryItem, { visual: visual, primary: primary, secondary: secondary, container: container, actions: _jsx(Icon, { name: 'phone-solid' }) }) }) }));
79
+ };
80
+ const ContactList = forwardRef(function ContactList({ contacts: items, onItemClick, onFavoriteToggle, variant }, ref) {
81
+ const t = useI18n();
82
+ const [searchText, setSearchText] = useState('');
83
+ const containerRef = useConsolidatedRef(ref);
84
+ const onSearchChange = useCallback((value) => {
85
+ setSearchText(value.trim());
86
+ }, []);
87
+ const favoriteButton = useCallback((phoneNumber, favorite) => (_jsx(Button, { variant: 'simple', icon: true, onClick: (e) => {
88
+ e.stopPropagation();
89
+ onFavoriteToggle(phoneNumber, favorite);
90
+ }, "aria-label": favorite
91
+ ? t('call_panel_contacts_add_to_favorites')
92
+ : t('call_panel_contacts_remove_from_favorites'), children: _jsx(Icon, { name: favorite ? 'star-solid' : 'star' }) })), [onFavoriteToggle]);
93
+ const createList = (list) => {
94
+ return list.map(item => {
95
+ const commonOpts = {
96
+ id: item.phoneNumber,
97
+ primary: item.primary,
98
+ secondary: _jsx(Text, { variant: 'secondary', children: item.secondary }),
99
+ container: {
100
+ areas: '"visual primary secondary actions"',
101
+ cols: 'auto minmax(0, 2fr) minmax(0, 2fr) auto'
102
+ }
103
+ };
104
+ return variant === 'select'
105
+ ? {
106
+ ...commonOpts,
107
+ as: SelectableContactItem,
108
+ checked: item.selected,
109
+ onChange: () => onItemClick(item.phoneNumber)
110
+ }
111
+ : {
112
+ ...commonOpts,
113
+ as: CallableContactItem,
114
+ visual: favoriteButton(item.phoneNumber, item.favorite),
115
+ onClick: () => onItemClick(item.phoneNumber)
116
+ };
117
+ });
118
+ };
119
+ useArrows(containerRef, { selector: ':scope ul [role="button"]' });
120
+ return (_jsx(ViewAll, { as: StyledContactList, ref: containerRef, items: searchText
121
+ ? createList(items.filter(({ phoneNumber, primary, secondary }) => {
122
+ return (primary.toLowerCase().includes(searchText.toLowerCase()) ||
123
+ secondary.toLowerCase().includes(searchText.toLowerCase()) ||
124
+ phoneNumber.toLowerCase().includes(searchText.toLowerCase()));
125
+ }))
126
+ : createList(items), searchInputProps: { onSearchChange } }));
127
+ });
128
+ export default ContactList;
129
+ //# sourceMappingURL=ContactList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactList.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/ContactList.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n forwardRef,\n FunctionComponent,\n MouseEvent,\n PropsWithoutRef,\n useCallback,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n defaultThemeProp,\n ForwardProps,\n Icon,\n registerIcon,\n Text,\n useI18n,\n ViewAll,\n StyledSummaryItemActions,\n StyledPrimary,\n StyledSecondary,\n useArrows,\n useConsolidatedRef,\n StyledCard,\n RadioButton,\n RadioButtonProps,\n SummaryItemProps,\n SummaryItem,\n StyledSummaryItem,\n StyledLabel\n} from '@pega/cosmos-react-core';\nimport { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';\nimport * as starIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/star.icon';\nimport * as starSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/star-solid.icon';\nimport { StyledRadioCheckCard } from '@pega/cosmos-react-core/lib/components/RadioCheck/RadioCheck';\nimport BareRoleButton, {\n BareRoleButtonProps\n} from '@pega/cosmos-react-core/lib/components/Button/BareRoleButton';\n\nimport type { Contact, ContactListProps, SelectableContact } from './ContactList.types';\n\nregisterIcon(starIcon, starSolidIcon);\n\nconst StyledContactList = styled.div(({ theme: { base, components } }) => {\n return css`\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 0 calc(0.5 * ${base.spacing}) calc(0.5 * ${base.spacing});\n\n > ${StyledCard} > ${StyledCardContent} {\n padding: 0;\n gap: 0;\n }\n\n ul {\n list-style: none;\n }\n\n ${StyledRadioCheckCard} {\n background-color: transparent;\n border: 0;\n padding: 0 calc(0.5 * ${base.spacing});\n height: ${components.button.height};\n align-items: center;\n border-radius: 0;\n\n > ${StyledLabel} {\n max-width: 100%;\n width: 100%;\n margin: 0;\n }\n }\n\n li {\n padding: 0;\n height: calc(${components.button.height} + 0.125rem);\n\n :not(:last-child) {\n border-bottom: 0.0625rem solid ${base.palette['border-line']};\n }\n }\n\n ${StyledSummaryItem} {\n > ${StyledPrimary}, > ${StyledSecondary} {\n align-self: center;\n font-weight: ${base['font-weight'].normal};\n }\n }\n\n ${StyledSummaryItemActions} {\n color: ${base.palette.interactive};\n }\n\n @media (pointer: 'coarse') {\n li {\n height: ${components.button.touch.height};\n }\n }\n `;\n});\n\nStyledContactList.defaultProps = defaultThemeProp;\n\nexport const ContactsContext = createContext<{\n contacts: Contact[];\n onFavoriteToggle: ContactListProps['onFavoriteToggle'];\n}>({\n contacts: [],\n onFavoriteToggle: () => {}\n});\n\nconst SelectableContactItem = ({\n id,\n primary,\n secondary,\n checked,\n container,\n onChange\n}: SummaryItemProps & RadioButtonProps) => {\n return (\n <li key={id}>\n <RadioButton\n card\n variant='card'\n label={\n <SummaryItem id={id} primary={primary} secondary={secondary} container={container} />\n }\n checked={checked}\n onChange={onChange}\n name={`${id}-contact`}\n />\n </li>\n );\n};\n\nconst CallableContactItem = ({\n visual,\n primary,\n secondary,\n onClick,\n container\n}: SummaryItemProps & { onClick: BareRoleButtonProps['onClick'] }) => {\n return (\n <li>\n <BareRoleButton onClick={onClick}>\n <SummaryItem\n visual={visual}\n primary={primary}\n secondary={secondary}\n container={container}\n actions={<Icon name='phone-solid' />}\n />\n </BareRoleButton>\n </li>\n );\n};\n\nconst ContactList: FunctionComponent<ContactListProps & ForwardProps> = forwardRef(\n function ContactList(\n { contacts: items, onItemClick, onFavoriteToggle, variant }: PropsWithoutRef<ContactListProps>,\n ref: ContactListProps['ref']\n ) {\n const t = useI18n();\n const [searchText, setSearchText] = useState('');\n const containerRef = useConsolidatedRef(ref);\n\n const onSearchChange = useCallback((value: string) => {\n setSearchText(value.trim());\n }, []);\n\n const favoriteButton = useCallback(\n (phoneNumber: string, favorite: boolean) => (\n <Button\n variant='simple'\n icon\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n onFavoriteToggle(phoneNumber, favorite);\n }}\n aria-label={\n favorite\n ? t('call_panel_contacts_add_to_favorites')\n : t('call_panel_contacts_remove_from_favorites')\n }\n >\n <Icon name={favorite ? 'star-solid' : 'star'} />\n </Button>\n ),\n [onFavoriteToggle]\n );\n\n const createList = (list: SelectableContact[]) => {\n return list.map(item => {\n const commonOpts = {\n id: item.phoneNumber,\n primary: item.primary,\n secondary: <Text variant='secondary'>{item.secondary}</Text>,\n container: {\n areas: '\"visual primary secondary actions\"',\n cols: 'auto minmax(0, 2fr) minmax(0, 2fr) auto'\n }\n };\n return variant === 'select'\n ? {\n ...commonOpts,\n as: SelectableContactItem,\n checked: item.selected,\n onChange: () => onItemClick(item.phoneNumber)\n }\n : {\n ...commonOpts,\n as: CallableContactItem,\n visual: favoriteButton(item.phoneNumber, item.favorite),\n onClick: () => onItemClick(item.phoneNumber)\n };\n });\n };\n\n useArrows(containerRef, { selector: ':scope ul [role=\"button\"]' });\n\n return (\n <ViewAll\n as={StyledContactList}\n ref={containerRef}\n items={\n searchText\n ? createList(\n items.filter(({ phoneNumber, primary, secondary }) => {\n return (\n primary.toLowerCase().includes(searchText.toLowerCase()) ||\n secondary.toLowerCase().includes(searchText.toLowerCase()) ||\n phoneNumber.toLowerCase().includes(searchText.toLowerCase())\n );\n })\n )\n : createList(items)\n }\n searchInputProps={{ onSearchChange }}\n />\n );\n }\n);\n\nexport default ContactList;\n"]}
@@ -0,0 +1,30 @@
1
+ import { Ref } from 'react';
2
+ export interface Contact {
3
+ /** Contact phone number */
4
+ phoneNumber: string;
5
+ /** Contact name */
6
+ primary: string;
7
+ /** Additional contact information */
8
+ secondary: string;
9
+ /** Determines if contact is favorite */
10
+ favorite: boolean;
11
+ }
12
+ export interface SelectableContact extends Contact {
13
+ selected?: boolean;
14
+ }
15
+ export interface ContactListProps {
16
+ /** An array of contacts objects. */
17
+ contacts: SelectableContact[];
18
+ /**
19
+ * The click handler for the items.
20
+ * @param phoneNumber the number chosen.
21
+ */
22
+ onItemClick: (phoneNumber: string) => void;
23
+ /** Callback fired on adding/removing contact to/from favorites */
24
+ onFavoriteToggle: (phoneNumber: string, favorites: boolean) => void;
25
+ /** Variant of the list. */
26
+ variant: 'action' | 'select';
27
+ /** Reference to the root component. */
28
+ ref?: Ref<HTMLDivElement>;
29
+ }
30
+ //# sourceMappingURL=ContactList.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactList.types.d.ts","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/ContactList.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,OAAO;IACtB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B;;;OAGG;IACH,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kEAAkE;IAClE,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,uCAAuC;IACvC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ContactList.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactList.types.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/ContactList.types.ts"],"names":[],"mappings":"","sourcesContent":["import { Ref } from 'react';\n\nexport interface Contact {\n /** Contact phone number */\n phoneNumber: string;\n /** Contact name */\n primary: string;\n /** Additional contact information */\n secondary: string;\n /** Determines if contact is favorite */\n favorite: boolean;\n}\n\nexport interface SelectableContact extends Contact {\n selected?: boolean;\n}\n\nexport interface ContactListProps {\n /** An array of contacts objects. */\n contacts: SelectableContact[];\n /**\n * The click handler for the items.\n * @param phoneNumber the number chosen.\n */\n onItemClick: (phoneNumber: string) => void;\n /** Callback fired on adding/removing contact to/from favorites */\n onFavoriteToggle: (phoneNumber: string, favorites: boolean) => void;\n /** Variant of the list. */\n variant: 'action' | 'select';\n /** Reference to the root component. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { default, ContactsContext } from './ContactList';
2
+ export type { ContactListProps, Contact } from './ContactList.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default, ContactsContext } from './ContactList';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/ContactList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { default, ContactsContext } from './ContactList';\nexport type { ContactListProps, Contact } from './ContactList.types';\n"]}
@@ -0,0 +1,24 @@
1
+ import { FunctionComponent, Ref } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ import { type AttachInteractionProps } from './AttachInteractionDialog';
4
+ import { FloatingPanelProps } from './FloatingPanel';
5
+ export interface ExternalCTIProps {
6
+ /** The heading rendered. */
7
+ heading: string;
8
+ /** If true, the component will be draggable. */
9
+ draggable?: boolean;
10
+ /** If true, the component will be visible. */
11
+ visible?: FloatingPanelProps['visible'];
12
+ /** Container element size in px. */
13
+ size?: {
14
+ width: number;
15
+ height: number;
16
+ };
17
+ /** Reference to the container. */
18
+ ref?: Ref<HTMLDivElement>;
19
+ /** Attach intraction popup options. */
20
+ attachInteractionProps?: AttachInteractionProps;
21
+ }
22
+ declare const ExternalCTI: FunctionComponent<ExternalCTIProps & ForwardProps>;
23
+ export default ExternalCTI;
24
+ //# sourceMappingURL=ExternalCTI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalCTI.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/ExternalCTI.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,GAAG,EAEJ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAqC,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAgC,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC,oCAAoC;IACpC,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kCAAkC;IAClC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,uCAAuC;IACvC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAgCD,QAAA,MAAM,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,YAAY,CAwDnE,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useState } from 'react';
3
+ import styled, { css } from 'styled-components';
4
+ import { defaultThemeProp } from '@pega/cosmos-react-core';
5
+ import AttachInteractionDialog from './AttachInteractionDialog';
6
+ import FloatingPanel from './FloatingPanel';
7
+ const StyledExternalCTIPanel = styled(FloatingPanel)(({ theme: { components: { card: { 'border-radius': borderRadius } } } }) => {
8
+ return css `
9
+ width: auto;
10
+ iframe {
11
+ border: transparent;
12
+ display: block;
13
+ border-end-start-radius: ${borderRadius};
14
+ border-end-end-radius: ${borderRadius};
15
+ }
16
+ `;
17
+ });
18
+ StyledExternalCTIPanel.defaultProps = defaultThemeProp;
19
+ const StyledCTIContainer = styled.div `
20
+ width: var(--cti-container-width, auto);
21
+ height: var(--cti-container-height, auto);
22
+ overflow-y: auto;
23
+ `;
24
+ StyledCTIContainer.defaultProps = defaultThemeProp;
25
+ const ExternalCTI = forwardRef(function ExternalCTI({ heading, draggable = false, visible = true, size, attachInteractionProps }, ref) {
26
+ const [dialogTarget, setDialogTarget] = useState(null);
27
+ return (_jsxs(StyledExternalCTIPanel, { heading: heading, draggable: draggable, visible: visible, actions: attachInteractionProps
28
+ ? [
29
+ {
30
+ id: 'add-interaction',
31
+ text: attachInteractionProps.heading,
32
+ icon: 'paper-clip',
33
+ onClick: (id, e) => {
34
+ setDialogTarget(e.currentTarget);
35
+ }
36
+ }
37
+ ]
38
+ : undefined, children: [_jsx(StyledCTIContainer, { style: size
39
+ ? {
40
+ '--cti-container-width': `${size.width}px`,
41
+ '--cti-container-height': `${size.height}px`
42
+ }
43
+ : undefined, ref: ref }), attachInteractionProps && dialogTarget && (_jsx(AttachInteractionDialog, { ...attachInteractionProps, close: () => {
44
+ setDialogTarget(null);
45
+ }, target: dialogTarget }))] }));
46
+ });
47
+ export default ExternalCTI;
48
+ //# sourceMappingURL=ExternalCTI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalCTI.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/ExternalCTI.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,UAAU,EAIV,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAiC,MAAM,yBAAyB,CAAC;AAE1F,OAAO,uBAAwD,MAAM,2BAA2B,CAAC;AACjG,OAAO,aAAqC,MAAM,iBAAiB,CAAC;AAoBpE,MAAM,sBAAsB,GAAyB,MAAM,CAAC,aAAa,CAAC,CACxE,CAAC,EACC,KAAK,EAAE,EACL,UAAU,EAAE,EACV,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,EACxC,EACF,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;;;;;mCAKqB,YAAY;iCACd,YAAY;;KAExC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIpC,CAAC;AAEF,kBAAkB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEnD,MAAM,WAAW,GAAuD,UAAU,CAChF,SAAS,WAAW,CAClB,EACE,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,sBAAsB,EACY,EACpC,GAA4B;IAE5B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAEzF,OAAO,CACL,MAAC,sBAAsB,IACrB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EACL,sBAAsB;YACpB,CAAC,CAAC;gBACE;oBACE,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,sBAAsB,CAAC,OAAO;oBACpC,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;wBACjB,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBACnC,CAAC;iBACF;aACF;YACH,CAAC,CAAC,SAAS,aAGf,KAAC,kBAAkB,IACjB,KAAK,EACH,IAAI;oBACF,CAAC,CAAE;wBACC,uBAAuB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;wBAC1C,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;qBAC3B;oBACrB,CAAC,CAAC,SAAS,EAEf,GAAG,EAAE,GAAG,GACR,EACD,sBAAsB,IAAI,YAAY,IAAI,CACzC,KAAC,uBAAuB,OAClB,sBAAsB,EAC1B,KAAK,EAAE,GAAG,EAAE;oBACV,eAAe,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,EACD,MAAM,EAAE,YAAY,GACpB,CACH,IACsB,CAC1B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import {\n CSSProperties,\n forwardRef,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { defaultThemeProp, FormDialogProps, ForwardProps } from '@pega/cosmos-react-core';\n\nimport AttachInteractionDialog, { type AttachInteractionProps } from './AttachInteractionDialog';\nimport FloatingPanel, { FloatingPanelProps } from './FloatingPanel';\n\nexport interface ExternalCTIProps {\n /** The heading rendered. */\n heading: string;\n /** If true, the component will be draggable. */\n draggable?: boolean;\n /** If true, the component will be visible. */\n visible?: FloatingPanelProps['visible'];\n /** Container element size in px. */\n size?: {\n width: number;\n height: number;\n };\n /** Reference to the container. */\n ref?: Ref<HTMLDivElement>;\n /** Attach intraction popup options. */\n attachInteractionProps?: AttachInteractionProps;\n}\n\nconst StyledExternalCTIPanel: typeof FloatingPanel = styled(FloatingPanel)(\n ({\n theme: {\n components: {\n card: { 'border-radius': borderRadius }\n }\n }\n }) => {\n return css`\n width: auto;\n iframe {\n border: transparent;\n display: block;\n border-end-start-radius: ${borderRadius};\n border-end-end-radius: ${borderRadius};\n }\n `;\n }\n);\n\nStyledExternalCTIPanel.defaultProps = defaultThemeProp;\n\nconst StyledCTIContainer = styled.div`\n width: var(--cti-container-width, auto);\n height: var(--cti-container-height, auto);\n overflow-y: auto;\n`;\n\nStyledCTIContainer.defaultProps = defaultThemeProp;\n\nconst ExternalCTI: FunctionComponent<ExternalCTIProps & ForwardProps> = forwardRef(\n function ExternalCTI(\n {\n heading,\n draggable = false,\n visible = true,\n size,\n attachInteractionProps\n }: PropsWithoutRef<ExternalCTIProps>,\n ref: ExternalCTIProps['ref']\n ) {\n const [dialogTarget, setDialogTarget] = useState<FormDialogProps['target'] | null>(null);\n\n return (\n <StyledExternalCTIPanel\n heading={heading}\n draggable={draggable}\n visible={visible}\n actions={\n attachInteractionProps\n ? [\n {\n id: 'add-interaction',\n text: attachInteractionProps.heading,\n icon: 'paper-clip',\n onClick: (id, e) => {\n setDialogTarget(e.currentTarget);\n }\n }\n ]\n : undefined\n }\n >\n <StyledCTIContainer\n style={\n size\n ? ({\n '--cti-container-width': `${size.width}px`,\n '--cti-container-height': `${size.height}px`\n } as CSSProperties)\n : undefined\n }\n ref={ref}\n />\n {attachInteractionProps && dialogTarget && (\n <AttachInteractionDialog\n {...attachInteractionProps}\n close={() => {\n setDialogTarget(null);\n }}\n target={dialogTarget}\n />\n )}\n </StyledExternalCTIPanel>\n );\n }\n);\n\nexport default ExternalCTI;\n"]}
@@ -0,0 +1,36 @@
1
+ import { FunctionComponent, ReactNode, Ref } from 'react';
2
+ import { ForwardProps, Action, IconName } from '@pega/cosmos-react-core';
3
+ export interface FloatingPanelActionProps extends ForwardProps {
4
+ /** A string to uniquely identify this Action within the onClick handler. */
5
+ id: Action['id'];
6
+ /** The text content of the Action. */
7
+ text: Action['text'];
8
+ /** Name of the icon from the cosmos set. */
9
+ icon: IconName;
10
+ /** Determines if the Action will be disabled. */
11
+ disabled?: Action['disabled'];
12
+ /** Called when the Action is clicked. */
13
+ onClick: NonNullable<Action['onClick']>;
14
+ }
15
+ export interface FloatingPanelProps {
16
+ /** The heading rendered. */
17
+ heading: string;
18
+ /** Content of the panel */
19
+ children: ReactNode;
20
+ /** Action button to be rendered in header */
21
+ actions?: FloatingPanelActionProps[];
22
+ /** If true, the component will be draggable */
23
+ draggable?: boolean;
24
+ /** If true, the panel is visible. */
25
+ visible?: boolean;
26
+ /** Reference to the root component. */
27
+ ref?: Ref<HTMLDivElement>;
28
+ }
29
+ export declare const StyledFloatingPanel: import("styled-components").StyledComponent<"article", import("styled-components").DefaultTheme, Partial<import("@pega/cosmos-react-core").CardProps> & {
30
+ isCollapsed: boolean;
31
+ isDraggable?: boolean | undefined;
32
+ isVisible?: boolean | undefined;
33
+ }, never>;
34
+ declare const FloatingPanel: FunctionComponent<FloatingPanelProps & ForwardProps>;
35
+ export default FloatingPanel;
36
+ //# sourceMappingURL=FloatingPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/FloatingPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAGjB,SAAS,EACT,GAAG,EAKJ,MAAM,OAAO,CAAC;AAGf,OAAO,EAQL,YAAY,EAGZ,MAAM,EACN,QAAQ,EAIT,MAAM,yBAAyB,CAAC;AAYjC,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,yCAAyC;IACzC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACrC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,mBAAmB;iBACjB,OAAO;;;SAsCpB,CAAC;AAIH,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,YAAY,CA8EvE,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { createElement as _createElement } from "react";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { forwardRef, useLayoutEffect, useRef, useState } from 'react';
4
+ import styled, { css } from 'styled-components';
5
+ import { CardHeader, Button, useI18n, Icon, registerIcon, Flex, Text, useConsolidatedRef, useDraggable, defaultThemeProp, StyledButton, StyledCard } from '@pega/cosmos-react-core';
6
+ import * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';
7
+ import * as headsetIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/headset.icon';
8
+ import { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';
9
+ registerIcon(caretDownIcon, headsetIcon);
10
+ const resetPopoverToDefaultPosition = (containerRef) => {
11
+ if (containerRef && containerRef.current)
12
+ containerRef.current.style.transform = 'translate(0px, 0px)';
13
+ };
14
+ export const StyledFloatingPanel = styled(StyledCard)(({ theme, isCollapsed, isDraggable, isVisible = true }) => {
15
+ return css `
16
+ max-height: calc(100% - 2rem);
17
+ position: fixed;
18
+ z-index: calc(${theme.base['z-index'].backdrop} - 1);
19
+ width: 25rem;
20
+ right: calc(2 * ${theme.base.spacing});
21
+ bottom: calc(2 * ${theme.base.spacing});
22
+ box-shadow: ${theme.base.shadow.high};
23
+
24
+ ${!isVisible &&
25
+ css `
26
+ display: none;
27
+ `}
28
+
29
+ ${isCollapsed &&
30
+ css `
31
+ transform: translateY(
32
+ calc(100% - var(--headerHeight) + calc(2 * ${theme.base.spacing}))
33
+ ) !important;
34
+ `}
35
+
36
+ ${StyledCardHeader} {
37
+ ${!isCollapsed &&
38
+ isDraggable &&
39
+ css `
40
+ cursor: all-scroll;
41
+ `}
42
+ }
43
+ ${StyledCardHeader} ${StyledButton}:last-child {
44
+ transition: transform calc(2 * ${theme.base.animation.speed})
45
+ ${theme.base.animation.timing.ease};
46
+ transform: ${isCollapsed ? 'rotate(-180deg)' : 'rotate(0)'};
47
+ }
48
+ `;
49
+ });
50
+ StyledFloatingPanel.defaultProps = defaultThemeProp;
51
+ const FloatingPanel = forwardRef(function FloatingPanel({ heading, actions = [], draggable, children, visible = true, ...restProps }, ref) {
52
+ const t = useI18n();
53
+ const [collapsed, setCollapsed] = useState(false);
54
+ const containerRef = useConsolidatedRef(ref);
55
+ const dragRef = useRef(null);
56
+ useDraggable(containerRef, dragRef, !collapsed && draggable);
57
+ const [headerHeight, setHeaderHeight] = useState(0);
58
+ useLayoutEffect(() => {
59
+ if (containerRef.current) {
60
+ setHeaderHeight(containerRef.current.querySelector('header')?.offsetHeight || 0);
61
+ }
62
+ }, [collapsed]);
63
+ return (_jsxs(StyledFloatingPanel, { ...restProps, ref: containerRef, isCollapsed: collapsed, isDraggable: draggable, isVisible: visible, "data-app-region": true, style: { '--headerHeight': `${headerHeight}px` }, children: [_jsx(CardHeader, { ref: dragRef, actions: _jsxs(_Fragment, { children: [actions.map(({ id, icon, text, onClick, ...restAction }) => (_createElement(Button, { ...restAction, icon: true, variant: 'simple', key: id, label: text, onClick: (e) => {
64
+ onClick?.(id, e);
65
+ } },
66
+ _jsx(Icon, { name: icon })))), _jsx(Button, { icon: true, variant: 'simple', label: t(collapsed ? 'call_panel_expand' : 'call_panel_collapse'), onClick: () => {
67
+ resetPopoverToDefaultPosition(containerRef);
68
+ setCollapsed(state => !state);
69
+ }, children: _jsx(Icon, { name: 'caret-down' }) }, 'expand-collapse')] }), children: _jsxs(Flex, { container: { alignItems: 'center', itemGap: 1 }, children: [_jsx(Icon, { name: 'headset' }), _jsx(Text, { variant: 'h3', children: heading })] }) }), children] }));
70
+ });
71
+ export default FloatingPanel;
72
+ //# sourceMappingURL=FloatingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.js","sourceRoot":"","sources":["../../../src/components/CallControlPanel/FloatingPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n CSSProperties,\n forwardRef,\n FunctionComponent,\n MouseEvent,\n PropsWithoutRef,\n ReactNode,\n Ref,\n RefObject,\n useLayoutEffect,\n useRef,\n useState\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n CardHeader,\n Button,\n useI18n,\n Icon,\n registerIcon,\n Flex,\n Text,\n ForwardProps,\n useConsolidatedRef,\n useDraggable,\n Action,\n IconName,\n defaultThemeProp,\n StyledButton,\n StyledCard\n} from '@pega/cosmos-react-core';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport * as headsetIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/headset.icon';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\n\nregisterIcon(caretDownIcon, headsetIcon);\n\nconst resetPopoverToDefaultPosition = (containerRef: RefObject<HTMLDivElement>): void => {\n if (containerRef && containerRef.current)\n containerRef.current.style.transform = 'translate(0px, 0px)';\n};\n\nexport interface FloatingPanelActionProps extends ForwardProps {\n /** A string to uniquely identify this Action within the onClick handler. */\n id: Action['id'];\n /** The text content of the Action. */\n text: Action['text'];\n /** Name of the icon from the cosmos set. */\n icon: IconName;\n /** Determines if the Action will be disabled. */\n disabled?: Action['disabled'];\n /** Called when the Action is clicked. */\n onClick: NonNullable<Action['onClick']>;\n}\n\nexport interface FloatingPanelProps {\n /** The heading rendered. */\n heading: string;\n /** Content of the panel */\n children: ReactNode;\n /** Action button to be rendered in header */\n actions?: FloatingPanelActionProps[];\n /** If true, the component will be draggable */\n draggable?: boolean;\n /** If true, the panel is visible. */\n visible?: boolean;\n /** Reference to the root component. */\n ref?: Ref<HTMLDivElement>;\n}\n\nexport const StyledFloatingPanel = styled(StyledCard)<{\n isCollapsed: boolean;\n isDraggable?: boolean;\n isVisible?: boolean;\n}>(({ theme, isCollapsed, isDraggable, isVisible = true }) => {\n return css`\n max-height: calc(100% - 2rem);\n position: fixed;\n z-index: calc(${theme.base['z-index'].backdrop} - 1);\n width: 25rem;\n right: calc(2 * ${theme.base.spacing});\n bottom: calc(2 * ${theme.base.spacing});\n box-shadow: ${theme.base.shadow.high};\n\n ${!isVisible &&\n css`\n display: none;\n `}\n\n ${isCollapsed &&\n css`\n transform: translateY(\n calc(100% - var(--headerHeight) + calc(2 * ${theme.base.spacing}))\n ) !important;\n `}\n\n ${StyledCardHeader} {\n ${!isCollapsed &&\n isDraggable &&\n css`\n cursor: all-scroll;\n `}\n }\n ${StyledCardHeader} ${StyledButton}:last-child {\n transition: transform calc(2 * ${theme.base.animation.speed})\n ${theme.base.animation.timing.ease};\n transform: ${isCollapsed ? 'rotate(-180deg)' : 'rotate(0)'};\n }\n `;\n});\n\nStyledFloatingPanel.defaultProps = defaultThemeProp;\n\nconst FloatingPanel: FunctionComponent<FloatingPanelProps & ForwardProps> = forwardRef(\n function FloatingPanel(\n {\n heading,\n actions = [],\n draggable,\n children,\n visible = true,\n ...restProps\n }: PropsWithoutRef<FloatingPanelProps>,\n ref: FloatingPanelProps['ref']\n ) {\n const t = useI18n();\n const [collapsed, setCollapsed] = useState(false);\n const containerRef = useConsolidatedRef(ref);\n const dragRef = useRef<HTMLDivElement>(null);\n useDraggable(containerRef, dragRef, !collapsed && draggable);\n\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useLayoutEffect(() => {\n if (containerRef.current) {\n setHeaderHeight(containerRef.current.querySelector('header')?.offsetHeight || 0);\n }\n }, [collapsed]);\n\n return (\n <StyledFloatingPanel\n {...restProps}\n ref={containerRef}\n isCollapsed={collapsed}\n isDraggable={draggable}\n isVisible={visible}\n data-app-region\n style={{ '--headerHeight': `${headerHeight}px` } as CSSProperties}\n >\n <CardHeader\n ref={dragRef}\n actions={\n <>\n {actions.map(({ id, icon, text, onClick, ...restAction }) => (\n <Button\n {...restAction}\n icon\n variant='simple'\n key={id}\n label={text}\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(id, e);\n }}\n >\n <Icon name={icon} />\n </Button>\n ))}\n <Button\n icon\n variant='simple'\n key='expand-collapse'\n label={t(collapsed ? 'call_panel_expand' : 'call_panel_collapse')}\n onClick={() => {\n resetPopoverToDefaultPosition(containerRef);\n setCollapsed(state => !state);\n }}\n >\n <Icon name='caret-down' />\n </Button>\n </>\n }\n >\n <Flex container={{ alignItems: 'center', itemGap: 1 }}>\n <Icon name='headset' />\n <Text variant='h3'>{heading}</Text>\n </Flex>\n </CardHeader>\n {children}\n </StyledFloatingPanel>\n );\n }\n);\n\nexport default FloatingPanel;\n"]}
@@ -0,0 +1,6 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { ForwardProps } from '@pega/cosmos-react-core';
3
+ import type { IncomingCallProps } from './CallControlPanel.types';
4
+ declare const IncomingCall: FunctionComponent<IncomingCallProps & ForwardProps>;
5
+ export default IncomingCall;
6
+ //# sourceMappingURL=IncomingCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncomingCall.d.ts","sourceRoot":"","sources":["../../../src/components/CallControlPanel/IncomingCall.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAGL,YAAY,EAKb,MAAM,yBAAyB,CAAC;AAWjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAalE,QAAA,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,YAAY,CA6BrE,CAAC;AAEF,eAAe,YAAY,CAAC"}