@zohoim/chat-components 1.0.11 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +8 -0
  2. package/es/AttachmentHandler/AttachmentHandler.js +84 -0
  3. package/es/AttachmentHandler/css/AttachmentHandler.module.css +27 -0
  4. package/es/AttachmentHandler/index.js +1 -0
  5. package/es/AttachmentHandler/props/defaultProps.js +10 -0
  6. package/es/AttachmentHandler/props/propTypes.js +17 -0
  7. package/es/AttachmentPreview/AttachmentPreview.js +121 -0
  8. package/es/AttachmentPreview/css/AttachmentPreview.module.css +39 -0
  9. package/es/AttachmentPreview/index.js +1 -0
  10. package/es/AttachmentPreview/props/defaultProps.js +9 -0
  11. package/es/AttachmentPreview/props/propTypes.js +33 -0
  12. package/es/AttachmentPreviewBody/AttachmentPreviewBody.js +97 -0
  13. package/es/AttachmentPreviewBody/css/AttachmentPreviewBody.module.css +75 -0
  14. package/es/AttachmentPreviewBody/index.js +1 -0
  15. package/es/AttachmentPreviewBody/props/defaultProps.js +7 -0
  16. package/es/AttachmentPreviewBody/props/propTypes.js +20 -0
  17. package/es/AttachmentPreviewHeader/AttachmentPreviewHeader.js +84 -0
  18. package/es/AttachmentPreviewHeader/css/AttachmentPreviewHeader.module.css +47 -0
  19. package/es/AttachmentPreviewHeader/index.js +1 -0
  20. package/es/AttachmentPreviewHeader/props/defaultProps.js +7 -0
  21. package/es/AttachmentPreviewHeader/props/propTypes.js +16 -0
  22. package/es/Emoji/Emoji.js +72 -0
  23. package/es/Emoji/css/Emoji.module.css +48 -0
  24. package/es/Emoji/css/cssJSLogic.js +18 -0
  25. package/es/Emoji/index.js +1 -0
  26. package/es/Emoji/props/defaultProps.js +8 -0
  27. package/es/Emoji/props/propTypes.js +16 -0
  28. package/es/EmojiPopup/EmojiPopup.js +115 -0
  29. package/es/EmojiPopup/css/EmojiPopup.module.css +55 -0
  30. package/es/EmojiPopup/index.js +1 -0
  31. package/es/EmojiPopup/props/defaultProps.js +11 -0
  32. package/es/EmojiPopup/props/propTypes.js +21 -0
  33. package/es/Emojis/Emojis.js +81 -0
  34. package/es/Emojis/index.js +1 -0
  35. package/es/Emojis/props/defaultProps.js +10 -0
  36. package/es/Emojis/props/propTypes.js +20 -0
  37. package/es/EmojisEmptyState/EmojisEmptyState.js +50 -0
  38. package/es/EmojisEmptyState/css/EmojisEmptyState.module.css +18 -0
  39. package/es/EmojisEmptyState/index.js +1 -0
  40. package/es/EmojisEmptyState/props/defaultProps.js +9 -0
  41. package/es/EmojisEmptyState/props/propTypes.js +8 -0
  42. package/es/EmojisFooter/EmojisFooter.js +71 -0
  43. package/es/EmojisFooter/css/EmojisFooter.module.css +40 -0
  44. package/es/EmojisFooter/index.js +1 -0
  45. package/es/EmojisFooter/props/defaultProps.js +7 -0
  46. package/es/EmojisFooter/props/propTypes.js +12 -0
  47. package/es/EmojisHeader/EmojisHeader.js +65 -0
  48. package/es/EmojisHeader/css/EmojisHeader.module.css +36 -0
  49. package/es/EmojisHeader/index.js +1 -0
  50. package/es/EmojisHeader/props/defaultProps.js +8 -0
  51. package/es/EmojisHeader/props/propTypes.js +13 -0
  52. package/es/EmojisList/EmojisList.js +130 -0
  53. package/es/EmojisList/css/EmojisList.module.css +50 -0
  54. package/es/EmojisList/css/cssJSLogic.js +25 -0
  55. package/es/EmojisList/index.js +1 -0
  56. package/es/EmojisList/props/defaultProps.js +10 -0
  57. package/es/EmojisList/props/propTypes.js +20 -0
  58. package/es/MessageActionsMore/MessageActionsMore.js +2 -2
  59. package/es/MessageActionsMore/props/propTypes.js +5 -2
  60. package/es/MessageActionsWrapper/MessageActionsWrapper.js +1 -1
  61. package/es/Theme/ThemeAssets.js +2 -2
  62. package/es/Theme/ThemeWrapper.js +20 -7
  63. package/es/Theme/TooltipWrapper.js +1 -1
  64. package/es/Theme/props/defaultProps.js +2 -1
  65. package/es/Theme/props/propTypes.js +2 -1
  66. package/es/Theme/themeVariables/dark/blueTheme.js +18 -1
  67. package/es/Theme/themeVariables/dark/commonColorVariable.js +20 -1
  68. package/es/Theme/themeVariables/dark/greenTheme.js +18 -1
  69. package/es/Theme/themeVariables/dark/orangeTheme.js +18 -1
  70. package/es/Theme/themeVariables/dark/redTheme.js +18 -1
  71. package/es/Theme/themeVariables/dark/yellowTheme.js +18 -1
  72. package/es/Theme/themeVariables/light/blueTheme.js +22 -1
  73. package/es/Theme/themeVariables/light/commonColorVariable.js +19 -0
  74. package/es/Theme/themeVariables/light/greenTheme.js +18 -1
  75. package/es/Theme/themeVariables/light/orangeTheme.js +18 -1
  76. package/es/Theme/themeVariables/light/redTheme.js +18 -1
  77. package/es/Theme/themeVariables/light/yellowTheme.js +18 -1
  78. package/es/Theme/themeVariables/pureDark/blueTheme.js +18 -1
  79. package/es/Theme/themeVariables/pureDark/commonColorVariable.js +20 -1
  80. package/es/Theme/themeVariables/pureDark/greenTheme.js +18 -1
  81. package/es/Theme/themeVariables/pureDark/orangeTheme.js +18 -1
  82. package/es/Theme/themeVariables/pureDark/redTheme.js +18 -1
  83. package/es/Theme/themeVariables/pureDark/yellowTheme.js +18 -1
  84. package/es/Theme/utils/getThemeConfigurations.js +1 -1
  85. package/es/constants/index.js +8 -1
  86. package/es/constants/propConstants/editorPropConstants.js +3 -0
  87. package/es/constants/propConstants/popupPropConstants.js +2 -0
  88. package/es/im/IMAttachmentHandler/IMAttachmentHandler.js +50 -0
  89. package/es/im/IMAttachmentHandler/index.js +1 -0
  90. package/es/im/IMAttachmentHandler/props/defaultProps.js +10 -0
  91. package/es/im/IMAttachmentHandler/props/propTypes.js +28 -0
  92. package/es/im/ReplyComposer/ReplyComposer.js +153 -0
  93. package/es/im/ReplyComposer/css/ReplyComposer.module.css +10 -0
  94. package/es/im/ReplyComposer/css/cssJSLogic.js +13 -0
  95. package/es/im/ReplyComposer/index.js +1 -0
  96. package/es/im/ReplyComposer/props/defaultProps.js +7 -0
  97. package/es/im/ReplyComposer/props/propTypes.js +60 -0
  98. package/es/im/ReplyComposerFooter/ReplyComposerFooter.js +41 -0
  99. package/es/im/ReplyComposerFooter/css/ReplyComposerFooter.module.css +10 -0
  100. package/es/im/ReplyComposerFooter/index.js +1 -0
  101. package/es/im/ReplyComposerFooter/props/defaultProps.js +8 -0
  102. package/es/im/ReplyComposerFooter/props/propTypes.js +17 -0
  103. package/es/im/ReplyEditor/ReplyEditor.js +103 -0
  104. package/es/im/ReplyEditor/css/ReplyEditor.module.css +50 -0
  105. package/es/im/ReplyEditor/css/cssJSLogic.js +10 -0
  106. package/es/im/ReplyEditor/index.js +1 -0
  107. package/es/im/ReplyEditor/props/defaultProps.js +8 -0
  108. package/es/im/ReplyEditor/props/propTypes.js +27 -0
  109. package/es/im/ReplyEditorExtensions/ReplyEditorExtensions.js +149 -0
  110. package/es/im/ReplyEditorExtensions/css/ReplyEditorExtensions.module.css +5 -0
  111. package/es/im/ReplyEditorExtensions/index.js +1 -0
  112. package/es/im/ReplyEditorExtensions/props/defaultProps.js +6 -0
  113. package/es/im/ReplyEditorExtensions/props/propTypes.js +16 -0
  114. package/es/im/ReplyEditorSuggestions/ReplyEditorSuggestions.js +95 -0
  115. package/es/im/ReplyEditorSuggestions/css/ReplyEditorSuggestions.module.css +8 -0
  116. package/es/im/ReplyEditorSuggestions/index.js +1 -0
  117. package/es/im/ReplyEditorSuggestions/props/defaultProps.js +6 -0
  118. package/es/im/ReplyEditorSuggestions/props/propTypes.js +21 -0
  119. package/es/im/ReplyEditorSuggestionsPopup/ReplyEditorSuggestionsPopup.js +93 -0
  120. package/es/im/ReplyEditorSuggestionsPopup/css/ReplyEditorSuggestionsPopup.module.css +7 -0
  121. package/es/im/ReplyEditorSuggestionsPopup/index.js +1 -0
  122. package/es/im/ReplyEditorSuggestionsPopup/props/defaultProps.js +10 -0
  123. package/es/im/ReplyEditorSuggestionsPopup/props/propTypes.js +21 -0
  124. package/es/im/index.js +8 -1
  125. package/es/index.js +13 -2
  126. package/es/rte/Editor/Editor.js +80 -0
  127. package/es/rte/Editor/css/Editor.module.css +17 -0
  128. package/es/rte/Editor/index.js +1 -0
  129. package/es/rte/Editor/props/defaultProps.js +21 -0
  130. package/es/rte/Editor/props/propTypes.js +52 -0
  131. package/es/rte/index.js +1 -0
  132. package/package.json +7 -7
  133. package/es/Theme/constants/index.js +0 -41
