@microsoft/omnichannel-chat-widget 0.1.0-main.ce08f21 → 0.1.0-main.ce5063d

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 (288) hide show
  1. package/lib/cjs/assets/Icons.js +4 -2
  2. package/lib/cjs/common/Constants.js +17 -168
  3. package/lib/cjs/common/KeyCodes.js +0 -3
  4. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +24 -0
  6. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  7. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  8. package/lib/cjs/common/telemetry/TelemetryConstants.js +28 -23
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  14. package/lib/cjs/common/utils.js +24 -105
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  17. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  18. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -32
  19. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  20. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  22. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  23. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  26. package/lib/cjs/components/headerstateful/HeaderStateful.js +15 -30
  27. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  28. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +2 -9
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -5
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -11
  31. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +11 -19
  32. package/lib/cjs/components/livechatwidget/common/Deferred.js +3 -10
  33. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  34. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -13
  35. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  36. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  37. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  38. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +62 -38
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +50 -35
  42. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  43. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  44. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  45. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +20 -54
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +78 -136
  47. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  48. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  49. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  50. package/lib/cjs/components/livechatwidget/common/startChat.js +169 -139
  51. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  52. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  53. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  54. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +226 -243
  55. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  56. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  57. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  58. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  59. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  60. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  61. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  62. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  63. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  64. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -37
  65. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  66. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  67. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +29 -34
  68. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  69. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  70. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  71. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  72. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -17
  73. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  74. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  75. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  76. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -4
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  119. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  120. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  121. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  122. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  123. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -29
  124. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +10 -11
  125. package/lib/cjs/contexts/createReducer.js +154 -108
  126. package/lib/cjs/controller/componentController.js +2 -31
  127. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  128. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  129. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  130. package/lib/cjs/index.js +0 -5
  131. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  132. package/lib/esm/assets/Icons.js +2 -1
  133. package/lib/esm/common/Constants.js +14 -155
  134. package/lib/esm/common/KeyCodes.js +0 -2
  135. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  136. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  137. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  138. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  139. package/lib/esm/common/telemetry/TelemetryConstants.js +32 -20
  140. package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
  141. package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
  142. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  143. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  144. package/lib/esm/common/utils.js +21 -53
  145. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  146. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  147. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  148. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  149. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  150. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  151. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  152. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  153. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  154. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -15
  155. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  156. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +2 -6
  157. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -3
  158. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -8
  159. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +11 -15
  160. package/lib/esm/components/livechatwidget/common/Deferred.js +3 -8
  161. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  162. package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
  163. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  164. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  165. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  166. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  167. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +64 -25
  168. package/lib/esm/components/livechatwidget/common/endChat.js +52 -20
  169. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  170. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  171. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  172. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +22 -19
  173. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +78 -118
  174. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  175. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  176. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  177. package/lib/esm/components/livechatwidget/common/startChat.js +171 -115
  178. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  179. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  180. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +230 -179
  181. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  182. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  183. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  184. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  185. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  186. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  187. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  188. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  189. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  190. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -21
  191. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  192. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  193. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
  194. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  195. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  196. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  197. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  198. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -13
  199. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  200. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  201. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  202. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -2
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  245. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  246. package/lib/esm/contexts/ChatContextStore.js +2 -1
  247. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  248. package/lib/esm/contexts/common/ConversationState.js +0 -1
  249. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -29
  250. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +10 -7
  251. package/lib/esm/contexts/createReducer.js +154 -105
  252. package/lib/esm/controller/componentController.js +3 -2
  253. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  254. package/lib/esm/hooks/useChatContextStore.js +0 -4
  255. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  256. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  257. package/lib/types/assets/Icons.d.ts +1 -0
  258. package/lib/types/common/Constants.d.ts +12 -0
  259. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  260. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  261. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  262. package/lib/types/common/telemetry/TelemetryConstants.d.ts +16 -5
  263. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  264. package/lib/types/common/utils.d.ts +1 -0
  265. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  266. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  267. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  268. package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
  269. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -1
  270. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
  271. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  272. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  273. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  274. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  275. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  276. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  277. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  278. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  279. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  280. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  281. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  282. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  283. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  284. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  285. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
  286. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -28
  287. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  288. package/package.json +3 -3
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
2
  /******
4
3
  * AttachmentMiddleware
5
4
  *
6
5
  * Handles attachment downloading.
7
6
  ******/
7
+
8
8
  import { Constants, MimeTypes, WebChatMiddlewareConstants } from "../../../../../common/Constants";
9
9
  import React from "react";
10
10
  import { getFileAttachmentIconData, isInlineMediaSupported } from "../../../common/utils/FileAttachmentIconManager";
@@ -21,14 +21,12 @@ import { defaultAttachmentProps } from "../../../common/defaultProps/defaultAtta
21
21
  import { defaultAttachmentSizeStyles } from "./defaultStyles/defaultAttachmentSizeStyles";
22
22
  import { defaultAttachmentStyles } from "./defaultStyles/defaultAtttachmentStyles";
