@zohoim/chat-components 0.0.6 → 0.0.7
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/es/ActionIcon/ActionIcon.js +13 -11
- package/es/ArticleBubble/ArticleBubble.js +60 -0
- package/es/ArticleBubble/css/ArticleBubble.module.css +1 -0
- package/es/ArticleBubble/css/cssJSLogic.js +34 -0
- package/es/ArticleBubble/index.js +1 -0
- package/es/ArticleBubble/props/defaultProps.js +6 -0
- package/es/ArticleBubble/props/propTypes.js +10 -0
- package/es/AttachmentBubble/AttachmentBubble.js +55 -0
- package/es/AttachmentBubble/css/AttachmentBubble.module.css +17 -0
- package/es/AttachmentBubble/css/cssJSLogic.js +18 -0
- package/es/AttachmentBubble/index.js +1 -0
- package/es/AttachmentBubble/props/defaultProps.js +7 -0
- package/es/AttachmentBubble/props/propTypes.js +10 -0
- package/es/AttachmentBubbleInfo/AttachmentBubbleInfo.js +45 -0
- package/es/AttachmentBubbleInfo/css/AttachmentBubbleInfo.module.css +18 -0
- package/es/AttachmentBubbleInfo/css/cssJSLogic.js +18 -0
- package/es/AttachmentBubbleInfo/index.js +1 -0
- package/es/AttachmentBubbleInfo/props/defaultProps.js +6 -0
- package/es/AttachmentBubbleInfo/props/propTypes.js +8 -0
- package/es/Audio/Audio.js +60 -0
- package/es/Audio/css/Audio.module.css +3 -0
- package/es/Audio/css/cssJSLogic.js +14 -0
- package/es/Audio/index.js +1 -0
- package/es/Audio/props/defaultProps.js +7 -0
- package/es/Audio/props/propTypes.js +9 -0
- package/es/AudioBubble/AudioBubble.js +58 -0
- package/es/AudioBubble/css/AudioBubble.module.css +3 -0
- package/es/AudioBubble/css/cssJSLogic.js +20 -0
- package/es/AudioBubble/index.js +1 -0
- package/es/AudioBubble/props/defaultProps.js +8 -0
- package/es/AudioBubble/props/propTypes.js +12 -0
- package/es/IMArticleBubble/IMArticleBubble.js +55 -0
- package/es/IMArticleBubble/css/IMArticleBubble.module.css +0 -0
- package/es/IMArticleBubble/css/cssJSLogic.js +10 -0
- package/es/IMArticleBubble/index.js +1 -0
- package/es/IMArticleBubble/props/defaultProps.js +8 -0
- package/es/IMArticleBubble/props/propTypes.js +14 -0
- package/es/IMAttachmentBubble/IMAttachmentBubble.js +63 -0
- package/es/IMAttachmentBubble/css/IMAttachmentBubble.module.css +1 -0
- package/es/IMAttachmentBubble/css/cssJSLogic.js +10 -0
- package/es/IMAttachmentBubble/index.js +1 -0
- package/es/IMAttachmentBubble/props/defaultProps.js +10 -0
- package/es/IMAttachmentBubble/props/propTypes.js +16 -0
- package/es/IMAttachmentIcon/IMAttachmentIcon.js +86 -0
- package/es/IMAttachmentIcon/css/IMAttachmentIcon.module.css +4 -0
- package/es/IMAttachmentIcon/css/cssJSLogic.js +16 -0
- package/es/IMAttachmentIcon/index.js +1 -0
- package/es/IMAttachmentIcon/props/defaultProps.js +6 -0
- package/es/IMAttachmentIcon/props/propTypes.js +26 -0
- package/es/IMAudioBubble/IMAudioBubble.js +63 -0
- package/es/IMAudioBubble/css/IMAudioBubble.module.css +8 -0
- package/es/IMAudioBubble/css/cssJSLogic.js +20 -0
- package/es/IMAudioBubble/index.js +1 -0
- package/es/IMAudioBubble/props/defaultProps.js +11 -0
- package/es/IMAudioBubble/props/propTypes.js +17 -0
- package/es/IMAutoMessageInfo/IMAutoMessageInfo.js +43 -0
- package/es/IMAutoMessageInfo/css/IMAutoMessageInfo.module.css +13 -0
- package/es/IMAutoMessageInfo/css/cssJSLogic.js +10 -0
- package/es/IMAutoMessageInfo/index.js +1 -0
- package/es/IMAutoMessageInfo/props/defaultProps.js +6 -0
- package/es/IMAutoMessageInfo/props/propTypes.js +26 -0
- package/es/IMDateTime/IMDateTime.js +41 -0
- package/es/IMDateTime/css/IMDateTime.module.css +5 -0
- package/es/IMDateTime/css/cssJSLogic.js +10 -0
- package/es/IMDateTime/index.js +1 -0
- package/es/IMDateTime/props/defaultProps.js +6 -0
- package/es/IMDateTime/props/propTypes.js +6 -0
- package/es/IMImageBubble/IMImageBubble.js +49 -0
- package/es/IMImageBubble/css/IMImageBubble.module.css +0 -0
- package/es/IMImageBubble/css/cssJSLogic.js +10 -0
- package/es/IMImageBubble/index.js +1 -0
- package/es/IMImageBubble/props/defaultProps.js +7 -0
- package/es/IMImageBubble/props/propTypes.js +13 -0
- package/es/IMInfoBubble/IMInfoBubble.js +37 -0
- package/es/IMInfoBubble/css/IMInfoBubble.module.css +0 -0
- package/es/IMInfoBubble/css/cssJSLogic.js +10 -0
- package/es/IMInfoBubble/index.js +1 -0
- package/es/IMInfoBubble/props/defaultProps.js +6 -0
- package/es/IMInfoBubble/props/propTypes.js +6 -0
- package/es/IMLocationBubble/IMLocationBubble.js +49 -0
- package/es/IMLocationBubble/css/IMLocationBubble.module.css +0 -0
- package/es/IMLocationBubble/css/cssJSLogic.js +10 -0
- package/es/IMLocationBubble/index.js +1 -0
- package/es/IMLocationBubble/props/defaultProps.js +8 -0
- package/es/IMLocationBubble/props/propTypes.js +11 -0
- package/es/IMMessage/IMMessage.js +156 -109
- package/es/IMMessage/props/defaultProps.js +22 -35
- package/es/IMMessage/props/propTypes.js +95 -48
- package/es/IMMessageActions/IMMessageActions.js +9 -5
- package/es/IMMessageActions/css/IMMessageActions.module.css +2 -2
- package/es/IMMessageAvatar/props/defaultProps.js +4 -2
- package/es/IMMessageContent/IMMessageContent.js +84 -0
- package/es/IMMessageContent/css/IMMessageContent.module.css +0 -0
- package/es/IMMessageContent/css/cssJSLogic.js +10 -0
- package/es/IMMessageContent/index.js +1 -0
- package/es/IMMessageContent/props/defaultProps.js +8 -0
- package/es/IMMessageContent/props/propTypes.js +35 -0
- package/es/IMMessageMeta/IMMessageMeta.js +60 -0
- package/es/IMMessageMeta/css/IMMessageMeta.module.css +32 -0
- package/es/IMMessageMeta/css/cssJSLogic.js +20 -0
- package/es/IMMessageMeta/index.js +1 -0
- package/es/IMMessageMeta/props/defaultProps.js +10 -0
- package/es/IMMessageMeta/props/propTypes.js +30 -0
- package/es/IMMessageStatus/css/IMMessageStatus.module.css +6 -3
- package/es/IMReplyBubble/IMReplyBubble.js +37 -0
- package/es/IMReplyBubble/css/IMReplyBubble.module.css +0 -0
- package/es/IMReplyBubble/css/cssJSLogic.js +10 -0
- package/es/IMReplyBubble/index.js +1 -0
- package/es/IMReplyBubble/props/defaultProps.js +6 -0
- package/es/IMReplyBubble/props/propTypes.js +6 -0
- package/es/IMTextBubble/IMTextBubble.js +53 -0
- package/es/IMTextBubble/css/IMTextBubble.module.css +1 -0
- package/es/IMTextBubble/css/cssJSLogic.js +10 -0
- package/es/IMTextBubble/index.js +1 -0
- package/es/IMTextBubble/props/defaultProps.js +14 -0
- package/es/IMTextBubble/props/propTypes.js +15 -0
- package/es/IMTicketLink/IMTicketLink.js +48 -0
- package/es/IMTicketLink/css/IMTicketLink.module.css +24 -0
- package/es/IMTicketLink/css/cssJSLogic.js +14 -0
- package/es/IMTicketLink/index.js +1 -0
- package/es/IMTicketLink/props/defaultProps.js +6 -0
- package/es/IMTicketLink/props/propTypes.js +10 -0
- package/es/IMVideoBubble/IMVideoBubble.js +62 -0
- package/es/IMVideoBubble/css/IMVideoBubble.module.css +1 -0
- package/es/IMVideoBubble/css/cssJSLogic.js +10 -0
- package/es/IMVideoBubble/index.js +1 -0
- package/es/IMVideoBubble/props/defaultProps.js +11 -0
- package/es/IMVideoBubble/props/propTypes.js +17 -0
- package/es/ImageBubble/ImageBubble.js +52 -0
- package/es/ImageBubble/css/ImageBubble.module.css +53 -0
- package/es/ImageBubble/css/cssJSLogic.js +22 -0
- package/es/ImageBubble/index.js +1 -0
- package/es/ImageBubble/props/defaultProps.js +6 -0
- package/es/ImageBubble/props/propTypes.js +8 -0
- package/es/InfoBubble/InfoBubble.js +37 -0
- package/es/InfoBubble/css/InfoBubble.module.css +0 -0
- package/es/InfoBubble/css/cssJSLogic.js +10 -0
- package/es/InfoBubble/index.js +1 -0
- package/es/InfoBubble/props/defaultProps.js +6 -0
- package/es/InfoBubble/props/propTypes.js +6 -0
- package/es/LazyLoadImage/LazyLoadImage.js +48 -0
- package/es/LazyLoadImage/css/LazyLoadImage.module.css +4 -0
- package/es/LazyLoadImage/css/cssJSLogic.js +10 -0
- package/es/LazyLoadImage/index.js +1 -0
- package/es/LazyLoadImage/props/defaultProps.js +6 -0
- package/es/LazyLoadImage/props/propTypes.js +8 -0
- package/es/LocationBubble/LocationBubble.js +63 -0
- package/es/LocationBubble/css/LocationBubble.module.css +3 -0
- package/es/LocationBubble/css/cssJSLogic.js +30 -0
- package/es/LocationBubble/images/location.png +0 -0
- package/es/LocationBubble/index.js +1 -0
- package/es/LocationBubble/props/defaultProps.js +6 -0
- package/es/LocationBubble/props/propTypes.js +7 -0
- package/es/MediaControls/MediaControls.js +60 -0
- package/es/MediaControls/css/MediaControls.module.css +1 -0
- package/es/MediaControls/css/cssJSLogic.js +22 -0
- package/es/MediaControls/index.js +1 -0
- package/es/MediaControls/props/defaultProps.js +6 -0
- package/es/MediaControls/props/propTypes.js +11 -0
- package/es/Message/Message.js +136 -0
- package/es/Message/css/Message.module.css +0 -0
- package/es/Message/css/cssJSLogic.js +10 -0
- package/es/Message/index.js +1 -0
- package/es/Message/props/defaultProps.js +43 -0
- package/es/Message/props/propTypes.js +98 -0
- package/es/MessageAction/MessageAction.js +4 -2
- package/es/MessageActions/MessageActions.js +1 -1
- package/es/MessageActionsMore/MessageActionsMore.js +5 -3
- package/es/MessageAvatar/MessageAvatar.js +9 -9
- package/es/MessageAvatar/props/defaultProps.js +4 -2
- package/es/MessageBox/MessageBox.js +5 -2
- package/es/MessageBox/css/MessageBox.module.css +14 -0
- package/es/MessageBox/css/cssJSLogic.js +12 -1
- package/es/MessageBox/props/defaultProps.js +3 -1
- package/es/MessageBox/props/propTypes.js +3 -1
- package/es/MessageBoxFooter/MessageBoxFooter.js +1 -1
- package/es/MessageBubble/MessageBubble.js +10 -10
- package/es/MessageWrapper/MessageWrapper.js +37 -0
- package/es/MessageWrapper/css/MessageWrapper.module.css +0 -0
- package/es/MessageWrapper/css/cssJSLogic.js +10 -0
- package/es/MessageWrapper/index.js +1 -0
- package/es/MessageWrapper/props/defaultProps.js +6 -0
- package/es/MessageWrapper/props/propTypes.js +6 -0
- package/es/MoreActionItem/MoreActionItem.js +9 -9
- package/es/MoreActionItem/props/defaultProps.js +1 -1
- package/es/MoreActionItem/props/propTypes.js +1 -1
- package/es/ReplyBubble/ReplyBubble.js +41 -0
- package/es/ReplyBubble/css/ReplyBubble.module.css +0 -0
- package/es/ReplyBubble/css/cssJSLogic.js +10 -0
- package/es/ReplyBubble/index.js +1 -0
- package/es/ReplyBubble/props/defaultProps.js +6 -0
- package/es/ReplyBubble/props/propTypes.js +6 -0
- package/es/ReplyBubbleHeader/ReplyBubbleHeader.js +53 -0
- package/es/ReplyBubbleHeader/css/ReplyBubbleHeader.module.css +0 -0
- package/es/ReplyBubbleHeader/css/cssJSLogic.js +10 -0
- package/es/ReplyBubbleHeader/index.js +1 -0
- package/es/ReplyBubbleHeader/props/defaultProps.js +9 -0
- package/es/ReplyBubbleHeader/props/propTypes.js +9 -0
- package/es/TextBubble/TextBubble.js +56 -0
- package/es/TextBubble/css/TextBubble.module.css +1 -0
- package/es/TextBubble/css/cssJSLogic.js +18 -0
- package/es/TextBubble/index.js +1 -0
- package/es/TextBubble/props/defaultProps.js +9 -0
- package/es/TextBubble/props/propTypes.js +10 -0
- package/es/Theme/DeskAssets.js +53 -0
- package/es/Theme/ThemeWrapper.js +82 -0
- package/es/Theme/ToolttipWrapper.js +81 -0
- package/es/Theme/constants/index.js +44 -0
- package/es/Theme/crm/dark/blueFanTheme.js +28 -0
- package/es/Theme/crm/dark/blueTheme.js +28 -0
- package/es/Theme/crm/dark/commonColorVariable.js +11 -0
- package/es/Theme/crm/dark/darkBlueTheme.js +28 -0
- package/es/Theme/crm/dark/darkGreyTheme.js +28 -0
- package/es/Theme/crm/dark/greenTheme.js +28 -0
- package/es/Theme/crm/dark/orangeTheme.js +28 -0
- package/es/Theme/crm/dark/pinkTheme.js +28 -0
- package/es/Theme/crm/dark/tealTheme.js +28 -0
- package/es/Theme/crm/dark/whiteTheme.js +28 -0
- package/es/Theme/crm/light/blueFanTheme.js +28 -0
- package/es/Theme/crm/light/blueTheme.js +31 -0
- package/es/Theme/crm/light/commonColorVariable.js +9 -0
- package/es/Theme/crm/light/darkBlueTheme.js +28 -0
- package/es/Theme/crm/light/darkGreyTheme.js +28 -0
- package/es/Theme/crm/light/greenTheme.js +28 -0
- package/es/Theme/crm/light/orangeTheme.js +28 -0
- package/es/Theme/crm/light/pinkTheme.js +28 -0
- package/es/Theme/crm/light/tealTheme.js +28 -0
- package/es/Theme/crm/light/whiteTheme.js +28 -0
- package/es/Theme/crm/pureDark/blueFanTheme.js +28 -0
- package/es/Theme/crm/pureDark/blueTheme.js +28 -0
- package/es/Theme/crm/pureDark/commonColorVariable.js +9 -0
- package/es/Theme/crm/pureDark/darkBlueTheme.js +28 -0
- package/es/Theme/crm/pureDark/darkGreyTheme.js +28 -0
- package/es/Theme/crm/pureDark/greenTheme.js +28 -0
- package/es/Theme/crm/pureDark/orangeTheme.js +28 -0
- package/es/Theme/crm/pureDark/pinkTheme.js +28 -0
- package/es/Theme/crm/pureDark/tealTheme.js +28 -0
- package/es/Theme/crm/pureDark/whiteTheme.js +28 -0
- package/es/Theme/css/TooltipWrapper.module.css +10 -0
- package/es/Theme/css/cssJSLogic.js +14 -0
- package/es/Theme/desk/commonDeskColorVariable.js +12 -0
- package/es/Theme/desk/dark/blueTheme.js +30 -0
- package/es/Theme/desk/dark/commonColorVariable.js +5 -0
- package/es/Theme/desk/dark/greenTheme.js +30 -0
- package/es/Theme/desk/dark/orangeTheme.js +30 -0
- package/es/Theme/desk/dark/redTheme.js +30 -0
- package/es/Theme/desk/dark/yellowTheme.js +30 -0
- package/es/Theme/desk/light/blueTheme.js +33 -0
- package/es/Theme/desk/light/commonColorVariable.js +5 -0
- package/es/Theme/desk/light/greenTheme.js +30 -0
- package/es/Theme/desk/light/orangeTheme.js +29 -0
- package/es/Theme/desk/light/redTheme.js +29 -0
- package/es/Theme/desk/light/yellowTheme.js +30 -0
- package/es/Theme/desk/pureDark/blueTheme.js +30 -0
- package/es/Theme/desk/pureDark/commonColorVariable.js +6 -0
- package/es/Theme/desk/pureDark/greenTheme.js +30 -0
- package/es/Theme/desk/pureDark/orangeTheme.js +30 -0
- package/es/Theme/desk/pureDark/redTheme.js +30 -0
- package/es/Theme/desk/pureDark/yellowTheme.js +30 -0
- package/es/Theme/index.js +1 -0
- package/es/Theme/props/defaultProps.js +13 -0
- package/es/Theme/props/propTypes.js +15 -0
- package/es/Theme/utils/getThemeConfigurations.js +209 -0
- package/es/Video/Video.js +69 -0
- package/es/Video/css/Video.module.css +9 -0
- package/es/Video/css/cssJSLogic.js +14 -0
- package/es/Video/index.js +1 -0
- package/es/Video/props/defaultProps.js +7 -0
- package/es/Video/props/propTypes.js +9 -0
- package/es/VideoBubble/VideoBubble.js +57 -0
- package/es/VideoBubble/css/VideoBubble.module.css +4 -0
- package/es/VideoBubble/css/cssJSLogic.js +10 -0
- package/es/VideoBubble/index.js +1 -0
- package/es/VideoBubble/props/defaultProps.js +8 -0
- package/es/VideoBubble/props/propTypes.js +12 -0
- package/es/icons/create-icon-components.js +1 -1
- package/es/icons/factory/attachments/audio.svg +19 -0
- package/es/icons/factory/attachments/code.svg +21 -0
- package/es/icons/factory/attachments/image.svg +20 -0
- package/es/icons/factory/attachments/pdf.svg +19 -0
- package/es/icons/factory/attachments/txt.svg +22 -0
- package/es/icons/factory/attachments/unknown.svg +21 -0
- package/es/icons/factory/attachments/video.svg +19 -0
- package/es/icons/factory/attachments/zip.svg +27 -0
- package/es/icons/iconSrc/actions/ConvertTicket.js +1 -1
- package/es/icons/iconSrc/attachments/Audio.js +37 -0
- package/es/icons/iconSrc/attachments/Code.js +43 -0
- package/es/icons/iconSrc/attachments/Image.js +42 -0
- package/es/icons/iconSrc/attachments/Pdf.js +37 -0
- package/es/icons/iconSrc/attachments/Txt.js +46 -0
- package/es/icons/iconSrc/attachments/Unknown.js +41 -0
- package/es/icons/iconSrc/attachments/Video.js +37 -0
- package/es/icons/iconSrc/attachments/Zip.js +85 -0
- package/es/icons/iconSrc/attachments/index.js +8 -0
- package/es/icons/iconSrc/integrations/TtASAP.js +1 -1
- package/es/icons/iconSrc/integrations/TtTelegram.js +1 -1
- package/es/icons/iconSrc/integrations/TtTwillio.js +1 -1
- package/es/icons/iconSrc/integrations/TtTwitter.js +1 -1
- package/es/icons/iconSrc/integrations/TtWechat.js +1 -1
- package/es/index.js +33 -0
- package/package.json +8 -4
- /package/es/MessageActionsMore/css/{cssJsLogic.js → cssJSLogic.js} +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import imTextBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import imTextBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/IMTextBubble.module.css';
|
|
20
|
+
import TextBubble from '../TextBubble/TextBubble';
|
|
21
|
+
import useIMTextBubble from '@zohoim/chat-components-hooks/es/IMTextBubble/useIMTextBubble';
|
|
22
|
+
export default function IMTextBubble(props) {
|
|
23
|
+
const {
|
|
24
|
+
customStyle,
|
|
25
|
+
textBubbleCustomStyle,
|
|
26
|
+
moreText
|
|
27
|
+
} = props;
|
|
28
|
+
const {
|
|
29
|
+
onLoadFullMessage,
|
|
30
|
+
sanitizedDisplayMessage,
|
|
31
|
+
isShowSeeMore,
|
|
32
|
+
isShowQuote
|
|
33
|
+
} = useIMTextBubble(props);
|
|
34
|
+
|
|
35
|
+
/* External customization */
|
|
36
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
37
|
+
/* CSS classnames added based on logic */
|
|
38
|
+
const {
|
|
39
|
+
imTextBubbleWrapperClass
|
|
40
|
+
} = cssJSLogic(props, newStyle);
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: imTextBubbleWrapperClass
|
|
43
|
+
}, isShowQuote ? /*#__PURE__*/React.createElement("span", null, "[QuoteIcon]") : null, /*#__PURE__*/React.createElement(TextBubble, {
|
|
44
|
+
customStyle: textBubbleCustomStyle,
|
|
45
|
+
message: sanitizedDisplayMessage,
|
|
46
|
+
isShowMoreText: isShowSeeMore,
|
|
47
|
+
onClickMore: onLoadFullMessage,
|
|
48
|
+
moreText: moreText
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
IMTextBubble.propTypes = imTextBubblePropTypes;
|
|
52
|
+
IMTextBubble.defaultProps = imTextBubbleDefaultProps;
|
|
53
|
+
IMTextBubble.displayName = 'IMTextBubble';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const imTextBubbleWrapperClass = compileClassNames({
|
|
5
|
+
[style.imTextBubbleWrapper]: true
|
|
6
|
+
});
|
|
7
|
+
return {
|
|
8
|
+
imTextBubbleWrapperClass
|
|
9
|
+
};
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as IMTextBubble } from './IMTextBubble';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
import { TEXT_MESSAGE_MAX_LENGTH } from '@zohoim/chat-components-utils/es/constants/messageConstants';
|
|
4
|
+
const imTextBubbleDefaultProps = {
|
|
5
|
+
customStyle: dummyObject,
|
|
6
|
+
textBubbleCustomStyle: dummyObject,
|
|
7
|
+
message: '',
|
|
8
|
+
fullMessage: '',
|
|
9
|
+
messageMaxLength: TEXT_MESSAGE_MAX_LENGTH,
|
|
10
|
+
fullContentURL: '',
|
|
11
|
+
messageId: '',
|
|
12
|
+
sessionId: ''
|
|
13
|
+
};
|
|
14
|
+
export default imTextBubbleDefaultProps;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const imTextBubblePropTypes = {
|
|
4
|
+
customStyle: PropTypes.object,
|
|
5
|
+
textBubbleCustomStyle: PropTypes.object,
|
|
6
|
+
message: PropTypes.string,
|
|
7
|
+
fullMessage: PropTypes.string,
|
|
8
|
+
messageMaxLength: PropTypes.number,
|
|
9
|
+
fullContentURL: PropTypes.string,
|
|
10
|
+
messageId: PropTypes.string,
|
|
11
|
+
sessionId: PropTypes.string,
|
|
12
|
+
onLoadFullMessage: PropTypes.func,
|
|
13
|
+
moreText: PropTypes.string
|
|
14
|
+
};
|
|
15
|
+
export default imTextBubblePropTypes;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable @zohodesk/zsecurity/no-protocol-check */
|
|
2
|
+
/* eslint-disable react/jsx-no-bind */
|
|
3
|
+
/* eslint-disable max-len */
|
|
4
|
+
|
|
5
|
+
/** ** Libraries *** */
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
/** ** Hooks *** */
|
|
9
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
10
|
+
import useIMTicketLink from '@zohoim/chat-components-hooks/es/IMTicketLink/useIMTicketLink';
|
|
11
|
+
|
|
12
|
+
/** ** Constants *** */
|
|
13
|
+
import imTicketLinkDefaultProps from './props/defaultProps';
|
|
14
|
+
import imTicketLinkPropTypes from './props/propTypes';
|
|
15
|
+
|
|
16
|
+
/** ** Methods *** */
|
|
17
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
18
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
19
|
+
import { URLValidator } from '@zohoim/chat-components-utils/es/imUtils/security';
|
|
20
|
+
|
|
21
|
+
/** ** Styles *** */
|
|
22
|
+
import style from './css/IMTicketLink.module.css';
|
|
23
|
+
export default function IMTicketLink(props) {
|
|
24
|
+
const {
|
|
25
|
+
customStyle
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
ticketURL,
|
|
29
|
+
onClick,
|
|
30
|
+
ticketNumber
|
|
31
|
+
} = useIMTicketLink(props);
|
|
32
|
+
|
|
33
|
+
/* External customization */
|
|
34
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
35
|
+
/* CSS classnames added based on logic */
|
|
36
|
+
const {
|
|
37
|
+
imTicketLinkClass
|
|
38
|
+
} = cssJSLogic(props, newStyle);
|
|
39
|
+
return ticketNumber ? /*#__PURE__*/React.createElement("a", {
|
|
40
|
+
className: imTicketLinkClass,
|
|
41
|
+
onClick: onClick,
|
|
42
|
+
href: ticketURL,
|
|
43
|
+
rel: "noopener noreferrer"
|
|
44
|
+
}, ticketNumber) : null;
|
|
45
|
+
}
|
|
46
|
+
IMTicketLink.propTypes = imTicketLinkPropTypes;
|
|
47
|
+
IMTicketLink.defaultProps = imTicketLinkDefaultProps;
|
|
48
|
+
IMTicketLink.displayName = 'IMTicketLink';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.varClass {
|
|
2
|
+
--imTicketLink-top_gap: var(--imlib_size_5);
|
|
3
|
+
--imTicketLink-font_size: var(--imlib_size_12);
|
|
4
|
+
--imTicketLink-max_width: var(--imlib_size_150);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.ticketNumber {
|
|
8
|
+
composes: varClass;
|
|
9
|
+
font-size: var(--imTicketLink-font_size);
|
|
10
|
+
max-width: var(--imTicketLink-max_width);
|
|
11
|
+
color: var(--imlib_chat_components_imTicketLink_color);
|
|
12
|
+
display: inline-block;
|
|
13
|
+
|
|
14
|
+
margin-top: var(--imTicketLink-top_gap);
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.disabled {
|
|
19
|
+
pointer-events: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
a.ticketNumber:hover {
|
|
23
|
+
text-decoration: underline;
|
|
24
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const {
|
|
5
|
+
isDisabled
|
|
6
|
+
} = props;
|
|
7
|
+
const imTicketLinkClass = compileClassNames({
|
|
8
|
+
[style.ticketNumber]: true,
|
|
9
|
+
[style.disabled]: isDisabled === true
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
imTicketLinkClass
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as IMTicketLink } from './IMTicketLink';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const imTicketLinkPropTypes = {
|
|
4
|
+
customStyle: PropTypes.object,
|
|
5
|
+
ticketURL: PropTypes.string,
|
|
6
|
+
onClick: PropTypes.func,
|
|
7
|
+
ticketNumber: PropTypes.string,
|
|
8
|
+
ticketId: PropTypes.string
|
|
9
|
+
};
|
|
10
|
+
export default imTicketLinkPropTypes;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import imVideoBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import imVideoBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/IMVideoBubble.module.css';
|
|
20
|
+
import VideoBubble from '../VideoBubble/VideoBubble';
|
|
21
|
+
import useIMVideoBubble from '@zohoim/chat-components-hooks/src/IMVideoBubble/useIMVideoBubble';
|
|
22
|
+
export default function IMVideoBubble(props) {
|
|
23
|
+
const {
|
|
24
|
+
attachmentDetails,
|
|
25
|
+
customStyle,
|
|
26
|
+
videoBubbleCustomStyle,
|
|
27
|
+
headerCustomStyle,
|
|
28
|
+
videoCustomStyle,
|
|
29
|
+
controlsCustomStyle
|
|
30
|
+
} = props;
|
|
31
|
+
const {
|
|
32
|
+
isShow,
|
|
33
|
+
fileName,
|
|
34
|
+
formattedFileSize: fileSize,
|
|
35
|
+
attachmentURL: fileURL,
|
|
36
|
+
attachmentType: fileType
|
|
37
|
+
} = useIMVideoBubble({
|
|
38
|
+
attachmentDetails
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
/* External customization */
|
|
42
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
43
|
+
/* CSS classnames added based on logic */
|
|
44
|
+
const {
|
|
45
|
+
imVideoBubbleClass
|
|
46
|
+
} = cssJSLogic(props, newStyle);
|
|
47
|
+
return isShow ? /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
className: imVideoBubbleClass
|
|
49
|
+
}, /*#__PURE__*/React.createElement(VideoBubble, {
|
|
50
|
+
customStyle: videoBubbleCustomStyle,
|
|
51
|
+
headerCustomStyle: headerCustomStyle,
|
|
52
|
+
audioCustomStyle: videoCustomStyle,
|
|
53
|
+
controlsCustomStyle: controlsCustomStyle,
|
|
54
|
+
fileName: fileName,
|
|
55
|
+
fileSize: fileSize,
|
|
56
|
+
fileURL: fileURL,
|
|
57
|
+
fileType: fileType
|
|
58
|
+
})) : null;
|
|
59
|
+
}
|
|
60
|
+
IMVideoBubble.propTypes = imVideoBubblePropTypes;
|
|
61
|
+
IMVideoBubble.defaultProps = imVideoBubbleDefaultProps;
|
|
62
|
+
IMVideoBubble.displayName = 'IMVideoBubble';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as IMVideoBubble } from './IMVideoBubble';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
const imVideoBubbleDefaultProps = {
|
|
4
|
+
customStyle: dummyObject,
|
|
5
|
+
videoBubbleCustomStyle: dummyObject,
|
|
6
|
+
headerCustomStyle: dummyObject,
|
|
7
|
+
videoCustomStyle: dummyObject,
|
|
8
|
+
controlsCustomStyle: dummyObject,
|
|
9
|
+
attachmentDetails: dummyObject
|
|
10
|
+
};
|
|
11
|
+
export default imVideoBubbleDefaultProps;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const imVideoBubblePropTypes = {
|
|
4
|
+
attachmentDetails: PropTypes.shape({
|
|
5
|
+
name: PropTypes.string,
|
|
6
|
+
size: PropTypes.string,
|
|
7
|
+
type: PropTypes.string,
|
|
8
|
+
url: PropTypes.string,
|
|
9
|
+
id: PropTypes.string
|
|
10
|
+
}),
|
|
11
|
+
customStyle: PropTypes.object,
|
|
12
|
+
videoBubbleCustomStyle: PropTypes.object,
|
|
13
|
+
headerCustomStyle: PropTypes.object,
|
|
14
|
+
videoCustomStyle: PropTypes.object,
|
|
15
|
+
controlsCustomStyle: PropTypes.object
|
|
16
|
+
};
|
|
17
|
+
export default imVideoBubblePropTypes;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
import { Container, Box } from '@zohodesk/components/es/Layout';
|
|
10
|
+
|
|
11
|
+
/** ** Constants *** */
|
|
12
|
+
import imageBubbleDefaultProps from './props/defaultProps';
|
|
13
|
+
import imageBubblePropTypes from './props/propTypes';
|
|
14
|
+
|
|
15
|
+
/** ** Methods *** */
|
|
16
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
17
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
18
|
+
|
|
19
|
+
/** ** Styles *** */
|
|
20
|
+
import style from './css/ImageBubble.module.css';
|
|
21
|
+
import LazyLoadImage from '../LazyLoadImage/LazyLoadImage';
|
|
22
|
+
export default function ImageBubble(props) {
|
|
23
|
+
const {
|
|
24
|
+
customStyle,
|
|
25
|
+
src,
|
|
26
|
+
alternate
|
|
27
|
+
} = props;
|
|
28
|
+
|
|
29
|
+
/* External customization */
|
|
30
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
31
|
+
/* CSS classnames added based on logic */
|
|
32
|
+
const {
|
|
33
|
+
imageBubbleWrapperClass,
|
|
34
|
+
blurImageStyle,
|
|
35
|
+
imageStyle
|
|
36
|
+
} = cssJSLogic(props, newStyle);
|
|
37
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
38
|
+
align: "both",
|
|
39
|
+
className: imageBubbleWrapperClass
|
|
40
|
+
}, /*#__PURE__*/React.createElement(LazyLoadImage, {
|
|
41
|
+
src: src,
|
|
42
|
+
customStyle: blurImageStyle,
|
|
43
|
+
alternate: alternate
|
|
44
|
+
}), /*#__PURE__*/React.createElement(LazyLoadImage, {
|
|
45
|
+
src: src,
|
|
46
|
+
customStyle: imageStyle,
|
|
47
|
+
alternate: alternate
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
ImageBubble.propTypes = imageBubblePropTypes;
|
|
51
|
+
ImageBubble.defaultProps = imageBubbleDefaultProps;
|
|
52
|
+
ImageBubble.displayName = 'ImageBubble';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
.varClass {
|
|
2
|
+
--imageBubble-wrapper_height: var(--imlib_size_200);
|
|
3
|
+
--imageBubble-wrapper_width: 23.75rem;
|
|
4
|
+
--imageBubble-wrapper_max_width: 100%;
|
|
5
|
+
|
|
6
|
+
--imageBubble-blur_img_width: 100%;
|
|
7
|
+
--imageBubble-blur_img_height: 100%;
|
|
8
|
+
/* --imageBubble-blur_img_blurpx: 90px; */
|
|
9
|
+
|
|
10
|
+
--imageBubble-img_max_width: 100%;
|
|
11
|
+
--imageBubble-img_max_height: 100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.imageBubbleWrapper {
|
|
15
|
+
composes: varClass;
|
|
16
|
+
|
|
17
|
+
width: var(--imageBubble-wrapper_width);
|
|
18
|
+
max-width: var(--imageBubble-wrapper_max_width);
|
|
19
|
+
height: var(--imageBubble-wrapper_height);
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
position: relative;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
background-color: var(--imlib_chat_components_imageBubble_bg_color);
|
|
24
|
+
border-radius: var(--imlib_size_3);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.blurImage {
|
|
28
|
+
object-fit: cover;
|
|
29
|
+
-webkit-filter: blur(90px);
|
|
30
|
+
filter: blur(90px);
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 0;
|
|
33
|
+
bottom: 0;
|
|
34
|
+
width: var(--imageBubble-blur_img_width);
|
|
35
|
+
height: var(--imageBubble-blur_img_height);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
[dir=ltr] .blurImage {
|
|
39
|
+
right: 0;
|
|
40
|
+
left: 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[dir=rtl] .blurImage {
|
|
44
|
+
left: 0;
|
|
45
|
+
right: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.image {
|
|
49
|
+
max-width: var(--imageBubble-img_max_width);
|
|
50
|
+
max-height: var(--imageBubble-img_max_height);
|
|
51
|
+
object-fit: contain;
|
|
52
|
+
position: relative;
|
|
53
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const imageBubbleWrapperClass = compileClassNames({
|
|
5
|
+
[style.imageBubbleWrapper]: true
|
|
6
|
+
});
|
|
7
|
+
const imageClass = compileClassNames({
|
|
8
|
+
[style.image]: true
|
|
9
|
+
});
|
|
10
|
+
const blurImageClass = compileClassNames({
|
|
11
|
+
[style.blurImage]: true
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
imageBubbleWrapperClass,
|
|
15
|
+
blurImageStyle: {
|
|
16
|
+
lazyLoadImage: blurImageClass
|
|
17
|
+
},
|
|
18
|
+
imageStyle: {
|
|
19
|
+
lazyLoadImage: imageClass
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ImageBubble } from './ImageBubble';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import infoBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import infoBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/InfoBubble.module.css';
|
|
20
|
+
export default function InfoBubble(props) {
|
|
21
|
+
const {
|
|
22
|
+
customStyle
|
|
23
|
+
} = props;
|
|
24
|
+
|
|
25
|
+
/* External customization */
|
|
26
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
27
|
+
/* CSS classnames added based on logic */
|
|
28
|
+
const {
|
|
29
|
+
infoBubbleClass
|
|
30
|
+
} = cssJSLogic(props, newStyle);
|
|
31
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: infoBubbleClass
|
|
33
|
+
}, "Working On this...");
|
|
34
|
+
}
|
|
35
|
+
InfoBubble.propTypes = infoBubblePropTypes;
|
|
36
|
+
InfoBubble.defaultProps = infoBubbleDefaultProps;
|
|
37
|
+
InfoBubble.displayName = 'InfoBubble';
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as InfoBubble } from './InfoBubble';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import lazyLoadImageDefaultProps from './props/defaultProps';
|
|
12
|
+
import lazyLoadImagePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/LazyLoadImage.module.css';
|
|
20
|
+
import useLazyLoadImage from '@zohoim/chat-components-hooks/es/ImageBubble/useLazyLoadImage';
|
|
21
|
+
export default function LazyLoadImage(props) {
|
|
22
|
+
const {
|
|
23
|
+
customStyle,
|
|
24
|
+
src,
|
|
25
|
+
alternate
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
imageElementRef
|
|
29
|
+
} = useLazyLoadImage();
|
|
30
|
+
|
|
31
|
+
/* External customization */
|
|
32
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
33
|
+
/* CSS classnames added based on logic */
|
|
34
|
+
const {
|
|
35
|
+
lazyLoadImageClass
|
|
36
|
+
} = cssJSLogic(props, newStyle);
|
|
37
|
+
return /*#__PURE__*/React.createElement("img", {
|
|
38
|
+
ref: imageElementRef,
|
|
39
|
+
src: "",
|
|
40
|
+
"data-src": src,
|
|
41
|
+
"data-srcset": src,
|
|
42
|
+
className: `lazy ${lazyLoadImageClass || ''}`,
|
|
43
|
+
alt: alternate
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
LazyLoadImage.propTypes = lazyLoadImagePropTypes;
|
|
47
|
+
LazyLoadImage.defaultProps = lazyLoadImageDefaultProps;
|
|
48
|
+
LazyLoadImage.displayName = 'LazyLoadImage';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as LazyLoadImage } from './LazyLoadImage';
|