@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
@@ -5,39 +5,60 @@ import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
5
5
  import { defaultGeneralPostChatSurveyPaneStyleProps } from "./common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps";
6
6
  import { findAllFocusableElement } from "../../common/utils";
7
7
  import useChatContextStore from "../../hooks/useChatContextStore";
8
+ import { PostChatSurveyMode } from "./enums/PostChatSurveyMode";
9
+ import { CustomerVoiceEvents } from "./enums/CustomerVoiceEvents";
8
10
  export const PostChatSurveyPaneStateful = props => {
9
- var _props$styleProps, _props$controlProps;
10
-
11
- const [state] = useChatContextStore(); // ToDo : TASK 2628392 Fix PostChat iframe reloading on Minimize
12
-
11
+ var _state$domainStates$l, _state$domainStates$l2, _props$styleProps, _props$controlProps;
12
+ const [state] = useChatContextStore();
13
+ const postChatSurveyMode = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveymode;
13
14
  const generalStyleProps = Object.assign({}, defaultGeneralPostChatSurveyPaneStyleProps, (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps, {
14
15
  display: state.appStates.isMinimized ? "none" : ""
15
16
  });
16
17
  let surveyInviteLink = "";
17
-
18
18
  if (state.domainStates.postChatContext.surveyInviteLink) {
19
- surveyInviteLink = state.domainStates.postChatContext.surveyInviteLink + "&lang=" + (state.domainStates.postChatContext.formsProLocale ?? "en");
19
+ surveyInviteLink = state.domainStates.postChatContext.surveyInviteLink + "&embed=" + (postChatSurveyMode === PostChatSurveyMode.Embed).toString() + "&compact=" + (props.isCustomerVoiceSurveyCompact ?? true).toString() + "&lang=" + (state.domainStates.postChatContext.formsProLocale ?? "en") + "&showmultilingual=false";
20
20
  }
21
-
22
- const styleProps = { ...props.styleProps,
21
+ const styleProps = {
22
+ ...props.styleProps,
23
23
  generalStyleProps: generalStyleProps
24
24
  };
25
25
  const controlProps = {
26
26
  id: "oc-lcw-postchatsurvey-pane",
27
27
  surveyURL: ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.surveyURL) ?? surveyInviteLink,
28
28
  ...props.controlProps
29
- }; // Move focus to the first button
29
+ };
30
30
 
31
+ // Move focus to the first button
31
32
  useEffect(() => {
32
33
  const firstElement = findAllFocusableElement(`#${controlProps.id}`);
33
-
34
34
  if (firstElement && firstElement[0]) {
35
35
  firstElement[0].focus();
36
36
  }
37
-
38
37
  TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
39
38
  Event: TelemetryEvent.PostChatSurveyLoaded
40
39
  });
40
+
41
+ //Customer Voice Telemetry Events
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ window.addEventListener("message", message => {
44
+ const {
45
+ data
46
+ } = message;
47
+ if (!data) return;
48
+ if (data === CustomerVoiceEvents.ResponsePageLoaded) {
49
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
50
+ Event: TelemetryEvent.CustomerVoiceResponsePageLoaded
51
+ });
52
+ } else if (data === CustomerVoiceEvents.FormResponseSubmitted) {
53
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
54
+ Event: TelemetryEvent.CustomerVoiceFormResponseSubmitted
55
+ });
56
+ } else if (data === CustomerVoiceEvents.FormResponseError) {
57
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
58
+ Event: TelemetryEvent.CustomerVoiceFormResponseError
59
+ });
60
+ }
61
+ });
41
62
  }, []);