@@ -0,0 +1,71 @@
1
+ /* eslint-disable max-len */
2
+
3
+ /** ** Libraries *** */
4
+ import React, { useMemo } from 'react';
5
+ /** ** Components *** */
6
+
7
+ import { Container, Box } from '@zohodesk/components/es/Layout';
8
+ import Emoji from "../Emoji/Emoji";
9
+ /** ** Hooks *** */
10
+
11
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
12
+ /** ** Constants *** */
13
+
14
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
15
+ import emojisFooterDefaultProps from "./props/defaultProps";
16
+ import emojisFooterPropTypes from "./props/propTypes";
17
+ /** ** Styles *** */
18
+
19
+ import style from "./css/EmojisFooter.module.css";
20
+
21
+ const capitalize = function () {
22
+ let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
23
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
24
+ };
25
+
26
+ export default function EmojisFooter(props) {
27
+ const {
28
+ customStyle,
29
+ customProps,
30
+ emojisList = dummyObject,
31
+ onSelect,
32
+ selectedTab
33
+ } = props;
34
+ const {
35
+ emojiProps = dummyObject
36
+ } = customProps || dummyObject;
37
+ /* External customization */
38
+
39
+ const newStyle = useMergeStyle(style, customStyle);
40
+ const emojiCustomStyle = useMemo(() => ({
41
+ emoji: newStyle.emoji
42
+ }), [newStyle.emoji]);
43
+ return /*#__PURE__*/React.createElement(Container, {
44
+ alignBox: "row",
45
+ className: newStyle.footerTab,
46
+ isCover: false
47
+ }, Object.keys(emojisList).map(groupName => {
48
+ const emojis = emojisList[groupName];
49
+ const emojiName = Object.keys(emojis)[0];
50
+ const emoji = emojis[emojiName];
51
+ const id = `emoji_${emojiName}`;
52
+ return /*#__PURE__*/React.createElement(Box, {
53
+ key: id,
54
+ className: newStyle.tabIcon,
55
+ flexible: true
56
+ }, /*#__PURE__*/React.createElement(Emoji, {
57
+ customStyle: emojiCustomStyle,
58
+ customTitle: capitalize(groupName),
59
+ emoji: emoji,
60
+ emojiName: emojiName,
61
+ id: groupName,
62
+ onSelect: onSelect,
63
+ ...emojiProps
64
+ }), selectedTab === groupName ? /*#__PURE__*/React.createElement("span", {
65
+ className: newStyle.tabLine
66
+ }) : null);
67
+ }));
68
+ }
69
+ EmojisFooter.propTypes = emojisFooterPropTypes;
70
+ EmojisFooter.defaultProps = emojisFooterDefaultProps;
71
+ EmojisFooter.displayName = 'EmojisFooter';
@@ -0,0 +1,40 @@
1
+ .footerTab {
2
+ position: relative;
3
+ border-top: 1px solid var(--imlib_chat_components_emojiFooter_border_color);
4
+ }
5
+
6
+ .tabIcon {
7
+ /* padding: var(--zd_size10) var(--zd_size16); */
8
+ position: relative;
9
+ height: var(--zd_size35) ;
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ text-align: center;
14
+ padding: 1% ;
15
+ }
16
+
17
+ .tabLine {
18
+ display: inline-block;
19
+ position: absolute;
20
+ top: 0 ;
21
+ height: var(--zd_size2) ;
22
+ transition: 0.3s ease;
23
+ width: 100% ;
24
+ background-color: var(--imlib_chat_components_emojiFooter_tabLine);
25
+ }
26
+
27
+ [dir=ltr] .tabLine {
28
+ left: 0 ;
29
+ }
30
+
31
+ [dir=rtl] .tabLine {
32
+ right: 0 ;
33
+ }
34
+
35
+ .emoji {
36
+ width: auto ;
37
+ height: auto ;
38
+ margin: 0 ;
39
+ padding: 8% ;
40
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisFooter } from "./EmojisFooter";
@@ -0,0 +1,7 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const emojisFooterDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject
6
+ };
7
+ export default emojisFooterDefaultProps;
@@ -0,0 +1,12 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisFooterPropTypes = {
4
+ customStyle: PropTypes.object,
5
+ customProps: PropTypes.shape({
6
+ emojiProps: PropTypes.object
7
+ }),
8
+ emojisList: PropTypes.object.isRequired,
9
+ onSelect: PropTypes.func,
10
+ selectedTab: PropTypes.string
11
+ };
12
+ export default emojisFooterPropTypes;
@@ -0,0 +1,65 @@
1
+ /** ** Libraries *** */
2
+ import React from 'react';
3
+ /** ** Components *** */
4
+
5
+ import { Container, Box } from '@zohodesk/components/es/Layout';
6
+ import Icon from '@zohodesk/icons/es/Icon';
7
+ import TextBox from '@zohodesk/components/es/TextBox/TextBox';
8
+ /** ** Hooks *** */
9
+
10
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
11
+ /** ** Constants *** */
12
+
13
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
14
+ import emojisHeaderDefaultProps from "./props/defaultProps";
15
+ import emojisHeaderPropTypes from "./props/propTypes";
16
+ /** ** Styles *** */
17
+
18
+ import style from "./css/EmojisHeader.module.css";
19
+ export default function EmojisHeader(props) {
20
+ const {
21
+ customStyle,
22
+ customProps = dummyObject,
23
+ searchString,
24
+ getRef,
25
+ onChange,
26
+ searchPlaceHolder
27
+ } = props;
28
+ const {
29
+ textBoxProps = dummyObject
30
+ } = customProps;
31
+ /* External customization */
32
+
33
+ const newStyle = useMergeStyle(style, customStyle);
34
+ return /*#__PURE__*/React.createElement(Box, {
35
+ className: newStyle.container
36
+ }, /*#__PURE__*/React.createElement(Container, {
37
+ align: "vertical",
38
+ alignBox: "row",
39
+ className: newStyle.emojisSearch
40
+ }, /*#__PURE__*/React.createElement(Box, {
41
+ className: newStyle.searchIcon
42
+ }, /*#__PURE__*/React.createElement(Icon, {
43
+ name: "ZD-search",
44
+ size: "13"
45
+ })), /*#__PURE__*/React.createElement(Box, {
46
+ flexible: true
47
+ }, /*#__PURE__*/React.createElement(TextBox, {
48
+ customClass: newStyle.searchInput,
49
+ inputRef: getRef,
50
+ isDisabled: false,
51
+ isReadOnly: false,
52
+ name: "emojiSearch",
53
+ needBorder: false,
54
+ onChange: onChange,
55
+ placeHolder: searchPlaceHolder,
56
+ size: "medium",
57
+ type: "text",
58
+ value: searchString,
59
+ variant: "default",
60
+ ...textBoxProps
61
+ }))));
62
+ }
63
+ EmojisHeader.propTypes = emojisHeaderPropTypes;
64
+ EmojisHeader.defaultProps = emojisHeaderDefaultProps;
65
+ EmojisHeader.displayName = 'EmojisHeader';
@@ -0,0 +1,36 @@
1
+ .container {
2
+ padding: var(--zd_size10) ;
3
+ border-bottom: 1px solid
4
+ var(--imlib_chat_components_emojisHeader_border_color);
5
+ }
6
+
7
+ .emojisSearch {
8
+ position: relative;
9
+ background-color: var(--imlib_chat_components_emojisHeader_bg_color);
10
+ }
11
+
12
+ .searchInput {
13
+ box-sizing: border-box;
14
+ min-height: var(--zd_size38) ;
15
+ outline: 0;
16
+ }
17
+
18
+ [dir=ltr] .searchInput {
19
+ padding-left: var(--zd_size31) ;
20
+ }
21
+
22
+ [dir=rtl] .searchInput {
23
+ padding-right: var(--zd_size31) ;
24
+ }
25
+
26
+ .searchIcon {
27
+ position: absolute;
28
+ }
29
+
30
+ [dir=ltr] .searchIcon {
31
+ left: var(--zd_size10) ;
32
+ }
33
+
34
+ [dir=rtl] .searchIcon {
35
+ right: var(--zd_size10) ;
36
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisHeader } from "./EmojisHeader";
@@ -0,0 +1,8 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const emojisHeaderDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject,
6
+ searchPlaceHolder: 'Search...'
7
+ };
8
+ export default emojisHeaderDefaultProps;
@@ -0,0 +1,13 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisHeaderPropTypes = {
4
+ customStyle: PropTypes.object,
5
+ customProps: PropTypes.shape({
6
+ textBoxProps: PropTypes.object
7
+ }),
8
+ searchString: PropTypes.string,
9
+ getRef: PropTypes.func,
10
+ onChange: PropTypes.func,
11
+ searchPlaceHolder: PropTypes.string
12
+ };
13
+ export default emojisHeaderPropTypes;
@@ -0,0 +1,130 @@
1
+ /* eslint-disable max-len */
2
+
3
+ /** ** Libraries *** */
4
+ import React, { useCallback } from 'react';
5
+ /** ** Components *** */
6
+
7
+ import Emoji from "../Emoji/Emoji";
8
+ import EmojisEmptyState from "../EmojisEmptyState/EmojisEmptyState";
9
+ /** ** Hooks *** */
10
+
11
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
12
+ import useEmojisList from '@zohoim/chat-components-hooks/es/EmojisList/useEmojisList';
13
+ /** ** Constants *** */
14
+
15
+ import emojisListDefaultProps from "./props/defaultProps";
16
+ import emojisListPropTypes from "./props/propTypes";
17
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
18
+ /** ** Methods *** */
19
+
20
+ import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
21
+ import cssJSLogic from "./css/cssJSLogic";
22
+ /** ** Styles *** */
23
+
24
+ import style from "./css/EmojisList.module.css";
25
+ export default function EmojisList(props) {
26
+ const {
27
+ customStyle,
28
+ customProps,
29
+ searchString,
30
+ isShowGroupBasedList,
31
+ onChangeGroup,
32
+ getMethods,
33
+ onSelect,
34
+ selectedGroup,
35
+ rowType,
36
+ emojisList: propsEmojisList,
37
+ renderEmpty,
38
+ isShowOnlyContent
39
+ } = props;
40
+ const {
41
+ emojiProps = dummyObject,
42
+ emojisEmptyStateProps = dummyObject
43
+ } = customProps;
44
+ const {
45
+ emojisList,
46
+ setGroupRefs,
47
+ setContainerRef: listContainerRef,
48
+ isAllEmpty,
49
+ isGroupEmpty,
50
+ isRenderEmptyState,
51
+ isRenderElement
52
+ } = useEmojisList({
53
+ emojisList: propsEmojisList,
54
+ searchString,
55
+ isShowGroupBasedList,
56
+ onChangeGroup,
57
+ getMethods,
58
+ selectedGroup,
59
+ isShowOnlyContent
60
+ });
61
+ /* External customization */
62
+
63
+ const newStyle = useMergeStyle(style, customStyle);
64
+ /* CSS classnames added based on logic */
65
+
66
+ const {
67
+ emojisListClass,
68
+ groupClass
69
+ } = cssJSLogic({
70
+ rowType,
71
+ isShowGroupBasedList,
72
+ isShowOnlyContent,
73
+ isEmpty: isAllEmpty
74
+ }, newStyle);
75
+ const renderGroup = useCallback(_ref => {
76
+ let {
77
+ groupName,
78
+ emojis
79
+ } = _ref;
80
+ const isEmptyGroup = isGroupEmpty[groupName];
81
+ return !isEmptyGroup ? /*#__PURE__*/React.createElement("div", {
82
+ key: groupName,
83
+ ref: el => {
84
+ setGroupRefs(el, groupName);
85
+ },
86
+ className: groupClass
87
+ }, isShowGroupBasedList ? /*#__PURE__*/React.createElement("div", {
88
+ className: newStyle.groupName
89
+ }, groupName) : null, Object.keys(emojis).map(emojiName => {
90
+ const emoji = emojis[emojiName];
91
+ const id = `emoji_${emojiName}`;
92
+ return /*#__PURE__*/React.createElement(Emoji, {
93
+ key: id,
94
+ emoji: emoji,
95
+ emojiName: emojiName,
96
+ onSelect: onSelect,
97
+ ...emojiProps
98
+ });
99
+ })) : null;
100
+ }, [emojiProps, isGroupEmpty, groupClass, isShowGroupBasedList, newStyle.groupName, onSelect, setGroupRefs]);
101
+ const renderDefaultEmptyState = useCallback(() => /*#__PURE__*/React.createElement(EmojisEmptyState, { ...emojisEmptyStateProps
102
+ }), [emojisEmptyStateProps]);
103
+ const renderEmptyState = useCallback(() => {
104
+ /* Render EmptyState */
105
+ if (isRenderEmptyState) {
106
+ const emptyState = renderHandler(renderEmpty || renderDefaultEmptyState)();
107
+
108
+ if (emptyState) {
109
+ return emptyState;
110
+ }
111
+
112
+ return null;
113
+ }
114
+
115
+ return null;
116
+ }, [renderEmpty, renderDefaultEmptyState, isRenderEmptyState]);
117
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isRenderElement ? /*#__PURE__*/React.createElement("div", {
118
+ ref: listContainerRef,
119
+ className: emojisListClass
120
+ }, !isAllEmpty ? Object.keys(emojisList).map(groupName => {
121
+ const emojis = emojisList[groupName];
122
+ return renderGroup({
123
+ groupName,
124
+ emojis
125
+ });
126
+ }) : renderEmptyState()) : null);
127
+ }
128
+ EmojisList.propTypes = emojisListPropTypes;
129
+ EmojisList.defaultProps = emojisListDefaultProps;
130
+ EmojisList.displayName = 'EmojisList';
@@ -0,0 +1,50 @@
1
+ .varClass {
2
+ --emoji-groupName-size: var(--zd_font_size13);
3
+ --emoji-singleList-size: var(--zd_size32);
4
+ --emoji-multipleList-size: var(--zd_size300);
5
+ }
6
+
7
+ .emojisList {
8
+ composes: varClass;
9
+ transition: 0.2s ease;
10
+ flex-direction: row;
11
+ flex-shrink: 0;
12
+ width: 100% ;
13
+ word-wrap: break-word;
14
+ font-size: 0 ;
15
+ }
16
+
17
+ .emojisListHide {
18
+ display: none;
19
+ }
20
+
21
+ .emojisListSingle {
22
+ height: var(--emoji-singleList-size);
23
+ white-space: nowrap;
24
+ overflow-x: auto;
25
+ }
26
+
27
+ .emojisListMultiple {
28
+ height: var(--emoji-multipleList-size);
29
+ overflow-y: auto;
30
+ }
31
+
32
+ .groupName {
33
+ width: 100% ;
34
+ font-size: var(--emoji-groupName-size);
35
+ text-transform: capitalize;
36
+ color: var(--imlib_chat_components_emojiPopup_titleColor);
37
+ padding: var(--zd_size8) var(--zd_size10) ;
38
+ margin-bottom: var(--zd_size5) ;
39
+ }
40
+
41
+ .groupContainer {
42
+ font-size: 0 ;
43
+ }
44
+ .groupSeperate {
45
+ display: inline-block;
46
+ }
47
+
48
+ .groupAll {
49
+ display: inline;
50
+ }
@@ -0,0 +1,25 @@
1
+ /** ** Methods *** */
2
+ import compileClassNames from '@zohodesk/utils/es/compileClassNames';
3
+ export default function cssJSLogic(props, style) {
4
+ const {
5
+ rowType,
6
+ isShowGroupBasedList,
7
+ isShowOnlyContent,
8
+ isEmpty
9
+ } = props;
10
+ const emojisListClass = compileClassNames({
11
+ [style.emojisList]: true,
12
+ [style.emojisListSingle]: rowType === 'single',
13
+ [style.emojisListMultiple]: rowType === 'multiple',
14
+ [style.emojisListHide]: isShowOnlyContent ? isEmpty : false
15
+ });
16
+ const groupClass = compileClassNames({
17
+ [style.groupContainer]: true,
18
+ [style.groupSeperate]: !!isShowGroupBasedList,
19
+ [style.groupAll]: !isShowGroupBasedList
20
+ });
21
+ return {
22
+ emojisListClass,
23
+ groupClass
24
+ };
25
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisList } from "./EmojisList";
@@ -0,0 +1,10 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
3
+ const emojisListDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject,
6
+ rowType: 'multiple',
7
+ isShowGroupBasedList: true,
8
+ isShowOnlyContent: false
9
+ };
10
+ export default emojisListDefaultProps;
@@ -0,0 +1,20 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisListPropTypes = {
4
+ emojisList: PropTypes.object.isRequired,
5
+ customProps: PropTypes.shape({
6
+ emojiProps: PropTypes.object,
7
+ emojisEmptyStateProps: PropTypes.object
8
+ }),
9
+ customStyle: PropTypes.object,
10
+ getMethods: PropTypes.func,
11
+ isShowGroupBasedList: PropTypes.bool,
12
+ isShowOnlyContent: PropTypes.bool,
13
+ onChangeGroup: PropTypes.func,
14
+ onSelect: PropTypes.func,
15
+ renderEmpty: PropTypes.func,
16
+ rowType: PropTypes.oneOf(['single', 'multiple']),
17
+ searchString: PropTypes.string,
18
+ selectedGroup: PropTypes.string
19
+ };
20
+ export default emojisListPropTypes;
@@ -2,8 +2,8 @@
2
2
  import React, { useCallback, useMemo } from 'react';
