@microsoft/omnichannel-chat-widget 0.1.0-main.d5846c0 → 0.1.0-main.d5a92f2

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