@pega/cosmos-react-social 2.0.0-dev.9.2 → 2.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Chat/Chat.d.ts +2 -2
- package/lib/components/Chat/Chat.d.ts.map +1 -1
- package/lib/components/Chat/Chat.js +6 -11
- package/lib/components/Chat/Chat.js.map +1 -1
- package/lib/components/Chat/ChatBody.js +2 -2
- package/lib/components/Chat/ChatBody.js.map +1 -1
- package/lib/components/Chat/ChatComposer.d.ts.map +1 -1
- package/lib/components/Chat/ChatComposer.js +20 -26
- package/lib/components/Chat/ChatComposer.js.map +1 -1
- package/lib/components/Chat/ChatHeader.d.ts +2 -2
- package/lib/components/Chat/ChatHeader.d.ts.map +1 -1
- package/lib/components/Chat/ChatHeader.js +4 -6
- package/lib/components/Chat/ChatHeader.js.map +1 -1
- package/lib/components/Chat/ChatTranscript.d.ts.map +1 -1
- package/lib/components/Chat/ChatTranscript.js +6 -7
- package/lib/components/Chat/ChatTranscript.js.map +1 -1
- package/lib/components/Chat/Message.d.ts.map +1 -1
- package/lib/components/Chat/Message.js +22 -30
- package/lib/components/Chat/Message.js.map +1 -1
- package/lib/components/Chat/Message.styles.js +2 -2
- package/lib/components/Chat/Message.styles.js.map +1 -1
- package/lib/components/Chat/MessageList.d.ts.map +1 -1
- package/lib/components/Chat/MessageList.js +11 -12
- package/lib/components/Chat/MessageList.js.map +1 -1
- package/lib/components/Chat/RepeatingView.js +6 -8
- package/lib/components/Chat/RepeatingView.js.map +1 -1
- package/lib/components/Chat/SuggestedReplyPicker.d.ts.map +1 -1
- package/lib/components/Chat/SuggestedReplyPicker.js +16 -16
- package/lib/components/Chat/SuggestedReplyPicker.js.map +1 -1
- package/lib/components/Chat/SystemMessage.js +2 -2
- package/lib/components/Chat/SystemMessage.js.map +1 -1
- package/lib/components/Chat/TranscriptMessage.js +3 -7
- package/lib/components/Chat/TranscriptMessage.js.map +1 -1
- package/lib/components/Chat/TypeIndicator.js +1 -1
- package/lib/components/Chat/TypeIndicator.js.map +1 -1
- package/lib/components/Email/Email.d.ts.map +1 -1
- package/lib/components/Email/Email.js +42 -80
- package/lib/components/Email/Email.js.map +1 -1
- package/lib/components/Email/Email.styles.d.ts +7 -2
- package/lib/components/Email/Email.styles.d.ts.map +1 -1
- package/lib/components/Email/Email.styles.js +75 -26
- package/lib/components/Email/Email.styles.js.map +1 -1
- package/lib/components/Email/Email.types.d.ts +144 -63
- package/lib/components/Email/Email.types.d.ts.map +1 -1
- package/lib/components/Email/Email.types.js.map +1 -1
- package/lib/components/Email/EmailComposer.d.ts +4 -6
- package/lib/components/Email/EmailComposer.d.ts.map +1 -1
- package/lib/components/Email/EmailComposer.js +174 -62
- package/lib/components/Email/EmailComposer.js.map +1 -1
- package/lib/components/Email/EmailConversation.d.ts +3 -1
- package/lib/components/Email/EmailConversation.d.ts.map +1 -1
- package/lib/components/Email/EmailConversation.js +88 -56
- package/lib/components/Email/EmailConversation.js.map +1 -1
- package/lib/components/Email/EmailEntity.d.ts +3 -7
- package/lib/components/Email/EmailEntity.d.ts.map +1 -1
- package/lib/components/Email/EmailEntity.js +11 -22
- package/lib/components/Email/EmailEntity.js.map +1 -1
- package/lib/components/Email/EmailSelector.d.ts +19 -0
- package/lib/components/Email/EmailSelector.d.ts.map +1 -0
- package/lib/components/Email/EmailSelector.js +103 -0
- package/lib/components/Email/EmailSelector.js.map +1 -0
- package/lib/components/Email/EmailShell.d.ts.map +1 -1
- package/lib/components/Email/EmailShell.js +18 -23
- package/lib/components/Email/EmailShell.js.map +1 -1
- package/lib/components/Email/EmailSummaryItem.d.ts +10 -0
- package/lib/components/Email/EmailSummaryItem.d.ts.map +1 -0
- package/lib/components/Email/EmailSummaryItem.js +93 -0
- package/lib/components/Email/EmailSummaryItem.js.map +1 -0
- package/lib/components/Email/EmailSummaryList.d.ts +6 -0
- package/lib/components/Email/EmailSummaryList.d.ts.map +1 -0
- package/lib/components/Email/EmailSummaryList.js +115 -0
- package/lib/components/Email/EmailSummaryList.js.map +1 -0
- package/lib/components/Email/ViewAnalysis.d.ts +6 -0
- package/lib/components/Email/ViewAnalysis.d.ts.map +1 -0
- package/lib/components/Email/ViewAnalysis.js +20 -0
- package/lib/components/Email/ViewAnalysis.js.map +1 -0
- package/lib/components/Feed/Feed.context.d.ts +12 -2
- package/lib/components/Feed/Feed.context.d.ts.map +1 -1
- package/lib/components/Feed/Feed.context.js +3 -1
- package/lib/components/Feed/Feed.context.js.map +1 -1
- package/lib/components/Feed/Feed.d.ts +12 -5
- package/lib/components/Feed/Feed.d.ts.map +1 -1
- package/lib/components/Feed/Feed.js +38 -17
- package/lib/components/Feed/Feed.js.map +1 -1
- package/lib/components/Feed/FeedAnnouncer.d.ts +7 -0
- package/lib/components/Feed/FeedAnnouncer.d.ts.map +1 -0
- package/lib/components/Feed/FeedAnnouncer.js +11 -0
- package/lib/components/Feed/FeedAnnouncer.js.map +1 -0
- package/lib/components/Feed/FeedAttachments.d.ts +3 -0
- package/lib/components/Feed/FeedAttachments.d.ts.map +1 -1
- package/lib/components/Feed/FeedAttachments.js +79 -14
- package/lib/components/Feed/FeedAttachments.js.map +1 -1
- package/lib/components/Feed/FeedButton.d.ts.map +1 -1
- package/lib/components/Feed/FeedButton.js.map +1 -1
- package/lib/components/Feed/FeedContent.d.ts.map +1 -1
- package/lib/components/Feed/FeedContent.js +10 -2
- package/lib/components/Feed/FeedContent.js.map +1 -1
- package/lib/components/Feed/FeedLikeButton.d.ts +19 -0
- package/lib/components/Feed/FeedLikeButton.d.ts.map +1 -0
- package/lib/components/Feed/FeedLikeButton.js +87 -0
- package/lib/components/Feed/FeedLikeButton.js.map +1 -0
- package/lib/components/Feed/FeedModalList.js +2 -4
- package/lib/components/Feed/FeedModalList.js.map +1 -1
- package/lib/components/Feed/FeedNewPost.d.ts.map +1 -1
- package/lib/components/Feed/FeedNewPost.js +33 -30
- package/lib/components/Feed/FeedNewPost.js.map +1 -1
- package/lib/components/Feed/FeedNewPostTypeMenu.d.ts +2 -1
- package/lib/components/Feed/FeedNewPostTypeMenu.d.ts.map +1 -1
- package/lib/components/Feed/FeedNewPostTypeMenu.js +27 -50
- package/lib/components/Feed/FeedNewPostTypeMenu.js.map +1 -1
- package/lib/components/Feed/FeedPost.d.ts +3 -100
- package/lib/components/Feed/FeedPost.d.ts.map +1 -1
- package/lib/components/Feed/FeedPost.js +56 -95
- package/lib/components/Feed/FeedPost.js.map +1 -1
- package/lib/components/Feed/FeedPost.types.d.ts +101 -0
- package/lib/components/Feed/FeedPost.types.d.ts.map +1 -0
- package/lib/components/Feed/FeedPost.types.js +2 -0
- package/lib/components/Feed/FeedPost.types.js.map +1 -0
- package/lib/components/Feed/FeedReply.d.ts +3 -67
- package/lib/components/Feed/FeedReply.d.ts.map +1 -1
- package/lib/components/Feed/FeedReply.js +24 -69
- package/lib/components/Feed/FeedReply.js.map +1 -1
- package/lib/components/Feed/FeedReply.types.d.ts +68 -0
- package/lib/components/Feed/FeedReply.types.d.ts.map +1 -0
- package/lib/components/Feed/FeedReply.types.js +2 -0
- package/lib/components/Feed/FeedReply.types.js.map +1 -0
- package/lib/components/Feed/FeedReplyInput.d.ts.map +1 -1
- package/lib/components/Feed/FeedReplyInput.js +24 -27
- package/lib/components/Feed/FeedReplyInput.js.map +1 -1
- package/lib/components/Feed/FeedRichText.d.ts.map +1 -1
- package/lib/components/Feed/FeedRichText.js +80 -19
- package/lib/components/Feed/FeedRichText.js.map +1 -1
- package/lib/components/HashtagButton/HashtagButton.d.ts +5 -3
- package/lib/components/HashtagButton/HashtagButton.d.ts.map +1 -1
- package/lib/components/HashtagButton/HashtagButton.js +22 -16
- package/lib/components/HashtagButton/HashtagButton.js.map +1 -1
- package/lib/components/MentionButton/MentionButton.d.ts +9 -3
- package/lib/components/MentionButton/MentionButton.d.ts.map +1 -1
- package/lib/components/MentionButton/MentionButton.js +33 -16
- package/lib/components/MentionButton/MentionButton.js.map +1 -1
- package/package.json +13 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../../../src/components/Chat/SystemMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAmC,MAAM,OAAO,CAAC;AACvF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAGjB,MAAM,yBAAyB,CAAC;AAiBjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAC3C,CAAC,EACC,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EAAE,EAAE,kBAAkB,EAAE,eAAe,EAAE,EAChD,YAAY,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,EACnD,EACD,UAAU,EAAE,EACV,IAAI,EAAE,EACJ,aAAa,EAAE,EACb,MAAM,EAAE,EACN,OAAO,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAC3D,EACF,EACF,EACF,EACF,EACD,OAAO,EACR,EAAE,EAAE;IACH,MAAM,4BAA4B,GAChC,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAA;eACC,4BAA4B;;;;;;;sCAOL,4BAA4B;;;;;;;;;;KAU7D,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,aAAa,GAAyD,UAAU,CACpF,CAAC,KAA0C,EAAE,GAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1E,OAAO,CACL,MAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../../../src/components/Chat/SystemMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAmC,MAAM,OAAO,CAAC;AACvF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAGjB,MAAM,yBAAyB,CAAC;AAiBjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAC3C,CAAC,EACC,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EAAE,EAAE,kBAAkB,EAAE,eAAe,EAAE,EAChD,YAAY,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,EACnD,EACD,UAAU,EAAE,EACV,IAAI,EAAE,EACJ,aAAa,EAAE,EACb,MAAM,EAAE,EACN,OAAO,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAC3D,EACF,EACF,EACF,EACF,EACD,OAAO,EACR,EAAE,EAAE;IACH,MAAM,4BAA4B,GAChC,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAA;eACC,4BAA4B;;;;;;;sCAOL,4BAA4B;;;;;;;;;;KAU7D,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,aAAa,GAAyD,UAAU,CACpF,CAAC,KAA0C,EAAE,GAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1E,OAAO,CACL,MAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,mBAAmB,EACvB,SAAS,EAAE;YACT,UAAU,EAAE,QAAQ;SACrB,EACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC;SACV,EACD,OAAO,EAAE,OAAO,KACZ,SAAS,aAEZ,SAAS,IAAI,GAAG,SAAS,IAAI,OAAG,OAAO,YACnC,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { FunctionComponent, forwardRef, PropsWithoutRef, ReactNode, Ref } from 'react';\nimport styled, { css } from 'styled-components';\nimport { rgba as polishedRgba } from 'polished';\n\nimport {\n Flex,\n tryCatch,\n defaultThemeProp,\n ForwardProps,\n PropsWithDefaults\n} from '@pega/cosmos-react-core';\n\nexport interface SystemMessageProps {\n /** Ref to the container element */\n ref?: Ref<HTMLDivElement>;\n /** System message to be displayed */\n message: ReactNode;\n /** timestamp of the message(Formatted) */\n timeStamp?: string;\n /** variant of this system message\n * @default \"secondary\"\n */\n variant?: 'primary' | 'secondary';\n}\n\ntype SystemMessagePropsWithDefaults = PropsWithDefaults<SystemMessageProps, 'variant'>;\n\nexport const StyledSystemMessage = styled.div<Pick<SystemMessagePropsWithDefaults, 'variant'>>(\n ({\n theme: {\n base: {\n palette: { 'foreground-color': foregroundColor },\n transparency: { 'transparent-3': foregroundAlpha }\n },\n components: {\n chat: {\n messageBubble: {\n sender: {\n content: { 'background-color': primarySystemMessageColor }\n }\n }\n }\n }\n },\n variant\n }) => {\n const systemMessageForeGroundColor =\n variant === 'primary'\n ? primarySystemMessageColor\n : tryCatch(() => polishedRgba(foregroundColor, foregroundAlpha));\n return css`\n color: ${systemMessageForeGroundColor};\n font-size: 0.75rem;\n padding: 0 0 0.5rem;\n ::before,\n ::after {\n display: inline-flex;\n content: '';\n border-top: 0.0625rem solid ${systemMessageForeGroundColor};\n flex-grow: 1;\n min-width: 1.5rem;\n }\n ::before {\n margin: 0 0.5rem 0 0;\n }\n ::after {\n margin: 0 0 0 0.5rem;\n }\n `;\n }\n);\n\nStyledSystemMessage.defaultProps = defaultThemeProp;\n\nconst SystemMessage: FunctionComponent<SystemMessageProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<SystemMessageProps>, ref: SystemMessageProps['ref']) => {\n const { message, timeStamp, variant = 'secondary', ...restProps } = props;\n return (\n <Flex\n ref={ref}\n as={StyledSystemMessage}\n container={{\n alignItems: 'center'\n }}\n item={{\n shrink: 0\n }}\n variant={variant}\n {...restProps}\n >\n {timeStamp && `${timeStamp}: `} {message}\n </Flex>\n );\n }\n);\n\nexport default SystemMessage;\n"]}
|
|
@@ -34,18 +34,14 @@ const StyledTranscriptMessage = styled.div(({ theme: { components: { chat: { tra
|
|
|
34
34
|
StyledTranscriptMessage.defaultProps = defaultThemeProp;
|
|
35
35
|
const TranscriptMessage = forwardRef((props, ref) => {
|
|
36
36
|
const { variant, transcriptHeader, message, timeStamp, avatarInfo, ...restProps } = props;
|
|
37
|
-
return (_jsxs(Flex,
|
|
37
|
+
return (_jsxs(Flex, { container: {
|
|
38
38
|
gap: 2,
|
|
39
39
|
alignItems: 'start'
|
|
40
40
|
}, item: {
|
|
41
41
|
shrink: 0
|
|
42
|
-
}, ref: ref, as: StyledTranscriptMessage
|
|
43
|
-
avatarInfo ? (_jsx(Avatar, { name: avatarInfo.name, size: 's', shape: 'circle', imageSrc: avatarInfo.imageSrc }, void 0)) : (_jsx(Icon, { as: StyledTranscriptIcon, name: iconMapping[variant] }, void 0)),
|
|
44
|
-
_jsxs(Flex, Object.assign({ item: {
|
|
42
|
+
}, ref: ref, as: StyledTranscriptMessage, ...restProps, children: [_jsx(Text, { as: StyledTranscriptTimeStamp, variant: 'secondary', children: timeStamp }, void 0), avatarInfo ? (_jsx(Avatar, { name: avatarInfo.name, size: 's', shape: 'circle', imageSrc: avatarInfo.imageSrc }, void 0)) : (_jsx(Icon, { as: StyledTranscriptIcon, name: iconMapping[variant] }, void 0)), _jsxs(Flex, { item: {
|
|
45
43
|
grow: 1
|
|
46
|
-
}
|
|
47
|
-
transcriptHeader.meta] }, void 0)),
|
|
48
|
-
_jsx(EmojiDisplay, { content: message, size: 20 }, void 0)] }), void 0)] }), void 0));
|
|
44
|
+
}, children: [transcriptHeader && transcriptHeader.content && (_jsxs(StyledTranscriptHeader, { children: [_jsx(StyledTranscriptHeaderContent, { children: transcriptHeader.content }, void 0), transcriptHeader.meta] }, void 0)), _jsx(EmojiDisplay, { content: message, size: 20 }, void 0)] }, void 0)] }, void 0));
|
|
49
45
|
});
|
|
50
46
|
export default TranscriptMessage;
|
|
51
47
|
//# sourceMappingURL=TranscriptMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranscriptMessage.js","sourceRoot":"","sources":["../../../src/components/Chat/TranscriptMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsD,MAAM,OAAO,CAAC;AACvF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EAEJ,MAAM,EACN,YAAY,EACZ,gBAAgB,EAEjB,MAAM,yBAAyB,CAAC;AAwBjC,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,aAAa;IAClB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAE1C,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC;AAEhD,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAA,EAAE,CAAC;AAE/C,MAAM,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC;AAEpD,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CACxC,CAAC,EACC,KAAK,EAAE,EACL,UAAU,EAAE,EACV,IAAI,EAAE,EACJ,UAAU,EAAE,EACV,OAAO,EAAE,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,EAC1D,EACF,EACF,EACF,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;;;;QAIN,oBAAoB;iBACX,mBAAmB;;;QAG5B,yBAAyB;;;QAGzB,sBAAsB;;;QAGtB,6BAA6B;;;KAGhC,CAAC;AACJ,CAAC,CACF,CAAC;AACF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,iBAAiB,GAA6D,UAAU,CAC5F,CAAC,KAA8C,EAAE,GAAkC,EAAE,EAAE;IACrF,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1F,OAAO,CACL,MAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"TranscriptMessage.js","sourceRoot":"","sources":["../../../src/components/Chat/TranscriptMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsD,MAAM,OAAO,CAAC;AACvF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EAEJ,MAAM,EACN,YAAY,EACZ,gBAAgB,EAEjB,MAAM,yBAAyB,CAAC;AAwBjC,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,aAAa;IAClB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAE1C,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC;AAEhD,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAA,EAAE,CAAC;AAE/C,MAAM,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC;AAEpD,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CACxC,CAAC,EACC,KAAK,EAAE,EACL,UAAU,EAAE,EACV,IAAI,EAAE,EACJ,UAAU,EAAE,EACV,OAAO,EAAE,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,EAC1D,EACF,EACF,EACF,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;;;;QAIN,oBAAoB;iBACX,mBAAmB;;;QAG5B,yBAAyB;;;QAGzB,sBAAsB;;;QAGtB,6BAA6B;;;KAGhC,CAAC;AACJ,CAAC,CACF,CAAC;AACF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,iBAAiB,GAA6D,UAAU,CAC5F,CAAC,KAA8C,EAAE,GAAkC,EAAE,EAAE;IACrF,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1F,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE;YACT,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,OAAO;SACpB,EACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC;SACV,EACD,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,uBAAuB,KACvB,SAAS,aAEb,KAAC,IAAI,IAAC,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAC,WAAW,YACrD,SAAS,WACL,EACN,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,IAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,WAAI,CACzF,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,WAAI,CAC/D,EACD,MAAC,IAAI,IACH,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC;iBACR,aAEA,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAC/C,MAAC,sBAAsB,eACrB,KAAC,6BAA6B,cAC3B,gBAAgB,CAAC,OAAO,WACK,EAC/B,gBAAgB,CAAC,IAAI,YACC,CAC1B,EACD,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,WAAI,YACvC,YACF,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { forwardRef, FunctionComponent, PropsWithoutRef, Ref, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Flex,\n Text,\n Icon,\n AvatarProps,\n Avatar,\n EmojiDisplay,\n defaultThemeProp,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nexport type TranscriptHeaderProps = {\n /** transcript header content */\n content?: ReactNode;\n /** meta data */\n meta?: ReactNode;\n};\n\nexport interface TranscriptMessageProps {\n /** ref to the element */\n ref?: Ref<HTMLDivElement>;\n /** Timestamp */\n timeStamp: string;\n /** Transcript content */\n message: ReactNode;\n /** Variant of transcript item */\n variant: 'user' | 'bot' | 'question';\n /** Avatar information, can be image and name */\n avatarInfo?: Pick<AvatarProps, 'name' | 'imageSrc'>;\n /** Transcript header */\n transcriptHeader?: TranscriptHeaderProps;\n}\n\nconst iconMapping = {\n user: 'user-solid',\n bot: 'robot-solid',\n question: 'help'\n};\n\nconst StyledTranscriptIcon = styled.svg``;\n\nconst StyledTranscriptTimeStamp = styled.span``;\n\nconst StyledTranscriptHeader = styled.header``;\n\nconst StyledTranscriptHeaderContent = styled.span``;\n\nconst StyledTranscriptMessage = styled.div(\n ({\n theme: {\n components: {\n chat: {\n transcript: {\n message: { 'icon-foreground-color': iconForegroundColor }\n }\n }\n }\n }\n }) => {\n return css`\n width: 100%;\n line-height: 1rem;\n padding: 0 0 0.25rem;\n ${StyledTranscriptIcon} {\n color: ${iconForegroundColor};\n flex-shrink: 0;\n }\n ${StyledTranscriptTimeStamp} {\n flex-shrink: 0;\n }\n ${StyledTranscriptHeader} {\n margin-bottom: 0.25rem;\n }\n ${StyledTranscriptHeaderContent} {\n margin-right: 0.5rem;\n }\n `;\n }\n);\nStyledTranscriptMessage.defaultProps = defaultThemeProp;\n\nconst TranscriptMessage: FunctionComponent<TranscriptMessageProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<TranscriptMessageProps>, ref: TranscriptMessageProps['ref']) => {\n const { variant, transcriptHeader, message, timeStamp, avatarInfo, ...restProps } = props;\n\n return (\n <Flex\n container={{\n gap: 2,\n alignItems: 'start'\n }}\n item={{\n shrink: 0\n }}\n ref={ref}\n as={StyledTranscriptMessage}\n {...restProps}\n >\n <Text as={StyledTranscriptTimeStamp} variant='secondary'>\n {timeStamp}\n </Text>\n {avatarInfo ? (\n <Avatar name={avatarInfo.name} size='s' shape='circle' imageSrc={avatarInfo.imageSrc} />\n ) : (\n <Icon as={StyledTranscriptIcon} name={iconMapping[variant]} />\n )}\n <Flex\n item={{\n grow: 1\n }}\n >\n {transcriptHeader && transcriptHeader.content && (\n <StyledTranscriptHeader>\n <StyledTranscriptHeaderContent>\n {transcriptHeader.content}\n </StyledTranscriptHeaderContent>\n {transcriptHeader.meta}\n </StyledTranscriptHeader>\n )}\n <EmojiDisplay content={message} size={20} />\n </Flex>\n </Flex>\n );\n }\n);\n\nexport default TranscriptMessage;\n"]}
|
|
@@ -3,7 +3,7 @@ import { forwardRef } from 'react';
|
|
|
3
3
|
import Message from './Message';
|
|
4
4
|
const TypeIndicator = forwardRef((props, ref) => {
|
|
5
5
|
const { avatarInfo, message, ...restProps } = props;
|
|
6
|
-
return (_jsx(Message,
|
|
6
|
+
return (_jsx(Message, { variant: 'receiver', direction: 'in', avatarInfo: avatarInfo, typing: true, ref: ref, message: message, ...restProps }, void 0));
|
|
7
7
|
});
|
|
8
8
|
export default TypeIndicator;
|
|
9
9
|
//# sourceMappingURL=TypeIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeIndicator.js","sourceRoot":"","sources":["../../../src/components/Chat/TypeIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAwB,MAAM,OAAO,CAAC;AAI5E,OAAO,OAAO,MAAM,WAAW,CAAC;AAWhC,MAAM,aAAa,GAAyD,UAAU,CACpF,CAAC,KAA0C,EAAE,GAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACpD,OAAO,CACL,KAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TypeIndicator.js","sourceRoot":"","sources":["../../../src/components/Chat/TypeIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAwB,MAAM,OAAO,CAAC;AAI5E,OAAO,OAAO,MAAM,WAAW,CAAC;AAWhC,MAAM,aAAa,GAAyD,UAAU,CACpF,CAAC,KAA0C,EAAE,GAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACpD,OAAO,CACL,KAAC,OAAO,IACN,OAAO,EAAC,UAAU,EAClB,SAAS,EAAC,IAAI,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,QACN,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,KACZ,SAAS,WACb,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { FunctionComponent, forwardRef, PropsWithoutRef, Ref } from 'react';\n\nimport { AvatarProps, ForwardProps } from '@pega/cosmos-react-core';\n\nimport Message from './Message';\n\nexport interface TypeIndicatorProps {\n /** ref to the element */\n ref?: Ref<HTMLDivElement>;\n /** Avatar information, can be image and name */\n avatarInfo: Pick<AvatarProps, 'name' | 'imageSrc'>;\n /** Type ahead message */\n message?: string;\n}\n\nconst TypeIndicator: FunctionComponent<TypeIndicatorProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<TypeIndicatorProps>, ref: TypeIndicatorProps['ref']) => {\n const { avatarInfo, message, ...restProps } = props;\n return (\n <Message\n variant='receiver'\n direction='in'\n avatarInfo={avatarInfo}\n typing\n ref={ref}\n message={message}\n {...restProps}\n />\n );\n }\n);\n\nexport default TypeIndicator;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../../src/components/Email/Email.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAEnG,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../../src/components/Email/Email.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAEnG,OAAO,EACL,YAAY,EAqBb,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AA8CtD,QAAA,MAAM,KAAK,EAAE,iBAAiB,CAAC,UAAU,GAAG,YAAY,CAiVvD,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { createElement as _createElement } from "react";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef, Fragment, useRef, useState } from 'react';
|
|
4
|
-
import { Text, SummaryItem, Avatar, Flex, EmailDisplay, Button, Icon,
|
|
4
|
+
import { Text, SummaryItem, Avatar, Flex, EmailDisplay, Button, Icon, Sentiment, useOuterEvent, Popover, useElement, CardContent, useI18n, FileDisplay, useBreakpoint, DateTimeDisplay, useConfiguration, MetaList } from '@pega/cosmos-react-core';
|
|
5
5
|
import { RichTextViewer } from '@pega/cosmos-react-rte';
|
|
6
6
|
import EmailEntity from './EmailEntity';
|
|
7
|
-
import { StyledEmail, StyledEmailDisplay, StyledEmailHeader, StyledFromEmailDisplay, StyledEmailMoreInfoButton, StyledEmailMoreInfoPopover, StyledEmailPrimaryFieldValueList, StyledEmailBody, StyledEmailSecondaryFieldValueList,
|
|
8
|
-
const
|
|
9
|
-
return (_jsx(_Fragment, { children: emailUsers.map(({ emailAddress, fullName, shortName }, i) => (_jsxs(Fragment, { children: [i === 0 ? '' : '; ',
|
|
10
|
-
_jsx(EmailDisplay, { value: emailAddress, displayText: `${showShortName ? shortName : fullName}${showEmailAddress ? ` <${emailAddress}>` : ''}`, variant: 'text', as: StyledEmailDisplay }, void 0)] }, emailAddress))) }, void 0));
|
|
7
|
+
import { StyledEmail, StyledEmailDisplay, StyledEmailHeader, StyledFromEmailDisplay, StyledEmailMoreInfoButton, StyledEmailMoreInfoPopover, StyledEmailPrimaryFieldValueList, StyledEmailBody, StyledEmailSecondaryFieldValueList, StyledSuggestedRepliesButton, StyledSuggestedRepliesMenuButton } from './Email.styles';
|
|
8
|
+
const EmailDisplayList = ({ emailUsers, showEmailAddress, showShortName }) => {
|
|
9
|
+
return (_jsx(_Fragment, { children: emailUsers.map(({ emailAddress, fullName, shortName }, i) => (_jsxs(Fragment, { children: [i === 0 ? '' : '; ', _jsx(EmailDisplay, { value: emailAddress, displayText: `${showShortName ? shortName : fullName}${showEmailAddress ? ` <${emailAddress}>` : ''}`, variant: 'text', as: StyledEmailDisplay }, void 0)] }, emailAddress))) }, void 0));
|
|
11
10
|
};
|
|
12
11
|
const OVERFLOW_TO_EMAIL_COUNT = 2;
|
|
13
12
|
const OVERFLOW_EMAIL_SUGGESTION_COUNT = 2;
|
|
14
13
|
const Email = forwardRef((props, ref) => {
|
|
15
|
-
const { id, from, to = [], cc = [], bcc = [], actions = [], timeStamp, sentiment, subject, body, attachments = [],
|
|
14
|
+
const { id, from, to = [], cc = [], bcc = [], actions = [], timeStamp, sentiment, subject, body, attachments = [], suggestions = [], entityHighlightMapping = [], onReply, onForward, onReplyAll, onSuggestionClick, ...restProps } = props;
|
|
16
15
|
const t = useI18n();
|
|
17
16
|
const [emailMoreInfoBtnRef, setEmailMoreInfoBtnRef] = useElement(null);
|
|
18
17
|
const [showEmailMoreInfo, setShowEmailMoreInfo] = useState(false);
|
|
@@ -20,6 +19,7 @@ const Email = forwardRef((props, ref) => {
|
|
|
20
19
|
const emailMoreInfoFields = [];
|
|
21
20
|
const headerRef = useRef(null);
|
|
22
21
|
const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: headerRef });
|
|
22
|
+
const { locale } = useConfiguration();
|
|
23
23
|
if (from) {
|
|
24
24
|
emailMoreInfoFields.push({
|
|
25
25
|
id: 'from',
|
|
@@ -31,68 +31,50 @@ const Email = forwardRef((props, ref) => {
|
|
|
31
31
|
emailMoreInfoFields.push({
|
|
32
32
|
id: 'to',
|
|
33
33
|
name: t('to'),
|
|
34
|
-
value:
|
|
34
|
+
value: _jsx(EmailDisplayList, { emailUsers: to, showEmailAddress: true }, void 0)
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
if (cc.length > 0) {
|
|
38
38
|
emailMoreInfoFields.push({
|
|
39
39
|
id: 'cc',
|
|
40
40
|
name: 'CC',
|
|
41
|
-
value:
|
|
41
|
+
value: _jsx(EmailDisplayList, { emailUsers: cc, showEmailAddress: true }, void 0)
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
if (bcc.length > 0) {
|
|
45
45
|
emailMoreInfoFields.push({
|
|
46
46
|
id: 'BCC',
|
|
47
47
|
name: 'BCC',
|
|
48
|
-
value:
|
|
48
|
+
value: _jsx(EmailDisplayList, { emailUsers: bcc, showEmailAddress: true }, void 0)
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
if (timeStamp) {
|
|
52
52
|
emailMoreInfoFields.push({
|
|
53
53
|
id: 'date',
|
|
54
54
|
name: t('date'),
|
|
55
|
-
value: timeStamp
|
|
55
|
+
value: (_jsxs(Text, { children: [`${new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(new Date(timeStamp))}, `, _jsx(DateTimeDisplay, { variant: 'datetime', format: 'short', value: timeStamp }, void 0)] }, void 0))
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
useOuterEvent('mousedown', [emailMoreInfoPopover], () => {
|
|
59
59
|
setShowEmailMoreInfo(false);
|
|
60
60
|
});
|
|
61
|
-
const primaryFields = [];
|
|
62
|
-
if (subject) {
|
|
63
|
-
primaryFields.push({
|
|
64
|
-
id: 'subject',
|
|
65
|
-
name: t('subject'),
|
|
66
|
-
value: subject
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
61
|
const secondaryFields = [];
|
|
70
|
-
if (tags) {
|
|
71
|
-
secondaryFields.push({
|
|
72
|
-
id: 'tags',
|
|
73
|
-
name: tags.label,
|
|
74
|
-
value: (_jsx(Flex, Object.assign({ container: { gap: 1, wrap: 'wrap' } }, { children: tags.dismissable
|
|
75
|
-
? tags.items.map(tag => (_jsx(Selectable, Object.assign({ id: tag, readOnly: true, onRemove: tags.onRemove }, { children: tag }), tag)))
|
|
76
|
-
: tags.items.map(tag => _jsx(Tag, { children: tag }, void 0)) }), void 0))
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
62
|
if (attachments.length > 0) {
|
|
80
63
|
secondaryFields.push({
|
|
81
64
|
id: 'attachments',
|
|
82
65
|
name: '',
|
|
83
|
-
value: (_jsx(Flex,
|
|
66
|
+
value: (_jsx(Flex, { container: { gap: 1, wrap: 'wrap' }, children: attachments.map(attachmentProps => (_createElement(FileDisplay, { ...attachmentProps, key: attachmentProps.value }))) }, void 0))
|
|
84
67
|
});
|
|
85
68
|
}
|
|
86
69
|
if (suggestions.length > 0) {
|
|
87
70
|
secondaryFields.push({
|
|
88
71
|
id: 'suggested_replies',
|
|
89
72
|
name: '',
|
|
90
|
-
value: (_jsxs(Flex,
|
|
73
|
+
value: (_jsxs(Flex, { container: { wrap: 'wrap' }, children: [suggestions
|
|
91
74
|
.slice(0, OVERFLOW_EMAIL_SUGGESTION_COUNT)
|
|
92
|
-
.map(({ id: suggestionId, title }) => (_jsx(
|
|
93
|
-
onSuggestionClick
|
|
94
|
-
}
|
|
95
|
-
suggestions.length > OVERFLOW_EMAIL_SUGGESTION_COUNT && (_jsx(MenuButton, { text: 'Other responses', variant: 'secondary', menu: {
|
|
75
|
+
.map(({ id: suggestionId, title }) => (_jsx(StyledSuggestedRepliesButton, { variant: 'secondary', onClick: () => {
|
|
76
|
+
onSuggestionClick?.(id, suggestionId);
|
|
77
|
+
}, children: title }, suggestionId))), suggestions.length > OVERFLOW_EMAIL_SUGGESTION_COUNT && (_jsx(StyledSuggestedRepliesMenuButton, { text: 'Other responses', variant: 'secondary', menu: {
|
|
96
78
|
items: suggestions
|
|
97
79
|
.slice(OVERFLOW_EMAIL_SUGGESTION_COUNT)
|
|
98
80
|
.map(({ id: suggestionId, title }) => {
|
|
@@ -100,18 +82,18 @@ const Email = forwardRef((props, ref) => {
|
|
|
100
82
|
primary: title,
|
|
101
83
|
id: suggestionId,
|
|
102
84
|
onClick: () => {
|
|
103
|
-
onSuggestionClick
|
|
85
|
+
onSuggestionClick?.(id, suggestionId);
|
|
104
86
|
}
|
|
105
87
|
};
|
|
106
88
|
})
|
|
107
|
-
} }, 'other_responses'))] }
|
|
89
|
+
} }, 'other_responses'))] }, void 0))
|
|
108
90
|
});
|
|
109
91
|
}
|
|
110
92
|
let renderedBody = body;
|
|
111
93
|
// Apply entity highlighting only on string body
|
|
112
94
|
if (typeof body === 'string') {
|
|
113
95
|
const entityConfigs = entityHighlightMapping.map(entity => {
|
|
114
|
-
const regExp = RegExp(entity.
|
|
96
|
+
const regExp = RegExp(entity.value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
|
|
115
97
|
return {
|
|
116
98
|
type: 'entity',
|
|
117
99
|
regexPattern: regExp,
|
|
@@ -120,72 +102,52 @@ const Email = forwardRef((props, ref) => {
|
|
|
120
102
|
});
|
|
121
103
|
renderedBody = (_jsx(RichTextViewer, { content: body, type: 'html', interactionRenderers: entityConfigs }, void 0));
|
|
122
104
|
}
|
|
123
|
-
|
|
105
|
+
const emailMetaListItems = [
|
|
106
|
+
_jsxs(Text, { variant: 'secondary', children: [`${t('to')}: `, _jsx(EmailDisplayList, { emailUsers: to.slice(0, OVERFLOW_TO_EMAIL_COUNT), showShortName: true }, void 0), to.length > OVERFLOW_TO_EMAIL_COUNT &&
|
|
107
|
+
`; +${t('more_count', [to.length - OVERFLOW_TO_EMAIL_COUNT])}`] }, void 0),
|
|
108
|
+
_jsxs(Text, { variant: 'secondary', children: [`${new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(new Date(timeStamp))}, `, _jsx(DateTimeDisplay, { variant: 'datetime', format: 'short', value: timeStamp }, void 0)] }, void 0)
|
|
109
|
+
];
|
|
110
|
+
return (_jsxs(Flex, { as: StyledEmail, container: {
|
|
124
111
|
direction: 'column',
|
|
125
112
|
gap: 1
|
|
126
|
-
}, ref: ref
|
|
113
|
+
}, ref: ref, ...restProps, children: [_jsx(SummaryItem, { as: StyledEmailHeader, visual: _jsx(Avatar, { ...from.avatarProps, name: from.fullName }, void 0), ref: headerRef, primary: _jsxs(Flex, { container: {
|
|
127
114
|
gap: 1,
|
|
128
115
|
alignItems: 'center'
|
|
129
|
-
}
|
|
130
|
-
sentiment && _jsx(Sentiment, Object.assign({}, sentiment, { labelHidden: true }), void 0)] }), void 0), secondary: _jsxs(Flex, Object.assign({ container: {
|
|
116
|
+
}, children: [_jsx(StyledFromEmailDisplay, { value: from.emailAddress, displayText: from.fullName, variant: 'text' }, void 0), sentiment && _jsx(Sentiment, { ...sentiment, labelHidden: true }, void 0)] }, void 0), secondary: _jsxs(Flex, { container: {
|
|
131
117
|
gap: 0,
|
|
132
118
|
alignItems: 'start',
|
|
133
119
|
direction: 'column'
|
|
134
|
-
}
|
|
120
|
+
}, children: [_jsxs(Flex, { container: {
|
|
135
121
|
gap: 0,
|
|
136
122
|
alignItems: 'start'
|
|
137
|
-
}
|
|
138
|
-
renderEmailUserList({
|
|
139
|
-
emailUsers: to.slice(0, OVERFLOW_TO_EMAIL_COUNT),
|
|
140
|
-
showShortName: true
|
|
141
|
-
}), ' ',
|
|
142
|
-
to.length > OVERFLOW_TO_EMAIL_COUNT
|
|
143
|
-
? `; +${to.length - OVERFLOW_TO_EMAIL_COUNT} ${t('more')}, `
|
|
144
|
-
: ''] }), void 0),
|
|
145
|
-
isSmallOrAbove && timeStamp && (_jsxs(Flex, Object.assign({ container: {
|
|
146
|
-
gap: 0,
|
|
147
|
-
alignItems: 'center'
|
|
148
|
-
} }, { children: [_jsx(StyledSecondarySeparator, {}, void 0),
|
|
149
|
-
_jsx(Text, Object.assign({ variant: 'secondary' }, { children: timeStamp }), void 0)] }), void 0)),
|
|
150
|
-
_jsx(Button, Object.assign({ icon: true, variant: 'simple', as: StyledEmailMoreInfoButton, ref: setEmailMoreInfoBtnRef, onClick: () => {
|
|
123
|
+
}, children: [_jsx(MetaList, { items: isSmallOrAbove ? emailMetaListItems : [emailMetaListItems[0]] }, void 0), _jsx(Button, { icon: true, variant: 'simple', as: StyledEmailMoreInfoButton, ref: setEmailMoreInfoBtnRef, onClick: () => {
|
|
151
124
|
setShowEmailMoreInfo(true);
|
|
152
|
-
},
|
|
153
|
-
_jsx(Popover, Object.assign({ as: StyledEmailMoreInfoPopover, show: showEmailMoreInfo, ref: setEmailMoreInfoPopover, target: emailMoreInfoBtnRef, placement: 'bottom' }, { children: _jsx(CardContent, { children: _jsx(StyledEmailPrimaryFieldValueList, { fields: emailMoreInfoFields }, void 0) }, void 0) }), void 0)] }), void 0),
|
|
154
|
-
!isSmallOrAbove && timeStamp && _jsx(Text, Object.assign({ variant: 'secondary' }, { children: timeStamp }), void 0)] }), void 0), actions: _jsx(Flex, Object.assign({ container: {
|
|
125
|
+
}, label: t('show_more'), children: _jsx(Icon, { name: 'arrow-micro-down' }, void 0) }, void 0), _jsx(Popover, { as: StyledEmailMoreInfoPopover, show: showEmailMoreInfo, ref: setEmailMoreInfoPopover, target: emailMoreInfoBtnRef, placement: 'bottom', children: _jsx(CardContent, { children: _jsx(StyledEmailPrimaryFieldValueList, { fields: emailMoreInfoFields }, void 0) }, void 0) }, void 0)] }, void 0), !isSmallOrAbove && timeStamp && emailMetaListItems[1]] }, void 0), actions: _jsx(Flex, { container: {
|
|
155
126
|
gap: 1
|
|
156
|
-
}
|
|
157
|
-
_jsxs(Flex, Object.assign({ container: {
|
|
127
|
+
}, children: actions }, void 0) }, void 0), _jsxs(Flex, { container: {
|
|
158
128
|
direction: 'column',
|
|
159
|
-
gap:
|
|
160
|
-
pad: 2
|
|
161
|
-
}
|
|
162
|
-
_jsx(StyledEmailBody, { children: renderedBody }, void 0)] }), void 0),
|
|
163
|
-
_jsxs(Flex, Object.assign({ container: {
|
|
129
|
+
gap: 2,
|
|
130
|
+
pad: [0, 2]
|
|
131
|
+
}, children: [subject && (_jsxs(Text, { variant: 'primary', children: [t('subject'), ": ", subject] }, void 0)), _jsx(StyledEmailBody, { children: renderedBody }, void 0)] }, void 0), _jsxs(Flex, { container: {
|
|
164
132
|
direction: 'column',
|
|
165
133
|
gap: 1,
|
|
166
|
-
pad: 2
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
} }, { children: _jsxs(Flex, Object.assign({ container: {
|
|
134
|
+
pad: [0, 2]
|
|
135
|
+
}, children: [_jsx(StyledEmailSecondaryFieldValueList, { fields: secondaryFields }, void 0), _jsxs("div", { children: [_jsx(Button, { variant: 'simple', onClick: () => {
|
|
136
|
+
onReply?.(id);
|
|
137
|
+
}, children: _jsxs(Flex, { container: {
|
|
171
138
|
gap: 1,
|
|
172
139
|
alignItems: 'center'
|
|
173
|
-
}
|
|
174
|
-
_jsx("span", { children: t('reply') }, void 0)] }), void 0) }), void 0),
|
|
175
|
-
onReplyAll && (_jsx(Button, Object.assign({ variant: 'simple', onClick: () => {
|
|
140
|
+
}, children: [_jsx(Icon, { name: 'reply' }, void 0), _jsx("span", { children: t('reply') }, void 0)] }, void 0) }, void 0), onReplyAll && (_jsx(Button, { variant: 'simple', onClick: () => {
|
|
176
141
|
onReplyAll(id);
|
|
177
|
-
}
|
|
142
|
+
}, children: _jsxs(Flex, { container: {
|
|
178
143
|
gap: 1,
|
|
179
144
|
alignItems: 'center'
|
|
180
|
-
}
|
|
181
|
-
_jsx("span", { children: t('reply_all') }, void 0)] }), void 0) }), void 0)),
|
|
182
|
-
onForward && (_jsx(Button, Object.assign({ variant: 'simple', onClick: () => {
|
|
145
|
+
}, children: [_jsx(Icon, { name: 'reply-all' }, void 0), _jsx("span", { children: t('reply_all') }, void 0)] }, void 0) }, void 0)), onForward && (_jsx(Button, { variant: 'simple', onClick: () => {
|
|
183
146
|
onForward(id);
|
|
184
|
-
}
|
|
147
|
+
}, children: _jsxs(Flex, { container: {
|
|
185
148
|
gap: 1,
|
|
186
149
|
alignItems: 'center'
|
|
187
|
-
}
|
|
188
|
-
_jsx("span", { children: t('forward') }, void 0)] }), void 0) }), void 0))] }, void 0)] }), void 0)] }), void 0));
|
|
150
|
+
}, children: [_jsx(Icon, { name: 'forward' }, void 0), _jsx("span", { children: t('forward') }, void 0)] }, void 0) }, void 0))] }, void 0)] }, void 0)] }, void 0));
|
|
189
151
|
});
|
|
190
152
|
export default Email;
|
|
191
153
|
//# sourceMappingURL=Email.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.js","sourceRoot":"","sources":["../../../src/components/Email/Email.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, FunctionComponent, PropsWithoutRef, useRef, useState } from 'react';\n\nimport {\n ForwardProps,\n Text,\n SummaryItem,\n Avatar,\n Flex,\n EmailDisplay,\n Button,\n Icon,\n MenuButton,\n FieldValueListProps,\n Sentiment,\n Tag,\n useOuterEvent,\n Popover,\n useElement,\n CardContent,\n useI18n,\n FileDisplay,\n Selectable,\n useBreakpoint\n} from '@pega/cosmos-react-core';\nimport { RichTextViewer } from '@pega/cosmos-react-rte';\n\nimport EmailEntity from './EmailEntity';\nimport { EmailUser, EmailProps } from './Email.types';\nimport {\n StyledEmail,\n StyledEmailDisplay,\n StyledEmailHeader,\n StyledFromEmailDisplay,\n StyledEmailMoreInfoButton,\n StyledEmailMoreInfoPopover,\n StyledEmailPrimaryFieldValueList,\n StyledEmailBody,\n StyledEmailSecondaryFieldValueList,\n StyledSecondarySeparator\n} from './Email.styles';\n\nconst renderEmailUserList = ({\n emailUsers,\n showEmailAddress,\n showShortName\n}: {\n emailUsers: EmailUser[];\n showEmailAddress?: boolean;\n showShortName?: boolean;\n}) => {\n return (\n <>\n {emailUsers.map(({ emailAddress, fullName, shortName }, i) => (\n <Fragment key={emailAddress}>\n {i === 0 ? '' : '; '}\n <EmailDisplay\n value={emailAddress}\n displayText={`${showShortName ? shortName : fullName}${\n showEmailAddress ? ` <${emailAddress}>` : ''\n }`}\n variant='text'\n as={StyledEmailDisplay}\n />\n </Fragment>\n ))}\n </>\n );\n};\n\nconst OVERFLOW_TO_EMAIL_COUNT = 2;\nconst OVERFLOW_EMAIL_SUGGESTION_COUNT = 2;\n\nconst Email: FunctionComponent<EmailProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<EmailProps>, ref: EmailProps['ref']) => {\n const {\n id,\n from,\n to = [],\n cc = [],\n bcc = [],\n actions = [],\n timeStamp,\n sentiment,\n subject,\n body,\n attachments = [],\n tags,\n suggestions = [],\n entityHighlightMapping = [],\n onReply,\n onForward,\n onReplyAll,\n onSuggestionClick,\n ...restProps\n } = props;\n const t = useI18n();\n\n const [emailMoreInfoBtnRef, setEmailMoreInfoBtnRef] = useElement<HTMLButtonElement>(null);\n const [showEmailMoreInfo, setShowEmailMoreInfo] = useState(false);\n const [emailMoreInfoPopover, setEmailMoreInfoPopover] = useElement<HTMLDivElement>(null);\n const emailMoreInfoFields: FieldValueListProps['fields'] = [];\n\n const headerRef = useRef<HTMLDivElement>(null);\n const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: headerRef });\n\n if (from) {\n emailMoreInfoFields.push({\n id: 'from',\n name: t('from'),\n value: from.emailAddress\n });\n }\n\n if (to.length > 0) {\n emailMoreInfoFields.push({\n id: 'to',\n name: t('to'),\n value: renderEmailUserList({ emailUsers: to, showEmailAddress: true })\n });\n }\n\n if (cc.length > 0) {\n emailMoreInfoFields.push({\n id: 'cc',\n name: 'CC',\n value: renderEmailUserList({ emailUsers: cc, showEmailAddress: true })\n });\n }\n\n if (bcc.length > 0) {\n emailMoreInfoFields.push({\n id: 'BCC',\n name: 'BCC',\n value: renderEmailUserList({ emailUsers: bcc, showEmailAddress: true })\n });\n }\n\n if (timeStamp) {\n emailMoreInfoFields.push({\n id: 'date',\n name: t('date'),\n value: timeStamp\n });\n }\n\n useOuterEvent('mousedown', [emailMoreInfoPopover], () => {\n setShowEmailMoreInfo(false);\n });\n\n const primaryFields: FieldValueListProps['fields'] = [];\n if (subject) {\n primaryFields.push({\n id: 'subject',\n name: t('subject'),\n value: subject\n });\n }\n\n const secondaryFields: FieldValueListProps['fields'] = [];\n if (tags) {\n secondaryFields.push({\n id: 'tags',\n name: tags.label,\n value: (\n <Flex container={{ gap: 1, wrap: 'wrap' }}>\n {tags.dismissable\n ? tags.items.map(tag => (\n <Selectable id={tag} key={tag} readOnly onRemove={tags.onRemove}>\n {tag}\n </Selectable>\n ))\n : tags.items.map(tag => <Tag>{tag}</Tag>)}\n </Flex>\n )\n });\n }\n\n if (attachments.length > 0) {\n secondaryFields.push({\n id: 'attachments',\n name: '',\n value: (\n <Flex container={{ gap: 1, wrap: 'wrap' }}>\n {attachments.map(attachmentProps => (\n <FileDisplay {...attachmentProps} key={attachmentProps.value} />\n ))}\n </Flex>\n )\n });\n }\n\n if (suggestions.length > 0) {\n secondaryFields.push({\n id: 'suggested_replies',\n name: '',\n value: (\n <Flex container={{ gap: 1, wrap: 'wrap' }}>\n {suggestions\n .slice(0, OVERFLOW_EMAIL_SUGGESTION_COUNT)\n .map(({ id: suggestionId, title }) => (\n <Button\n variant='secondary'\n key={suggestionId}\n onClick={() => {\n onSuggestionClick?.(id, suggestionId);\n }}\n >\n {title}\n </Button>\n ))}\n {suggestions.length > OVERFLOW_EMAIL_SUGGESTION_COUNT && (\n <MenuButton\n text='Other responses'\n key='other_responses'\n variant='secondary'\n menu={{\n items: suggestions\n .slice(OVERFLOW_EMAIL_SUGGESTION_COUNT)\n .map(({ id: suggestionId, title }) => {\n return {\n primary: title,\n id: suggestionId,\n onClick: () => {\n onSuggestionClick?.(id, suggestionId);\n }\n };\n })\n }}\n />\n )}\n </Flex>\n )\n });\n }\n\n let renderedBody = body;\n // Apply entity highlighting only on string body\n if (typeof body === 'string') {\n const entityConfigs = entityHighlightMapping.map(entity => {\n const regExp = RegExp(entity.entityValue.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n\n return {\n type: 'entity',\n regexPattern: regExp,\n component: () => <EmailEntity entity={entity} />\n };\n });\n\n renderedBody = (\n <RichTextViewer content={body} type='html' interactionRenderers={entityConfigs} />\n );\n }\n\n return (\n <Flex\n as={StyledEmail}\n container={{\n direction: 'column',\n gap: 1\n }}\n ref={ref}\n {...restProps}\n >\n <SummaryItem\n as={StyledEmailHeader}\n visual={<Avatar {...from.avatarProps} name={from.fullName} />}\n ref={headerRef}\n primary={\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <EmailDisplay\n value={from.emailAddress}\n displayText={from.fullName}\n variant='text'\n as={StyledFromEmailDisplay}\n />\n {sentiment && <Sentiment {...sentiment} labelHidden />}\n </Flex>\n }\n secondary={\n <Flex\n container={{\n gap: 0,\n alignItems: 'start',\n direction: 'column'\n }}\n >\n <Flex\n container={{\n gap: 0,\n alignItems: 'start'\n }}\n >\n <Text variant='secondary'>\n {t('to')}:{' '}\n {renderEmailUserList({\n emailUsers: to.slice(0, OVERFLOW_TO_EMAIL_COUNT),\n showShortName: true\n })}{' '}\n {to.length > OVERFLOW_TO_EMAIL_COUNT\n ? `; +${to.length - OVERFLOW_TO_EMAIL_COUNT} ${t('more')}, `\n : ''}\n </Text>\n {isSmallOrAbove && timeStamp && (\n <Flex\n container={{\n gap: 0,\n alignItems: 'center'\n }}\n >\n <StyledSecondarySeparator />\n <Text variant='secondary'>{timeStamp}</Text>\n </Flex>\n )}\n <Button\n icon\n variant='simple'\n as={StyledEmailMoreInfoButton}\n ref={setEmailMoreInfoBtnRef}\n onClick={() => {\n setShowEmailMoreInfo(true);\n }}\n aria-label={t('show_more')}\n title={t('show_more')}\n >\n <Icon name='arrow-micro-down' />\n </Button>\n <Popover\n as={StyledEmailMoreInfoPopover}\n show={showEmailMoreInfo}\n ref={setEmailMoreInfoPopover}\n target={emailMoreInfoBtnRef}\n placement='bottom'\n >\n <CardContent>\n <StyledEmailPrimaryFieldValueList fields={emailMoreInfoFields} />\n </CardContent>\n </Popover>\n </Flex>\n {!isSmallOrAbove && timeStamp && <Text variant='secondary'>{timeStamp}</Text>}\n </Flex>\n }\n actions={\n <Flex\n container={{\n gap: 1\n }}\n >\n {actions}\n </Flex>\n }\n />\n <Flex\n container={{\n direction: 'column',\n gap: 1,\n pad: 2\n }}\n >\n <StyledEmailPrimaryFieldValueList fields={primaryFields} />\n <StyledEmailBody>{renderedBody}</StyledEmailBody>\n </Flex>\n <Flex\n container={{\n direction: 'column',\n gap: 1,\n pad: 2\n }}\n >\n <StyledEmailSecondaryFieldValueList fields={secondaryFields} />\n <div>\n <Button\n variant='simple'\n onClick={() => {\n onReply?.(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='reply' />\n <span>{t('reply')}</span>\n </Flex>\n </Button>\n {onReplyAll && (\n <Button\n variant='simple'\n onClick={() => {\n onReplyAll(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='reply-all' />\n <span>{t('reply_all')}</span>\n </Flex>\n </Button>\n )}\n {onForward && (\n <Button\n variant='simple'\n onClick={() => {\n onForward(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='forward' />\n <span>{t('forward')}</span>\n </Flex>\n </Button>\n )}\n </div>\n </Flex>\n </Flex>\n );\n }\n);\n\nexport default Email;\n"]}
|
|
1
|
+
{"version":3,"file":"Email.js","sourceRoot":"","sources":["../../../src/components/Email/Email.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, FunctionComponent, PropsWithoutRef, useRef, useState } from 'react';\n\nimport {\n ForwardProps,\n Text,\n SummaryItem,\n Avatar,\n Flex,\n EmailDisplay,\n Button,\n Icon,\n FieldValueListProps,\n Sentiment,\n useOuterEvent,\n Popover,\n useElement,\n CardContent,\n useI18n,\n FileDisplay,\n useBreakpoint,\n DateTimeDisplay,\n useConfiguration,\n MetaList,\n MetaListProps\n} from '@pega/cosmos-react-core';\nimport { RichTextViewer } from '@pega/cosmos-react-rte';\n\nimport EmailEntity from './EmailEntity';\nimport { EmailUser, EmailProps } from './Email.types';\nimport {\n StyledEmail,\n StyledEmailDisplay,\n StyledEmailHeader,\n StyledFromEmailDisplay,\n StyledEmailMoreInfoButton,\n StyledEmailMoreInfoPopover,\n StyledEmailPrimaryFieldValueList,\n StyledEmailBody,\n StyledEmailSecondaryFieldValueList,\n StyledSuggestedRepliesButton,\n StyledSuggestedRepliesMenuButton\n} from './Email.styles';\n\nconst EmailDisplayList = ({\n emailUsers,\n showEmailAddress,\n showShortName\n}: {\n emailUsers: EmailUser[];\n showEmailAddress?: boolean;\n showShortName?: boolean;\n}) => {\n return (\n <>\n {emailUsers.map(({ emailAddress, fullName, shortName }, i) => (\n <Fragment key={emailAddress}>\n {i === 0 ? '' : '; '}\n <EmailDisplay\n value={emailAddress}\n displayText={`${showShortName ? shortName : fullName}${\n showEmailAddress ? ` <${emailAddress}>` : ''\n }`}\n variant='text'\n as={StyledEmailDisplay}\n />\n </Fragment>\n ))}\n </>\n );\n};\n\nconst OVERFLOW_TO_EMAIL_COUNT = 2;\nconst OVERFLOW_EMAIL_SUGGESTION_COUNT = 2;\n\nconst Email: FunctionComponent<EmailProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<EmailProps>, ref: EmailProps['ref']) => {\n const {\n id,\n from,\n to = [],\n cc = [],\n bcc = [],\n actions = [],\n timeStamp,\n sentiment,\n subject,\n body,\n attachments = [],\n suggestions = [],\n entityHighlightMapping = [],\n onReply,\n onForward,\n onReplyAll,\n onSuggestionClick,\n ...restProps\n } = props;\n const t = useI18n();\n\n const [emailMoreInfoBtnRef, setEmailMoreInfoBtnRef] = useElement<HTMLButtonElement>(null);\n const [showEmailMoreInfo, setShowEmailMoreInfo] = useState(false);\n const [emailMoreInfoPopover, setEmailMoreInfoPopover] = useElement<HTMLDivElement>(null);\n const emailMoreInfoFields: FieldValueListProps['fields'] = [];\n\n const headerRef = useRef<HTMLDivElement>(null);\n const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: headerRef });\n const { locale } = useConfiguration();\n\n if (from) {\n emailMoreInfoFields.push({\n id: 'from',\n name: t('from'),\n value: from.emailAddress\n });\n }\n\n if (to.length > 0) {\n emailMoreInfoFields.push({\n id: 'to',\n name: t('to'),\n value: <EmailDisplayList emailUsers={to} showEmailAddress />\n });\n }\n\n if (cc.length > 0) {\n emailMoreInfoFields.push({\n id: 'cc',\n name: 'CC',\n value: <EmailDisplayList emailUsers={cc} showEmailAddress />\n });\n }\n\n if (bcc.length > 0) {\n emailMoreInfoFields.push({\n id: 'BCC',\n name: 'BCC',\n value: <EmailDisplayList emailUsers={bcc} showEmailAddress />\n });\n }\n\n if (timeStamp) {\n emailMoreInfoFields.push({\n id: 'date',\n name: t('date'),\n value: (\n <Text>\n {`${new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(\n new Date(timeStamp)\n )}, `}\n <DateTimeDisplay variant='datetime' format='short' value={timeStamp} />\n </Text>\n )\n });\n }\n\n useOuterEvent('mousedown', [emailMoreInfoPopover], () => {\n setShowEmailMoreInfo(false);\n });\n\n const secondaryFields: FieldValueListProps['fields'] = [];\n\n if (attachments.length > 0) {\n secondaryFields.push({\n id: 'attachments',\n name: '',\n value: (\n <Flex container={{ gap: 1, wrap: 'wrap' }}>\n {attachments.map(attachmentProps => (\n <FileDisplay {...attachmentProps} key={attachmentProps.value} />\n ))}\n </Flex>\n )\n });\n }\n\n if (suggestions.length > 0) {\n secondaryFields.push({\n id: 'suggested_replies',\n name: '',\n value: (\n <Flex container={{ wrap: 'wrap' }}>\n {suggestions\n .slice(0, OVERFLOW_EMAIL_SUGGESTION_COUNT)\n .map(({ id: suggestionId, title }) => (\n <StyledSuggestedRepliesButton\n variant='secondary'\n key={suggestionId}\n onClick={() => {\n onSuggestionClick?.(id, suggestionId);\n }}\n >\n {title}\n </StyledSuggestedRepliesButton>\n ))}\n {suggestions.length > OVERFLOW_EMAIL_SUGGESTION_COUNT && (\n <StyledSuggestedRepliesMenuButton\n text='Other responses'\n key='other_responses'\n variant='secondary'\n menu={{\n items: suggestions\n .slice(OVERFLOW_EMAIL_SUGGESTION_COUNT)\n .map(({ id: suggestionId, title }) => {\n return {\n primary: title,\n id: suggestionId,\n onClick: () => {\n onSuggestionClick?.(id, suggestionId);\n }\n };\n })\n }}\n />\n )}\n </Flex>\n )\n });\n }\n\n let renderedBody = body;\n // Apply entity highlighting only on string body\n if (typeof body === 'string') {\n const entityConfigs = entityHighlightMapping.map(entity => {\n const regExp = RegExp(entity.value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n\n return {\n type: 'entity',\n regexPattern: regExp,\n component: () => <EmailEntity entity={entity} />\n };\n });\n\n renderedBody = (\n <RichTextViewer content={body} type='html' interactionRenderers={entityConfigs} />\n );\n }\n\n const emailMetaListItems: MetaListProps['items'] = [\n <Text variant='secondary'>\n {`${t('to')}: `}\n <EmailDisplayList emailUsers={to.slice(0, OVERFLOW_TO_EMAIL_COUNT)} showShortName />\n {to.length > OVERFLOW_TO_EMAIL_COUNT &&\n `; +${t('more_count', [to.length - OVERFLOW_TO_EMAIL_COUNT])}`}\n </Text>,\n <Text variant='secondary'>\n {`${new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(new Date(timeStamp))}, `}\n <DateTimeDisplay variant='datetime' format='short' value={timeStamp} />\n </Text>\n ];\n\n return (\n <Flex\n as={StyledEmail}\n container={{\n direction: 'column',\n gap: 1\n }}\n ref={ref}\n {...restProps}\n >\n <SummaryItem\n as={StyledEmailHeader}\n visual={<Avatar {...from.avatarProps} name={from.fullName} />}\n ref={headerRef}\n primary={\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <StyledFromEmailDisplay\n value={from.emailAddress}\n displayText={from.fullName}\n variant='text'\n />\n {sentiment && <Sentiment {...sentiment} labelHidden />}\n </Flex>\n }\n secondary={\n <Flex\n container={{\n gap: 0,\n alignItems: 'start',\n direction: 'column'\n }}\n >\n <Flex\n container={{\n gap: 0,\n alignItems: 'start'\n }}\n >\n <MetaList items={isSmallOrAbove ? emailMetaListItems : [emailMetaListItems[0]]} />\n\n <Button\n icon\n variant='simple'\n as={StyledEmailMoreInfoButton}\n ref={setEmailMoreInfoBtnRef}\n onClick={() => {\n setShowEmailMoreInfo(true);\n }}\n label={t('show_more')}\n >\n <Icon name='arrow-micro-down' />\n </Button>\n <Popover\n as={StyledEmailMoreInfoPopover}\n show={showEmailMoreInfo}\n ref={setEmailMoreInfoPopover}\n target={emailMoreInfoBtnRef}\n placement='bottom'\n >\n <CardContent>\n <StyledEmailPrimaryFieldValueList fields={emailMoreInfoFields} />\n </CardContent>\n </Popover>\n </Flex>\n {!isSmallOrAbove && timeStamp && emailMetaListItems[1]}\n </Flex>\n }\n actions={\n <Flex\n container={{\n gap: 1\n }}\n >\n {actions}\n </Flex>\n }\n />\n <Flex\n container={{\n direction: 'column',\n gap: 2,\n pad: [0, 2]\n }}\n >\n {subject && (\n <Text variant='primary'>\n {t('subject')}: {subject}\n </Text>\n )}\n <StyledEmailBody>{renderedBody}</StyledEmailBody>\n </Flex>\n <Flex\n container={{\n direction: 'column',\n gap: 1,\n pad: [0, 2]\n }}\n >\n <StyledEmailSecondaryFieldValueList fields={secondaryFields} />\n <div>\n <Button\n variant='simple'\n onClick={() => {\n onReply?.(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='reply' />\n <span>{t('reply')}</span>\n </Flex>\n </Button>\n {onReplyAll && (\n <Button\n variant='simple'\n onClick={() => {\n onReplyAll(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='reply-all' />\n <span>{t('reply_all')}</span>\n </Flex>\n </Button>\n )}\n {onForward && (\n <Button\n variant='simple'\n onClick={() => {\n onForward(id);\n }}\n >\n <Flex\n container={{\n gap: 1,\n alignItems: 'center'\n }}\n >\n <Icon name='forward' />\n <span>{t('forward')}</span>\n </Flex>\n </Button>\n )}\n </div>\n </Flex>\n </Flex>\n );\n }\n);\n\nexport default Email;\n"]}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
import { EmailEntityProps } from './Email.types';
|
|
1
2
|
export declare const StyledEmailMoreInfoButton: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
|
|
2
3
|
export declare const StyledEmailHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
4
|
+
export declare const StyledSuggestedRepliesButton: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").ButtonProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
5
|
+
export declare const StyledSuggestedRepliesMenuButton: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").ForwardProps & import("@pega/cosmos-react-core").MenuButtonProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
3
6
|
export declare const StyledEmailBody: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
4
|
-
export declare const StyledFromEmailDisplay: import("styled-components").StyledComponent<"
|
|
7
|
+
export declare const StyledFromEmailDisplay: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").EmailDisplayProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
5
8
|
export declare const StyledEmailDisplay: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
|
|
6
9
|
export declare const StyledEmailPrimaryFieldValueList: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").FieldValueListProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
7
10
|
export declare const StyledEmailSecondaryFieldValueList: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").FieldValueListProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
8
11
|
export declare const StyledEmailMoreInfoPopover: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
9
12
|
export declare const StyledSecondarySeparator: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
10
|
-
export declare const
|
|
13
|
+
export declare const emailEntityBackgroundColors: string[];
|
|
11
14
|
export declare const StyledEmail: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
15
|
+
export declare const StyledEmailEntity: import("styled-components").StyledComponent<"mark", import("styled-components").DefaultTheme, EmailEntityProps, never>;
|
|
16
|
+
export declare const StyledViewAnalysisFieldValueList: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").FieldValueListProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
12
17
|
//# sourceMappingURL=Email.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Email/Email.styles.
|
|
1
|
+
{"version":3,"file":"Email.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Email/Email.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,yBAAyB,4GAIrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,yGAY5B,CAAC;AAIH,eAAO,MAAM,4BAA4B,qOAUvC,CAAC;AAIH,eAAO,MAAM,gCAAgC,yOAU3C,CAAC;AAIH,eAAO,MAAM,eAAe,yGAAe,CAAC;AAE5C,eAAO,MAAM,sBAAsB,2OAMjC,CAAC;AAIH,eAAO,MAAM,kBAAkB,0GAE9B,CAAC;AAEF,eAAO,MAAM,gCAAgC,6OAE5C,CAAC;AAEF,eAAO,MAAM,kCAAkC,6OAY7C,CAAC;AAIH,eAAO,MAAM,0BAA0B,yGAEtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,yGAInC,CAAC;AACH,eAAO,MAAM,2BAA2B,UAqBvC,CAAC;AAEF,eAAO,MAAM,WAAW,yGAAe,CAAC;AAExC,eAAO,MAAM,iBAAiB,wHAe5B,CAAC;AAIH,eAAO,MAAM,gCAAgC,6OAU3C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
|
-
import {
|
|
2
|
+
import { readableColor } from 'polished';
|
|
3
|
+
import { Button, calculateFontSize, defaultThemeProp, EmailDisplay, FieldValueList, MenuButton, StyledFieldName, StyledFieldValue, StyledSecondary, StyledSummaryItemActions, StyledVisual, tryCatch, readableHue } from '@pega/cosmos-react-core';
|
|
3
4
|
export const StyledEmailMoreInfoButton = styled.button `
|
|
4
5
|
min-height: 0.5rem;
|
|
5
6
|
min-width: 0.5rem;
|
|
@@ -9,7 +10,7 @@ export const StyledEmailHeader = styled.div(({ theme }) => {
|
|
|
9
10
|
return css `
|
|
10
11
|
grid-column-gap: ${theme.base.spacing};
|
|
11
12
|
border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};
|
|
12
|
-
padding: 0 calc(2 * ${theme.base.spacing}) calc(2 * ${theme.base.spacing});
|
|
13
|
+
padding: 0 0 calc(2 * ${theme.base.spacing}) calc(2 * ${theme.base.spacing});
|
|
13
14
|
${StyledVisual},${StyledSummaryItemActions} {
|
|
14
15
|
align-self: flex-start;
|
|
15
16
|
}
|
|
@@ -19,10 +20,36 @@ export const StyledEmailHeader = styled.div(({ theme }) => {
|
|
|
19
20
|
`;
|
|
20
21
|
});
|
|
21
22
|
StyledEmailHeader.defaultProps = defaultThemeProp;
|
|
23
|
+
export const StyledSuggestedRepliesButton = styled(Button)(({ theme }) => {
|
|
24
|
+
return css `
|
|
25
|
+
& + & {
|
|
26
|
+
margin-inline-start: 0;
|
|
27
|
+
}
|
|
28
|
+
margin-block-start: ${theme.base.spacing};
|
|
29
|
+
:not(:last-child) {
|
|
30
|
+
margin-inline-end: ${theme.base.spacing};
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
});
|
|
34
|
+
StyledSuggestedRepliesButton.defaultProps = defaultThemeProp;
|
|
35
|
+
export const StyledSuggestedRepliesMenuButton = styled(MenuButton)(({ theme }) => {
|
|
36
|
+
return css `
|
|
37
|
+
&&& {
|
|
38
|
+
margin-inline-start: 0;
|
|
39
|
+
}
|
|
40
|
+
margin-block-start: ${theme.base.spacing};
|
|
41
|
+
:not(:last-child) {
|
|
42
|
+
margin-inline-end: ${theme.base.spacing};
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
});
|
|
46
|
+
StyledSuggestedRepliesMenuButton.defaultProps = defaultThemeProp;
|
|
22
47
|
export const StyledEmailBody = styled.div ``;
|
|
23
|
-
export const StyledFromEmailDisplay = styled
|
|
48
|
+
export const StyledFromEmailDisplay = styled(EmailDisplay)(({ theme }) => {
|
|
49
|
+
const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);
|
|
24
50
|
return css `
|
|
25
51
|
font-weight: ${theme.base['font-weight']['semi-bold']};
|
|
52
|
+
font-size: ${fontSize.m};
|
|
26
53
|
`;
|
|
27
54
|
});
|
|
28
55
|
StyledFromEmailDisplay.defaultProps = defaultThemeProp;
|
|
@@ -50,33 +77,55 @@ export const StyledEmailMoreInfoPopover = styled.div `
|
|
|
50
77
|
max-width: 30rem;
|
|
51
78
|
`;
|
|
52
79
|
export const StyledSecondarySeparator = styled.div(({ theme }) => {
|
|
53
|
-
const readableBackground = readableHue(theme.base.palette['border-line'], theme.base.palette['primary-background'], { level: 'AANonText' });
|
|
54
80
|
return css `
|
|
55
|
-
width: 0.3em;
|
|
56
|
-
height: 0.3em;
|
|
57
|
-
border-radius: 50%;
|
|
58
|
-
background: ${readableBackground};
|
|
59
81
|
margin: 0 calc(${theme.base.spacing} / 2);
|
|
60
|
-
flex: 0 0 auto;
|
|
61
82
|
`;
|
|
62
83
|
});
|
|
63
|
-
export const
|
|
64
|
-
'#
|
|
65
|
-
'#
|
|
66
|
-
'#
|
|
67
|
-
'#
|
|
68
|
-
'#
|
|
69
|
-
'#
|
|
70
|
-
'#
|
|
71
|
-
'#
|
|
72
|
-
'#
|
|
73
|
-
'#
|
|
74
|
-
'#
|
|
75
|
-
'#
|
|
76
|
-
'#
|
|
77
|
-
'#
|
|
78
|
-
'#
|
|
79
|
-
'#
|
|
84
|
+
export const emailEntityBackgroundColors = [
|
|
85
|
+
'#00428B',
|
|
86
|
+
'#008C80',
|
|
87
|
+
'#53336F',
|
|
88
|
+
'#005FA7',
|
|
89
|
+
'#7C421B',
|
|
90
|
+
'#BC1513',
|
|
91
|
+
'#DE4342',
|
|
92
|
+
'#661D34',
|
|
93
|
+
'#8B479E',
|
|
94
|
+
'#4B3380',
|
|
95
|
+
'#10A5AC',
|
|
96
|
+
'#5F67B9',
|
|
97
|
+
'#1D447A',
|
|
98
|
+
'#988CC4',
|
|
99
|
+
'#AC1361',
|
|
100
|
+
'#1B6B2E',
|
|
101
|
+
'#4064B3',
|
|
102
|
+
'#4D4D4D',
|
|
103
|
+
'#0F5F5D',
|
|
104
|
+
'#7F375B'
|
|
80
105
|
];
|
|
81
106
|
export const StyledEmail = styled.div ``;
|
|
107
|
+
export const StyledEmailEntity = styled.mark(({ entity, theme }) => {
|
|
108
|
+
const variant = entity.variant;
|
|
109
|
+
const backgroundColor = readableHue(emailEntityBackgroundColors[(Number.isFinite(variant) && variant > 0 ? variant : 0) % emailEntityBackgroundColors.length], theme.base.palette['primary-background']);
|
|
110
|
+
const textColor = tryCatch(() => readableColor(backgroundColor));
|
|
111
|
+
return css `
|
|
112
|
+
border-radius: calc(${theme.base['border-radius']} / 3);
|
|
113
|
+
padding: 0 calc(0.5 * ${theme.base.spacing});
|
|
114
|
+
background-color: ${backgroundColor};
|
|
115
|
+
color: ${textColor};
|
|
116
|
+
`;
|
|
117
|
+
});
|
|
118
|
+
StyledEmailEntity.defaultProps = defaultThemeProp;
|
|
119
|
+
export const StyledViewAnalysisFieldValueList = styled(FieldValueList)(({ theme }) => {
|
|
120
|
+
const textColor = tryCatch(() => readableColor(theme.base.palette['primary-background']));
|
|
121
|
+
return css `
|
|
122
|
+
${StyledFieldName} {
|
|
123
|
+
color: ${textColor};
|
|
124
|
+
}
|
|
125
|
+
${StyledEmailEntity} {
|
|
126
|
+
padding: calc(0.5 * ${theme.base.spacing});
|
|
127
|
+
}
|
|
128
|
+
`;
|
|
129
|
+
});
|
|
130
|
+
StyledViewAnalysisFieldValueList.defaultProps = defaultThemeProp;
|
|
82
131
|
//# sourceMappingURL=Email.styles.js.map
|