@elliemae/ds-chat 2.3.0-next.1 → 2.3.0-next.14

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 (238) hide show
  1. package/cjs/{parts → exported-related}/bubble/ChatBubble.js +8 -10
  2. package/cjs/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  3. package/cjs/{parts → exported-related}/bubble/index.js +0 -0
  4. package/cjs/exported-related/bubble/props.js +43 -0
  5. package/cjs/{parts → exported-related}/bubble/styled.js +9 -9
  6. package/cjs/{parts → exported-related}/chat-card/ChatCard.js +6 -7
  7. package/cjs/{parts → exported-related}/chat-card/index.js +0 -0
  8. package/cjs/exported-related/chat-card/props.js +22 -0
  9. package/cjs/{parts → exported-related}/chat-card/styled.js +6 -6
  10. package/cjs/{parts → exported-related}/chat-container-header/ChatContainerHeader.js +21 -7
  11. package/cjs/exported-related/chat-container-header/props.js +16 -0
  12. package/cjs/{parts → exported-related}/chat-container-header/styled.js +4 -4
  13. package/cjs/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +8 -10
  14. package/cjs/exported-related/chat-empty-state/props.js +18 -0
  15. package/cjs/{parts → exported-related}/chat-empty-state/styled.js +2 -2
  16. package/cjs/{parts → exported-related}/chat-sidebar/SideBarChat.js +10 -11
  17. package/cjs/{parts → exported-related}/chat-sidebar/index.js +0 -0
  18. package/cjs/{parts → exported-related}/chat-sidebar/props.js +2 -5
  19. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/SidebarButton.js +1 -1
  20. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  21. package/cjs/exported-related/chat-sidebar/sidebar-button/props.js +25 -0
  22. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +4 -4
  23. package/cjs/{parts → exported-related}/chat-sidebar/styled.js +2 -2
  24. package/cjs/{parts → exported-related}/floating-button/FloatingButton.js +13 -6
  25. package/cjs/{parts → exported-related}/floating-button/index.js +1 -0
  26. package/cjs/{parts → exported-related}/floating-button/props.js +0 -0
  27. package/cjs/{parts → exported-related}/floating-button/styled.js +1 -1
  28. package/cjs/{parts → exported-related}/floating-container/styled.js +1 -1
  29. package/cjs/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  30. package/cjs/{parts → exported-related}/grid-influencer/styled.js +2 -2
  31. package/cjs/exported-related/index.js +37 -0
  32. package/cjs/exported-related/message-delimiter/MessageDelimiter.js +53 -0
  33. package/cjs/{parts → exported-related}/message-delimiter/index.js +0 -0
  34. package/cjs/exported-related/message-delimiter/props.js +33 -0
  35. package/cjs/{parts → exported-related}/message-delimiter/styled.js +3 -3
  36. package/cjs/{parts → exported-related}/system-message/SystemMessage.js +6 -8
  37. package/cjs/{parts → exported-related}/system-message/index.js +0 -0
  38. package/cjs/{parts → exported-related}/system-message/props.js +0 -0
  39. package/cjs/{parts → exported-related}/system-message/style.js +5 -5
  40. package/cjs/{parts → exported-related}/tile-button/TileButton.js +7 -9
  41. package/cjs/{parts → exported-related}/tile-button/index.js +0 -0
  42. package/cjs/exported-related/tile-button/props.js +55 -0
  43. package/cjs/{parts → exported-related}/tile-button/styled.js +9 -9
  44. package/cjs/index.js +29 -18
  45. package/cjs/parts/chat-composer/ChatContainerComposer.js +7 -9
  46. package/cjs/parts/chat-container/ChatContainer.js +18 -20
  47. package/cjs/parts/chat-container/styled.js +2 -2
  48. package/cjs/parts/chat-container-messages-list/ChatContainerMessagesList.js +83 -70
  49. package/cjs/parts/chat-container-messages-list/styled.js +9 -5
  50. package/cjs/parts/chat-container-messages-list/useGetNewMessages.js +28 -0
  51. package/cjs/parts/index.js +16 -0
  52. package/cjs/react-desc-prop-types.js +116 -0
  53. package/esm/{parts → exported-related}/bubble/ChatBubble.js +7 -9
  54. package/esm/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  55. package/esm/{parts → exported-related}/bubble/index.js +0 -0
  56. package/esm/{parts → exported-related}/bubble/props.js +14 -24
  57. package/esm/{parts → exported-related}/bubble/styled.js +9 -9
  58. package/esm/{parts → exported-related}/chat-card/ChatCard.js +4 -5
  59. package/esm/{parts → exported-related}/chat-card/index.js +0 -0
  60. package/esm/{parts → exported-related}/chat-card/props.js +9 -2
  61. package/esm/{parts → exported-related}/chat-card/styled.js +6 -6
  62. package/esm/exported-related/chat-container-header/ChatContainerHeader.js +43 -0
  63. package/esm/exported-related/chat-container-header/props.js +11 -0
  64. package/esm/{parts → exported-related}/chat-container-header/styled.js +4 -4
  65. package/esm/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +7 -9
  66. package/esm/exported-related/chat-empty-state/props.js +13 -0
  67. package/esm/{parts → exported-related}/chat-empty-state/styled.js +2 -2
  68. package/esm/{parts → exported-related}/chat-sidebar/SideBarChat.js +8 -9
  69. package/esm/{parts → exported-related}/chat-sidebar/index.js +0 -0
  70. package/esm/{parts → exported-related}/chat-sidebar/props.js +2 -5
  71. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/SidebarButton.js +1 -1
  72. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  73. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/props.js +3 -4
  74. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +4 -4
  75. package/esm/{parts → exported-related}/chat-sidebar/styled.js +2 -2
  76. package/esm/exported-related/floating-button/FloatingButton.js +33 -0
  77. package/esm/exported-related/floating-button/index.js +1 -0
  78. package/esm/{parts → exported-related}/floating-button/props.js +0 -0
  79. package/esm/{parts → exported-related}/floating-button/styled.js +1 -1
  80. package/esm/{parts → exported-related}/floating-container/styled.js +1 -1
  81. package/esm/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  82. package/esm/{parts → exported-related}/grid-influencer/styled.js +2 -2
  83. package/esm/exported-related/index.js +11 -0
  84. package/esm/exported-related/message-delimiter/MessageDelimiter.js +43 -0
  85. package/esm/{parts → exported-related}/message-delimiter/index.js +0 -0
  86. package/esm/exported-related/message-delimiter/props.js +24 -0
  87. package/esm/{parts → exported-related}/message-delimiter/styled.js +3 -3
  88. package/esm/{parts → exported-related}/system-message/SystemMessage.js +4 -6
  89. package/esm/{parts → exported-related}/system-message/index.js +0 -0
  90. package/esm/{parts → exported-related}/system-message/props.js +0 -0
  91. package/esm/{parts → exported-related}/system-message/style.js +5 -5
  92. package/esm/{parts → exported-related}/tile-button/TileButton.js +5 -7
  93. package/esm/{parts → exported-related}/tile-button/index.js +0 -0
  94. package/esm/{parts → exported-related}/tile-button/props.js +3 -3
  95. package/esm/{parts → exported-related}/tile-button/styled.js +9 -9
  96. package/esm/index.js +14 -12
  97. package/esm/parts/chat-composer/ChatContainerComposer.js +9 -11
  98. package/esm/parts/chat-container/ChatContainer.js +16 -18
  99. package/esm/parts/chat-container/styled.js +2 -2
  100. package/esm/parts/chat-container-messages-list/ChatContainerMessagesList.js +81 -68
  101. package/esm/parts/chat-container-messages-list/styled.js +9 -6
  102. package/esm/parts/chat-container-messages-list/useGetNewMessages.js +24 -0
  103. package/esm/parts/index.js +3 -0
  104. package/esm/react-desc-prop-types.js +103 -0
  105. package/package.json +173 -217
  106. package/types/exported-related/bubble/ChatBubble.d.ts +5 -0
  107. package/types/{parts → exported-related}/bubble/ChatBubbleArrow.d.ts +1 -1
  108. package/types/{parts → exported-related}/bubble/index.d.ts +0 -0
  109. package/types/exported-related/bubble/props.d.ts +33 -0
  110. package/types/{parts → exported-related}/bubble/styled.d.ts +11 -7
  111. package/types/{parts → exported-related}/bubble/tests/ChatBubble.test.d.ts +0 -0
  112. package/types/exported-related/chat-card/ChatCard.d.ts +5 -0
  113. package/types/{parts → exported-related}/chat-card/index.d.ts +0 -0
  114. package/types/exported-related/chat-card/props.d.ts +14 -0
  115. package/types/{parts → exported-related}/chat-card/styled.d.ts +0 -0
  116. package/types/exported-related/chat-container-header/ChatContainerHeader.d.ts +5 -0
  117. package/types/exported-related/chat-container-header/props.d.ts +10 -0
  118. package/types/{parts → exported-related}/chat-container-header/styled.d.ts +0 -0
  119. package/types/exported-related/chat-container-header/tests/ChatContainerHeader.test.d.ts +1 -0
  120. package/types/exported-related/chat-empty-state/ChatEmptyState.d.ts +5 -0
  121. package/types/exported-related/chat-empty-state/props.d.ts +10 -0
  122. package/types/{parts → exported-related}/chat-empty-state/styled.d.ts +0 -0
  123. package/types/exported-related/chat-sidebar/SideBarChat.d.ts +5 -0
  124. package/types/{parts → exported-related}/chat-sidebar/index.d.ts +0 -0
  125. package/types/{parts → exported-related}/chat-sidebar/props.d.ts +4 -4
  126. package/types/exported-related/chat-sidebar/sidebar-button/SidebarButton.d.ts +13 -0
  127. package/types/{parts → exported-related/chat-sidebar}/sidebar-button/index.d.ts +0 -0
  128. package/types/exported-related/chat-sidebar/sidebar-button/props.d.ts +18 -0
  129. package/types/{parts → exported-related/chat-sidebar}/sidebar-button/styled.d.ts +0 -0
  130. package/types/{parts → exported-related}/chat-sidebar/styled.d.ts +0 -0
  131. package/types/exported-related/floating-button/FloatingButton.d.ts +5 -0
  132. package/types/{parts → exported-related}/floating-button/index.d.ts +0 -0
  133. package/types/{parts → exported-related}/floating-button/props.d.ts +0 -0
  134. package/types/{parts → exported-related}/floating-button/styled.d.ts +0 -0
  135. package/types/exported-related/floating-container/styled.d.ts +2 -0
  136. package/types/{parts → exported-related}/grid-influencer/InfluencerContainer.d.ts +0 -0
  137. package/types/{parts → exported-related}/grid-influencer/styled.d.ts +0 -0
  138. package/types/exported-related/index.d.ts +10 -0
  139. package/types/exported-related/message-delimiter/MessageDelimiter.d.ts +5 -0
  140. package/types/{parts → exported-related}/message-delimiter/index.d.ts +0 -0
  141. package/types/exported-related/message-delimiter/props.d.ts +371 -0
  142. package/types/{parts → exported-related}/message-delimiter/styled.d.ts +0 -0
  143. package/types/exported-related/system-message/SystemMessage.d.ts +5 -0
  144. package/types/{parts → exported-related}/system-message/index.d.ts +0 -0
  145. package/types/{parts → exported-related}/system-message/props.d.ts +0 -0
  146. package/types/{parts → exported-related}/system-message/style.d.ts +0 -0
  147. package/types/exported-related/tile-button/TileButton.d.ts +5 -0
  148. package/types/{parts → exported-related}/tile-button/index.d.ts +0 -0
  149. package/types/exported-related/tile-button/props.d.ts +46 -0
  150. package/types/{parts → exported-related}/tile-button/styled.d.ts +1 -1
  151. package/types/index.d.ts +4 -13
  152. package/types/parts/chat-composer/ChatContainerComposer.d.ts +4 -59
  153. package/types/parts/chat-composer/styled.d.ts +4 -3
  154. package/types/parts/chat-container/ChatContainer.d.ts +4 -62
  155. package/types/parts/chat-container-messages-list/ChatContainerMessagesList.d.ts +4 -47
  156. package/types/parts/chat-container-messages-list/index.d.ts +1 -1
  157. package/types/parts/chat-container-messages-list/styled.d.ts +2 -2
  158. package/types/parts/chat-container-messages-list/useGetNewMessages.d.ts +2 -0
  159. package/types/parts/index.d.ts +3 -0
  160. package/types/react-desc-prop-types.d.ts +838 -0
  161. package/cjs/index.d.js +0 -2
  162. package/cjs/parts/bubble/config/useValidateProps.js +0 -31
  163. package/cjs/parts/bubble/props.js +0 -57
  164. package/cjs/parts/chat-card/config/useValidateProps.js +0 -11
  165. package/cjs/parts/chat-card/props.js +0 -14
  166. package/cjs/parts/chat-composer/config/useValidateProps.js +0 -11
  167. package/cjs/parts/chat-composer/props.js +0 -44
  168. package/cjs/parts/chat-container/config/useValidateProps.js +0 -11
  169. package/cjs/parts/chat-container/index.js +0 -10
  170. package/cjs/parts/chat-container/props.js +0 -49
  171. package/cjs/parts/chat-container-header/helpers.js +0 -31
  172. package/cjs/parts/chat-container-messages-list/config/useValidateProps.js +0 -11
  173. package/cjs/parts/chat-container-messages-list/props.js +0 -30
  174. package/cjs/parts/chat-empty-state/config/useValidateProps.js +0 -11
  175. package/cjs/parts/chat-empty-state/props.js +0 -17
  176. package/cjs/parts/chat-sidebar/config/useValidateProps.js +0 -11
  177. package/cjs/parts/message-delimiter/MessageDelimiter.js +0 -41
  178. package/cjs/parts/message-delimiter/config/useValidateProps.js +0 -11
  179. package/cjs/parts/message-delimiter/props.js +0 -23
  180. package/cjs/parts/sidebar-button/props.js +0 -30
  181. package/cjs/parts/system-message/config/useValidateProps.js +0 -11
  182. package/cjs/parts/tile-button/config/useValidateProps.js +0 -11
  183. package/cjs/parts/tile-button/props.js +0 -55
  184. package/cjs/prop-types.js +0 -33
  185. package/esm/index.d.js +0 -1
  186. package/esm/parts/bubble/config/useValidateProps.js +0 -27
  187. package/esm/parts/chat-card/config/useValidateProps.js +0 -7
  188. package/esm/parts/chat-composer/config/useValidateProps.js +0 -7
  189. package/esm/parts/chat-composer/props.js +0 -39
  190. package/esm/parts/chat-container/config/useValidateProps.js +0 -7
  191. package/esm/parts/chat-container/index.js +0 -1
  192. package/esm/parts/chat-container/props.js +0 -44
  193. package/esm/parts/chat-container-header/ChatContainerHeader.js +0 -31
  194. package/esm/parts/chat-container-header/helpers.js +0 -23
  195. package/esm/parts/chat-container-messages-list/config/useValidateProps.js +0 -7
  196. package/esm/parts/chat-container-messages-list/props.js +0 -25
  197. package/esm/parts/chat-empty-state/config/useValidateProps.js +0 -7
  198. package/esm/parts/chat-empty-state/props.js +0 -12
  199. package/esm/parts/chat-sidebar/config/useValidateProps.js +0 -7
  200. package/esm/parts/floating-button/FloatingButton.js +0 -27
  201. package/esm/parts/floating-button/index.js +0 -1
  202. package/esm/parts/message-delimiter/MessageDelimiter.js +0 -32
  203. package/esm/parts/message-delimiter/config/useValidateProps.js +0 -7
  204. package/esm/parts/message-delimiter/props.js +0 -18
  205. package/esm/parts/system-message/config/useValidateProps.js +0 -7
  206. package/esm/parts/tile-button/config/useValidateProps.js +0 -7
  207. package/esm/prop-types.js +0 -28
  208. package/types/index.d.d.ts +0 -37
  209. package/types/parts/bubble/ChatBubble.d.ts +0 -30
  210. package/types/parts/bubble/config/useValidateProps.d.ts +0 -2
  211. package/types/parts/bubble/props.d.ts +0 -52
  212. package/types/parts/chat-card/ChatCard.d.ts +0 -33
  213. package/types/parts/chat-card/config/useValidateProps.d.ts +0 -2
  214. package/types/parts/chat-card/props.d.ts +0 -29
  215. package/types/parts/chat-composer/config/useValidateProps.d.ts +0 -2
  216. package/types/parts/chat-container/config/useValidateProps.d.ts +0 -2
  217. package/types/parts/chat-container/index.d.ts +0 -1
  218. package/types/parts/chat-container-header/ChatContainerHeader.d.ts +0 -2
  219. package/types/parts/chat-container-header/helpers.d.ts +0 -6
  220. package/types/parts/chat-container-messages-list/config/useValidateProps.d.ts +0 -2
  221. package/types/parts/chat-empty-state/ChatEmptyState.d.ts +0 -21
  222. package/types/parts/chat-empty-state/config/useValidateProps.d.ts +0 -2
  223. package/types/parts/chat-empty-state/props.d.ts +0 -15
  224. package/types/parts/chat-sidebar/SideBarChat.d.ts +0 -48
  225. package/types/parts/chat-sidebar/config/useValidateProps.d.ts +0 -2
  226. package/types/parts/floating-button/FloatingButton.d.ts +0 -18
  227. package/types/parts/floating-container/styled.d.ts +0 -1
  228. package/types/parts/message-delimiter/MessageDelimiter.d.ts +0 -31
  229. package/types/parts/message-delimiter/config/useValidateProps.d.ts +0 -2
  230. package/types/parts/message-delimiter/props.d.ts +0 -26
  231. package/types/parts/sidebar-button/SidebarButton.d.ts +0 -24
  232. package/types/parts/sidebar-button/props.d.ts +0 -29
  233. package/types/parts/system-message/SystemMessage.d.ts +0 -23
  234. package/types/parts/system-message/config/useValidateProps.d.ts +0 -2
  235. package/types/parts/tile-button/TileButton.d.ts +0 -75
  236. package/types/parts/tile-button/config/useValidateProps.d.ts +0 -2
  237. package/types/parts/tile-button/props.d.ts +0 -88
  238. package/types/prop-types.d.ts +0 -33
