@microsoft/omnichannel-chat-widget 0.1.0-main.eb80fb1 → 0.1.0-main.ebfc563

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 (325) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +54 -153
  4. package/lib/cjs/common/KeyCodes.js +3 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  6. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  7. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +111 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +85 -24
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +31 -56
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -35
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  14. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  15. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  16. package/lib/cjs/common/utils.js +80 -80
  17. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  18. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  19. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -71
  21. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  24. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  25. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  28. package/lib/cjs/components/headerstateful/HeaderStateful.js +26 -35
  29. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  30. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  33. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  34. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  35. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  36. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  37. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  38. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  39. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  40. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +132 -61
  43. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  44. package/lib/cjs/components/livechatwidget/common/endChat.js +167 -61
  45. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  46. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  47. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  48. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +50 -52
  49. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +98 -66
  50. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  51. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
  52. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  53. package/lib/cjs/components/livechatwidget/common/startChat.js +287 -90
  54. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  55. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  56. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  57. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +354 -170
  58. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  59. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  60. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  61. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  62. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  63. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  64. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  65. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  66. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  67. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -45
  68. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  69. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -35
  70. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  71. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  74. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  75. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  76. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +9 -16
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  79. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  80. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  81. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -61
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  123. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  124. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  125. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  126. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  127. package/lib/cjs/contexts/common/ConversationState.js +4 -3
  128. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -26
  129. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -11
  130. package/lib/cjs/contexts/createReducer.js +169 -109
  131. package/lib/cjs/controller/componentController.js +5 -34
  132. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  133. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  134. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  135. package/lib/cjs/index.js +0 -5
  136. package/lib/cjs/plugins/newMessageEventHandler.js +82 -0
  137. package/lib/esm/assets/Icons.js +2 -1
  138. package/lib/esm/common/Constants.js +49 -141
  139. package/lib/esm/common/KeyCodes.js +3 -3
  140. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  141. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  142. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  143. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  144. package/lib/esm/common/telemetry/TelemetryConstants.js +84 -19
  145. package/lib/esm/common/telemetry/TelemetryHelper.js +32 -46
  146. package/lib/esm/common/telemetry/TelemetryManager.js +17 -24
  147. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  148. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  149. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  150. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  151. package/lib/esm/common/utils.js +73 -45
  152. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  153. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  154. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  155. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -47
  156. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  157. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  158. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  159. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  160. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  161. package/lib/esm/components/headerstateful/HeaderStateful.js +27 -21
  162. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  163. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  164. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  165. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  166. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  167. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  168. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  169. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  170. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  171. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  172. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  173. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  174. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  175. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +134 -49
  176. package/lib/esm/components/livechatwidget/common/endChat.js +171 -50
  177. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  178. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  179. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  180. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +52 -24
  181. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -58
  182. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  183. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
  184. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  185. package/lib/esm/components/livechatwidget/common/startChat.js +287 -71
  186. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  187. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  188. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +357 -122
  189. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  190. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  191. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  192. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  193. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  194. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  195. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  196. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  197. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  198. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +16 -30
  199. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  200. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +24 -12
  201. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  202. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  203. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  204. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  205. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  206. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  207. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +9 -12
  208. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  209. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  210. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  211. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  212. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -40
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  254. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  255. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  256. package/lib/esm/contexts/ChatContextStore.js +2 -1
  257. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  258. package/lib/esm/contexts/common/ConversationState.js +4 -3
  259. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -26
  260. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -7
  261. package/lib/esm/contexts/createReducer.js +169 -105
  262. package/lib/esm/controller/componentController.js +6 -5
  263. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  264. package/lib/esm/hooks/useChatContextStore.js +0 -4
  265. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  266. package/lib/esm/plugins/newMessageEventHandler.js +75 -0
  267. package/lib/types/assets/Icons.d.ts +1 -0
  268. package/lib/types/common/Constants.d.ts +41 -2
  269. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  270. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  271. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  272. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  273. package/lib/types/common/telemetry/TelemetryConstants.d.ts +59 -6
  274. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  275. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  276. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  277. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  278. package/lib/types/common/utils.d.ts +8 -1
  279. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  280. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  281. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  282. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  283. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  284. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  285. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  286. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  287. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  288. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  289. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  290. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  291. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -4
  292. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  293. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
  294. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  295. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +4 -1
  296. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  297. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  298. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  299. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  300. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  301. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  302. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  303. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  304. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  305. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  306. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  307. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  308. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  309. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  310. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  311. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  312. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  313. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  314. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  315. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  317. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  318. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  319. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  320. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  321. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  322. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -25
  323. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  324. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  325. package/package.json +12 -13