3
3
  /** ** Components *** */
4
4
 
5
- import Popup from '@zohodesk/components/lib/Popup/Popup';
6
- import DropBox from '@zohodesk/components/lib/DropBox/DropBox';
5
+ import Popup from '@zohodesk/components/es/Popup/Popup';
6
+ import DropBox from '@zohodesk/components/es/DropBox/DropBox';
7
7
  /** ** Constants *** */
8
8
 
9
9
  import messageActionsMoreDefaultProps from "./props/defaultProps";
@@ -1,5 +1,8 @@
1
1
  /** ** Libraries *** */
2
2
  import PropTypes from 'prop-types';
3
+ /** ** Constants *** */
4
+
5
+ import { popupPosition, popupSize } from "../../constants/propConstants/popupPropConstants";
3
6
  const messageActionsMorePropTypes = {
4
7
  actions: PropTypes.arrayOf(PropTypes.shape({
5
8
  id: PropTypes.string.isRequired,
@@ -8,7 +11,7 @@ const messageActionsMorePropTypes = {
8
11
  renderMoreIcon: PropTypes.func.isRequired,
9
12
  setRetainMessageActions: PropTypes.func,
10
13
  customStyle: PropTypes.object,
11
- popupSize: PropTypes.oneOf(['mini', 'xmini', 'xsmall', 'small', 'medium', 'large', 'mlarge', 'xlarge', 'xxlarge', 'default']),
12
- defaultPopupPosition: PropTypes.oneOf([['bottomCenter', 'bottomLeftToRight', 'bottomCenterToRight', 'bottomRightToLeft', 'bottomCenterToLeft', 'topCenter', 'topLeftToRight', 'topCenterToRight', 'topRightToLeft', 'topCenterToLeft', 'rightTopToBottom', 'rightCenterToBottom', 'rightCenter', 'rightBottomToTop', 'rightCenterToTop', 'leftTopToBottom', 'leftCenterToBottom', 'leftCenter', 'leftBottomToTop', 'leftCenterToTop', 'bottomRight', 'bottomLeft', 'topRight', 'topLeft', 'rightBottom', 'rightTop', 'leftBottom', 'leftTop']])
14
+ popupSize: PropTypes.oneOf(popupSize),
15
+ defaultPopupPosition: PropTypes.oneOf(popupPosition)
13
16
  };
14
17
  export default messageActionsMorePropTypes;
@@ -2,7 +2,7 @@
2
2
  import React, { useCallback } from 'react';
3
3
  /** ** Components *** */
4
4
 
5
- import { Container } from '@zohodesk/components/lib/Layout';
5
+ import { Container } from '@zohodesk/components/es/Layout';
6
6
  import MessageActionsMore from "../MessageActionsMore/MessageActionsMore";
7
7
  /** ** Hooks *** */
8
8
 
@@ -1,6 +1,6 @@
1
1
  /** ** Libraries *** */
2
2
  import PropTypes from 'prop-types';
3
- import '@zohodesk/components/lib/common/boxShadow.module.css';
3
+ import '@zohodesk/components/es/common/boxShadow.module.css';
4
4
  /* component pkg - default mode, themes */
5
5
 
6
6
  import '@zohodesk/components/assets/Appearance/light/themes/blue/blue_CTA_LightTheme.module.css';
@@ -64,7 +64,7 @@ import '@zohodesk/variables/assets/colorVariables.module.css';
64
64
  import '@zohodesk/variables/assets/dotVariables.module.css';
65
65
  import '@zohodesk/variables/assets/sizeVariables.module.css';
66
66
  import '@zohodesk/variables/assets/fontsizeVariables.module.css';
67
- import '@zohodesk/variables/lib/fontFamilyVariables.module.css';
67
+ import '@zohodesk/variables/es/fontFamilyVariables.module.css';
68
68
  import '@zohodesk/variables/assets/transitionVariables.module.css';
69
69
  import '@zohodesk/variables/assets/no_transitionVariables.module.css';
70
70
  export default function DeskAssets(props) {
@@ -1,11 +1,14 @@
1
1
  /** ** Libraries *** */
2
2
  import React, { useMemo, useCallback } from 'react';
3
+ /** ** Providers *** */
4
+
5
+ import ThemeContext from '@zohoim/chat-components-hooks/es/Theme/ThemeContext';
3
6
  /** ** Constants *** */
4
7
 
5
8
  import themeWrapperPropTypes from "./props/propTypes";
6
9
  import themeWrapperDefaultProps from "./props/defaultProps";
7
- import { styleTagId } from "./constants";
8
- import { MSG_ACTION_POPUP_PORTAL } from "../constants";
10
+ import { styleTagId } from '@zohoim/chat-components-utils/es/constants/themeConstants';
11
+ import { MSG_ACTION_POPUP_PORTAL, EDITOR_POPUP_PORTAL, EDITOR_POPUP_TARGET_PORTAL } from "../constants";
9
12
  /** ** Components *** */
10
13
 
11
14
  import ThemeAssets from "./ThemeAssets";
@@ -29,7 +32,8 @@ export default function ThemeWrapper(props) {
29
32
  theme: propTheme,
30
33
  modeKey,
31
34
  themeKey,
32
- tooltipCustomStyle
35
+ tooltipCustomStyle,
36
+ direction
33
37
  } = props;
34
38
  /** ** containerRef for Tooltip *** */
35
39
 
@@ -60,9 +64,13 @@ export default function ThemeWrapper(props) {
60
64
  });
61
65
  /** ** Children Render Functions *** */
62
66
 
63
- const renderPortal = useCallback(() => /*#__PURE__*/React.createElement("div", {
67
+ const renderPortal = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
64
68
  "data-portal": MSG_ACTION_POPUP_PORTAL
65
- }), []);
69
+ }), /*#__PURE__*/React.createElement("div", {
70
+ "data-portal": EDITOR_POPUP_PORTAL
71
+ }), /*#__PURE__*/React.createElement("div", {
72
+ "data-portal": EDITOR_POPUP_TARGET_PORTAL
73
+ })), []);
66
74
  const renderStyle = useCallback(() => /*#__PURE__*/React.createElement("style", {
67
75
  id: "zoho-im-variables"
68
76
  }, `${selector}{${customizedVariables}}`), [selector, customizedVariables]);