@@ -11,14 +11,13 @@ var _jsx = require('@babel/runtime/helpers/jsx');
11
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
12
  var React = require('react');
13
13
  var lodash = require('lodash');
14
- var reactDesc = require('react-desc');
14
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
15
15
  var DSIndeterminateProgressIndicator = require('@elliemae/ds-indeterminate-progress-indicator');
16
16
  var DSBanner = require('@elliemae/ds-banner');
17
17
  var ChatContainerComposer = require('../chat-composer/ChatContainerComposer.js');
18
18
  var ChatContainerMessagesList = require('../chat-container-messages-list/ChatContainerMessagesList.js');
19
- var props = require('./props.js');
19
+ var reactDescPropTypes = require('../../react-desc-prop-types.js');
20
20
  var styled = require('./styled.js');
21
- var useValidateProps = require('./config/useValidateProps.js');
22
21
  var jsxRuntime = require('react/jsx-runtime');
23
22
 
24
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -35,10 +34,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
35
34
 
36
35
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
36
 
38
- const ChatContainer = props$1 => {
37
+ const ChatContainer = props => {
39
38
  var _messagesListProps$me2, _containerRef$current;
40
39
 
41
- useValidateProps.useValidateProps(props$1, props.containerProps);
40
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, reactDescPropTypes.defaultProps);
41
+ dsPropsHelpers.useValidateTypescriptPropTypes(propsWithDefault, reactDescPropTypes.ChatContainerPropTypes);
42
+ const globalAttributes = dsPropsHelpers.useGetGlobalAttributes(propsWithDefault);
42
43
  const {
43
44
  sendingText,
44
45
  sendingMessages,
@@ -54,9 +55,8 @@ const ChatContainer = props$1 => {
54
55
  device,
55
56
  isLoading,
56
57
  hasMoreItems,
57
- getMoreMessages,
58
- ariaLabel
59
- } = props$1;
58
+ getMoreMessages
59
+ } = propsWithDefault;
60
60
  const bannerRef = React__default["default"].useRef({
61
61
  focusOnWrapper: lodash.noop,
62
62
  focusOnLink: lodash.noop
@@ -108,11 +108,10 @@ const ChatContainer = props$1 => {
108
108
  actionRef.current.focusOnBannerLink = bannerRef.current.focusOnLink;
109
109
  }
110
110
  }, [actionRef]);
111
- return /*#__PURE__*/jsxRuntime.jsxs(Container, {
111
+ return /*#__PURE__*/jsxRuntime.jsxs(Container, _objectSpread(_objectSpread({}, globalAttributes), {}, {
112
112
  rows: ['minmax(0, 1fr)', 'auto'],
113
113
  ref: containerRef,
114
114
  role: "region",
115
- "aria-label": ariaLabel,
116
115
  children: [/*#__PURE__*/_jsx__default["default"]("div", {
117
116
  style: {
118
117
  position: 'relative',
@@ -127,7 +126,7 @@ const ChatContainer = props$1 => {
127
126
  sendingText: sendingText,
128
127
  bannerPosition: bannerPosition,
129
128
  bannerRef: bannerRef
130
- })), ['top', 'bottom'].includes(isLoading) ? /*#__PURE__*/_jsx__default["default"](styled.StyledIndicatorContainer, {
129
+ })), isLoading && ['top', 'bottom'].includes(isLoading) ? /*#__PURE__*/_jsx__default["default"](styled.StyledIndicatorContainer, {
131
130
  isLoading: isLoading,
132
131
  "data-testid": "ds-chat-loading-indicator"
133
132
  }, void 0, _DSIndeterminateProgr || (_DSIndeterminateProgr = /*#__PURE__*/_jsx__default["default"](DSIndeterminateProgressIndicator__default["default"], {
@@ -138,17 +137,17 @@ const ChatContainer = props$1 => {
138
137
  isLoading: bannerPosition
139
138
  }, void 0, /*#__PURE__*/_jsx__default["default"](DSBanner__default["default"], {
140
139
  showCloseButton: true,
141
- label: bannerProps.label || 'Unread messages',
140
+ label: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.label) || 'Unread messages',
142
141
  containerProps: {
143
142
  id: 'ds-chat-banner'
144
143
  },
145
144
  actionLink: {
146
- label: bannerProps.viewLabel || 'View',
147
- onClick: bannerProps.onView
145
+ label: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.viewLabel) || 'View',
146
+ onClick: bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.onView
148
147
  },
149
- onClose: bannerProps.onClose,
148
+ onClose: bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.onClose,
150
149
  isOpen: true,
151
- type: bannerProps.type || DSBanner.BANNER_TYPES.INFO,
150
+ type: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.type) || DSBanner.BANNER_TYPES.INFO,
152
151
  actionRef: bannerRef
153
152
  })), sendingMessages && sendingMessages.length > 0 ? /*#__PURE__*/_jsx__default["default"](styled.StyledIndicatorContainer, {
154
153
  isLoading: "bottom",
@@ -164,12 +163,11 @@ const ChatContainer = props$1 => {
164
163
  maxHeight: (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.clientHeight) || 0) / 2,
165
164
  actionRef: actionRef || listRef
166
165
  }))]
167
- });
166
+ }));
168
167
  };