@@ -4,53 +4,36 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _Constants = require("../../../../../common/Constants");
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _FileAttachmentIconManager = require("../../../common/utils/FileAttachmentIconManager");
13
-
10
+ var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
14
11
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
15
-
16
12
  var _WebChatActionType = require("../../enums/WebChatActionType");
17
-
18
13
  var _defaultAtttachmentAdaptiveCardStyles = require("./defaultStyles/defaultAtttachmentAdaptiveCardStyles");
19
-
20
14
  var _defaultAttachmentContentStyles = require("./defaultStyles/defaultAttachmentContentStyles");
21
-
22
15
  var _defaultAttachmentDividerStyles = require("./defaultStyles/defaultAttachmentDividerStyles");
23
-
24
16
  var _defaultAttachmentDownloadIconStyles = require("./defaultStyles/defaultAttachmentDownloadIconStyles");
25
-
26
17
  var _defaultAttachmentFileNameStyles = require("./defaultStyles/defaultAttachmentFileNameStyles");
27
-
28
18
  var _defaultAtttachmentIconStyles = require("./defaultStyles/defaultAtttachmentIconStyles");
29
-
30
19
  var _defaultAttachmentProps = require("../../../common/defaultProps/defaultAttachmentProps");
31
-
32
20
  var _defaultAttachmentSizeStyles = require("./defaultStyles/defaultAttachmentSizeStyles");
33
-
34
21
  var _defaultAtttachmentStyles = require("./defaultStyles/defaultAtttachmentStyles");
35
-
36
22
  var _ = require("../../../../..");
37
-
38
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
24
  /* eslint-disable @typescript-eslint/no-explicit-any */
41
-
42
25
  /******
43
26
  * AttachmentMiddleware
44
27
  *
45
28
  * Handles attachment downloading.
46
29
  ******/
30
+
47
31
  const AttachmentContent = props => {
48
32
  return /*#__PURE__*/_react.default.createElement("div", {
49
33
  id: props.id,
50
34
  style: props.style
51
35
  }, props.children);
52
36
  };
53
-
54
37
  const AttachmentIcon = props => {
55
38
  return /*#__PURE__*/_react.default.createElement("div", {
56
39
  id: props.id,
@@ -59,10 +42,8 @@ const AttachmentIcon = props => {
59
42
  src: props.src ?? (0, _FileAttachmentIconManager.getFileAttachmentIconData)("txt")
60
43
  }));
61
44
  };
