@zohoim/chat-components 1.0.11-beta.1 → 1.1.0-beta.1

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 (134) hide show
  1. package/README.md +8 -0
  2. package/assets/Appearance/dark/mode/General_DarkMode.module.css +22 -0
  3. package/assets/Appearance/dark/themes/blue/blue_General_DarkTheme.module.css +5 -0
  4. package/assets/Appearance/dark/themes/green/green_General_DarkTheme.module.css +5 -0
  5. package/assets/Appearance/dark/themes/orange/orange_General_DarkTheme.module.css +5 -0
  6. package/assets/Appearance/dark/themes/red/red_General_DarkTheme.module.css +5 -0
  7. package/assets/Appearance/dark/themes/yellow/yellow_General_DarkTheme.module.css +5 -0
  8. package/assets/Appearance/light/mode/General_LightMode.module.css +22 -0
  9. package/assets/Appearance/light/themes/blue/blue_General_LightTheme.module.css +5 -0
  10. package/assets/Appearance/light/themes/green/green_General_LightTheme.module.css +5 -0
  11. package/assets/Appearance/light/themes/orange/orange_General_LightTheme.module.css +5 -0
  12. package/assets/Appearance/light/themes/red/red_General_LightTheme.module.css +5 -0
  13. package/assets/Appearance/light/themes/yellow/yellow_General_LightTheme.module.css +5 -0
  14. package/assets/Appearance/pureDark/mode/General_PureDarkMode.module.css +22 -0
  15. package/assets/Appearance/pureDark/themes/blue/blue_General_PureDarkTheme.module.css +5 -0
  16. package/assets/Appearance/pureDark/themes/green/green_General_PureDarkTheme.module.css +5 -0
  17. package/assets/Appearance/pureDark/themes/orange/orange_General_PureDarkTheme.module.css +5 -0
  18. package/assets/Appearance/pureDark/themes/red/red_General_PureDarkTheme.module.css +5 -0
  19. package/assets/Appearance/pureDark/themes/yellow/yellow_General_PureDarkTheme.module.css +5 -0
  20. package/es/AttachmentHandler/AttachmentHandler.js +84 -0
  21. package/es/AttachmentHandler/css/AttachmentHandler.module.css +27 -0
  22. package/es/AttachmentHandler/index.js +1 -0
  23. package/es/AttachmentHandler/props/defaultProps.js +10 -0
  24. package/es/AttachmentHandler/props/propTypes.js +17 -0
  25. package/es/AttachmentPreview/AttachmentPreview.js +121 -0
  26. package/es/AttachmentPreview/css/AttachmentPreview.module.css +39 -0
  27. package/es/AttachmentPreview/index.js +1 -0
  28. package/es/AttachmentPreview/props/defaultProps.js +9 -0
  29. package/es/AttachmentPreview/props/propTypes.js +33 -0
  30. package/es/AttachmentPreviewBody/AttachmentPreviewBody.js +97 -0
  31. package/es/AttachmentPreviewBody/css/AttachmentPreviewBody.module.css +71 -0
  32. package/es/AttachmentPreviewBody/index.js +1 -0
  33. package/es/AttachmentPreviewBody/props/defaultProps.js +7 -0
  34. package/es/AttachmentPreviewBody/props/propTypes.js +20 -0
  35. package/es/AttachmentPreviewHeader/AttachmentPreviewHeader.js +84 -0
  36. package/es/AttachmentPreviewHeader/css/AttachmentPreviewHeader.module.css +47 -0
  37. package/es/AttachmentPreviewHeader/index.js +1 -0
  38. package/es/AttachmentPreviewHeader/props/defaultProps.js +7 -0
  39. package/es/AttachmentPreviewHeader/props/propTypes.js +16 -0
  40. package/es/Emoji/Emoji.js +72 -0
  41. package/es/Emoji/css/Emoji.module.css +48 -0
  42. package/es/Emoji/css/cssJSLogic.js +18 -0
  43. package/es/Emoji/index.js +1 -0
  44. package/es/Emoji/props/defaultProps.js +8 -0
  45. package/es/Emoji/props/propTypes.js +16 -0
  46. package/es/EmojiPopup/EmojiPopup.js +115 -0
  47. package/es/EmojiPopup/css/EmojiPopup.module.css +55 -0
  48. package/es/EmojiPopup/index.js +1 -0
  49. package/es/EmojiPopup/props/defaultProps.js +11 -0
  50. package/es/EmojiPopup/props/propTypes.js +21 -0
  51. package/es/Emojis/Emojis.js +81 -0
  52. package/es/Emojis/index.js +1 -0
  53. package/es/Emojis/props/defaultProps.js +10 -0
  54. package/es/Emojis/props/propTypes.js +20 -0
  55. package/es/EmojisEmptyState/EmojisEmptyState.js +50 -0
  56. package/es/EmojisEmptyState/css/EmojisEmptyState.module.css +18 -0
  57. package/es/EmojisEmptyState/index.js +1 -0
  58. package/es/EmojisEmptyState/props/defaultProps.js +9 -0
  59. package/es/EmojisEmptyState/props/propTypes.js +8 -0
  60. package/es/EmojisFooter/EmojisFooter.js +71 -0
  61. package/es/EmojisFooter/css/EmojisFooter.module.css +40 -0
  62. package/es/EmojisFooter/index.js +1 -0
  63. package/es/EmojisFooter/props/defaultProps.js +7 -0
  64. package/es/EmojisFooter/props/propTypes.js +12 -0
  65. package/es/EmojisHeader/EmojisHeader.js +65 -0
  66. package/es/EmojisHeader/css/EmojisHeader.module.css +36 -0
  67. package/es/EmojisHeader/index.js +1 -0
  68. package/es/EmojisHeader/props/defaultProps.js +8 -0
  69. package/es/EmojisHeader/props/propTypes.js +13 -0
  70. package/es/EmojisList/EmojisList.js +130 -0
  71. package/es/EmojisList/css/EmojisList.module.css +50 -0
  72. package/es/EmojisList/css/cssJSLogic.js +25 -0
  73. package/es/EmojisList/index.js +1 -0
  74. package/es/EmojisList/props/defaultProps.js +10 -0
  75. package/es/EmojisList/props/propTypes.js +20 -0
  76. package/es/MessageActionsMore/MessageActionsMore.js +2 -2
  77. package/es/MessageActionsMore/props/propTypes.js +5 -2
  78. package/es/MessageActionsWrapper/MessageActionsWrapper.js +1 -1
  79. package/es/Theme/ThemeAssets.js +2 -2
  80. package/es/Theme/ThemeWrapper.js +20 -7
  81. package/es/Theme/TooltipWrapper.js +1 -1
  82. package/es/Theme/props/defaultProps.js +2 -1
  83. package/es/Theme/props/propTypes.js +2 -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/lib/index.js +156 -0
  133. package/package.json +7 -7
  134. package/es/Theme/constants/index.js +0 -41