23
23
  import { useChatContextStore } from "../../../../..";
24
-
25
24
  const AttachmentContent = props => {
26
25
  return /*#__PURE__*/React.createElement("div", {
27
26
  id: props.id,
28
27
  style: props.style
29
28
  }, props.children);
30
29
  };
31
-
32
30
  const AttachmentIcon = props => {
33
31
  return /*#__PURE__*/React.createElement("div", {
34
32
  id: props.id,
@@ -37,10 +35,8 @@ const AttachmentIcon = props => {
37
35
  src: props.src ?? getFileAttachmentIconData("txt")
38
36
  }));
39
37
  };
40
-
41
38
  const Attachment = props => {
42
39
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3, _state$domainStates$r4, _state$domainStates$r5, _state$domainStates$r6, _state$domainStates$r7, _state$domainStates$r8, _state$domainStates$r9;
43
-
44
40
  const {
45
41
  iconData,
46
42
  imageCard,
@@ -49,34 +45,41 @@ const Attachment = props => {
49
45
  } = props;
50
46
  const [state] = useChatContextStore();
51
47
  const attachmentId = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : (_state$domainStates$r2 = _state$domainStates$r.attachmentProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.webChatAttachmentId) ?? defaultAttachmentProps.webChatAttachmentId;
52
- const attachmentDividerStyles = { ...defaultAttachmentDividerStyles,
48
+ const attachmentDividerStyles = {
49
+ ...defaultAttachmentDividerStyles,
53
50
  ...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.attachmentDividerStyles)
54
51
  };
55
- const attachmentIconStyles = { ...defaultAttachmentIconStyles,
52
+ const attachmentIconStyles = {
53
+ ...defaultAttachmentIconStyles,
56
54
  ...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.attachmentIconStyles)
57
55
  };
58
- const attachmentStyles = { ...defaultAttachmentStyles,
56
+ const attachmentStyles = {
57
+ ...defaultAttachmentStyles,
59
58
  ...((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.attachmentStyles)
60
59
  };
61
- const attachmentSizeStylesString = Object.entries({ ...defaultAttachmentSizeStyles,
60
+ const attachmentSizeStylesString = Object.entries({
61
+ ...defaultAttachmentSizeStyles,
62
62
  ...((_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.attachmentSizeStyles)
63
63
  }).map(_ref => {
64
64
  let [k, v] = _ref;
65
65
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
66
66
  }).join(";");
67
- const attachmentContentStylesString = Object.entries({ ...defaultAttachmentContentStyles,
67
+ const attachmentContentStylesString = Object.entries({
68
+ ...defaultAttachmentContentStyles,
68
69
  ...((_state$domainStates$r7 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r7 === void 0 ? void 0 : _state$domainStates$r7.attachmentContentStyles)
69
70
  }).map(_ref2 => {
70
71
  let [k, v] = _ref2;
71
72
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
72
73
  }).join(";");
73
- const attachmentFileNameStylesString = Object.entries({ ...defaultAttachmentFileNameStyles,
74
+ const attachmentFileNameStylesString = Object.entries({
75
+ ...defaultAttachmentFileNameStyles,
74
76
  ...((_state$domainStates$r8 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r8 === void 0 ? void 0 : _state$domainStates$r8.attachmentFileNameStyles)
75
77
  }).map(_ref3 => {
76
78
  let [k, v] = _ref3;
77
79
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
78
80
  }).join(";");
79
- const attachmentDownloadIconStylesString = Object.entries({ ...defaultAttachmentDownloadIconStyles,
81
+ const attachmentDownloadIconStylesString = Object.entries({
82
+ ...defaultAttachmentDownloadIconStyles,
80
83
  ...((_state$domainStates$r9 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r9 === void 0 ? void 0 : _state$domainStates$r9.attachmentDownloadIconStyles)
81
84
  }).map(_ref4 => {
82
85
  let [k, v] = _ref4;
@@ -102,13 +105,12 @@ const Attachment = props => {
102
105
  style: attachmentIconStyles
103
106
  }), textCard && renderer(textCard))));
104
107
  };
108
+
105
109
  /**
106
110
  * Patch card with different attachment data.
107
111
  * @param card
108
112
  * @param newAttachment
109
113
  */
110
-
111
-
112
114
  const patchAttachment = (card, newAttachment) => {
113
115
  const {
114
116
  activity,
@@ -125,7 +127,6 @@ const patchAttachment = (card, newAttachment) => {
125
127
  attachment: patchedAttachment
126
128
  };
127
129
  };
128
-
129
130
  const genPreviewCardWithAttachment = (card, iconData, next) => {
130
131
  const patchedTextCard = patchAttachment(card, {
131
132
  contentType: MimeTypes.UnknownFileType,
@@ -138,35 +139,30 @@ const genPreviewCardWithAttachment = (card, iconData, next) => {
138
139
  renderer: next
139
140
  });
140
141
  };
141
-
142
142
  const createAttachmentMiddleware = enableInlinePlaying => {
143
143
  // eslint-disable-next-line react/display-name
144
144
  const attachmentMiddleware = () => next => function () {
145
145
  var _state$domainStates$r10, _state$domainStates$r11, _state$domainStates$r12, _card$activity$channe;
146
-
147
146
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
148
147
  args[_key] = arguments[_key];
149
148
  }
150
-
151
149
  const [card] = args;
152
-
153
150
  if (!(card !== null && card !== void 0 && card.activity)) {
154
151
  return next(...args);
155
152
  }
156
-
157
153
  const {
158
154
  activity: {
159
155
  attachments
160
156
  },
161
157
  attachment
162
- } = card; // No attachment
163
-
158
+ } = card;
159
+ // No attachment
164
160
  if (!attachments || !attachments.length || !attachment) {
165
161
  return next(...args);
166
- } // Check for Adaptive cards
167
- // eslint-disable-next-line prefer-const
168
-
162
+ }
169
163
 
164
+ // Check for Adaptive cards
165
+ // eslint-disable-next-line prefer-const
170
166
  let {
171
167
  content,
172
168
  contentType
@@ -179,7 +175,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
179
175
  } = content || {
180
176
  type: ""
181
177
  };
182
-
183
178
  if (!type && content && Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
184
179
  try {
185
180
  content = JSON.parse(content);
@@ -196,41 +191,35 @@ const createAttachmentMiddleware = enableInlinePlaying => {
196
191
  });
197
192
  }
198
193
  }
199
-
200
194
  const [state] = useChatContextStore();
201
195
  const attachmentId = ((_state$domainStates$r10 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r10 === void 0 ? void 0 : (_state$domainStates$r11 = _state$domainStates$r10.attachmentProps) === null || _state$domainStates$r11 === void 0 ? void 0 : _state$domainStates$r11.adaptiveCardAttachmentId) ?? defaultAttachmentProps.adaptiveCardAttachmentId;
202
- const atttachmentAdaptiveCardStyles = { ...defaultAttachmentAdaptiveCardStyles,
196
+ const atttachmentAdaptiveCardStyles = {
197
+ ...defaultAttachmentAdaptiveCardStyles,
203
198
  ...((_state$domainStates$r12 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r12 === void 0 ? void 0 : _state$domainStates$r12.attachmentAdaptiveCardStyles)
204
199
  };
205
-
206
200
  if (type === WebChatMiddlewareConstants.adaptiveCard || Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
207
201
  return /*#__PURE__*/React.createElement("div", {
208
202
  id: attachmentId,
209
203
  style: atttachmentAdaptiveCardStyles
210
204
  }, next(...args));
211
205
  }
212
-
213
206
  if ((_card$activity$channe = card.activity.channelData) !== null && _card$activity$channe !== void 0 && _card$activity$channe.middlewareData) {
214
207
  attachment.contentUrl = card.activity.channelData.middlewareData[attachment.name];
215
208
  } else if (attachment !== null && attachment !== void 0 && attachment.tempContentUrl) {
216
209
  attachment.contentUrl = attachment.tempContentUrl;
217
210
  }
218
-
219
211
  const fileExtension = attachment.name.substring(attachment.name.lastIndexOf(".") + 1, attachment.name.length) || attachment.name;
220
212
  const imageExtension = Constants.imageRegex.test(attachment.name);
221
213
  const audioExtension = Constants.audioMediaRegex.test(attachment.name);
222
214
  const videoExtension = Constants.videoMediaRegex.test(attachment.name);
223
215
  const iconData = getFileAttachmentIconData(fileExtension);
224
-
225
216
  if (imageExtension) {
226
217
  return genPreviewCardWithAttachment(card, iconData, next);
227
218
  }
228
-
229
219
  if (audioExtension || videoExtension) {
230
220
  if (enableInlinePlaying && card.activity.actionType && card.activity.actionType === WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isInlineMediaSupported(attachment.name)) {
231
221
  return genPreviewCardWithAttachment(card, iconData, next);
232
222
  }
233
-
234
223
  return /*#__PURE__*/React.createElement(Attachment, {
235
224
  iconData: iconData,
236
225
  textCard: patchAttachment(card, {
@@ -240,7 +229,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
240
229
  renderer: next
241
230
  });
242
231
  }
243
-
244
232
  if (fileExtension === "txt") {
245
233
  return /*#__PURE__*/React.createElement(Attachment, {
246
234
  iconData: iconData,
@@ -251,15 +239,12 @@ const createAttachmentMiddleware = enableInlinePlaying => {
251
239
  renderer: next
252
240
  });
253
241
  }
254
-
255
242
  return /*#__PURE__*/React.createElement(Attachment, {
256
243
  iconData: iconData,
257
244
  textCard: card,
258
245
  renderer: next
259
246
  });
260
247
  };
261
-
262
248
  return attachmentMiddleware;
263
249
  };
264
-
265
250
  export default createAttachmentMiddleware;
@@ -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 {