62
-
63
45
  const Attachment = props => {
64
46
  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;
65
-
66
47
  const {
67
48
  iconData,
68
49
  imageCard,
@@ -71,34 +52,41 @@ const Attachment = props => {
71
52
  } = props;
72
53
  const [state] = (0, _.useChatContextStore)();
73
54
  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.defaultAttachmentProps.webChatAttachmentId;
74
- const attachmentDividerStyles = { ..._defaultAttachmentDividerStyles.defaultAttachmentDividerStyles,
55
+ const attachmentDividerStyles = {
56
+ ..._defaultAttachmentDividerStyles.defaultAttachmentDividerStyles,
75
57
  ...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.attachmentDividerStyles)
76
58
  };
77
- const attachmentIconStyles = { ..._defaultAtttachmentIconStyles.defaultAttachmentIconStyles,
59
+ const attachmentIconStyles = {
60
+ ..._defaultAtttachmentIconStyles.defaultAttachmentIconStyles,
78
61
  ...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.attachmentIconStyles)
79
62
  };
80
- const attachmentStyles = { ..._defaultAtttachmentStyles.defaultAttachmentStyles,
63
+ const attachmentStyles = {
64
+ ..._defaultAtttachmentStyles.defaultAttachmentStyles,
81
65
  ...((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.attachmentStyles)
82
66
  };
83
- const attachmentSizeStylesString = Object.entries({ ..._defaultAttachmentSizeStyles.defaultAttachmentSizeStyles,
67
+ const attachmentSizeStylesString = Object.entries({
68
+ ..._defaultAttachmentSizeStyles.defaultAttachmentSizeStyles,
84
69
  ...((_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.attachmentSizeStyles)
85
70
  }).map(_ref => {
86
71
  let [k, v] = _ref;
87
72
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
88
73
  }).join(";");
89
- const attachmentContentStylesString = Object.entries({ ..._defaultAttachmentContentStyles.defaultAttachmentContentStyles,
74
+ const attachmentContentStylesString = Object.entries({
75
+ ..._defaultAttachmentContentStyles.defaultAttachmentContentStyles,
90
76
  ...((_state$domainStates$r7 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r7 === void 0 ? void 0 : _state$domainStates$r7.attachmentContentStyles)
91
77
  }).map(_ref2 => {
92
78
  let [k, v] = _ref2;
93
79
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
94
80
  }).join(";");
95
- const attachmentFileNameStylesString = Object.entries({ ..._defaultAttachmentFileNameStyles.defaultAttachmentFileNameStyles,
81
+ const attachmentFileNameStylesString = Object.entries({
82
+ ..._defaultAttachmentFileNameStyles.defaultAttachmentFileNameStyles,
96
83
  ...((_state$domainStates$r8 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r8 === void 0 ? void 0 : _state$domainStates$r8.attachmentFileNameStyles)
97
84
  }).map(_ref3 => {
98
85
  let [k, v] = _ref3;
99
86
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
100
87
  }).join(";");
101
- const attachmentDownloadIconStylesString = Object.entries({ ..._defaultAttachmentDownloadIconStyles.defaultAttachmentDownloadIconStyles,
88
+ const attachmentDownloadIconStylesString = Object.entries({
89
+ ..._defaultAttachmentDownloadIconStyles.defaultAttachmentDownloadIconStyles,
102
90
  ...((_state$domainStates$r9 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r9 === void 0 ? void 0 : _state$domainStates$r9.attachmentDownloadIconStyles)
103
91
  }).map(_ref4 => {
104
92
  let [k, v] = _ref4;
@@ -124,13 +112,12 @@ const Attachment = props => {
124
112
  style: attachmentIconStyles
125
113
  }), textCard && renderer(textCard))));
126
114
  };
115
+
127
116
  /**
128
117
  * Patch card with different attachment data.
129
118
  * @param card
130
119
  * @param newAttachment
131
120
  */
132
-
133
-
134
121
  const patchAttachment = (card, newAttachment) => {
135
122
  const {
136
123
  activity,
@@ -147,7 +134,6 @@ const patchAttachment = (card, newAttachment) => {
147
134
  attachment: patchedAttachment
148
135
  };
149
136
  };
150
-
151
137
  const genPreviewCardWithAttachment = (card, iconData, next) => {
152
138
  const patchedTextCard = patchAttachment(card, {
153
139
  contentType: _Constants.MimeTypes.UnknownFileType,
@@ -160,35 +146,30 @@ const genPreviewCardWithAttachment = (card, iconData, next) => {
160
146
  renderer: next
161
147
  });
162
148
  };
163
-
164
149
  const createAttachmentMiddleware = enableInlinePlaying => {
165
150
  // eslint-disable-next-line react/display-name
166
151
  const attachmentMiddleware = () => next => function () {
167
152
  var _state$domainStates$r10, _state$domainStates$r11, _state$domainStates$r12, _card$activity$channe;
168
-
169
153
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
170
154
  args[_key] = arguments[_key];
171
155
  }
172
-
173
156
  const [card] = args;
174
-
175
157
  if (!(card !== null && card !== void 0 && card.activity)) {
176
158
  return next(...args);
177
159
  }
178
-
179
160
  const {
180
161
  activity: {
181
162
  attachments
182
163
  },
183
164
  attachment
184
- } = card; // No attachment
185
-
165
+ } = card;
166
+ // No attachment
186
167
  if (!attachments || !attachments.length || !attachment) {
187
168
  return next(...args);
188
- } // Check for Adaptive cards
189
- // eslint-disable-next-line prefer-const
190
-
169
+ }
191
170
 
171
+ // Check for Adaptive cards
172
+ // eslint-disable-next-line prefer-const
192
173
  let {
193
174
  content,
194
175
  contentType
@@ -201,7 +182,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
201
182
  } = content || {
202
183
  type: ""
203
184
  };
204
-
205
185
  if (!type && content && _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
206
186
  try {
207
187
  content = JSON.parse(content);
@@ -209,9 +189,8 @@ const createAttachmentMiddleware = enableInlinePlaying => {
209
189
  card.attachment.content = content;
210
190
  } catch (e) {
211
191
  const errorData = "Unable to parse the adaptive card format";
212
-
213
192
  _omnichannelChatComponents.BroadcastService.postMessage({
214
- eventName: "InvalidAdaptiveCardFormat",
193
+ eventName: _TelemetryConstants.BroadcastEvent.InvalidAdaptiveCardFormat,
215
194
  payload: {
216
195
  Message: errorData,
217
196
  ExceptionDetails: e
@@ -219,45 +198,35 @@ const createAttachmentMiddleware = enableInlinePlaying => {
219
198
  });
220
199
  }
221
200
  }
222
-
223
201
  const [state] = (0, _.useChatContextStore)();
224
202
  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.defaultAttachmentProps.adaptiveCardAttachmentId;
225
- const atttachmentAdaptiveCardStyles = { ..._defaultAtttachmentAdaptiveCardStyles.defaultAttachmentAdaptiveCardStyles,
203
+ const atttachmentAdaptiveCardStyles = {
204
+ ..._defaultAtttachmentAdaptiveCardStyles.defaultAttachmentAdaptiveCardStyles,
226
205
  ...((_state$domainStates$r12 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r12 === void 0 ? void 0 : _state$domainStates$r12.attachmentAdaptiveCardStyles)
227
206
  };
228
-
229
207
  if (type === _Constants.WebChatMiddlewareConstants.adaptiveCard || _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
230
208
  return /*#__PURE__*/_react.default.createElement("div", {
231
209
  id: attachmentId,
232
210
  style: atttachmentAdaptiveCardStyles
233
211
  }, next(...args));
234
212
  }
235
-
236
213
  if ((_card$activity$channe = card.activity.channelData) !== null && _card$activity$channe !== void 0 && _card$activity$channe.middlewareData) {
237
214
  attachment.contentUrl = card.activity.channelData.middlewareData[attachment.name];
238
215
  } else if (attachment !== null && attachment !== void 0 && attachment.tempContentUrl) {
239
216
  attachment.contentUrl = attachment.tempContentUrl;
240
217
  }
241
-
242
218
  const fileExtension = attachment.name.substring(attachment.name.lastIndexOf(".") + 1, attachment.name.length) || attachment.name;
243
-
244
219
  const imageExtension = _Constants.Constants.imageRegex.test(attachment.name);
245
-
246
220
  const audioExtension = _Constants.Constants.audioMediaRegex.test(attachment.name);
247
-
248
221
  const videoExtension = _Constants.Constants.videoMediaRegex.test(attachment.name);
249
-
250
222
  const iconData = (0, _FileAttachmentIconManager.getFileAttachmentIconData)(fileExtension);
251
-
252
223
  if (imageExtension) {
253
224
  return genPreviewCardWithAttachment(card, iconData, next);
254
225
  }
255
-
256
226
  if (audioExtension || videoExtension) {
257
227
  if (enableInlinePlaying && card.activity.actionType && card.activity.actionType === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && (0, _FileAttachmentIconManager.isInlineMediaSupported)(attachment.name)) {
258
228
  return genPreviewCardWithAttachment(card, iconData, next);
259
229
  }
260
-
261
230
  return /*#__PURE__*/_react.default.createElement(Attachment, {
262
231
  iconData: iconData,
263
232
  textCard: patchAttachment(card, {
@@ -267,8 +236,8 @@ const createAttachmentMiddleware = enableInlinePlaying => {
267
236
  renderer: next
268
237
  });
269
238
  }
270
-
271
- if (fileExtension === "txt") {
239
+ const isUnknownImageObject = contentType.toLowerCase().includes("image") && !imageExtension;
240
+ if (fileExtension === "txt" || isUnknownImageObject) {
272
241
  return /*#__PURE__*/_react.default.createElement(Attachment, {
273
242
  iconData: iconData,
274
243
  textCard: patchAttachment(card, {
@@ -278,16 +247,13 @@ const createAttachmentMiddleware = enableInlinePlaying => {
278
247
  renderer: next
279
248
  });
280
249
  }
281
-
282
250
  return /*#__PURE__*/_react.default.createElement(Attachment, {
283
251
  iconData: iconData,
284
252
  textCard: card,
285
253
  renderer: next
286
254
  });
287
255
  };
288
-
289
256
  return attachmentMiddleware;
290
257
  };
291
-
292
258
  var _default = createAttachmentMiddleware;
293
259
  exports.default = _default;
@@ -4,31 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createAvatarMiddleware = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _Constants = require("../../../../../common/Constants");
11
-
12
9
  var _defaultAvatarStyles = require("./defaultStyles/defaultAvatarStyles");
13
-
14
10
  var _defaultAvatarTextStyles = require("./defaultStyles/defaultAvatarTextStyles");
15
-
16
11
  var _utils = require("../../../../../common/utils");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  /******
21
14
  * AvatarMiddleware
22
15
  *
23
16
  * This middleware handles the avatar icon for each non-system message. It does the following processing:
24
17
  * 1. Renders the first two letters of the sender as the profile pic
25
18
  ******/
19
+
26
20
  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
27
21
  const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () => next => function () {
28
22
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
23
  args[_key] = arguments[_key];
30
24
  }
31
-
32
25
  const [params] = args;
33
26
  const {
34
27
  activity: {
@@ -41,23 +34,22 @@ const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () =>
41
34
  },
42
35
  fromUser
43
36
  } = params;
44
-
45
37
  if (fromUser !== false || tags && tags.includes(_Constants.Constants.systemMessageTag)) {
46
38
  return false;
47
39
  }
48
-
49
- const avatarStyles = { ..._defaultAvatarStyles.defaultAvatarStyles,
40
+ const avatarStyles = {
41
+ ..._defaultAvatarStyles.defaultAvatarStyles,
50
42
  ...avatarStyleProps
51
43
  };
52
- const avatarTextStyles = { ..._defaultAvatarTextStyles.defaultAvatarTextStyles,
44
+ const avatarTextStyles = {
45
+ ..._defaultAvatarTextStyles.defaultAvatarTextStyles,
53
46
  ...avatarTextStyleProps
54
- }; // eslint-disable-next-line react/display-name
55
-
47
+ };
48
+ // eslint-disable-next-line react/display-name
56
49
  return () => /*#__PURE__*/_react.default.createElement("div", {
57
50
  style: avatarStyles
58
51
  }, /*#__PURE__*/_react.default.createElement("p", {
59
52
  style: avatarTextStyles
60
53
  }, " ", (0, _utils.getIconText)(name), " "));
61
54
  };
62
-
63
55
  exports.createAvatarMiddleware = createAvatarMiddleware;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCardActionMiddleware = void 0;
7
+ var _BotMagicCodeStore = require("../../BotMagicCodeStore");
8
+ var CardActionType;
9
+ (function (CardActionType) {
10
+ CardActionType["OpenUrl"] = "openUrl";
11
+ CardActionType["SignIn"] = "signin";
12
+ })(CardActionType || (CardActionType = {}));
13
+ const validCardActionTypes = [CardActionType.OpenUrl, CardActionType.SignIn];
14
+ const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
15
+ const createCardActionMiddleware = botMagicCodeConfig => {
16
+ const cardActionMiddleware = () => next => function () {
17
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18
+ args[_key] = arguments[_key];
19
+ }
20
+ // eslint-disable-line @typescript-eslint/no-explicit-any
21
+ const [card] = args;
22
+ if (card.cardAction && validCardActionTypes.indexOf(card.cardAction.type) >= 0 && card.cardAction.value) {
23
+ // Override signin url only if fwdUrl is valid & feature is enabled
24
+ if ((botMagicCodeConfig === null || botMagicCodeConfig === void 0 ? void 0 : botMagicCodeConfig.disabled) === true && botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl) {
25
+ const baseUrl = window.location.origin;
26
+ const result = botOauthUrlRegex.exec(card.cardAction.value);
27
+ if (result) {
28
+ _BotMagicCodeStore.BotMagicCodeStore.botOAuthSignInId = `${result[1]}`;
29
+ }
30
+
31
+ // fwdUrl must be on the same domain as the chat widget
32
+ if (botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl.startsWith(baseUrl)) {
33
+ card.cardAction.value += `&fwdUrl=${botMagicCodeConfig.fwdUrl}`;
34
+ }
35
+ }
36
+ }
37
+ return next(...args);
38
+ };
39
+ return cardActionMiddleware;
40
+ };
41
+ exports.createCardActionMiddleware = createCardActionMiddleware;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom/extend-expect");
4
+ var _cardActionMiddleware = require("./cardActionMiddleware");
5
+ describe("cardActionMiddleware test", () => {
6
+ it("createCardActionMiddleware() with undefined botMagicCodeConfig should not change the sign in card url", () => {
7
+ const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
8
+ const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
9
+ const args = {
10
+ cardAction: {
11
+ type: "signin",
12
+ value: signInUrl
13
+ }
14
+ };
15
+ const results = (0, _cardActionMiddleware.createCardActionMiddleware)(undefined)()(next)(args);
16
+ expect(signInUrl).toEqual(results.cardAction.value);
17
+ });
18
+ it("createCardActionMiddleware() with botMagicCode enabled should not change the sign in card url", () => {
19
+ const botMagicCodeConfig = {
20
+ disabled: false
21
+ };
22
+ const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
23
+ const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
24
+ const args = {
25
+ cardAction: {
26
+ type: "signin",
27
+ value: signInUrl
28
+ }
29
+ };
30
+ const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
31
+ expect(args.cardAction.value).toEqual(results.cardAction.value);
32
+ });
33
+ it("createCardActionMiddleware() with botMagicCode disabled & no fwdUrl should not change the sign in card url", () => {
34
+ const botMagicCodeConfig = {
35
+ disabled: true
36
+ };
37
+ const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
38
+ const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
39
+ const args = {
40
+ cardAction: {
41
+ type: "signin",
42
+ value: signInUrl
43
+ }
44
+ };
45
+ const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
46
+ expect(args.cardAction.value).toEqual(results.cardAction.value);
47
+ });
48
+ it("createCardActionMiddleware() with botMagicCode disabled & fwdUrl should append the fwdUrl in the sign in card url", () => {
49
+ const botMagicCodeConfig = {
50
+ disabled: true,
51
+ fwdUrl: "http://localhost/forwarder.html"
52
+ };
53
+ const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
54
+ const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
55
+ const args = {
56
+ cardAction: {
57
+ type: "signin",
58
+ value: signInUrl
59
+ }
60
+ };
61
+ const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
62
+ expect(signInUrl === results.cardAction.value).toBe(false);
63
+ expect(results.cardAction.value === `${signInUrl}&fwdUrl=${botMagicCodeConfig.fwdUrl}`).toBe(true);
64
+ });
65
+ it("createCardActionMiddleware() should not append fwdUrl if fwdUrl & sign in card url are not in the same domain", () => {
66
+ const botMagicCodeConfig = {
67
+ disabled: true,
68
+ fwdUrl: "https://localhost/forwarder.html"
69
+ };
70
+ const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
71
+ const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
72
+ const args = {
73
+ cardAction: {
74
+ type: "signin",
75
+ value: signInUrl
76
+ }
77
+ };
78
+ const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
79
+ expect(signInUrl === results.cardAction.value).toBe(true);
80
+ expect(results.cardAction.value === `${signInUrl}&fwdUrl=${botMagicCodeConfig.fwdUrl}`).toBe(false);
81
+ });
82
+ });
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultReceivedMessageAnchorStyles = void 0;
7
+ const defaultReceivedMessageAnchorStyles = {
8
+ color: "white"
9
+ };
10
+ exports.defaultReceivedMessageAnchorStyles = defaultReceivedMessageAnchorStyles;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultSystemMessageBoxStyles = void 0;
7
+ const defaultSystemMessageBoxStyles = {
8
+ maxWidth: "90%"
9
+ };
10
+ exports.defaultSystemMessageBoxStyles = defaultSystemMessageBoxStyles;
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.defaultTimestampFailedStyles = void 0;
7
-
8
7
  var _defaultTimestampContentStyles = require("./defaultTimestampContentStyles");
9
-
10
- const defaultTimestampFailedStyles = { ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
8
+ const defaultTimestampFailedStyles = {
9
+ ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
11
10
  color: "#A80000"
12
11
  };
13
12
  exports.defaultTimestampFailedStyles = defaultTimestampFailedStyles;
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.defaultTimestampRetryStyles = void 0;
7
-
8
7
  var _defaultTimestampContentStyles = require("./defaultTimestampContentStyles");
9
-
10
- const defaultTimestampRetryStyles = { ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
8
+ const defaultTimestampRetryStyles = {
9
+ ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
11
10
  color: "#0063B1",
12
11
  cursor: "pointer"
13
12
  };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultUserMessageBoxStyles = void 0;
7
+ const defaultUserMessageBoxStyles = {
8
+ maxWidth: "90%"
9
+ };
10
+ exports.defaultUserMessageBoxStyles = defaultUserMessageBoxStyles;
@@ -4,20 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.groupActivitiesMiddleware = void 0;
7
-
8
7
  var _Constants = require("../../../../../common/Constants");
9
-
10
8
  /******
11
9
  * GroupActivitiesMiddleware
12
10
  *
13
11
  * This middleware controls which messages are grouped together regarding to timestamps. It does the following processing:
14
12
  * 1. Distinguishes different messages by sender name and whether it is a system message
15
13
  ******/
14
+
16
15
  function bin(items, grouping) {
17
16
  let lastBin;
18
17
  const bins = [];
19
18
  let lastItem;
20
-
21
19
  if (items.length > 0) {
22
20
  items.forEach(item => {
23
21
  if (lastItem && grouping(lastItem, item)) {
@@ -26,20 +24,17 @@ function bin(items, grouping) {
26
24
  lastBin = [item];
27
25
  bins.push(lastBin);
28
26
  }
29
-
30
27
  lastItem = item;
31
28
  });
32
29
  }
33
-
34
30
  return bins;
35
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
36
-
31
+ }
37
32
 
33
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
38
34
  const groupActivitiesMiddleware = () => next => args => {
39
35
  const {
40
36
  activities
41
37
  } = args;
42
-
43
38
  if (activities != null && activities.length > 0) {
44
39
  const {
45
40
  status
@@ -59,5 +54,4 @@ const groupActivitiesMiddleware = () => next => args => {
59
54
  return () => false;
60
55
  }
61
56
  };
62
-
63
57
  exports.groupActivitiesMiddleware = groupActivitiesMiddleware;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _WebChatActionType = require("../../enums/WebChatActionType");
8
+ var _Constants = require("../../../../../common/Constants");
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
10
+ const createMessageTimeStampMiddleware = _ref => {
11
+ let {
12
+ dispatch
13
+ } = _ref;
14
+ return next => action => {
15
+ if (isApplicable(action)) {
16
+ return next(evaluateTagsAndOverrideTimeStamp(action));
17
+ }
18
+ return next(action);
19
+ };
20
+ };
21
+ const isApplicable = action => {
22
+ return action.type === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isPVAConversation(action) && isPayloadValid(action) && isValidChannel(action);
23
+ };
24
+ const isPayloadValid = action => {
25
+ var _action$payload;
26
+ return action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.activity;
27
+ };
28
+ const isValidChannel = action => {
29
+ var _action$payload2, _action$payload2$acti;
30
+ 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.Constants.acsChannel;
31
+ };
32
+ const isPVAConversation = action => {
33
+ return !isTagIncluded(action, _Constants.Constants.systemMessageTag) && !isTagIncluded(action, _Constants.Constants.publicMessageTag) && !isRoleUserOn(action);
34
+ };
35
+
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ const isTagIncluded = (action, tag) => {
38
+ return isDataTagsPresent(action) && action.payload.activity.channelData.tags.includes(tag);
39
+ };
40
+ const isRoleUserOn = action => {
41
+ var _action$payload3, _action$payload3$acti, _action$payload3$acti2;
42
+ 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.Constants.userMessageTag;
43
+ };
44
+ const overrideTimeStamp = (timestampOriginal, timeStampNew) => {
45
+ return isTimestampValid(timeStampNew) ? timeStampNew : timestampOriginal;
46
+ };
47
+ const isTimestampValid = timeStamp => {
48
+ 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}))/;
49
+ return regex.test(timeStamp);
50
+ };
51
+ const isDataTagsPresent = action => {
52
+ var _action$payload4, _action$payload4$acti, _action$payload4$acti2;
53
+ 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;
54
+ };
55
+ const evaluateTagsAndOverrideTimeStamp = action => {
56
+ const tagValue = tagLookup(action, _Constants.Constants.prefixTimestampTag);
57
+ if (tagValue) {
58
+ const newTimestamp = extractTimeStamp(tagValue);
59
+ action.payload.activity.timestamp = overrideTimeStamp(action.payload.activity.timestamp, newTimestamp);
60
+ }
61
+ return action;
62
+ };
63
+ const extractTimeStamp = timeStamp => {
64
+ if (timeStamp && timeStamp.length > 0) {
65
+ const ts = timeStamp.split(_Constants.Constants.prefixTimestampTag);
66
+ if (ts && ts.length > 1) {
67
+ return ts[1];
68
+ }
69
+ }
70
+ return timeStamp;
71
+ };
72
+ const tagLookup = (action, tag) => {
73
+ if (!isDataTagsPresent(action)) {
74
+ return null;
75
+ }
76
+ const tags = action.payload.activity.channelData.tags;
77
+ let value;
78
+ if (tags && tags.length > 0) {
79
+ for (let i = 0; i < tags.length; i++) {
80
+ value = tags[i];
81
+ if (value && value.indexOf(tag) > -1) {
82
+ return value;
83
+ }
84
+ }
85
+ }
86
+ return null;
87
+ };
88
+ var _default = createMessageTimeStampMiddleware;
89
+ exports.default = _default;