169
168
 
170
- ChatContainer.defaultProps = props.defaultProps;
171
- const ChatContainerWithSchema = reactDesc.describe(ChatContainer);
172
- ChatContainerWithSchema.propTypes = props.containerProps;
169
+ const ChatContainerWithSchema = dsPropsHelpers.describe(ChatContainer);
170
+ ChatContainerWithSchema.propTypes = reactDescPropTypes.ChatContainerPropTypes;
173
171
 
174
172
  exports.ChatContainer = ChatContainer;
175
173
  exports.ChatContainerWithSchema = ChatContainerWithSchema;
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var styled = require('styled-components');
6
6
  var dsGrid = require('@elliemae/ds-grid');
7
- var styled$1 = require('../bubble/styled.js');
7
+ var styled$1 = require('../../exported-related/bubble/styled.js');
8
8
  var styled$2 = require('../chat-composer/styled.js');
9
- var style = require('../system-message/style.js');
9
+ var style = require('../../exported-related/system-message/style.js');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
12
 
@@ -16,16 +16,17 @@ require('core-js/modules/esnext.iterator.find.js');
16
16
  require('core-js/modules/esnext.async-iterator.filter.js');
17
17
  require('core-js/modules/esnext.iterator.filter.js');
18
18
  var React = require('react');
