@microsoft/omnichannel-chat-widget 0.1.0-main.a27ec4b → 0.1.0-main.a2e5071

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 (264) hide show
  1. package/lib/cjs/common/Constants.js +17 -168
  2. package/lib/cjs/common/KeyCodes.js +0 -3
  3. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  4. package/lib/cjs/common/storage/default/defaultCacheManager.js +0 -10
  5. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +4 -16
  6. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +2 -10
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +22 -23
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  11. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  12. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  13. package/lib/cjs/common/utils.js +18 -105
  14. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  15. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  16. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -32
  18. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  19. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  20. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  21. package/lib/cjs/components/footerstateful/FooterStateful.js +10 -34
  22. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  23. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  25. package/lib/cjs/components/headerstateful/HeaderStateful.js +12 -27
  26. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  27. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +2 -9
  28. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -5
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -11
  30. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +11 -19
  31. package/lib/cjs/components/livechatwidget/common/Deferred.js +3 -10
  32. package/lib/cjs/components/livechatwidget/common/authHelper.js +4 -19
  33. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -13
  34. package/lib/cjs/components/livechatwidget/common/createFooter.js +0 -10
  35. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -14
  36. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  37. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  38. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +41 -35
  39. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  40. package/lib/cjs/components/livechatwidget/common/endChat.js +30 -33
  41. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  42. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  43. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  44. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +16 -54
  45. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +80 -150
  46. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  47. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  48. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  49. package/lib/cjs/components/livechatwidget/common/startChat.js +126 -109
  50. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  51. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  52. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  53. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +201 -256
  54. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
  55. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  56. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  57. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  58. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  59. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  60. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  61. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  62. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -37
  63. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  64. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  65. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -38
  66. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
  67. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  68. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  69. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -17
  70. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  71. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  72. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  73. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -4
  74. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  75. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +8 -19
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  114. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  115. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  116. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  117. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  118. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +3 -3
  119. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -11
  120. package/lib/cjs/contexts/createReducer.js +146 -108
  121. package/lib/cjs/controller/componentController.js +2 -31
  122. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  123. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  124. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  125. package/lib/cjs/index.js +0 -5
  126. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  127. package/lib/esm/common/Constants.js +14 -155
  128. package/lib/esm/common/KeyCodes.js +0 -2
  129. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  130. package/lib/esm/common/storage/default/defaultCacheManager.js +0 -3
  131. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +4 -11
  132. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +2 -3
  133. package/lib/esm/common/telemetry/TelemetryConstants.js +26 -20
  134. package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
  135. package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
  136. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  137. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  138. package/lib/esm/common/utils.js +18 -53
  139. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  140. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  141. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  142. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  143. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  144. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  145. package/lib/esm/components/footerstateful/FooterStateful.js +12 -15
  146. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  147. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  148. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -12
  149. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  150. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +2 -6
  151. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -3
  152. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -8
  153. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +11 -15
  154. package/lib/esm/components/livechatwidget/common/Deferred.js +3 -8
  155. package/lib/esm/components/livechatwidget/common/authHelper.js +4 -12
  156. package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
  157. package/lib/esm/components/livechatwidget/common/createFooter.js +0 -1
  158. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -5
  159. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  160. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  161. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +43 -22
  162. package/lib/esm/components/livechatwidget/common/endChat.js +32 -18
  163. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  164. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  165. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  166. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +18 -19
  167. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +79 -130
  168. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  169. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  170. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  171. package/lib/esm/components/livechatwidget/common/startChat.js +126 -81
  172. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  173. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  174. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +203 -190
  175. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
  176. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  177. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  178. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  179. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  180. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  181. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  182. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  183. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -21
  184. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  185. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  186. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +17 -11
  187. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  188. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  189. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -13
  190. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  191. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  192. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  193. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -2
  194. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  195. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  196. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  197. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  198. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  199. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  200. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -11
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  234. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  235. package/lib/esm/contexts/ChatContextStore.js +2 -1
  236. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  237. package/lib/esm/contexts/common/ConversationState.js +0 -1
  238. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +3 -3
  239. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -5
  240. package/lib/esm/contexts/createReducer.js +146 -105
  241. package/lib/esm/controller/componentController.js +3 -2
  242. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  243. package/lib/esm/hooks/useChatContextStore.js +0 -4
  244. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  245. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  246. package/lib/types/common/Constants.d.ts +12 -0
  247. package/lib/types/common/telemetry/TelemetryConstants.d.ts +11 -4
  248. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  249. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  250. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  251. package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
  252. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -1
  253. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
  254. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  255. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  256. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  257. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  258. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  259. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -0
  260. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  261. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  262. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -2
  263. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +4 -3
  264. package/package.json +3 -3
