@microsoft/omnichannel-chat-widget 0.1.0-main.e67738e → 0.1.0-main.ec08ec5

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 (262) hide show
  1. package/lib/cjs/common/Constants.js +0 -167
  2. package/lib/cjs/common/KeyCodes.js +0 -3
  3. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  4. package/lib/cjs/common/storage/default/defaultCacheManager.js +24 -0
  5. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  6. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +21 -22
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  11. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  12. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  13. package/lib/cjs/common/utils.js +18 -105
  14. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  15. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  16. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -32
  17. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  18. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  19. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  20. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  21. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  22. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  23. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  24. package/lib/cjs/components/headerstateful/HeaderStateful.js +12 -27
  25. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  26. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +2 -9
  27. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -5
  28. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -11
  29. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +11 -19
  30. package/lib/cjs/components/livechatwidget/common/Deferred.js +3 -10
  31. package/lib/cjs/components/livechatwidget/common/authHelper.js +13 -15
  32. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -13
  33. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  34. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -14
  35. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  36. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +55 -36
  37. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  38. package/lib/cjs/components/livechatwidget/common/endChat.js +8 -33
  39. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  40. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  41. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  42. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +16 -54
  43. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +36 -66
  44. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  45. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  46. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  47. package/lib/cjs/components/livechatwidget/common/startChat.js +55 -86
  48. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  49. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  50. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +125 -196
  51. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
  52. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  53. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  54. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  55. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  56. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  57. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  58. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  59. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +8 -36
  60. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  61. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -24
  62. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -37
  63. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
  64. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  65. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  66. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -17
  67. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  68. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  69. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  70. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -4
  71. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  72. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  73. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  74. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  75. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +16 -19
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  112. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  113. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  114. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  115. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  116. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +1 -2
  117. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +8 -10
  118. package/lib/cjs/contexts/createReducer.js +135 -106
  119. package/lib/cjs/controller/componentController.js +1 -30
  120. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  121. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  122. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  123. package/lib/cjs/index.js +0 -5
  124. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  125. package/lib/esm/common/Constants.js +0 -155
  126. package/lib/esm/common/KeyCodes.js +0 -2
  127. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  128. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  129. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  130. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  131. package/lib/esm/common/telemetry/TelemetryConstants.js +25 -19
  132. package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
  133. package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
  134. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  135. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  136. package/lib/esm/common/utils.js +18 -53
  137. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  138. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  139. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  140. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  141. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  142. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  143. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  144. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  145. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -12
  146. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  147. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +2 -6
  148. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -3
  149. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -8
  150. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +11 -15
  151. package/lib/esm/components/livechatwidget/common/Deferred.js +3 -8
  152. package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
  153. package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
  154. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  155. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -5
  156. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  157. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +57 -23
  158. package/lib/esm/components/livechatwidget/common/endChat.js +10 -18
  159. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  160. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  161. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  162. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +18 -19
  163. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +37 -51
  164. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  165. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  166. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  167. package/lib/esm/components/livechatwidget/common/startChat.js +57 -59
  168. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  169. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +126 -129
  170. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
  171. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  172. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  173. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  174. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  175. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  176. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  177. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  178. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -20
  179. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  180. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -6
  181. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -11
  182. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  183. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  184. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -13
  185. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  186. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  187. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  188. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -2
  189. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  190. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  191. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  192. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  193. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  194. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  195. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  196. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  197. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  198. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  199. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  200. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +16 -14
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  230. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  231. package/lib/esm/contexts/ChatContextStore.js +2 -1
  232. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  233. package/lib/esm/contexts/common/ConversationState.js +0 -1
  234. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +1 -2
  235. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +8 -6
  236. package/lib/esm/contexts/createReducer.js +135 -103
  237. package/lib/esm/controller/componentController.js +2 -1
  238. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  239. package/lib/esm/hooks/useChatContextStore.js +0 -4
  240. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  241. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  242. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  243. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  244. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  245. package/lib/types/common/telemetry/TelemetryConstants.d.ts +9 -2
  246. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  247. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  248. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -5
  249. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -2
  250. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  251. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  252. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  253. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  254. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  255. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  256. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  257. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  258. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  259. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -1
  260. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +1 -1
  261. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  262. package/package.json +3 -3