19
- var reactDesc = require('react-desc');
19
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
20
20
  var reactVirtual = require('react-virtual');
21
21
  var DSButton = require('@elliemae/ds-button');
22
22
  var lodash = require('lodash');
23
- var ChatBubble = require('../bubble/ChatBubble.js');
24
- var props$1 = require('../bubble/props.js');
25
- var MessageDelimiter = require('../message-delimiter/MessageDelimiter.js');
26
- var SystemMessage = require('../system-message/SystemMessage.js');
23
+ var ChatBubble = require('../../exported-related/bubble/ChatBubble.js');
24
+ var props = require('../../exported-related/bubble/props.js');
25
+ var MessageDelimiter = require('../../exported-related/message-delimiter/MessageDelimiter.js');
26
+ var SystemMessage = require('../../exported-related/system-message/SystemMessage.js');
27
27
  var styled = require('./styled.js');
28
- var props = require('./props.js');
28
+ var reactDescPropTypes = require('../../react-desc-prop-types.js');
29
+ var useGetNewMessages = require('./useGetNewMessages.js');
29
30
  var jsxRuntime = require('react/jsx-runtime');
30
31
 
31
32
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -53,7 +54,10 @@ const getPadding = _ref => {
53
54
  return padding;
54
55
  };
55
56
 