42
63
  return /*#__PURE__*/React.createElement(PostChatSurveyPane, {
43
64
  controlProps: controlProps,
@@ -6,5 +6,5 @@ export const defaultGeneralPostChatSurveyPaneStyleProps = {
6
6
  top: "0%",
7
7
  borderRadius: "0 0 4px 4px",
8
8
  borderWidth: "0px",
9
- overflowY: "auto"
9
+ maxHeight: "calc(100% - 80px)"
10
10
  };
@@ -0,0 +1,6 @@
1
+ export let CustomerVoiceEvents;
2
+ (function (CustomerVoiceEvents) {
3
+ CustomerVoiceEvents["ResponsePageLoaded"] = "ResponsePageLoaded";
4
+ CustomerVoiceEvents["FormResponseSubmitted"] = "FormResponseSubmitted";
5
+ CustomerVoiceEvents["FormResponseError"] = "FormResponseError";
6
+ })(CustomerVoiceEvents || (CustomerVoiceEvents = {}));
@@ -1,5 +1,4 @@
1
1
  export let PostChatSurveyMode;
2
-
3
2
  (function (PostChatSurveyMode) {
4
3
  PostChatSurveyMode["Embed"] = "192350000";
5
4
  PostChatSurveyMode["Link"] = "192350001";
@@ -8,11 +8,11 @@ import { PreChatSurveyPane } from "@microsoft/omnichannel-chat-components";
8
8
  import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
9
9
  import { defaultGeneralPreChatSurveyPaneStyleProps } from "./common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps";
10
10
  import { defaultPreChatSurveyLocalizedTexts } from "./common/defaultProps/defaultPreChatSurveyLocalizedTexts";
11
- import useChatContextStore from "../../hooks/useChatContextStore"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ import useChatContextStore from "../../hooks/useChatContextStore";
12
12
 
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
14
  export const PreChatSurveyPaneStateful = props => {
14
15
  var _surveyProps$stylePro, _props$surveyProps, _props$surveyProps$co;
15
-
16
16
  const [state, dispatch] = useChatContextStore();
17
17
  const {
18
18
  surveyProps,
@@ -20,8 +20,9 @@ export const PreChatSurveyPaneStateful = props => {
20
20
  } = props;
21
21
  const generalStyleProps = Object.assign({}, defaultGeneralPreChatSurveyPaneStyleProps, surveyProps === null || surveyProps === void 0 ? void 0 : (_surveyProps$stylePro = surveyProps.styleProps) === null || _surveyProps$stylePro === void 0 ? void 0 : _surveyProps$stylePro.generalStyleProps, {
22
22
  display: state.appStates.isMinimized ? "none" : ""
23
- }); // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ });
24
24
 
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
26
  const setPreChatResponseEmail = preChatResponse => {
26
27
  if (preChatResponse) {
27
28
  for (let index = 0; index < preChatResponse.length; index++) {
@@ -34,7 +35,6 @@ export const PreChatSurveyPaneStateful = props => {
34
35
  }
35
36
  }
36
37
  };
37
-
38
38
  const getAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
39
39
  try {
40
40
  return parseAdaptiveCardPayload(payload, requiredFieldMissingMessage);
@@ -48,7 +48,6 @@ export const PreChatSurveyPaneStateful = props => {
48
48
  });
49
49
  }
50
50
  };
51
-
52
51
  const requiredFieldMissingMessage = ((_props$surveyProps = props.surveyProps) === null || _props$surveyProps === void 0 ? void 0 : (_props$surveyProps$co = _props$surveyProps.controlProps) === null || _props$surveyProps$co === void 0 ? void 0 : _props$surveyProps$co.requiredFieldMissingMessage) ?? defaultPreChatSurveyLocalizedTexts.PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE;
53
52
  const controlProps = {
54
53
  id: "oc-lcw-prechatsurvey-pane",
@@ -64,16 +63,14 @@ export const PreChatSurveyPaneStateful = props => {
64
63
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
65
64
  payload: ConversationState.Loading
66
65
  });
67
-
68
66
  try {
69
67
  var _state$domainStates, _state$domainStates$t, _state$domainStates$t2, _persistedState$domai, _persistedState$appSt;
70
-
71
68
  const persistedState = getStateFromCache(((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$t = _state$domainStates.telemetryInternalData) === null || _state$domainStates$t === void 0 ? void 0 : _state$domainStates$t.orgId) ?? "", ((_state$domainStates$t2 = state.domainStates.telemetryInternalData) === null || _state$domainStates$t2 === void 0 ? void 0 : _state$domainStates$t2.widgetId) ?? "", state.domainStates.widgetInstanceId ?? "");
72
- let optionalParams = {}; //Connect to Active chats and chat is not popout
69
+ let optionalParams = {};
73
70
 
71
+ //Connect to Active chats and chat is not popout
74
72
  if (persistedState && !isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === ConversationState.Active && !state.appStates.skipChatButtonRendering) {
75
73
  var _persistedState$domai2;
76
-
77
74
  optionalParams = {
78
75
  liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
79
76
  };
@@ -98,41 +95,34 @@ export const PreChatSurveyPaneStateful = props => {
98
95
  },
99
96
  ...(surveyProps === null || surveyProps === void 0 ? void 0 : surveyProps.controlProps)
100
97
  };
101
- const styleProps = { ...(surveyProps === null || surveyProps === void 0 ? void 0 : surveyProps.styleProps),
98
+ const styleProps = {
99
+ ...(surveyProps === null || surveyProps === void 0 ? void 0 : surveyProps.styleProps),
102
100
  generalStyleProps: generalStyleProps
103
101
  };
104
102
  useEffect(() => {
105
103
  // Set Aria-Label Attribute for Inputs
106
104
  const adaptiveCardElements = document.getElementsByClassName(HtmlAttributeNames.adaptiveCardClassName);
107
-
108
105
  if (adaptiveCardElements && adaptiveCardElements.length > 0) {
109
106
  const children = adaptiveCardElements[0].children;
110
107
  let value = "";
111
-
112
108
  for (let index = 0; index < children.length; index++) {
113
109
  const current = children[index];
114
-
115
110
  if (current && current.className == HtmlAttributeNames.adaptiveCardTextBlockClassName) {
116
111
  value = current.innerHTML;
117
112
  }
118
-
119
113
  if (current && current.tagName.toLowerCase() == HtmlAttributeNames.div && current.childElementCount > 0) {
120
114
  const input = current.children[0].children;
121
-
122
115
  if (input && input.length > 0 && input[0].className != HtmlAttributeNames.adaptiveCardToggleInputClassName) {
123
116
  input[0].setAttribute(HtmlAttributeNames.ariaLabel, value);
124
117
  }
125
118
  }
126
119
  }
127
- } // Move focus to the first button
128
-
129
-
120
+ }
121
+ // Move focus to the first button
130
122
  const firstElement = findAllFocusableElement(`#${controlProps.id}`);
131
-
132
123
  if (firstElement && firstElement[0]) {
133
124
  firstElement[0].focus();
134
125
  }
135
-
136
126
  TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
137
127
  Event: TelemetryEvent.PrechatSurveyLoaded
138
128
  });
@@ -8,19 +8,18 @@ import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetAc
8
8
  import { ProactiveChatPane } from "@microsoft/omnichannel-chat-components";
9
9
  import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
10
10
  import { TelemetryTimers } from "../../common/telemetry/TelemetryManager";
11
- import useChatContextStore from "../../hooks/useChatContextStore"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ import useChatContextStore from "../../hooks/useChatContextStore";
12
12
 
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
14
  export const ProactiveChatPaneStateful = props => {
14
15
  var _proactiveChatProps$c;
15
-
16
16
  const [state, dispatch] = useChatContextStore();
17
17
  const {
18
18
  proactiveChatProps,
19
19
  startChat
20
- } = props; // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
-
20
+ } = props;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
22
  const [timeoutRemoved, setTimeoutRemoved] = useState(false);
23
-
24
23
  const handleProactiveChatInviteTimeout = () => {
25
24
  if (!timeoutRemoved) {
26
25
  setTimeoutRemoved(true);
@@ -43,19 +42,16 @@ export const ProactiveChatPaneStateful = props => {
43
42
  });
44
43
  }
45
44
  };
46
-
47
45
  const controlProps = {
48
46
  id: "oc-lcw-proactivechat",
49
47
  dir: state.domainStates.globalDir,
50
48
  onStart: async () => {
51
49
  var _state$domainStates$l, _state$domainStates$l2;
52
-
53
50
  setTimeoutRemoved(true);
54
51
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
55
52
  Event: TelemetryEvent.ProactiveChatAccepted,
56
53
  Description: "Proactive chat accepted."
57
54
  });
58
-
59
55
  if (state.appStates.proactiveChatStates.proactiveChatInNewWindow) {
60
56
  // TODO: BroadcastService: replace with the sdk broadcast service, when in place
61
57
  const startPopoutChatEvent = {
@@ -8,20 +8,18 @@ import { setFocusOnElement } from "../../common/utils";
8
8
  import useChatContextStore from "../../hooks/useChatContextStore";
9
9
  import useChatSDKStore from "../../hooks/useChatSDKStore";
10
10
  export const ReconnectChatPaneStateful = props => {
11
- const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
-
11
+ const [state, dispatch] = useChatContextStore();
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
13
  const chatSDK = useChatSDKStore();
14
14
  const {
15
15
  reconnectChatProps,
16
16
  initStartChat
17
17
  } = props;
18
-
19
18
  const startChat = async continueChat => {
20
19
  dispatch({
21
20
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
22
21
  payload: ConversationState.Loading
23
22
  });
24
-
25
23
  if (continueChat && state.appStates.reconnectId) {
26
24
  const optionalParams = {
27
25
  reconnectId: state.appStates.reconnectId
@@ -30,7 +28,6 @@ export const ReconnectChatPaneStateful = props => {
30
28
  } else {
31
29
  const parseToJson = false;
32
30
  const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
33
-
34
31
  if (preChatSurveyResponse) {
35
32
  dispatch({
36
33
  type: LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
@@ -49,7 +46,6 @@ export const ReconnectChatPaneStateful = props => {
49
46
  }
50
47
  }
51
48
  };
52
-
53
49
  const controlProps = {
54
50
  id: "lcw-components-reconnect-chat-pane",
55
51
  dir: state.domainStates.globalDir,
@@ -2,6 +2,7 @@ import { Stack } from "@fluentui/react";
2
2
  import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
3
3
  import React, { useEffect } from "react";
4
4
  import { Components } from "botframework-webchat";
5
+ import { BroadcastChannel } from "broadcast-channel";
5
6
  import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetActionType";
6
7
  import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
7
8
  import { defaultMiddlewareLocalizedTexts } from "./common/defaultProps/defaultMiddlewareLocalizedTexts";
@@ -13,8 +14,10 @@ import { WebChatStoreLoader } from "./webchatcontroller/WebChatStoreLoader";
13
14
  import { Constants } from "../../common/Constants";
14
15
  import { BotMagicCodeStore } from "./webchatcontroller/BotMagicCodeStore";
15
16
  import { defaultAdaptiveCardStyles } from "./common/defaultStyles/defaultAdaptiveCardStyles";
17
+ import { defaultReceivedMessageAnchorStyles } from "./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles";
18
+ import { defaultUserMessageBoxStyles } from "./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles";
19
+ import { defaultSystemMessageBoxStyles } from "./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles";
16
20
  const broadcastChannelMessageEvent = "message";
17
-
18
21
  const postActivity = activity => {
19
22
  // eslint-disable-line @typescript-eslint/no-explicit-any
20
23
  return {
@@ -33,17 +36,14 @@ const postActivity = activity => {
33
36
  }
34
37
  };
35
38
  };
36
-
37
39
  const createMagicCodeSuccessResponse = signin => {
38
40
  return {
39
41
  signin,
40
42
  result: "Success"
41
43
  };
42
44
  };
43
-
44
45
  export const WebChatContainerStateful = props => {
45
- var _props$adaptiveCardSt, _props$adaptiveCardSt2;
46
-
46
+ var _props$adaptiveCardSt, _props$renderingMiddl, _props$renderingMiddl2, _props$renderingMiddl3, _props$renderingMiddl4, _props$adaptiveCardSt2, _props$renderingMiddl5, _props$renderingMiddl6, _props$renderingMiddl7, _props$renderingMiddl8;
47
47
  const {
48
48
  BasicWebChat
49
49
  } = Components;
@@ -54,9 +54,10 @@ export const WebChatContainerStateful = props => {
54
54
  root: Object.assign({}, defaultWebChatContainerStatefulProps.containerStyles, props === null || props === void 0 ? void 0 : props.containerStyles, {
55
55
  display: state.appStates.isMinimized ? "none" : ""
56
56
  }) // Use this instead of removing WebChat from the picture so that the activity observer inside the adapter is not invoked
57
-
58
57
  };
59
- const localizedTexts = { ...defaultMiddlewareLocalizedTexts,
58
+
59
+ const localizedTexts = {
60
+ ...defaultMiddlewareLocalizedTexts,
60
61
  ...(props === null || props === void 0 ? void 0 : props.localizedTexts)
61
62
  };
62
63
  useEffect(() => {
@@ -79,7 +80,6 @@ export const WebChatContainerStateful = props => {
79
80
  const {
80
81
  data
81
82
  } = event;
82
-
83
83
  if (BotMagicCodeStore.botOAuthSignInId === data.signin) {
84
84
  const {
85
85
  signin,
@@ -108,7 +108,6 @@ export const WebChatContainerStateful = props => {
108
108
  });
109
109
  }
110
110
  };
111
-
112
111
  magicCodeBroadcastChannel.addEventListener(broadcastChannelMessageEvent, eventListener);
113
112
  }, []);
114
113
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, `
@@ -117,12 +116,21 @@ export const WebChatContainerStateful = props => {
117
116
  background: ${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt = props.adaptiveCardStyles) === null || _props$adaptiveCardSt === void 0 ? void 0 : _props$adaptiveCardSt.background) ?? defaultAdaptiveCardStyles.background};
118
117
  }
119
118
 
119
+ .webchat__stacked-layout__content div.webchat__stacked-layout__message-row div.webchat__bubble--from-user {
120
+ max-width: ${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl = props.renderingMiddlewareProps) === null || _props$renderingMiddl === void 0 ? void 0 : (_props$renderingMiddl2 = _props$renderingMiddl.userMessageBoxStyles) === null || _props$renderingMiddl2 === void 0 ? void 0 : _props$renderingMiddl2.maxWidth) ?? (defaultUserMessageBoxStyles === null || defaultUserMessageBoxStyles === void 0 ? void 0 : defaultUserMessageBoxStyles.maxWidth)}
121
+ }
122
+
123
+ .webchat__stacked-layout--show-avatar div.webchat__stacked-layout__content div.webchat__stacked-layout__message-row div.webchat__stacked-layout__message {
124
+ max-width: ${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl3 = props.renderingMiddlewareProps) === null || _props$renderingMiddl3 === void 0 ? void 0 : (_props$renderingMiddl4 = _props$renderingMiddl3.systemMessageBoxStyles) === null || _props$renderingMiddl4 === void 0 ? void 0 : _props$renderingMiddl4.maxWidth) ?? (defaultSystemMessageBoxStyles === null || defaultSystemMessageBoxStyles === void 0 ? void 0 : defaultSystemMessageBoxStyles.maxWidth)}
125
+ }
126
+
120
127
  div[class="ac-textBlock"]>p{color:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt2 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt2 === void 0 ? void 0 : _props$adaptiveCardSt2.color) ?? defaultAdaptiveCardStyles.color};}
121
128
 
122
129
  .ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
123
130
  background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
124
131
  height: '.75em';
125
- marginLeft: '.25em';
132
+ marginLeft: '.25em';
133
+ filter:${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl5 = props.renderingMiddlewareProps) === null || _props$renderingMiddl5 === void 0 ? void 0 : (_props$renderingMiddl6 = _props$renderingMiddl5.receivedMessageAnchorStyles) === null || _props$renderingMiddl6 === void 0 ? void 0 : _props$renderingMiddl6.filter) ?? "none"};
126
134
  }
127
135
  pre {
128
136
  white-space: pre-wrap;
@@ -135,7 +143,7 @@ export const WebChatContainerStateful = props => {
135
143
  .ms_lcw_webchat_received_message a:visited,
136
144
  .ms_lcw_webchat_received_message a:hover,
137
145
  .ms_lcw_webchat_received_message a:active {
138
- color: white;
146
+ color: ${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl7 = props.renderingMiddlewareProps) === null || _props$renderingMiddl7 === void 0 ? void 0 : (_props$renderingMiddl8 = _props$renderingMiddl7.receivedMessageAnchorStyles) === null || _props$renderingMiddl8 === void 0 ? void 0 : _props$renderingMiddl8.color) ?? (defaultReceivedMessageAnchorStyles === null || defaultReceivedMessageAnchorStyles === void 0 ? void 0 : defaultReceivedMessageAnchorStyles.color)};
139
147
  } `), /*#__PURE__*/React.createElement(Stack, {
140
148
  styles: containerStyles
141
149
  }, /*#__PURE__*/React.createElement(BasicWebChat, null)));
@@ -7,6 +7,6 @@ export const defaultWebChatStatefulProps = {
7
7
  // avatarMiddleware: avatarMiddleware, - this is implemented elsewhere and can be customized
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  groupActivitiesMiddleware: groupActivitiesMiddleware,
10
- typingIndicatorMiddleware: typingIndicatorMiddleware // attachmentMiddleware: createAttachmentMiddleware(false), - this is implemented elsewhere and can be customized
11
-
10
+ typingIndicatorMiddleware: typingIndicatorMiddleware
11
+ // attachmentMiddleware: createAttachmentMiddleware(false), - this is implemented elsewhere and can be customized
12
12
  };
@@ -1,5 +1,4 @@
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
  import "rxjs/add/operator/share";
4
3
  import "rxjs/add/observable/of";
5
4
  import { ConnectionStatus } from "botframework-directlinejs";
@@ -9,16 +8,12 @@ import { uuidv4 } from "@microsoft/omnichannel-chat-sdk";
9
8
  export default class MockAdapter {
10
9
  constructor() {
11
10
  _defineProperty(this, "activityObserver", void 0);
12
-
13
11
  _defineProperty(this, "activity$", void 0);
14
-
15
12
  _defineProperty(this, "connectionStatus$", new BehaviorSubject(ConnectionStatus.Uninitialized));
16
-
17
13
  this.activity$ = new Observable(observer => {
18
14
  this.activityObserver = observer;
19
15
  Promise.resolve().then(async () => {
20
16
  this.connectionStatus$.next(ConnectionStatus.Online);
21
-
22
17
  try {
23
18
  if (this.connectionStatus$) {
24
19
  this.connectionStatus$.next(ConnectionStatus.Online);
@@ -30,22 +25,20 @@ export default class MockAdapter {
30
25
  });
31
26
  }).share();
32
27
  }
33
-
34
28
  postActivity(activity) {
35
29
  if (activity) {
36
30
  var _activity$text;
37
-
38
31
  let modActivity;
39
32
  let typingActivity;
40
33
  const userId = "userId",
41
- botId = "botId";
42
-
34
+ botId = "botId";
43
35
  if ((_activity$text = activity.text) !== null && _activity$text !== void 0 && _activity$text.startsWith(":")) {
44
36
  var _this$activityObserve, _this$activityObserve2;
45
-
46
- modActivity = { ...activity,
37
+ modActivity = {
38
+ ...activity,
47
39
  id: uuidv4(),
48
- from: { ...activity.from,
40
+ from: {
41
+ ...activity.from,
49
42
  id: botId,
50
43
  name: "Bot",
51
44
  role: "bot"
@@ -62,14 +55,14 @@ export default class MockAdapter {
62
55
  type: "typing"
63
56
  };
64
57
  (_this$activityObserve = this.activityObserver) === null || _this$activityObserve === void 0 ? void 0 : _this$activityObserve.next(modActivity); // mock echo message
65
-
66
58
  (_this$activityObserve2 = this.activityObserver) === null || _this$activityObserve2 === void 0 ? void 0 : _this$activityObserve2.next(typingActivity); // mock typing
67
59
  } else {
68
60
  var _this$activityObserve3;
69
-
70
- modActivity = { ...activity,
61
+ modActivity = {
62
+ ...activity,
71
63
  id: uuidv4(),
72
- from: { ...activity.from,
64
+ from: {
65
+ ...activity.from,
73
66
  id: userId,
74
67
  name: "User",
75
68
  role: "user"
@@ -81,9 +74,7 @@ export default class MockAdapter {
81
74
 
82
75
  return Observable.of(activity.id || "");
83
76
  }
84
-
85
77
  end() {
86
78
  return;
87
79
  }
88
-
89
80
  }
@@ -1,53 +1,42 @@
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
  import MockAdapter from "./mockadapter";
4
3
  export class MockChatSDK {
5
4
  constructor() {
6
5
  _defineProperty(this, "sleep", ms => new Promise(r => setTimeout(r, ms)));
7
-
8
6
  _defineProperty(this, "isMockModeOn", true);
9
7
  }
10
-
11
8
  async startChat() {
12
9
  await this.sleep(1000);
13
10
  }
14
-
15
11
  endChat() {
16
12
  return null;
17
13
  }
18
-
19
14
  getChatToken() {
20
15
  return null;
21
16
  }
22
-
23
17
  createChatAdapter() {
24
18
  return new MockAdapter();
25
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
-
19
+ }
27
20
 
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
22
  getPreChatSurvey(parseToJson) {
29
23
  return "";
30
24
  }
31
-
32
25
  getConversationDetails() {
33
26
  return {};
34
27
  }
35
-
36
28
  getCurrentLiveChatContext() {
37
29
  return {
38
30
  chatToken: {},
39
31
  requestId: ""
40
32
  };
41
33
  }
42
-
43
34
  onNewMessage() {
44
35
  return null;
45
36
  }
46
-
47
37
  getChatReconnectContext() {
48
38
  return {
49
39
  reconnectId: "123"
50
40
  };
51
41
  }
52
-
53
42
  }
@@ -6,65 +6,51 @@ export const getUserAgent = () => {
6
6
  if (!userAgent) {
7
7
  userAgent = window.navigator.userAgent;
8
8
  }
9
-
10
9
  return userAgent;
11
10
  };
12
-
13
11
  const userAgentContainsString = searchString => {
14
12
  const userAgent = getUserAgent();
15
13
  return userAgent.indexOf(searchString) > -1;
16
14
  };
17
-
18
15
  const isEdge = () => {
19
16
  return userAgentContainsString(BrowserVendor.EDGE) || userAgentContainsString(BrowserVendor.EDGE_CHROMIUM);
20
17
  };
21
-
22
18
  export const isChromiumEdge = () => {
23
19
  return userAgentContainsString(BrowserVendor.EDGE_CHROMIUM) && !userAgentContainsString(BrowserVendor.EDGE);
24
20
  };
25
-
26
21
  const isOpera = () => {
27
22
  return userAgentContainsString("OPR/");
28
23
  };
29
-
30
24
  export const getBrowserName = () => {
31
25
  if (isOpera()) {
32
26
  return BrowserVendor.OPERA;
33
27
  }
34
-
35
28
  if (isEdge()) {
36
29
  return BrowserVendor.EDGE;
37
30
  }
38
-
39
31
  if (userAgentContainsString(BrowserVendor.CHROME)) {
40
32
  return BrowserVendor.CHROME;
41
33
  }
42
-
43
34
  if (userAgentContainsString(BrowserVendor.FIREFOX)) {
44
35
  return BrowserVendor.FIREFOX;
45
36
  }
46
-
47
37
  if (userAgentContainsString(BrowserVendor.SAFARI)) {
48
38
  return BrowserVendor.SAFARI;
49
39
  }
50
-
51
40
  return BrowserVendor.UNKNOWN;
52
41
  };
53
42
  export const getBrowserVersion = () => {
54
43
  let browserString = getBrowserName();
55
44
  const browserVersion = UNKNOWN_VERSION;
56
45
  let matches;
57
-
58
46
  if (browserString === BrowserVendor.SAFARI) {
59
47
  browserString = "Version";
60
- } // eslint-disable-next-line prefer-const
61
-
48
+ }
62
49
 
50
+ // eslint-disable-next-line prefer-const
63
51
  matches = getUserAgent().match(new RegExp(browserString + "/" + REGEX_VERSION));
64
-
65
52
  if (matches) {
66
53
  return matches[1];
67
54
  }
68
-
69
55
  return browserVersion;
70
56
  };
@@ -52,30 +52,28 @@ const FileAttachmentIconMap = {
52
52
  "zipx": ArchiveIcon,
53
53
  "7z": ArchiveIcon
54
54
  };
55
+
55
56
  /**
56
57
  * Get file attachment icon image depending on extension.
57
58
  *
58
59
  * @param extension File extension
59
60
  */
60
-
61
61
  export const getFileAttachmentIconData = extension => {
62
62
  const key = extension.startsWith(".") ? extension.slice(1) : extension || "";
63
63
  const icon = FileAttachmentIconMap[key.toLowerCase()] || BlankIcon;
64
64
  return icon;
65
- }; // Check if browser supports inline media playing for current media format
65
+ };
66
66
 
67
+ // Check if browser supports inline media playing for current media format
67
68
  export const isInlineMediaSupported = attachmentName => {
68
69
  switch (getBrowserName()) {
69
70
  case BrowserVendor.CHROME:
70
71
  case BrowserVendor.OPERA:
71
72
  return Constants.chromeSupportedInlineMediaRegex.test(attachmentName);
72
-
73
73
  case BrowserVendor.FIREFOX:
74
74
  return Constants.firefoxSupportedInlineMediaRegex.test(attachmentName);
75
-
76
75
  case BrowserVendor.EDGE:
77
76
  return isChromiumEdge() && Constants.chromeSupportedInlineMediaRegex.test(attachmentName);
78
-
79
77
  default:
80
78
  return false;
81
79
  }