@@ -0,0 +1,40 @@
1
+ .footerTab {
2
+ position: relative;
3
+ border-top: 1px solid var(--imlib_chat_components_common_border);
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_emoji_tab_line_color);
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 var(--imlib_chat_components_common_border);
4
+ }
5
+
6
+ .emojisSearch {
7
+ position: relative;
8
+ background-color: var(--imlib_chat_components_emoji_popup_search_bg);
9
+ }
10
+
11
+ .searchInput {
12
+ box-sizing: border-box;
13
+ min-height: var(--zd_size38) ;
14
+ outline: 0;
15
+ }
16
+
17
+ [dir=ltr] .searchInput {
18
+ padding-left: var(--zd_size31) ;
19
+ }
20
+
21
+ [dir=rtl] .searchInput {
22
+ padding-right: var(--zd_size31) ;
23
+ }
24
+
25
+ .searchIcon {
26
+ position: absolute;
27
+ color: var(--imlib_chat_components_primary_text);
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
  import "../../assets/Appearance/dark/mode/General_DarkMode.module.css";
@@ -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
 
@@ -62,9 +66,13 @@ export default function ThemeWrapper(props) {
62
66
  });
63
67
  /** ** Children Render Functions *** */
64
68
 
65
- const renderPortal = useCallback(() => /*#__PURE__*/React.createElement("div", {
69
+ const renderPortal = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
66
70
  "data-portal": MSG_ACTION_POPUP_PORTAL
67
- }), []);
71
+ }), /*#__PURE__*/React.createElement("div", {
72
+ "data-portal": EDITOR_POPUP_PORTAL
73
+ }), /*#__PURE__*/React.createElement("div", {
74
+ "data-portal": EDITOR_POPUP_TARGET_PORTAL
75
+ })), []);
68
76
  const renderStyle = useCallback(() => customizedVariables ? /*#__PURE__*/React.createElement("style", {
69
77
  id: "zoho-im-variables"
70
78
  }, `${selector}{${customizedVariables}}`) : null, [selector, customizedVariables]);