@@ -4,17 +4,18 @@
4
4
  * This middleware handles the avatar icon for each non-system message. It does the following processing:
5
5
  * 1. Renders the first two letters of the sender as the profile pic
6
6
  ******/
7
+
7
8
  import React from "react";
8
9
  import { Constants } from "../../../../../common/Constants";
9
10
  import { defaultAvatarStyles } from "./defaultStyles/defaultAvatarStyles";
10
11
  import { defaultAvatarTextStyles } from "./defaultStyles/defaultAvatarTextStyles";
11
- import { getIconText } from "../../../../../common/utils"; // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
12
+ import { getIconText } from "../../../../../common/utils";
12
13
 
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
13
15
  export const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () => next => function () {
14
16
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15
17
  args[_key] = arguments[_key];
16
18
  }
17
-
18
19
  const [params] = args;
19
20
  const {
20
21
  activity: {
@@ -27,18 +28,18 @@ export const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) =
27
28
  },
28
29
  fromUser
29
30
  } = params;
30
-
31
31
  if (fromUser !== false || tags && tags.includes(Constants.systemMessageTag)) {
32
32
  return false;
33
33
  }
34
-
35
- const avatarStyles = { ...defaultAvatarStyles,
34
+ const avatarStyles = {
35
+ ...defaultAvatarStyles,
36
36
  ...avatarStyleProps
37
37
  };
38
- const avatarTextStyles = { ...defaultAvatarTextStyles,
38
+ const avatarTextStyles = {
39
+ ...defaultAvatarTextStyles,
39
40
  ...avatarTextStyleProps
40
- }; // eslint-disable-next-line react/display-name
41
-
41
+ };
42
+ // eslint-disable-next-line react/display-name
42
43
  return () => /*#__PURE__*/React.createElement("div", {
43
44
  style: avatarStyles
44
45
  }, /*#__PURE__*/React.createElement("p", {
@@ -1,11 +1,9 @@
1
1
  import { BotMagicCodeStore } from "../../BotMagicCodeStore";
2
2
  var CardActionType;
3
-
4
3
  (function (CardActionType) {
5
4
  CardActionType["OpenUrl"] = "openUrl";
6
5
  CardActionType["SignIn"] = "signin";
7
6
  })(CardActionType || (CardActionType = {}));
8
-
9
7
  const validCardActionTypes = [CardActionType.OpenUrl, CardActionType.SignIn];
10
8
  const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
11
9
  export const createCardActionMiddleware = botMagicCodeConfig => {
@@ -13,29 +11,24 @@ export const createCardActionMiddleware = botMagicCodeConfig => {
13
11
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
12
  args[_key] = arguments[_key];
15
13
  }
16
-
17
14
  // eslint-disable-line @typescript-eslint/no-explicit-any
18
15
  const [card] = args;
19
-
20
16
  if (card.cardAction && validCardActionTypes.indexOf(card.cardAction.type) >= 0 && card.cardAction.value) {
21
17
  // Override signin url only if fwdUrl is valid & feature is enabled
22
18
  if ((botMagicCodeConfig === null || botMagicCodeConfig === void 0 ? void 0 : botMagicCodeConfig.disabled) === true && botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl) {
23
19
  const baseUrl = window.location.origin;
24
20
  const result = botOauthUrlRegex.exec(card.cardAction.value);
25
-
26
21
  if (result) {
27
22
  BotMagicCodeStore.botOAuthSignInId = `${result[1]}`;
28
- } // fwdUrl must be on the same domain as the chat widget
29
-
23
+ }
30
24
 
25
+ // fwdUrl must be on the same domain as the chat widget
31
26
  if (botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl.startsWith(baseUrl)) {
32
27
  card.cardAction.value += `&fwdUrl=${botMagicCodeConfig.fwdUrl}`;
33
28
  }
34
29
  }
35
30
  }
36
-
37
31
  return next(...args);
38
32
  };
39
-
40
33
  return cardActionMiddleware;
41
34
  };
@@ -3,8 +3,6 @@ import { createCardActionMiddleware } from "./cardActionMiddleware";
3
3
  describe("cardActionMiddleware test", () => {
4
4
  it("createCardActionMiddleware() with undefined botMagicCodeConfig should not change the sign in card url", () => {
5
5
  const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
6
-
7
-
8
6
  const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
9
7
  const args = {
10
8
  cardAction: {
@@ -19,10 +17,7 @@ describe("cardActionMiddleware test", () => {
19
17
  const botMagicCodeConfig = {
20
18
  disabled: false
21
19
  };
22
-
23
20
  const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
24
-
25
-
26
21
  const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
27
22
  const args = {
28
23
  cardAction: {
@@ -37,10 +32,7 @@ describe("cardActionMiddleware test", () => {
37
32
  const botMagicCodeConfig = {
38
33
  disabled: true
39
34
  };
40
-
41
35
  const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
42
-
43
-
44
36
  const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
45
37
  const args = {
46
38
  cardAction: {
@@ -56,10 +48,7 @@ describe("cardActionMiddleware test", () => {
56
48
  disabled: true,
57
49
  fwdUrl: "http://localhost/forwarder.html"
58
50
  };
59
-
60
51
  const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
61
-
62
-
63
52
  const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
64
53
  const args = {
65
54
  cardAction: {
@@ -76,10 +65,7 @@ describe("cardActionMiddleware test", () => {
76
65
  disabled: true,
77
66
  fwdUrl: "https://localhost/forwarder.html"
78
67
  };
79
-
80
68
  const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
81
-
82
-
83
69
  const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
84
70
  const args = {
85
71
  cardAction: {
@@ -1,4 +1,5 @@
1
1
  import { defaultTimestampContentStyles } from "./defaultTimestampContentStyles";
2
- export const defaultTimestampFailedStyles = { ...defaultTimestampContentStyles,
2
+ export const defaultTimestampFailedStyles = {
3
+ ...defaultTimestampContentStyles,
3
4
  color: "#A80000"
4
5
  };
@@ -1,5 +1,6 @@
1
1
  import { defaultTimestampContentStyles } from "./defaultTimestampContentStyles";
2
- export const defaultTimestampRetryStyles = { ...defaultTimestampContentStyles,
2
+ export const defaultTimestampRetryStyles = {
3
+ ...defaultTimestampContentStyles,
3
4
  color: "#0063B1",
4
5
  cursor: "pointer"
5
6
  };
@@ -4,13 +4,12 @@
4
4
  * This middleware controls which messages are grouped together regarding to timestamps. It does the following processing:
5
5
  * 1. Distinguishes different messages by sender name and whether it is a system message
6
6
  ******/
7
- import { Constants } from "../../../../../common/Constants";
8
7
 
8
+ import { Constants } from "../../../../../common/Constants";
9
9
  function bin(items, grouping) {
10
10
  let lastBin;
11
11
  const bins = [];
12
12
  let lastItem;
13
-
14
13
  if (items.length > 0) {
15
14
  items.forEach(item => {
16
15
  if (lastItem && grouping(lastItem, item)) {
@@ -19,20 +18,17 @@ function bin(items, grouping) {
19
18
  lastBin = [item];
20
19
  bins.push(lastBin);
21
20
  }
22
-
23
21
  lastItem = item;
24
22
  });
25
23
  }
26
-
27
24
  return bins;
28
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
29
-
25
+ }
30
26
 
27
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
31
28
  export const groupActivitiesMiddleware = () => next => args => {
32
29
  const {
33
30
  activities
34
31
  } = args;
35
-
36
32
  if (activities != null && activities.length > 0) {
37
33
  const {
38
34
  status
@@ -1,6 +1,7 @@
1
1
  import { WebChatActionType } from "../../enums/WebChatActionType";
2
- import { Constants } from "../../../../../common/Constants"; // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
2
+ import { Constants } from "../../../../../common/Constants";
3
3
 
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
4
5
  const createMessageTimeStampMiddleware = _ref => {
5
6
  let {
6
7
  dispatch
@@ -9,99 +10,74 @@ const createMessageTimeStampMiddleware = _ref => {
9
10
  if (isApplicable(action)) {
10
11
  return next(evaluateTagsAndOverrideTimeStamp(action));
11
12
  }
12
-
13
13
  return next(action);
14
14
  };
15
15
  };
16
-
17
16
  const isApplicable = action => {
18
17
  return action.type === WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isPVAConversation(action) && isPayloadValid(action) && isValidChannel(action);
19
18
  };
20
-
21
19
  const isPayloadValid = action => {
22
20
  var _action$payload;
23
-
24
21
  return action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.activity;
25
22
  };
26
-
27
23
  const isValidChannel = action => {
28
24
  var _action$payload2, _action$payload2$acti;
29
-
30
25
  return (action === null || action === void 0 ? void 0 : (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : (_action$payload2$acti = _action$payload2.activity) === null || _action$payload2$acti === void 0 ? void 0 : _action$payload2$acti.channelId) === Constants.acsChannel;
31
26
  };
32
-
33
27
  const isPVAConversation = action => {
34
28
  return !isTagIncluded(action, Constants.systemMessageTag) && !isTagIncluded(action, Constants.publicMessageTag) && !isRoleUserOn(action);
35
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
-
29
+ };
37
30
 
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
32
  const isTagIncluded = (action, tag) => {
39
33
  return isDataTagsPresent(action) && action.payload.activity.channelData.tags.includes(tag);
40
34
  };
41
-
42
35
  const isRoleUserOn = action => {
43
36
  var _action$payload3, _action$payload3$acti, _action$payload3$acti2;
44
-
45
37
  return (action === null || action === void 0 ? void 0 : (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : (_action$payload3$acti = _action$payload3.activity) === null || _action$payload3$acti === void 0 ? void 0 : (_action$payload3$acti2 = _action$payload3$acti.from) === null || _action$payload3$acti2 === void 0 ? void 0 : _action$payload3$acti2.role) === Constants.userMessageTag;
46
38
  };
47
-
48
39
  const overrideTimeStamp = (timestampOriginal, timeStampNew) => {
49
40
  return isTimestampValid(timeStampNew) ? timeStampNew : timestampOriginal;
50
41
  };
51
-
52
42
  const isTimestampValid = timeStamp => {
53
43
  const regex = /(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(T)(\d{2})(:{1})(\d{2})(:{1})(\d{2})(.\d+)([Z]{1}))/;
54
44
  return regex.test(timeStamp);
55
45
  };
56
-
57
46
  const isDataTagsPresent = action => {
58
47
  var _action$payload4, _action$payload4$acti, _action$payload4$acti2;
59
-
60
48
  return (action === null || action === void 0 ? void 0 : (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : (_action$payload4$acti = _action$payload4.activity) === null || _action$payload4$acti === void 0 ? void 0 : (_action$payload4$acti2 = _action$payload4$acti.channelData) === null || _action$payload4$acti2 === void 0 ? void 0 : _action$payload4$acti2.tags) && action.payload.activity.channelData.tags.length > 0;
61
49
  };
62
-
63
50
  const evaluateTagsAndOverrideTimeStamp = action => {
64
51
  const tagValue = tagLookup(action, Constants.prefixTimestampTag);
65
-
66
52
  if (tagValue) {
67
53
  const newTimestamp = extractTimeStamp(tagValue);
68
54
  action.payload.activity.timestamp = overrideTimeStamp(action.payload.activity.timestamp, newTimestamp);
69
55
  }
70
-
71
56
  return action;
72
57
  };
73
-
74
58
  const extractTimeStamp = timeStamp => {
75
59
  if (timeStamp && timeStamp.length > 0) {
76
60
  const ts = timeStamp.split(Constants.prefixTimestampTag);
77
-
78
61
  if (ts && ts.length > 1) {
79
62
  return ts[1];
80
63
  }
81
64
  }
82
-
83
65
  return timeStamp;
84
66
  };
85
-
86
67
  const tagLookup = (action, tag) => {
87
68
  if (!isDataTagsPresent(action)) {
88
69
  return null;
89
70
  }
90
-
91
71
  const tags = action.payload.activity.channelData.tags;
92
72
  let value;
93
-
94
73
  if (tags && tags.length > 0) {
95
74
  for (let i = 0; i < tags.length; i++) {
96
75
  value = tags[i];
97
-
98
76
  if (value && value.indexOf(tag) > -1) {
99
77
  return value;
100
78
  }
101
79
  }
102
80
  }
103
-
104
81
  return null;
105
82
  };
106
-
107
83
  export default createMessageTimeStampMiddleware;
@@ -5,11 +5,10 @@ import { defaultMiddlewareLocalizedTexts } from "../../../../common/defaultProps
5
5
  import { defaultTimestampContentStyles } from "../defaultStyles/defaultTimestampContentStyles";
6
6
  import { getTimestampHourMinute } from "../../../../../../common/utils";
7
7
  import { useChatContextStore } from "../../../../../..";
8
- /* eslint @typescript-eslint/no-explicit-any: "off" */
9
8
 
9
+ /* eslint @typescript-eslint/no-explicit-any: "off" */
10
10
  export const DeliveredTimestamp = _ref => {
11
11
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$m;
12
-
13
12
  let {
14
13
  args,
15
14
  role,
@@ -17,7 +16,8 @@ export const DeliveredTimestamp = _ref => {
17
16
  } = _ref;
18
17
  const [state] = useChatContextStore();
19
18
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
20
- const contentStyles = { ...defaultTimestampContentStyles,
19
+ const contentStyles = {
20
+ ...defaultTimestampContentStyles,
21
21
  ...((_state$domainStates$r2 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.timestampContentStyleProps)
22
22
  };
23
23
  const {
@@ -9,11 +9,10 @@ import { defaultTimestampRetryStyles } from "../defaultStyles/defaultTimestampRe
9
9
  import { getTimestampHourMinute } from "../../../../../../common/utils";
10
10
  import { hooks } from "botframework-webchat";
11
11
  import { useChatContextStore } from "../../../../../..";
12
- /* eslint @typescript-eslint/no-explicit-any: "off" */
13
12
 
13
+ /* eslint @typescript-eslint/no-explicit-any: "off" */
14
14
  export const NotDeliveredTimestamp = _ref => {
15
15
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3, _state$domainStates$r4, _state$domainStates$m, _state$domainStates$m2;
16
-
17
16
  let {
18
17
  args
19
18
  } = _ref;
@@ -32,54 +31,48 @@ export const NotDeliveredTimestamp = _ref => {
32
31
  } = activity;
33
32
  const [state] = useChatContextStore();
34
33
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
35
- const contentStyles = { ...defaultTimestampContentStyles,
34
+ const contentStyles = {
35
+ ...defaultTimestampContentStyles,
36
36
  ...((_state$domainStates$r2 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.timestampContentStyleProps)
37
37
  };
38
- const failedTextStyles = { ...defaultTimestampFailedStyles,
38
+ const failedTextStyles = {
39
+ ...defaultTimestampFailedStyles,
39
40
  ...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.timestampFailedTextStyleProps)
40
41
  };
41
- const retryTextStyles = { ...defaultTimestampRetryStyles,
42
+ const retryTextStyles = {
43
+ ...defaultTimestampRetryStyles,
42
44
  ...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.timestampRetryTextStyleProps)
43
45
  };
44
46
  useEffect(() => {
45
47
  var _timestampRef$current;
46
-
47
48
  const timestampWebChatNodes = timestampRef === null || timestampRef === void 0 ? void 0 : (_timestampRef$current = timestampRef.current) === null || _timestampRef$current === void 0 ? void 0 : _timestampRef$current.childNodes;
48
-
49
49
  if ((timestampWebChatNodes === null || timestampWebChatNodes === void 0 ? void 0 : timestampWebChatNodes.length) > 1) {
50
50
  timestampWebChatNodes[1].innerText = getTimestampHourMinute(timestamp);
51
51
  }
52
52
  }, [timestampRef]);
53
53
  const onRetryClick = useCallback(async event => {
54
54
  var _activity$channelData;
55
-
56
55
  removeNotDeliveredTimestamp(event);
57
56
  activity.previousClientActivityID = (_activity$channelData = activity.channelData) === null || _activity$channelData === void 0 ? void 0 : _activity$channelData.clientActivityID;
58
57
  await postActivity(activity);
59
58
  focus("sendBox");
60
59
  }, [activity, focus, postActivity]);
61
-
62
60
  const onRetryKeyEnter = event => {
63
61
  if (event.code === KeyCodes.ENTER) {
64
62
  event.preventDefault();
65
63
  onRetryClick(event);
66
64
  }
67
65
  };
68
-
69
66
  const removeNotDeliveredTimestamp = event => {
70
67
  let parent = event.target.parentElement;
71
-
72
68
  while (parent.tagName !== HtmlAttributeNames.listItem) {
73
69
  parent = parent.parentElement;
74
-
75
70
  if (parent.tagName === HtmlAttributeNames.unorderedList) {
76
71
  return;
77
72
  }
78
73
  }
79
-
80
74
  parent.parentNode.removeChild(parent);
81
75
  };
82
-
83
76
  return /*#__PURE__*/React.createElement(Stack, {
84
77
  style: contentStyles,
85
78
  dir: dir,
@@ -4,17 +4,17 @@ import { defaultMiddlewareLocalizedTexts } from "../../../../common/defaultProps
4
4
  import { defaultTimestampContentStyles } from "../defaultStyles/defaultTimestampContentStyles";
5
5
  import { getTimestampHourMinute } from "../../../../../../common/utils";
6
6
  import { useChatContextStore } from "../../../../../..";
7
- /* eslint @typescript-eslint/no-explicit-any: "off" */
8
7
 
8
+ /* eslint @typescript-eslint/no-explicit-any: "off" */
9
9
  export const SendingTimestamp = _ref => {
10
10
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$m;
11
-
12
11
  let {
13
12
  args
14
13
  } = _ref;
15
14
  const [state] = useChatContextStore();
16
15
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
17
- const contentStyles = { ...defaultTimestampContentStyles,
16
+ const contentStyles = {
17
+ ...defaultTimestampContentStyles,
18
18
  ...((_state$domainStates$r2 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.timestampContentStyleProps)
19
19
  };
20
20
  const {
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * This middleware changes the component that shows who's actively typing. It uses the default Microsoft LiveChatWidget styles.
5
5
  ******/
6
+
6
7
  import React from "react";
7
8
  import { DirectLineSenderRole } from "../../enums/DirectLineSenderRole";
8
9
  import { defaultMiddlewareLocalizedTexts } from "../../../common/defaultProps/defaultMiddlewareLocalizedTexts";
@@ -10,11 +11,11 @@ import { defaultTypingIndicatorBubbleStyles } from "./defaultStyles/defaultTypin
10
11
  import { defaultTypingIndicatorContainerStyles } from "./defaultStyles/defaultTypingIndicatorContainerStyles";
11
12
  import { defaultTypingIndicatorMessageStyles } from "./defaultStyles/defaultTypingIndicatorMessageStyles";
12
13
  import { useChatContextStore } from "../../../../..";
13
- import useChatSDKStore from "../../../../../hooks/useChatSDKStore"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ import useChatSDKStore from "../../../../../hooks/useChatSDKStore";
14
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
17
  const TypingIndicator = _ref => {
16
18
  var _state$domainStates$l, _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3;
17
-
18
19
  let {
19
20
  activeTyping,
20
21
  visible
@@ -22,39 +23,37 @@ const TypingIndicator = _ref => {
22
23
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
24
  const chatSDK = useChatSDKStore();
24
25
  const [state] = useChatContextStore();
25
-
26
26
  if (!activeTyping || Object.keys(activeTyping).length === 0 || ((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : _state$domainStates$l.LiveChatVersion) === 1 && !visible) {
27
27
  return null;
28
28
  }
29
-
30
29
  activeTyping = Object.keys(activeTyping).map(key => activeTyping[key]);
31
-
32
30
  for (let i = 0; i < activeTyping.length; i++) {
33
31
  if (activeTyping[i].role && activeTyping[i].role === DirectLineSenderRole.User) {
34
32
  var _state$domainStates$l2;
35
-
36
33
  //visible is set to false if the current user is typing, in which case, we just send typing indicator to OC
37
34
  if (((_state$domainStates$l2 = state.domainStates.liveChatConfig) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.LiveChatVersion) === 2 && !visible) {
38
35
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.sendTypingEvent();
39
36
  return null;
40
37
  }
41
-
42
38
  activeTyping.splice(i, 1);
43
39
  i--;
44
40
  }
45
41
  }
46
-
47
- const localizedTexts = { ...defaultMiddlewareLocalizedTexts,
42
+ const localizedTexts = {
43
+ ...defaultMiddlewareLocalizedTexts,
48
44
  ...state.domainStates.middlewareLocalizedTexts
49
45
  };
50
46
  const message = getTypingIndicatorMessage(activeTyping, localizedTexts);
51
- const typingIndicatorStyles = { ...defaultTypingIndicatorContainerStyles,
47
+ const typingIndicatorStyles = {
48
+ ...defaultTypingIndicatorContainerStyles,
52
49
  ...((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.typingIndicatorStyleProps)
53
50
  };
54
- const typingIndicatorBubbleStyles = { ...defaultTypingIndicatorBubbleStyles,
51
+ const typingIndicatorBubbleStyles = {
52
+ ...defaultTypingIndicatorBubbleStyles,
55
53
  ...((_state$domainStates$r2 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.typingIndicatorBubbleStyleProps)
56
54
  };
57
- const typingIndicatorMessageStyles = { ...defaultTypingIndicatorMessageStyles,
55
+ const typingIndicatorMessageStyles = {
56
+ ...defaultTypingIndicatorMessageStyles,
58
57
  ...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.typingIndicatorMessageStyleProps)
59
58
  };
60
59
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, `
@@ -96,9 +95,9 @@ const TypingIndicator = _ref => {
96
95
  }), /*#__PURE__*/React.createElement("div", {
97
96
  style: typingIndicatorMessageStyles
98
97
  }, " ", message, " ")));
99
- }; // eslint-disable-next-line react/display-name, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
100
-
98
+ };
101
99
 
100
+ // eslint-disable-next-line react/display-name, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
102
101
  export const typingIndicatorMiddleware = () => next => args => {
103
102
  const {
104
103
  activeTyping,
@@ -108,8 +107,9 @@ export const typingIndicatorMiddleware = () => next => args => {
108
107
  activeTyping: activeTyping,
109
108
  visible: visible
110
109
  });
111
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
+ };
112
111
 
112
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
113
  const getTypingIndicatorMessage = (activeTyping, localizedTexts) => {
114
114
  if (!activeTyping || activeTyping.length === 0) {
115
115
  return "";
@@ -120,19 +120,15 @@ const getTypingIndicatorMessage = (activeTyping, localizedTexts) => {
120
120
  const firstMember = activeTyping[0].name;
121
121
  const lastMember = activeTyping[1].name;
122
122
  let message = localizedTexts.MIDDLEWARE_TYPING_INDICATOR_TWO;
123
-
124
123
  if (!message) {
125
124
  return "";
126
125
  }
127
-
128
126
  if (message.includes("{0}")) {
129
127
  message = message.replace("{0}", firstMember);
130
128
  }
131
-
132
129
  if (message.includes("{1}")) {
133
130
  message = message.replace("{1}", lastMember);
134
131
  }
135
-
136
132
  return message;
137
133
  } else {
138
134
  const message = localizedTexts.MIDDLEWARE_TYPING_INDICATOR_MULTIPLE;
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Handles attachment sending.
5
5
  ******/
6
- import { WebChatActionType } from "../../enums/WebChatActionType"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
6
 
7
+ import { WebChatActionType } from "../../enums/WebChatActionType";
8
+
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
10
  const createSendFileAction = files => {
9
11
  return {
10
12
  payload: {
@@ -12,31 +14,26 @@ const createSendFileAction = files => {
12
14
  },
13
15
  type: WebChatActionType.WEB_CHAT_SEND_FILES
14
16
  };
15
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
-
17
+ };
17
18
 
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
20
  const attachmentProcessingMiddleware = _ref => {
19
21
  let {
20
22
  dispatch
21
23
  } = _ref;
22
24
  return next => async action => {
23
25
  var _action$payload, _action$payload$files;
24
-
25
26
  if ((action === null || action === void 0 ? void 0 : action.type) === WebChatActionType.WEB_CHAT_SEND_FILES && (action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : (_action$payload$files = _action$payload.files) === null || _action$payload$files === void 0 ? void 0 : _action$payload$files.length) > 0) {
26
27
  const files = action.payload.files;
27
-
28
28
  if (files.length === 1) {
29
29
  return next(action);
30
30
  }
31
-
32
31
  const dispatchAction = createSendFileAction(files.slice(0, files.length - 1));
33
32
  const nextAction = createSendFileAction([files[files.length - 1]]);
34
33
  await dispatch(dispatchAction);
35
34
  return next(nextAction);
36
35
  }
37
-
38
36
  return next(action);
39
37
  };
40
38
  };
41
-
42
39
  export default attachmentProcessingMiddleware;