56
- const ChatContainerMessagesList = props => {
57
+ const ChatContainerMessagesList = props$1 => {
58
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props$1, reactDescPropTypes.defaultPropsMessagesList);
59
+ dsPropsHelpers.useValidateTypescriptPropTypes(propsWithDefault, reactDescPropTypes.ChatContainerMessagesListPropTypes);
60
+ const globalAttributes = dsPropsHelpers.useGetGlobalAttributes(propsWithDefault);
57
61
  const {
58
62
  sendingText,
59
63
  bannerPosition,
@@ -65,7 +69,7 @@ const ChatContainerMessagesList = props => {
65
69
  hasMoreItems,
66
70
  isLoading,
67
71
  bannerRef
68
- } = props;
72
+ } = propsWithDefault;
69
73
  const pendingOnScroll = React__default["default"].useRef(false);
70
74
  const loadMoreRef = React__default["default"].useRef(null);
71
75
  const virtualListRef = React__default["default"].useRef(); // estimateSize should not be really required given what was stated on
@@ -76,7 +80,7 @@ const ChatContainerMessagesList = props => {
76
80
  totalSize,
77
81
  virtualItems
78
82
  } = reactVirtual.useVirtual(_objectSpread(_objectSpread({
79
- size: messages.length,
83
+ size: messages === null || messages === void 0 ? void 0 : messages.length,
80
84
  parentRef: virtualListRef,
81
85
  overscan: 15
82
86
  }, getPadding({
@@ -86,6 +90,7 @@ const ChatContainerMessagesList = props => {
86
90
  })), {}, {
87
91
  estimateSize: React__default["default"].useCallback(() => 80, [])
88
92
  }));
93
+ const newMessages = useGetNewMessages.useGetNewMessages(messages);
89
94
  const debouncedScroll = React__default["default"].useMemo(() => lodash.debounce(() => {
90
95
  var _virtualListRef$curre;
91
96
 
@@ -126,6 +131,9 @@ const ChatContainerMessagesList = props => {
126
131
  onlyFocus(index);
127
132
  onScrollStop();
128
133
  }, [onScrollStop, onlyFocus, vScroll]);
134
+ const checkPendingOnScroll = React__default["default"].useCallback(() => {
135
+ if (pendingOnScroll.current === true) onScrollStop();
136
+ }, [onScrollStop]);
129
137
  React__default["default"].useEffect(() => {
130
138
  if (actionRef && actionRef.current) {
131
139
  actionRef.current.scrollToIndex = function (a) {
@@ -155,6 +163,26 @@ const ChatContainerMessagesList = props => {
155
163
  };
156
164
  }
157
165
  }, [actionRef, onScrollStop, onlyFocus, scrollAndFocus, vScroll]);
166
+ React__default["default"].useEffect(() => {
167
+ let handlerCallback = null;
168
+ const localVirtualRef = virtualListRef.current;
169
+
170
+ const onScroll = () => {
171
+ if (handlerCallback) clearTimeout(handlerCallback);
172
+ handlerCallback = setTimeout(onScrollStop, 300);
173
+ };
174
+
175
+ if (onScrollEnds) {
176
+ virtualListRef.current.addEventListener('scroll', onScroll);
177
+ }
178
+
179
+ document.addEventListener('visibilitychange', checkPendingOnScroll);
180
+ return () => {
181
+ if (handlerCallback) clearTimeout(handlerCallback);
182
+ if (onScrollEnds) localVirtualRef.removeEventListener('scroll', onScroll);
183
+ document.removeEventListener('visibilitychange', checkPendingOnScroll);
184
+ };
185
+ }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
158
186
  const handleKey = React__default["default"].useCallback(e => {
159
187
  const {
160
188
  key
@@ -181,7 +209,7 @@ const ChatContainerMessagesList = props => {
181
209
  case 'ArrowDown':
182
210
  e.preventDefault();
183
211
 
184
- if (index < messages.length - 1) {
212
+ if (index < (messages === null || messages === void 0 ? void 0 : messages.length) - 1) {
185
213
  virtualListRef.current.querySelector("[data-index=\"".concat(index + 1, "\"]")).focus();
186
214
  }
187
215
 
@@ -194,7 +222,7 @@ const ChatContainerMessagesList = props => {
194
222
 
195
223
  case 'End':
196
224
  e.preventDefault();
197
- scrollAndFocus(messages.length - 1);
225
+ scrollAndFocus((messages === null || messages === void 0 ? void 0 : messages.length) - 1);
198
226
  break;
199
227
 
200
228
  case 'Tab':
@@ -203,10 +231,17 @@ const ChatContainerMessagesList = props => {
203
231
 
204
232
  e.preventDefault();
205
233
  (_loadMoreRef$current2 = loadMoreRef.current) === null || _loadMoreRef$current2 === void 0 ? void 0 : _loadMoreRef$current2.focus();
206
- } else if (hasMoreItems === 'top' && e.shiftKey) ; else if (!e.shiftKey) {
234
+ } else if (hasMoreItems === 'top' && e.shiftKey) {
235
+ var _loadMoreRef$current3;
236
+
237
+ e.preventDefault();
238
+ (_loadMoreRef$current3 = loadMoreRef.current) === null || _loadMoreRef$current3 === void 0 ? void 0 : _loadMoreRef$current3.focus();
239
+ } else if (!e.shiftKey) {
207
240
  if (bannerPosition) {
241
+ var _bannerRef$current;
242
+
208
243
  e.preventDefault();
209
- bannerRef.current.focusOnWrapper();
244
+ bannerRef === null || bannerRef === void 0 ? void 0 : (_bannerRef$current = bannerRef.current) === null || _bannerRef$current === void 0 ? void 0 : _bannerRef$current.focusOnWrapper();
210
245
  }
211
246
  } else {
212
247
  var _virtualListRef$curre4;
@@ -217,7 +252,7 @@ const ChatContainerMessagesList = props => {
217
252
 
218
253
  break;
219
254
  }
220
- }, [bannerRef, hasMoreItems, messages.length, bannerPosition, scrollAndFocus]);
255
+ }, [bannerRef, hasMoreItems, messages === null || messages === void 0 ? void 0 : messages.length, bannerPosition, scrollAndFocus]);
221
256
  const handleListKey = React__default["default"].useCallback(e => {
222
257
  const {
223
258
  key
@@ -228,7 +263,9 @@ const ChatContainerMessagesList = props => {
228
263
  e.preventDefault();
229
264
 
230
265
  if (document.activeElement !== loadMoreRef.current) {
231
- onlyFocus(onScrollStop().shift());
266
+ var _onScrollStop;
267
+
268
+ onlyFocus((_onScrollStop = onScrollStop()) === null || _onScrollStop === void 0 ? void 0 : _onScrollStop.shift());
232
269
  }
233
270
 
234
271
  break;
@@ -239,7 +276,9 @@ const ChatContainerMessagesList = props => {
239
276
  if (document.activeElement === loadMoreRef.current) {
240
277
  virtualListRef.current.querySelector("[data-index=\"0\"]").focus();
241
278
  } else {
242
- onlyFocus(onScrollStop().pop());
279
+ var _onScrollStop2;
280
+
281
+ onlyFocus((_onScrollStop2 = onScrollStop()) === null || _onScrollStop2 === void 0 ? void 0 : _onScrollStop2.pop());
243
282
  }
244
283
 
245
284
  break;
@@ -251,17 +290,12 @@ const ChatContainerMessagesList = props => {
251
290
 
252
291
  case 'End':
253
292
  e.preventDefault();
254
- scrollAndFocus(messages.length - 1);
293
+ scrollAndFocus((messages === null || messages === void 0 ? void 0 : messages.length) - 1);
255
294
  break;
256
295
 
257
296
  case 'Tab':
258
297
  if (document.activeElement !== loadMoreRef.current) {
259
298
  if (hasMoreItems === 'bottom' && !e.shiftKey) {
260
- var _loadMoreRef$current3;
261
-
262
- e.preventDefault();
263
- (_loadMoreRef$current3 = loadMoreRef.current) === null || _loadMoreRef$current3 === void 0 ? void 0 : _loadMoreRef$current3.focus();
264
- } else if (hasMoreItems === 'top' && e.shiftKey) {
265
299
  var _loadMoreRef$current4;
266
300
 
267
301
  e.preventDefault();
@@ -282,30 +316,7 @@ const ChatContainerMessagesList = props => {
282
316
 
283
317
  break;
284
318
  }
285
- }, [actionRef, hasMoreItems, messages.length, onScrollStop, onlyFocus, scrollAndFocus]);
286
- const checkPendingOnScroll = React__default["default"].useCallback(() => {
287
- if (pendingOnScroll.current === true) onScrollStop();
288
- }, [onScrollStop]);
289
- React__default["default"].useEffect(() => {
290
- let handlerCallback = null;
291
- const localVirtualRef = virtualListRef.current;
292
-
293
- const onScroll = () => {
294
- if (handlerCallback) clearTimeout(handlerCallback);
295
- handlerCallback = setTimeout(onScrollStop, 300);
296
- };
297
-
298
- if (onScrollEnds) {
299
- virtualListRef.current.addEventListener('scroll', onScroll);
300
- }
301
-
302
- document.addEventListener('visibilitychange', checkPendingOnScroll);
303
- return () => {
304
- if (handlerCallback) clearTimeout(handlerCallback);
305
- if (onScrollEnds) localVirtualRef.removeEventListener('scroll', onScroll);
306
- document.removeEventListener('visibilitychange', checkPendingOnScroll);
307
- };
308
- }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
319
+ }, [actionRef, hasMoreItems, messages === null || messages === void 0 ? void 0 : messages.length, onScrollStop, onlyFocus, scrollAndFocus]);
309
320
  const render = React__default["default"].useMemo(() => virtualItems.map(virtualItem => {
310
321
  const {
311
322
  index,
@@ -331,39 +342,41 @@ const ChatContainerMessagesList = props => {
331
342
  role: "listitem",
332
343
  children: /*#__PURE__*/_jsx__default["default"](styled.StyledWrapperListItem, {
333
344
  type: row.type
334
- }, void 0, row.type === props$1.BUBBLE_TYPES.SENDER || row.type === props$1.BUBBLE_TYPES.RECIPIENT ?
345
+ }, void 0, row.type === props.BUBBLE_TYPES.SENDER || row.type === props.BUBBLE_TYPES.RECIPIENT ?
335
346
  /*#__PURE__*/
336
347
  // eslint-disable-next-line eslint-comments/no-unlimited-disable
337
348
  jsxRuntime.jsx(ChatBubble.ChatBubble, _objectSpread(_objectSpread({}, row), {}, {
338
349
  helpMessage: isSending ? sendingText : row.helpMessage
339
- })) : null, row.type === props$1.BUBBLE_TYPES.DELIMITER ? /*#__PURE__*/jsxRuntime.jsx(MessageDelimiter.MessageDelimiter, _objectSpread({}, row)) : null, row.type === props$1.BUBBLE_TYPES.SYSTEM ? /*#__PURE__*/jsxRuntime.jsx(SystemMessage.SystemMessage, _objectSpread({}, row)) : null)
350
+ })) : null, row.type === props.BUBBLE_TYPES.DELIMITER ? /*#__PURE__*/jsxRuntime.jsx(MessageDelimiter.MessageDelimiter, _objectSpread({}, row)) : null, row.type === props.BUBBLE_TYPES.SYSTEM ? /*#__PURE__*/jsxRuntime.jsx(SystemMessage.SystemMessage, _objectSpread({}, row)) : null)
340
351
  }, "ds-chat-bubble-".concat(index, "-").concat(row.dsId, "-").concat(row.type));
341
352
  }), [virtualItems, messages, sendingMessages, handleKey, sendingText]);
342
- return /*#__PURE__*/_jsx__default["default"](styled.StyledWrapper, {}, void 0, /*#__PURE__*/jsxRuntime.jsx(styled.StyledChatContainerContentList, {
343
- "data-testid": "chat-thread-container",
344
- tabIndex: 0,
345
- "aria-live": "polite",
346
- "aria-relevant": "additions",
347
- ref: virtualListRef,
348
- role: "list",
349
- onKeyDown: handleListKey,
350
- children: /*#__PURE__*/_jsx__default["default"](styled.StyledChatContainerContentListScroll, {
351
- height: "".concat(totalSize, "px")
352
- }, void 0, !isLoading && hasMoreItems ? /*#__PURE__*/_jsx__default["default"](styled.StyledLoadMoreContainer, {
353
- hasMoreItems: hasMoreItems
354
- }, void 0, /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
355
- labelText: "Load More",
356
- buttonType: "secondary",
357
- onClick: getMoreMessages,
358
- "data-testid": "ds-chat-load-more-btn",
359
- innerRef: loadMoreRef
360
- })) : null, render)
353
+ return /*#__PURE__*/jsxRuntime.jsxs(styled.StyledWrapper, _objectSpread(_objectSpread({}, globalAttributes), {}, {
354
+ children: [/*#__PURE__*/jsxRuntime.jsx(styled.StyledChatContainerContentList, {
355
+ "data-testid": "chat-thread-container",
356
+ tabIndex: 0,
357
+ ref: virtualListRef,
358
+ role: "list",
359
+ onKeyDown: handleListKey,
360
+ children: /*#__PURE__*/_jsx__default["default"](styled.StyledChatContainerContentListScroll, {
361
+ height: "".concat(totalSize, "px")
362
+ }, void 0, !isLoading && hasMoreItems ? /*#__PURE__*/_jsx__default["default"](styled.StyledLoadMoreContainer, {
363
+ hasMoreItems: hasMoreItems
364
+ }, void 0, /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
365
+ labelText: "Load More",
366
+ buttonType: "secondary",
367
+ onClick: getMoreMessages,
368
+ "data-testid": "ds-chat-load-more-btn",
369
+ innerRef: loadMoreRef
370
+ })) : null, render)
371
+ }), /*#__PURE__*/_jsx__default["default"](styled.StyledNewMessagesHiddenContainer, {
372
+ "aria-live": "polite",
373
+ "aria-hidden": "false"
374
+ }, void 0, newMessages.map(newMessage => /*#__PURE__*/_jsx__default["default"]("p", {}, void 0, newMessage.title, " ", newMessage.time, " ", newMessage.body, " ", newMessage.errorMessage, " ", newMessage.helpMessage)))]
361
375
  }));
362
376
  };
363
377
 
364
- ChatContainerMessagesList.defaultProps = props.defaultProps;
365
- const ChatContainerMessagesListWithSchema = reactDesc.describe(ChatContainerMessagesList);
366
- ChatContainerMessagesListWithSchema.propTypes = props.listProps;
378
+ const ChatContainerMessagesListWithSchema = dsPropsHelpers.describe(ChatContainerMessagesList);
379
+ ChatContainerMessagesListWithSchema.propTypes = reactDescPropTypes.ChatContainerMessagesListPropTypes;
367
380
 
368
381
  exports.ChatContainerMessagesList = ChatContainerMessagesList;
369
382
  exports.ChatContainerMessagesListWithSchema = ChatContainerMessagesListWithSchema;
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var styled = require('styled-components');
6
- require('../bubble/ChatBubble.js');
7
- var props = require('../bubble/props.js');
6
+ require('../../exported-related/bubble/ChatBubble.js');
7
+ var props = require('../../exported-related/bubble/props.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
@@ -20,19 +20,23 @@ const StyledWrapperListItem = /*#__PURE__*/styled__default["default"].div.withCo
20
20
  const StyledChatContainerContentList = /*#__PURE__*/styled__default["default"].div.withConfig({
21
21
  componentId: "sc-1jhprzr-2"
22
22
  })(["width:100%;height:100%;padding:", ";padding-bottom:0;overflow-y:auto;overflow-x:hidden;"], props => props.theme.space.xs);
23
- const StyledChatContainerContentListScroll = /*#__PURE__*/styled__default["default"].div.withConfig({
23
+ const StyledNewMessagesHiddenContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
24
24
  componentId: "sc-1jhprzr-3"
25
+ })(["position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(100%);white-space:nowrap;"]);
26
+ const StyledChatContainerContentListScroll = /*#__PURE__*/styled__default["default"].div.withConfig({
27
+ componentId: "sc-1jhprzr-4"
25
28
  })(["width:100%;height:", ";position:relative;"], props => props.height);
26
29
  const StyledLoadMoreContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
27
- componentId: "sc-1jhprzr-4"
30
+ componentId: "sc-1jhprzr-5"
28
31
  })(["position:absolute;width:calc(100% + ", ");padding:", ";left:-", ";right:-", ";display:grid;justify-content:center;align-items:center;", " ", ""], props => props.theme.space.xxs, props => props.theme.space.xxs, props => props.theme.space.xxs, props => props.theme.space.xxs, props => props.hasMoreItems === 'top' ? 'top: 0;' : '', props => props.hasMoreItems === 'bottom' ? 'bottom: 0;' : '');
29
32
  const ListItem = /*#__PURE__*/styled__default["default"].div.withConfig({
30
- componentId: "sc-1jhprzr-5"
33
+ componentId: "sc-1jhprzr-6"
31
34
  })(["&:focus,&:focus-visible{outline:none;&:after{content:'';display:block;position:absolute;top:0;left:-", ";pointer-events:none;border-radius:2px;background-color:#ebedf0;width:calc(100% + 24px);border:2px solid #1e79c2;height:100%;z-index:-1;}}"], props => props.theme.space.xxs);
32
35
 
33
36
  exports.ListItem = ListItem;
34
37
  exports.StyledChatContainerContentList = StyledChatContainerContentList;
35
38
  exports.StyledChatContainerContentListScroll = StyledChatContainerContentListScroll;
36
39
  exports.StyledLoadMoreContainer = StyledLoadMoreContainer;
40
+ exports.StyledNewMessagesHiddenContainer = StyledNewMessagesHiddenContainer;
37
41
  exports.StyledWrapper = StyledWrapper;
38
42
  exports.StyledWrapperListItem = StyledWrapperListItem;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/web.dom-collections.iterator.js');
6
+ require('core-js/modules/esnext.async-iterator.for-each.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.for-each.js');
9
+ require('core-js/modules/esnext.async-iterator.map.js');
10
+ require('core-js/modules/esnext.iterator.map.js');
11
+ var React = require('react');
12
+
13
+ const useGetNewMessages = messages => {
14
+ const [seenMessages, setSeenMessages] = React.useState({});
15
+ const newMessages = React.useMemo(() => {
16
+ const list = [];
17
+ messages.forEach(message => {
18
+ if (!(message.dsId in seenMessages)) {
19
+ list.push(message);
20
+ }
21
+ });
22
+ setSeenMessages(Object.fromEntries(messages.map(m => [m.dsId, true])));
23
+ return list; // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ }, [messages]);
25
+ return newMessages;
26
+ };
27
+
28
+ exports.useGetNewMessages = useGetNewMessages;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ChatContainerComposer = require('./chat-composer/ChatContainerComposer.js');
6
+ var ChatContainer = require('./chat-container/ChatContainer.js');
7
+ var ChatContainerMessagesList = require('./chat-container-messages-list/ChatContainerMessagesList.js');
8
+
9
+
10
+
11
+ exports.ChatComposer = ChatContainerComposer.ChatComposer;
12
+ exports.ChatComposerWithSchema = ChatContainerComposer.ChatComposerWithSchema;
13
+ exports.ChatContainer = ChatContainer.ChatContainer;
14
+ exports.ChatContainerWithSchema = ChatContainer.ChatContainerWithSchema;
15
+ exports.ChatContainerMessagesList = ChatContainerMessagesList.ChatContainerMessagesList;
16
+ exports.ChatContainerMessagesListWithSchema = ChatContainerMessagesList.ChatContainerMessagesListWithSchema;
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var lodash = require('lodash');
12
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
13
+ var DSBanner = require('@elliemae/ds-banner');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ const defaultPropsComposer = {
23
+ placeholder: 'Type your message',
24
+ inputValue: '',
25
+ ariaMaxLengthMessage: '',
26
+ onChange: lodash.noop,
27
+ onResize: lodash.noop,
28
+ onSend: lodash.noop,
29
+ onFocus: lodash.noop,
30
+ onBlur: lodash.noop,
31
+ onKeyDown: lodash.noop,
32
+ maxHeight: 0,
33
+ inputMaxLength: undefined,
34
+ maxLengthMessage: undefined,
35
+ buttonDisabled: false,
36
+ dataTestid: 'ds-chat-composer',
37
+ actionRef: undefined
38
+ };
39
+ const ChatComposerPropTypes = {
40
+ placeholder: dsPropsHelpers.PropTypes.string.description('Input Placeholder').defaultValue(defaultPropsComposer.placeholder),
41
+ inputValue: dsPropsHelpers.PropTypes.string.description('Input value').defaultValue(defaultPropsComposer.inputValue),
42
+ ariaMaxLengthMessage: dsPropsHelpers.PropTypes.string.description('Aria message for Max length message when exceeded').defaultValue(defaultPropsComposer.maxLengthMessage),
43
+ maxLengthMessage: dsPropsHelpers.PropTypes.string.description('Max length message').defaultValue(defaultPropsComposer.maxLengthMessage),
44
+ onChange: dsPropsHelpers.PropTypes.func.description('Called when the user types').defaultValue(defaultPropsComposer.onChange),
45
+ onResize: dsPropsHelpers.PropTypes.func.description('Called the input changes his height').defaultValue(defaultPropsComposer.onResize),
46
+ onSend: dsPropsHelpers.PropTypes.func.description('Called when the click send').defaultValue(defaultPropsComposer.onSend),
47
+ onFocus: dsPropsHelpers.PropTypes.func.description('Input focus').defaultValue(defaultPropsComposer.onFocus),
48
+ onBlur: dsPropsHelpers.PropTypes.func.description('Input blur').defaultValue(defaultPropsComposer.onBlur),
49
+ onKeyDown: dsPropsHelpers.PropTypes.func.description('Input on key down').defaultValue(defaultPropsComposer.onKeyDown),
50
+ maxHeight: dsPropsHelpers.PropTypes.number.description('Max height of the composer. Use 0 for no limit').defaultValue(defaultPropsComposer.onBlur),
51
+ inputMaxLength: dsPropsHelpers.PropTypes.number.description('Max length of the composer. `undefined` for no limit').defaultValue(defaultPropsComposer.inputMaxLength),
52
+ buttonDisabled: dsPropsHelpers.PropTypes.bool.description('Control the disabled for the send button').defaultValue(defaultPropsComposer.buttonDisabled),
53
+ dataTestid: dsPropsHelpers.PropTypes.string.description('Data testid').defaultValue(defaultPropsComposer.placeholder),
54
+ actionRef: dsPropsHelpers.PropTypes.object.description("Reference: \n { \n scrollToIndex: (n: number) => void,\n getMessagesInView: () => number[],\n focusToIndex: (n: number) => void,\n focusToList: () => void,\n focusToComposer: () => void,\n focusToSend: () => void,\n }\n \n ").defaultValue(defaultPropsComposer.actionRef)
55
+ };
56
+ const defaultPropsMessagesList = {
57
+ messages: [],
58
+ actionRef: lodash.noop,
59
+ onScrollEnds: () => [],
60
+ getMoreMessages: lodash.noop,
61
+ sendingMessages: undefined,
62
+ sendingText: 'Sending',
63
+ bannerPosition: undefined,
64
+ bannerRef: undefined
65
+ };
66
+ const ChatContainerMessagesListPropTypes = _objectSpread(_objectSpread({}, dsPropsHelpers.globalAttributesPropTypes), {}, {
67
+ messages: dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.object).description('The array of out-of-the-box items you want to render inside the ChatMessageList').defaultValue(defaultPropsMessagesList.messages),
68
+ actionRef: dsPropsHelpers.PropTypes.object.description("Reference: \n { \n scrollToIndex: (n: number) => void,\n getMessagesInView: () => number[],\n focusToIndex: (n: number) => void,\n focusToIndexWithoutScroll: (n: number) => void,\n focusToList: () => void,\n focusToComposer: () => void,\n focusToSend: () => void,\n }\n \n ").defaultValue(defaultPropsMessagesList.actionRef),
69
+ onScrollEnds: dsPropsHelpers.PropTypes.func.description("Called when the scroll stops."),
70
+ isLoading: dsPropsHelpers.PropTypes.oneOf(['top', 'bottom', undefined]).description('Keeps the load more space while the loading is in progress'),
71
+ hasMoreItems: dsPropsHelpers.PropTypes.oneOf(['top', 'bottom', undefined]).description('Show Load More button at the `top` or `bottom` of the container'),
72
+ getMoreMessages: dsPropsHelpers.PropTypes.func.description('Called when the user clicks on load more').defaultValue(defaultPropsMessagesList.getMoreMessages),
73
+ sendingMessages: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.string), dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.number)]).description('Array of ids of sending messages').defaultValue(defaultPropsMessagesList.sendingMessages),
74
+ sendingText: dsPropsHelpers.PropTypes.string.description('Label description for messages in sending status').defaultValue(defaultPropsMessagesList.sendingText)
75
+ });
76
+ const defaultProps = {
77
+ messagesListProps: defaultPropsMessagesList,
78
+ composerProps: defaultPropsComposer,
79
+ actionRef: undefined,
80
+ autoScroll: false,
81
+ device: 'desktop',
82
+ isLoading: undefined,
83
+ hasMoreItems: undefined,
84
+ getMoreMessages: lodash.noop,
85
+ bannerPosition: undefined,
86
+ bannerProps: {
87
+ type: DSBanner.BANNER_TYPES.INFO,
88
+ label: 'Unread Messages',
89
+ viewLabel: 'View',
90
+ onView: lodash.noop,
91
+ onClose: lodash.noop
92
+ },
93
+ sendingMessages: undefined,
94
+ sendingText: 'Sending'
95
+ };
96
+ const ChatContainerPropTypes = _objectSpread(_objectSpread({}, dsPropsHelpers.globalAttributesPropTypes), {}, {
97
+ messagesListProps: dsPropsHelpers.PropTypes.object.description('ChatMessageList props "messages" / "onScrollEnds"').defaultValue(defaultProps.messagesListProps),
98
+ composerProps: dsPropsHelpers.PropTypes.object.description('Composer configuration').defaultValue(defaultProps.composerProps),
99
+ autoScroll: dsPropsHelpers.PropTypes.bool.description('Auto scroll to bottom on resize').defaultValue(defaultProps.autoScroll),
100
+ device: dsPropsHelpers.PropTypes.string.description('Option to render mobile or desktop style composer').defaultValue(defaultProps.device),
101
+ isLoading: dsPropsHelpers.PropTypes.oneOf(['top', 'bottom', undefined]).description('Show Loading messages indicator at the `top` or `bottom` of the container'),
102
+ hasMoreItems: dsPropsHelpers.PropTypes.oneOf(['top', 'bottom', undefined]).description('Show Load More button at the `top` or `bottom` of the container'),
103
+ getMoreMessages: dsPropsHelpers.PropTypes.func.description('Called when the user clicks on load more').defaultValue(defaultProps.getMoreMessages),
104
+ bannerPosition: dsPropsHelpers.PropTypes.oneOf(['top', 'bottom', undefined]).description('Show Loading messages indicator at the `top` or `bottom` of the container'),
105
+ bannerProps: dsPropsHelpers.PropTypes.object.description("Banner configuration:\n label: string;\n viewLabel: string;\n type: BANNER_TYPES;\n onView: () => void;\n onClose: () => void;\n ").defaultValue(defaultProps.bannerProps),
106
+ sendingMessages: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.string), dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.number)]).description('Array of ids of sending messages').defaultValue(defaultProps.sendingMessages),
107
+ sendingText: dsPropsHelpers.PropTypes.string.description('Label description for messages in sending status').defaultValue(defaultProps.sendingText),
108
+ actionRef: dsPropsHelpers.PropTypes.object.description("Reference: \n { \n scrollToIndex: (n: number) => void,\n getMessagesInView: () => number[],\n focusToIndex: (n: number) => void,\n focusToList: () => void,\n focusToComposer: () => void,\n focusToSend: () => void,\n }\n \n ").defaultValue(defaultProps.actionRef)
109
+ });
110
+
111
+ exports.ChatComposerPropTypes = ChatComposerPropTypes;
112
+ exports.ChatContainerMessagesListPropTypes = ChatContainerMessagesListPropTypes;
113
+ exports.ChatContainerPropTypes = ChatContainerPropTypes;
114
+ exports.defaultProps = defaultProps;
115
+ exports.defaultPropsComposer = defaultPropsComposer;
116
+ exports.defaultPropsMessagesList = defaultPropsMessagesList;