@@ -1,18 +1,17 @@
1
1
  export const isMaskingforCustomer = maskingInfo => {
2
2
  var _maskingInfo$setting;
3
-
4
3
  // If the masking info (containing masking setting and masking rules) is missing or empty, return false.
5
4
  // If the masking rules are missing or empty, also return false.
6
5
  if (!maskingInfo || Object.keys(maskingInfo).length == 0 || !maskingInfo.dataMaskingRules || Object.keys(maskingInfo.dataMaskingRules).length == 0) {
7
6
  return false;
8
- } // If the masking rules are provided and;
9
- // If the masking setting is NOT null and masking for customer is NOT null, return the configuration
10
-
7
+ }
11
8
 
9
+ // If the masking rules are provided and;
10
+ // If the masking setting is NOT null and masking for customer is NOT null, return the configuration
12
11
  if ((_maskingInfo$setting = maskingInfo.setting) !== null && _maskingInfo$setting !== void 0 && _maskingInfo$setting.msdyn_maskforcustomer) {
13
12
  return maskingInfo.setting.msdyn_maskforcustomer;
14
- } // In all other cases, even if masking setting is missing, return true to apply the masking for backward compatibility (i.e. in old versions, OC does not have masking info settings)
15
-
13
+ }
16
14
 
15
+ // In all other cases, even if masking setting is missing, return true to apply the masking for backward compatibility (i.e. in old versions, OC does not have masking info settings)
17
16
  return true;
18
17
  };
@@ -1,5 +1,3 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  export class BotMagicCodeStore {}
4
-
5
3
  _defineProperty(BotMagicCodeStore, "botOAuthSignInId", "");
@@ -1,5 +1,3 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  export class WebChatStoreLoader {}
4
-
5
3
  _defineProperty(WebChatStoreLoader, "store", void 0);
@@ -1,5 +1,4 @@
1
1
  export let BrowserVendor;