@@ -71,7 +79,12 @@ export default function ThemeWrapper(props) {
71
79
  customStyle: tooltipCustomStyle,
72
80
  getContainerRef: getContainerRef
73
81
  }) : null), [getContainerRef, needTooltip, needThemeAssets, tooltipCustomStyle]);
74
- return /*#__PURE__*/React.createElement("div", {
82
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
83
+ value: {
84
+ mode: propMode,
85
+ direction
86
+ }
87
+ }, /*#__PURE__*/React.createElement("div", {
75
88
  id: styleTagId,
76
89
  ...wrapperDivProps,
77
90
  style: {
@@ -80,7 +93,7 @@ export default function ThemeWrapper(props) {
80
93
  }
81
94
  }, renderStyle(), /*#__PURE__*/React.createElement(Container, {
82
95
  eleRef: containerRef
83
- }, children), renderPortal(), renderAssets());
96
+ }, children), renderPortal(), renderAssets()));
84
97
  }
85
98
  ThemeWrapper.propTypes = themeWrapperPropTypes;
86
99
  ThemeWrapper.defaultProps = themeWrapperDefaultProps;
@@ -9,7 +9,7 @@ import Tooltip from '@zohodesk/components/es/Tooltip/Tooltip';
9
9
  import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
10
10
  /** ** Methods *** */
11
11
 
12
- import { setLibraryConfig, getLibraryConfig } from '@zohodesk/components/lib/Provider/Config';
12
+ import { setLibraryConfig, getLibraryConfig } from '@zohodesk/components/es/Provider/Config';
13
13
  /** ** Constants *** */
14
14
 
15
15
  import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
@@ -5,6 +5,7 @@ const themeWrapperDefaultProps = {
5
5
  mode: 'LIGHT',
6
6
  theme: 'BLUE',
7
7
  needTooltip: true,
8
- tooltipCustomStyle: dummyObject
8
+ tooltipCustomStyle: dummyObject,
9
+ direction: 'ltr'
9
10
  };
10
11
  export default themeWrapperDefaultProps;
@@ -9,6 +9,7 @@ const themeWrapperPropTypes = {
9
9
  needTooltip: PropTypes.bool,
10
10
  themeConfigurations: PropTypes.object,
11
11
  themeKey: PropTypes.string,
12
- tooltipCustomStyle: PropTypes.object
12
+ tooltipCustomStyle: PropTypes.object,
13
+ direction: PropTypes.oneOf(['ltr', 'rtl'])
13
14
  };
14
15
  export default themeWrapperPropTypes;