@@ -73,7 +81,12 @@ export default function ThemeWrapper(props) {
73
81
  customStyle: tooltipCustomStyle,
74
82
  getContainerRef: getContainerRef
75
83
  }) : null), [getContainerRef, needTooltip, needThemeAssets, tooltipCustomStyle]);
76
- return /*#__PURE__*/React.createElement("div", {
84
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
85
+ value: {
86
+ mode: propMode,
87
+ direction
88
+ }
89
+ }, /*#__PURE__*/React.createElement("div", {
77
90
  id: styleTagId,
78
91
  ...wrapperDivProps,
79
92
  style: {
@@ -82,7 +95,7 @@ export default function ThemeWrapper(props) {
82
95
  }
83
96
  }, renderStyle(), /*#__PURE__*/React.createElement(Container, {
84
97
  eleRef: containerRef
85
- }, children), renderPortal(), renderAssets());
98
+ }, children), renderPortal(), renderAssets()));
86
99
  }
87
100
  ThemeWrapper.propTypes = themeWrapperPropTypes;
88
101
  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;
@@ -1,4 +1,4 @@
1
- import { modeConstants, themeConstants } from "../constants";
1
+ import { modeConstants, themeConstants } from '@zohoim/chat-components-utils/es/constants/themeConstants';
2
2
  const modeMapping = {
3
3
  [modeConstants.LIGHT]: 'light',
4
4
  [modeConstants.DARK]: 'dark',
@@ -1 +1,8 @@
1
- export const MSG_ACTION_POPUP_PORTAL = 'MSG_ACTION_POPUP_PORTAL';
1
+ export const MSG_ACTION_POPUP_PORTAL = 'MSG_ACTION_POPUP_PORTAL';
2
+ export const EDITOR_POPUP_PORTAL = 'EDITOR_POPUP_PORTAL';
3
+ export const EDITOR_POPUP_TARGET_PORTAL = 'EDITOR_POPUP_TARGET_PORTAL';
4
+ const version = '1.4.9';
5
+ export const defaultEditorURL = // `https://static.localzohocdn.com/rtelibrary/${version}/js/rte.js`;
6
+ // `https://static.zohocdn.com/rtelibrary/${version}/js/rte.js`;
7
+ // `https://static.localzohocdn.com/rtelibrary/${version}/js/rte.min.js`;
8
+ `https://static.zohocdn.com/rtelibrary/${version}/js/rte.min.js`;
@@ -0,0 +1,3 @@
1
+ export const formats = ['strong', 'em', 'underline', 'link', 'strikeThrough', 'align', 'fontSize', 'fontFamily', 'fontColor', 'highlight', 'script', 'lineHeight', 'direction', 'headings', 'clearFormatting', 'inlineQuote', 'indent', 'formatPainter'];
2
+ export const features = ['hr', 'images', 'tables', 'list', 'code_block', 'video', 'blockquote', 'embed', 'html'];
3
+ export const langCode = ['en_US', 'ar', 'as', 'bg', 'bn', 'brx', 'ca', 'cs', 'da', 'de', 'doi', 'el', 'es', 'et', 'fi', 'fr', 'ga', 'gu', 'hi', 'hr', 'hu', 'id', 'in', 'it', 'iw', 'ja', 'kn', 'ko', 'kok', 'ks', 'lt', 'mai', 'ml', 'mni', 'mr', 'ms', 'my', 'ne', 'nl', 'no', 'or', 'pa', 'pl', 'pt_BR', 'pt', 'ro', 'ru', 'sa', 'sat', 'sd', 'si', 'sk', 'sv', 'ta', 'te', 'th', 'tr', 'uk', 'ur', 'vi', 'zh_CN', 'zh_HK', 'zh_TW', 'zh'];
@@ -0,0 +1,2 @@
1
+ export const popupSize = ['mini', 'xmini', 'xsmall', 'small', 'medium', 'large', 'mlarge', 'xlarge', 'xxlarge', 'default'];
2
+ export const popupPosition = ['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'];