2
-
3
2
  (function (BrowserVendor) {
4
3
  BrowserVendor["CHROME"] = "Chrome";
5
4
  BrowserVendor["FIREFOX"] = "Firefox";
@@ -1,5 +1,4 @@
1
1
  export let DirectLineActivityType;
2
-
3
2
  (function (DirectLineActivityType) {
4
3
  DirectLineActivityType["Message"] = "message";
5
4
  DirectLineActivityType["Typing"] = "typing";
@@ -1,5 +1,4 @@
1
1
  export let DirectLineSenderRole;
2
-
3
2
  (function (DirectLineSenderRole) {
4
3
  DirectLineSenderRole["User"] = "user";
5
4
  DirectLineSenderRole["Bot"] = "bot";
@@ -1,5 +1,4 @@
1
1
  export let MessageTypes;
2
-
3
2
  (function (MessageTypes) {
4
3
  MessageTypes["User"] = "UserMessage";
5
4
  MessageTypes["Swift"] = "SwiftCard";
@@ -1,5 +1,4 @@
1
1
  export let NotificationLevel;
2
-
3
2
  (function (NotificationLevel) {
4
3
  NotificationLevel["Success"] = "success";
5
4
  NotificationLevel["Info"] = "info";
@@ -1,5 +1,4 @@
1
1
  export let NotificationScenarios;
2
-
3
2
  (function (NotificationScenarios) {
4
3
  NotificationScenarios["Connection"] = "connection";
5
4
  NotificationScenarios["DownloadTranscriptError"] = "download transcript";
@@ -1,5 +1,4 @@
1
1
  export let SendStatus;
2
-
3
2
  (function (SendStatus) {
4
3
  SendStatus["Sending"] = "sending";
5
4
  SendStatus["SendFailed"] = "send failed";
@@ -1,5 +1,4 @@
1
1
  export let WebChatActionType;
2
-
3
2
  (function (WebChatActionType) {
4
3
  WebChatActionType["DIRECT_LINE_CONNECT_FULFILLED"] = "DIRECT_LINE/CONNECT_FULFILLED";
5
4
  WebChatActionType["DIRECT_LINE_CONNECT"] = "DIRECT_LINE/CONNECT";
@@ -1,15 +1,14 @@
1
1
  import { LogLevel, TelemetryEvent } from "../../../../../common/telemetry/TelemetryConstants";
2
- import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper";
3
3
 
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
5
  const FormatEgressTagsMiddleware = () => next => activity => {
5
6
  const activity_instance = JSON.parse(JSON.stringify(activity));
6
-
7
7
  if (activity_instance) {
8
8
  if (activity_instance.channelData && activity_instance.channelData.tags) {
9
9
  const {
10
10
  tags
11
11
  } = activity_instance.channelData;
12
-
13
12
  if (typeof tags === "string") {
14
13
  return next(activity);
15
14
  } else if (tags instanceof Array) {
@@ -28,8 +27,6 @@ const FormatEgressTagsMiddleware = () => next => activity => {
28
27
  }
29
28
  }
30
29
  }
31
-
32
30
  return next(activity_instance);
33
31
  };
34
-
35
32
  export default FormatEgressTagsMiddleware;
@@ -1,13 +1,11 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
2
  const formatTagsIngressMiddleware = () => next => activity => {
3
3
  const activity_instance = JSON.parse(JSON.stringify(activity));
4
-
5
4
  if (activity_instance) {
6
5
  if (activity_instance.channelData && activity_instance.channelData.tags) {
7
6
  const {
8
7
  tags
9
8
  } = activity_instance.channelData;
10
-
11
9
  if (typeof tags === "string") {
12
10
  try {
13
11
  //If it is json format, parse the tags. Catch block will convert string to array.(We do not need to log anything since its not an error)
@@ -18,8 +16,6 @@ const formatTagsIngressMiddleware = () => next => activity => {
18
16
  }
19
17
  }
20
18
  }
21
-
22
19
  return next(activity_instance);
23
20
  };
24
-
25
21
  export default formatTagsIngressMiddleware;
@@ -6,6 +6,7 @@
6
6
  * 2. Changes the font size of user messages
7
7
  * 3. Decodes certain html characters that came through from chat services
8
8
  ******/
9
+
9
10
  import { LogLevel, TelemetryEvent } from "../../../../../common/telemetry/TelemetryConstants";
10
11
  import { Constants } from "../../../../../common/Constants";
11
12
  import { DirectLineActivityType } from "../../enums/DirectLineActivityType";
@@ -16,15 +17,15 @@ import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper
16
17
  import { defaultSystemMessageStyles } from "./defaultStyles/defaultSystemMessageStyles";
17
18
  import { defaultUserMessageStyles } from "./defaultStyles/defaultUserMessageStyles";
18
19
  import { escapeHtml } from "../../../../../common/utils";
19
- const loggedSystemMessages = new Array(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ const loggedSystemMessages = new Array();
20
21
 
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
23
  const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
22
24
  var _card$activity, _card$activity$channe, _card$activity$channe2, _card$activity2, _card$activity2$chann, _card$activity3, _card$activity3$chann, _card$activity3$chann2, _card$activity4, _card$activity4$chann, _card$activity5, _card$activity5$chann, _card$nextVisibleActi, _card$nextVisibleActi2, _card$activity6, _card$activity6$chann, _card$activity7, _card$nextVisibleActi3, _card$activity8;
23
-
24
- const systemMessageStyles = { ...defaultSystemMessageStyles,
25
+ const systemMessageStyles = {
26
+ ...defaultSystemMessageStyles,
25
27
  ...systemMessageStyleProps
26
28
  };
27
-
28
29
  if ((_card$activity = card.activity) !== null && _card$activity !== void 0 && (_card$activity$channe = _card$activity.channelData) !== null && _card$activity$channe !== void 0 && (_card$activity$channe2 = _card$activity$channe.tags) !== null && _card$activity$channe2 !== void 0 && _card$activity$channe2.includes(Constants.averageWaitTimeMessageTag) && loggedSystemMessages.indexOf((_card$activity2 = card.activity) === null || _card$activity2 === void 0 ? void 0 : (_card$activity2$chann = _card$activity2.channelData) === null || _card$activity2$chann === void 0 ? void 0 : _card$activity2$chann.clientmessageid) < 0) {
29
30
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
30
31
  Event: TelemetryEvent.AverageWaitTimeMessageRecieved,
@@ -32,7 +33,6 @@ const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
32
33
  });
33
34
  loggedSystemMessages.push(card.activity.channelData.clientmessageid);
34
35
  }
35
-
36
36
  if ((_card$activity3 = card.activity) !== null && _card$activity3 !== void 0 && (_card$activity3$chann = _card$activity3.channelData) !== null && _card$activity3$chann !== void 0 && (_card$activity3$chann2 = _card$activity3$chann.tags) !== null && _card$activity3$chann2 !== void 0 && _card$activity3$chann2.includes(Constants.queuePositionMessageTag) && loggedSystemMessages.indexOf((_card$activity4 = card.activity) === null || _card$activity4 === void 0 ? void 0 : (_card$activity4$chann = _card$activity4.channelData) === null || _card$activity4$chann === void 0 ? void 0 : _card$activity4$chann.clientmessageid) < 0) {
37
37
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
38
38
  Event: TelemetryEvent.QueuePositionMessageRecieved,
@@ -40,57 +40,49 @@ const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
40
40
  });
41
41
  loggedSystemMessages.push(card.activity.channelData.clientmessageid);
42
42
  }
43
-
44
43
  if ((_card$activity5 = card.activity) !== null && _card$activity5 !== void 0 && (_card$activity5$chann = _card$activity5.channelData) !== null && _card$activity5$chann !== void 0 && _card$activity5$chann.clientmessageid && ((_card$nextVisibleActi = card.nextVisibleActivity) === null || _card$nextVisibleActi === void 0 ? void 0 : (_card$nextVisibleActi2 = _card$nextVisibleActi.channelData) === null || _card$nextVisibleActi2 === void 0 ? void 0 : _card$nextVisibleActi2.clientmessageid) === ((_card$activity6 = card.activity) === null || _card$activity6 === void 0 ? void 0 : (_card$activity6$chann = _card$activity6.channelData) === null || _card$activity6$chann === void 0 ? void 0 : _card$activity6$chann.clientmessageid) || (_card$activity7 = card.activity) !== null && _card$activity7 !== void 0 && _card$activity7.messageid && ((_card$nextVisibleActi3 = card.nextVisibleActivity) === null || _card$nextVisibleActi3 === void 0 ? void 0 : _card$nextVisibleActi3.messageid) === ((_card$activity8 = card.activity) === null || _card$activity8 === void 0 ? void 0 : _card$activity8.messageid)) {
45
44
  return () => false;
46
- } // eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
47
-
45
+ }
48
46
 
47
+ // eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
49
48
  return () => /*#__PURE__*/React.createElement("div", {
50
49
  key: card.activity.id,
51
50
  style: systemMessageStyles,
52
51
  "aria-hidden": "true"
53
52
  }, card.activity.text);
54
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
-
53
+ };
56
54
 
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
56
  const isTagIncluded = (card, tag) => {
58
57
  return isDataTagsPresent(card) && card.activity.channelData.tags.includes(tag);
59
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
-
58
+ };
61
59
 
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
61
  const isDataTagsPresent = card => {
63
62
  return card && card.activity && card.activity.channelData && card.activity.channelData.tags && card.activity.channelData.tags.length > 0;
64
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
-
63
+ };
66
64
 
65
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
66
  export const createActivityMiddleware = (systemMessageStyleProps, userMessageStyleProps) => () => next => function () {
68
67
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
69
68
  args[_key] = arguments[_key];
70
69
  }
71
-
72
70
  const [card] = args;
73
-
74
71
  if (card.activity) {
75
72
  var _card$activity$from;
76
-
77
73
  if (((_card$activity$from = card.activity.from) === null || _card$activity$from === void 0 ? void 0 : _card$activity$from.role) === DirectLineSenderRole.Channel) {
78
74
  var _card$activity$channe3;
79
-
80
75
  if (((_card$activity$channe3 = card.activity.channelData) === null || _card$activity$channe3 === void 0 ? void 0 : _card$activity$channe3.type) === MessageTypes.Thread) {
81
76
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
82
77
  Event: TelemetryEvent.IC3ThreadUpdateEventReceived,
83
78
  Description: "IC3 ThreadUpdateEvent Received"
84
79
  });
85
80
  }
86
-
87
81
  return () => false;
88
82
  }
89
-
90
83
  if (isTagIncluded(card, Constants.hiddenTag)) {
91
84
  return () => false;
92
85
  }
93
-
94
86
  if (isTagIncluded(card, Constants.systemMessageTag)) {
95
87
  return handleSystemMessage(next, args, card, systemMessageStyleProps);
96
88
  } else if (card.activity.text && card.activity.type === DirectLineActivityType.Message) {
@@ -98,11 +90,11 @@ export const createActivityMiddleware = (systemMessageStyleProps, userMessageSty
98
90
  card.activity.text = escapeHtml(card.activity.text);
99
91
  card.activity.channelData.isHtmlEncoded = true;
100
92
  }
101
-
102
- const userMessageStyles = { ...defaultUserMessageStyles,
93
+ const userMessageStyles = {
94
+ ...defaultUserMessageStyles,
103
95
  ...userMessageStyleProps
104
- }; // eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
105
-
96
+ };
97
+ // eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
106
98
  return function () {
107
99
  return /*#__PURE__*/React.createElement("div", {
108
100
  className: card.activity.from.role === DirectLineSenderRole.User ? Constants.sentMessageClassName : Constants.receivedMessageClassName,
@@ -112,6 +104,5 @@ export const createActivityMiddleware = (systemMessageStyleProps, userMessageSty
112
104
  };
113
105
  }
114
106
  }
115
-
116
107
  return next(...args);
117
108
  };
@@ -3,8 +3,9 @@ import { DeliveredTimestamp } from "./timestamps/DeliveredTimestamp";
3
3
  import { NotDeliveredTimestamp } from "./timestamps/NotDeliveredTimestamp";
4
4
  import React from "react";
5
5
  import { SendStatus } from "../../enums/SendStatus";
6
- import { SendingTimestamp } from "./timestamps/SendingTimestamp"; // eslint-disable-next-line @typescript-eslint/no-explicit-any, react/display-name, @typescript-eslint/no-unused-vars
6
+ import { SendingTimestamp } from "./timestamps/SendingTimestamp";
7
7
 
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, react/display-name, @typescript-eslint/no-unused-vars
8
9
  export const activityStatusMiddleware = () => next => args => {
9
10
  const {
10
11
  activity: {
@@ -21,11 +22,10 @@ export const activityStatusMiddleware = () => next => args => {
21
22
  sameTimestampGroup
22
23
  } = args;
23
24
  const current_tags = tags,
24
- current_name = name,
25
- current_role = role,
26
- current_timestamp = timestamp;
25
+ current_name = name,
26
+ current_role = role,
27
+ current_timestamp = timestamp;
27
28
  let sameTimestampGroupTemp = sameTimestampGroup;
28
-
29
29
  if (args[WebChatMiddlewareConstants.nextVisibleActivity]) {
30
30
  const {
31
31
  nextVisibleActivity: {
@@ -34,18 +34,16 @@ export const activityStatusMiddleware = () => next => args => {
34
34
  },
35
35
  timestamp
36
36
  }
37
- } = args; // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
-
37
+ } = args;
38
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
39
  const next_name = name,
40
- next_timestamp = timestamp;
40
+ next_timestamp = timestamp;
41
41
  const timestampCurrentInMillisecond = Date.parse(current_timestamp);
42
42
  const timestampNextInMillisecond = Date.parse(next_timestamp);
43
-
44
43
  if (current_name !== next_name || timestampNextInMillisecond - timestampCurrentInMillisecond > WebChatMiddlewareConstants.timeBetweenTimestampGroups) {
45
44
  sameTimestampGroupTemp = false;
46
45
  }
47
46
  }
48
-
49
47
  if (current_tags && current_tags.includes(Constants.systemMessageTag) || sameTimestampGroupTemp && sendState === SendStatus.Sent) {
50
48
  return;
51
49
  } else {
@@ -61,6 +59,8 @@ export const activityStatusMiddleware = () => next => args => {
61
59
  args: args,
62
60
  role: current_role,
63
61
  name: current_name
64
- }));
62
+ }))
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ ;
65
65
  }
66
66
  };
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
2
  /******
4
3
  * AttachmentMiddleware
5
4
  *
6
5
  * Handles attachment downloading.
7
6
  ******/
7
+
8
8
  import { Constants, MimeTypes, WebChatMiddlewareConstants } from "../../../../../common/Constants";
9
9
  import React from "react";
10
10
  import { getFileAttachmentIconData, isInlineMediaSupported } from "../../../common/utils/FileAttachmentIconManager";
@@ -21,14 +21,12 @@ import { defaultAttachmentProps } from "../../../common/defaultProps/defaultAtta
21
21
  import { defaultAttachmentSizeStyles } from "./defaultStyles/defaultAttachmentSizeStyles";
22
22
  import { defaultAttachmentStyles } from "./defaultStyles/defaultAtttachmentStyles";
23
23
  import { useChatContextStore } from "../../../../..";
24
-
25
24
  const AttachmentContent = props => {
26
25
  return /*#__PURE__*/React.createElement("div", {
27
26
  id: props.id,
28
27
  style: props.style
29
28
  }, props.children);
30
29
  };
31
-
32
30
  const AttachmentIcon = props => {
33
31
  return /*#__PURE__*/React.createElement("div", {
34
32
  id: props.id,
@@ -37,10 +35,8 @@ const AttachmentIcon = props => {
37
35
  src: props.src ?? getFileAttachmentIconData("txt")
38
36
  }));
39
37
  };
40
-
41
38
  const Attachment = props => {
42
39
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3, _state$domainStates$r4, _state$domainStates$r5, _state$domainStates$r6, _state$domainStates$r7, _state$domainStates$r8, _state$domainStates$r9;
43
-
44
40
  const {
45
41
  iconData,
46
42
  imageCard,
@@ -49,34 +45,41 @@ const Attachment = props => {
49
45
  } = props;
50
46
  const [state] = useChatContextStore();
51
47
  const attachmentId = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : (_state$domainStates$r2 = _state$domainStates$r.attachmentProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.webChatAttachmentId) ?? defaultAttachmentProps.webChatAttachmentId;
52
- const attachmentDividerStyles = { ...defaultAttachmentDividerStyles,
48
+ const attachmentDividerStyles = {
49
+ ...defaultAttachmentDividerStyles,
53
50
  ...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.attachmentDividerStyles)
54
51
  };
55
- const attachmentIconStyles = { ...defaultAttachmentIconStyles,
52
+ const attachmentIconStyles = {
53
+ ...defaultAttachmentIconStyles,
56
54
  ...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.attachmentIconStyles)
57
55
  };
58
- const attachmentStyles = { ...defaultAttachmentStyles,
56
+ const attachmentStyles = {
57
+ ...defaultAttachmentStyles,
59
58
  ...((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.attachmentStyles)
60
59
  };
61
- const attachmentSizeStylesString = Object.entries({ ...defaultAttachmentSizeStyles,
60
+ const attachmentSizeStylesString = Object.entries({
61
+ ...defaultAttachmentSizeStyles,
62
62
  ...((_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.attachmentSizeStyles)
63
63
  }).map(_ref => {
64
64
  let [k, v] = _ref;
65
65
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
66
66
  }).join(";");
67
- const attachmentContentStylesString = Object.entries({ ...defaultAttachmentContentStyles,
67
+ const attachmentContentStylesString = Object.entries({
68
+ ...defaultAttachmentContentStyles,
68
69
  ...((_state$domainStates$r7 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r7 === void 0 ? void 0 : _state$domainStates$r7.attachmentContentStyles)
69
70
  }).map(_ref2 => {
70
71
  let [k, v] = _ref2;
71
72
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
72
73
  }).join(";");
73
- const attachmentFileNameStylesString = Object.entries({ ...defaultAttachmentFileNameStyles,
74
+ const attachmentFileNameStylesString = Object.entries({
75
+ ...defaultAttachmentFileNameStyles,
74
76
  ...((_state$domainStates$r8 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r8 === void 0 ? void 0 : _state$domainStates$r8.attachmentFileNameStyles)
75
77
  }).map(_ref3 => {
76
78
  let [k, v] = _ref3;
77
79
  return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
78
80
  }).join(";");
79
- const attachmentDownloadIconStylesString = Object.entries({ ...defaultAttachmentDownloadIconStyles,
81
+ const attachmentDownloadIconStylesString = Object.entries({
82
+ ...defaultAttachmentDownloadIconStyles,
80
83
  ...((_state$domainStates$r9 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r9 === void 0 ? void 0 : _state$domainStates$r9.attachmentDownloadIconStyles)
81
84
  }).map(_ref4 => {
82
85
  let [k, v] = _ref4;
@@ -102,13 +105,12 @@ const Attachment = props => {
102
105
  style: attachmentIconStyles
103
106
  }), textCard && renderer(textCard))));
104
107
  };
108
+
105
109
  /**
106
110
  * Patch card with different attachment data.
107
111
  * @param card
108
112
  * @param newAttachment
109
113
  */
110
-
111
-
112
114
  const patchAttachment = (card, newAttachment) => {
113
115
  const {
114
116
  activity,
@@ -125,7 +127,6 @@ const patchAttachment = (card, newAttachment) => {
125
127
  attachment: patchedAttachment
126
128
  };
127
129
  };
128
-
129
130
  const genPreviewCardWithAttachment = (card, iconData, next) => {
130
131
  const patchedTextCard = patchAttachment(card, {
131
132
  contentType: MimeTypes.UnknownFileType,
@@ -138,35 +139,30 @@ const genPreviewCardWithAttachment = (card, iconData, next) => {
138
139
  renderer: next
139
140
  });
140
141
  };
141
-
142
142
  const createAttachmentMiddleware = enableInlinePlaying => {
143
143
  // eslint-disable-next-line react/display-name
144
144
  const attachmentMiddleware = () => next => function () {
145
145
  var _state$domainStates$r10, _state$domainStates$r11, _state$domainStates$r12, _card$activity$channe;
146
-
147
146
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
148
147
  args[_key] = arguments[_key];
149
148
  }
150
-
151
149
  const [card] = args;
152
-
153
150
  if (!(card !== null && card !== void 0 && card.activity)) {
154
151
  return next(...args);
155
152
  }
156
-
157
153
  const {
158
154
  activity: {
159
155
  attachments
160
156
  },
161
157
  attachment
162
- } = card; // No attachment
163
-
158
+ } = card;
159
+ // No attachment
164
160
  if (!attachments || !attachments.length || !attachment) {
165
161
  return next(...args);
166
- } // Check for Adaptive cards
167
- // eslint-disable-next-line prefer-const
168
-
162
+ }
169
163
 
164
+ // Check for Adaptive cards
165
+ // eslint-disable-next-line prefer-const
170
166
  let {
171
167
  content,
172
168
  contentType
@@ -179,7 +175,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
179
175
  } = content || {
180
176
  type: ""
181
177
  };
182
-
183
178
  if (!type && content && Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
184
179
  try {
185
180
  content = JSON.parse(content);
@@ -196,41 +191,35 @@ const createAttachmentMiddleware = enableInlinePlaying => {
196
191
  });
197
192
  }
198
193
  }
199
-
200
194
  const [state] = useChatContextStore();
201
195
  const attachmentId = ((_state$domainStates$r10 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r10 === void 0 ? void 0 : (_state$domainStates$r11 = _state$domainStates$r10.attachmentProps) === null || _state$domainStates$r11 === void 0 ? void 0 : _state$domainStates$r11.adaptiveCardAttachmentId) ?? defaultAttachmentProps.adaptiveCardAttachmentId;
202
- const atttachmentAdaptiveCardStyles = { ...defaultAttachmentAdaptiveCardStyles,
196
+ const atttachmentAdaptiveCardStyles = {
197
+ ...defaultAttachmentAdaptiveCardStyles,
203
198
  ...((_state$domainStates$r12 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r12 === void 0 ? void 0 : _state$domainStates$r12.attachmentAdaptiveCardStyles)
204
199
  };
205
-
206
200
  if (type === WebChatMiddlewareConstants.adaptiveCard || Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
207
201
  return /*#__PURE__*/React.createElement("div", {
208
202
  id: attachmentId,
209
203
  style: atttachmentAdaptiveCardStyles
210
204
  }, next(...args));
211
205
  }
212
-
213
206
  if ((_card$activity$channe = card.activity.channelData) !== null && _card$activity$channe !== void 0 && _card$activity$channe.middlewareData) {
214
207
  attachment.contentUrl = card.activity.channelData.middlewareData[attachment.name];
215
208
  } else if (attachment !== null && attachment !== void 0 && attachment.tempContentUrl) {
216
209
  attachment.contentUrl = attachment.tempContentUrl;
217
210
  }
218
-
219
211
  const fileExtension = attachment.name.substring(attachment.name.lastIndexOf(".") + 1, attachment.name.length) || attachment.name;
220
212
  const imageExtension = Constants.imageRegex.test(attachment.name);
221
213
  const audioExtension = Constants.audioMediaRegex.test(attachment.name);
222
214
  const videoExtension = Constants.videoMediaRegex.test(attachment.name);
223
215
  const iconData = getFileAttachmentIconData(fileExtension);
224
-
225
216
  if (imageExtension) {
226
217
  return genPreviewCardWithAttachment(card, iconData, next);
227
218
  }
228
-
229
219
  if (audioExtension || videoExtension) {
230
220
  if (enableInlinePlaying && card.activity.actionType && card.activity.actionType === WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isInlineMediaSupported(attachment.name)) {
231
221
  return genPreviewCardWithAttachment(card, iconData, next);
232
222
  }
233
-
234
223
  return /*#__PURE__*/React.createElement(Attachment, {
235
224
  iconData: iconData,
236
225
  textCard: patchAttachment(card, {
@@ -240,7 +229,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
240
229
  renderer: next
241
230
  });
242
231
  }
243
-
244
232
  if (fileExtension === "txt") {
245
233
  return /*#__PURE__*/React.createElement(Attachment, {
246
234
  iconData: iconData,
@@ -251,15 +239,12 @@ const createAttachmentMiddleware = enableInlinePlaying => {
251
239
  renderer: next
252
240
  });
253
241
  }
254
-
255
242
  return /*#__PURE__*/React.createElement(Attachment, {
256
243
  iconData: iconData,
257
244
  textCard: card,
258
245
  renderer: next
259
246
  });
260
247
  };
261
-
262
248
  return attachmentMiddleware;
263
249
  };
264
-
265
250
  export default createAttachmentMiddleware;
@@ -4,17 +4,18 @@
4
4
  * This middleware handles the avatar icon for each non-system message. It does the following processing:
5
5
  * 1. Renders the first two letters of the sender as the profile pic
6
6
  ******/
7
+
7
8
  import React from "react";
8
9
  import { Constants } from "../../../../../common/Constants";
9
10
  import { defaultAvatarStyles } from "./defaultStyles/defaultAvatarStyles";
10
11
  import { defaultAvatarTextStyles } from "./defaultStyles/defaultAvatarTextStyles";
11
- import { getIconText } from "../../../../../common/utils"; // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
12
+ import { getIconText } from "../../../../../common/utils";
12
13
 
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
13
15
  export const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () => next => function () {
14
16
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15
17
  args[_key] = arguments[_key];
16
18
  }
17
-
18
19
  const [params] = args;
19
20
  const {
20
21
  activity: {
@@ -27,18 +28,18 @@ export const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) =
27
28
  },
28
29
  fromUser
29
30
  } = params;
30
-
31
31
  if (fromUser !== false || tags && tags.includes(Constants.systemMessageTag)) {
32
32
  return false;
33
33
  }
34
-
35
- const avatarStyles = { ...defaultAvatarStyles,
34
+ const avatarStyles = {
35
+ ...defaultAvatarStyles,
36
36
  ...avatarStyleProps
37
37
  };
38
- const avatarTextStyles = { ...defaultAvatarTextStyles,
38
+ const avatarTextStyles = {
39
+ ...defaultAvatarTextStyles,
39
40
  ...avatarTextStyleProps
40
- }; // eslint-disable-next-line react/display-name
41
-
41
+ };
42
+ // eslint-disable-next-line react/display-name
42
43
  return () => /*#__PURE__*/React.createElement("div", {
43
44
  style: avatarStyles
44
45
  }, /*#__PURE__*/React.createElement("p", {
@@ -1,11 +1,9 @@
1
1
  import { BotMagicCodeStore } from "../../BotMagicCodeStore";
2
2
  var CardActionType;
3
-
4
3
  (function (CardActionType) {
5
4
  CardActionType["OpenUrl"] = "openUrl";
6
5
  CardActionType["SignIn"] = "signin";
7
6
  })(CardActionType || (CardActionType = {}));
8
-
9
7
  const validCardActionTypes = [CardActionType.OpenUrl, CardActionType.SignIn];
10
8
  const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
11
9
  export const createCardActionMiddleware = botMagicCodeConfig => {
@@ -13,29 +11,24 @@ export const createCardActionMiddleware = botMagicCodeConfig => {
13
11
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
12
  args[_key] = arguments[_key];
15
13
  }
16
-
17
14
  // eslint-disable-line @typescript-eslint/no-explicit-any
18
15
  const [card] = args;
19
-
20
16
  if (card.cardAction && validCardActionTypes.indexOf(card.cardAction.type) >= 0 && card.cardAction.value) {
21
17
  // Override signin url only if fwdUrl is valid & feature is enabled
22
18
  if ((botMagicCodeConfig === null || botMagicCodeConfig === void 0 ? void 0 : botMagicCodeConfig.disabled) === true && botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl) {
23
19
  const baseUrl = window.location.origin;
24
20
  const result = botOauthUrlRegex.exec(card.cardAction.value);
25
-
26
21
  if (result) {
27
22
  BotMagicCodeStore.botOAuthSignInId = `${result[1]}`;
28
- } // fwdUrl must be on the same domain as the chat widget
29
-
23
+ }
30
24
 
25
+ // fwdUrl must be on the same domain as the chat widget
31
26
  if (botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl.startsWith(baseUrl)) {
32
27
  card.cardAction.value += `&fwdUrl=${botMagicCodeConfig.fwdUrl}`;
33
28
  }
34
29
  }
35
30
  }
36
-
37
31
  return next(...args);
38
32
  };
39
-
40
33
  return cardActionMiddleware;
41
34
  };