@pega/cosmos-react-cs 5.0.0-dev.4.7 → 5.0.0-dev.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/lib/components/CTIPanel/CTIPanel.d.ts +0 -13
- package/lib/components/CTIPanel/CTIPanel.d.ts.map +0 -1
- package/lib/components/CTIPanel/CTIPanel.js +0 -12
- package/lib/components/CTIPanel/CTIPanel.js.map +0 -1
- package/lib/components/CTIPanel/index.d.ts +0 -2
- package/lib/components/CTIPanel/index.d.ts.map +0 -1
- package/lib/components/CTIPanel/index.js +0 -2
- package/lib/components/CTIPanel/index.js.map +0 -1
- package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts +0 -47
- package/lib/components/CallControlPanel/AttachInteractionDialog.d.ts.map +0 -1
- package/lib/components/CallControlPanel/AttachInteractionDialog.js +0 -54
- package/lib/components/CallControlPanel/AttachInteractionDialog.js.map +0 -1
- package/lib/components/CallControlPanel/Call.d.ts +0 -6
- package/lib/components/CallControlPanel/Call.d.ts.map +0 -1
- package/lib/components/CallControlPanel/Call.js +0 -145
- package/lib/components/CallControlPanel/Call.js.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.d.ts +0 -6
- package/lib/components/CallControlPanel/CallControlPanel.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.js +0 -61
- package/lib/components/CallControlPanel/CallControlPanel.js.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts +0 -16
- package/lib/components/CallControlPanel/CallControlPanel.styles.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.styles.js +0 -105
- package/lib/components/CallControlPanel/CallControlPanel.styles.js.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.types.d.ts +0 -120
- package/lib/components/CallControlPanel/CallControlPanel.types.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanel.types.js +0 -2
- package/lib/components/CallControlPanel/CallControlPanel.types.js.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts +0 -15
- package/lib/components/CallControlPanel/CallControlPanelIcon.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallControlPanelIcon.js +0 -81
- package/lib/components/CallControlPanel/CallControlPanelIcon.js.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts +0 -17
- package/lib/components/CallControlPanel/CallHandover/CallHandover.types.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js +0 -2
- package/lib/components/CallControlPanel/CallHandover/CallHandover.types.js.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts +0 -16
- package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js +0 -56
- package/lib/components/CallControlPanel/CallHandover/CallHandoverDialog.js.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts +0 -31
- package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js +0 -60
- package/lib/components/CallControlPanel/CallHandover/CallHandoverForm.js.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/index.d.ts +0 -4
- package/lib/components/CallControlPanel/CallHandover/index.d.ts.map +0 -1
- package/lib/components/CallControlPanel/CallHandover/index.js +0 -4
- package/lib/components/CallControlPanel/CallHandover/index.js.map +0 -1
- package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts +0 -18
- package/lib/components/CallControlPanel/ContactList/CalleePicker.d.ts.map +0 -1
- package/lib/components/CallControlPanel/ContactList/CalleePicker.js +0 -54
- package/lib/components/CallControlPanel/ContactList/CalleePicker.js.map +0 -1
- package/lib/components/CallControlPanel/ContactList/ContactList.d.ts +0 -10
- package/lib/components/CallControlPanel/ContactList/ContactList.d.ts.map +0 -1
- package/lib/components/CallControlPanel/ContactList/ContactList.js +0 -129
- package/lib/components/CallControlPanel/ContactList/ContactList.js.map +0 -1
- package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts +0 -30
- package/lib/components/CallControlPanel/ContactList/ContactList.types.d.ts.map +0 -1
- package/lib/components/CallControlPanel/ContactList/ContactList.types.js +0 -2
- package/lib/components/CallControlPanel/ContactList/ContactList.types.js.map +0 -1
- package/lib/components/CallControlPanel/ContactList/index.d.ts +0 -3
- package/lib/components/CallControlPanel/ContactList/index.d.ts.map +0 -1
- package/lib/components/CallControlPanel/ContactList/index.js +0 -2
- package/lib/components/CallControlPanel/ContactList/index.js.map +0 -1
- package/lib/components/CallControlPanel/ExternalCTI.d.ts +0 -24
- package/lib/components/CallControlPanel/ExternalCTI.d.ts.map +0 -1
- package/lib/components/CallControlPanel/ExternalCTI.js +0 -48
- package/lib/components/CallControlPanel/ExternalCTI.js.map +0 -1
- package/lib/components/CallControlPanel/FloatingPanel.d.ts +0 -36
- package/lib/components/CallControlPanel/FloatingPanel.d.ts.map +0 -1
- package/lib/components/CallControlPanel/FloatingPanel.js +0 -72
- package/lib/components/CallControlPanel/FloatingPanel.js.map +0 -1
- package/lib/components/CallControlPanel/IncomingCall.d.ts +0 -6
- package/lib/components/CallControlPanel/IncomingCall.d.ts.map +0 -1
- package/lib/components/CallControlPanel/IncomingCall.js +0 -18
- package/lib/components/CallControlPanel/IncomingCall.js.map +0 -1
- package/lib/components/CallControlPanel/StopWatch.d.ts +0 -11
- package/lib/components/CallControlPanel/StopWatch.d.ts.map +0 -1
- package/lib/components/CallControlPanel/StopWatch.js +0 -28
- package/lib/components/CallControlPanel/StopWatch.js.map +0 -1
- package/lib/components/CallControlPanel/index.d.ts +0 -5
- package/lib/components/CallControlPanel/index.d.ts.map +0 -1
- package/lib/components/CallControlPanel/index.js +0 -3
- package/lib/components/CallControlPanel/index.js.map +0 -1
- package/lib/components/CallControlPanel/utils.d.ts +0 -7
- package/lib/components/CallControlPanel/utils.d.ts.map +0 -1
- package/lib/components/CallControlPanel/utils.js +0 -34
- package/lib/components/CallControlPanel/utils.js.map +0 -1
- package/lib/components/DialPad/DialPad.d.ts +0 -18
- package/lib/components/DialPad/DialPad.d.ts.map +0 -1
- package/lib/components/DialPad/DialPad.js +0 -30
- package/lib/components/DialPad/DialPad.js.map +0 -1
- package/lib/components/DialPad/DialPad.types.d.ts +0 -33
- package/lib/components/DialPad/DialPad.types.d.ts.map +0 -1
- package/lib/components/DialPad/DialPad.types.js +0 -2
- package/lib/components/DialPad/DialPad.types.js.map +0 -1
- package/lib/components/DialPad/DialPadDialog.d.ts +0 -9
- package/lib/components/DialPad/DialPadDialog.d.ts.map +0 -1
- package/lib/components/DialPad/DialPadDialog.js +0 -35
- package/lib/components/DialPad/DialPadDialog.js.map +0 -1
- package/lib/components/DialPad/DialPadKeyboard.d.ts +0 -12
- package/lib/components/DialPad/DialPadKeyboard.d.ts.map +0 -1
- package/lib/components/DialPad/DialPadKeyboard.js +0 -89
- package/lib/components/DialPad/DialPadKeyboard.js.map +0 -1
- package/lib/components/DialPad/DialPadKeyboard.styles.d.ts +0 -5
- package/lib/components/DialPad/DialPadKeyboard.styles.d.ts.map +0 -1
- package/lib/components/DialPad/DialPadKeyboard.styles.js +0 -76
- package/lib/components/DialPad/DialPadKeyboard.styles.js.map +0 -1
- package/lib/components/DialPad/KeyboardNavigation.d.ts +0 -6
- package/lib/components/DialPad/KeyboardNavigation.d.ts.map +0 -1
- package/lib/components/DialPad/KeyboardNavigation.js +0 -156
- package/lib/components/DialPad/KeyboardNavigation.js.map +0 -1
- package/lib/components/DialPad/index.d.ts +0 -4
- package/lib/components/DialPad/index.d.ts.map +0 -1
- package/lib/components/DialPad/index.js +0 -3
- package/lib/components/DialPad/index.js.map +0 -1
- package/lib/components/DialPad/utils.d.ts +0 -4
- package/lib/components/DialPad/utils.d.ts.map +0 -1
- package/lib/components/DialPad/utils.js +0 -7
- package/lib/components/DialPad/utils.js.map +0 -1
- package/lib/components/InteractionNotification/CountdownButton.d.ts +0 -15
- package/lib/components/InteractionNotification/CountdownButton.d.ts.map +0 -1
- package/lib/components/InteractionNotification/CountdownButton.js +0 -42
- package/lib/components/InteractionNotification/CountdownButton.js.map +0 -1
- package/lib/components/InteractionNotification/InteractionNotification.d.ts +0 -35
- package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +0 -1
- package/lib/components/InteractionNotification/InteractionNotification.js +0 -110
- package/lib/components/InteractionNotification/InteractionNotification.js.map +0 -1
- package/lib/components/InteractionNotification/index.d.ts +0 -2
- package/lib/components/InteractionNotification/index.d.ts.map +0 -1
- package/lib/components/InteractionNotification/index.js +0 -2
- package/lib/components/InteractionNotification/index.js.map +0 -1
- package/lib/components/InteractionTimer/InteractionTimer.d.ts +0 -29
- package/lib/components/InteractionTimer/InteractionTimer.d.ts.map +0 -1
- package/lib/components/InteractionTimer/InteractionTimer.js +0 -90
- package/lib/components/InteractionTimer/InteractionTimer.js.map +0 -1
- package/lib/components/InteractionTimer/index.d.ts +0 -3
- package/lib/components/InteractionTimer/index.d.ts.map +0 -1
- package/lib/components/InteractionTimer/index.js +0 -2
- package/lib/components/InteractionTimer/index.js.map +0 -1
- package/lib/components/Picker/Picker.d.ts +0 -6
- package/lib/components/Picker/Picker.d.ts.map +0 -1
- package/lib/components/Picker/Picker.js +0 -109
- package/lib/components/Picker/Picker.js.map +0 -1
- package/lib/components/Picker/Picker.styles.d.ts +0 -12
- package/lib/components/Picker/Picker.styles.d.ts.map +0 -1
- package/lib/components/Picker/Picker.styles.js +0 -59
- package/lib/components/Picker/Picker.styles.js.map +0 -1
- package/lib/components/Picker/Picker.types.d.ts +0 -35
- package/lib/components/Picker/Picker.types.d.ts.map +0 -1
- package/lib/components/Picker/Picker.types.js +0 -2
- package/lib/components/Picker/Picker.types.js.map +0 -1
- package/lib/components/Picker/index.d.ts +0 -2
- package/lib/components/Picker/index.d.ts.map +0 -1
- package/lib/components/Picker/index.js +0 -2
- package/lib/components/Picker/index.js.map +0 -1
- package/lib/components/TaskManager/ConversationAI.d.ts +0 -6
- package/lib/components/TaskManager/ConversationAI.d.ts.map +0 -1
- package/lib/components/TaskManager/ConversationAI.js +0 -29
- package/lib/components/TaskManager/ConversationAI.js.map +0 -1
- package/lib/components/TaskManager/Dialogue.d.ts +0 -6
- package/lib/components/TaskManager/Dialogue.d.ts.map +0 -1
- package/lib/components/TaskManager/Dialogue.js +0 -30
- package/lib/components/TaskManager/Dialogue.js.map +0 -1
- package/lib/components/TaskManager/TaskManager.context.d.ts +0 -5
- package/lib/components/TaskManager/TaskManager.context.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskManager.context.js +0 -3
- package/lib/components/TaskManager/TaskManager.context.js.map +0 -1
- package/lib/components/TaskManager/TaskManager.d.ts +0 -6
- package/lib/components/TaskManager/TaskManager.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskManager.js +0 -68
- package/lib/components/TaskManager/TaskManager.js.map +0 -1
- package/lib/components/TaskManager/TaskManager.styles.d.ts +0 -37
- package/lib/components/TaskManager/TaskManager.styles.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskManager.styles.js +0 -325
- package/lib/components/TaskManager/TaskManager.styles.js.map +0 -1
- package/lib/components/TaskManager/TaskManager.types.d.ts +0 -98
- package/lib/components/TaskManager/TaskManager.types.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskManager.types.js +0 -2
- package/lib/components/TaskManager/TaskManager.types.js.map +0 -1
- package/lib/components/TaskManager/TaskManagerTabs.d.ts +0 -6
- package/lib/components/TaskManager/TaskManagerTabs.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskManagerTabs.js +0 -186
- package/lib/components/TaskManager/TaskManagerTabs.js.map +0 -1
- package/lib/components/TaskManager/TaskPicker.d.ts +0 -19
- package/lib/components/TaskManager/TaskPicker.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskPicker.js +0 -89
- package/lib/components/TaskManager/TaskPicker.js.map +0 -1
- package/lib/components/TaskManager/TaskView.d.ts +0 -6
- package/lib/components/TaskManager/TaskView.d.ts.map +0 -1
- package/lib/components/TaskManager/TaskView.js +0 -10
- package/lib/components/TaskManager/TaskView.js.map +0 -1
- package/lib/components/TaskManager/index.d.ts +0 -5
- package/lib/components/TaskManager/index.d.ts.map +0 -1
- package/lib/components/TaskManager/index.js +0 -4
- package/lib/components/TaskManager/index.js.map +0 -1
- package/lib/index.d.ts +0 -13
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -14
- package/lib/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallHandoverForm.js","sourceRoot":"","sources":["../../../../src/components/CallControlPanel/CallHandover/CallHandoverForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA0B,QAAQ,EAAe,UAAU,EAAmB,MAAM,OAAO,CAAC;AACnG,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,KAAK,SAAS,MAAM,8DAA8D,CAAC;AAG1F,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAIvD,YAAY,CAAC,SAAS,CAAC,CAAC;AA0BxB,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;;IAG9C,cAAc;;;CAGjB,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,gBAAgB,GAA6C,UAAU,CAC3E,SAAS,gBAAgB,CACvB,EACE,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACqB,EACzC,GAAiC;IAEjC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAA0B,CAAC;IACjF,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAAG,kBAAkB,EAAE,IAAI,CACjD,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,kBAAkB,CACrD,CAAC;IACF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,aAAa,CACd,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAE5D,kBAAkB,CAAC,CAAC;IACtB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,OAAO,CACL,MAAC,sBAAsB,IACrB,OAAO,EACL,8BACE,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,QAAQ,YAC1C,CAAC,CAAC,QAAQ,CAAC,GACL,EACT,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,KAAK,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAClF,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,CAAC,eAAe;4BAAE,OAAO;wBAC7B,QAAQ,CAAC;4BACP,MAAM,EAAE,cAAc,EAAE,EAAE;4BAC1B,QAAQ;4BACR,WAAW,EAAE,OAAO,KAAK,kBAAkB;4BAC3C,WAAW,EAAE,eAAe;4BAC5B,wBAAwB,EAAE,mBAAmB,EAAE,EAAE;yBAClD,CAAC,CAAC;oBACL,CAAC,YAEA,gBAAgB,GACV,IACR,EAEL,GAAG,EAAE,GAAG,aAEP,OAAO,KAAK,kBAAkB,IAAI,CACjC,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7C,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,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;yBAC9E,GACD,CACH,EAED,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,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gCAC7C,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,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;yBACtE,GACD,EAEF,KAAC,QAAQ,IACP,IAAI,EAAC,UAAU,EACf,QAAQ,QACR,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,CACR,EACD,KAAC,YAAY,IACX,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAC,QAAQ,GAChB,IACqB,CAC1B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,gBAAgB,CAAC","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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,129 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|